public void GivenNpcWithDirectionDown_WhenTurnNpc_ThenChangesMoveDirectionToUp() { // Arrange var testNpc = new NonPlayableCharacter(MoveDirection.Down); // Act _npcTurner.TurnNpc(testNpc); // Assert Check.That(testNpc.MoveDirection).IsEqualTo(MoveDirection.Up); }
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); }