Ejemplo n.º 1
0
        void controlMouseEnter(object sender, MouseEventArgs e)
        {
            GameScouterPlayer   control = (GameScouterPlayer)sender;
            object              m       = ((Dictionary <string, object>)control.Tag)["MasteryDataControl"];
            TinyRuneMasteryData smallData;

            if (m.GetType() == typeof(TinyRuneMasteryData))
            {
                smallData = (TinyRuneMasteryData)m;
            }
            else
            {
                smallData = new TinyRuneMasteryData();
                ((Dictionary <string, object>)control.Tag).Add("MasteryDataControl", smallData);
            }
            smallData.MouseEnter += (o, g) =>
            {
                mouseEntered = new KeyValuePair <bool, TinyRuneMasteryData>(true, smallData);
            };
            smallData.MouseLeave += (o, g) =>
            {
                mouseEntered = new KeyValuePair <bool, TinyRuneMasteryData>(false, smallData);
            };
            control.Tooltip.Content       = "Click for even more info";
            mouseLocation                 = e.GetPosition(Mousegrid);
            smallData.HorizontalAlignment = HorizontalAlignment.Left;
            smallData.VerticalAlignment   = VerticalAlignment.Top;
            smallData.Margin              = new Thickness(mouseLocation.X - smallData.Width, mouseLocation.Y + 20, 0, 0);
            try
            {
                Mousegrid.Children.Add(smallData);
            }
            catch { }
        }
Ejemplo n.º 2
0
        void control_MouseLeave(object sender, MouseEventArgs e)
        {
            GameScouterPlayer control = (GameScouterPlayer)sender;

            control.Tooltip.Content = "Hover over for info";
            object m = ((Dictionary <string, object>)control.Tag)["MasteryDataControl"];
            TinyRuneMasteryData smallData;

            if (m.GetType() == typeof(TinyRuneMasteryData))
            {
                smallData = (TinyRuneMasteryData)m;
            }
            else
            {
                smallData = new TinyRuneMasteryData();
            }
            if (mouseEntered.Key && mouseEntered.Value == smallData)
            {
                return;
            }
            try
            {
                Mousegrid.Children.Remove(smallData);
            }
            catch { }
        }
Ejemplo n.º 3
0
        void control_MouseLeave(object sender, MouseEventArgs e)
        {
            GameScouterPlayer control = (GameScouterPlayer)sender;

            control.Tooltip.Content = "Hover over for info";
            TinyRuneMasteryData smallData = (TinyRuneMasteryData)control.Tag;

            Mousegrid.Children.Remove(smallData);
        }
Ejemplo n.º 4
0
        void controlMouseEnter(object sender, MouseEventArgs e)
        {
            GameScouterPlayer   control   = (GameScouterPlayer)sender;
            TinyRuneMasteryData smallData = (TinyRuneMasteryData)control.Tag;

            control.Tooltip.Content = "Click for even more info";
            mouseLocation           = e.GetPosition(Mousegrid);
            double xMargin = mouseLocation.X;
            double yMargin = mouseLocation.Y;

            smallData.Margin = new Thickness(xMargin - 640, yMargin - 400, xMargin + 640, yMargin + 400);
            try
            {
                Mousegrid.Children.Add(smallData);
            }
            catch { }
        }
