From 6f5e135767a0e0d6e693bf1b982d7e8d866deea6 Mon Sep 17 00:00:00 2001 From: Azevara <46403881+Azevara@users.noreply.github.com> Date: Fri, 9 Aug 2024 12:14:12 -0400 Subject: [PATCH] [Warlock] Shadow of Death (#9206) --- engine/class_modules/warlock/sc_warlock.hpp | 2 ++ engine/class_modules/warlock/sc_warlock_actions.cpp | 12 ++++++++++++ engine/class_modules/warlock/sc_warlock_init.cpp | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/engine/class_modules/warlock/sc_warlock.hpp b/engine/class_modules/warlock/sc_warlock.hpp index 3dcce213fe8..93acdf35e8c 100644 --- a/engine/class_modules/warlock/sc_warlock.hpp +++ b/engine/class_modules/warlock/sc_warlock.hpp @@ -553,6 +553,7 @@ struct warlock_t : public player_t player_talent_t sataiels_volition; player_talent_t shadow_of_death; + const spell_data_t* shadow_of_death_energize; } hero; struct proc_actions_t @@ -679,6 +680,7 @@ struct warlock_t : public player_t // Soul Harvester gain_t* feast_of_souls; + gain_t* shadow_of_death; } gains; // Procs diff --git a/engine/class_modules/warlock/sc_warlock_actions.cpp b/engine/class_modules/warlock/sc_warlock_actions.cpp index af996ae7ee8..3950a8e3bd1 100644 --- a/engine/class_modules/warlock/sc_warlock_actions.cpp +++ b/engine/class_modules/warlock/sc_warlock_actions.cpp @@ -2268,6 +2268,12 @@ using namespace helpers; if ( p()->talents.malign_omen.ok() ) p()->buffs.malign_omen->trigger( as( p()->talents.malign_omen->effectN( 2 ).base_value() ) ); + + if ( soul_harvester() && p()->hero.shadow_of_death.ok() ) + { + p()->resource_gain( RESOURCE_SOUL_SHARD, p()->hero.shadow_of_death_energize->effectN( 1 ).base_value() / 10.0, p()->gains.shadow_of_death ); + p()->buffs.succulent_soul->trigger( as( p()->hero.shadow_of_death_energize->effectN( 1 ).base_value() / 10.0 ) ); + } } void impact( action_state_t* s ) override @@ -3063,6 +3069,12 @@ using namespace helpers; p()->buffs.ritual_mother->extend_duration( p(), reduction ); p()->buffs.ritual_pit_lord->extend_duration( p(), reduction ); } + + if ( soul_harvester() && p()->hero.shadow_of_death.ok() ) + { + p()->resource_gain( RESOURCE_SOUL_SHARD, p()->hero.shadow_of_death_energize->effectN( 1 ).base_value() / 10.0, p()->gains.shadow_of_death ); + p()->buffs.succulent_soul->trigger( as( p()->hero.shadow_of_death_energize->effectN( 1 ).base_value() / 10.0 ) ); + } } }; diff --git a/engine/class_modules/warlock/sc_warlock_init.cpp b/engine/class_modules/warlock/sc_warlock_init.cpp index 70639326ea9..729041c5ef7 100644 --- a/engine/class_modules/warlock/sc_warlock_init.cpp +++ b/engine/class_modules/warlock/sc_warlock_init.cpp @@ -579,6 +579,9 @@ namespace warlock hero.quietus = find_talent_spell( talent_tree::HERO, "Quietus" ); // Should be ID 449634 hero.sataiels_volition = find_talent_spell( talent_tree::HERO, "Sataiel's Volition" ); // Should be ID 449637 + + hero.shadow_of_death = find_talent_spell( talent_tree::HERO, "Shadow of Death" ); // Should be ID 449638 + hero.shadow_of_death_energize = find_spell( 449858 ); } void warlock_t::init_base_stats() @@ -913,6 +916,7 @@ namespace warlock void warlock_t::init_gains_soul_harvester() { gains.feast_of_souls = get_gain( "feast_of_souls" ); + gains.shadow_of_death = get_gain( "shadow_of_death" ); } void warlock_t::init_procs()