diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_warrior.cpp | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 942cf9e169e..16df4f1dc3b 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -68,6 +68,7 @@ enum WarriorSpells SPELL_WARRIOR_SHOCKWAVE_STUN = 132168, SPELL_WARRIOR_STOICISM = 70845, SPELL_WARRIOR_STORM_BOLT_STUN = 132169, + SPELL_WARRIOR_STORM_BOLTS = 436162, SPELL_WARRIOR_STRATEGIST = 384041, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_1 = 12723, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK_2 = 26654, @@ -631,20 +632,44 @@ class spell_warr_storm_bolt : public SpellScript { bool Validate(SpellInfo const* /*spellInfo*/) override { - return ValidateSpellInfo - ({ - SPELL_WARRIOR_STORM_BOLT_STUN - }); + return ValidateSpellInfo({ SPELL_WARRIOR_STORM_BOLT_STUN }); } - void HandleOnHit(SpellEffIndex /*effIndex*/) + void HandleOnHit(SpellEffIndex /*effIndex*/) const { GetCaster()->CastSpell(GetHitUnit(), SPELL_WARRIOR_STORM_BOLT_STUN, true); } void Register() override { - OnEffectHitTarget += SpellEffectFn(spell_warr_storm_bolt::HandleOnHit, EFFECT_1, SPELL_EFFECT_DUMMY); + OnEffectHitTarget += SpellEffectFn(spell_warr_storm_bolt::HandleOnHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } +}; + +// 107570 - Storm Bolt +class spell_warr_storm_bolts: public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_WARRIOR_STORM_BOLTS }); + } + + bool Load() override + { + return !GetCaster()->HasAura(SPELL_WARRIOR_STORM_BOLTS); + } + + void FilterTargets(std::list<WorldObject*>& targets) const + { + targets.clear(); + + if (Unit* target = GetExplTargetUnit()) + targets.push_back(target); + } + + void Register() override + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_warr_storm_bolts::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY); } }; @@ -856,6 +881,7 @@ void AddSC_warrior_spell_scripts() RegisterSpellScript(spell_warr_shield_charge); RegisterSpellScript(spell_warr_shockwave); RegisterSpellScript(spell_warr_storm_bolt); + RegisterSpellScript(spell_warr_storm_bolts); RegisterSpellScript(spell_warr_strategist); RegisterSpellScript(spell_warr_sudden_death); RegisterSpellScript(spell_warr_sweeping_strikes); |