Add unstable rate statistic to rulesets in which it makes sense

This commit is contained in:
Bartłomiej Dach 2020-08-26 21:28:41 +02:00
parent 5973e2ce4e
commit 05e725d59f
3 changed files with 62 additions and 27 deletions

View File

@ -326,6 +326,14 @@ private PlayfieldType getPlayfieldType(int variant)
Height = 250
}),
}
},
new SimpleStatisticRow
{
Columns = 3,
Items = new SimpleStatisticItem[]
{
new UnstableRate(score.HitEvents)
}
}
};
}

View File

@ -193,13 +193,18 @@ public override IEnumerable<Mod> GetModsFor(ModType type)
public override IRulesetConfigManager CreateConfig(SettingsStore settings) => new OsuRulesetConfigManager(settings, RulesetInfo);
public override IStatisticRow[] CreateStatisticsForScore(ScoreInfo score, IBeatmap playableBeatmap) => new IStatisticRow[]
public override IStatisticRow[] CreateStatisticsForScore(ScoreInfo score, IBeatmap playableBeatmap)
{
var timedHitEvents = score.HitEvents.Where(e => e.HitObject is HitCircle && !(e.HitObject is SliderTailCircle)).ToList();
return new IStatisticRow[]
{
new StatisticRow
{
Columns = new[]
{
new StatisticItem("Timing Distribution", new HitEventTimingDistributionGraph(score.HitEvents.Where(e => e.HitObject is HitCircle && !(e.HitObject is SliderTailCircle)).ToList())
new StatisticItem("Timing Distribution",
new HitEventTimingDistributionGraph(timedHitEvents)
{
RelativeSizeAxes = Axes.X,
Height = 250
@ -216,7 +221,16 @@ public override IEnumerable<Mod> GetModsFor(ModType type)
Height = 250
}),
}
},
new SimpleStatisticRow
{
Columns = 3,
Items = new SimpleStatisticItem[]
{
new UnstableRate(timedHitEvents)
}
}
};
}
}
}

View File

@ -161,19 +161,32 @@ public override IEnumerable<Mod> GetModsFor(ModType type)
public override IConvertibleReplayFrame CreateConvertibleReplayFrame() => new TaikoReplayFrame();
public override IStatisticRow[] CreateStatisticsForScore(ScoreInfo score, IBeatmap playableBeatmap) => new IStatisticRow[]
public override IStatisticRow[] CreateStatisticsForScore(ScoreInfo score, IBeatmap playableBeatmap)
{
var timedHitEvents = score.HitEvents.Where(e => e.HitObject is Hit).ToList();
return new IStatisticRow[]
{
new StatisticRow
{
Columns = new[]
{
new StatisticItem("Timing Distribution", new HitEventTimingDistributionGraph(score.HitEvents.Where(e => e.HitObject is Hit).ToList())
new StatisticItem("Timing Distribution", new HitEventTimingDistributionGraph(timedHitEvents)
{
RelativeSizeAxes = Axes.X,
Height = 250
}),
}
},
new SimpleStatisticRow
{
Columns = 3,
Items = new SimpleStatisticItem[]
{
new UnstableRate(timedHitEvents)
}
}
};
}
}
}