diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-07-22 00:32:35 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-07-22 00:32:46 +0200 |
| commit | 95407b1b9d904488e25dff94c87fdce000192587 (patch) | |
| tree | 981b5e140bcf9f97721f837704ee1c294b23f57d /src/server/scripts | |
| parent | 6c21bbaaa47ba0701790dbcbdc34c9794a9bd7d9 (diff) | |
Core/Spells: Update/Convert warrior "Glyph of Sunder Armor" for 4.3.4
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Spells/spell_warrior.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index ad287e04a6d..56da8ced4e1 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -49,6 +49,7 @@ enum WarriorSpells SPELL_WARRIOR_SECOUND_WIND_TRIGGER_RANK_2 = 29842, SPELL_WARRIOR_SHIELD_SLAM = 23922, SPELL_WARRIOR_SLAM = 50782, + SPELL_WARRIOR_SUNDER_ARMOR = 58567, SPELL_WARRIOR_SWEEPING_STRIKES_EXTRA_ATTACK = 26654, SPELL_WARRIOR_TAUNT = 355, SPELL_WARRIOR_UNRELENTING_ASSAULT_RANK_1 = 46859, @@ -312,6 +313,57 @@ class spell_warr_execute : public SpellScriptLoader } }; +// 58387 - Glyph of Sunder Armor +class spell_warr_glyph_of_sunder_armor : public SpellScriptLoader +{ + public: + spell_warr_glyph_of_sunder_armor() : SpellScriptLoader("spell_warr_glyph_of_sunder_armor") { } + + class spell_warr_glyph_of_sunder_armor_AuraScript : public AuraScript + { + PrepareAuraScript(spell_warr_glyph_of_sunder_armor_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_WARRIOR_SUNDER_ARMOR)) + return false; + return true; + } + + bool Load() OVERRIDE + { + _target = NULL; + return true; + } + + bool CheckProc(ProcEventInfo& eventInfo) + { + _target = GetTarget()->SelectNearbyTarget(eventInfo.GetProcTarget()); + return _target; + } + + void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) + { + PreventDefaultAction(); + GetTarget()->CastSpell(_target, SPELL_WARRIOR_SUNDER_ARMOR, true, NULL, aurEff); + } + + void Register() OVERRIDE + { + DoCheckProc += AuraCheckProcFn(spell_warr_glyph_of_sunder_armor_AuraScript::CheckProc); + OnEffectProc += AuraEffectProcFn(spell_warr_glyph_of_sunder_armor_AuraScript::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); + } + + private: + Unit * _target; + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_warr_glyph_of_sunder_armor_AuraScript(); + } +}; + // 59725 - Improved Spell Reflection class spell_warr_improved_spell_reflection : public SpellScriptLoader { @@ -971,6 +1023,7 @@ void AddSC_warrior_spell_scripts() new spell_warr_concussion_blow(); new spell_warr_deep_wounds(); new spell_warr_execute(); + new spell_warr_glyph_of_sunder_armor(); new spell_warr_improved_spell_reflection(); new spell_warr_intimidating_shout(); new spell_warr_last_stand(); |
