public static LeaveMeAlone.GameState Update(GameTime gameTime) { lastMouseState = currentMouseState; currentMouseState = Mouse.GetState(); if (menu_state == MenuState.main) { if (lastMouseState.LeftButton == ButtonState.Pressed && currentMouseState.LeftButton == ButtonState.Released) { if (newGame.Intersects(currentMouseState.X, currentMouseState.Y)) { menu_state = MenuState.opening; } else if (loadGame.Intersects(currentMouseState.X, currentMouseState.Y) && !isNewGame) { LeaveMeAlone.Main_Song_Instance.Stop(); LeaveMeAlone.Menu_Song_Instance.Play(); return(LeaveMeAlone.GameState.Upgrade); } else if (quit.Intersects(currentMouseState.X, currentMouseState.Y)) { return(LeaveMeAlone.GameState.Quit); } } } else if (menu_state == MenuState.opening) { if (lastMouseState.LeftButton == ButtonState.Pressed && currentMouseState.LeftButton == ButtonState.Released) { if (next_intro.Intersects(currentMouseState.X, currentMouseState.Y)) { line_number++; opening_timer = 0; } if (skip_intro.Intersects(currentMouseState.X, currentMouseState.Y)) { line_number = 1 + opening_monologue.Count(); } } if (line_number == 1 + opening_monologue.Count()) { menu_state = MenuState.boss; } else if (opening_timer > 300) { if (line_number != opening_monologue.Count()) { opening_timer = 0; } line_number++; } else { opening_timer++; } } else { if (brute.Contains(new Vector2(currentMouseState.X, currentMouseState.Y))) { bruteHover = true; mastermindHover = false; operativeHover = false; brute.walk(); mastermind.idle(); operative.idle(); current = brute; } else if (mastermind.Contains(new Vector2(currentMouseState.X, currentMouseState.Y))) { bruteHover = false; mastermindHover = true; operativeHover = false; brute.idle(); mastermind.walk(); operative.idle(); current = mastermind; } else if (operative.Contains(new Vector2(currentMouseState.X, currentMouseState.Y))) { bruteHover = false; mastermindHover = false; operativeHover = true; brute.idle(); mastermind.idle(); operative.walk(); current = operative; } else { current = null; bruteHover = false; mastermindHover = false; operativeHover = false; brute.idle(); mastermind.idle(); operative.idle(); } brute.Update(gameTime); mastermind.Update(gameTime); operative.Update(gameTime); if (lastMouseState.LeftButton == ButtonState.Pressed && currentMouseState.LeftButton == ButtonState.Released && canFinish) { Vector2 mousePos = new Vector2(currentMouseState.X, currentMouseState.Y); if (operative.Contains(mousePos) || brute.Contains(mousePos) || mastermind.Contains(mousePos)) { BattleManager.boss = new Character(current.bossType, 1, new Vector2(BattleManager.bossLoc.X, BattleManager.bossLoc.Y)); BattleManager.heroes = PartyManager.CreateParty(); LeaveMeAlone.Main_Song_Instance.Stop(); UpgradeMenu.boughtRooms.Clear(); Resources.gold = 1000; Resources.exp = 0; UpgradeMenu.Init(current); LairManager.Init(); PartyManager.Init(); LairManager.EndOfGame = false; LairManager.TowerLevel = 0; LairManager.MaxLevel = 3; LairManager.LairRooms = new List <Room>(); LairManager.boughtRooms = new List <UpgradeMenu.ButtonRoom>(); //return LeaveMeAlone.GameState.Upgrade; return(LeaveMeAlone.GameState.Upgrade); } } canFinish = true; } return(LeaveMeAlone.GameState.Main); }