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); }
public static LeaveMeAlone.GameState Update(GameTime gameTime) { lastMouseState = currentMouseState; currentMouseState = Mouse.GetState(); if (BattleManager.boss.level < 2) { HandleTutorial(); } if (lastMouseState.LeftButton == ButtonState.Pressed && currentMouseState.LeftButton == ButtonState.Released) { for (int i = 0; i < TowerLevel; i++) { var rectpos = new Rectangle((int)(towerPosition.X + LeaveMeAlone.WindowX / 3), (int)(towerPosition.Y + LeaveMeAlone.WindowY - 100 - 100 * (i + 1)), 400, 100); if (selectedRoomSwapButton.r != null && LairRooms.Contains(selectedRoomSwapButton.r) == false && rectpos.Contains(currentMouseState.X, currentMouseState.Y)) { foreach (UpgradeMenu.ButtonRoom oldroom in boughtRooms) { if (oldroom.r == LairRooms[i]) { oldroom.used = false; } } LairRooms[i] = selectedRoomSwapButton.r; selectedRoomSwapButton.used = true; tutorial_state = TutorialState.SendWave; } } if ((EndOfGame && grindwaveBtn.Intersects(currentMouseState.X, currentMouseState.Y))) { BattleManager.Init(); List <Character> newParty = PartyManager.CreateParty(); BattleManager.heroes = newParty; return(LeaveMeAlone.GameState.Battle); } //next wave if (nextwaveBtn.Intersects(currentMouseState.X, currentMouseState.Y)) { BossBattle = false; if (EndOfGame) { InfoText.changeMessage("PEASANTS!\nOUT OF THE WAY!\nHE'S OURS"); //create the last party if (one_last_party) { for (int i = 0; i <= PartyManager.partyQueue.Count(); i++) { PartyManager.partyQueue.Add(null); PartyManager.popParty(); } List <Character> FinalParty = new List <Character>(); FinalParty.Add(new Character(Character.Type.Knight, 14, new Vector2(sideOffset + sideScaling, topOffset))); FinalParty.Add(new Character(Character.Type.Ranger, 14, new Vector2(sideOffset, topOffset + topScaling * 1))); FinalParty.Add(new Character(Character.Type.Mage, 14, new Vector2(sideOffset + sideScaling, topOffset + topScaling * 2))); FinalParty.Add(new Character(Character.Type.Mage, 14, new Vector2(sideOffset, topOffset + topScaling * 3))); PartyManager.partyQueue.Add(FinalParty); PartyManager.popParty(); one_last_party = false; } //push nothing else else { if (PartyManager.popParty()) { BattleManager.Init(); //Re-Add the party in case the player loses List <Character> FinalParty = new List <Character>(); FinalParty.Add(new Character(Character.Type.Knight, 14, new Vector2(sideOffset + sideScaling, topOffset))); FinalParty.Add(new Character(Character.Type.Ranger, 14, new Vector2(sideOffset, topOffset + topScaling * 1))); FinalParty.Add(new Character(Character.Type.Mage, 14, new Vector2(sideOffset + sideScaling, topOffset + topScaling * 2))); FinalParty.Add(new Character(Character.Type.Mage, 14, new Vector2(sideOffset, topOffset + topScaling * 3))); PartyManager.partyQueue.Add(FinalParty); BossBattle = true; return(LeaveMeAlone.GameState.Battle); } else { PartyManager.partyQueue.Add(null); return(LeaveMeAlone.GameState.Lair); } } } //Normally push a party else { for (int i = 0; i < TowerLevel; i++) { LairAttack(LairRooms[i], PartyManager.partyQueue[i]); } Random random = new Random(); int makeParty = 0;//random.Next(100) % 4; if (makeParty != 1) { List <Character> newParty = PartyManager.CreateParty(); PartyManager.partyQueue.Add(newParty); } else { PartyManager.partyQueue.Add(null); } if (PartyManager.popParty()) { BattleManager.Init(); InfoText.changeMessage(""); return(LeaveMeAlone.GameState.Battle); } else { //Should have some sort of interface on screen InfoText.changeMessage("Here they come\n I can feel them."); return(LeaveMeAlone.GameState.Lair); } } } if (skillsBtn.Intersects(currentMouseState.X, currentMouseState.Y)) { return(LeaveMeAlone.GameState.Upgrade); } if (constructionBtn.Intersects(currentMouseState.X, currentMouseState.Y)) { if (TowerLevel < MaxLevel) { TowerLevel++; LairRooms.Add(UnconstructedRoom); PartyManager.partyQueue.Add(null); for (int j = PartyManager.partyQueue.Count() - 1; j > 0; j--) { PartyManager.partyQueue[j] = PartyManager.partyQueue[j - 1]; } PartyManager.partyQueue[0] = null; } else { InfoText.changeMessage("Max Lair Height"); texttimer = 600; } tutorial_state = TutorialState.Build2; return(LeaveMeAlone.GameState.Lair); } if (mainmenuBtn.Intersects(currentMouseState.X, currentMouseState.Y)) { MainMenu.init(false); LeaveMeAlone.Menu_Song_Instance.Stop(); //UpgradeMenu.boughtRooms.Clear(); return(LeaveMeAlone.GameState.Main); } //checks if a room button was selected selected_flag = false; foreach (UpgradeMenu.ButtonRoom r in boughtRooms) { if (r.b.Intersects(currentMouseState.X, currentMouseState.Y) && !r.used) { Console.WriteLine(r.b.text); //already have a selected thing; if (selectedRoomSwapButton.b != null) { selectedRoomSwapButton.b.selected = false; } selectedRoomSwapButton = r; r.b.selected = true; selected_flag = true; tutorial_state = TutorialState.Build3; } } //otherwise we unselect any previously selected button if (selected_flag == false && selectedRoomSwapButton.b != null) { selectedRoomSwapButton.b.selected = false; selectedRoomSwapButton = new UpgradeMenu.ButtonRoom(); } } return(LeaveMeAlone.GameState.Lair); }