diff options
author | Sebastian Valle <s.v.h21@hotmail.com> | 2013-11-03 12:39:21 -0500 |
---|---|---|
committer | Sebastian Valle <s.v.h21@hotmail.com> | 2013-11-03 12:39:21 -0500 |
commit | 428cf6b0ee27900cfd6c253ef21038bc1d6bac60 (patch) | |
tree | ba9fdd4c6273bf4c48604d5643288198dc9e3b25 /src | |
parent | bf2c0505ad7d14f99a0ea472f7031225657e338c (diff) |
Scripts/Spells: Fixed the warlocks' Fel Flame talent, now it adds to the duration of Immolate and Unstable Affliction.
Closes #8455
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_warlock.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp index bae21d0baea..7e0de4ce506 100644 --- a/src/server/scripts/Spells/spell_warlock.cpp +++ b/src/server/scripts/Spells/spell_warlock.cpp @@ -1431,6 +1431,45 @@ class spell_warl_unstable_affliction : public SpellScriptLoader } }; +// 77799 - Fel Flame +// Updated 4.3.4 +class spell_warl_fel_flame : public SpellScriptLoader +{ +public: + spell_warl_fel_flame() : SpellScriptLoader("spell_warl_fel_flame") { } + + class spell_warl_fel_flame_SpellScript : public SpellScript + { + PrepareSpellScript(spell_warl_fel_flame_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + return sSpellMgr->GetSpellInfo(SPELL_WARLOCK_IMMOLATE) && sSpellMgr->GetSpellInfo(SPELL_WARLOCK_UNSTABLE_AFFLICTION); + } + + void ScriptEffect(SpellEffIndex /*effIndex*/) + { + uint32 bonus = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster()) * IN_MILLISECONDS; + // Increase Immolate duration + if (Aura const* aura = GetHitUnit()->GetAura(SPELL_WARLOCK_IMMOLATE, GetCaster()->GetGUID())) + aura->SetDuration(aura->GetDuration() + bonus); + // Increase Unstable Affliction duration + if (Aura const* aura = GetHitUnit()->GetAura(SPELL_WARLOCK_UNSTABLE_AFFLICTION, GetCaster()->GetGUID())) + aura->SetDuration(aura->GetDuration() + bonus); + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_warl_fel_flame_SpellScript::ScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_warl_fel_flame_SpellScript(); + } +}; + void AddSC_warlock_spell_scripts() { new spell_warl_aftermath(); @@ -1463,4 +1502,5 @@ void AddSC_warlock_spell_scripts() new spell_warl_soul_swap_override(); new spell_warl_soulshatter(); new spell_warl_unstable_affliction(); + new spell_warl_fel_flame(); } |