From 651e67439cd89fb7ffcc4bf4c862471f5a1554f7 Mon Sep 17 00:00:00 2001 From: nyterage Date: Tue, 8 Oct 2024 15:45:22 -0700 Subject: [PATCH] [Unholy] Abomination now triggers disease cloud on melee pre-execute --- engine/class_modules/sc_death_knight.cpp | 30 ++++++++++-------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/engine/class_modules/sc_death_knight.cpp b/engine/class_modules/sc_death_knight.cpp index 51738ab4a03..fee8564a080 100644 --- a/engine/class_modules/sc_death_knight.cpp +++ b/engine/class_modules/sc_death_knight.cpp @@ -4483,9 +4483,21 @@ struct abomination_pet_t : public death_knight_pet_t { } + void execute() override + { + // Does not check for Frost Fever or Blood Plauge if Superstrain is talented, only reapplies if VP isnt ticking. + for ( auto& t : dk()->sim->target_non_sleeping_list ) + { + death_knight_td_t* td = dk()->get_target_data( t ); + if ( !td->dot.virulent_plague->is_ticking() ) + pet()->disease_cloud->execute_on_target( t ); + } + auto_attack_melee_t::execute(); + } + void impact( action_state_t* state ) override { - pet_melee_attack_t::impact( state ); + auto_attack_melee_t::impact( state ); if ( state->result_amount > 0 ) { pet()->dk()->trigger_festering_wound( state, 1, pet()->dk()->procs.fw_abomination ); @@ -4510,26 +4522,10 @@ struct abomination_pet_t : public death_knight_pet_t return RESOURCE_NONE; } - void arise() override - { - death_knight_pet_t::arise(); - for ( auto& t : sim->target_non_sleeping_list ) - { - disease_cloud->execute_on_target( t ); - } - } - void create_actions() override { death_knight_pet_t::create_actions(); disease_cloud = get_action( "disease_cloud", this ); - - sim->target_non_sleeping_list.register_callback( [ & ]( player_t* t ) { - if ( !t->is_enemy() || dk()->pets.abomination.active_pet() == nullptr ) - return; - - disease_cloud->execute_on_target( t ); - } ); } attack_t* create_main_hand_auto_attack() override