aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorAqua Deus <95978183+aquadeus@users.noreply.github.com>2025-08-31 10:45:48 +0200
committerGitHub <noreply@github.com>2025-08-31 10:45:48 +0200
commitbf61cc7a48cb8cac1180bb0f1935ae1bc08577b2 (patch)
tree510da0171005982560e33980e4794bb21452914a /src/server/scripts
parent4d73fcd56340db4a5924518bde8bf8c3527a9d84 (diff)
Scripts/Spells: Implement mage talent Scorch (#31083)
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp33
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);