diff options
author | DoctorKraft <david.serdobbel.bizness@gmail.com> | 2017-02-10 23:22:13 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-02-10 23:22:35 +0100 |
commit | e5e8537c3ef6cfc5d1bcb9c076a7c75f7e66a619 (patch) | |
tree | b445859344659f1dbb9c583dd94219352aee8034 /src | |
parent | 9ad50fb08c863d02520d0f5c642bf68291db764e (diff) |
Core/Spells: Fixed Victory Rush
Closes #19044
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_warrior.cpp | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 4b831b45043..6761b6b86ea 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -63,6 +63,8 @@ enum WarriorSpells SPELL_WARRIOR_UNRELENTING_ASSAULT_TRIGGER_2 = 64850, SPELL_WARRIOR_VIGILANCE_PROC = 50725, SPELL_WARRIOR_VENGEANCE = 76691, + SPELL_WARRIOR_VICTORIOUS = 32216, + SPELL_WARRIOR_VICTORY_RUSH_HEAL = 118779, SPELL_WARRIOR_HEROIC_LEAP_JUMP = 178368, SPELL_WARRIOR_GLYPH_OF_HEROIC_LEAP = 159708, SPELL_WARRIOR_GLYPH_OF_HEROIC_LEAP_BUFF = 133278, @@ -819,32 +821,45 @@ class spell_warr_sword_and_board : public SpellScriptLoader } }; -// 32216 - Victorious -// 82368 - Victorious -class spell_warr_victorious : public SpellScriptLoader +// 34428 - Victory Rush +class spell_warr_victory_rush : public SpellScriptLoader { public: - spell_warr_victorious() : SpellScriptLoader("spell_warr_victorious") { } + spell_warr_victory_rush() : SpellScriptLoader("spell_warr_victory_rush") { } - class spell_warr_victorious_AuraScript : public AuraScript + class spell_warr_victory_rush_SpellScript : public SpellScript { - PrepareAuraScript(spell_warr_victorious_AuraScript); + PrepareSpellScript(spell_warr_victory_rush_SpellScript); - void HandleEffectProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/) + bool Validate(SpellInfo const* /*spellInfo*/) override { - PreventDefaultAction(); - GetTarget()->RemoveAura(GetId()); + return ValidateSpellInfo + ({ + SPELL_WARRIOR_VICTORIOUS, + SPELL_WARRIOR_VICTORY_RUSH_HEAL + }); + } + + void HandleHeal() + { + if (!GetHitUnit()) + return; + + Unit* caster = GetCaster(); + + caster->CastSpell(caster, SPELL_WARRIOR_VICTORY_RUSH_HEAL, true); + caster->RemoveAurasDueToSpell(SPELL_WARRIOR_VICTORIOUS); } void Register() override { - OnEffectProc += AuraEffectProcFn(spell_warr_victorious_AuraScript::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); + AfterCast += SpellCastFn(spell_warr_victory_rush_SpellScript::HandleHeal); } }; - AuraScript* GetAuraScript() const override + SpellScript* GetSpellScript() const override { - return new spell_warr_victorious_AuraScript(); + return new spell_warr_victory_rush_SpellScript(); } }; @@ -1084,7 +1099,7 @@ void AddSC_warrior_spell_scripts() new spell_warr_sudden_death(); new spell_warr_sweeping_strikes(); new spell_warr_sword_and_board(); - new spell_warr_victorious(); + new spell_warr_victory_rush(); new spell_warr_vigilance(); new spell_warr_vigilance_trigger(); new spell_warr_heroic_leap(); |