示例#1
0
        public RankedDoublePlayer(LeftPlayer leftPlayer, RightPlayer rightPlayer, Values.StatType type, Form mainform)
        {
            InitializeComponent();
            this.mainForm = mainform;

            this.leftPlayer  = leftPlayer;
            this.rightPlayer = rightPlayer;
            this.type        = type;



            this.pictureBoxLeft.SizeMode  = PictureBoxSizeMode.Zoom;
            this.pictureBoxRight.SizeMode = PictureBoxSizeMode.Zoom;



            int xLeft = (panelLeft.Size.Width - this.labelPlayerNameLeft.Size.Width) / 2;

            this.labelPlayerNameLeft.Location = new Point(xLeft, this.labelPlayerNameLeft.Location.Y);

            int xRight = (panelRight.Size.Width - this.labelPlayerNameRight.Size.Width) / 2;

            this.labelPlayerNameRight.Location = new Point(xRight, this.labelPlayerNameRight.Location.Y);



            if (this.leftPlayer != null && this.rightPlayer != null)
            {
                if (type == Values.StatType.RankedFPP)
                {
                    this.statsLeft  = this.leftPlayer.CalculatedRankedFppStats;
                    this.statsRight = this.rightPlayer.CalculatedRankedFppStats;
                }
                else if (type == Values.StatType.RankedTPP)
                {
                    this.statsLeft  = this.leftPlayer.CalculatedRankedTppStats;
                    this.statsRight = this.rightPlayer.CalculatedRankedTppStats;
                }



                this.UpdateStatLabels();
                this.DisplayComparisonArrows();
                DoublePlayerMatchFiltering doubleFiltering = new DoublePlayerMatchFiltering(this.leftPlayer.Matches, this.leftPlayer.Name,
                                                                                            this.rightPlayer.Matches, this.rightPlayer.Name, this.type, "competitive");

                Tuple <List <GraphPlot>, List <GraphPlot> > tuple = doubleFiltering.GetList();

                this.BuildChart(tuple.Item1, tuple.Item2);
            }
        }
示例#2
0
 private RankedObject DetermineStatType()
 {
     if (this.type == Values.StatType.RankedTPP)
     {
         RankedObject obj = this.player.CalculatedRankedTppStats;
         return(obj);
     }
     else if (this.type == Values.StatType.RankedFPP)
     {
         RankedObject obj = this.player.CalculatedRankedFppStats;
         return(obj);
     }
     else
     {
         return(null);
     }
 }
示例#3
0
        private static async Task <RankedObject> ComputeStatsRanked(ModeStatsRanked stats, List <RootMatch> matches, string playername)
        {
            if (stats != null)
            {
                RankedObject ranked = GetRankedObject((int)stats.currentRankPoint);


                ranked.GamesPlayed   = (int)stats.RoundsPlayed;
                ranked.Wins          = (int)stats.Wins;
                ranked.WinPercent    = Math.Round(StatsCalculation.GetWinRatio(stats.Wins, stats.RoundsPlayed), 2);
                ranked.AverageRank   = Math.Round(stats.AvgRank, 2);
                ranked.TopTenPercent = Math.Round(stats.Top10Ratio * 100, 2);
                ranked.Adr           = (int)Math.Round(StatsCalculation.GetAdr(stats.DamageDealt, stats.RoundsPlayed), 0);
                ranked.Kd            = Math.Round(StatsCalculation.GetKD(stats.Kills, stats.Deaths), 2);
                ranked.Kda           = Math.Round(StatsCalculation.GetKDA(stats.Kills, stats.Assists, stats.Deaths), 2);
                ranked.DbnosPerRound = Math.Round(StatsCalculation.GetKnocksPerRound(stats.Dbnos, stats.RoundsPlayed), 2);
                ranked.FraggerRating = await Task.Run(() => ComputeRankedFraggerRating(matches, playername));

                return(ranked);
            }
            else
            {
                RankedObject ranked = GetRankedObject(0);


                ranked.GamesPlayed   = 0;
                ranked.Wins          = 0;
                ranked.WinPercent    = 0;
                ranked.AverageRank   = 0;
                ranked.TopTenPercent = 0;
                ranked.Adr           = 0;
                ranked.Kd            = 0;
                ranked.Kda           = 0;
                ranked.DbnosPerRound = 0;
                ranked.FraggerRating = 0;
                return(ranked);
            }
        }
示例#4
0
        private void UpdateStatLabels()
        {
            RankedObject rankedStats = DetermineStatType();

            string rankTitle = rankedStats.Title.ToString();

            this.labelRankTitle.Text = rankTitle;
            this.pictureBox1.Image   = rankedStats.Image;

            this.labelGamesPlayedValue.Text          = rankedStats.GamesPlayed.ToString();
            this.labelWinsValue.Text                 = rankedStats.Wins.ToString();
            this.labelWinPercentValue.Text           = Math.Round(rankedStats.WinPercent, 2).ToString();
            this.labelAVGRankValue.Text              = Math.Round(rankedStats.AverageRank, 2).ToString();
            this.labelTopTenRatioValue.Text          = Math.Round(rankedStats.TopTenPercent, 2).ToString();
            this.labelAdrValue.Text                  = rankedStats.Adr.ToString();
            this.labelKDValue.Text                   = Math.Round(rankedStats.Kd, 2).ToString();
            this.labelKDAValue.Text                  = Math.Round(rankedStats.Kda, 2).ToString();
            this.labelAverageKnocksPerGameValue.Text = Math.Round(rankedStats.DbnosPerRound, 2).ToString();
            this.fraggerRatingGauge.Value            = rankedStats.FraggerRating;

            this.labelPlayerNameTop.Text  = this.player.Name;
            this.labelSeasonNameLeft.Text = this.player.Season;
            this.labelModeTypeRight.Text  = Values.GetEnumString(this.type);
        }