Ejemplo n.º 1
0
        /// <summary>
        ///     Reset map state to its initial state.
        /// </summary>
        public void Reset()
        {
            Player.Reset();
            _hazards.ForEach(h => h.Reset());
            RoomsArrowTraversed.Clear();

            if (IsCheatMode)
            {
                PrintHazards();
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
 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);
 }