diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/zone_borean_tundra.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index 88013c47cb..8f352e8936 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -2143,6 +2143,34 @@ class spell_necropolis_beam: public SpellScript } }; +enum SoulDeflectionSpells +{ + SPELL_SOUL_DEFLECTION_DAMAGE = 51011 +}; + +class spell_soul_deflection : public AuraScript +{ + PrepareAuraScript(spell_soul_deflection); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_SOUL_DEFLECTION_DAMAGE }); + } + + void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) + { + if (!eventInfo.GetDamageInfo() || !eventInfo.GetDamageInfo()->GetDamage() || !GetTarget()) + return; + + GetCaster()->CastCustomSpell(SPELL_SOUL_DEFLECTION_DAMAGE, SPELLVALUE_BASE_POINT0, eventInfo.GetDamageInfo()->GetDamage(), GetTarget(), true); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_soul_deflection::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + void AddSC_borean_tundra() { RegisterSpellScript(spell_q11919_q11940_drake_hunt_aura); @@ -2168,4 +2196,5 @@ void AddSC_borean_tundra() new npc_bloodmage_laurith(); RegisterCreatureAI(npc_jenny); RegisterSpellScript(spell_necropolis_beam); + RegisterSpellScript(spell_soul_deflection); } |