aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2013-07-17 00:42:46 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2013-07-17 00:42:46 +0200
commit187878f9c4da4fcc9fc373e72c7aa6c55d40c0e2 (patch)
treeacd714d7da948001627d83c49a9558ba64543d1c /src/server/scripts/Northrend
parent8edbc2152e6f8afa7c98e3b836948b280609b63b (diff)
Core/Spells: Update warrior/utgarde keep "Second Wind" for 4.3.4
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
index 9c086d8bd81..1cd0fde4107 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
@@ -21,6 +21,11 @@
#include "SpellScript.h"
#include "SpellAuraEffects.h"
+enum Spells
+{
+ SPELL_UK_SECOUND_WIND_TRIGGER = 42771
+};
+
uint32 entry_search[3] =
{
186609,
@@ -337,10 +342,56 @@ public:
}
};
+class spell_uk_second_wind_proc : public SpellScriptLoader
+{
+ public:
+ spell_uk_second_wind_proc() : SpellScriptLoader("spell_uk_second_wind_proc") { }
+
+ class spell_uk_second_wind_proc_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_uk_second_wind_proc_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_UK_SECOUND_WIND_TRIGGER))
+ return false;
+ return true;
+ }
+
+ bool CheckProc(ProcEventInfo& eventInfo)
+ {
+ if (eventInfo.GetProcTarget() == GetTarget())
+ return false;
+ if (!(eventInfo.GetDamageInfo() || eventInfo.GetDamageInfo()->GetSpellInfo()->GetAllEffectsMechanicMask() & ((1 << MECHANIC_ROOT) | (1 << MECHANIC_STUN))))
+ return false;
+ return true;
+ }
+
+ void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
+ {
+ PreventDefaultAction();
+ GetTarget()->CastCustomSpell(SPELL_UK_SECOUND_WIND_TRIGGER, SPELLVALUE_BASE_POINT0, 5, GetTarget(), true, NULL, aurEff);
+ }
+
+ void Register() OVERRIDE
+ {
+ DoCheckProc += AuraCheckProcFn(spell_uk_second_wind_proc_AuraScript::CheckProc);
+ OnEffectProc += AuraEffectProcFn(spell_uk_second_wind_proc_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
+ }
+
+ };
+
+ AuraScript* GetAuraScript() const OVERRIDE
+ {
+ return new spell_uk_second_wind_proc_AuraScript();
+ }
+};
+
void AddSC_utgarde_keep()
{
new npc_dragonflayer_forge_master();
new npc_enslaved_proto_drake();
new spell_ticking_time_bomb();
new spell_fixate();
+ new spell_uk_second_wind_proc();
}