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:
parent
7211c88e83
commit
594bcc2ab5
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user