void Reset() override { m_bIsPlatformPhase = true; m_uiPlatformPhase = 0; m_uiExplosionTimer = 0; m_uiExplosionExpireTimer = 0; m_uiTeleportTimer = 20000; m_uiFrostBombTimer = 5000; m_uiTimeBombTimer = urand(10000, 15000); ResetPlatformVariables(); std::random_shuffle(m_vuiTrashPacksIds.begin(), m_vuiTrashPacksIds.end()); }
void EnterEvadeMode() override { // Don't evade while casting explosion if (m_uiExplosionExpireTimer) return; if (m_bIsPlatformPhase) { m_creature->RemoveAllAurasOnEvade(); m_creature->DeleteThreatList(); m_creature->CombatStop(true); m_creature->SetLootRecipient(NULL); ResetPlatformVariables(); } else ScriptedAI::EnterEvadeMode(); }
void EnterEvadeMode() override { // Don't evade while casting explosion if (m_uiExplosionExpireTimer) return; if (m_bIsPlatformPhase) { m_creature->RemoveAllAurasOnEvade(); m_creature->DeleteThreatList(); m_creature->CombatStop(true); m_creature->SetLootRecipient(NULL); ResetPlatformVariables(); } else { // Teleport to home position, in order to override the movemaps m_creature->NearTeleportTo(aOculusBossSpawnLocs[0][0], aOculusBossSpawnLocs[0][1], aOculusBossSpawnLocs[0][2], aOculusBossSpawnLocs[0][3]); ScriptedAI::EnterEvadeMode(); } }