public void DoSelectBuildingForBuild_True() { var status = new PlayerStatus(1, "Test"); status.ReceiveDoubloons(10); var mainBoardController = new MainBoardController(4); var playerController = new PlayerController(mainBoardController, status); var university = new University(); university.ReceiveColonist(); status.Board.BuildBuilding(university); var result = playerController.DoSelectBuildingToBuild(mainBoardController.Status.Buildings.First().Key, true); Assert.IsTrue(result); }
public static List<PlayerStatus> GeneratePlayers(MainBoardController mainBoardController, int playersCount, string[] names) { var result = new List<PlayerStatus>(); for (int i = 0; i < playersCount; i++) { var player = new PlayerStatus(i, names[i]); var doubloons = Constants.DoubloonsByPlayers[playersCount]; player.ReceiveDoubloons(mainBoardController.TakeDoubloons(doubloons)); var plantation = new Plantation(Constants.PlantationsByPlayersOrder[new Tuple<int, int>(i + 1, playersCount)]); player.Board.BuildPlantation(plantation); result.Add(player); } return result; }
public GameController(IVisualizer visualizer, params IPlayerConnection[] connections) { InitEvents(visualizer); var playerCount = connections.Length; _mainBoardController = new MainBoardController(playerCount); _connections = Util.Shuffle(connections).ToList(); var players = PlayerStatusFactory.GeneratePlayers(_mainBoardController, playerCount, _connections.Select(x => x.Name).ToArray()); _players = players.ToDictionary(x => x.Id, x => new PlayerContainer { Connection = _connections.Single(c => c.Name == x.Name), Status = x, Controller = new PlayerController(_mainBoardController, x) }); _governor = 0; }
public PlayerController(MainBoardController mainBoardController, PlayerStatus playerStatus) { _mainBoardController = mainBoardController; _playerStatus = playerStatus; }
private void DoTradeFinishAction(MainBoardController mainBoardController) { var market = mainBoardController.Status.Market; var endPhaseResult = market.EndPhase(); if (endPhaseResult != null) { mainBoardController.ReceiveGoods(endPhaseResult); } }
private bool DoMayorInitAction(PlayerStatus currentPlayerStatus, MainBoardController mainBoardController, List<int> playerIds) { playerIds.Insert(0, currentPlayerStatus.Id); var playersCount = playerIds.Count; foreach (var playerId in playerIds) { var currentTotalColonistsCount = _mainBoardController.Status.AvailableColonists.CurrentColonistsCount; var status = _players[playerId].Status; var colonistsCount = currentTotalColonistsCount%playersCount + currentTotalColonistsCount/playersCount; _mainBoardController.Status.Colonists.Move(status.Board.ColonistsWarehouse, colonistsCount); playersCount--; } return true; }
private void DoCaptainFinishAction(MainBoardController mainBoardController) { var freeGoods = mainBoardController.Status.Ships.Select(x => x.FinishRound()).Where(x => x != null); mainBoardController.ReceiveGoods(freeGoods); }