mirror of
https://github.com/osukey/osukey.git
synced 2025-08-05 07:33:55 +09:00
Fix crash if only one count list is received from API
This commit is contained in:
@ -29,16 +29,30 @@ namespace osu.Game.Screens.Select.Details
|
|||||||
|
|
||||||
var retries = Metrics?.Retries ?? Array.Empty<int>();
|
var retries = Metrics?.Retries ?? Array.Empty<int>();
|
||||||
var fails = Metrics?.Fails ?? Array.Empty<int>();
|
var fails = Metrics?.Fails ?? Array.Empty<int>();
|
||||||
|
var retriesAndFails = sumRetriesAndFails(retries, fails);
|
||||||
|
|
||||||
float maxValue = fails.Any() ? fails.Zip(retries, (fail, retry) => fail + retry).Max() : 0;
|
float maxValue = retriesAndFails.Any() ? retriesAndFails.Max() : 0;
|
||||||
failGraph.MaxValue = maxValue;
|
failGraph.MaxValue = maxValue;
|
||||||
retryGraph.MaxValue = maxValue;
|
retryGraph.MaxValue = maxValue;
|
||||||
|
|
||||||
failGraph.Values = fails.Select(f => (float)f);
|
failGraph.Values = fails.Select(v => (float)v);
|
||||||
retryGraph.Values = retries.Zip(fails, (retry, fail) => retry + Math.Clamp(fail, 0, maxValue));
|
retryGraph.Values = retriesAndFails.Select(v => (float)v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int[] sumRetriesAndFails(int[] retries, int[] fails)
|
||||||
|
{
|
||||||
|
var result = new int[Math.Max(retries.Length, fails.Length)];
|
||||||
|
|
||||||
|
for (int i = 0; i < retries.Length; ++i)
|
||||||
|
result[i] = retries[i];
|
||||||
|
|
||||||
|
for (int i = 0; i < fails.Length; ++i)
|
||||||
|
result[i] += fails[i];
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public FailRetryGraph()
|
public FailRetryGraph()
|
||||||
{
|
{
|
||||||
Children = new[]
|
Children = new[]
|
||||||
|
Reference in New Issue
Block a user