Exemple #1
0
    public void SetOrder(byte[] data)
    {
        DisplayOrderData newData = new DisplayOrderData(data);

        memberIDToIndex.Clear();
        for (int i = 0; i < newData.keys.Length; i++)
        {
            memberIDToIndex.Add(newData.keys[i], newData.values[i]);
        }
    }
Exemple #2
0
    public void UpdateWithLobbyMembers(long lobbyId)
    {
        var  members = lobbyManager.GetMemberUsers(lobbyId);
        long counter = 1;

        foreach (var item in members)
        {
            long index;
            if (memberIDToIndex.TryGetValue(item.Id, out index))
            {
                UpdateDisplayForId(item, index);
                counter++;
            }
            else
            {
                UpdateDisplayForId(item, counter++);
                if (GameManager.INSTANCE.IsTheHost())
                {
                    memberIDToIndex.Add(item.Id, counter - 1);
                }
            }
        }
        for (int i = (int)counter; i < PlayerPortraitsCanvas.INSTANCE.pairedPortriats.Count; i++)
        {
            UpdateDisplayForId(new Discord.User(), i);
        }
        if (GameManager.INSTANCE.IsTheHost() && DiscordLobbyService.INSTANCE.Online())
        {
            List <long> keys   = new List <long>();
            List <long> values = new List <long>();
            foreach (var item in memberIDToIndex)
            {
                keys.Add(item.Key);
                values.Add(item.Value);
            }
            DisplayOrderData data = new DisplayOrderData(keys.ToArray(), values.ToArray());
            DiscordNetworkLayerService.INSTANCE.SendMessegeToAllOthers(NetworkChannel.PORTRAITS_SYNC, data.ToBytes());
        }
    }