// Update is called once per frame private IEnumerator Startup() { State = ProgramStateEnum.StartupScreen; // Wait for startup screen to finish startupScreen.Activate(State); logoObject.SetActive(true); while (startupScreen.IsActive) { yield return(null); } logoObject.SetActive(false); // See whether the player asked to quit switch (startupScreen.Result) { case ProgramStateEnum.Quitting: // Done! Application.Quit(); yield break; case ProgramStateEnum.ChooseRoom: default: // Move forward to room scanning break; } // Room scanning! StartCoroutine(RoomScanning()); // Room scanning will launch another loop, so break here yield break; }
public override void Activate(ProgramStateEnum state) { base.Activate(state); // TODO turn on all the bells & whistles etc LandingPadManager.Instance.PlaceLandingAndStartupPads(); // Provide feedback for placement StartCoroutine(ShowPlacementFeedback()); }
private IEnumerator Gameplay() { // Reset the old gameplay state //LanderGameplay.Instance.Reset(); // Show the controls screen State = ProgramStateEnum.ControlsDisplay; // Wait for the player to dismiss controlsScreen.Activate(State); while (controlsScreen.IsActive) { yield return(null); } // Now the player will choose where to place the landing pad State = ProgramStateEnum.LandingPadPlacement; // Wait for landing pad placement to finish placementScreen.Activate(State); while (placementScreen.IsActive) { yield return(null); } State = ProgramStateEnum.Gameplay; // Launch gameplay screen and wait for the result gameplayScreen.Activate(State); while (gameplayScreen.IsActive) { yield return(null); } State = ProgramStateEnum.GameplayFinished; gameplayFinishedScreen.Activate(State); while (gameplayFinishedScreen.IsActive) { yield return(null); } // Launch another loop based on the player's choice switch (gameplayFinishedScreen.Result) { case ProgramStateEnum.StartupScreen: StartCoroutine(Startup()); break; case ProgramStateEnum.ChooseRoom: default: StartCoroutine(Gameplay()); break; } yield break; }
public override void Activate(ProgramStateEnum state) { base.Activate(state); Debug.Log("Activating room scan screen for " + state); switch (state) { case ProgramStateEnum.ChooseRoom: // TEMP disable until finished with mesh caching Deactivate(); break; // TEMP /*chooseRoomMenu.gameObject.SetActive(true); * directionIndicator.TargetObject = chooseRoomMenu.gameObject; * RefreshRoomButtons(); * break;*/ case ProgramStateEnum.ScanOrLoadRoom: scanOrLoadRoomMenu.gameObject.SetActive(true); directionIndicator.TargetObject = scanOrLoadRoomMenu.gameObject; RefreshRoomButtons(); break; case ProgramStateEnum.SavingScan: // TEMP disable until finished with mesh caching Deactivate(); break; // TEMP /*saveRoomMenu.gameObject.SetActive(true); * directionIndicator.TargetObject = saveRoomMenu.gameObject; * break;*/ case ProgramStateEnum.ScanRoom: // Turn everything off and initiate room scan //chooseRoomMenu.gameObject.SetActive(false); scanOrLoadRoomMenu.gameObject.SetActive(false); saveRoomMenu.gameObject.SetActive(false); directionIndicator.TargetObject = null; RoomScanManager.Instance.ScanRoom(); StartCoroutine(ShowRoomScanFeedback()); break; default: Debug.LogError("Unknown state choice in " + name + ": " + state); break; } }
public override void Activate(ProgramStateEnum state) { base.Activate(state); // TEMP - show tutorial first, then input selection selectTutorialMenu.SetActive(true); // TEMP - disable normal flow /*if (LanderInput.Instance.MultipleInputSources) { * selectControlsMenu.SetActive(true); * } else { * selectTutorialMenu.SetActive(true); * }*/ }
private IEnumerator Start() { lowpass = TitleMusicCutoffHigh; State = ProgramStateEnum.Initializing; logoObject.SetActive(false); while (ContentStartPosition != null && ContentStartPosition.activeSelf) { // Wait for the fitbox to be dismissed yield return(null); } // Start the main program loop StartCoroutine(Startup()); yield break; }
private IEnumerator RoomScanning() { // Choose which room scanning state we want // If we haven't chosen a room, scan or load a room if (RoomScanManager.Instance.CurrentRoom == RoomScanManager.RoomEnum.None) { // If we have saved rooms, let the player choose one if (RoomScanManager.Instance.HasSavedRooms) { State = ProgramStateEnum.ScanOrLoadRoom; } else { // Otherwise, just begin scan immediately State = ProgramStateEnum.ScanRoom; } } else { // If we have chosen a room, let them continue or change State = ProgramStateEnum.ChooseRoom; } // Wait for room scan screen to finish roomScanScreen.Activate(State); while (roomScanScreen.IsActive) { yield return(null); } // Tell the environment generator to start placing rocks and stuff EnvironmentManager.Instance.GenerateDynamicEnvironment(); // Gameplay! StartCoroutine(Gameplay()); // Gameplay will launch another loop, so break here yield break; }
public override void Activate(ProgramStateEnum state) { base.Activate(state); StartCoroutine(ShowGameplayFeedback()); }
public override void Activate(ProgramStateEnum state) { base.Activate(state); startupTargetObject = new GameObject("Startup target object"); StartCoroutine(ShowGameplayFeedback()); }
public virtual void Activate(ProgramStateEnum state) { isActive = true; gameScreenResult = state; directionIndicator.TargetObject = headsUpTarget; }
public override void Activate(ProgramStateEnum state) { base.Activate(state); startupScreenMenuParent.gameObject.SetActive(true); startupMenu.SetActive(true); }