Esempio n. 1
0
        public async void UpdateChampList()
        {
            var champs = new List <MyChampDto>();

            foreach (var riot in await Session.Current.Account.GetAvailableChampions())
            {
                if ((!riot.Owned && !riot.FreeToPlay) || riot.Banned)
                {
                    continue;
                }
                champs.Add(DataDragon.GetChampData(riot.ChampionId));
            }
            SetChampList(champs);
        }
Esempio n. 2
0
        public MatchDetails(RiotACS.Game game, RiotACS.Delta delta, Action back = null)
        {
            InitializeComponent();

            this.back = back;
            if (back == null)
            {
                BackButton.Visibility = Visibility.Collapsed;
            }

            var blue = new List <object>();
            var red  = new List <object>();

            foreach (var player in game.Participants)
            {
                var champ  = DataDragon.GetChampData(player.ChampionId);
                var spell1 = DataDragon.GetSpellData(player.Spell1Id);
                var spell2 = DataDragon.GetSpellData(player.Spell2Id);

                var items = new[] { player.Stats.Item0, player.Stats.Item1, player.Stats.Item2, player.Stats.Item3, player.Stats.Item4, player.Stats.Item5, player.Stats.Item6 };

                var item = new {
                    ChampImage  = DataDragon.GetChampIconImage(champ),
                    Spell1Image = DataDragon.GetSpellImage(spell1),
                    Spell2Image = DataDragon.GetSpellImage(spell2),
                    Name        = champ.name,
                    Score       = $"{player.Stats.Kills} / {player.Stats.Deaths} / {player.Stats.Assists}",
                    Item0Image  = DataDragon.GetItemImage(items[0]),
                    Item1Image  = DataDragon.GetItemImage(items[1]),
                    Item2Image  = DataDragon.GetItemImage(items[2]),
                    Item3Image  = DataDragon.GetItemImage(items[3]),
                    Item4Image  = DataDragon.GetItemImage(items[4]),
                    Item5Image  = DataDragon.GetItemImage(items[5]),
                    Item6Image  = DataDragon.GetItemImage(items[6]),
                    CS          = player.Stats.TotalMinionsKilled,
                    Gold        = (player.Stats.GoldEarned / 1000.0).ToString("#.#k")
                };

                if (player.TeamId == 100)
                {
                    blue.Add(item);
                }
                else
                {
                    red.Add(item);
                }
            }
            BlueTeam.ItemsSource = blue;
            RedTeam.ItemsSource  = red;
        }
Esempio n. 3
0
 private void GotChampions(Task <ChampionDTO[]> Champs)
 {
     if (Champs.IsFaulted)
     {
         if (Debugger.IsAttached)
         {
             Debugger.Break();
         }
         return;
     }
     RiotChampions      = new List <ChampionDTO>(Champs.Result);
     AvailableChampions = new List <MyChampDTO>();
     foreach (var item in Champs.Result)
     {
         AvailableChampions.Add(DataDragon.GetChampData(item.ChampionId));
     }
 }
Esempio n. 4
0
        public MatchHistoryItem()
        {
            InitializeComponent();

            Loaded += (src, e) => {
                var game     = DataContext as RiotACS.Game;
                var identity = game.ParticipantIdentities.FirstOrDefault(i => i.Player.AccountId == Session.Current.Account.AccountID);
                var me       = game.Participants.FirstOrDefault(p => p.ParticipantId == identity.ParticipantId);

                var champ  = DataDragon.GetChampData(me.ChampionId);
                var spell1 = DataDragon.GetSpellData(me.Spell1Id);
                var spell2 = DataDragon.GetSpellData(me.Spell2Id);

                ChampImage.Source  = DataDragon.GetChampIconImage(champ).Load();
                Spell1Image.Source = DataDragon.GetSpellImage(spell1).Load();
                Spell2Image.Source = DataDragon.GetSpellImage(spell2).Load();

                MapLabel.Content = DataDragon.GameMaps[game.MapId];
                if (game.GameType.Equals("CUSTOM_GAME"))
                {
                    ModeLabel.Content = "Custom";
                }
                else if (game.GameType.Equals("TUTORIAL_GAME"))
                {
                    ModeLabel.Content = "Tutorial";
                }
                else
                {
                    ModeLabel.Content = GameMode.Values[game.GameMode].Value;
                }

                var items  = new[] { me.Stats.Item0, me.Stats.Item1, me.Stats.Item2, me.Stats.Item3, me.Stats.Item4, me.Stats.Item5, me.Stats.Item6 };
                var images = new[] { Item0Image, Item1Image, Item2Image, Item3Image, Item4Image, Item5Image, Item6Image };
                for (int i = 0; i < items.Length; i++)
                {
                    images[i].Source = DataDragon.GetItemImage(items[i]).Load();
                }

                ScoreLabel.Content = $"{me.Stats.Kills} / {me.Stats.Deaths} / {me.Stats.Assists}";
                var date = Session.Epoch.AddMilliseconds(game.GameCreation);

                DateLabel.Content = date.ToString("M / d / yyyy");
                TimeLabel.Content = date.ToString("h:mm tt");
            };
        }
