/// <summary> /// Reset map state to its initial state. /// </summary> public void Reset() { Player.Reset(); _hazards.ForEach(h => h.Reset()); RoomsArrowTraversed.Clear(); if (IsCheatMode) { PrintHazards(); } }
private void UpdateAnyShotRoomColors(GameTime time) { if (RoomsArrowTraversed.Any() && _shotAnimationTime > 0) { _arrowShotLerpAmount = (float)(Math.Sin(time.TotalGameTime.TotalSeconds * 5) * 0.5) + 0.5f; foreach (int r in RoomsArrowTraversed) { var room = _rooms[r - 1]; room.Color = Color.Lerp(room.Color, Color.Red, _arrowShotLerpAmount); } _shotAnimationTime -= 0.002f; } else { RoomsArrowTraversed.Clear(); _shotAnimationTime = 1.0f; } }
public void PlayerShootArrow(Action <EndState> gameOverHandler) { // Clear just in case the player is playing fast before the last shoot animation ended. RoomsArrowTraversed.Clear(); Player.ShootArrow(Wumpus, gameOverHandler); }