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