void instance_violet_hold::OnPlayerEnter(Player* /*pPlayer*/) { UpdateWorldState(m_auiEncounter[TYPE_MAIN] == IN_PROGRESS ? true : false); if (m_vRandomBosses.empty()) { SetRandomBosses(); ResetAll(); } }
void instance_violet_hold::SetData(uint32 uiType, uint32 uiData) { debug_log("SD2: instance_violet_hold: SetData got type % u, data %u.", uiType, uiData); switch(uiType) { case TYPE_MAIN: { if (uiData == m_auiEncounter[0]) return; switch(uiData) { case NOT_STARTED: ResetAll(); break; case IN_PROGRESS: DoUseDoorOrButton(m_uiDoorSealGUID); SetRandomBosses(); UpdateWorldState(); m_uiPortalId = urand(0, 2); m_uiPortalTimer = 15000; break; case FAIL: if (Creature* pSinclari = instance->GetCreature(m_uiSinclariGUID)) pSinclari->Respawn(); break; case DONE: break; case SPECIAL: break; } m_auiEncounter[0] = uiData; break; } case TYPE_SEAL: m_auiEncounter[1] = uiData; break; case TYPE_PORTAL: { switch(uiData) { case SPECIAL: // timer to next m_uiPortalTimer = 90000; break; case DONE: // portal done, set timer to 5 secs m_uiPortalTimer = 5000; break; } m_auiEncounter[2] = uiData; break; } } }