Esempio n. 1
0
        void RefreshGameList()
        {
            lock (timer)
            {
                Log.Info("Refreshing list...");
                var list = Program.LobbyClient.GetHostedGames().Select(x => new HostedGameViewModel(x)).ToList();
                Log.Info("Got hosted games list");

                Dispatcher.Invoke(
                    new Action(
                        () =>
                {
                    Log.Info("Refreshing visual list");

                    if (HideUninstalledGames)
                    {
                        list = list.Where(game => game.GameName != "{Unknown Game}").ToList();
                    }

                    var removeList = HostedGameList.Where(i => list.All(x => x.Port != i.Port)).ToList();
                    removeList.ForEach(x => HostedGameList.Remove(x));
                    var addList = list.Where(i => this.HostedGameList.All(x => x.Port != i.Port)).ToList();
                    HostedGameList.AddRange(addList);
                    foreach (var g in HostedGameList)
                    {
                        g.Update();
                    }
                    Log.Info("Visual list refreshed");
                }));
            }
        }
Esempio n. 2
0
        void RefreshGameList(List <GameDetails> games)
        {
            lock (_gameListLocker)
            {
                //Log.Info("Refreshing list...");
                var list = games.Select(x => new HostedGameViewModel(x)).ToList();
                list.AddRange(broadcastListener.Games.Select(x => new HostedGameViewModel(x)));

                //Log.Info("Got hosted games list");
                ShowKillGameButton = Prefs.IsAdmin;

                Dispatcher.Invoke(
                    new Action(
                        () =>
                {
                    //Log.Info("Refreshing visual list");

                    var removeList = HostedGameList.Where(i => list.All(x => x.Id != i.Id)).ToList();
                    removeList.ForEach(x => HostedGameList.Remove(x));
                    var addList = list.Where(i => this.HostedGameList.All(x => x.Id != i.Id)).ToList();
                    HostedGameList.AddRange(addList);
                    var dbgames = GameManager.Get().Games.ToArray();
                    foreach (var g in HostedGameList)
                    {
                        var li = list.FirstOrDefault(x => x.Id == g.Id);
                        g.Update(li, dbgames);
                    }
                    //Log.Info("Visual list refreshed");
                }));
            }
        }
Esempio n. 3
0
        private void BJoinClick(object sender, RoutedEventArgs e)
        {
            var hgl = new HostedGameList();

            hgl.OnGameClick += hgl_OnGameClick;
            frame1.Navigate(hgl);
        }
Esempio n. 4
0
        public void HostJoinTab()
        {
            var hgl = new HostedGameList();

            hgl.OnGameClick += hgl_OnGameClick;
            RefreshGameFilter();
            frame1.Navigate(hgl);
        }
Esempio n. 5
0
        void GameFiltered(Controls.HostedGameListFilterItem sender, Boolean show)
        {
            Prefs.setFilterGame(sender.Label, show);
            if (frame1.Content.GetType() != typeof(HostedGameList))
            {
                return;
            }
            HostedGameList hostedGameList = frame1.Content as HostedGameList;

            if (hostedGameList != null)
            {
                hostedGameList.FilterGames(sender.GameId, show);
            }
        }
Esempio n. 6
0
        void RefreshGameList(object sender, ElapsedEventArgs elapsedEventArgs)
        {
            lock (timer)
            {
                //Log.Info("Refreshing list...");
                var list = Program.LobbyClient.GetHostedGames().Select(x => new HostedGameViewModel(x)).ToList();
                list.AddRange(broadcastListener.Games.Select(x => new HostedGameViewModel(x)));

                //Log.Info("Got hosted games list");

                this.ShowKillGameButton = false;
                if (_room != null && Program.LobbyClient != null &&
                    Program.LobbyClient.Me != null &&
                    Program.LobbyClient.Me.ApiUser != null &&
                    Program.LobbyClient.IsConnected)
                {
                    var allowed = new List <User>();
                    allowed.AddRange(_room.AdminList);
                    allowed.AddRange(_room.ModeratorList);
                    allowed.AddRange(_room.OwnerList);
                    if (allowed.Any(x => x.ApiUser != null &&
                                    x.ApiUser.Id == Program.LobbyClient.Me.ApiUser.Id))
                    {
                        this.ShowKillGameButton = true;
                    }
                }

                Dispatcher.Invoke(
                    new Action(
                        () =>
                {
                    //Log.Info("Refreshing visual list");

                    var removeList = HostedGameList.Where(i => list.All(x => x.Id != i.Id)).ToList();
                    removeList.ForEach(x => HostedGameList.Remove(x));
                    var addList = list.Where(i => this.HostedGameList.All(x => x.Id != i.Id)).ToList();
                    HostedGameList.AddRange(addList);
                    var games = GameManager.Get().Games.ToArray();
                    foreach (var g in HostedGameList)
                    {
                        var li = list.FirstOrDefault(x => x.Id == g.Id);
                        g.Update(li, games);
                    }
                    //Log.Info("Visual list refreshed");
                }));
            }
        }
Esempio n. 7
0
        void RefreshGameList()
        {
            Trace.WriteLine("Refreshing list...");
            var list = Program.LobbyClient.GetHostedGames().Select(x => new HostedGameViewModel(x)).ToList();

            Dispatcher.Invoke(new Action(() =>
            {
                var removeList = HostedGameList.Where(i => !list.Any(x => x.Port == i.Port)).ToList();
                removeList.ForEach(x => HostedGameList.Remove(x));
                var addList = list.Where(i => !HostedGameList.Any(x => x.Port == i.Port)).ToList();
                HostedGameList.AddRange(addList);
                foreach (var g in HostedGameList)
                {
                    g.Update();
                }
            }));
        }