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

Fix DrawableSliderTail potentially forcing miss on head too early

This commit is contained in:
Dean Herbert 2023-10-25 15:44:42 +09:00
parent e79aeea3b0
commit 6eafb66fdf
No known key found for this signature in database

View File

@ -138,6 +138,9 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
if (lastTick?.Judged == false) if (lastTick?.Judged == false)
return; return;
if (timeOffset < SliderEventGenerator.TAIL_LENIENCY)
return;
// Attempt to preserve correct ordering of judgements as best we can by forcing // Attempt to preserve correct ordering of judgements as best we can by forcing
// an un-judged head to be missed when the user has clearly skipped it. // an un-judged head to be missed when the user has clearly skipped it.
if (Tracking && !DrawableSlider.HeadCircle.Judged) if (Tracking && !DrawableSlider.HeadCircle.Judged)
@ -145,7 +148,7 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
// The player needs to have engaged in tracking at any point after the tail leniency cutoff. // The player needs to have engaged in tracking at any point after the tail leniency cutoff.
// An actual tick miss should only occur if reaching the tick itself. // An actual tick miss should only occur if reaching the tick itself.
if (timeOffset >= SliderEventGenerator.TAIL_LENIENCY && Tracking) if (Tracking)
ApplyResult(r => r.Type = r.Judgement.MaxResult); ApplyResult(r => r.Type = r.Judgement.MaxResult);
else if (timeOffset > 0) else if (timeOffset > 0)
ApplyResult(r => r.Type = r.Judgement.MinResult); ApplyResult(r => r.Type = r.Judgement.MinResult);