From af22e67e15af4da1e6730e88cff1f48622582bfd Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Fri, 18 Mar 2022 13:00:30 +0300 Subject: [PATCH] Fix perfect combo check not accounting for `LargeTickMiss` `LargeTickMiss` can affect combo, see https://github.com/ppy/osu/blob/a352a140bc145f342fadc300797a2b05ade3f920/osu.Game/Rulesets/Scoring/HitResult.cs#L124-L144. --- .../Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs b/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs index f43cbc11e2..fb8a1beb04 100644 --- a/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs +++ b/osu.Game/Screens/Ranking/Expanded/ExpandedPanelMiddleContent.cs @@ -65,10 +65,14 @@ namespace osu.Game.Screens.Ranking.Expanded var metadata = beatmap.BeatmapSet?.Metadata ?? beatmap.Metadata; string creator = metadata.Author.Username; + bool isPerfect = true; + isPerfect &= !score.Statistics.TryGetValue(HitResult.Miss, out int missCount) || missCount == 0; + isPerfect &= !score.Statistics.TryGetValue(HitResult.LargeTickMiss, out int largeTickMissCount) || largeTickMissCount == 0; + var topStatistics = new List { new AccuracyStatistic(score.Accuracy), - new ComboStatistic(score.MaxCombo, beatmap.MaxCombo, !score.Statistics.TryGetValue(HitResult.Miss, out int missCount) || missCount == 0), + new ComboStatistic(score.MaxCombo, beatmap.MaxCombo, isPerfect), new PerformanceStatistic(score), };