Ejemplo n.º 5
0
        void control_MouseDown(object sender, MouseButtonEventArgs e)
        {
            GameScouterPlayer   control = (GameScouterPlayer)sender;
            object              m       = ((Dictionary <string, object>)control.Tag)["MasteryDataControl"];
            TinyRuneMasteryData smallData;

            if (m.GetType() == typeof(TinyRuneMasteryData))
            {
                smallData = (TinyRuneMasteryData)m;
            }
            else
            {
                smallData = new TinyRuneMasteryData();
            }
            try
            {
                Mousegrid.Children.Remove(smallData);
            }
            catch { }
            //start the popup
            //TODO
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Loads the particiapants for the game
        /// </summary>
        /// <param name="allParticipants"></param>
        /// <param name="n"></param>
        /// <param name="list"></param>
        private async void LoadPar(List <Participant> allParticipants, PlatformGameLifecycleDTO n, ListView list)
        {
            bool isYourTeam = false;

            list.Items.Clear();
            list.Items.Refresh();
            try
            {
                string mmrJson;
                string url = Client.Region.SpectatorLink + "consumer/getGameMetaData/" + Client.Region.InternalName +
                             "/" + n.Game.Id + "/token";
                using (var client = new WebClient())
                    mmrJson = client.DownloadString(url);

                var serializer       = new JavaScriptSerializer();
                var deserializedJson = serializer.Deserialize <Dictionary <string, object> >(mmrJson);
                MMRLabel.Content = "Game MMR ≈ " + deserializedJson["interestScore"];
            }
            catch
            {
                MMRLabel.Content = "Unable to calculate Game MMR";
            }

            foreach (Participant par in allParticipants)
            {
                if (par is PlayerParticipant)
                {
                    PublicSummoner scoutersum = await RiotCalls.GetSummonerByName(GSUsername);

                    if ((par as PlayerParticipant).AccountId == scoutersum.AcctId)
                    {
                        isYourTeam = true;
                    }
                }
            }
            foreach (Participant par in allParticipants)
            {
                if (par is PlayerParticipant)
                {
                    var participant = par as PlayerParticipant;
                    foreach (PlayerChampionSelectionDTO championSelect in n.Game.PlayerChampionSelections.Where(championSelect =>
                                                                                                                championSelect.SummonerInternalName == participant.SummonerInternalName))
                    {
                        GameScouterPlayer control = new GameScouterPlayer();
                        control.Tag = championSelect;
                        GameStats   = new List <MatchStats>();
                        control.Username.Content = championSelect.SummonerInternalName;
                        //Make it so you can see yourself
                        if (championSelect.SummonerInternalName == GSUsername)
                        {
                            control.Username.Foreground = (Brush)(new BrushConverter().ConvertFrom("#FF007A53"));
                        }
                        control.ChampIcon.Source = champions.GetChampion(championSelect.ChampionId).icon;
                        if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell1Id)))))
                        {
                            var UriSource = new System.Uri(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell1Id))), UriKind.Absolute);
                            control.SumIcon1.Source = new BitmapImage(UriSource);
                        }
                        if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell2Id)))))
                        {
                            var UriSource = new System.Uri(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell2Id))), UriKind.Absolute);
                            control.SumIcon2.Source = new BitmapImage(UriSource);
                        }
                        GameStats.Clear();
                        try
                        {
                            PublicSummoner summoner = await RiotCalls.GetSummonerByName(championSelect.SummonerInternalName.Replace("summoner", string.Empty));

                            if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "profileicon", summoner.ProfileIconId.ToString() + ".png")))
                            {
                                control.ProfileIcon.Source = Client.GetImage(Path.Combine(Client.ExecutingDirectory, "Assets", "profileicon", summoner.ProfileIconId.ToString() + ".png"));
                            }
                            RecentGames result = await RiotCalls.GetRecentGames(summoner.AcctId);

                            result.GameStatistics.Sort((s1, s2) => s2.CreateDate.CompareTo(s1.CreateDate));
                            foreach (PlayerGameStats game in result.GameStatistics)
                            {
                                game.GameType = Client.TitleCaseString(game.GameType.Replace("_GAME", "").Replace("MATCHED", "NORMAL"));
                                var match = new MatchStats();

                                foreach (RawStat stat in game.Statistics)
                                {
                                    Type      type      = typeof(MatchStats);
                                    string    fieldName = Client.TitleCaseString(stat.StatType.Replace('_', ' ')).Replace(" ", "");
                                    FieldInfo f         = type.GetField(fieldName);
                                    f.SetValue(match, stat.Value);
                                }
                                match.Game = game;
                                GameStats.Add(match);
                            }
                            int Kills, ChampKills;
                            int Deaths, ChampDeaths;
                            int Assists, ChampAssists;
                            int GamesPlayed, ChampGamesPlayed;
                            Kills = 0; Deaths = 0; Assists = 0; GamesPlayed = 0; ChampKills = 0; ChampDeaths = 0; ChampAssists = 0; ChampGamesPlayed = 0;
                            //Load average KDA for past 20 games if possible
                            foreach (MatchStats stats in GameStats)
                            {
                                champions gameChamp = champions.GetChampion((int)Math.Round(stats.Game.ChampionId));
                                Kills   = Kills + (int)stats.ChampionsKilled;
                                Deaths  = Deaths + (int)stats.NumDeaths;
                                Assists = Assists + (int)stats.Assists;
                                GamesPlayed++;
                                if (championSelect.ChampionId == (int)Math.Round(stats.Game.ChampionId))
                                {
                                    ChampKills   = ChampKills + (int)stats.ChampionsKilled;
                                    ChampDeaths  = ChampDeaths + (int)stats.NumDeaths;
                                    ChampAssists = ChampAssists + (int)stats.Assists;
                                    ChampGamesPlayed++;
                                }
                            }
                            //GetKDA string
                            string KDAString = string.Format("{0}/{1}/{2}",
                                                             (Kills / GamesPlayed),
                                                             (Deaths / GamesPlayed),
                                                             (Assists / GamesPlayed));
                            string ChampKDAString = "";
                            try
                            {
                                ChampKDAString = string.Format("{0}/{1}/{2}",
                                                               (ChampKills / ChampGamesPlayed),
                                                               (ChampDeaths / ChampGamesPlayed),
                                                               (ChampAssists / ChampGamesPlayed));
                            }
                            catch { }

                            if (ChampGamesPlayed == 0)
                            {
                                ChampKDAString = "No Games lately";
                            }
                            control.AverageKDA.Content      = KDAString;
                            control.ChampAverageKDA.Content = ChampKDAString;
                            BrushConverter bc = new BrushConverter();
                            if (isYourTeam)
                            {
                                bc = new BrushConverter();
                                if (ChampKills < ChampDeaths)
                                {
                                    control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C");
                                }
                                else if (ChampKills == ChampDeaths)
                                {
                                    control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D");
                                }
                                else
                                {
                                    control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E");
                                }

                                bc = new BrushConverter();
                                if (Kills < Deaths)
                                {
                                    control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C");
                                }
                                else if (Kills == Deaths)
                                {
                                    control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D");
                                }
                                else
                                {
                                    control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E");
                                }
                            }
                            else
                            {
                                bc = new BrushConverter();
                                if (ChampKills > ChampDeaths)
                                {
                                    control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C");
                                }
                                else if (ChampKills == ChampDeaths)
                                {
                                    control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D");
                                }
                                else
                                {
                                    control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E");
                                }

                                bc = new BrushConverter();
                                if (Kills > Deaths)
                                {
                                    control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C");
                                }
                                else if (Kills == Deaths)
                                {
                                    control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D");
                                }
                                else
                                {
                                    control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E");
                                }
                            }
                        }
                        catch
                        {
                            Client.Log("Failed to get stats about player", "GAME_SCOUTER_ERROR");
                        }
                        if (participant.TeamParticipantId != null)
                        {
                            try
                            {
                                Brush myColor = color[(double)participant.TeamParticipantId];
                                control.QueueTeamColor.Fill       = myColor;
                                control.QueueTeamColor.Visibility = Visibility.Visible;
                            }
                            catch
                            {
                                BrushConverter bc    = new BrushConverter();
                                Brush          brush = Brushes.White;
                                //I know that there is a better way in the InGamePage
                                //I find that sometimes the colors (colours) are very hard to distinguish from eachother
                                //This makes sure that each color is easy to see
                                //because of hexa hill I put 12 in just in case
                                switch (ColorId)
                                {
                                case 0:
                                    //blue
                                    brush = (Brush)bc.ConvertFrom("#FF00E8FF");
                                    break;

                                case 2:
                                    //Lime Green
                                    brush = (Brush)bc.ConvertFrom("#FF00FF00");
                                    break;

                                case 3:
                                    //Yellow
                                    brush = (Brush)bc.ConvertFrom("#FFFFFF00");
                                    break;

                                case 4:
                                    //Blue Green
                                    brush = (Brush)bc.ConvertFrom("#FF007A53");
                                    break;

                                case 5:
                                    //Purple
                                    brush = (Brush)bc.ConvertFrom("#FF5100FF");
                                    break;

                                case 6:
                                    //Pink
                                    brush = (Brush)bc.ConvertFrom("#FFCB46C5");
                                    break;

                                case 7:
                                    //Dark Green
                                    brush = (Brush)bc.ConvertFrom("#FF006409");
                                    break;

                                case 8:
                                    //Brown
                                    brush = (Brush)bc.ConvertFrom("#FF643200");
                                    break;

                                case 9:
                                    //White
                                    brush = (Brush)bc.ConvertFrom("#FFFFFFFF");
                                    break;

                                case 10:
                                    //Grey
                                    brush = (Brush)bc.ConvertFrom("#FF363636");
                                    break;

                                case 11:
                                    //Red Pink
                                    brush = (Brush)bc.ConvertFrom("#FF8F4242");
                                    break;

                                case 12:
                                    //Grey Blue
                                    brush = (Brush)bc.ConvertFrom("#FFFF0000");
                                    break;
                                }
                                color.Add((double)participant.TeamParticipantId, brush);
                                ColorId++;
                                control.QueueTeamColor.Fill       = brush;
                                control.QueueTeamColor.Visibility = Visibility.Visible;
                            }
                        }
                        //control.MouseMove += controlMouseEnter;
                        control.MouseEnter += controlMouseEnter;
                        control.MouseLeave += control_MouseLeave;
                        control.MouseDown  += control_MouseDown;
                        TinyRuneMasteryData smallData = new TinyRuneMasteryData();
                        //Now store data in the tags so that all of the event handlers work
                        Dictionary <string, object> data = new Dictionary <string, object>();
                        data.Add("MasteryDataControl", smallData);
                        data.Add("RuneData", await GetUserRunesPage(GSUsername));
                        data.Add("MasteryData", await GetUserRunesPage(GSUsername));
                        control.Tag = data;
                        list.Items.Add(control);
                    }
                }
            }
        }