private void OnCreateGameMessage(NetworkMessage netMsg) { // determine player from the connectionId int connectionId = netMsg.conn.connectionId; var player = _playerConnections[connectionId]; // check player is in the lobby if (_playersInLobby.Contains(player)) { // create a game object _gameNumber++; Game game = new Game(_gameNumber, player); _games[_gameNumber] = game; _gameConnections[connectionId] = _gameNumber; // send the game number to the client var msg = new MessageTypes.GameNumberMessage(); msg.gameNumber = _gameNumber; NetworkServer.SendToClient(connectionId, (short)MessageTypes.MessageType.GAME_NUMBER, msg); // remove player from lobby _playersInLobby.Remove(player); // resend game list to all clients ResendLists(); //Debug.Log(String.Format("Created game {0} for player {1}", _gameNumber, player.Name)); } else { Debug.LogError("Trying to create game for player not in the lobby"); } }
private void OnJoinGameMessage(NetworkMessage netMsg) { // determine player from the connectionId int connectionId = netMsg.conn.connectionId; var player = _playerConnections[connectionId]; int gameNumber = netMsg.ReadMessage <MessageTypes.CancelGameMessage>().gameNumber; Game game = _games[gameNumber]; // check player is in the lobby if (_playersInLobby.Contains(player)) // TODO - check isn't already in another game? Unnecessary? { // add player to the game game.AddOpponent(player); _gameConnections[connectionId] = gameNumber; // send the game number to the client var msg = new MessageTypes.GameNumberMessage(); msg.gameNumber = gameNumber; NetworkServer.SendToClient(connectionId, (short)MessageTypes.MessageType.GAME_NUMBER, msg); // transition players to the game scene var msg2 = new MessageTypes.StartGameMessage(); msg2.opponentName = game.Opponent.Name; NetworkServer.SendToClient(game.Player.ConnectionId, (short)MessageTypes.MessageType.START_GAME, msg2); msg2.opponentName = game.Player.Name; NetworkServer.SendToClient(game.Opponent.ConnectionId, (short)MessageTypes.MessageType.START_GAME, msg2); // remove player from lobby _playersInLobby.Remove(player); // resend lists to all clients ResendLists(); //Debug.Log(String.Format("Added player {1} to game {0}", _gameNumber, player.Name)); } else { Debug.LogError("Trying to add a player not in the lobby to a game"); } }
private void OnJoinGameMessage(NetworkMessage netMsg) { // determine player from the connectionId int connectionId = netMsg.conn.connectionId; var player = _playerConnections[connectionId]; int gameNumber = netMsg.ReadMessage<MessageTypes.CancelGameMessage>().gameNumber; Game game = _games[gameNumber]; // check player is in the lobby if (_playersInLobby.Contains(player)) // TODO - check isn't already in another game? Unnecessary? { // add player to the game game.AddOpponent(player); _gameConnections[connectionId] = gameNumber; // send the game number to the client var msg = new MessageTypes.GameNumberMessage(); msg.gameNumber = gameNumber; NetworkServer.SendToClient(connectionId, (short)MessageTypes.MessageType.GAME_NUMBER, msg); // transition players to the game scene var msg2 = new MessageTypes.StartGameMessage(); msg2.opponentName = game.Opponent.Name; NetworkServer.SendToClient(game.Player.ConnectionId, (short)MessageTypes.MessageType.START_GAME, msg2); msg2.opponentName = game.Player.Name; NetworkServer.SendToClient(game.Opponent.ConnectionId, (short)MessageTypes.MessageType.START_GAME, msg2); // remove player from lobby _playersInLobby.Remove(player); // resend lists to all clients ResendLists(); //Debug.Log(String.Format("Added player {1} to game {0}", _gameNumber, player.Name)); } else { Debug.LogError("Trying to add a player not in the lobby to a game"); } }
private void OnCreateGameMessage(NetworkMessage netMsg) { // determine player from the connectionId int connectionId = netMsg.conn.connectionId; var player = _playerConnections[connectionId]; // check player is in the lobby if (_playersInLobby.Contains(player)) { // create a game object _gameNumber++; Game game = new Game(_gameNumber, player); _games[_gameNumber] = game; _gameConnections[connectionId] = _gameNumber; // send the game number to the client var msg = new MessageTypes.GameNumberMessage(); msg.gameNumber = _gameNumber; NetworkServer.SendToClient(connectionId, (short)MessageTypes.MessageType.GAME_NUMBER, msg); // remove player from lobby _playersInLobby.Remove(player); // resend game list to all clients ResendLists(); //Debug.Log(String.Format("Created game {0} for player {1}", _gameNumber, player.Name)); } else { Debug.LogError("Trying to create game for player not in the lobby"); } }