public static double EstimatedAccountWN8(IExpectedValueList expectedValueList, string version, WinrateRecord[] winrateRecords, Statistics cumulatedStats) { Dictionary <int, ExpectedValues> expectedValues = expectedValueList[version]; ExpectedValues cumulatedExpected = new ExpectedValues(); foreach (var winrateRecord in winrateRecords) { if (expectedValues.TryGetValue(winrateRecord.TankID, out ExpectedValues values)) { cumulatedExpected += values * winrateRecord.Battles; } } cumulatedExpected /= cumulatedStats.Battles; return(cumulatedStats.CalculateWN8(cumulatedExpected)); }
public static double AccountWN8(Dictionary <int, ExpectedValues> expectedValues, Dictionary <int, Statistics> tankStats, out Statistics cumulatedStats) { cumulatedStats = new Statistics(); ExpectedValues cumulatedExpected = new ExpectedValues(); foreach (var pair in tankStats) { if (expectedValues.TryGetValue(pair.Key, out ExpectedValues values)) { cumulatedExpected += values * pair.Value.Battles; cumulatedStats += pair.Value; } } cumulatedExpected /= cumulatedStats.Battles; return(cumulatedStats.CalculateWN8(cumulatedExpected)); }