osu/osu.Game.Rulesets.Catch/UI
Bartłomiej Dach fcb6f40666
Prioritise hyperfruit over non-hyperfruit if simultaneous
In case of simultaneous hyperfruit and non-hyperfruit - which happen to
occur on some aspire maps - the desired behaviour is to hyperdash. This
did not previously occur, due to annoying details in how
`HitObjectContainer` is structured.

`HitObjectContainer`'s drawable comparer determines the order of
updating the objects. One could say that forcing the hyperfruit to be
updated last, after normal fruit, could help; unfortunately this is
complicated by the existence of juice streams and the fact that while a
juice stream can be terminated by a normal fruit that is coincidental
with a hyperfruit, the two are not comparable directly using the
comparer in any feasible way.

Therefore, apply a `Catcher`-level workaround that intends to handle
this locally; in short, if a hyperdash was toggled in a given frame, it
cannot be toggled off again in the same frame. This yields the desired
behaviour.
2023-12-04 09:30:18 +01:00
..
CatchComboDisplay.cs
CatchCursorContainer.cs
CatchPlayfield.cs
CatchPlayfieldAdjustmentContainer.cs Refactor catch playfield size adjustment logic w.r.t. catcher position 2023-10-10 02:42:37 +03:00
CatchReplayRecorder.cs
CatchTouchInputMapper.cs
Catcher.cs Prioritise hyperfruit over non-hyperfruit if simultaneous 2023-12-04 09:30:18 +01:00
CatcherAnimationState.cs
CatcherArea.cs Use `IsRewinding` in a few more places 2023-07-08 13:32:24 +02:00
CatcherTrail.cs
CatcherTrailAnimation.cs
CatcherTrailDisplay.cs
CatcherTrailEntry.cs
Direction.cs
DrawableCatchRuleset.cs Allow toggling SVs in the editor 2023-08-18 18:55:24 +09:00
DroppedObjectContainer.cs
HitExplosion.cs
HitExplosionContainer.cs
HitExplosionEntry.cs
ICatchComboCounter.cs
IHitExplosion.cs
SkinnableCatcher.cs Adjust catcher origin position to match 1:1 with stable 2023-10-10 01:26:59 +03:00