From 807c3555b5631bf6441db0b90887b7e7713c9a99 Mon Sep 17 00:00:00 2001 From: SargeroDeV <83485584+SargeroDeV@users.noreply.github.com> Date: Mon, 15 May 2023 02:32:49 -0400 Subject: Scripts/Warrior: Implement Shield Charge (#28974) --- src/server/scripts/Spells/spell_warrior.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/server/scripts/Spells') diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 167794b7c23..3f199d9263e 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -55,6 +55,7 @@ enum WarriorSpells SPELL_WARRIOR_MORTAL_STRIKE = 12294, SPELL_WARRIOR_MORTAL_WOUNDS = 213667, SPELL_WARRIOR_RALLYING_CRY = 97463, + SPELL_WARRIOR_SHIELD_CHARGE_EFFECT = 385953, SPELL_WARRIOR_SHOCKWAVE = 46968, SPELL_WARRIOR_SHOCKWAVE_STUN = 132168, SPELL_WARRIOR_STOICISM = 70845, @@ -441,6 +442,27 @@ class spell_warr_rallying_cry : public SpellScript } }; +// 385952 - Shield Charge +class spell_warr_shield_charge : public SpellScript +{ + PrepareSpellScript(spell_warr_shield_charge); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_WARRIOR_SHIELD_CHARGE_EFFECT }); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + GetCaster()->CastSpell(GetHitUnit(), SPELL_WARRIOR_SHIELD_CHARGE_EFFECT, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_warr_shield_charge::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + // 46968 - Shockwave class spell_warr_shockwave : public SpellScript { @@ -689,6 +711,7 @@ void AddSC_warrior_spell_scripts() RegisterSpellScript(spell_warr_item_t10_prot_4p_bonus); RegisterSpellScript(spell_warr_mortal_strike); RegisterSpellScript(spell_warr_rallying_cry); + RegisterSpellScript(spell_warr_shield_charge); RegisterSpellScript(spell_warr_shockwave); RegisterSpellScript(spell_warr_storm_bolt); RegisterSpellScript(spell_warr_sudden_death); -- cgit v1.2.3