diff options
author | RoG_Hannibal <edreisantafe@gmail.com> | 2017-02-13 12:17:28 -0500 |
---|---|---|
committer | Keader <keader.android@gmail.com> | 2017-02-13 15:17:28 -0200 |
commit | 23aca839fe1401b77d823841cdab7f9a4ddb08d4 (patch) | |
tree | 10b57a66443c2438c81e79812f1187c1a951f8df /src | |
parent | d2dba9a5e0f94ba0891087bebbba87d2b756677b (diff) |
Core/Spells: add slowing effect to Mage spell Frostbolt (#19092)
Closes #18932
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_mage.cpp | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index 781e894e5b1..8350307d8a4 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -101,7 +101,8 @@ enum MiscSpells SPELL_HUNTER_INSANITY = 95809, SPELL_PRIEST_SHADOW_WORD_DEATH = 32409, SPELL_SHAMAN_EXHAUSTION = 57723, - SPELL_SHAMAN_SATED = 57724 + SPELL_SHAMAN_SATED = 57724, + SPELL_MAGE_CHILLED = 205708 }; // -31571 - Arcane Potency @@ -463,40 +464,39 @@ class spell_mage_focus_magic : public SpellScriptLoader } }; -// 116 - Frostbolt -/// Updated 4.3.4 +// 228597 - Frostbolt class spell_mage_frostbolt : public SpellScriptLoader { - public: - spell_mage_frostbolt() : SpellScriptLoader("spell_mage_frostbolt") { } +public: + spell_mage_frostbolt() : SpellScriptLoader("spell_mage_frostbolt") { } - class spell_mage_frostbolt_SpellScript : public SpellScript - { - PrepareSpellScript(spell_mage_frostbolt_SpellScript); + class spell_mage_frostbolt_SpellScript : public SpellScript + { + PrepareSpellScript(spell_mage_frostbolt_SpellScript); - void RecalculateDamage(SpellEffIndex /*effIndex*/) - { - if (GetHitUnit() && GetHitUnit()->HasAuraState(AURA_STATE_FROZEN, GetSpellInfo(), GetCaster())) - { - if (AuraEffect* aurEff = GetCaster()->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_MAGE, ICON_MAGE_SHATTER, EFFECT_1)) - { - int32 damage = GetHitDamage(); - AddPct(damage, aurEff->GetAmount()); - SetHitDamage(damage); - } - } - } + bool Validate(SpellInfo const* /*spell*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_MAGE_CHILLED)) + return false; + return true; + } + + void HandleHit(SpellEffIndex /*effIndex*/) + { + if (Unit* target = GetHitUnit()) + GetCaster()->CastSpell(target, SPELL_MAGE_CHILLED, true); + } - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_mage_frostbolt_SpellScript::RecalculateDamage, EFFECT_1, SPELL_EFFECT_SCHOOL_DAMAGE); - } - }; + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_mage_frostbolt_SpellScript::HandleHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } + }; - SpellScript* GetSpellScript() const override - { - return new spell_mage_frostbolt_SpellScript(); - } + SpellScript* GetSpellScript() const override + { + return new spell_mage_frostbolt_SpellScript(); + } }; // 56372 - Glyph of Ice Block |