Core/Spells: Fixed Evasive Maneuvers and Stop Time, spells from the Oculus drakes.

Closes #6670
Closes #6675
This commit is contained in:
Subv
2012-07-02 16:41:25 -05:00
parent c49bc934b8
commit 1292b732f7
4 changed files with 47 additions and 1 deletions
+8
View File
@@ -8205,6 +8205,14 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
CastSpell(victim, 27526, true, castItem, triggeredByAura);
return true;
}
// Evasive Maneuvers
case 50240:
{
// Remove a Evasive Charge
Aura* charge = GetAura(50241);
if (charge->ModStackAmount(-1, AURA_REMOVE_BY_ENEMY_SPELL))
RemoveAurasDueToSpell(50240);
}
}
break;
case SPELLFAMILY_MAGE:
+1
View File
@@ -1736,6 +1736,7 @@ AuraStateType SpellInfo::GetAuraState() const
switch (Id)
{
case 71465: // Divine Surge
case 50241: // Evasive Charges
return AURA_STATE_UNKNOWN22;
default:
break;
@@ -47,7 +47,9 @@ enum Drakes
NPC_VERDISA = 27657,
NPC_BELGARISTRASZ = 27658,
NPC_ETERNOS = 27659
NPC_ETERNOS = 27659,
SPELL_SHOCK_CHARGE = 49836,
};
enum Says
@@ -210,8 +212,40 @@ public:
}
};
class spell_gen_stop_time : public SpellScriptLoader
{
public:
spell_gen_stop_time() : SpellScriptLoader("spell_gen_stop_time") { }
class spell_gen_stop_time_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_stop_time_AuraScript);
void Apply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* caster = GetCaster();
if (!caster)
return;
Unit* target = GetTarget();
for (uint32 i = 0; i < 5; ++i)
caster->CastSpell(target, SPELL_SHOCK_CHARGE, false);
}
void Register()
{
AfterEffectApply += AuraEffectApplyFn(spell_gen_stop_time_AuraScript::Apply, EFFECT_0);
}
};
AuraScript* GetAuraScript() const
{
return new spell_gen_stop_time_AuraScript();
}
};
void AddSC_oculus()
{
new npc_oculus_drake();
new npc_image_belgaristrasz();
new spell_gen_stop_time();
}