public static Changes GetChanges(this Game2.Game game, Game2.Commands.PlayerMoveCommand cmd) { var affectedCells = game.Attack(cmd); return(new Changes { status = game.Winner, valid = affectedCells.Any(), nextMove = new Cell { }, nextPlayer = game.NextPlayer, cells = affectedCells.Select(cell => new Cell { type = cell.Type == Game2.CellType.Destroyed ? CellType.Killed : CellType.Missed, x = cell.X, y = cell.Y }).ToList(), x = cmd.Move.X, y = cmd.Move.Y }); }
public static InitData GetInitData(this Game2.Game game, int playerIndex) { var player1 = game.Player1; var player2 = game.Player2; if (playerIndex == 1) { player1 = game.Player2; player2 = game.Player1; } return(new InitData { name = game.Name, player = playerIndex, nextPlayer = game.NextPlayer, nextMove = new Cell[] { }, fields = new[] { GetCells(GetCellTypeSelf(player1)), GetCells(GetCellTypeEnemy(player2)) } }); }