private void AssignNewDirection(IDirection direction, IUnit player, IMazeViewData mazeView) { player.CurrentMovementDirection = direction; ILocation futureLocation = player.CurrentLocation.GetCopy().Add(mazeView.MovementCube[direction.Value]); player.AssignLocation(futureLocation); }
private void AssignReverseDirection(IDirection direction, IUnit player, IMazeViewData mazeView) { IDirection reverseDirection = player.CurrentMovementDirection.ReverseDirection; player.CurrentMovementDirection = reverseDirection; player.FutureMovementDirection = reverseDirection; ILocation reverseLocation = player.CurrentLocation .GetCopy() .Add(mazeView.MovementCube[reverseDirection.Value]); player.AssignLocation(reverseLocation); }
private void SpawnUnitAtLocation(UnitType unitType, Location location) { IUnit spawn = _unitFactory.CreateUnit(unitType); if (spawn == null) { return; } if (Validator.IsLocationOccupied(location, UnitList)) { return; } if (unitType == UnitType.Player && Validator.IsPlayerMaximumReached(UnitList)) { return; } spawn.AssignLocation(location); UnitList.Add(spawn); }