1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 03:27:24 +08:00

Change slider tail tick to only hold back judgement on ticks/repeats

This commit is contained in:
Dean Herbert 2023-10-24 18:00:48 +09:00
parent 19be0055d5
commit 93147a5998
No known key found for this signature in database

View File

@ -4,6 +4,7 @@
#nullable disable #nullable disable
using System.Diagnostics; using System.Diagnostics;
using System.Linq;
using JetBrains.Annotations; using JetBrains.Annotations;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
@ -129,11 +130,12 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
if (userTriggered) if (userTriggered)
return; return;
// Ensure the tail can only activate after all previous ticks already have. // Ensure the tail can only activate after all previous ticks/repeats already have.
// //
// This covers the edge case where the lenience may allow the tail to activate before // This covers the edge case where the lenience may allow the tail to activate before
// the last tick, changing ordering of score/combo awarding. // the last tick, changing ordering of score/combo awarding.
if (DrawableSlider.NestedHitObjects.Count > 1 && !DrawableSlider.NestedHitObjects[^2].Judged) var lastTick = DrawableSlider.NestedHitObjects.LastOrDefault(o => o.HitObject is SliderTick || o.HitObject is SliderRepeat);
if (lastTick?.Judged == false)
return; return;
// 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.