void Cheats() { #if UNITY_EDITOR if (UnityEngine.Input.GetKeyDown(KeyCode.I)) { DataStorage.StartOnWave++; MetaState.setCoefficients(DataStorage.StartOnWave); } else if (UnityEngine.Input.GetKeyDown(KeyCode.K)) { DataStorage.StartOnWave--; if (DataStorage.StartOnWave < 0) { DataStorage.StartOnWave = 0; } MetaState.setCoefficients(DataStorage.StartOnWave); } if (UnityEngine.Input.GetKeyDown(KeyCode.J)) { DataStorage.Money -= 100000; } else if (UnityEngine.Input.GetKeyDown(KeyCode.L)) { DataStorage.Money += 100000; } #endif }
void Update() { if (pendingNewMetaState != MetaState.None) { currentMetaState = pendingNewMetaState; pendingNewMetaState = MetaState.None; } }
protected void RestorePlayer(GameState gs) { MetaState mgs = MetaState.Instance; GameObject player = WorldUtils.GetPlayerObject(); RestorableData prd = gs.PlayerWorldState; if (prd != null) { if (player == null) { //spawn the player object in player = Instantiate(CoreUtils.LoadResource <GameObject>("Entities/" + "spec_player"), transform) as GameObject; player.name = "Player"; if (mgs.TransitionType == SceneTransitionType.LoadGame) { player.GetComponent <PlayerRestorableComponent>().Restore(prd); } else { // get intent and move RestorePlayerToIntent(mgs, player); } } else { //restore player if relevant, warn either way if (mgs.TransitionType == SceneTransitionType.LoadGame) { player.GetComponent <PlayerRestorableComponent>().Restore(prd); Debug.LogWarning("Player already exists, restoring anyway"); } else { //if an intent exists, move RestorePlayerToIntent(mgs, player); Debug.LogWarning("Player already exists"); } } } else { if (player == null) { player = Instantiate(CoreUtils.LoadResource <GameObject>("Entities/" + "spec_player"), transform) as GameObject; player.name = "Player"; } RestorePlayerToIntent(mgs, player); //warn that no player data exists Debug.LogWarning("No player world data exists!"); } ScriptingModule.CallHooked(ScriptHook.OnPlayerSpawn, this, player); }
protected void SendMetaMessage(MetaState state, string chatMember = null) { var metaMessage = new MetaMessage(state, GroupChat.ChatMember); var json = JsonConvert.SerializeObject(metaMessage); var chatMessage = GroupChat.Encrypt(json); var queue = GroupChat.SharedSecret.GroupChatName + (chatMember != null ? $".{chatMember}" : ""); Model.BasicPublish("amq.fanout", queue, true, new BasicProperties(), BinaryFormatter <ChatMessage> .ToBinary(chatMessage)); }
IEnumerator LoadStage() { MetaState.reset(menu.SelectedWave); AppMain.top_state = new Game(); AppMain.DisplayAnchor = true; yield return(new WaitForSeconds(0.2f)); menu.PortraitsHide(); Play(HashIDs.menu.Outtro); menu.Fade(0, 0.5f); }
public void TestSameChannel() { MetaState metaState = new MetaState(4, 2, 120, new KeySignature(Tonic.C, Scale.MAJOR)); Region region = new Region(new List <TimedNote>(notes), metaState); Region expected = new Region(new List <TimedNote>(notesSameChannel), metaState); transform.Apply(region); Assert.Equal(expected, region); }
/// <summary> /// Changes to a new scene, setting up state and calling transitions appropriately /// </summary> public static void ChangeScene(string scene, bool skipLoading) { MetaState mgs = MetaState.Instance; mgs.PreviousScene = SceneManager.GetActiveScene().name; mgs.NextScene = scene; mgs.LoadSave = null; mgs.TransitionType = SceneTransitionType.ChangeScene; mgs.SkipLoadingScreen = skipLoading; TryGetSceneController().Ref()?.ExitScene(); //run scene exit routine if a scene controller exists SceneManager.LoadScene(CoreParams.LoadingScene); //TODO put loading scene name somewhere }
void Update() { if (pendingNewMetaState != MetaState.None) { currentMetaState = pendingNewMetaState; pendingNewMetaState = MetaState.None; } if (currentMetaState == MetaState.Dungeon) { Screen.showCursor = false; } else { Screen.showCursor = true; } }
/// <summary> /// Loads a saved game to state and transitions to its scene /// </summary> /// <param name="saveName">The name of the save file, with prefix and extension but without path</param> public static void LoadGame(string saveName, bool force) { if (!force && !CoreParams.AllowSaveLoad) { throw new NotSupportedException("Save/Load is disabled in core params!"); } MetaState.Instance.Clear(); MetaState mgs = MetaState.Instance; mgs.LoadSave = saveName; mgs.TransitionType = SceneTransitionType.LoadGame; SceneManager.LoadScene(CoreParams.LoadingScene); }
/// <summary> /// Sets parameters and loads a different scene /// </summary> public static void ChangeScene(string scene, string spawnPoint, Vector3 position, Quaternion rotation, bool skipLoading) { MetaState mgs = MetaState.Instance; if (spawnPoint != null) { mgs.PlayerIntent = new PlayerSpawnIntent(spawnPoint); //handle string.Empty as default spawn point } else { mgs.PlayerIntent = new PlayerSpawnIntent(position, rotation); } SharedUtils.ChangeScene(scene, skipLoading); }
private void RestorePlayerToIntent(MetaState mgs, GameObject player) { if (mgs.PlayerIntent != null) { if (!string.IsNullOrEmpty(mgs.PlayerIntent.SpawnPoint)) { GameObject spawnPoint = WorldUtils.FindPlayerSpawn(mgs.PlayerIntent.SpawnPoint); if (spawnPoint != null) { player.transform.position = spawnPoint.transform.position; player.transform.rotation = spawnPoint.transform.rotation; return; } } else if (mgs.PlayerIntent.SpawnPoint != null) //not null, but is empty { GameObject spawnPoint = WorldUtils.FindPlayerSpawn(); if (spawnPoint != null) { player.transform.position = spawnPoint.transform.position; player.transform.rotation = spawnPoint.transform.rotation; return; } } else { player.transform.position = mgs.PlayerIntent.Position; player.transform.rotation = mgs.PlayerIntent.Rotation; return; } Debug.LogWarning($"Failed to restore player to spawn point from player intent because spawn point \"{mgs.PlayerIntent.SpawnPoint}\" could not be found!"); } //else { GameObject spawnPoint = WorldUtils.FindPlayerSpawn(); if (spawnPoint != null) { player.transform.position = spawnPoint.transform.position; player.transform.rotation = spawnPoint.transform.rotation; } //Debug.LogWarning("No player spawn intent exists!"); } }
/// <summary> /// Loads a saved game to state and transitions to its scene /// </summary> public static void LoadGame(string saveName) { MetaState.Instance.Clear(); MetaState mgs = MetaState.Instance; mgs.LoadSave = saveName; mgs.TransitionType = SceneTransitionType.LoadGame; if (CoreParams.UseDirectSceneTransitions) { throw new NotImplementedException(); //TODO move LoadingSceneController functionality here or something } else { SceneManager.LoadScene("LoadingScene"); } }
public void SetButton(OnClickItem item) { menu.SetActiveContextButtons(false, false); switch (item.item) { case MenuItem.MainMenu: { transitionID = MenuState.Title; } break; case MenuItem.Store: { transitionID = MenuState.Store; } break; } switch (item.item) { case MenuItem.MainMenu: case MenuItem.Store: { AppMain.HasWon = false; AppMain.DisplayAnchor = false; MetaState.hardcore_mode = false; AppMain.tutorial.SetLesson(Lesson.NONE); AppMain.tutorial.SetDisplay(false); AppMain.top_state.child_state.Dispose(); AppMain.top_state.child_state = null; Game.instance = null; Tracker.EndMode(MetaState.hardcore_mode, AppMain.MainMenu.DayName(MetaState.wave_number), MetaState.hardcore_mode ? MetaState.hardcore_score : DataStorage.Money); menu.SetActiveDayName(false, true); } break; case MenuItem.RetryWave: case MenuItem.NextWave: { MetaState.resetWave(AppMain.HasWon); AppMain.HasWon = false; AppMain.top_state.Dispose(); AppMain.top_state = new Game(); } break; } objectives.Play(HashIDs.menu.Outtro); Play(HashIDs.menu.Outtro); menu.Fade(0, 0.3f); }
void NoStorageCallback(IAsyncResult result) { if (0 == Guide.EndShowMessageBox(result)) { deviceSelected = true; } else { if (metaState == MetaState.SplashScreen) { splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } else { backToRetry = true; showRetry = false; } } }
void SetMetaState(MetaState newState) { metaState = newState; switch (newState) { case MetaState.Playing: { wonMenu.SetActive(false); Time.timeScale = 1f; break; } case MetaState.Won: { Time.timeScale = 0f; wonMenu.SetActive(true); break; } } }
void GetDevice(IAsyncResult result) { try { HighScoreTracker.device = StorageDevice.EndShowSelector(result); } catch { HighScoreTracker.device = null; } if (HighScoreTracker.device == null) { try { while (Guide.IsVisible == true) { System.Threading.Thread.Sleep(500); } if (Guide.IsVisible == false) { Guide.BeginShowMessageBox("No Storage Device Selected", "You will be unable to save your game progress or high scores.", new string[] { "OK" }, 0, MessageBoxIcon.None, NoStorageCallback, null); } } catch { splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } } else { deviceSelected = true; } }
private void RestorePlayerToIntent(MetaState mgs, GameObject player) { if (mgs.PlayerIntent != null) { if (!string.IsNullOrEmpty(mgs.PlayerIntent.SpawnPoint)) { GameObject spawnPoint = WorldUtils.FindObjectByTID(mgs.PlayerIntent.SpawnPoint); player.transform.position = spawnPoint.transform.position; player.transform.rotation = spawnPoint.transform.rotation; } else if (mgs.PlayerIntent.SpawnPoint != null) //not null, but is empty { GameObject spawnPoint = WorldUtils.FindObjectByTID("DefaultPlayerSpawn"); if (spawnPoint != null) { player.transform.position = spawnPoint.transform.position; player.transform.rotation = spawnPoint.transform.rotation; } } else { player.transform.position = mgs.PlayerIntent.Position; player.transform.rotation = mgs.PlayerIntent.Rotation; } } else { GameObject spawnPoint = WorldUtils.FindObjectByTID("DefaultPlayerSpawn"); if (spawnPoint != null) { player.transform.position = spawnPoint.transform.position; player.transform.rotation = spawnPoint.transform.rotation; } Debug.LogWarning("No player spawn intent exists!"); } }
void Start() { pendingNewMetaState = MetaState.None; currentMetaState = MetaState.MainMenu; }
protected override void Update(GameTime gameTime) { if (metaState == MetaState.InitialLoad) { splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } // Controls //if (GamePad.GetState(Game.playerIndex).Buttons.Back == ButtonState.Pressed) // this.Exit(); if (HighScoreTracker.device!=null && Keyboard.GetState().IsKeyDown(Keys.Escape)) { HighScoreData data = HighScoreTracker.LoadHighScores(); data.soundEffectsEnabled = gameSettings.soundEffectsEnabled; data.musicEnabled = gameSettings.musicEnabled; data.displayHelp = gameSettings.displayControls; data.wideScreen = gameSettings.wideScreen; data.keyboardControls = gameSettings.keyboardControls; HighScoreTracker.SaveHighScores(data); Logger.CloseLogger(); this.Exit(); } if (metaState == MetaState.SplashScreen) { if (MenuResult.GoToMainMenu == splashScreen.Update(gameTime)) { base.Initialize(); try { if (Guide.IsVisible == true) splashScreen.stillActive = true; else StorageDevice.BeginShowSelector(this.GetDevice, "Select Storage Device"); } catch { splashScreen.stillActive = true; } } } if (HighScoreTracker.device != null && HighScoreTracker.device.IsConnected == true) { showRetry = false; } if (backToRetry == true || (HighScoreTracker.device != null && showRetry == false && HighScoreTracker.device.IsConnected == false)) { if (Guide.IsVisible == false) { try { StorageDevice.BeginShowSelector(this.RetryDevice, "Select Storage Device"); backToRetry = false; showRetry = true; } catch { } } } if (metaState == MetaState.SplashScreen && deviceSelected==true) { HighScoreData data = HighScoreTracker.LoadHighScores(); gameSettings = new GameSettings(); gameSettings.displayControls = data.displayHelp; gameSettings.musicEnabled = data.musicEnabled; gameSettings.soundEffectsEnabled = data.soundEffectsEnabled; gameSettings.fullScreen = data.fullScreen; gameSettings.wideScreen = data.wideScreen; gameSettings.keyboardControls = data.keyboardControls; currentSettings = new Settings(); p1engine = new Engine(-1); mainMenu = new MainMenu(); pauseMenu = new PauseMenu(); summaryMenu = new SummaryMenu(false); gameOverMenu = new GameOverMenu(); selectMenu = new LevelSelectMenu(); tutorialLauncher = new TutorialLauncher(); settingsMenu = new Menu(MenuClass.SettingsMenu); currentSettings = new Settings(); p1engine = new Engine(-1); mainMenu = new MainMenu(); pauseMenu = new PauseMenu(); summaryMenu = new SummaryMenu(false); gameOverMenu = new GameOverMenu(); selectMenu = new LevelSelectMenu(); tutorialLauncher = new TutorialLauncher(); settingsMenu = new Menu(MenuClass.SettingsMenu); if(Guide.IsTrialMode) mainMenu.AddMenuItem(MenuResult.GoToTutorial, "Tutorial", "Learn to play Jellyfish, MD"); mainMenu.AddMenuItem(MenuResult.GoToTimeAttack, "Emergency Room", "Score as many points as you can within the \ntime limit."); mainMenu.AddMenuItem(MenuResult.GoToMoveChallenge, "Operation", "Score as many points as you can with a \nlimited number of moves."); mainMenu.AddMenuItem(MenuResult.GoToPuzzle, "Challenge", "Solve a series of unique challenges."); if(Guide.IsTrialMode==false) mainMenu.AddMenuItem(MenuResult.GoToTutorial, "Tutorial", "Learn to play Jellyfish, MD"); mainMenu.AddMenuItem(MenuResult.BuyFullGame, "Unlock Full Game", "Purchase the full version of Jellyfish, MD"); mainMenu.AddMenuItem(MenuResult.GoToJellyfishCity, "Jellyfish Parade", "Check in on your former patients!"); mainMenu.AddMenuItem(MenuResult.GoToSettings, "Settings", "Change settings for Jellyfish, MD"); mainMenu.AddMenuItem(MenuResult.Quit, "Quit", "Quit Jellyfish, MD??"); gameOverMenu.AddMenuItem(MenuResult.StartTimeAttack, "Replay"); gameOverMenu.AddMenuItem(MenuResult.GoToMainMenu, "Main Menu"); gameOverMenu.AddMenuItem(MenuResult.GoToLevelSelect, "Level Select"); settingsMenu.AddMenuItem(MenuResult.GoToMainMenu, "Return to Menu"); settingsMenu.AddMenuItem(MenuType.SoundToggle, "Sound Effects"); settingsMenu.AddMenuItem(MenuType.MusicToggle, "Music"); settingsMenu.AddMenuItem(MenuType.HelpToggle, "Help Overlay"); #if WINDOWS settingsMenu.AddMenuItem(MenuType.FullScreenToggle, "Full Screen"); settingsMenu.AddMenuItem(MenuType.WideScreenToggle, "Wide Screen"); #endif UpdateResolution(); metaState = MetaState.MainMenu; } if (metaState == MetaState.GamePlay && IsActive==true) { GameStopCause cause = p1engine.Update(gameTime); if (cause == GameStopCause.PAUSE) { pauseMenu = new PauseMenu(); metaState = MetaState.Paused; } if (cause == GameStopCause.END) { gameOverMenu.score = p1engine.currentScore; gameOverMenu.level = currentSettings.level; gameOverMenu.state = GameOverMenuState.SCORECHECK; summaryMenu = new SummaryMenu(true); if(currentSettings.mode==GameMode.MoveChallenge) summaryMenu.text = "Looks like you're out of moves, Doctor! \nLet's see how you did..."; if(currentSettings.mode == GameMode.TimeAttack) summaryMenu.text = "Time's up, Doctor! Let's see \nhow you did..."; MusicControl.PlayMenuMusic(); metaState = MetaState.Summary; } if (cause == GameStopCause.WIN) { gameOverMenu.score = Engine.clock.timeElapsed; gameOverMenu.level = currentSettings.level; gameOverMenu.state = GameOverMenuState.SCORECHECK; summaryMenu = new SummaryMenu(true); summaryMenu.text = "Way to go, Doctor! You did it!"; metaState = MetaState.Summary; MusicControl.PlayMenuMusic(); } if (cause == GameStopCause.TUTORIAL_TEXT) { TutorialStage.phase = TutorialPhase.Intro; summaryMenu = new SummaryMenu(true); summaryMenu.text = TutorialStage.IntroText(); if (summaryMenu.text == null) metaState = MetaState.GamePlay; summaryMenu.state = SummaryMenuState.READY; metaState = MetaState.Summary; } if (cause == GameStopCause.TUTORIAL_PASS) { TutorialStage.phase = TutorialPhase.Pass; String text = TutorialStage.SuccessText(); summaryMenu = new SummaryMenu(true); summaryMenu.text = text; metaState = MetaState.Summary; } if (cause == GameStopCause.TUTORIAL_FAIL) { TutorialStage.phase = TutorialPhase.Fail; String text = TutorialStage.FailureText(); summaryMenu = new SummaryMenu(false); summaryMenu.text = text; metaState = MetaState.Summary; } if (cause == GameStopCause.LOSE_STUCK) { summaryMenu = new SummaryMenu(false); summaryMenu.text = "Oh no! Looks like you're stuck! Try to be more \ncareful next time!"; gameOverMenu.state = GameOverMenuState.READY; metaState = MetaState.Summary; } if (cause == GameStopCause.LOSE_ERROR) { summaryMenu = new SummaryMenu(false); summaryMenu.text = "Oh no! You burst a " + currentSettings.dangerColorDisplay + " bubble! Try to be more \ncareful next time!"; gameOverMenu.state = GameOverMenuState.READY; metaState = MetaState.Summary; } } else if (metaState == MetaState.Paused) { MenuResult result = pauseMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { TutorialStage.phase = TutorialPhase.None; metaState = MetaState.MainMenu; } if (result == MenuResult.ResumeGame) { summaryMenu.state = SummaryMenuState.NURSEIN; metaState = MetaState.GamePlay; } if (result == MenuResult.GoToLevelSelect) { MusicControl.PlayMenuMusic(); if (currentSettings.mode == GameMode.TimeAttack) metaState = MetaState.Settings_TimeAttack; if (currentSettings.mode == GameMode.Puzzle) metaState = MetaState.Settings_Puzzle; if (currentSettings.mode == GameMode.MoveChallenge) metaState = MetaState.Settings_Move; } if (result == MenuResult.Replay) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } } else if (metaState == MetaState.Summary) { if (Game.currentSettings.mode==GameMode.Puzzle && gameOverMenu.state != GameOverMenuState.SCORECHECK) { Engine.clock.Update(gameTime); } MenuResult result = summaryMenu.Update(gameTime); if (TutorialStage.phase != TutorialPhase.None && TutorialStage.introIndex-1 == TutorialStage.controlLessonIndex) p1engine.Update(gameTime); if (result == MenuResult.GoToMainMenu) { TutorialStage.phase = TutorialPhase.None; metaState = MetaState.MainMenu; } if (result == MenuResult.Replay) { if (TutorialStage.phase == TutorialPhase.Fail) { p1engine.LoadTutorial(TutorialStage.lessonIndex); TutorialStage.phase = TutorialPhase.Intro; TutorialStage.failureIndex = 0; TutorialStage.introIndex = 0; TutorialStage.successIndex = 0; p1engine.firstResume = true; metaState = MetaState.GamePlay; } else if (TutorialStage.phase == TutorialPhase.Pass) { p1engine.LoadTutorial(TutorialStage.lessonIndex); TutorialStage.phase = TutorialPhase.Intro; TutorialStage.failureIndex = 0; TutorialStage.introIndex = 0; TutorialStage.successIndex = 0; p1engine.firstResume = false; metaState = MetaState.GamePlay; } else { p1engine = new Engine(-1); MusicControl.PlayGameMusic(); metaState = MetaState.GamePlay; } } if (result == MenuResult.Undo) { p1engine.Back(); metaState = MetaState.GamePlay; } if (result == MenuResult.GoToResults) { if (currentSettings.mode == GameMode.Tutorial) { if (TutorialStage.phase == TutorialPhase.Intro) { metaState = MetaState.GamePlay; } else if (TutorialStage.phase == TutorialPhase.Pass) { TutorialStage.lessonIndex++; if (TutorialStage.lessonIndex == TutorialStage.maxLesson) { TutorialStage.phase = TutorialPhase.None; summaryMenu = new SummaryMenu(false); metaState = MetaState.MainMenu; } else { //p1engine = new Engine(TutorialStage.lessonIndex); p1engine.LoadTutorial(TutorialStage.lessonIndex); p1engine.firstResume = true; //p1engine.gameState = State.VANISH; TutorialStage.phase = TutorialPhase.Intro; metaState = MetaState.GamePlay; } } else { } } else { metaState = MetaState.GameOver_TimeAttack; } } if (result == MenuResult.GoToLevelSelect) { MusicControl.PlayMenuMusic(); if (currentSettings.mode == GameMode.TimeAttack) metaState = MetaState.Settings_TimeAttack; if (currentSettings.mode == GameMode.Puzzle) metaState = MetaState.Settings_Puzzle; if (currentSettings.mode == GameMode.MoveChallenge) metaState = MetaState.Settings_Move; } } else if (metaState == MetaState.Settings_TimeAttack || metaState == MetaState.Settings_Puzzle || metaState == MetaState.Settings_Move) { MenuResult result = selectMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { System.Threading.Thread.Sleep(100); metaState = MetaState.MainMenu; } if (result == MenuResult.StartTimeAttack) { currentSettings = selectMenu.GetCurrentSettings(); currentSettings.level = selectMenu.currentLevel; p1engine = new Engine(-1); MusicControl.PlayGameMusic(); metaState = MetaState.GamePlay; } } else if (metaState == MetaState.GameOver_TimeAttack) { if (Engine.mode == ControlMode.AUTOMATED) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } else { MenuResult result = gameOverMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { metaState = MetaState.MainMenu; System.Threading.Thread.Sleep(100); } if (result == MenuResult.GoToLevelSelect) { selectMenu = new LevelSelectMenu(); selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; if (currentSettings.mode == GameMode.MoveChallenge) { metaState = MetaState.Settings_Move; selectMenu.cooldown = 250; selectMenu.currentLevel = gameSettings.moveChallengeViewLevel; selectMenu.levelList = SettingsLoader.LoadMoveCountLevels(); currentSettings.mode = GameMode.MoveChallenge; } if (currentSettings.mode == GameMode.TimeAttack) { metaState = MetaState.Settings_TimeAttack; selectMenu.cooldown = 250; selectMenu.currentLevel = gameSettings.timeAttackViewLevel; selectMenu.levelList = SettingsLoader.LoadTimeAttackLevels(); currentSettings.mode = GameMode.TimeAttack; } if (currentSettings.mode == GameMode.Puzzle) { metaState = MetaState.Settings_Puzzle; selectMenu.cooldown = 250; selectMenu.levelList = SettingsLoader.LoadPuzzleLevels(); selectMenu.currentLevel = gameSettings.puzzleViewLevel; currentSettings.mode = GameMode.Puzzle; } } if (result == MenuResult.StartTimeAttack) { p1engine = new Engine(-1); MusicControl.PlayGameMusic(); metaState = MetaState.GamePlay; } } } else if (metaState == MetaState.Settings) { MenuResult result = settingsMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { metaState = MetaState.MainMenu; } } else if (metaState == MetaState.JellyfishCity) { MenuResult result = jellyCity.Update(gameTime); if (result == MenuResult.GoToMainMenu) { metaState = MetaState.MainMenu; } } else if (metaState == MetaState.Tutorial) { MenuResult result = tutorialLauncher.Update(gameTime); if (result == MenuResult.StartTutorial) { summaryMenu.state = SummaryMenuState.READY; currentSettings = SettingsLoader.Tutorial(); p1engine = new Engine(0); p1engine.firstResume = true; metaState = MetaState.GamePlay; } } else if (metaState == MetaState.MainMenu) { MenuResult result = mainMenu.Update(gameTime); if (result == MenuResult.ReturnToSplashScreen) { HighScoreData data = HighScoreTracker.LoadHighScores(); data.soundEffectsEnabled = gameSettings.soundEffectsEnabled; data.musicEnabled = gameSettings.musicEnabled; data.displayHelp = gameSettings.displayControls; data.fullScreen = gameSettings.fullScreen; data.wideScreen = gameSettings.wideScreen; data.keyboardControls = gameSettings.keyboardControls; HighScoreTracker.SaveHighScores(data); deviceSelected = false; HighScoreTracker.device = null; if (HighScoreTracker.container != null) HighScoreTracker.container.Dispose(); HighScoreTracker.container = null; HighScoreTracker.cachedData = null; splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } if (result == MenuResult.BuyFullGame) { try { Guide.ShowMarketplace(Game.playerIndex); } catch (GamerPrivilegeException) { Guide.BeginShowMessageBox("Oops!", "The current controller is either not signed in or is unable to purchase games on XBox Live.", new string[] { "OK" }, 0, MessageBoxIcon.None, null, null); } catch { } } if (result == MenuResult.GoToSettings) { metaState = MetaState.Settings; } if (result == MenuResult.GoToTimeAttack) { metaState = MetaState.Settings_TimeAttack; selectMenu = new LevelSelectMenu(); selectMenu.levelList = SettingsLoader.LoadTimeAttackLevels(); selectMenu.currentLevel = gameSettings.timeAttackViewLevel; selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; currentSettings.mode = GameMode.TimeAttack; System.Threading.Thread.Sleep(100); } if (result == MenuResult.GoToPuzzle) { metaState = MetaState.Settings_Puzzle; selectMenu = new LevelSelectMenu(); selectMenu.levelList = SettingsLoader.LoadPuzzleLevels(); selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; selectMenu.currentLevel = gameSettings.puzzleViewLevel; currentSettings.mode = GameMode.Puzzle; System.Threading.Thread.Sleep(100); } if (result == MenuResult.GoToJellyfishCity) { metaState = MetaState.JellyfishCity; jellyCity = new JellyfishCity(); } if (result == MenuResult.GoToTutorial) { metaState = MetaState.Tutorial; TutorialStage.phase = TutorialPhase.Intro; TutorialStage.lessonIndex = 0; TutorialStage.loaded = false; tutorialLauncher = new TutorialLauncher(); } if (result == MenuResult.GoToMoveChallenge) { metaState = MetaState.Settings_Move; selectMenu = new LevelSelectMenu(); selectMenu.levelList = SettingsLoader.LoadMoveCountLevels(); selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; selectMenu.currentLevel = gameSettings.moveChallengeViewLevel; currentSettings.mode = GameMode.TimeAttack; } if (result == MenuResult.StartCollect) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } if (result == MenuResult.StartPuzzle) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } if (result == MenuResult.GoToSurvival) { metaState = MetaState.GamePlay; } if (result == MenuResult.Quit) { HighScoreData data = HighScoreTracker.LoadHighScores(); data.soundEffectsEnabled = gameSettings.soundEffectsEnabled; data.musicEnabled = gameSettings.musicEnabled; data.displayHelp = gameSettings.displayControls; data.fullScreen = gameSettings.fullScreen; data.wideScreen = gameSettings.wideScreen; data.keyboardControls = gameSettings.keyboardControls; HighScoreTracker.SaveHighScores(data); Logger.CloseLogger(); this.Exit(); } } base.Update(gameTime); }
void GetDevice(IAsyncResult result) { try { HighScoreTracker.device = StorageDevice.EndShowSelector(result); } catch { HighScoreTracker.device = null; } if (HighScoreTracker.device == null) { try { while (Guide.IsVisible == true) System.Threading.Thread.Sleep(500); if (Guide.IsVisible == false) { Guide.BeginShowMessageBox("No Storage Device Selected", "You will be unable to save your game progress or high scores.", new string[] { "OK" }, 0, MessageBoxIcon.None, NoStorageCallback, null); } } catch { splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } } else deviceSelected = true; }
void NoStorageCallback(IAsyncResult result) { if (0 == Guide.EndShowMessageBox(result)) deviceSelected = true; else { if (metaState == MetaState.SplashScreen) { splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } else { backToRetry = true; showRetry = false; } } }
public void SetNewMetaState(MetaState newMetaState) { pendingNewMetaState = newMetaState; }
protected override void Update(GameTime gameTime) { if (metaState == MetaState.InitialLoad) { splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } // Controls //if (GamePad.GetState(Game.playerIndex).Buttons.Back == ButtonState.Pressed) // this.Exit(); if (HighScoreTracker.device != null && Keyboard.GetState().IsKeyDown(Keys.Escape)) { HighScoreData data = HighScoreTracker.LoadHighScores(); data.soundEffectsEnabled = gameSettings.soundEffectsEnabled; data.musicEnabled = gameSettings.musicEnabled; data.displayHelp = gameSettings.displayControls; data.wideScreen = gameSettings.wideScreen; data.keyboardControls = gameSettings.keyboardControls; HighScoreTracker.SaveHighScores(data); Logger.CloseLogger(); this.Exit(); } if (metaState == MetaState.SplashScreen) { if (MenuResult.GoToMainMenu == splashScreen.Update(gameTime)) { base.Initialize(); try { if (Guide.IsVisible == true) { splashScreen.stillActive = true; } else { StorageDevice.BeginShowSelector(this.GetDevice, "Select Storage Device"); } } catch { splashScreen.stillActive = true; } } } if (HighScoreTracker.device != null && HighScoreTracker.device.IsConnected == true) { showRetry = false; } if (backToRetry == true || (HighScoreTracker.device != null && showRetry == false && HighScoreTracker.device.IsConnected == false)) { if (Guide.IsVisible == false) { try { StorageDevice.BeginShowSelector(this.RetryDevice, "Select Storage Device"); backToRetry = false; showRetry = true; } catch { } } } if (metaState == MetaState.SplashScreen && deviceSelected == true) { HighScoreData data = HighScoreTracker.LoadHighScores(); gameSettings = new GameSettings(); gameSettings.displayControls = data.displayHelp; gameSettings.musicEnabled = data.musicEnabled; gameSettings.soundEffectsEnabled = data.soundEffectsEnabled; gameSettings.fullScreen = data.fullScreen; gameSettings.wideScreen = data.wideScreen; gameSettings.keyboardControls = data.keyboardControls; currentSettings = new Settings(); p1engine = new Engine(-1); mainMenu = new MainMenu(); pauseMenu = new PauseMenu(); summaryMenu = new SummaryMenu(false); gameOverMenu = new GameOverMenu(); selectMenu = new LevelSelectMenu(); tutorialLauncher = new TutorialLauncher(); settingsMenu = new Menu(MenuClass.SettingsMenu); currentSettings = new Settings(); p1engine = new Engine(-1); mainMenu = new MainMenu(); pauseMenu = new PauseMenu(); summaryMenu = new SummaryMenu(false); gameOverMenu = new GameOverMenu(); selectMenu = new LevelSelectMenu(); tutorialLauncher = new TutorialLauncher(); settingsMenu = new Menu(MenuClass.SettingsMenu); if (Guide.IsTrialMode) { mainMenu.AddMenuItem(MenuResult.GoToTutorial, "Tutorial", "Learn to play Jellyfish, MD"); } mainMenu.AddMenuItem(MenuResult.GoToTimeAttack, "Emergency Room", "Score as many points as you can within the \ntime limit."); mainMenu.AddMenuItem(MenuResult.GoToMoveChallenge, "Operation", "Score as many points as you can with a \nlimited number of moves."); mainMenu.AddMenuItem(MenuResult.GoToPuzzle, "Challenge", "Solve a series of unique challenges."); if (Guide.IsTrialMode == false) { mainMenu.AddMenuItem(MenuResult.GoToTutorial, "Tutorial", "Learn to play Jellyfish, MD"); } mainMenu.AddMenuItem(MenuResult.BuyFullGame, "Unlock Full Game", "Purchase the full version of Jellyfish, MD"); mainMenu.AddMenuItem(MenuResult.GoToJellyfishCity, "Jellyfish Parade", "Check in on your former patients!"); mainMenu.AddMenuItem(MenuResult.GoToSettings, "Settings", "Change settings for Jellyfish, MD"); mainMenu.AddMenuItem(MenuResult.Quit, "Quit", "Quit Jellyfish, MD??"); gameOverMenu.AddMenuItem(MenuResult.StartTimeAttack, "Replay"); gameOverMenu.AddMenuItem(MenuResult.GoToMainMenu, "Main Menu"); gameOverMenu.AddMenuItem(MenuResult.GoToLevelSelect, "Level Select"); settingsMenu.AddMenuItem(MenuResult.GoToMainMenu, "Return to Menu"); settingsMenu.AddMenuItem(MenuType.SoundToggle, "Sound Effects"); settingsMenu.AddMenuItem(MenuType.MusicToggle, "Music"); settingsMenu.AddMenuItem(MenuType.HelpToggle, "Help Overlay"); #if WINDOWS settingsMenu.AddMenuItem(MenuType.FullScreenToggle, "Full Screen"); settingsMenu.AddMenuItem(MenuType.WideScreenToggle, "Wide Screen"); #endif UpdateResolution(); metaState = MetaState.MainMenu; } if (metaState == MetaState.GamePlay && IsActive == true) { GameStopCause cause = p1engine.Update(gameTime); if (cause == GameStopCause.PAUSE) { pauseMenu = new PauseMenu(); metaState = MetaState.Paused; } if (cause == GameStopCause.END) { gameOverMenu.score = p1engine.currentScore; gameOverMenu.level = currentSettings.level; gameOverMenu.state = GameOverMenuState.SCORECHECK; summaryMenu = new SummaryMenu(true); if (currentSettings.mode == GameMode.MoveChallenge) { summaryMenu.text = "Looks like you're out of moves, Doctor! \nLet's see how you did..."; } if (currentSettings.mode == GameMode.TimeAttack) { summaryMenu.text = "Time's up, Doctor! Let's see \nhow you did..."; } MusicControl.PlayMenuMusic(); metaState = MetaState.Summary; } if (cause == GameStopCause.WIN) { gameOverMenu.score = Engine.clock.timeElapsed; gameOverMenu.level = currentSettings.level; gameOverMenu.state = GameOverMenuState.SCORECHECK; summaryMenu = new SummaryMenu(true); summaryMenu.text = "Way to go, Doctor! You did it!"; metaState = MetaState.Summary; MusicControl.PlayMenuMusic(); } if (cause == GameStopCause.TUTORIAL_TEXT) { TutorialStage.phase = TutorialPhase.Intro; summaryMenu = new SummaryMenu(true); summaryMenu.text = TutorialStage.IntroText(); if (summaryMenu.text == null) { metaState = MetaState.GamePlay; } summaryMenu.state = SummaryMenuState.READY; metaState = MetaState.Summary; } if (cause == GameStopCause.TUTORIAL_PASS) { TutorialStage.phase = TutorialPhase.Pass; String text = TutorialStage.SuccessText(); summaryMenu = new SummaryMenu(true); summaryMenu.text = text; metaState = MetaState.Summary; } if (cause == GameStopCause.TUTORIAL_FAIL) { TutorialStage.phase = TutorialPhase.Fail; String text = TutorialStage.FailureText(); summaryMenu = new SummaryMenu(false); summaryMenu.text = text; metaState = MetaState.Summary; } if (cause == GameStopCause.LOSE_STUCK) { summaryMenu = new SummaryMenu(false); summaryMenu.text = "Oh no! Looks like you're stuck! Try to be more \ncareful next time!"; gameOverMenu.state = GameOverMenuState.READY; metaState = MetaState.Summary; } if (cause == GameStopCause.LOSE_ERROR) { summaryMenu = new SummaryMenu(false); summaryMenu.text = "Oh no! You burst a " + currentSettings.dangerColorDisplay + " bubble! Try to be more \ncareful next time!"; gameOverMenu.state = GameOverMenuState.READY; metaState = MetaState.Summary; } } else if (metaState == MetaState.Paused) { MenuResult result = pauseMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { TutorialStage.phase = TutorialPhase.None; metaState = MetaState.MainMenu; } if (result == MenuResult.ResumeGame) { summaryMenu.state = SummaryMenuState.NURSEIN; metaState = MetaState.GamePlay; } if (result == MenuResult.GoToLevelSelect) { MusicControl.PlayMenuMusic(); if (currentSettings.mode == GameMode.TimeAttack) { metaState = MetaState.Settings_TimeAttack; } if (currentSettings.mode == GameMode.Puzzle) { metaState = MetaState.Settings_Puzzle; } if (currentSettings.mode == GameMode.MoveChallenge) { metaState = MetaState.Settings_Move; } } if (result == MenuResult.Replay) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } } else if (metaState == MetaState.Summary) { if (Game.currentSettings.mode == GameMode.Puzzle && gameOverMenu.state != GameOverMenuState.SCORECHECK) { Engine.clock.Update(gameTime); } MenuResult result = summaryMenu.Update(gameTime); if (TutorialStage.phase != TutorialPhase.None && TutorialStage.introIndex - 1 == TutorialStage.controlLessonIndex) { p1engine.Update(gameTime); } if (result == MenuResult.GoToMainMenu) { TutorialStage.phase = TutorialPhase.None; metaState = MetaState.MainMenu; } if (result == MenuResult.Replay) { if (TutorialStage.phase == TutorialPhase.Fail) { p1engine.LoadTutorial(TutorialStage.lessonIndex); TutorialStage.phase = TutorialPhase.Intro; TutorialStage.failureIndex = 0; TutorialStage.introIndex = 0; TutorialStage.successIndex = 0; p1engine.firstResume = true; metaState = MetaState.GamePlay; } else if (TutorialStage.phase == TutorialPhase.Pass) { p1engine.LoadTutorial(TutorialStage.lessonIndex); TutorialStage.phase = TutorialPhase.Intro; TutorialStage.failureIndex = 0; TutorialStage.introIndex = 0; TutorialStage.successIndex = 0; p1engine.firstResume = false; metaState = MetaState.GamePlay; } else { p1engine = new Engine(-1); MusicControl.PlayGameMusic(); metaState = MetaState.GamePlay; } } if (result == MenuResult.Undo) { p1engine.Back(); metaState = MetaState.GamePlay; } if (result == MenuResult.GoToResults) { if (currentSettings.mode == GameMode.Tutorial) { if (TutorialStage.phase == TutorialPhase.Intro) { metaState = MetaState.GamePlay; } else if (TutorialStage.phase == TutorialPhase.Pass) { TutorialStage.lessonIndex++; if (TutorialStage.lessonIndex == TutorialStage.maxLesson) { TutorialStage.phase = TutorialPhase.None; summaryMenu = new SummaryMenu(false); metaState = MetaState.MainMenu; } else { //p1engine = new Engine(TutorialStage.lessonIndex); p1engine.LoadTutorial(TutorialStage.lessonIndex); p1engine.firstResume = true; //p1engine.gameState = State.VANISH; TutorialStage.phase = TutorialPhase.Intro; metaState = MetaState.GamePlay; } } else { } } else { metaState = MetaState.GameOver_TimeAttack; } } if (result == MenuResult.GoToLevelSelect) { MusicControl.PlayMenuMusic(); if (currentSettings.mode == GameMode.TimeAttack) { metaState = MetaState.Settings_TimeAttack; } if (currentSettings.mode == GameMode.Puzzle) { metaState = MetaState.Settings_Puzzle; } if (currentSettings.mode == GameMode.MoveChallenge) { metaState = MetaState.Settings_Move; } } } else if (metaState == MetaState.Settings_TimeAttack || metaState == MetaState.Settings_Puzzle || metaState == MetaState.Settings_Move) { MenuResult result = selectMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { System.Threading.Thread.Sleep(100); metaState = MetaState.MainMenu; } if (result == MenuResult.StartTimeAttack) { currentSettings = selectMenu.GetCurrentSettings(); currentSettings.level = selectMenu.currentLevel; p1engine = new Engine(-1); MusicControl.PlayGameMusic(); metaState = MetaState.GamePlay; } } else if (metaState == MetaState.GameOver_TimeAttack) { if (Engine.mode == ControlMode.AUTOMATED) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } else { MenuResult result = gameOverMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { metaState = MetaState.MainMenu; System.Threading.Thread.Sleep(100); } if (result == MenuResult.GoToLevelSelect) { selectMenu = new LevelSelectMenu(); selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; if (currentSettings.mode == GameMode.MoveChallenge) { metaState = MetaState.Settings_Move; selectMenu.cooldown = 250; selectMenu.currentLevel = gameSettings.moveChallengeViewLevel; selectMenu.levelList = SettingsLoader.LoadMoveCountLevels(); currentSettings.mode = GameMode.MoveChallenge; } if (currentSettings.mode == GameMode.TimeAttack) { metaState = MetaState.Settings_TimeAttack; selectMenu.cooldown = 250; selectMenu.currentLevel = gameSettings.timeAttackViewLevel; selectMenu.levelList = SettingsLoader.LoadTimeAttackLevels(); currentSettings.mode = GameMode.TimeAttack; } if (currentSettings.mode == GameMode.Puzzle) { metaState = MetaState.Settings_Puzzle; selectMenu.cooldown = 250; selectMenu.levelList = SettingsLoader.LoadPuzzleLevels(); selectMenu.currentLevel = gameSettings.puzzleViewLevel; currentSettings.mode = GameMode.Puzzle; } } if (result == MenuResult.StartTimeAttack) { p1engine = new Engine(-1); MusicControl.PlayGameMusic(); metaState = MetaState.GamePlay; } } } else if (metaState == MetaState.Settings) { MenuResult result = settingsMenu.Update(gameTime); if (result == MenuResult.GoToMainMenu) { metaState = MetaState.MainMenu; } } else if (metaState == MetaState.JellyfishCity) { MenuResult result = jellyCity.Update(gameTime); if (result == MenuResult.GoToMainMenu) { metaState = MetaState.MainMenu; } } else if (metaState == MetaState.Tutorial) { MenuResult result = tutorialLauncher.Update(gameTime); if (result == MenuResult.StartTutorial) { summaryMenu.state = SummaryMenuState.READY; currentSettings = SettingsLoader.Tutorial(); p1engine = new Engine(0); p1engine.firstResume = true; metaState = MetaState.GamePlay; } } else if (metaState == MetaState.MainMenu) { MenuResult result = mainMenu.Update(gameTime); if (result == MenuResult.ReturnToSplashScreen) { HighScoreData data = HighScoreTracker.LoadHighScores(); data.soundEffectsEnabled = gameSettings.soundEffectsEnabled; data.musicEnabled = gameSettings.musicEnabled; data.displayHelp = gameSettings.displayControls; data.fullScreen = gameSettings.fullScreen; data.wideScreen = gameSettings.wideScreen; data.keyboardControls = gameSettings.keyboardControls; HighScoreTracker.SaveHighScores(data); deviceSelected = false; HighScoreTracker.device = null; if (HighScoreTracker.container != null) { HighScoreTracker.container.Dispose(); } HighScoreTracker.container = null; HighScoreTracker.cachedData = null; splashScreen = new SplashScreen(); metaState = MetaState.SplashScreen; } if (result == MenuResult.BuyFullGame) { try { Guide.ShowMarketplace(Game.playerIndex); } catch (GamerPrivilegeException) { Guide.BeginShowMessageBox("Oops!", "The current controller is either not signed in or is unable to purchase games on XBox Live.", new string[] { "OK" }, 0, MessageBoxIcon.None, null, null); } catch { } } if (result == MenuResult.GoToSettings) { metaState = MetaState.Settings; } if (result == MenuResult.GoToTimeAttack) { metaState = MetaState.Settings_TimeAttack; selectMenu = new LevelSelectMenu(); selectMenu.levelList = SettingsLoader.LoadTimeAttackLevels(); selectMenu.currentLevel = gameSettings.timeAttackViewLevel; selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; currentSettings.mode = GameMode.TimeAttack; System.Threading.Thread.Sleep(100); } if (result == MenuResult.GoToPuzzle) { metaState = MetaState.Settings_Puzzle; selectMenu = new LevelSelectMenu(); selectMenu.levelList = SettingsLoader.LoadPuzzleLevels(); selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; selectMenu.currentLevel = gameSettings.puzzleViewLevel; currentSettings.mode = GameMode.Puzzle; System.Threading.Thread.Sleep(100); } if (result == MenuResult.GoToJellyfishCity) { metaState = MetaState.JellyfishCity; jellyCity = new JellyfishCity(); } if (result == MenuResult.GoToTutorial) { metaState = MetaState.Tutorial; TutorialStage.phase = TutorialPhase.Intro; TutorialStage.lessonIndex = 0; TutorialStage.loaded = false; tutorialLauncher = new TutorialLauncher(); } if (result == MenuResult.GoToMoveChallenge) { metaState = MetaState.Settings_Move; selectMenu = new LevelSelectMenu(); selectMenu.levelList = SettingsLoader.LoadMoveCountLevels(); selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD; selectMenu.currentLevel = gameSettings.moveChallengeViewLevel; currentSettings.mode = GameMode.TimeAttack; } if (result == MenuResult.StartCollect) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } if (result == MenuResult.StartPuzzle) { p1engine = new Engine(-1); metaState = MetaState.GamePlay; } if (result == MenuResult.GoToSurvival) { metaState = MetaState.GamePlay; } if (result == MenuResult.Quit) { HighScoreData data = HighScoreTracker.LoadHighScores(); data.soundEffectsEnabled = gameSettings.soundEffectsEnabled; data.musicEnabled = gameSettings.musicEnabled; data.displayHelp = gameSettings.displayControls; data.fullScreen = gameSettings.fullScreen; data.wideScreen = gameSettings.wideScreen; data.keyboardControls = gameSettings.keyboardControls; HighScoreTracker.SaveHighScores(data); Logger.CloseLogger(); this.Exit(); } } base.Update(gameTime); }
public MetaMessage(MetaState state, string member) { State = state; ChatMember = member; }
public static void SetMetaState(MetaState newState) { //if (newState == metaState) return; MetaState prevState = metaState; metaState = newState; switch (metaState) { case MetaState.StartMenu: { Time.timeScale = 1f; instance.playerShield.SetFloat("_DissolveValue", 0.0f); instance.pauseMenu.SetActive(false); instance.hud.SetActive(false); instance.hudTimer.SetText("{0:0.0}", instance.surviveWinDuration); if (prevState != MetaState.StartMenu) { SceneManager.LoadScene(0, LoadSceneMode.Single); instance = null; gameEnding = false; } break; } case MetaState.HowToMenu: { break; } case MetaState.Gameplay: { Time.timeScale = 1f; instance.pauseMenu.SetActive(false); instance.hud.SetActive(true); instance.state.startTime = Time.fixedTime; break; } case MetaState.Paused: { Time.timeScale = 0f; instance.pauseMenu.SetActive(true); instance.hud.SetActive(false); break; } case MetaState.GameLost: { instance.hud.SetActive(false); instance.startMenu.SetActive(true); instance.startMenuTitle.SetActive(false); instance.startMenuStart.SetActive(false); instance.startMenuTryAgain.SetActive(true); instance.startMenuGameLost.SetActive(true); break; } case MetaState.GameWon: { instance.hud.SetActive(false); instance.startMenu.SetActive(true); instance.startMenuTitle.SetActive(false); instance.startMenuStart.SetActive(false); instance.startMenuTryAgain.SetActive(true); instance.startMenuGameWon.SetActive(true); break; } } }