diff options
author | Andrew <47818697+Nyeriah@users.noreply.github.com> | 2025-09-16 06:59:02 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-16 11:59:02 +0200 |
commit | 56f2a8e4f3c197b9cd6cecbe29c8e44b08656ae5 (patch) | |
tree | 45c188f576656b598f0a348336af98c2c219c441 | |
parent | f31a7281bde22a8425373fded9a174769b77aaef (diff) |
fix(Scripts/BoreanTundra): Script Soul Deflection spell (#22931)
-rw-r--r-- | data/sql/updates/pending_db_world/rev_1757938084848429700.sql | 4 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_borean_tundra.cpp | 29 |
2 files changed, 33 insertions, 0 deletions
diff --git a/data/sql/updates/pending_db_world/rev_1757938084848429700.sql b/data/sql/updates/pending_db_world/rev_1757938084848429700.sql new file mode 100644 index 0000000000..e6aafd154d --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1757938084848429700.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 51009; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(51009, 'spell_soul_deflection'); 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); } |