Esempio n. 5
0
 private void DisplaySelection(PlayerChampionSelectionDTO selection)
 {
     if (selection?.Spell1Id > 0 && selection?.Spell2Id > 0 && selection?.ChampionId > 0)
     {
         ChampImage.Source  = DataDragon.GetChampIconImage(DataDragon.GetChampData(selection.ChampionId)).Load();
         Spell1Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell1Id)).Load();
         Spell2Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell2Id)).Load();
         Unknown.Visibility = Obscure.Visibility = Visibility.Collapsed;
     }
     else if (selection?.Spell1Id > 0 && selection?.Spell2Id > 0)
     {
         Spell1Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell1Id)).Load();
         Spell2Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell2Id)).Load();
         Grid.SetColumnSpan(Unknown, 1);
         Grid.SetColumnSpan(Obscure, 1);
         Unknown.Visibility = Obscure.Visibility = Visibility.Visible;
     }
     else
     {
         Unknown.Visibility = Obscure.Visibility = Visibility.Visible;
     }
 }
Esempio n. 6
0
        private TurnInfo RenderPlayers(GameDTO game)
        {
            var turn = new TurnInfo();

            MyTeam.Children.Clear();
            OtherTeam.Children.Clear();
            bool meBlue = game.TeamOne.Any(p => (p as PlayerParticipant)?.AccountId == Session.Current.Account.AccountID);

            foreach (var thing in game.TeamOne.Concat(game.TeamTwo))
            {
                var  player = thing as PlayerParticipant;
                var  bot    = thing as BotParticipant;
                var  obfusc = thing as ObfuscatedParticipant;
                bool blue   = game.TeamOne.Contains(thing);

                UserControl control;
                if (player != null)
                {
                    var selection = game.PlayerChampionSelections?.FirstOrDefault(c => c.SummonerInternalName == player.SummonerInternalName);
                    control = new ChampSelectPlayer(player, selection);
                    if (player.PickTurn == game.PickTurn)
                    {
                        if (player.SummonerId == Session.Current.Account.SummonerID)
                        {
                            turn.IsMyTurn = turn.IsOurTurn = true;
                        }
                        else if (meBlue == blue)
                        {
                            turn.IsOurTurn = true;
                        }
                    }
                }
                else if (bot != null)
                {
                    control = new ChampSelectPlayer(bot);
                }
                else if (obfusc != null)
                {
                    control = new ChampSelectPlayer(obfusc, null);
                }
                else
                {
                    Session.Log(thing.GetType().Name);
                    control = null;
                }

                if (blue == meBlue)
                {
                    MyTeam.Children.Add(control);
                }
                else
                {
                    OtherTeam.Children.Add(control);
                }
            }
            if (OtherTeam.Children.Count == 0)
            {
                OtherTeam.Visibility = Visibility.Collapsed;
            }

            Ban1.Source = Ban2.Source = Ban3.Source = Ban4.Source = Ban5.Source = Ban6.Source = null;
            Image[] blueBans, redBans;
            if (meBlue)
            {
                blueBans = new[] { Ban1, Ban2, Ban3 };
                redBans  = new[] { Ban4, Ban5, Ban6 };
            }
            else
            {
                blueBans = new[] { Ban4, Ban5, Ban6 };
                redBans  = new[] { Ban1, Ban2, Ban3 };
            }
            foreach (var thing in game.BannedChampions)
            {
                var champ = DataDragon.GetChampData(thing.ChampionId);
                var image = DataDragon.GetChampIconImage(champ);
                int index = thing.PickTurn - 1;
                if (index % 2 == 0)
                {
                    //0, 2, 4: Blue team's bans
                    blueBans[thing.PickTurn / 2].Source = image.Load();
                }
                else
                {
                    //1, 3, 5: Red team's bans
                    redBans[thing.PickTurn / 2].Source = image.Load();
                }
            }

            //Dispatcher.BeginInvoke((Action) (() => MyTeam.Height = OtherTeam.Height = Math.Max(MyTeam.ActualHeight, OtherTeam.ActualHeight)), System.Windows.Threading.DispatcherPriority.Input);
            return(turn);
        }
