2019-09-06 06:24:00 +00:00
|
|
|
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
|
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
|
|
|
|
|
|
using osu.Game.Rulesets.Scoring;
|
|
|
|
|
|
|
|
|
|
namespace osu.Game.Rulesets.Osu.Scoring
|
|
|
|
|
{
|
|
|
|
|
public class OsuHitWindows : HitWindows
|
|
|
|
|
{
|
2022-10-05 05:25:04 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// osu! ruleset has a fixed miss window regardless of difficulty settings.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public const double MISS_WINDOW = 400;
|
|
|
|
|
|
2019-09-06 06:24:00 +00:00
|
|
|
|
private static readonly DifficultyRange[] osu_ranges =
|
|
|
|
|
{
|
|
|
|
|
new DifficultyRange(HitResult.Great, 80, 50, 20),
|
2020-09-29 08:16:55 +00:00
|
|
|
|
new DifficultyRange(HitResult.Ok, 140, 100, 60),
|
2019-09-06 06:24:00 +00:00
|
|
|
|
new DifficultyRange(HitResult.Meh, 200, 150, 100),
|
2022-10-05 05:25:04 +00:00
|
|
|
|
new DifficultyRange(HitResult.Miss, MISS_WINDOW, MISS_WINDOW, MISS_WINDOW),
|
2019-09-06 06:24:00 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-09-06 06:37:20 +00:00
|
|
|
|
public override bool IsHitResultAllowed(HitResult result)
|
|
|
|
|
{
|
|
|
|
|
switch (result)
|
|
|
|
|
{
|
|
|
|
|
case HitResult.Great:
|
2020-09-29 08:16:55 +00:00
|
|
|
|
case HitResult.Ok:
|
2019-09-06 06:37:20 +00:00
|
|
|
|
case HitResult.Meh:
|
|
|
|
|
case HitResult.Miss:
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2019-09-06 06:24:00 +00:00
|
|
|
|
protected override DifficultyRange[] GetRanges() => osu_ranges;
|
|
|
|
|
}
|
|
|
|
|
}
|