diff options
-rw-r--r-- | sql/updates/world/master/2025_05_24_08_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_rogue.cpp | 31 |
2 files changed, 34 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_05_24_08_world.sql b/sql/updates/world/master/2025_05_24_08_world.sql new file mode 100644 index 00000000000..196e5144195 --- /dev/null +++ b/sql/updates/world/master/2025_05_24_08_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_rog_deepening_shadows'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(185314, 'spell_rog_deepening_shadows'); diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index 961cde8864d..6838ded7646 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -80,6 +80,7 @@ enum RogueSpells SPELL_ROGUE_RUTHLESS_PRECISION = 193357, SPELL_ROGUE_SANCTUARY = 98877, SPELL_ROGUE_SKULL_AND_CROSSBONES = 199603, + SPELL_ROGUE_SHADOW_DANCE = 185313, SPELL_ROGUE_SHADOW_FOCUS = 108209, SPELL_ROGUE_SHADOW_FOCUS_EFFECT = 112942, SPELL_ROGUE_SHIV_NATURE_DAMAGE = 319504, @@ -342,6 +343,35 @@ class spell_rog_deadly_poison : public SpellScript } }; +// 185314 - Deepening Shadows +class spell_rog_deepening_shadows : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_ROGUE_SHADOW_DANCE }); + } + + static bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo const& procEvent) + { + if (Spell const* procSpell = procEvent.GetProcSpell()) + return procSpell->GetPowerTypeCostAmount(POWER_COMBO_POINTS) > 0; + + return false; + } + + void HandleProc(AuraEffect const* aurEff, ProcEventInfo const& procInfo) const + { + Milliseconds amount = -Seconds(aurEff->GetAmount()) * *procInfo.GetProcSpell()->GetPowerTypeCostAmount(POWER_COMBO_POINTS); + GetTarget()->GetSpellHistory()->ModifyChargeRecoveryTime(sSpellMgr->AssertSpellInfo(SPELL_ROGUE_SHADOW_DANCE, GetCastDifficulty())->ChargeCategoryId, amount / 10); + } + + void Register() override + { + DoCheckEffectProc += AuraCheckEffectProcFn(spell_rog_deepening_shadows::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); + OnEffectProc += AuraEffectProcFn(spell_rog_deepening_shadows::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + // 32645 - Envenom class spell_rog_envenom : public SpellScript { @@ -1320,6 +1350,7 @@ void AddSC_rogue_spell_scripts() RegisterSpellScript(spell_rog_blade_flurry); RegisterSpellScript(spell_rog_cheat_death); RegisterSpellScript(spell_rog_deadly_poison); + RegisterSpellScript(spell_rog_deepening_shadows); RegisterSpellScript(spell_rog_envenom); RegisterSpellScript(spell_rog_eviscerate); RegisterSpellScript(spell_rog_grand_melee); |