diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp | 23 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp | 22 |
2 files changed, 43 insertions, 2 deletions
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp index c5f7b402df6..cae3a17ff02 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp @@ -225,15 +225,21 @@ struct TRINITY_DLL_DECL mob_towering_infernalAI : public ScriptedAI { mob_towering_infernalAI(Creature *c) : ScriptedAI(c) { - Reset(); + pInstance = ((ScriptedInstance*)c->GetInstanceData()); + if(pInstance) + AnetheronGUID = pInstance->GetData64(DATA_ANETHERON); } uint32 ImmolationTimer; + uint32 CheckTimer; + uint64 AnetheronGUID; + ScriptedInstance* pInstance; void Reset() { DoCast(m_creature, SPELL_INFERNO_EFFECT); ImmolationTimer = 5000; + CheckTimer = 5000; } void Aggro(Unit *who) @@ -262,6 +268,21 @@ struct TRINITY_DLL_DECL mob_towering_infernalAI : public ScriptedAI void UpdateAI(const uint32 diff) { + if(CheckTimer < diff) + { + if(AnetheronGUID) + { + Creature* boss = Unit::GetCreature((*m_creature),AnetheronGUID); + if(!boss || (boss && boss->isDead())) + { + m_creature->setDeathState(JUST_DIED); + m_creature->RemoveCorpse(); + return; + } + } + CheckTimer = 5000; + }else CheckTimer -= diff; + //Return since we have no target if (!UpdateVictim()) return; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp index fac53fbda02..9bdee9887e5 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp @@ -188,17 +188,22 @@ struct TRINITY_DLL_DECL mob_lesser_doomguardAI : public hyjal_trashAI mob_lesser_doomguardAI(Creature *c) : hyjal_trashAI(c) { pInstance = ((ScriptedInstance*)c->GetInstanceData()); - Reset(); + if(pInstance) + AzgalorGUID = pInstance->GetData64(DATA_AZGALOR); } uint32 CrippleTimer; uint32 WarstompTimer; + uint32 CheckTimer; + uint64 AzgalorGUID; + ScriptedInstance* pInstance; void Reset() { CrippleTimer = 50000; WarstompTimer = 10000; DoCast(m_creature, SPELL_THRASH); + CheckTimer = 5000; } void Aggro(Unit *who) @@ -231,6 +236,21 @@ struct TRINITY_DLL_DECL mob_lesser_doomguardAI : public hyjal_trashAI void UpdateAI(const uint32 diff) { + if(CheckTimer < diff) + { + if(AzgalorGUID) + { + Creature* boss = Unit::GetCreature((*m_creature),AzgalorGUID); + if(!boss || (boss && boss->isDead())) + { + m_creature->setDeathState(JUST_DIED); + m_creature->RemoveCorpse(); + return; + } + } + CheckTimer = 5000; + }else CheckTimer -= diff; + //Return since we have no target if (!UpdateVictim() ) return; |