From 04f35f7923c22c11124c1c015b29da194e3f7c9b Mon Sep 17 00:00:00 2001 From: sogladev Date: Sun, 14 Jun 2026 23:06:34 +0200 Subject: [PATCH] fix(Scripts/Spells): Deep Freeze Immunity State proc (#26168) Co-authored-by: Ovahlord --- .../rev_1781291919238142004.sql | 4 ++++ src/server/scripts/Spells/spell_mage.cpp | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1781291919238142004.sql diff --git a/data/sql/updates/pending_db_world/rev_1781291919238142004.sql b/data/sql/updates/pending_db_world/rev_1781291919238142004.sql new file mode 100644 index 000000000..078572e19 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1781291919238142004.sql @@ -0,0 +1,4 @@ +-- +-- Fix Deep Freeze: only proc trigger spell 71757 on permanently stun-immune creatures +DELETE FROM `spell_script_names` WHERE `spell_id`=71761; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (71761, 'spell_mage_deep_freeze_immunity_state'); diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index be2d979e5..b6a5cf812 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -1588,6 +1588,25 @@ class spell_mage_missile_barrage_proc : public AuraScript } }; +// 71761 - Deep Freeze Immunity State +class spell_mage_deep_freeze_immunity_state : public AuraScript +{ + PrepareAuraScript(spell_mage_deep_freeze_immunity_state); + + bool CheckEffectProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) + { + if (!eventInfo.GetProcTarget() || !eventInfo.GetProcTarget()->IsCreature()) + return false; + + return eventInfo.GetProcTarget()->ToCreature()->HasMechanicTemplateImmunity(1ULL << MECHANIC_STUN); + } + + void Register() override + { + DoCheckEffectProc += AuraCheckEffectProcFn(spell_mage_deep_freeze_immunity_state::CheckEffectProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); + } +}; + void AddSC_mage_spell_scripts() { RegisterSpellScript(spell_mage_arcane_blast); @@ -1632,4 +1651,5 @@ void AddSC_mage_spell_scripts() RegisterSpellScript(spell_mage_summon_water_elemental); RegisterSpellScript(spell_mage_fingers_of_frost); RegisterSpellScript(spell_mage_magic_absorption); + RegisterSpellScript(spell_mage_deep_freeze_immunity_state); }