1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-18 14:50:54 +08:00

Adjust contract of Ruleset.GetValidHitResults() to always enumerate all results used

This commit is contained in:
Bartłomiej Dach
2026-02-09 12:31:54 +01:00
Unverified
parent 3678ea0d0f
commit 15c49a729e
5 changed files with 20 additions and 6 deletions
+5
View File
@@ -181,10 +181,15 @@ namespace osu.Game.Rulesets.Catch
return new[]
{
HitResult.Great,
HitResult.Miss,
HitResult.LargeTickHit,
HitResult.LargeTickMiss,
HitResult.SmallTickHit,
HitResult.SmallTickMiss,
HitResult.LargeBonus,
HitResult.IgnoreHit,
HitResult.IgnoreMiss,
};
}
+4 -2
View File
@@ -392,9 +392,11 @@ namespace osu.Game.Rulesets.Mania
HitResult.Good,
HitResult.Ok,
HitResult.Meh,
HitResult.Miss,
// HitResult.SmallBonus is used for awarding perfect bonus score but is not included here as
// it would be a bit redundant to show this to the user.
HitResult.IgnoreHit,
HitResult.ComboBreak,
HitResult.IgnoreMiss,
};
}
+5
View File
@@ -284,12 +284,17 @@ namespace osu.Game.Rulesets.Osu
HitResult.Great,
HitResult.Ok,
HitResult.Meh,
HitResult.Miss,
HitResult.LargeTickHit,
HitResult.LargeTickMiss,
HitResult.SmallTickHit,
HitResult.SmallTickMiss,
HitResult.SliderTailHit,
HitResult.SmallBonus,
HitResult.LargeBonus,
HitResult.IgnoreHit,
HitResult.IgnoreMiss,
};
}
+3
View File
@@ -228,9 +228,12 @@ namespace osu.Game.Rulesets.Taiko
{
HitResult.Great,
HitResult.Ok,
HitResult.Miss,
HitResult.SmallBonus,
HitResult.LargeBonus,
HitResult.IgnoreHit,
HitResult.IgnoreMiss,
};
}
+3 -4
View File
@@ -358,6 +358,7 @@ namespace osu.Game.Rulesets
case HitResult.None:
case HitResult.IgnoreHit:
case HitResult.IgnoreMiss:
case HitResult.ComboBreak:
// display is handled as a completion count with corresponding "hit" type.
case HitResult.LargeTickMiss:
case HitResult.SmallTickMiss:
@@ -371,11 +372,9 @@ namespace osu.Game.Rulesets
/// <summary>
/// Get all valid <see cref="HitResult"/>s for this ruleset.
/// Generally used for results display purposes, where it can't be determined if zero-count means the user has not achieved any or the type is not used by this ruleset.
/// Used for strict validation purposes. The ruleset should return ALL applicable <see cref="HitResult"/> types here
/// (except <see cref="HitResult.None"/> and obsolete types).
/// </summary>
/// <remarks>
/// <see cref="HitResult.Miss"/> is implicitly included. Special types like <see cref="HitResult.IgnoreHit"/> are ignored even when specified.
/// </remarks>
public virtual IEnumerable<HitResult> GetValidHitResults() => EnumExtensions.GetValuesInOrder<HitResult>();
/// <summary>