public void ConnectToMiddleMan() { int attempts = 0; while (!MiddleManAPI.Connect() && attempts++ < 30) { Thread.Sleep(200); } MiddleManAPI.ConnectedSuccess += () => Dispatcher?.Invoke(() => ViewController.SetView(new LobbyListView())); }
public LobbyListView() { InitializeComponent(); MiddleManAPI.RequestLobbyList(); MiddleManAPI.NewLobbyList += (List <LobbyListItem> list) => { Dispatcher?.Invoke(() => LobbyListDataGrid.ItemsSource = list); }; LobbyListDataGrid.SizeChanged += LobbyListDataGrid_SizeChanged; }
public LobbyView(BaseLobby lobby) { this.lobby = lobby; InitializeComponent(); ChatListBox.ItemsSource = lobby.ChatMessages; if (lobby.Type == LobbyType.Host) { ForceJumpsCheck.IsEnabled = true; ForceJumpsCheck.Visibility = Visibility.Visible; MiddleManAPI.UpdateLobbyStatus(LobbyStatus.InLobby); (lobby as HostLobby).StartEnabled += () => Dispatcher?.Invoke(() => { StartButton.IsEnabled = true; StartButton.Visibility = Visibility.Visible; }); } lobby.PeerDisconnected += Lobby_PeerDisconnected; }
public GameView(BaseLobby lobby) { InitializeComponent(); Lobby = lobby; ChatBox.ItemsSource = lobby.ChatMessages; lobby.NextTurn += Lobby_NextTurn; lobby.PieceSelected += Lobby_PieceSelected; lobby.TileSelected += Lobby_TileSelected; lobby.GameEnd += Lobby_GameEnd; lobby.PeerDisconnected += Lobby_PeerDisconnected; if (lobby.Type == LobbyType.Host) { MiddleManAPI.UpdateLobbyStatus(LobbyStatus.InLobby); } }
public LoadingLobbyView(LobbyType type, int lobbyID = 0) { InitializeComponent(); if (type == LobbyType.Host) { StatusText.Text = "Creating A Lobby..."; MiddleManAPI.HostLobby(); MiddleManAPI.LobbyCreated += () => Dispatcher?.Invoke(() => ViewController.SetView(new LobbyView(new HostLobby()))); } else if (type == LobbyType.User) { if (lobbyID == 0) { Dispatcher?.Invoke(() => ViewController.SetView(new LobbyListView())); } else { StatusText.Text = "Connecting To Lobby #" + lobbyID + "..."; MiddleManAPI.JoinLobby(lobbyID); MiddleManAPI.JoinLobbySuccess += (Socket connection) => Dispatcher?.Invoke(() => ViewController.SetView(new LobbyView(new UserLobby(connection)))); MiddleManAPI.JoinLobbyFailure += () => Dispatcher?.Invoke(() => ViewController.SetView(new LobbyListView())); } } }
private void RefreshButton_Click(object sender, RoutedEventArgs e) { MiddleManAPI.RequestLobbyList(); }