diff options
author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2025-07-17 19:29:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-17 19:29:17 +0200 |
commit | 836513ba1bd456cba53495354cec132b440d5b81 (patch) | |
tree | a4ffd00cbc17f9c6afd109e0defbd3bcc13b66d0 | |
parent | 4887e0ea1da6fe32c76a899f03c4bf10ed21bc55 (diff) |
Scripts/Spells: Implement mage talent Spontaneous Combustion (#31089)
-rw-r--r-- | sql/updates/world/master/2025_07_17_00_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_07_17_00_world.sql b/sql/updates/world/master/2025_07_17_00_world.sql new file mode 100644 index 00000000000..570a14f672c --- /dev/null +++ b/sql/updates/world/master/2025_07_17_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_mage_spontaneous_combustion'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(190319, 'spell_mage_spontaneous_combustion'); diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index c47576a338e..9027cf6d002 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -82,6 +82,7 @@ enum MageSpells SPELL_MAGE_METEOR_BURN_DAMAGE = 155158, SPELL_MAGE_METEOR_MISSILE = 153564, SPELL_MAGE_MOLTEN_FURY = 458910, + SPELL_MAGE_PHOENIX_FLAMES = 257541, SPELL_MAGE_RADIANT_SPARK_PROC_BLOCKER = 376105, SPELL_MAGE_RAY_OF_FROST_BONUS = 208141, SPELL_MAGE_RAY_OF_FROST_FINGERS_OF_FROST = 269748, @@ -93,6 +94,7 @@ enum MageSpells SPELL_MAGE_SHEEP_FORM = 32820, SPELL_MAGE_SHIMMER = 212653, SPELL_MAGE_SLOW = 31589, + SPELL_MAGE_SPONTANEOUS_COMBUSTION = 451875, SPELL_MAGE_SQUIRREL_FORM = 32813, SPELL_MAGE_SUPERNOVA = 157980, SPELL_MAGE_TEMPEST_BARRIER_ABSORB = 382290, @@ -1586,6 +1588,31 @@ class spell_mage_ring_of_frost_freeze_AuraScript : public AuraScript } }; +// 451875 - Spontaneous Combustion (attached to 190319 - Combustion) +class spell_mage_spontaneous_combustion : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MAGE_SPONTANEOUS_COMBUSTION, SPELL_MAGE_FIRE_BLAST, SPELL_MAGE_PHOENIX_FLAMES }); + } + + bool Load() override + { + return GetCaster()->HasAura(SPELL_MAGE_SPONTANEOUS_COMBUSTION); + } + + void HandleCharges() const + { + GetCaster()->GetSpellHistory()->ResetCharges(sSpellMgr->AssertSpellInfo(SPELL_MAGE_FIRE_BLAST, DIFFICULTY_NONE)->ChargeCategoryId); + GetCaster()->GetSpellHistory()->ResetCharges(sSpellMgr->AssertSpellInfo(SPELL_MAGE_PHOENIX_FLAMES, DIFFICULTY_NONE)->ChargeCategoryId); + } + + void Register() override + { + AfterCast += SpellCastFn(spell_mage_spontaneous_combustion::HandleCharges); + } +}; + // 157980 - Supernova class spell_mage_supernova : public SpellScript { @@ -1744,6 +1771,7 @@ void AddSC_mage_spell_scripts() RegisterSpellAndAuraScriptPair(spell_mage_ray_of_frost, spell_mage_ray_of_frost_aura); RegisterSpellScript(spell_mage_ring_of_frost); RegisterSpellAndAuraScriptPair(spell_mage_ring_of_frost_freeze, spell_mage_ring_of_frost_freeze_AuraScript); + RegisterSpellScript(spell_mage_spontaneous_combustion); RegisterSpellScript(spell_mage_supernova); RegisterSpellScript(spell_mage_tempest_barrier); RegisterSpellScript(spell_mage_touch_of_the_magi_aura); |