diff options
author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2025-05-27 12:59:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-27 12:59:20 +0200 |
commit | 21a6c0b91bbf6778c5b62f253705ee5031f5c884 (patch) | |
tree | 1b3f5751370d3ae3366b4498c7cf775285849ca7 /src | |
parent | 8734e28c8af06ff8f067390959d9273657db2297 (diff) |
Scripts/Spells: Implement rogue talent Night Terrors (#30994)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_rogue.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index 958ea3d79b7..87a6e64d13f 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -72,6 +72,7 @@ enum RogueSpells SPELL_ROGUE_KILLING_SPREE_DMG_BUFF = 61851, SPELL_ROGUE_MARKED_FOR_DEATH = 137619, SPELL_ROGUE_MAIN_GAUCHE = 86392, + SPELL_ROGUE_NIGHT_TERRORS = 277953, SPELL_ROGUE_NUMBING_POISON = 5761, SPELL_ROGUE_NUMBING_POISON_DEBUFF = 5760, SPELL_ROGUE_PREMEDITATION_PASSIVE = 343160, @@ -85,6 +86,7 @@ enum RogueSpells SPELL_ROGUE_SHADOW_DANCE = 185313, SPELL_ROGUE_SHADOW_FOCUS = 108209, SPELL_ROGUE_SHADOW_FOCUS_EFFECT = 112942, + SPELL_ROGUE_SHADOWS_GRASP = 206760, SPELL_ROGUE_SHIV_NATURE_DAMAGE = 319504, SPELL_ROGUE_SHOT_IN_THE_DARK_TALENT = 257505, SPELL_ROGUE_SHOT_IN_THE_DARK_BUFF = 257506, @@ -743,6 +745,33 @@ class spell_rog_mastery_main_gauche : public AuraScript } }; +// 277953 - Night Terrors (attached to 197835 - Shuriken Storm) +class spell_rog_night_terrors : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo ({ SPELL_ROGUE_NIGHT_TERRORS, SPELL_ROGUE_SHADOWS_GRASP }); + } + + bool Load() override + { + return GetCaster()->HasAura(SPELL_ROGUE_NIGHT_TERRORS); + } + + void HandleEnergize(SpellEffIndex /*effIndex*/) const + { + GetCaster()->CastSpell(GetHitUnit(), SPELL_ROGUE_SHADOWS_GRASP, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_rog_night_terrors::HandleEnergize, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } +}; + class spell_rog_pickpocket : public SpellScript { SpellCastResult CheckCast() @@ -1497,6 +1526,7 @@ void AddSC_rogue_spell_scripts() RegisterSpellAndAuraScriptPair(spell_rog_killing_spree, spell_rog_killing_spree_aura); RegisterSpellScript(spell_rog_kingsbane); RegisterSpellScript(spell_rog_mastery_main_gauche); + RegisterSpellScript(spell_rog_night_terrors); RegisterSpellScript(spell_rog_pickpocket); RegisterSpellScript(spell_rog_poisoned_knife); RegisterSpellScript(spell_rog_premeditation); |