public override void HandleInput() { if (IsActive) { switch (mode) { case MainGameScreenMode.Open: break; case MainGameScreenMode.Closed: if (isStorageMessageDisplayed) { if (InputManager.IsActionTriggered(InputManager.Action.Ok)) { mode = MainGameScreenMode.DelayOpening; AudioManager.PlayCue("doorOpen"); AudioManager.PlayMusic("bgCogsTurning"); } else if (InputManager.IsActionTriggered(InputManager.Action.ExitGame)) { ExitGame(true); } } break; case MainGameScreenMode.Opening: break; case MainGameScreenMode.SlotPanel: // move these backs into slotPanel and pickerPanel if (InputManager.IsActionTriggered(InputManager.Action.Back)) { helpPanel.Off(true); mode = MainGameScreenMode.Closing; AudioManager.PlayCue("doorClose"); slotPanel.Close(); return; } slotPanel.HandleInput(); break; case MainGameScreenMode.PickerPanel: if (InputManager.IsActionTriggered(InputManager.Action.Back)) { ShowConfirmEndSession(); return; } pickerPanel.HandleInput(); break; case MainGameScreenMode.PuzzlePanel: if (puzzlePanel.PanelState == PuzzlePanel.PuzzlePanelState.Running && InputManager.IsActionTriggered(InputManager.Action.Pause)) { PausePuzzlePanel(); } else { puzzlePanel.HandleInput(); } break; case MainGameScreenMode.CreditsPanel: break; case MainGameScreenMode.Paused: if (InputManager.IsActionTriggered(InputManager.Action.Pause)) { pauseMode = PauseMode.Stopping; } break; case MainGameScreenMode.Closing: break; case MainGameScreenMode.Exiting: break; } } }