public string SelectCurrentPlayer(ShipsGameStatus gameStatus, Game game) { var shipsGame = (game as Common.Models.ShipsGame); var id = shipsGame.Players.IndexOf(gameStatus.CurrentPlayerId); if (shipsGame.Players.Count() == 0) { return(null); } if (id == 0) { return(shipsGame.Players[1]); } return(shipsGame.Players[0]); }
public void RecieveGameStatus(string gameId, ShipsGameStatus gameStatus) { _gameHelper.UpdateBoard(gameId, gameStatus); }
public async Task SendGameStatus(string gameId, ShipsGameStatus gameStatus) { await _hubContext.Clients.Group(gameId).SendAsync("GameStatus", gameStatus); }
public GameTask(ShipsGameStatus gameStatus, Common.Models.ShipsGame game) { GameStatus = gameStatus; Game = game; }
public void UpdateBoard(string gameId, ShipsGameStatus gameStatus) { var game = gameTasks.FirstOrDefault(g => g.Game.Room.Id.ToString() == gameId); game.GameStatus.Boards = gameStatus.Boards; }
private ValueTuple <string, ShipsBoard> Shoot(int intCoordinates, char charCoordinates, ShipsBoard board, ShipsGameStatus gameStatus) { int i = charCoordinates - 'A'; ShipsField field = board.Board[intCoordinates - 1][i]; string message; field.TriedToShoot = true; var move = new Move { Field = field, PlayerId = board.PlayerId }; gameStatus.CurrentMove = move; if (field.IsShip) { field.IsShot = true; field.PartsDestroyed++; if (field.ShipType == ShipType.Ship1 || IsSunk(field)) { field.IsSunk = true; message = "Congrats! Ship sunk!"; board.ShipsSunk++; } else { message = "Great! You shot this ship!"; } } else { message = "Nothing there, try again!"; } board.Board[intCoordinates - 1][i] = field; return(message, board); }
public async Task SendGameStatus(string gameId, ShipsGameStatus gameStatus) { await shipsHub.SendGameStatus(gameId, gameStatus); }