aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrazom62 <none@none>2010-03-31 00:12:49 +0200
committerTrazom62 <none@none>2010-03-31 00:12:49 +0200
commite280d4e45bf8496cf92a6f33cf6753560325d0cc (patch)
treea0e5fb6aca89801e53c1081b8572e00ae83f87a7
parent7cc192e97361b705ef8f3e6c82015021842e8c8d (diff)
Fix Script Grand Magus Telestra to reappear when the 3 adds are killed.
Fixes issue #1382. --HG-- branch : trunk
-rw-r--r--src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp51
1 files changed, 22 insertions, 29 deletions
diff --git a/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp b/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp
index 84687732860..c5632f6c181 100644
--- a/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp
+++ b/src/scripts/northrend/nexus/nexus/boss_magus_telestra.cpp
@@ -163,13 +163,33 @@ struct boss_magus_telestraAI : public ScriptedAI
return 0;
}
+ void SummonedCreatureDespawn(Creature *summon)
+ {
+ if (summon->isAlive())
+ return;
+
+ if (summon->GetGUID() == uiFireMagusGUID)
+ {
+ bFireMagusDead = true;
+ bIsAchievementTimerRunning = true;
+ }
+ else if (summon->GetGUID() == uiFrostMagusGUID)
+ {
+ bFrostMagusDead = true;
+ bIsAchievementTimerRunning = true;
+ }
+ else if (summon->GetGUID() == uiArcaneMagusGUID)
+ {
+ bArcaneMagusDead = true;
+ bIsAchievementTimerRunning = true;
+ }
+ }
+
void UpdateAI(const uint32 diff)
{
//Return since we have no target
if (!UpdateVictim())
- {
return;
- }
if (bIsWaitingToAppear)
{
@@ -185,33 +205,6 @@ struct boss_magus_telestraAI : public ScriptedAI
if ((Phase == 1) ||(Phase == 3))
{
- Unit* pFireMagus;
- Unit* pFrostMagus;
- Unit* pArcaneMagus;
- if (uiFireMagusGUID)
- pFireMagus = Unit::GetUnit((*m_creature), uiFireMagusGUID);
- if (uiFrostMagusGUID)
- pFrostMagus = Unit::GetUnit((*m_creature), uiFrostMagusGUID);
- if (uiArcaneMagusGUID)
- pArcaneMagus = Unit::GetUnit((*m_creature), uiArcaneMagusGUID);
- if (pFireMagus && pFireMagus->isDead())
- {
- bFireMagusDead = true;
- if (!bIsAchievementTimerRunning)
- bIsAchievementTimerRunning = true;
- }
- if (pFrostMagus && pFrostMagus->isDead())
- {
- bFrostMagusDead = true;
- if (!bIsAchievementTimerRunning)
- bIsAchievementTimerRunning = true;
- }
- if (pArcaneMagus && pArcaneMagus->isDead())
- {
- bArcaneMagusDead = true;
- if (!bIsAchievementTimerRunning)
- bIsAchievementTimerRunning = true;
- }
if (bIsAchievementTimerRunning)
uiAchievementTimer += diff;
if (bFireMagusDead && bFrostMagusDead && bArcaneMagusDead)