Esempio n. 7
0
        private async void Update()
        {
            var game   = this.game.Data;
            var config = Session.Current.Account.LoginPacket.GameTypeConfigs.FirstOrDefault(q => q.Id == game.GameTypeConfigId);

            LockInButt.IsEnabled = false;
            var myChamp = game.PlayerChampionSelections
                          .FirstOrDefault(p => p.SummonerInternalName == Session.Current.Account.LoginPacket.AllSummonerData.Summoner.InternalName);
            var me = (PlayerParticipant)game.TeamOne.Concat(game.TeamTwo)
                     .FirstOrDefault(p => (p as PlayerParticipant)?.AccountId == Session.Current.Account.AccountID);

            if (game.GameState.Equals("CHAMP_SELECT") || game.GameState.Equals("PRE_CHAMP_SELECT"))
            {
                var turn = Dispatcher.MyInvoke(RenderPlayers, game);
                Popup.ChampSelector.IsReadOnly = !turn.IsMyTurn;

                spell1 = DataDragon.GetSpellData(myChamp.Spell1Id);
                spell2 = DataDragon.GetSpellData(myChamp.Spell2Id);
                Dispatcher.Invoke(() => {
                    Spell1Image.Source = DataDragon.GetSpellImage(spell1).Load();
                    Spell2Image.Source = DataDragon.GetSpellImage(spell2).Load();
                });

                LockInButt.IsEnabled = turn.IsMyTurn;

                if (game.GameState.Equals("PRE_CHAMP_SELECT"))
                {
                    if (last?.PickTurn != game.PickTurn)
                    {
                        SetTimer(config.BanTimerDuration - 2);
                    }
                    if (turn.IsMyTurn)
                    {
                        state = State.Banning;
                    }
                    else
                    {
                        state = State.Watching;
                    }
                    var champs = await this.game.GetChampionsForBan();

                    if (turn.IsOurTurn)
                    {
                        Popup.ChampSelector.SetChampList(champs.Where(c => c.EnemyOwned).Select(c => DataDragon.GetChampData(c.ChampionId)));
                    }
                    else
                    {
                        Popup.ChampSelector.SetChampList(champs.Where(c => c.Owned).Select(c => DataDragon.GetChampData(c.ChampionId)));
                    }

                    if (turn.IsMyTurn)
                    {
                        header = YouBanString;
                    }
                    else if (turn.IsOurTurn)
                    {
                        header = YourTeamBanString;
                    }
                    else
                    {
                        header = OtherTeamBanString;
                    }
                }
                else
                {
                    if (last?.PickTurn != game.PickTurn)
                    {
                        SetTimer(config.MainPickTimerDuration - 2);
                    }
                    if (turn.IsMyTurn)
                    {
                        state = State.Picking;
                    }
                    else
                    {
                        state = State.Watching;
                    }
                    Popup.ChampSelector.UpdateChampList();

                    if (turn.IsMyTurn)
                    {
                        header = YouPickString;
                    }
                    else
                    {
                        header = NotPickingString;
                    }
                }
            }
            else if (game.GameState.Equals("POST_CHAMP_SELECT"))
            {
                if (last?.PickTurn != game.PickTurn)
                {
                    SetTimer(config.PostPickTimerDuration - 2);
                }
                var turn = Dispatcher.MyInvoke(RenderPlayers, game);
                state = State.Watching;
                Popup.ChampSelector.IsReadOnly = true;
                header = PostString;
            }
            else
            {
            }

            if (game.GameType == GameConfig.AllRandom.Value)
            {
                LockInButt.Content   = $"{me.PointSummary.NumberOfRolls} / {me.PointSummary.MaxRolls}";
                LockInButt.IsEnabled = me.PointSummary.NumberOfRolls > 0;
            }

            MyTeam.Columns = OtherTeam.Columns = game.MaxNumPlayers / 2;
            UpdateHeader();
            last = game;
        }