mirror of
https://github.com/osukey/osukey.git
synced 2025-07-02 08:49:59 +09:00
Tighten osu! ruleset lifetime expiry for past hitobjects
This commit is contained in:
@ -180,6 +180,8 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
this.Delay(800).FadeOut();
|
this.Delay(800).FadeOut();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Expire();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Drawable ProxiedLayer => ApproachCircle;
|
public Drawable ProxiedLayer => ApproachCircle;
|
||||||
|
@ -11,6 +11,7 @@ using osu.Game.Rulesets.Osu.Judgements;
|
|||||||
using osu.Game.Graphics.Containers;
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Rulesets.Objects;
|
using osu.Game.Rulesets.Objects;
|
||||||
using osu.Game.Rulesets.Osu.UI;
|
using osu.Game.Rulesets.Osu.UI;
|
||||||
|
using osu.Game.Rulesets.Scoring;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
||||||
@ -91,6 +92,10 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
|
|
||||||
// Manually set to reduce the number of future alive objects to a bare minimum.
|
// Manually set to reduce the number of future alive objects to a bare minimum.
|
||||||
LifetimeStart = HitObject.StartTime - HitObject.TimePreempt;
|
LifetimeStart = HitObject.StartTime - HitObject.TimePreempt;
|
||||||
|
|
||||||
|
// Arbitrary lifetime end to prevent past objects in idle states remaining alive in non-frame-stable contexts.
|
||||||
|
// An extra 1000ms is added to always overestimate the true lifetime, and a more exact value is set by hit transforms and the following expiry.
|
||||||
|
LifetimeEnd = HitObject.GetEndTime() + HitObject.HitWindows.WindowFor(HitResult.Miss) + 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -193,13 +193,6 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
return base.CreateNestedHitObject(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateInitialTransforms()
|
|
||||||
{
|
|
||||||
base.UpdateInitialTransforms();
|
|
||||||
|
|
||||||
Body.FadeInFromZero(HitObject.TimeFadeIn);
|
|
||||||
}
|
|
||||||
|
|
||||||
public readonly Bindable<bool> Tracking = new Bindable<bool>();
|
public readonly Bindable<bool> Tracking = new Bindable<bool>();
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
@ -273,6 +266,13 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
base.PlaySamples();
|
base.PlaySamples();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void UpdateInitialTransforms()
|
||||||
|
{
|
||||||
|
base.UpdateInitialTransforms();
|
||||||
|
|
||||||
|
Body.FadeInFromZero(HitObject.TimeFadeIn);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void UpdateStartTimeStateTransforms()
|
protected override void UpdateStartTimeStateTransforms()
|
||||||
{
|
{
|
||||||
base.UpdateStartTimeStateTransforms();
|
base.UpdateStartTimeStateTransforms();
|
||||||
@ -297,7 +297,7 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.FadeOut(fade_out_time, Easing.OutQuint);
|
this.FadeOut(fade_out_time, Easing.OutQuint).Expire();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Drawable ProxiedLayer => HeadCircle.ProxiedLayer;
|
public Drawable ProxiedLayer => HeadCircle.ProxiedLayer;
|
||||||
|
@ -157,7 +157,7 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
{
|
{
|
||||||
base.UpdateHitStateTransforms(state);
|
base.UpdateHitStateTransforms(state);
|
||||||
|
|
||||||
this.FadeOut(160);
|
this.FadeOut(160).Expire();
|
||||||
|
|
||||||
// skin change does a rewind of transforms, which will stop the spinning sound from playing if it's currently in playback.
|
// skin change does a rewind of transforms, which will stop the spinning sound from playing if it's currently in playback.
|
||||||
isSpinning?.TriggerChange();
|
isSpinning?.TriggerChange();
|
||||||
|
Reference in New Issue
Block a user