diff options
author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2025-08-31 10:45:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-31 10:45:48 +0200 |
commit | bf61cc7a48cb8cac1180bb0f1935ae1bc08577b2 (patch) | |
tree | 510da0171005982560e33980e4794bb21452914a /src/server/scripts | |
parent | 4d73fcd56340db4a5924518bde8bf8c3527a9d84 (diff) |
Scripts/Spells: Implement mage talent Scorch (#31083)
Diffstat (limited to 'src/server/scripts')
-rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index 4c187c7b58a..462ac8fe0b1 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -68,6 +68,7 @@ enum MageSpells SPELL_MAGE_FLAME_PATCH_DAMAGE = 205472, SPELL_MAGE_FLAME_PATCH_TALENT = 205037, SPELL_MAGE_FLURRY_DAMAGE = 228596, + SPELL_MAGE_FRENETIC_SPEED = 236060, SPELL_MAGE_FROST_NOVA = 122, SPELL_MAGE_GIRAFFE_FORM = 32816, SPELL_MAGE_ICE_BARRIER = 11426, @@ -1678,6 +1679,37 @@ class spell_mage_scald : public SpellScript } }; +// 2948 - Scorch +class spell_mage_scorch : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_MAGE_FRENETIC_SPEED }); + } + + void CalcCritChance(Unit const* victim, float& critChance) + { + if (victim->GetHealthPct() < GetEffectInfo(EFFECT_1).CalcValue(GetCaster())) + critChance = 100.0f; + } + + void HandleFreneticSpeed(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + if (GetHitUnit()->GetHealthPct() < GetEffectInfo(EFFECT_1).CalcValue(GetCaster())) + caster->CastSpell(caster, SPELL_MAGE_FRENETIC_SPEED, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); + } + + void Register() override + { + OnCalcCritChance += SpellOnCalcCritChanceFn(spell_mage_scorch::CalcCritChance); + OnEffectHitTarget += SpellEffectFn(spell_mage_scorch::HandleFreneticSpeed, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } +}; + // 451875 - Spontaneous Combustion (attached to 190319 - Combustion) class spell_mage_spontaneous_combustion : public SpellScript { @@ -1864,6 +1896,7 @@ void AddSC_mage_spell_scripts() RegisterSpellScript(spell_mage_ring_of_frost); RegisterSpellAndAuraScriptPair(spell_mage_ring_of_frost_freeze, spell_mage_ring_of_frost_freeze_AuraScript); RegisterSpellScript(spell_mage_scald); + RegisterSpellScript(spell_mage_scorch); RegisterSpellScript(spell_mage_spontaneous_combustion); RegisterSpellScript(spell_mage_supernova); RegisterSpellScript(spell_mage_tempest_barrier); |