Ejemplo n.º 1
0
    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");
        }
    }
Ejemplo n.º 2
0
    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");
        }
    }