diff options
-rw-r--r-- | sql/updates/world/master/2025_07_13_12_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 27 |
2 files changed, 30 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_07_13_12_world.sql b/sql/updates/world/master/2025_07_13_12_world.sql new file mode 100644 index 00000000000..7a5634e08ab --- /dev/null +++ b/sql/updates/world/master/2025_07_13_12_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_mage_molten_fury'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(457803, 'spell_mage_molten_fury'); diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index 4540717fb28..f582870e8af 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -81,6 +81,7 @@ enum MageSpells SPELL_MAGE_METEOR_AREATRIGGER = 177345, SPELL_MAGE_METEOR_BURN_DAMAGE = 155158, SPELL_MAGE_METEOR_MISSILE = 153564, + SPELL_MAGE_MOLTEN_FURY = 458910, SPELL_MAGE_RADIANT_SPARK_PROC_BLOCKER = 376105, SPELL_MAGE_RAY_OF_FROST_BONUS = 208141, SPELL_MAGE_RAY_OF_FROST_FINGERS_OF_FROST = 269748, @@ -1301,6 +1302,31 @@ struct at_mage_meteor_burn : public AreaTriggerAI } }; +// 457803 - Molten Fury +class spell_mage_molten_fury : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MAGE_MOLTEN_FURY }); + } + + static void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo) + { + if (!eventInfo.GetActionTarget()->HealthAbovePct(aurEff->GetAmount())) + eventInfo.GetActor()->CastSpell(eventInfo.GetActionTarget(), SPELL_MAGE_MOLTEN_FURY, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringAura = aurEff + }); + else + eventInfo.GetActionTarget()->RemoveAurasDueToSpell(SPELL_MAGE_MOLTEN_FURY, eventInfo.GetActor()->GetGUID()); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_mage_molten_fury::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + enum SilvermoonPolymorph { NPC_AUROSALIA = 18744 @@ -1696,6 +1722,7 @@ void AddSC_mage_spell_scripts() RegisterSpellScript(spell_mage_meteor); RegisterAreaTriggerAI(at_mage_meteor); RegisterAreaTriggerAI(at_mage_meteor_burn); + RegisterSpellScript(spell_mage_molten_fury); RegisterSpellScript(spell_mage_polymorph_visual); RegisterSpellScript(spell_mage_prismatic_barrier); RegisterSpellScript(spell_mage_radiant_spark); |