예제 #1
0
        protected virtual void UpdateSlots()
        {
            var left = new List <QueueLobbyMember>(Members);

            foreach (var slot in GroupData.Phase.Slots.OrderBy(s => s.SlotId))
            {
                var raw = lobbyStatus.Members[slot.SlotId];

                if (raw.SummonerName != slot.SummonerName)
                {
                    Session.Log($"Difference between slot and member {raw.SummonerName} != {slot.SummonerName}");
                }

                if (Members.Count >= slot.SlotId)
                {
                    var member = new TBDLobbyMember(raw, slot, this);;
                    Members.Add(member);
                    OnMemberJoined(member);
                }
                else
                {
                    Members[slot.SlotId].Update(raw);
                    ((TBDLobbyMember)Members[slot.SlotId]).Update(slot);
                    left.Remove(Members[slot.SlotId]);
                }
            }


            foreach (var member in left)
            {
                Members.Remove(member);
                OnMemberLeft(member);
            }
        }
예제 #2
0
    public TBDPlayer(bool amCaptain, TBDLobbyMember slot, int profileIconId) : this() {
      KickButton.Visibility = GiveInviteButt.Visibility = Visibility.Collapsed;
      CanControl = !slot.IsMe && amCaptain;

      this.slot = slot;
      slot.Changed += Slot_Changed;

      NameLabel.Content = slot.Name;

      ProfileIconImage.Source = DataDragon.GetProfileIconImage(DataDragon.GetIconData(profileIconId)).Load();
      PlusPath.Visibility = slot.HasInvitePower ? Visibility.Collapsed : Visibility.Visible;
      Session.Current.SummonerCache.GetData(slot.Name, GotSummoner);

      PrimaryCombo.Visibility = SecondaryCombo.Visibility = slot.IsMe ? Visibility.Visible : Visibility.Collapsed;

      PrimaryCombo.ItemsSource = TBDRole.Values.Values;
      SecondaryCombo.ItemsSource = TBDRole.Values.Values;
      SecondaryCombo.IsEnabled = false;
    }
예제 #3
0
    protected virtual void UpdateSlots() {
      var left = new List<QueueLobbyMember>(Members);

      foreach (var slot in GroupData.Phase.Slots.OrderBy(s => s.SlotId)) {
        var raw = lobbyStatus.Members[slot.SlotId];

        if (raw.SummonerName != slot.SummonerName) {
          Session.Log($"Difference between slot and member {raw.SummonerName} != {slot.SummonerName}");
        }

        if (Members.Count >= slot.SlotId) {
          var member = new TBDLobbyMember(raw, slot, this); ;
          Members.Add(member);
          OnMemberJoined(member);
        } else {
          Members[slot.SlotId].Update(raw);
          ((TBDLobbyMember) Members[slot.SlotId]).Update(slot);
          left.Remove(Members[slot.SlotId]);
        }
      }


      foreach (var member in left) {
        Members.Remove(member);
        OnMemberLeft(member);
      }
    }