mirror of
https://github.com/ppy/osu.git
synced 2026-05-13 20:33:35 +08:00
Fix incorrect translation of note freezing logic
This commit is contained in:
@@ -27,6 +27,17 @@ namespace osu.Game.Rulesets.Mania.Judgements
|
||||
|
||||
public bool IsHolding(double currentTime) => getLastReport(currentTime).holding;
|
||||
|
||||
public bool DroppedHoldAfter(double time)
|
||||
{
|
||||
foreach (var state in holdingState)
|
||||
{
|
||||
if (state.time >= time && !state.holding)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void ReportHoldState(double currentTime, bool holding)
|
||||
{
|
||||
var lastReport = getLastReport(currentTime);
|
||||
|
||||
@@ -235,7 +235,7 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
||||
//
|
||||
// As per stable, this should not apply for early hits, waiting until the object starts to touch the
|
||||
// judgement area first.
|
||||
if (Head.IsHit && isHolding.Value && DrawHeight > 0)
|
||||
if (Head.IsHit && !Result.DroppedHoldAfter(HitObject.StartTime) && DrawHeight > 0)
|
||||
{
|
||||
// How far past the hit target this hold note is.
|
||||
float yOffset = Direction.Value == ScrollingDirection.Up ? -Y : Y;
|
||||
|
||||
Reference in New Issue
Block a user