diff --git a/engine/class_modules/apl/warlock.cpp b/engine/class_modules/apl/warlock.cpp index 61b40575e55..bd47e8f4991 100644 --- a/engine/class_modules/apl/warlock.cpp +++ b/engine/class_modules/apl/warlock.cpp @@ -41,93 +41,88 @@ void affliction( player_t* p ) { action_priority_list_t* default_ = p->get_action_priority_list( "default" ); action_priority_list_t* precombat = p->get_action_priority_list( "precombat" ); - action_priority_list_t* aoe = p->get_action_priority_list( "aoe" ); - action_priority_list_t* cleave = p->get_action_priority_list( "cleave" ); - action_priority_list_t* st = p->get_action_priority_list( "st" ); action_priority_list_t* end_of_fight = p->get_action_priority_list( "end_of_fight" ); action_priority_list_t* items = p->get_action_priority_list( "items" ); action_priority_list_t* ogcd = p->get_action_priority_list( "ogcd" ); action_priority_list_t* variables = p->get_action_priority_list( "variables" ); action_priority_list_t* soul_harvester = p->get_action_priority_list( "soul_harvester" ); action_priority_list_t* hellcaller = p->get_action_priority_list( "hellcaller" ); - action_priority_list_t* SH_aoe = p->get_action_priority_list( "SH_aoe" ); + action_priority_list_t* SH_st = p->get_action_priority_list( "SH_st" ); action_priority_list_t* SH_cleave = p->get_action_priority_list( "SH_cleave" ); - action_priority_list_t* HC_aoe = p->get_action_priority_list( "HC_aoe" ); + action_priority_list_t* SH_aoe = p->get_action_priority_list( "SH_aoe" ); + action_priority_list_t* HC_st = p->get_action_priority_list( "HC_st" ); action_priority_list_t* HC_cleave = p->get_action_priority_list( "HC_cleave" ); + action_priority_list_t* HC_aoe = p->get_action_priority_list( "HC_aoe" ); precombat->add_action( "summon_pet" ); precombat->add_action( "grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled" ); precombat->add_action( "snapshot_stats" ); - precombat->add_action( "seed_of_corruption,if=talent.sow_the_seeds&active_enemies>1" ); - precombat->add_action( "haunt" ); + precombat->add_action( "seed_of_corruption,if=(hero_tree.soul_harvester&active_enemies>1)|active_enemies>2" ); + precombat->add_action( "haunt,if=active_enemies<2|(hero_tree.hellcaller&active_enemies<3)" ); default_->add_action( "call_action_list,name=variables" ); default_->add_action( "call_action_list,name=end_of_fight" ); default_->add_action( "call_action_list,name=ogcd" ); default_->add_action( "call_action_list,name=items" ); - default_->add_action( "call_action_list,name=aoe,if=active_enemies>2" ); - default_->add_action( "call_action_list,name=cleave,if=active_enemies=2" ); - default_->add_action( "call_action_list,name=st,if=active_enemies<2" ); + default_->add_action( "call_action_list,name=soul_harvester,if=hero_tree.soul_harvester" ); + default_->add_action( "call_action_list,name=hellcaller,if=hero_tree.hellcaller" ); 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.remainsadd_action( "malefic_grasp,if=pet.darkglare.active&buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remainsadd_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remainsadd_action( "drain_soul,if=buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remainsadd_action( "shadow_bolt,if=buff.nightfall.react&(buff.nightfall.react=buff.nightfall.max_stack|buff.nightfall.remainsadd_action( "malefic_grasp,chain=1,early_chain_if=buff.nightfall.react,if=pet.darkglare.active" ); default_->add_action( "drain_soul,chain=1,early_chain_if=buff.nightfall.react,interrupt_if=tick_time>0.5" ); default_->add_action( "shadow_bolt" ); - st->add_action( "call_action_list,name=soul_harvester,if=talent.demonic_soul" ); - st->add_action( "call_action_list,name=hellcaller,if=talent.wither" ); - - cleave->add_action( "call_action_list,name=SH_cleave,if=talent.demonic_soul" ); - cleave->add_action( "call_action_list,name=HC_cleave,if=talent.wither" ); + soul_harvester->add_action( "call_action_list,name=SH_st,if=active_enemies=1" ); + soul_harvester->add_action( "call_action_list,name=SH_cleave,if=active_enemies=2" ); + soul_harvester->add_action( "call_action_list,name=SH_aoe,if=active_enemies>2" ); - aoe->add_action( "call_action_list,name=SH_aoe,if=talent.demonic_soul" ); - aoe->add_action( "call_action_list,name=HC_aoe,if=talent.wither" ); + hellcaller->add_action( "call_action_list,name=HC_st,if=active_enemies=1" ); + hellcaller->add_action( "call_action_list,name=HC_cleave,if=active_enemies=2" ); + hellcaller->add_action( "call_action_list,name=HC_aoe,if=active_enemies>2" ); - soul_harvester->add_action( "haunt,if=buff.nightfall.react<2" ); - soul_harvester->add_action( "agony,if=!ticking|refreshable" ); - soul_harvester->add_action( "corruption,if=!ticking|refreshable" ); - soul_harvester->add_action( "summon_darkglare,if=soul_shard<3|cooldown.dark_harvest.remains" ); - soul_harvester->add_action( "dark_harvest,if=soul_shard<3&execute_time<(dot.agony.remainsadd_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); - soul_harvester->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); - soul_harvester->add_action( "unstable_affliction,if=pet.darkglare.active|soul_shard>1|(talent.shard_instability&buff.shard_instability.react)|buff.cascading_calamity.remainsadd_action( "haunt,if=buff.nightfall.react<2" ); + SH_st->add_action( "agony,if=!ticking|refreshable" ); + SH_st->add_action( "corruption,if=!ticking|refreshable" ); + SH_st->add_action( "summon_darkglare,if=soul_shard<3|cooldown.dark_harvest.remains" ); + SH_st->add_action( "dark_harvest,if=soul_shard<3&execute_time<(dot.agony.remainsadd_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); + SH_st->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); + SH_st->add_action( "unstable_affliction,if=pet.darkglare.active|soul_shard>1|(talent.shard_instability&buff.shard_instability.react)|buff.cascading_calamity.remainsadd_action( "haunt,if=buff.nightfall.react<2" ); - SH_cleave->add_action( "seed_of_corruption,if=!dot.corruption.ticking&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" ); + 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" ); SH_cleave->add_action( "dark_harvest" ); SH_cleave->add_action( "agony,if=refreshable" ); SH_cleave->add_action( "summon_darkglare" ); - SH_cleave->add_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&!talent.patient_zero&!talent.sow_the_seeds&buff.nightfall.react>1" ); - SH_cleave->add_action( "drain_soul,if=!talent.patient_zero&!talent.sow_the_seeds&buff.nightfall.react>1" ); - SH_cleave->add_action( "shadow_bolt,if=!talent.patient_zero&!talent.sow_the_seeds&buff.nightfall.react>1" ); + SH_cleave->add_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remainsadd_action( "unstable_affliction,if=pet.darkglare.active|(!talent.patient_zero&!talent.sow_the_seeds)" ); SH_cleave->add_action( "seed_of_corruption" ); SH_aoe->add_action( "haunt,if=buff.nightfall.react<2" ); - SH_aoe->add_action( "seed_of_corruption,if=!dot.corruption.ticking&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" ); + 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" ); SH_aoe->add_action( "dark_harvest" ); SH_aoe->add_action( "agony,target_if=min:remains,if=active_dot.agony<5&remains<5" ); SH_aoe->add_action( "summon_darkglare" ); - SH_aoe->add_action( "seed_of_corruption" ); + SH_aoe->add_action( "seed_of_corruption,if=talent.sow_the_seeds" ); + SH_aoe->add_action( "unstable_affliction,if=!talent.sow_the_seeds" ); SH_aoe->add_action( "agony,target_if=min:remains,if=remainsadd_action( "haunt,if=cooldown.haunt.ready" ); - hellcaller->add_action( "agony,if=!ticking|refreshable" ); - hellcaller->add_action( "wither,if=!ticking|refreshable" ); - hellcaller->add_action( "dark_harvest,if=execute_time<(dot.agony.remainsadd_action( "agony,if=dot.agony.remains<20&cooldown.summon_darkglare.remainsadd_action( "summon_darkglare" ); - hellcaller->add_action( "malevolence" ); - hellcaller->add_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remainsadd_action( "unstable_affliction,if=pet.darkglare.active|buff.malevolence.remains|soul_shard>4|(talent.shard_instability&buff.shard_instability.react)|buff.cascading_calamity.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); - hellcaller->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); + SH_aoe->add_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remainsadd_action( "haunt,if=cooldown.haunt.ready" ); + HC_st->add_action( "agony,if=!ticking|refreshable" ); + HC_st->add_action( "wither,if=!ticking|refreshable" ); + HC_st->add_action( "dark_harvest,if=execute_time<(dot.agony.remainsadd_action( "agony,if=dot.agony.remains<20&cooldown.summon_darkglare.remainsadd_action( "summon_darkglare" ); + HC_st->add_action( "malevolence" ); + HC_st->add_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active&pet.darkglare.remainsadd_action( "unstable_affliction,if=pet.darkglare.active|buff.malevolence.remains|soul_shard>4|(talent.shard_instability&buff.shard_instability.react)|buff.cascading_calamity.remainsadd_action( "haunt,if=cooldown.haunt.ready" ); - HC_cleave->add_action( "seed_of_corruption,if=talent.patient_zero&talent.sow_the_seeds&!dot.wither.ticking&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption" ); + 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" ); 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" ); HC_cleave->add_action( "agony,if=refreshable" ); HC_cleave->add_action( "dark_harvest" ); @@ -137,21 +132,18 @@ void affliction( player_t* p ) HC_cleave->add_action( "unstable_affliction,if=(pet.darkglare.active|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remainsadd_action( "seed_of_corruption,if=talent.patient_zero&talent.sow_the_seeds" ); HC_cleave->add_action( "unstable_affliction,if=buff.shard_instability.react|(talent.cascading_calamity&buff.cascading_calamity.remainsadd_action( "drain_soul,if=buff.nightfall.react>1" ); - HC_cleave->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); HC_aoe->add_action( "haunt,if=cooldown.haunt.ready" ); - HC_aoe->add_action( "seed_of_corruption,if=!dot.wither.ticking&!dot.seed_of_corruption.ticking&!prev.seed_of_corruption&!action.seed_of_corruption.in_flight" ); + 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" ); HC_aoe->add_action( "dark_harvest" ); HC_aoe->add_action( "agony,target_if=min:remains,if=active_dot.agonyadd_action( "summon_darkglare" ); HC_aoe->add_action( "malevolence" ); - HC_aoe->add_action( "seed_of_corruption" ); + HC_aoe->add_action( "seed_of_corruption,if=talent.sow_the_seeds" ); + HC_aoe->add_action( "unstable_affliction,if=(pet.darkglare.active|buff.malevolence.remains|soul_shard>4|buff.shard_instability.react|buff.cascading_calamity.remainsadd_action( "unstable_affliction,if=buff.shard_instability.react" ); HC_aoe->add_action( "agony,target_if=min:remains,if=remainsadd_action( "malefic_grasp,if=talent.malefic_grasp&pet.darkglare.active" ); - HC_aoe->add_action( "drain_soul,if=buff.nightfall.react>1" ); - HC_aoe->add_action( "shadow_bolt,if=buff.nightfall.react>1" ); end_of_fight->add_action( "unstable_affliction,if=soul_shard&fight_remains<8&(!talent.patient_zero&!talent.sow_the_seeds)" ); end_of_fight->add_action( "drain_soul,if=buff.nightfall.react&fight_remains<5" ); diff --git a/profiles/generators/MID1/MID1_Generate_Warlock.simc b/profiles/generators/MID1/MID1_Generate_Warlock.simc index 0f4ebc49535..472b5100e4e 100644 --- a/profiles/generators/MID1/MID1_Generate_Warlock.simc +++ b/profiles/generators/MID1/MID1_Generate_Warlock.simc @@ -4,7 +4,7 @@ level=90 race=pandaren role=spell position=ranged_back -talents=CkQAAAAAAAAAAAAAAAAAAAAAAwMzMzoZhhZmZmlBAAYmZxyMzsMzAAjtlBGwEMDbBG2GAAAmBAAwMDzMjBGmZmZGzgZmZGAwMwA +talents=CkQAAAAAAAAAAAAAAAAAAAAAAwMzMzoZhhZmZmlBAAYmZxyMzsMzAAjllBGwEMDbBG2GAAAmBAAwMDzMjBGmZmZGzgZmZGAwMwA default_pet=sayaad head=abyssal_immolators_smoldering_flames,id=250042,bonus_id=13575/1808,enchant_id=7961,gem_id=240983,ilevel=289