mirror of https://github.com/ppy/osu
fcb6f40666
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. |
||
---|---|---|
.. | ||
CatchComboDisplay.cs | ||
CatchCursorContainer.cs | ||
CatchPlayfield.cs | ||
CatchPlayfieldAdjustmentContainer.cs | ||
CatchReplayRecorder.cs | ||
CatchTouchInputMapper.cs | ||
Catcher.cs | ||
CatcherAnimationState.cs | ||
CatcherArea.cs | ||
CatcherTrail.cs | ||
CatcherTrailAnimation.cs | ||
CatcherTrailDisplay.cs | ||
CatcherTrailEntry.cs | ||
Direction.cs | ||
DrawableCatchRuleset.cs | ||
DroppedObjectContainer.cs | ||
HitExplosion.cs | ||
HitExplosionContainer.cs | ||
HitExplosionEntry.cs | ||
ICatchComboCounter.cs | ||
IHitExplosion.cs | ||
SkinnableCatcher.cs |