mirror of
https://github.com/ppy/osu.git
synced 2025-02-05 02:43:16 +08:00
Completely ignore spinners from note lock
This commit is contained in:
parent
744f6c3ca7
commit
796976db3c
@ -90,7 +90,14 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
|
|
||||||
private bool checkHittable(DrawableOsuHitObject osuHitObject)
|
private bool checkHittable(DrawableOsuHitObject osuHitObject)
|
||||||
{
|
{
|
||||||
var lastObject = HitObjectContainer.AliveObjects.GetPrevious(osuHitObject);
|
DrawableHitObject lastObject = osuHitObject;
|
||||||
|
|
||||||
|
// Get the last hitobject that contributes to note lock
|
||||||
|
while ((lastObject = HitObjectContainer.AliveObjects.GetPrevious(lastObject)) != null)
|
||||||
|
{
|
||||||
|
if (contributesToNoteLock(lastObject.HitObject))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// If there is no previous object alive, allow the hit.
|
// If there is no previous object alive, allow the hit.
|
||||||
if (lastObject == null)
|
if (lastObject == null)
|
||||||
@ -166,10 +173,19 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether a <see cref="HitObject"/> can be missed and causes other hitobjects to be missed during notelock.
|
/// Whether a <see cref="HitObject"/> is contributes to note lock.
|
||||||
|
/// Future contributing <see cref="HitObject"/>s will not be hittable until the start time of the last contributing <see cref="HitObject"/> is reached.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="hitObject">The <see cref="HitObject"/> to test.</param>
|
/// <param name="hitObject">The <see cref="HitObject"/> to test.</param>
|
||||||
/// <returns>Whether <paramref name="hitObject"/> contributes to notelock misses.</returns>
|
/// <returns>Whether <paramref name="hitObject"/> causes note lock.</returns>
|
||||||
|
private bool contributesToNoteLock(HitObject hitObject)
|
||||||
|
=> hitObject is HitCircle || hitObject is Slider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether a <see cref="HitObject"/> can be missed and causes other <see cref="HitObject"/>s to be missed when hit out-of-order during note lock.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="hitObject">The <see cref="HitObject"/> to test.</param>
|
||||||
|
/// <returns>Whether <paramref name="hitObject"/> contributes to note lock misses.</returns>
|
||||||
private bool causesNoteLockMisses(HitObject hitObject)
|
private bool causesNoteLockMisses(HitObject hitObject)
|
||||||
=> hitObject is HitCircle && !(hitObject is SliderTailCircle);
|
=> hitObject is HitCircle && !(hitObject is SliderTailCircle);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user