*Add cooldown timer for boss Grand Magus Telestra.

--HG--
branch : trunk
This commit is contained in:
Necroo
2009-07-19 13:36:55 +02:00
parent b7ac1c253b
commit a91296aec6
@@ -83,6 +83,7 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI
uint32 SPELL_ICE_NOVA_Timer; uint32 SPELL_ICE_NOVA_Timer;
uint32 SPELL_FIREBOMB_Timer; uint32 SPELL_FIREBOMB_Timer;
uint32 SPELL_GRAVITY_WELL_Timer; uint32 SPELL_GRAVITY_WELL_Timer;
uint32 Cooldown;
void Reset() void Reset()
{ {
@@ -91,6 +92,7 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI
SPELL_ICE_NOVA_Timer = 7000; SPELL_ICE_NOVA_Timer = 7000;
SPELL_FIREBOMB_Timer = 0; SPELL_FIREBOMB_Timer = 0;
SPELL_GRAVITY_WELL_Timer = 15000; SPELL_GRAVITY_WELL_Timer = 15000;
Cooldown = 0;
FireMagusGUID = 0; FireMagusGUID = 0;
FrostMagusGUID = 0; FrostMagusGUID = 0;
@@ -238,26 +240,44 @@ struct TRINITY_DLL_DECL boss_magus_telestraAI : public ScriptedAI
return; return;
} }
if(Cooldown)
{
if(Cooldown < diff)
Cooldown = 0;
else
{
Cooldown -= diff;
return;
}
}
if (SPELL_ICE_NOVA_Timer < diff) if (SPELL_ICE_NOVA_Timer < diff)
{ {
m_creature->CastStop();
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0)) if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
{
DoCast(target, HeroicMode ? SPELL_ICE_NOVA_H : SPELL_ICE_NOVA_N); DoCast(target, HeroicMode ? SPELL_ICE_NOVA_H : SPELL_ICE_NOVA_N);
Cooldown = 1500;
}
SPELL_ICE_NOVA_Timer = 15000; SPELL_ICE_NOVA_Timer = 15000;
}else SPELL_ICE_NOVA_Timer -=diff; }else SPELL_ICE_NOVA_Timer -=diff;
if (SPELL_GRAVITY_WELL_Timer < diff) if (SPELL_GRAVITY_WELL_Timer < diff)
{ {
m_creature->CastStop();
if (Unit* target = m_creature->getVictim()) if (Unit* target = m_creature->getVictim())
{
DoCast(target, SPELL_GRAVITY_WELL); DoCast(target, SPELL_GRAVITY_WELL);
Cooldown = 6000;
}
SPELL_GRAVITY_WELL_Timer = 15000; SPELL_GRAVITY_WELL_Timer = 15000;
}else SPELL_GRAVITY_WELL_Timer -=diff; }else SPELL_GRAVITY_WELL_Timer -=diff;
if (SPELL_FIREBOMB_Timer < diff) if (SPELL_FIREBOMB_Timer < diff)
{ {
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0)) if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
{
DoCast(target, HeroicMode ? SPELL_FIREBOMB_H : SPELL_FIREBOMB_N); DoCast(target, HeroicMode ? SPELL_FIREBOMB_H : SPELL_FIREBOMB_N);
Cooldown = 2000;
}
SPELL_FIREBOMB_Timer = 2000; SPELL_FIREBOMB_Timer = 2000;
}else SPELL_FIREBOMB_Timer -=diff; }else SPELL_FIREBOMB_Timer -=diff;