Example #1
0
 private meta_grouping new_grouping()
 {
     return(new meta_grouping {
         map = "", cabin = "", movement = "", weapon = "", rounds = 1, total_seen = 1, stats = FileTraceManagment.NewStats()
     });
 }
Example #2
0
        public static void AssignStats(FileTraceManagment.SessionStats currentSession, OverlayWriter writer, Dictionary <string, Dictionary <string, Translate.Translation> > translation, string game_mode)
        {
            FileTraceManagment.Stats stats = FileTraceManagment.NewStats();

            if (currentSession.TwitchSettings.ToggleOverviewTimeRanges)
            {
                if (currentSession.TwitchSettings.OverviewTimeRange == 7.0)
                {
                    currentSession.TwitchSettings.OverviewTimeRange = 31.0;
                }
                else
                if (currentSession.TwitchSettings.OverviewTimeRange == 31.0)
                {
                    currentSession.TwitchSettings.OverviewTimeRange = 365.0;
                }
                else
                if (currentSession.TwitchSettings.OverviewTimeRange == 365.0)
                {
                    currentSession.TwitchSettings.OverviewTimeRange = 1.0;
                }
                else
                if (currentSession.TwitchSettings.OverviewTimeRange == 1.0)
                {
                    currentSession.TwitchSettings.OverviewTimeRange = 7.0;
                }
            }
            else
            {
                currentSession.TwitchSettings.OverviewTimeRange = currentSession.TwitchSettings.DefaultTimeRange;
            }

            DateTime timeCutoff = DateTime.Now.AddDays(currentSession.TwitchSettings.OverviewTimeRange * -1);

            foreach (FileTraceManagment.MatchRecord match in currentSession.MatchHistory)
            {
                if (match.MatchData.MatchStart < timeCutoff)
                {
                    continue;
                }

                if (match.MatchData.MatchTypeDesc != game_mode)
                {
                    continue;
                }

                stats = FileTraceManagment.SumStats(stats, match.MatchData.LocalPlayer.Stats);
            }

            if (stats.Games > 0)
            {
                writer.AddHeader(string.Format(@"{0,3} Day Stats for {1}", currentSession.TwitchSettings.OverviewTimeRange, game_mode), "day_stats");
                writer.AddHorizontalRow();
                writer.AddLine(string.Format(@"{0,16} {1,8}", "Games", stats.Games), "day_stats games");
                writer.AddLine(string.Format(@"{0,16} {1,8} {2:P1}", "W/L %", string.Format(@"{0,4}/{1,-4}", stats.Wins, stats.Losses), (double)stats.Wins / (double)stats.Games), "day_stats win_lose_ratio");
                writer.AddLine(string.Format(@"{0,16} {1,8} {2:N1}", "K/D  ", string.Format(@"{0,4}/{1,-4}", stats.Kills, stats.Deaths), (double)stats.Kills / (double)stats.Deaths), "day_stats kill_death_ratio");
                writer.AddLine(string.Format(@"{0,16} {1,8} {2:N1}", "K/G  ", string.Format(@"{0,4}/{1,-4}", stats.Kills, stats.Games), (double)stats.Kills / (double)stats.Games), "day_stats kill_game_ratio");
                writer.AddLine(string.Format(@"{0,16} {1,8:N1}", "Avg Dmg", stats.Damage / (double)stats.Rounds), "day_stats avg_dmg");
                writer.AddLine(string.Format(@"{0,16} {1,8:N1}", "Avg Dmg Rec", stats.DamageTaken / (double)stats.Rounds), "day_stats avg_dmg_rec");
                writer.AddLine(string.Format(@"{0,16} {1,8:N1}", "Avg Score", stats.Score / (double)stats.Rounds), "day_stats avg_score");
            }
        }