Пример #1
0
    void RefreshUserList()
    {
        int counter = 0;

        foreach (VirtualPlayerManager.VirtualPlayerInfo player in virtualPlayerManager.EnumerateVirtualPlayers())
        {
            if (counter + 1 > playerList.Count)
            {
                PlayerListItem newItem = Instantiate(multiplayerMenuUI.playerListTemplate, multiplayerMenuUI.playerListObject.transform);
                newItem.Setup(virtualPlayerManager);
                newItem.onReportOrKick = OnReportOrKick;
                playerList.Add(newItem);
                newItem.gameObject.SetActive(true);
            }
            playerList[counter].SetVirtualPlayerInfo(player, /* isYou */ playerControlsManager.GetMyPlayerNumber() == player.slotNumber);
            counter++;
        }

        if (counter < playerList.Count)
        {
            for (int i = counter; i < playerList.Count; i++)
            {
                playerList[i].RequestDestroy();
            }

            playerList.RemoveRange(counter, playerList.Count - counter);
        }

        foreach (PlayerListItem item in playerList)
        {
            item.UpdateEditToggle();
        }

        // if(counter )
    }
Пример #2
0
    private void UpdateBuildPermissionsForNewUsers()
    {
        HashSet <string> newIds = new HashSet <string>();

        foreach (VirtualPlayerManager.VirtualPlayerInfo player in virtualPlayerManager.EnumerateVirtualPlayers())
        {
            if (VirtualIDsWithSetBuildPermissions.Contains(player.virtualId))
            {
                continue;
            }
            newIds.Add(player.virtualId);
        }

        foreach (string id in newIds)
        {
            VirtualIDsWithSetBuildPermissions.Add(id);
            virtualPlayerManager.SetPlayerCanEdit(id, headerMenu.multiplayerGameMenu.GetNewUsersCanBuild());
        }
    }
Пример #3
0
    public void Show(VoosActor actor)
    {
        // Start with player 0 to avoid warnings/etc.
        AssignPlayerToActor(0, actor.GetName());

        string name = actor.GetDisplayName();
        List <PopupButton.Params> buttons = new List <PopupButton.Params>();

        int myPlayerNumber = playerControlsManager.GetMyPlayerNumber();

        int maxPlayerSlotNumber = 4; // Show at least player 1-4, unless there are more players.

        foreach (VirtualPlayerManager.VirtualPlayerInfo player in virtualPlayerManager.EnumerateVirtualPlayers())
        {
            maxPlayerSlotNumber = Mathf.Max(player.slotNumber, maxPlayerSlotNumber);
        }
        for (int i = 1; i <= maxPlayerSlotNumber; i++)
        {
            int thisNumber = i; // For closures below
            buttons.Add(new PopupButton.Params
            {
                getLabel = () => $"Player {thisNumber}" + ((thisNumber == myPlayerNumber) ? " (myself)" : ""),
                onClick  = () => OnClickedPlayerNumber(actor, thisNumber)
            });
        }
        buttons.Add(new PopupButton.Params {
            getLabel = () => "Nobody for now", onClick = () => OnClickedPlayerNumber(actor, 0)
        });
        buttons.Add(new PopupButton.Params {
            getLabel = () => "It's an NPC", onClick = () => OnClickedIsNpc(actor)
        });
        popups.Show(new DynamicPopup.Popup
        {
            getMessage = () => $"Who will control this {name}?",
            buttons    = buttons,
        });
    }