diff options
author | SargeroDeV <83485584+SargeroDeV@users.noreply.github.com> | 2023-05-18 16:43:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-18 22:43:35 +0200 |
commit | 48820532e42b60566d9995e41eef280d64c6f452 (patch) | |
tree | a3d43b24c75f6186ee7f5dc70a7709c80ddd2b99 | |
parent | e943c695f2ff84cf1124a143437389867c930cfb (diff) |
Scripts/Warrior: Implement Shield Block (#29004)
-rw-r--r-- | sql/updates/world/master/2023_05_18_02_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_warrior.cpp | 23 |
2 files changed, 26 insertions, 0 deletions
diff --git a/sql/updates/world/master/2023_05_18_02_world.sql b/sql/updates/world/master/2023_05_18_02_world.sql new file mode 100644 index 00000000000..7dfc26f3e5c --- /dev/null +++ b/sql/updates/world/master/2023_05_18_02_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`= 2565; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(2565,'spell_warr_shield_block'); 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); |