/// <summary> /// Processes all of the games display logic. Updates local objects /// based on packets received in the Client. Processes any local /// decisions that need to be made, displays relevent objects/info /// </summary> /// <param name="gameTime">Parameter for the game's GameTime</param> public override void Update(GameTime gameTime) { if (Engine.ExitGame) { ScreenManager.RemoveScreen(this); } if (gameOver) { EndGame(_winner); } if (GetMonsterList().Count != _monsterList.Count) //A change has happened in the monster list { _monsterList = GetMonsterList(); GetPlayerBlocks(); } UpdatePositions(); UpdateGraphicsPieces(); if (GamePieces.Session.Game.CardsForSale.Count > 0) //If there are cards for sale display them. { _cardForSaleList = new TextBlock("cardList", new List <string>() { "Cards For Sale - Card Cost", " " + GamePieces.Session.Game.CardsForSale[0].Name + " - " + GamePieces.Session.Game.CardsForSale[0].Cost, " " + GamePieces.Session.Game.CardsForSale[1].Name + " - " + GamePieces.Session.Game.CardsForSale[1].Cost, " " + GamePieces.Session.Game.CardsForSale[2].Name + " - " + GamePieces.Session.Game.CardsForSale[2].Cost }); } if (!(MonsterController.IsDead(_localPlayer))) //If a player isn't dead check for their startOfTurn { if (_gameState != GameState.Spectating && MonsterController.State(_localPlayer) == State.StartOfTurn) { if (MonsterController.CanYield(_localPlayer) == false) { _gameState = GameState.StartTurn; } } } else { _gameState = GameState.IsDead; } var mouseIsOver = false; foreach (var playerBlock in _pBlocks) { if (playerBlock.MouseOver(Engine.InputManager.FreshMouseState)) { mouseIsOver = true; playerCardList.BoxPosition = new Vector2(Engine.InputManager.FreshMouseState.X, Engine.InputManager.FreshMouseState.Y); playerCardList._stringList = CardListToString(playerBlock.Monster.Cards); } } if (mouseIsOver) { playerCardList.Hidden = false; } else { playerCardList.Hidden = true; } switch (_gameState) { case GameState.StartTurn: StartingTurn(); break; case GameState.Rolling: Rolling(); break; case GameState.Waiting: Waiting(); break; case GameState.BuyCardPrompt: AskBuyCards(); break; case GameState.BuyingCards: BuySomeCards(); break; case GameState.EndingTurn: EndTurn(); break; case GameState.AskYield: AskYield(); break; case GameState.IsDead: IsDead(); break; case GameState.EndGame: EndGame(_winner); break; case GameState.Spectating: Spectate(); break; default: Console.Write("switch hit default."); break; } if (Engine.InputManager.KeyPressed(Keys.P)) { ScreenManager.AddScreen(new PauseMenu()); } base.Update(gameTime); }