public void Start(bool shufflePlayers = false) { if (PlayerCount < GameConfig.MinPlayer || PlayerCount > GameConfig.MaxPlayer) { throw new InvalidOperationException("Invalid player count"); } if (shufflePlayers) { Players = ShufflePlayers(Players); } _governor = Players.First(); CurrentRoleOwnerPlayer = _governor; PlantationDeck = new PlantationDeck(PlayerCount, RandomSeed); var colonistCount = GameConfig.ColonistCount[PlayerCount]; Colonists = new Stack <Colonist>(colonistCount); for (var i = 0; i < colonistCount; i++) { Colonists.Push(new Colonist()); } Quarries = new Stack <Quarry>(GameConfig.QuarryCount); for (var i = 0; i < GameConfig.QuarryCount; i++) { Quarries.Push(new Quarry()); } Buildings = InitializeBuildings(); ColonistShip = new ColonistShip(this); Goods = InitializeGoods(); CargoShips = InitializeCargoShips(PlayerCount); VictoryPointChips = InitializeVictoryPointChips(PlayerCount); Roles = InitializeRoles(PlayerCount, this); InitializePlayerDoubloons(Players); InitializePlayerPlantations(Players, PlantationDeck); Status = GameStatus.RUNNING; }
public static ColonistShipDto Create(ColonistShip colonistShip) { return(new ColonistShipDto { ColonistCount = colonistShip.ColonistCount }); }