diff options
author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2025-07-19 19:22:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-19 19:22:17 +0200 |
commit | 06a2e6ac7f06a27f686f50af7ccb1c7ffdcabc81 (patch) | |
tree | 5241ca7464a97cc105dbc992dc2cee8538d66e64 | |
parent | 1a282933c72427dd5b0e9ea659f09e22b12be5f3 (diff) |
Scripts/Spells: Implement mage talent Improved Scorch (#31085)
-rw-r--r-- | sql/updates/world/master/2025_07_19_07_world.sql | 7 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 30 |
2 files changed, 37 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_07_19_07_world.sql b/sql/updates/world/master/2025_07_19_07_world.sql new file mode 100644 index 00000000000..a2d5d4dc726 --- /dev/null +++ b/sql/updates/world/master/2025_07_19_07_world.sql @@ -0,0 +1,7 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_mage_improved_scorch'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(383604, 'spell_mage_improved_scorch'); + +DELETE FROM `spell_proc` WHERE `SpellId` IN (383604); +INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES +(383604,0x00,3,0x00000010,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x0,0x0,0x0,0,0,0,0); -- Improved Scorch diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index 7185843174d..fbdde709d96 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -74,6 +74,7 @@ enum MageSpells SPELL_MAGE_ICE_BLOCK = 45438, SPELL_MAGE_IGNITE = 12654, SPELL_MAGE_IMPROVED_COMBUSTION = 383967, + SPELL_MAGE_IMPROVED_SCORCH = 383608, SPELL_MAGE_INCANTERS_FLOW = 116267, SPELL_MAGE_LIVING_BOMB_EXPLOSION = 44461, SPELL_MAGE_LIVING_BOMB_PERIODIC = 217694, @@ -1187,6 +1188,34 @@ class spell_mage_improved_combustion : public AuraScript } }; +// 383604 - Improved Scorch +class spell_mage_improved_scorch : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MAGE_IMPROVED_SCORCH }); + } + + static bool CheckProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo) + { + return eventInfo.GetProcTarget()->HealthBelowPct(aurEff->GetAmount()); + } + + void HandleProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo) const + { + eventInfo.GetActor()->CastSpell(eventInfo.GetActionTarget(), SPELL_MAGE_IMPROVED_SCORCH, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringAura = aurEff + }); + } + + void Register() override + { + DoCheckEffectProc += AuraCheckEffectProcFn(spell_mage_improved_scorch::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); + OnEffectProc += AuraEffectProcFn(spell_mage_improved_scorch::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + // 1463 - Incanter's Flow class spell_mage_incanters_flow : public AuraScript { @@ -1819,6 +1848,7 @@ void AddSC_mage_spell_scripts() RegisterSpellScript(spell_mage_ignite); RegisterSpellScript(spell_mage_imp_mana_gems); RegisterSpellScript(spell_mage_improved_combustion); + RegisterSpellScript(spell_mage_improved_scorch); RegisterSpellScript(spell_mage_incanters_flow); RegisterSpellScript(spell_mage_living_bomb); RegisterSpellScript(spell_mage_living_bomb_explosion); |