@@ -41,21 +41,21 @@ void affliction( player_t* p )
4141{
4242 action_priority_list_t * default_ = p->get_action_priority_list ( " default" );
4343 action_priority_list_t * precombat = p->get_action_priority_list ( " precombat" );
44- action_priority_list_t * end_of_fight = p->get_action_priority_list ( " end_of_fight" );
45- action_priority_list_t * items = p->get_action_priority_list ( " items" );
46- action_priority_list_t * ogcd = p->get_action_priority_list ( " ogcd" );
47- action_priority_list_t * variables = p->get_action_priority_list ( " variables" );
4844 action_priority_list_t * soul_harvester = p->get_action_priority_list ( " soul_harvester" );
4945 action_priority_list_t * hellcaller = p->get_action_priority_list ( " hellcaller" );
46+ action_priority_list_t * items = p->get_action_priority_list ( " items" );
47+ action_priority_list_t * ogcd = p->get_action_priority_list ( " ogcd" );
5048 action_priority_list_t * SH_st = p->get_action_priority_list ( " SH_st" );
51- action_priority_list_t * SH_cleave = p->get_action_priority_list ( " SH_cleave" );
5249 action_priority_list_t * SH_aoe = p->get_action_priority_list ( " SH_aoe" );
50+ action_priority_list_t * SH_cleave = p->get_action_priority_list ( " SH_cleave" );
5351 action_priority_list_t * HC_st = p->get_action_priority_list ( " HC_st" );
54- action_priority_list_t * HC_cleave = p->get_action_priority_list ( " HC_cleave" );
5552 action_priority_list_t * HC_aoe = p->get_action_priority_list ( " HC_aoe" );
53+ action_priority_list_t * HC_cleave = p->get_action_priority_list ( " HC_cleave" );
54+ action_priority_list_t * end_of_fight = p->get_action_priority_list ( " end_of_fight" );
55+ action_priority_list_t * variables = p->get_action_priority_list ( " variables" );
5656
5757 precombat->add_action ( " summon_pet" );
58- precombat->add_action ( " grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled " );
58+ precombat->add_action ( " grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice" );
5959 precombat->add_action ( " snapshot_stats" );
6060 precombat->add_action ( " seed_of_corruption,if=(hero_tree.soul_harvester&active_enemies>1)|active_enemies>2" );
6161 precombat->add_action ( " haunt,if=active_enemies<2|(hero_tree.hellcaller&active_enemies<3)" );
@@ -67,9 +67,6 @@ void affliction( player_t* p )
6767 default_->add_action ( " call_action_list,name=soul_harvester,if=hero_tree.soul_harvester" );
6868 default_->add_action ( " call_action_list,name=hellcaller,if=hero_tree.hellcaller" );
6969 default_->add_action ( " seed_of_corruption,if=talent.nocturnal_yield&active_enemies>1&buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remains<execute_time*buff.nightfall.max_stack)" );
70- default_->add_action ( " malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remains<execute_time*buff.nightfall.max_stack)" );
71- default_->add_action ( " drain_soul,if=buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remains<execute_time*buff.nightfall.max_stack)" );
72- default_->add_action ( " shadow_bolt,if=buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remains<execute_time*buff.nightfall.max_stack)" );
7370 default_->add_action ( " malefic_grasp,chain=1,early_chain_if=buff.nightfall.react,if=pet.darkglare.active" );
7471 default_->add_action ( " drain_soul,chain=1,early_chain_if=buff.nightfall.react,interrupt_if=tick_time>0.5" );
7572 default_->add_action ( " shadow_bolt" );
@@ -82,83 +79,87 @@ void affliction( player_t* p )
8279 hellcaller->add_action ( " call_action_list,name=HC_cleave,if=active_enemies=2" );
8380 hellcaller->add_action ( " call_action_list,name=HC_aoe,if=active_enemies>2" );
8481
85- SH_st->add_action ( " haunt,if=buff.nightfall.react<2" );
86- SH_st->add_action ( " agony,if=!ticking|refreshable" );
87- SH_st->add_action ( " corruption,if=!ticking|refreshable" );
88- SH_st->add_action ( " summon_darkglare,if=soul_shard<3|cooldown.dark_harvest.remains" );
89- SH_st->add_action ( " dark_harvest,if=soul_shard<3&execute_time<(dot.agony.remains<?dot.corruption.remains)&buff.cascading_calamity.remains" );
90- SH_st->add_action ( " malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remains<gcd" );
82+ items->add_action ( " use_item,use_off_gcd=1,slot=trinket1,if=variable.cds_active" );
83+ items->add_action ( " use_item,use_off_gcd=1,slot=trinket2,if=variable.cds_active" );
84+
85+ ogcd->add_action ( " potion,use_off_gcd=1,if=variable.cds_active|fight_remains<32" );
86+ ogcd->add_action ( " berserking,use_off_gcd=1,if=variable.cds_active|fight_remains<14" );
87+ ogcd->add_action ( " blood_fury,use_off_gcd=1,if=variable.cds_active|fight_remains<17" );
88+ ogcd->add_action ( " fireblood,use_off_gcd=1,if=variable.cds_active|fight_remains<10" );
89+ ogcd->add_action ( " ancestral_call,use_off_gcd=1,if=variable.cds_active|fight_remains<17" );
90+
91+ SH_st->add_action ( " haunt" , " Haunt on CD for apex, regardless of Nightfall stacks" );
92+ SH_st->add_action ( " agony,if=refreshable" );
93+ SH_st->add_action ( " corruption,if=refreshable" );
94+ SH_st->add_action ( " dark_harvest,if=soul_shard<3&execute_time<(dot.agony.remains<?dot.corruption.remains)" , " Do not overcap shards" );
95+ SH_st->add_action ( " summon_darkglare,if=cooldown.dark_harvest.remains" , " use Dark Harvest only outside Darkglare" );
96+ SH_st->add_action ( " malefic_grasp,if=buff.nightfall.react>1|pet.darkglare.remains<gcd" );
9197 SH_st->add_action ( " drain_soul,if=buff.nightfall.react>1" );
9298 SH_st->add_action ( " shadow_bolt,if=buff.nightfall.react>1" );
93- SH_st->add_action ( " unstable_affliction,if=pet.darkglare.active| soul_shard>1|(talent.shard_instability& buff.shard_instability.react)|buff.cascading_calamity.remains<gcd.max " );
99+ SH_st->add_action ( " unstable_affliction,if=soul_shard| buff.shard_instability.react" , " SH does not care about saving shards in pure patchwerk. In reality it's good to save 1 shard for cascading calamity " );
94100
95- SH_cleave->add_action ( " haunt,if=buff.nightfall.react<2" );
96- SH_cleave->add_action ( " seed_of_corruption,if=(!dot.corruption.ticking|dot.corruption.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" );
97- SH_cleave->add_action ( " dark_harvest" );
98- SH_cleave->add_action ( " agony,if=refreshable" );
99- SH_cleave->add_action ( " summon_darkglare" );
100- SH_cleave->add_action ( " malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remains<gcd" );
101- SH_cleave->add_action ( " unstable_affliction,if=pet.darkglare.active|(!talent.patient_zero&!talent.sow_the_seeds)" );
102- SH_cleave->add_action ( " seed_of_corruption" );
103-
104- SH_aoe->add_action ( " haunt,if=buff.nightfall.react<2" );
101+ SH_aoe->add_action ( " haunt" );
105102 SH_aoe->add_action ( " seed_of_corruption,if=(!dot.corruption.ticking|dot.corruption.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" );
106- SH_aoe->add_action ( " dark_harvest" );
107- SH_aoe->add_action ( " agony,target_if=min:remains,if=active_dot.agony<5&remains<5" );
103+ SH_aoe->add_action ( " dark_harvest" , " Do not care about losing shards in 2+ targets " );
104+ SH_aoe->add_action ( " agony,target_if=min:remains,if=active_dot.agony<5&remains<5" , " Maintain ~5 agonies (will be 6 with Shared Agony) " );
108105 SH_aoe->add_action ( " summon_darkglare" );
109106 SH_aoe->add_action ( " seed_of_corruption,if=talent.sow_the_seeds" );
110107 SH_aoe->add_action ( " unstable_affliction,if=!talent.sow_the_seeds" );
111108 SH_aoe->add_action ( " agony,target_if=min:remains,if=remains<duration*0.5" );
112- SH_aoe->add_action ( " malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active& pet.darkglare.remains<gcd" );
109+ SH_aoe->add_action ( " malefic_grasp,if=pet.darkglare.remains<gcd" );
113110
114- HC_st->add_action ( " haunt,if=cooldown.haunt.ready" );
115- HC_st->add_action ( " agony,if=!ticking|refreshable" );
116- HC_st->add_action ( " wither,if=!ticking|refreshable" );
117- HC_st->add_action ( " dark_harvest,if=execute_time<(dot.agony.remains<?dot.corruption.remains)" );
118- HC_st->add_action ( " agony,if=dot.agony.remains<20&cooldown.summon_darkglare.remains<gcd" );
111+ SH_cleave->add_action ( " haunt" );
112+ SH_cleave->add_action ( " seed_of_corruption,if=(!dot.corruption.ticking|dot.corruption.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" );
113+ SH_cleave->add_action ( " dark_harvest" , " Do not care about losing shards in 2+ targets" );
114+ SH_cleave->add_action ( " agony,target_if=refreshable" );
115+ SH_cleave->add_action ( " summon_darkglare" );
116+ SH_cleave->add_action ( " malefic_grasp,if=buff.nightfall.react>1|pet.darkglare.remains<gcd" );
117+ SH_cleave->add_action ( " drain_soul,if=buff.nightfall.react>1" );
118+ SH_cleave->add_action ( " shadow_bolt,if=buff.nightfall.react>1" );
119+ SH_cleave->add_action ( " unstable_affliction,if=!talent.patient_zero&!talent.sow_the_seeds&(soul_shard|buff.shard_instability.react)" );
120+ SH_cleave->add_action ( " seed_of_corruption,if=talent.patient_zero&talent.sow_the_seeds" );
121+
122+ HC_st->add_action ( " haunt" , " Haunt on CD for apex" );
123+ HC_st->add_action ( " agony,if=refreshable" );
124+ HC_st->add_action ( " wither,if=refreshable" );
125+ HC_st->add_action ( " dark_harvest,if=execute_time<(dot.agony.remains<?dot.corruption.remains)" , " Dark Harvest on CD regardless of Darkglare" );
126+ HC_st->add_action ( " agony,if=dot.agony.remains<20&cooldown.summon_darkglare.remains<gcd" , " Refresh agony right before Darkglare so it lasts the entire duration" );
119127 HC_st->add_action ( " summon_darkglare" );
120128 HC_st->add_action ( " malevolence" );
121- HC_st->add_action ( " malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remains<gcd" );
122- HC_st->add_action ( " unstable_affliction,if=pet.darkglare.active|buff.malevolence.remains|soul_shard>4|(talent.shard_instability&buff.shard_instability.react)|buff.cascading_calamity.remains<gcd.max" );
123-
124- HC_cleave->add_action ( " haunt,if=cooldown.haunt.ready" );
125- HC_cleave->add_action ( " seed_of_corruption,if=talent.sow_the_seeds&!dot.wither.ticking&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" );
126- HC_cleave->add_action ( " wither,target_if=min:remains,if=remains<5&!(action.seed_of_corruption.in_flight|dot.seed_of_corruption.remains>0)&fight_remains>remains+5" );
127- HC_cleave->add_action ( " agony,if=refreshable" );
128- HC_cleave->add_action ( " dark_harvest" );
129- HC_cleave->add_action ( " summon_darkglare" );
130- HC_cleave->add_action ( " malevolence" );
131- HC_cleave->add_action ( " malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remains<gcd" );
132- HC_cleave->add_action ( " unstable_affliction,if=(pet.darkglare.active|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remains<gcd.max)&!talent.patient_zero&!talent.sow_the_seeds" );
133- HC_cleave->add_action ( " seed_of_corruption,if=talent.patient_zero&talent.sow_the_seeds" );
134- HC_cleave->add_action ( " unstable_affliction,if=buff.shard_instability.react|(talent.cascading_calamity&buff.cascading_calamity.remains<gcd.max)" );
129+ HC_st->add_action ( " malefic_grasp,if=buff.nightfall.react>1|pet.darkglare.remains<gcd" );
130+ HC_st->add_action ( " drain_soul,if=buff.nightfall.react>1" );
131+ HC_st->add_action ( " shadow_bolt,if=buff.nightfall.react>1" );
132+ HC_st->add_action ( " unstable_affliction,if=pet.darkglare.remains|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remains<gcd.max" , " Always maintain Cascading Calamity, only dump inside Malevolence" );
135133
136- HC_aoe->add_action ( " haunt,if=cooldown.haunt.ready " );
134+ HC_aoe->add_action ( " haunt" );
137135 HC_aoe->add_action ( " seed_of_corruption,if=(!dot.wither.ticking|dot.wither.refreshable)&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" );
138136 HC_aoe->add_action ( " dark_harvest" );
139137 HC_aoe->add_action ( " agony,target_if=min:remains,if=active_dot.agony<active_enemies&remains<5" );
140138 HC_aoe->add_action ( " summon_darkglare" );
141139 HC_aoe->add_action ( " malevolence" );
142- HC_aoe->add_action ( " seed_of_corruption,if=talent.sow_the_seeds" );
143- HC_aoe->add_action ( " unstable_affliction,if=(pet.darkglare.active|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remains<gcd.max)&!talent.sow_the_seeds" );
140+ HC_aoe->add_action ( " seed_of_corruption" );
144141 HC_aoe->add_action ( " unstable_affliction,if=buff.shard_instability.react" );
145142 HC_aoe->add_action ( " agony,target_if=min:remains,if=remains<duration*0.5" );
146- HC_aoe->add_action ( " malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active" );
143+ HC_aoe->add_action ( " malefic_grasp,if=pet.darkglare.remains<gcd" );
144+
145+ HC_cleave->add_action ( " haunt" );
146+ HC_cleave->add_action ( " seed_of_corruption,if=talent.sow_the_seeds&!dot.wither.ticking&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" );
147+ HC_cleave->add_action ( " wither,target_if=min:remains,if=remains<5&!(action.seed_of_corruption.in_flight|dot.seed_of_corruption.remains>0)&fight_remains>remains+5" );
148+ HC_cleave->add_action ( " agony,target_if=refreshable" );
149+ HC_cleave->add_action ( " dark_harvest" );
150+ HC_cleave->add_action ( " summon_darkglare" );
151+ HC_cleave->add_action ( " malevolence" );
152+ HC_cleave->add_action ( " malefic_grasp,if=pet.darkglare.remains<gcd" );
153+ HC_cleave->add_action ( " unstable_affliction,if=!talent.sow_the_seeds&!talent.patient_zero&(pet.darkglare.remains|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remains<gcd.max)" );
154+ HC_cleave->add_action ( " seed_of_corruption,if=talent.patient_zero&talent.sow_the_seeds" );
147155
148156 end_of_fight->add_action ( " unstable_affliction,if=soul_shard&fight_remains<8&(!talent.patient_zero&!talent.sow_the_seeds)" );
157+ end_of_fight->add_action ( " seed_of_corruption,if=soul_shard&fight_remains<8&(talent.patient_zero&talent.sow_the_seeds)" );
149158 end_of_fight->add_action ( " drain_soul,if=buff.nightfall.react&fight_remains<5" );
150159 end_of_fight->add_action ( " shadow_bolt,if=buff.nightfall.react&fight_remains<5" );
151160
152- ogcd->add_action ( " potion,use_off_gcd=1,if=!talent.summon_darkglare|pet.darkglare.active|fight_remains<32" );
153- ogcd->add_action ( " berserking,use_off_gcd=1,if=!talent.summon_darkglare|pet.darkglare.active|fight_remains<14" );
154- ogcd->add_action ( " blood_fury,if=!talent.summon_darkglare|pet.darkglare.active|fight_remains<17" );
155- ogcd->add_action ( " fireblood,if=!talent.summon_darkglare|pet.darkglare.active|fight_remains<10" );
156- ogcd->add_action ( " ancestral_call,if=!talent.summon_darkglare|pet.darkglare.active|fight_remains<17" );
157-
158- items->add_action ( " use_item,use_off_gcd=1,slot=trinket1,if=variable.cds_active" );
159- items->add_action ( " use_item,use_off_gcd=1,slot=trinket2,if=variable.cds_active" );
160-
161- variables->add_action ( " variable,name=cds_active,op=set,value=!talent.summon_darkglare|cooldown.summon_darkglare.remains>20|pet.darkglare.remains" );
161+ variables->add_action ( " variable,name=cds_active,op=set,value=!talent.summon_darkglare|pet.darkglare.remains" );
162+ variables->add_action ( " cycling_variable,name=min_agony,op=min,value=dot.agony.remains+(99*!dot.agony.remains)" );
162163}
163164// affliction_apl_end
164165
0 commit comments