private meta_grouping new_grouping() { return(new meta_grouping { map = "", cabin = "", movement = "", weapon = "", rounds = 1, total_seen = 1, stats = FileTraceManagment.NewStats() }); }
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"); } }