diff options
author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2025-07-13 22:36:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-13 22:36:44 +0200 |
commit | 17bc1df948357880058126a2269a116af9630827 (patch) | |
tree | 15f7ec1e80469b3a3f7836693780fd2fbe3e26a2 | |
parent | 63a4ce5396ef17765380bbe7eddf1d052010a067 (diff) |
Scripts/Spells: Implement mage talent Molten Fury (#31091)
-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); |