Fix approach circle fade not running early on an early user hit

Regressed in https://github.com/ppy/osu/pull/12153.
Closes https://github.com/ppy/osu/issues/13531.
This commit is contained in:
Dean Herbert 2021-06-17 15:08:22 +09:00
parent 6d0b3efa23
commit a46f730a69
1 changed files with 5 additions and 0 deletions

View File

@ -172,6 +172,7 @@ protected override void UpdateStartTimeStateTransforms()
{
base.UpdateStartTimeStateTransforms();
// always fade out at the circle's start time (to match user expectations).
ApproachCircle.FadeOut(50);
}
@ -182,6 +183,10 @@ protected override void UpdateHitStateTransforms(ArmedState state)
// todo: temporary / arbitrary, used for lifetime optimisation.
this.Delay(800).FadeOut();
// in the case of an early state change, the fade should be expedited to the current point in time.
if (HitStateUpdateTime < HitObject.StartTime)
ApproachCircle.FadeOut(50);
switch (state)
{
case ArmedState.Idle: