From 48820532e42b60566d9995e41eef280d64c6f452 Mon Sep 17 00:00:00 2001 From: SargeroDeV <83485584+SargeroDeV@users.noreply.github.com> Date: Thu, 18 May 2023 16:43:35 -0400 Subject: Scripts/Warrior: Implement Shield Block (#29004) --- 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 ce1c3064a3f..5e41251a4aa 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -58,6 +58,7 @@ enum WarriorSpells SPELL_WARRIOR_MORTAL_STRIKE = 12294, SPELL_WARRIOR_MORTAL_WOUNDS = 213667, SPELL_WARRIOR_RALLYING_CRY = 97463, + SPELL_WARRIOR_SHIELD_BLOCK_AURA = 132404, SPELL_WARRIOR_SHIELD_CHARGE_EFFECT = 385953, SPELL_WARRIOR_SHOCKWAVE = 46968, SPELL_WARRIOR_SHOCKWAVE_STUN = 132168, @@ -512,6 +513,27 @@ class spell_warr_rallying_cry : public SpellScript } }; +// 2565 - Shield Block +class spell_warr_shield_block : public SpellScript +{ + PrepareSpellScript(spell_warr_shield_block); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_WARRIOR_SHIELD_BLOCK_AURA }); + } + + void HandleHitTarget(SpellEffIndex /*effIndex*/) + { + GetCaster()->CastSpell(nullptr, SPELL_WARRIOR_SHIELD_BLOCK_AURA, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_warr_shield_block::HandleHitTarget, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + // 385952 - Shield Charge class spell_warr_shield_charge : public SpellScript { @@ -782,6 +804,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_block); RegisterSpellScript(spell_warr_shield_charge); RegisterSpellScript(spell_warr_shockwave); RegisterSpellScript(spell_warr_storm_bolt); -- cgit v1.2.3