private IEnumerator WaitForClientInfo(NetworkConnection playerConnection)
    {
        yield return(new WaitUntil(() => playerConnection.playerControllers.Count != 0));

        LobbyPlayerManager lobbyPlayer = playerConnection.playerControllers[0].gameObject.GetComponent <LobbyPlayerManager>();

        lobbyPlayer.Init();

        yield return(new WaitUntil(() => lobbyPlayer.GetName() != null));

        lobbyPlayer.SetPlayerObjectID(lobbyPlayer.GetComponent <NetworkIdentity>().netId);
        lobbyPlayer.SetPlayerConnection(lobbyPlayer.connectionToClient);

        for (int loop = 0; loop < 6; loop++)
        {
            if (players[loop] == null)
            {
                players[loop] = lobbyPlayer;
                break;
            }
            else if (players[loop + 6] == null)
            {
                players[loop + 6] = lobbyPlayer;
                break;
            }
        }

        RequestUpdatePlayerList();
    }
Beispiel #2
0
    public override bool OnLobbyServerSceneLoadedForPlayer(GameObject lobbyPlayer, GameObject gamePlayer)
    {
        LobbyPlayerManager lobbyPlayerManager = lobbyPlayer.GetComponent <LobbyPlayerManager>();
        GamePlayer         gamePlayerManager  = gamePlayer.GetComponent <GamePlayer>();

        lobbyManager.PlayerLoaded(lobbyPlayerManager, gamePlayerManager);

        return(base.OnLobbyServerSceneLoadedForPlayer(lobbyPlayer, gamePlayer));
    }
Beispiel #3
0
    public void PlayerLoaded(LobbyPlayerManager lobbyPlayer, GamePlayer gameManager)
    {
        if (!isServer)
        {
            return;
        }

        realLobbyManager.PlayerLoaded(lobbyPlayer, gameManager);
    }
    public void SwapPlayers(List <int> players)
    {
        Queue <int> leftPlayers  = new Queue <int>();
        Queue <int> rightPlayers = new Queue <int>();

        foreach (int player in players)
        {
            if (player == 0)
            {
                continue;
            }

            if (player < 6)
            {
                leftPlayers.Enqueue(player);
            }
            else
            {
                rightPlayers.Enqueue(player);
            }
        }

        foreach (int leftPlayer in leftPlayers)
        {
            if (rightPlayers.Count == 0)
            {
                break;
            }

            int rightPlayer         = rightPlayers.Dequeue();
            LobbyPlayerManager temp = this.players[rightPlayer];
            this.players[rightPlayer] = this.players[leftPlayer];
            this.players[leftPlayer]  = temp;
        }

        RequestUpdatePlayerList();
    }
 public void PlayerLoaded(LobbyPlayerManager lobbyPlayer, GamePlayer gamePlayer)
 {
     readyPlayers[lobbyPlayer] = true;
     gameManager.LoadPlayer(lobbyPlayer, gamePlayer);
 }
Beispiel #6
0
 public void LoadPlayer(LobbyPlayerManager lobbyPlayer, GamePlayer gamePlayer)
 {
     StartCoroutine(WaitForPlayerLoad(this.lobbyPlayers, this.gamePlayers, lobbyPlayer, gamePlayer));
 }
Beispiel #7
0
    private IEnumerator WaitForPlayerLoad(List <LobbyPlayerManager> lobbyPlayers, Dictionary <GamePlayer, int> gamePlayers, LobbyPlayerManager lobbyPlayer, GamePlayer gamePlayer)
    {
        yield return(new WaitUntil(() => gamePlayer.isServer));

        Debug.LogWarning("DING");
        int playerIndex = lobbyPlayers.IndexOf(lobbyPlayer);

        GameManager.Team playerTeam = (playerIndex < 6 ? GameManager.Team.Blue : GameManager.Team.Red);

        gamePlayer.SetupPlayer(lobbyPlayer.GetName(), playerTeam);
        Debug.LogWarning("Gameplayers add");
        gamePlayers.Add(gamePlayer, 0);
        Debug.LogWarning("Gamelayers after add: " + gamePlayers.Keys.Count);

        if (gamePlayers.Keys.Count == playerCount)
        {
            StartGame();
        }
    }
 public void Init()
 {
     clientProxy = GetComponent <LobbyPlayerManager>();
 }