Example #1
0
        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);
 }
Example #4
0
 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;
        }
Example #6
0
        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);
 }