private void PrepareNextMinigame() { if (_house.CurrentRoom == House.Room.livingRoom) { if (_kitchenGames.Count == 0) { InitializeKitchenMinigames(); } _nextMinigame = GetRandomMinigame(_kitchenGames); _nextMinigame.PlaceItemsLeft(); } else if (_house.CurrentRoom == House.Room.kitchen) { if (_livingRoomGames.Count == 0) { InitializeLivingRoomMinigames(); } _nextMinigame = GetRandomMinigame(_livingRoomGames); _nextMinigame.PlaceItemsRight(); } }
public override void Update(GameTime gameTime) { if (IsKeyEvent(Keys.Escape)) { _overlays.Add(_pauseScreen); } // Abstract in own method if (IsOverlayActive(_pauseScreen)) { if (_pauseScreen.ExitButton.IsClicked) { Game.Exit(); } if (_pauseScreen.ResumeButton.IsClicked) { _overlays.Remove(_pauseScreen); } } if (_state == State.intro) { _introSound.PlayOnce(gameTime); if (HasTotalSecondsPassed(_introSound.TimeFinished + 3)) { _currentMiniGame = _livingRoomGames.First(); _livingRoomGames.Remove(_currentMiniGame); _currentMiniGame.Start(); _state = State.minigame; } } if (_state == State.minigame) { Minigame(gameTime); if (_house.IsDoneSliding) { _house.SwapRoom(); MakeNextMinigameCurrentMinigame(); // By lack of a better name _currentMiniGame.Start(); _dog.MoveHorizontal((int)Center.X - _dog.SpriteWidth / 2); } _currentMiniGame.Update(gameTime); if (_nextMinigame != null) _nextMinigame.Update(gameTime); } base.Update(gameTime); }
private void MakeNextMinigameCurrentMinigame() { // We have to shuffle places because we need to free up nextMinigame _currentMiniGame = _nextMinigame; _nextMinigame = null; }