public MenuResult Update(GameTime gameTime) { cooldown -= gameTime.ElapsedGameTime.Milliseconds; if (cooldown < 0) cooldown = 0; if (state == GameOverMenuState.SCORECHECK) { currentCharacter = 0; rank = -1; HighScoreData highScoreData = HighScoreTracker.LoadHighScores(); if (Game.currentSettings.mode == GameMode.TimeAttack) { levelData = highScoreData.timeAttackLevels[level]; highScoreData.timeAttackLevels[level].played = true; if (highScoreData.timeAttackLevels[level].rank < 3 && score >= Game.currentSettings.three_star) { congratulationsMessage = "Outstanding job! This patient has made a full \nrecovery, giving you the top ranking! Way to go!"; highScoreData.timeAttackLevels[level].rank = 3; } else if (highScoreData.timeAttackLevels[level].rank < 2 && score >= Game.currentSettings.two_star) { congratulationsMessage = "Great job! You've earned two stars! Try to score\n" + Game.currentSettings.three_star + " points to make it to the next rank!"; highScoreData.timeAttackLevels[level].rank = 2; } else if (highScoreData.timeAttackLevels[level].rank == 0) { highScoreData.timeAttackLevels[level].rank = 1; congratulationsMessage = "Good job! You've earned one star! Try to score " + Game.currentSettings.two_star + " \npoints to make it to the next rank!"; } else if (highScoreData.timeAttackLevels[level].rank == 3) { congratulationsMessage = "This patient has already made a full recovery! \nYou should see if you can beat your high score!"; } else if (highScoreData.timeAttackLevels[level].rank == 2) { congratulationsMessage = "Try to score " + Game.currentSettings.three_star + " points to earn three \nstars!"; } else if (highScoreData.timeAttackLevels[level].rank == 1) { congratulationsMessage = "Try to score " + Game.currentSettings.two_star + " points to earn two \nstars!"; } else { congratulationsMessage = "BUG!"; } for (int i = 4; i >= 0; i--) { if (score >= levelData.highScores[i]) { if (i < 4) { levelData.highScores[i + 1] = levelData.highScores[i]; levelData.playerNames[i + 1] = levelData.playerNames[i]; } initials = levelData.playerNames[i]; rank = i; levelData.highScores[i] = score; } } if (score >= Game.currentSettings.two_star && level < highScoreData.timeAttackLevels.Count()-1) { if(highScoreData.timeAttackLevels[level+1]!=null) highScoreData.timeAttackLevels[level + 1].unlocked = true; } } if (Game.currentSettings.mode == GameMode.MoveChallenge) { levelData = highScoreData.moveChallengeLevels[level]; highScoreData.moveChallengeLevels[level].played = true; if (highScoreData.moveChallengeLevels[level].rank < 3 && score >= Game.currentSettings.three_star) { congratulationsMessage = "Outstanding job! This patient has made a full \nrecovery, giving you the top ranking! Way to go!"; highScoreData.moveChallengeLevels[level].rank = 3; } else if (highScoreData.moveChallengeLevels[level].rank < 2 && score >= Game.currentSettings.two_star) { congratulationsMessage = "Great job! You've earned two stars! Try to score \n" + Game.currentSettings.three_star + " points to make it to the next rank!"; highScoreData.moveChallengeLevels[level].rank = 2; } else if (highScoreData.moveChallengeLevels[level].rank == 0) { highScoreData.moveChallengeLevels[level].rank = 1; congratulationsMessage = "Good job! You've earned one star! Try to score " + Game.currentSettings.two_star + " \npoints to make it to the next rank!"; } else if (highScoreData.moveChallengeLevels[level].rank == 3) { congratulationsMessage = "This patient has already made a full recovery! \nYou should see if you can beat your high score!"; } else if (highScoreData.moveChallengeLevels[level].rank == 2) { congratulationsMessage = "Try to score " + Game.currentSettings.three_star + " points to earn three \nstars!"; } else if (highScoreData.moveChallengeLevels[level].rank == 1) { congratulationsMessage = "Try to score " + Game.currentSettings.two_star + " points to earn two \nstars!"; } else { congratulationsMessage = "BUG!"; } for (int i = 4; i >= 0; i--) { if (score >= levelData.highScores[i]) { if (i < 4) { levelData.highScores[i + 1] = levelData.highScores[i]; levelData.playerNames[i + 1] = levelData.playerNames[i]; } initials = levelData.playerNames[i]; rank = i; levelData.highScores[i] = score; } } if (score >= Game.currentSettings.two_star && level < highScoreData.moveChallengeLevels.Count() - 1) { if (highScoreData.moveChallengeLevels[level + 1] != null) highScoreData.moveChallengeLevels[level + 1].unlocked = true; } } else if (Game.currentSettings.mode == GameMode.Puzzle) { levelData = highScoreData.puzzleLevels[level]; highScoreData.puzzleLevels[level].played = true; TimeSpan twoStarTime = new TimeSpan(0, 0, 0, 0, Game.currentSettings.two_star); TimeSpan threeStarTime = new TimeSpan(0, 0, 0, 0, Game.currentSettings.three_star); if (highScoreData.puzzleLevels[level].rank < 3 && score <= Game.currentSettings.three_star) { congratulationsMessage = "Outstanding job! This patient has made a full \nrecovery, giving you the top ranking! Way to go!"; highScoreData.puzzleLevels[level].rank = 3; } else if (highScoreData.puzzleLevels[level].rank < 2 && score <= Game.currentSettings.two_star) { congratulationsMessage = string.Format("Great job! You've earned two stars! Try to finish \nin under {0}:{1:D2} to make it to the next rank!",threeStarTime.Minutes,threeStarTime.Seconds); highScoreData.puzzleLevels[level].rank = 2; } else if (highScoreData.puzzleLevels[level].rank == 0) { highScoreData.puzzleLevels[level].rank = 1; congratulationsMessage = string.Format("Good job! You've earned one star! Try to finish \nin under {0}:{1:D2} to make it to the next rank!",twoStarTime.Minutes,twoStarTime.Seconds); } else if (highScoreData.puzzleLevels[level].rank == 3) { congratulationsMessage = "This patient has already made a full recovery! \nSee if you can beat your high score!"; } else if (highScoreData.puzzleLevels[level].rank == 2) { congratulationsMessage = string.Format("Try to finish in under {0}:{1:D2} to earn three \nstars!", threeStarTime.Minutes, threeStarTime.Seconds); } else if (highScoreData.puzzleLevels[level].rank == 1) { congratulationsMessage = string.Format("Try to finish in under {0}:{1:D2} to earn two \nstars!",twoStarTime.Minutes,twoStarTime.Seconds); } else { congratulationsMessage = "BUG!"; } for (int i = 4; i >= 0; i--) { if (score <= levelData.highScores[i]) { if (i < 4) { levelData.highScores[i + 1] = levelData.highScores[i]; levelData.playerNames[i + 1] = levelData.playerNames[i]; } initials = levelData.playerNames[i]; rank = i; levelData.highScores[i] = score; } } if (score <= Game.currentSettings.two_star && level < highScoreData.puzzleLevels.Count() - 1) { List<Settings> puzzleSettings = SettingsLoader.LoadPuzzleLevels(); if (Game.currentSettings.difficulty == Difficulty.EASY) { for (int i = 0; i < puzzleSettings.Count(); i++) { if (highScoreData.puzzleLevels[i] != null && (puzzleSettings[i].difficulty == Difficulty.MEDIUM || puzzleSettings[i].difficulty == Difficulty.EASY)) highScoreData.puzzleLevels[i].unlocked = true; } } if (Game.currentSettings.difficulty == Difficulty.MEDIUM) { for (int i = 0; i < puzzleSettings.Count(); i++) { if (highScoreData.puzzleLevels[i] != null && puzzleSettings[i].difficulty == Difficulty.HARD) highScoreData.puzzleLevels[i].unlocked = true; } } } } HighScoreTracker.SaveHighScores(highScoreData); state = GameOverMenuState.DOCTORIN; } if (state == GameOverMenuState.DOCTORIN || state == GameOverMenuState.DOCTOROUT || state == GameOverMenuState.ANIMATEDOWN || state == GameOverMenuState.ANIMATEUP) { animateTime+=gameTime.ElapsedGameTime.Milliseconds; } if (state == GameOverMenuState.DOCTORIN && animateTime > 250) { MusicControl.PlayMenuMusic(); state = GameOverMenuState.READY; if(rank!=-1) state = GameOverMenuState.INITIALS; } if (state == GameOverMenuState.DOCTOROUT && animateTime > 250) { animateTime = 0; state = GameOverMenuState.DOCTORIN; return result; } if (state == GameOverMenuState.ANIMATEDOWN && animateTime > 250) { animateTime = 0; state = GameOverMenuState.READY; } if (state == GameOverMenuState.ANIMATEUP && animateTime > 250) { animateTime = 0; state = GameOverMenuState.READY; } if (state == GameOverMenuState.INITIALS && cooldown == 0) { GamePadState gamePadState = GamePad.GetState(Game.playerIndex); Vector2 leftStick = gamePadState.ThumbSticks.Left; Vector2 rightStick = gamePadState.ThumbSticks.Right; if (gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || Keyboard.GetState().IsKeyDown(Keys.Down) || leftStick.Y < -Game.gameSettings.controlStickTrigger || rightStick.Y < -Game.gameSettings.controlStickTrigger) { SoundEffects.PlayClick(); Char[] cArray = initials.ToCharArray(); Char c = cArray[currentCharacter]; c--; if (c < 'A') c = 'Z'; cArray[currentCharacter] = c; initials = new String(cArray); cooldown = 100; } if (gamePadState.IsButtonDown(Buttons.DPadUp) || gamePadState.IsButtonDown(Buttons.DPadUp) || Keyboard.GetState().IsKeyDown(Keys.Up) || leftStick.Y > Game.gameSettings.controlStickTrigger || rightStick.Y > Game.gameSettings.controlStickTrigger) { SoundEffects.PlayClick(); Char[] cArray = initials.ToCharArray(); Char c = cArray[currentCharacter]; c++; if (c > 'Z') c = 'A'; cArray[currentCharacter] = c; initials = new String(cArray); cooldown = 100; } if (gamePadState.IsButtonDown(Buttons.DPadRight) || gamePadState.IsButtonDown(Buttons.DPadRight) || Keyboard.GetState().IsKeyDown(Keys.Right) || gamePadState.IsButtonDown(Buttons.A)) { currentCharacter++; cooldown = 250; if (currentCharacter > 2) { SoundEffects.PlayScore(); cooldown = 500; levelData.playerNames[rank] = initials; HighScoreData data = HighScoreTracker.LoadHighScores(); levelData.played = true; if (Game.currentSettings.mode == GameMode.TimeAttack) { data.timeAttackLevels[level] = levelData; } else if (Game.currentSettings.mode == GameMode.Puzzle) { data.puzzleLevels[level] = levelData; } else { data.moveChallengeLevels[level] = levelData; } HighScoreTracker.SaveHighScores(data); state = GameOverMenuState.READY; } else { SoundEffects.PlayClick(); } } if (gamePadState.IsButtonDown(Buttons.DPadLeft) || gamePadState.IsButtonDown(Buttons.DPadLeft) || Keyboard.GetState().IsKeyDown(Keys.Left) || gamePadState.IsButtonDown(Buttons.B)) { SoundEffects.PlayClick(); if (currentCharacter > 0) { currentCharacter--; cooldown = 250; } } } if (state == GameOverMenuState.READY && cooldown == 0) { GamePadState gamePadState = GamePad.GetState(Game.playerIndex); Vector2 leftStick = gamePadState.ThumbSticks.Left; Vector2 rightStick = gamePadState.ThumbSticks.Right; if (Keyboard.GetState().IsKeyDown(Keys.Space) || gamePadState.IsButtonDown(Buttons.A) || gamePadState.IsButtonDown(Buttons.Start)) { result = optionList[selectedIndex].result; animateTime = 0; state = GameOverMenuState.DOCTOROUT; SoundEffects.PlayScore(); } if (gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || Keyboard.GetState().IsKeyDown(Keys.Down) || leftStick.Y < -Game.gameSettings.controlStickTrigger || rightStick.Y < -Game.gameSettings.controlStickTrigger) { if (selectedIndex < optionList.Count() - 1) { state = GameOverMenuState.ANIMATEDOWN; animateTime = 0; selectedIndex++; cooldown = 250; SoundEffects.PlayMove(); } } if (gamePadState.IsButtonDown(Buttons.DPadUp) || gamePadState.IsButtonDown(Buttons.DPadUp) || Keyboard.GetState().IsKeyDown(Keys.Up) || leftStick.Y > Game.gameSettings.controlStickTrigger || rightStick.Y > Game.gameSettings.controlStickTrigger) { if (selectedIndex > 0) { state = GameOverMenuState.ANIMATEUP; animateTime = 0; selectedIndex--; cooldown = 250; SoundEffects.PlayMove(); } } } return MenuResult.None; }
public MenuResult Update(GameTime gameTime) { cooldown -= gameTime.ElapsedGameTime.Milliseconds; if (cooldown < 0) { cooldown = 0; } if (state == GameOverMenuState.SCORECHECK) { currentCharacter = 0; rank = -1; HighScoreData highScoreData = HighScoreTracker.LoadHighScores(); if (Game.currentSettings.mode == GameMode.TimeAttack) { levelData = highScoreData.timeAttackLevels[level]; highScoreData.timeAttackLevels[level].played = true; if (highScoreData.timeAttackLevels[level].rank < 3 && score >= Game.currentSettings.three_star) { congratulationsMessage = "Outstanding job! This patient has made a full \nrecovery, giving you the top ranking! Way to go!"; highScoreData.timeAttackLevels[level].rank = 3; } else if (highScoreData.timeAttackLevels[level].rank < 2 && score >= Game.currentSettings.two_star) { congratulationsMessage = "Great job! You've earned two stars! Try to score\n" + Game.currentSettings.three_star + " points to make it to the next rank!"; highScoreData.timeAttackLevels[level].rank = 2; } else if (highScoreData.timeAttackLevels[level].rank == 0) { highScoreData.timeAttackLevels[level].rank = 1; congratulationsMessage = "Good job! You've earned one star! Try to score " + Game.currentSettings.two_star + " \npoints to make it to the next rank!"; } else if (highScoreData.timeAttackLevels[level].rank == 3) { congratulationsMessage = "This patient has already made a full recovery! \nYou should see if you can beat your high score!"; } else if (highScoreData.timeAttackLevels[level].rank == 2) { congratulationsMessage = "Try to score " + Game.currentSettings.three_star + " points to earn three \nstars!"; } else if (highScoreData.timeAttackLevels[level].rank == 1) { congratulationsMessage = "Try to score " + Game.currentSettings.two_star + " points to earn two \nstars!"; } else { congratulationsMessage = "BUG!"; } for (int i = 4; i >= 0; i--) { if (score >= levelData.highScores[i]) { if (i < 4) { levelData.highScores[i + 1] = levelData.highScores[i]; levelData.playerNames[i + 1] = levelData.playerNames[i]; } initials = levelData.playerNames[i]; rank = i; levelData.highScores[i] = score; } } if (score >= Game.currentSettings.two_star && level < highScoreData.timeAttackLevels.Count() - 1) { if (highScoreData.timeAttackLevels[level + 1] != null) { highScoreData.timeAttackLevels[level + 1].unlocked = true; } } } if (Game.currentSettings.mode == GameMode.MoveChallenge) { levelData = highScoreData.moveChallengeLevels[level]; highScoreData.moveChallengeLevels[level].played = true; if (highScoreData.moveChallengeLevels[level].rank < 3 && score >= Game.currentSettings.three_star) { congratulationsMessage = "Outstanding job! This patient has made a full \nrecovery, giving you the top ranking! Way to go!"; highScoreData.moveChallengeLevels[level].rank = 3; } else if (highScoreData.moveChallengeLevels[level].rank < 2 && score >= Game.currentSettings.two_star) { congratulationsMessage = "Great job! You've earned two stars! Try to score \n" + Game.currentSettings.three_star + " points to make it to the next rank!"; highScoreData.moveChallengeLevels[level].rank = 2; } else if (highScoreData.moveChallengeLevels[level].rank == 0) { highScoreData.moveChallengeLevels[level].rank = 1; congratulationsMessage = "Good job! You've earned one star! Try to score " + Game.currentSettings.two_star + " \npoints to make it to the next rank!"; } else if (highScoreData.moveChallengeLevels[level].rank == 3) { congratulationsMessage = "This patient has already made a full recovery! \nYou should see if you can beat your high score!"; } else if (highScoreData.moveChallengeLevels[level].rank == 2) { congratulationsMessage = "Try to score " + Game.currentSettings.three_star + " points to earn three \nstars!"; } else if (highScoreData.moveChallengeLevels[level].rank == 1) { congratulationsMessage = "Try to score " + Game.currentSettings.two_star + " points to earn two \nstars!"; } else { congratulationsMessage = "BUG!"; } for (int i = 4; i >= 0; i--) { if (score >= levelData.highScores[i]) { if (i < 4) { levelData.highScores[i + 1] = levelData.highScores[i]; levelData.playerNames[i + 1] = levelData.playerNames[i]; } initials = levelData.playerNames[i]; rank = i; levelData.highScores[i] = score; } } if (score >= Game.currentSettings.two_star && level < highScoreData.moveChallengeLevels.Count() - 1) { if (highScoreData.moveChallengeLevels[level + 1] != null) { highScoreData.moveChallengeLevels[level + 1].unlocked = true; } } } else if (Game.currentSettings.mode == GameMode.Puzzle) { levelData = highScoreData.puzzleLevels[level]; highScoreData.puzzleLevels[level].played = true; TimeSpan twoStarTime = new TimeSpan(0, 0, 0, 0, Game.currentSettings.two_star); TimeSpan threeStarTime = new TimeSpan(0, 0, 0, 0, Game.currentSettings.three_star); if (highScoreData.puzzleLevels[level].rank < 3 && score <= Game.currentSettings.three_star) { congratulationsMessage = "Outstanding job! This patient has made a full \nrecovery, giving you the top ranking! Way to go!"; highScoreData.puzzleLevels[level].rank = 3; } else if (highScoreData.puzzleLevels[level].rank < 2 && score <= Game.currentSettings.two_star) { congratulationsMessage = string.Format("Great job! You've earned two stars! Try to finish \nin under {0}:{1:D2} to make it to the next rank!", threeStarTime.Minutes, threeStarTime.Seconds); highScoreData.puzzleLevels[level].rank = 2; } else if (highScoreData.puzzleLevels[level].rank == 0) { highScoreData.puzzleLevels[level].rank = 1; congratulationsMessage = string.Format("Good job! You've earned one star! Try to finish \nin under {0}:{1:D2} to make it to the next rank!", twoStarTime.Minutes, twoStarTime.Seconds); } else if (highScoreData.puzzleLevels[level].rank == 3) { congratulationsMessage = "This patient has already made a full recovery! \nSee if you can beat your high score!"; } else if (highScoreData.puzzleLevels[level].rank == 2) { congratulationsMessage = string.Format("Try to finish in under {0}:{1:D2} to earn three \nstars!", threeStarTime.Minutes, threeStarTime.Seconds); } else if (highScoreData.puzzleLevels[level].rank == 1) { congratulationsMessage = string.Format("Try to finish in under {0}:{1:D2} to earn two \nstars!", twoStarTime.Minutes, twoStarTime.Seconds); } else { congratulationsMessage = "BUG!"; } for (int i = 4; i >= 0; i--) { if (score <= levelData.highScores[i]) { if (i < 4) { levelData.highScores[i + 1] = levelData.highScores[i]; levelData.playerNames[i + 1] = levelData.playerNames[i]; } initials = levelData.playerNames[i]; rank = i; levelData.highScores[i] = score; } } if (score <= Game.currentSettings.two_star && level < highScoreData.puzzleLevels.Count() - 1) { List <Settings> puzzleSettings = SettingsLoader.LoadPuzzleLevels(); if (Game.currentSettings.difficulty == Difficulty.EASY) { for (int i = 0; i < puzzleSettings.Count(); i++) { if (highScoreData.puzzleLevels[i] != null && (puzzleSettings[i].difficulty == Difficulty.MEDIUM || puzzleSettings[i].difficulty == Difficulty.EASY)) { highScoreData.puzzleLevels[i].unlocked = true; } } } if (Game.currentSettings.difficulty == Difficulty.MEDIUM) { for (int i = 0; i < puzzleSettings.Count(); i++) { if (highScoreData.puzzleLevels[i] != null && puzzleSettings[i].difficulty == Difficulty.HARD) { highScoreData.puzzleLevels[i].unlocked = true; } } } } } HighScoreTracker.SaveHighScores(highScoreData); state = GameOverMenuState.DOCTORIN; } if (state == GameOverMenuState.DOCTORIN || state == GameOverMenuState.DOCTOROUT || state == GameOverMenuState.ANIMATEDOWN || state == GameOverMenuState.ANIMATEUP) { animateTime += gameTime.ElapsedGameTime.Milliseconds; } if (state == GameOverMenuState.DOCTORIN && animateTime > 250) { MusicControl.PlayMenuMusic(); state = GameOverMenuState.READY; if (rank != -1) { state = GameOverMenuState.INITIALS; } } if (state == GameOverMenuState.DOCTOROUT && animateTime > 250) { animateTime = 0; state = GameOverMenuState.DOCTORIN; return(result); } if (state == GameOverMenuState.ANIMATEDOWN && animateTime > 250) { animateTime = 0; state = GameOverMenuState.READY; } if (state == GameOverMenuState.ANIMATEUP && animateTime > 250) { animateTime = 0; state = GameOverMenuState.READY; } if (state == GameOverMenuState.INITIALS && cooldown == 0) { GamePadState gamePadState = GamePad.GetState(Game.playerIndex); Vector2 leftStick = gamePadState.ThumbSticks.Left; Vector2 rightStick = gamePadState.ThumbSticks.Right; if (gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || Keyboard.GetState().IsKeyDown(Keys.Down) || leftStick.Y < -Game.gameSettings.controlStickTrigger || rightStick.Y < -Game.gameSettings.controlStickTrigger) { SoundEffects.PlayClick(); Char[] cArray = initials.ToCharArray(); Char c = cArray[currentCharacter]; c--; if (c < 'A') { c = 'Z'; } cArray[currentCharacter] = c; initials = new String(cArray); cooldown = 100; } if (gamePadState.IsButtonDown(Buttons.DPadUp) || gamePadState.IsButtonDown(Buttons.DPadUp) || Keyboard.GetState().IsKeyDown(Keys.Up) || leftStick.Y > Game.gameSettings.controlStickTrigger || rightStick.Y > Game.gameSettings.controlStickTrigger) { SoundEffects.PlayClick(); Char[] cArray = initials.ToCharArray(); Char c = cArray[currentCharacter]; c++; if (c > 'Z') { c = 'A'; } cArray[currentCharacter] = c; initials = new String(cArray); cooldown = 100; } if (gamePadState.IsButtonDown(Buttons.DPadRight) || gamePadState.IsButtonDown(Buttons.DPadRight) || Keyboard.GetState().IsKeyDown(Keys.Right) || gamePadState.IsButtonDown(Buttons.A)) { currentCharacter++; cooldown = 250; if (currentCharacter > 2) { SoundEffects.PlayScore(); cooldown = 500; levelData.playerNames[rank] = initials; HighScoreData data = HighScoreTracker.LoadHighScores(); levelData.played = true; if (Game.currentSettings.mode == GameMode.TimeAttack) { data.timeAttackLevels[level] = levelData; } else if (Game.currentSettings.mode == GameMode.Puzzle) { data.puzzleLevels[level] = levelData; } else { data.moveChallengeLevels[level] = levelData; } HighScoreTracker.SaveHighScores(data); state = GameOverMenuState.READY; } else { SoundEffects.PlayClick(); } } if (gamePadState.IsButtonDown(Buttons.DPadLeft) || gamePadState.IsButtonDown(Buttons.DPadLeft) || Keyboard.GetState().IsKeyDown(Keys.Left) || gamePadState.IsButtonDown(Buttons.B)) { SoundEffects.PlayClick(); if (currentCharacter > 0) { currentCharacter--; cooldown = 250; } } } if (state == GameOverMenuState.READY && cooldown == 0) { GamePadState gamePadState = GamePad.GetState(Game.playerIndex); Vector2 leftStick = gamePadState.ThumbSticks.Left; Vector2 rightStick = gamePadState.ThumbSticks.Right; if (Keyboard.GetState().IsKeyDown(Keys.Space) || gamePadState.IsButtonDown(Buttons.A) || gamePadState.IsButtonDown(Buttons.Start)) { result = optionList[selectedIndex].result; animateTime = 0; state = GameOverMenuState.DOCTOROUT; SoundEffects.PlayScore(); } if (gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || gamePadState.IsButtonDown(Buttons.DPadDown) || Keyboard.GetState().IsKeyDown(Keys.Down) || leftStick.Y < -Game.gameSettings.controlStickTrigger || rightStick.Y < -Game.gameSettings.controlStickTrigger) { if (selectedIndex < optionList.Count() - 1) { state = GameOverMenuState.ANIMATEDOWN; animateTime = 0; selectedIndex++; cooldown = 250; SoundEffects.PlayMove(); } } if (gamePadState.IsButtonDown(Buttons.DPadUp) || gamePadState.IsButtonDown(Buttons.DPadUp) || Keyboard.GetState().IsKeyDown(Keys.Up) || leftStick.Y > Game.gameSettings.controlStickTrigger || rightStick.Y > Game.gameSettings.controlStickTrigger) { if (selectedIndex > 0) { state = GameOverMenuState.ANIMATEUP; animateTime = 0; selectedIndex--; cooldown = 250; SoundEffects.PlayMove(); } } } return(MenuResult.None); }