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

Merge pull request #21371 from peppy/fix-mania-hold-note-stuck

Fix osu!mania hold notes occasionally getting in a visually incorrect hit state
This commit is contained in:
Dan Balasescu 2022-11-22 17:14:39 +09:00 committed by GitHub
commit 2e4dc7c467
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View File

@ -262,14 +262,24 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
tick.MissForcefully(); tick.MissForcefully();
} }
ApplyResult(r => r.Type = Tail.IsHit ? r.Judgement.MaxResult : r.Judgement.MinResult); if (Tail.IsHit)
endHold(); ApplyResult(r => r.Type = r.Judgement.MaxResult);
else
MissForcefully();
} }
if (Tail.Judged && !Tail.IsHit) if (Tail.Judged && !Tail.IsHit)
HoldBrokenTime = Time.Current; HoldBrokenTime = Time.Current;
} }
public override void MissForcefully()
{
base.MissForcefully();
// Important that this is always called when a result is applied.
endHold();
}
public bool OnPressed(KeyBindingPressEvent<ManiaAction> e) public bool OnPressed(KeyBindingPressEvent<ManiaAction> e)
{ {
if (AllJudged) if (AllJudged)

View File

@ -87,7 +87,7 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
/// <summary> /// <summary>
/// Causes this <see cref="DrawableManiaHitObject"/> to get missed, disregarding all conditions in implementations of <see cref="DrawableHitObject.CheckForResult"/>. /// Causes this <see cref="DrawableManiaHitObject"/> to get missed, disregarding all conditions in implementations of <see cref="DrawableHitObject.CheckForResult"/>.
/// </summary> /// </summary>
public void MissForcefully() => ApplyResult(r => r.Type = r.Judgement.MinResult); public virtual void MissForcefully() => ApplyResult(r => r.Type = r.Judgement.MinResult);
} }
public abstract class DrawableManiaHitObject<TObject> : DrawableManiaHitObject public abstract class DrawableManiaHitObject<TObject> : DrawableManiaHitObject