1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-16 06:33:21 +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) public static void ValidateHitResultPair(HitResult maxResult, HitResult minResult)
{ {
// Check valid maximum judgements. if (maxResult == HitResult.None || !IsHit(maxResult))
switch (maxResult) throw new ArgumentOutOfRangeException(nameof(maxResult), $"{maxResult} is not a valid maximum judgement result.");
{
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;
default: if (minResult == HitResult.None || IsHit(minResult))
throw new ArgumentOutOfRangeException(nameof(maxResult), $"{maxResult} is not a valid maximum judgement result."); throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum judgement result.");
}
// Check valid minimum judgements. if (maxResult.IsBonus() && minResult != HitResult.IgnoreMiss)
switch (minResult) throw new ArgumentOutOfRangeException(nameof(minResult), $"{HitResult.IgnoreMiss} is the only valid minimum result for a {maxResult} judgement.");
{
case HitResult.Miss:
case HitResult.SmallTickMiss:
case HitResult.LargeTickMiss:
case HitResult.IgnoreMiss:
case HitResult.ComboBreak:
break;
default: 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 judgement result."); throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
}
// Check valid category pairings. if (maxResult == HitResult.SmallTickHit && minResult is not (HitResult.SmallTickMiss or HitResult.IgnoreMiss or HitResult.ComboBreak))
switch (maxResult) throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a valid minimum result for a {maxResult} judgement.");
{
case HitResult.SmallBonus:
case HitResult.LargeBonus:
switch (minResult)
{
case HitResult.IgnoreMiss:
break;
default: if (maxResult.IsBasic() && minResult is not (HitResult.Miss or HitResult.IgnoreMiss or HitResult.ComboBreak))
throw new ArgumentOutOfRangeException(nameof(minResult), $"{HitResult.IgnoreMiss} is the only valid minimum result for a {maxResult} judgement."); throw new ArgumentOutOfRangeException(nameof(minResult), $"{minResult} is not a 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;
}
} }
} }
#pragma warning restore CS0618 #pragma warning restore CS0618