コード例 #1
0
        public void GivenNpcWithDirectionDown_WhenTurnNpc_ThenChangesMoveDirectionToUp()
        {
            // Arrange
            var testNpc = new NonPlayableCharacter(MoveDirection.Down);

            // Act
            _npcTurner.TurnNpc(testNpc);

            // Assert
            Check.That(testNpc.MoveDirection).IsEqualTo(MoveDirection.Up);
        }
コード例 #2
0
        public bool MoveNpcLeft(NonPlayableCharacter npc)
        {
            var npcPosition = _positionFinder.GetPosition(_gameModel.GetMap, npc);

            if (_gameModel.GetMap[npcPosition[0], npcPosition[1] - 1].BlowingElement is Flame)
            {
                npc.IsAlive = false;
                return(true);
            }

            switch (_gameModel.GetMap[npcPosition[0], npcPosition[1] - 1].MapElement)
            {
            case EmptyField _:
                _gameModel.GetMap[npcPosition[0], npcPosition[1] - 1] = new MapElementContainer(npcPosition[0], npcPosition[1] - 1, npc);
                _gameModel.GetMap[npcPosition[0], npcPosition[1]]     = new MapElementContainer(npcPosition[0], npcPosition[1], new EmptyField());
                return(true);

            case PlayerDto player:
                player.GotHit();
                npc.IsAlive = false;
                break;
            }

            _npcTurner.TurnNpc(npc);
            return(false);
        }