1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-15 22:22:54 +08:00

Apply suggestion to condense method

This commit is contained in:
Dan Balasescu 2023-10-10 09:56:26 +09:00
parent 7211c88e83
commit 594bcc2ab5
No known key found for this signature in database

View File

@ -331,101 +331,23 @@ namespace osu.Game.Rulesets.Scoring
public static void ValidateHitResultPair(HitResult maxResult, HitResult minResult)
{
// Check valid maximum judgements.
switch (maxResult)
{
case HitResult.Meh:
case HitResult.Ok:
case HitResult.Good:
case HitResult.Great:
case HitResult.Perfect:
case HitResult.SmallTickHit:
case HitResult.LargeTickHit:
case HitResult.SmallBonus:
case HitResult.LargeBonus:
case HitResult.IgnoreHit:
break;
if (maxResult == HitResult.None || !IsHit(maxResult))
throw new ArgumentOutOfRangeException(nameof(maxResult), $"{maxResult} is not a valid maximum judgement result.");
default:
throw new ArgumentOutOfRangeException(nameof(maxResult), $"{maxResult} is not a valid maximum judgement result.");
}
if (minResult == HitResult.None || IsHit(minResult))
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum judgement result.");
// Check valid minimum judgements.
switch (minResult)
{
case HitResult.Miss:
case HitResult.SmallTickMiss:
case HitResult.LargeTickMiss:
case HitResult.IgnoreMiss:
case HitResult.ComboBreak:
break;
if (maxResult.IsBonus() && minResult != HitResult.IgnoreMiss)
throw new ArgumentOutOfRangeException(nameof(minResult), $"{HitResult.IgnoreMiss} is the only valid minimum result for a {maxResult} judgement.");
default:
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum judgement result.");
}
if (maxResult == HitResult.LargeTickHit && minResult is not (HitResult.LargeTickMiss or HitResult.IgnoreMiss or HitResult.ComboBreak))
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
// Check valid category pairings.
switch (maxResult)
{
case HitResult.SmallBonus:
case HitResult.LargeBonus:
switch (minResult)
{
case HitResult.IgnoreMiss:
break;
if (maxResult == HitResult.SmallTickHit && minResult is not (HitResult.SmallTickMiss or HitResult.IgnoreMiss or HitResult.ComboBreak))
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
default:
throw new ArgumentOutOfRangeException(nameof(minResult), $"{HitResult.IgnoreMiss} is the only valid minimum result for a {maxResult} judgement.");
}
break;
case HitResult.SmallTickHit:
switch (minResult)
{
case HitResult.SmallTickMiss:
case HitResult.IgnoreMiss:
case HitResult.ComboBreak:
break;
default:
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
}
break;
case HitResult.LargeTickHit:
switch (minResult)
{
case HitResult.LargeTickMiss:
case HitResult.IgnoreMiss:
case HitResult.ComboBreak:
break;
default:
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
}
break;
case HitResult.Meh:
case HitResult.Ok:
case HitResult.Good:
case HitResult.Great:
case HitResult.Perfect:
switch (minResult)
{
case HitResult.Miss:
case HitResult.IgnoreMiss:
case HitResult.ComboBreak:
break;
default:
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
}
break;
}
if (maxResult.IsBasic() && minResult is not (HitResult.Miss or HitResult.IgnoreMiss or HitResult.ComboBreak))
throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
}
}
#pragma warning restore CS0618