private void AddStartingUnitsToTheBoard(Player player, int playerNumber, int numberOfUnits, int numberOfPlayers) { Hex ne = new Hex(GridSize, 0, -GridSize); Hex e = new Hex(GridSize, -GridSize, 0); Hex se = new Hex(0, -GridSize, GridSize); Hex sw = new Hex(-GridSize, 0, GridSize); Hex w = new Hex(-GridSize, GridSize, 0); Hex nw = new Hex(0, GridSize, -GridSize); Hex startingHex; switch (playerNumber) { case 0: startingHex = ne; break; case 1: switch (numberOfPlayers) { case 2: startingHex = sw; break; case 3: case 4: startingHex = se; break; default: startingHex = e; break; } break; case 2: switch (numberOfPlayers) { case 3: startingHex = w; break; case 4: startingHex = sw; break; default: startingHex = se; break; } break; case 3: switch (numberOfPlayers) { case 4: startingHex = nw; break; default: startingHex = sw; break; } break; case 4: startingHex = w; break; case 5: startingHex = nw; break; default: throw new ApplicationException("Only supports up to 6 players."); } Cell unitCell = NextTurn.GetCell(startingHex); for (int i = 0; i < numberOfUnits; i++) { Unit unit = new Unit(player); unitCell.AddUnit(unit); } }
internal void AddNewUnitsToPlayer(Player player, int numberOfNewUnits) { for (int i = 0; i < numberOfNewUnits; i++) { var unit = new Unit(player); NewUnits.Add(unit); } }