public DefaultQueuePopup(Queue queue) {
      InitializeComponent();

      Queue = queue;

      queue.QueuePopped += Queue_QueuePopped;
      queue.QueuePopUpdated += Queue_QueuePopUpdated;
      queue.EnteredChampSelect += Queue_EnteredChampSelect;
      queue.QueueCancelled += Queue_QueueCancelled;
    }
 private void Queue_QueuePopUpdated(object sender, Queue.QueuePopPlayerState[] e) {
   Dispatcher.Invoke(() => {
     ParticipantPanel.Children.Clear();
     foreach (var state in e) {
       var border = new Border { Width = 16, Height = 20 };
       border.BorderBrush = App.ForeBrush;
       border.BorderThickness = new Thickness(1);
       border.Margin = new Thickness(2, 0, 2, 0);
       switch (state) {
         case Queue.QueuePopPlayerState.None:
           border.Background = App.Back1Brush;
           break;
         case Queue.QueuePopPlayerState.Accepted:
           border.Background = App.ChatBrush;
           break;
         case Queue.QueuePopPlayerState.Declined:
           border.Background = App.AwayBrush;
           break;
         default: break;
       }
       ParticipantPanel.Children.Add(border);
     }
   });
 }
    private void Lobby_QueueEntered(object sender, QueueEventArgs e) {
      queueTimer.Start();
      queue = e.Queue;
      Dispatcher.Invoke(() => {
        foreach (var control in PlayerList.Children)
          ((LobbyPlayer2) control).CanControl = false;

        QuitButton.Content = "Cancel";
        StartButton.Visibility = Visibility.Collapsed;
        QueueTimeLabel.Visibility = Visibility.Visible;
      });
    }
    private void Lobby_QueueLeft(object sender, EventArgs e) {
      queueTimer.Cancel();
      queue = null;
      Dispatcher.Invoke(() => {
        foreach (var control in PlayerList.Children)
          ((LobbyPlayer2) control).CanControl = lobby.IsCaptain;

        QuitButton.Content = "Quit";
        QueueTimeLabel.Visibility = Visibility.Collapsed;
        StartButton.Visibility = lobby.IsCaptain ? Visibility.Visible : Visibility.Hidden;
      });
    }
    private async void PlayRanked(int button) {
      Close?.Invoke(this, new EventArgs());
      switch (button) {
        case 0:
          try {
            var mmp = new MatchMakerParams { QueueIds = new[] { selected.ID } };
            queue = await Queue.Create(mmp);
            queue.QueuePopped += Queue_QueuePopped;
            queue.QueueCancelled += Queue_QueueCancelled;
            SetInQueue(true);
          } catch {

          }
          break;
        case 1:
          //TODO Ranked Duo Lobby
          var lobby = QueueLobby.CreateLobby(selected.ID);
          LoLClient.QueueManager.JoinLobby(lobby);
          break;
      }
    }
Beispiel #6
0
 public QueueEventArgs(Queue queue) {
   Queue = queue;
 }
Beispiel #7
0
 protected virtual void OnQueueLeft() {
   queue = null;
   QueueLeft?.Invoke(this, new EventArgs());
 }
Beispiel #8
0
 protected virtual void OnQueueEntered(SearchingForMatchNotification searching) {
   try {
     queue = Queue.Create(searching);
     queue.QueueCancelled += (s, e) => OnQueueLeft();
     QueueEntered?.Invoke(this, new QueueEventArgs(queue));
   } catch (Exception x) {
     //TODO Queue Dodge and the like
     Session.ThrowException(x, "Trying to enter queue");
     Dispose();
   }
 }