public void HandlePlayerJoin(Gamepad pad)
    {
        if (players.Count == 0)
        {
            FindObjectOfType <MenuManager>().SkipMainMenuScreen();
        }

        if (!players.Any(p => p.config.Input.gamepad == pad))
        {
            var player = Instantiate(playerPreFab.gameObject, transform).GetComponent <PlayerController>();

            var config = new PlayerConfiguration(players.Count);
            config.info  = PlayerLevelingManager.Instance.GetLastPlayerInfo(config.PlayerIndex);
            config.Input = new PlayerInputMethod(player, pad);
            players.Add(player);

            player.config = config;

            if (GameSettings.gameMode.IsTeamBased)
            {
                player.config.Team = GameSettings.gameMode.TeamScores[player.config.PlayerIndex % GameSettings.gameMode.NumberOfTeams];
                FindObjectOfType <JoinRoomManager>().ChangeTeam(player);
            }
            else
            {
                GamemodeBase.AutoAssignTeams();
            }

            StartCoroutine(SetPlayerColorAfterPlayerEnableCall(player));
            RecalculateUsedAndUnusedGamepads();
        }
    }
 public void OnModeSpawnedInJoinRoom()
 {
     GamemodeBase.AutoAssignTeams();
 }