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); } }
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; }
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); } }