diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 5de35a0f760..9c0cbd56ba7 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -80,6 +80,7 @@ enum DeathKnightSpells SPELL_DK_RUNIC_RETURN = 61258, SPELL_DK_SLUDGE_BELCHER = 207313, SPELL_DK_SLUDGE_BELCHER_SUMMON = 212027, + SPELL_DK_SMOTHERING_OFFENSE = 435005, SPELL_DK_DEATH_STRIKE_ENABLER = 89832, // Server Side SPELL_DK_TIGHTENING_GRASP = 206970, //SPELL_DK_TIGHTENING_GRASP_SLOW = 143375, // dropped in BfA @@ -750,6 +751,43 @@ class spell_dk_howling_blast : public SpellScript } }; +// 194878 - Icy Talons +class spell_dk_icy_talons : public AuraScript +{ + bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo const& eventInfo) const + { + if (Spell const* procSpell = eventInfo.GetProcSpell()) + return procSpell->GetPowerTypeCostAmount(POWER_RUNIC_POWER) > 0; + + return false; + } + + void Register() override + { + DoCheckEffectProc += AuraCheckEffectProcFn(spell_dk_icy_talons::CheckProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE); + } +}; + +// 194879 - Icy Talons +class spell_dk_icy_talons_buff : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_DK_SMOTHERING_OFFENSE }); + } + + void HandleSmotheringOffense(WorldObject*& target) const + { + if (!GetCaster()->HasAura(SPELL_DK_SMOTHERING_OFFENSE)) + target = nullptr; + } + + void Register() override + { + OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_dk_icy_talons_buff::HandleSmotheringOffense, EFFECT_1, TARGET_UNIT_CASTER); + } +}; + // 206940 - Mark of Blood class spell_dk_mark_of_blood : public AuraScript { @@ -1071,6 +1109,8 @@ void AddSC_deathknight_spell_scripts() RegisterSpellScript(spell_dk_ghoul_explode); RegisterSpellScript(spell_dk_glyph_of_scourge_strike_script); RegisterSpellScript(spell_dk_howling_blast); + RegisterSpellScript(spell_dk_icy_talons); + RegisterSpellScript(spell_dk_icy_talons_buff); RegisterSpellScript(spell_dk_mark_of_blood); RegisterSpellScript(spell_dk_necrosis); RegisterSpellScript(spell_dk_obliteration); |