bool SetBossState(uint32 type, EncounterState state) override { if (!InstanceScript::SetBossState(type, state)) return false; switch (type) { case DATA_DRAKOS: if (state == DONE) { DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1); DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, CentrifugueConstructCounter); FreeDragons(); if (Creature* varos = instance->GetCreature(VarosGUID)) varos->SetPhaseMask(1, true); events.ScheduleEvent(EVENT_VAROS_INTRO, 15000); } break; case DATA_VAROS: if (state == DONE) { DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0); if (Creature* urom = instance->GetCreature(UromGUID)) urom->SetPhaseMask(1, true); } break; case DATA_UROM: if (state == DONE) { if (Creature* eregos = instance->GetCreature(EregosGUID)) { eregos->SetPhaseMask(1, true); GreaterWhelps(); events.ScheduleEvent(EVENT_EREGOS_INTRO, 5000); } } break; case DATA_EREGOS: if (state == DONE) { if (GameObject* cache = instance->GetGameObject(EregosCacheGUID)) { cache->SetRespawnTime(cache->GetRespawnDelay()); cache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } } break; } return true; }
bool SetBossState(uint32 type, EncounterState state) { if (!InstanceScript::SetBossState(type, state)) return false; switch (type) { case DATA_DRAKOS_EVENT: if (state == DONE) { DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1); DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, centrifugueConstructCounter); OpenCageDoors(); FreeDragons(); if (Creature* varos = instance->GetCreature(varosGUID)) varos->SetPhaseMask(1, true); } break; case DATA_VAROS_EVENT: if (state == DONE) DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0); if (Creature* urom = instance->GetCreature(uromGUID)) urom->SetPhaseMask(1, true); break; case DATA_UROM_EVENT: if (state == DONE) { if (Creature* eregos = instance->GetCreature(eregosGUID)) { eregos->SetPhaseMask(1, true); GreaterWhelps(); } } break; case DATA_EREGOS_EVENT: if (state == DONE) DoRespawnGameObject(eregosCacheGUID, 7*DAY); break; } return true; }