diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp index ddf6858ff6d..5388bd47ad8 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp @@ -44,7 +44,9 @@ enum eSpells // Runemaster Molgeim SPELL_SHIELD_OF_RUNES = 62274, + SPELL_SHIELD_OF_RUNES_BUFF = 62277, SPELL_SHIELD_OF_RUNES_H = 63489, + SPELL_SHIELD_OF_RUNES_H_BUFF = 63967, SPELL_SUMMON_RUNE_OF_POWER = 63513, SPELL_RUNE_OF_POWER = 61974, SPELL_RUNE_OF_DEATH = 62269, @@ -731,6 +733,37 @@ public: }; +class spell_shield_of_runes : public SpellScriptLoader +{ + public: + spell_shield_of_runes() : SpellScriptLoader("spell_shield_of_runes") { } + + class spell_shield_of_runes_AuraScript : public AuraScript + { + PrepareAuraScript(spell_shield_of_runes_AuraScript); + + void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes mode) + { + Unit* caster = GetCaster(); + if (!caster) + return; + + if (mode != AURA_REMOVE_BY_EXPIRE) + caster->CastSpell(caster, SPELL_SHIELD_OF_RUNES_BUFF, false); + } + + void Register() + { + OnEffectRemove += AuraEffectRemoveFn(spell_shield_of_runes_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB, AURA_EFFECT_HANDLE_REAL); + } + }; + + AuraScript* GetAuraScript() const + { + return new spell_shield_of_runes_AuraScript(); + } +}; + void AddSC_boss_assembly_of_iron() { new boss_steelbreaker(); @@ -739,4 +772,5 @@ void AddSC_boss_assembly_of_iron() new mob_lightning_elemental(); new mob_rune_of_summoning(); new mob_rune_of_power(); + new spell_shield_of_runes(); } |