public TimeSpan GetAverageTimeByResult(EncounterResult result) { if (!LogCountsByResult.TryGetValue(result, out int resultCount)) { resultCount = 1; } if (!TimeSpentByResult.TryGetValue(result, out TimeSpan time)) { time = TimeSpan.Zero; } return(new TimeSpan(time.Ticks / resultCount)); }
public double GetSuccessRate() { if (!LogCountsByResult.TryGetValue(EncounterResult.Success, out int successes)) { successes = 0; } if (!LogCountsByResult.TryGetValue(EncounterResult.Failure, out int failures)) { failures = 0; } if (successes + failures == 0) { // Only unknown results are present, instead of returning NaN we return a success rate of 0. return(0); } return((double)successes / (successes + failures)); }