Commit Graph

150 Commits

Author SHA1 Message Date
Darius Wattimena 5e642cbce7 Apply code feedback and also resize catcher trails when any is shown 2024-10-24 23:17:47 +02:00
Darius Wattimena b75437ee13 Fix an issue where changing the CircleSize wouldn't adjust the catcher size and represent hyperdashes incorrectly 2024-10-15 21:47:22 +02:00
Dan Balasescu fbfe3a4887
Fix fruit positions getting mangled when exploded 2024-08-13 18:42:09 +09:00
Salman Ahmed 02de9122d4 Remove behaviour of flipping catcher plate on direction change 2024-02-14 07:17:05 +03:00
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
Dean Herbert 3fb74cb5f9
Move helper method to `LegacyRulesetExtensions` and stop applying rounding allowance to catch
As discussed, it isn't used in stable like this. Was a mistake.
2023-10-20 18:57:14 +09:00
Dean Herbert 42087037ae
Fix `Catcher` code change not accounting for double sizing requirement 2023-10-18 23:56:17 +09:00
Dean Herbert 3a5490892c
Centralise and repair circle size calculations game-wide 2023-10-18 19:50:42 +09:00
Salman Ahmed fed0deac02 Add brief explaination of `BASE_SIZE` 2023-10-10 01:26:59 +03:00
Terochi bb1ed387ef fixed missed bit and comments 2023-04-22 10:54:50 +02:00
Terochi 847b63066b fix 2023-04-21 22:44:31 +02:00
Dean Herbert 836c884aae Fix circle-size based scale being applied twice to caught fruit
Closes #22968.
2023-03-29 18:03:22 +09:00
ekrctb 812a4b412a Move judgement result revert logic to Playfield
Previously, some judgement results were not reverted
when the source DHO is not alive (e.g. frames skipped in editor).
Now, all results are reverted in the exact reverse order.
2023-01-19 19:57:13 +09:00
ekrctb b88091262d Remove #nullable disable from Catch.UI 2023-01-15 17:29:35 +09:00
Dan Balasescu 7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert a215d009fe Update `Remove`/`RemoveRange`/`RemoveAll` calls in line with framework changes 2022-08-29 15:57:40 +09:00
Dean Herbert 31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dan Balasescu f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Darius Wattimena 38edeac710 Moved the logic to the bottom as placeCaughtObject is otherwise not called yet 2021-11-18 20:24:40 +01:00
Darius Wattimena 95891bc655 Moved clear plate logic to Catcher class 2021-11-18 20:03:41 +01:00
Dan Balasescu cab254dc81
Merge branch 'master' into var-inspections-update 2021-10-27 14:02:49 +09:00
Dean Herbert 6944151486 Apply batch fixing of built-in types using `var` 2021-10-27 13:04:41 +09:00
ekrctb e5050b90a5 Don't assume catcher dash speed is 2x the walk speed 2021-10-26 20:09:48 +09:00
Dean Herbert a92d499d7a Convert usages of `BeatmapDifficulty` to `IBeatmapDifficultyInfo` 2021-10-01 16:55:50 +09:00
Bartłomiej Dach e79150d4da
Reorder constructor arguments for `HitExplosionEntry` 2021-08-12 21:48:08 +02:00
Bartłomiej Dach 8c8a64fe6e
Add legacy hit lighting implementation 2021-08-11 21:23:33 +02:00
Bartłomiej Dach 95a58ca366
Store judgement directly in hit explosion entry 2021-08-11 21:23:33 +02:00
ekrctb a960a28d06 Replace "end glow" terminology with "hyper-dash after-image"
Because the is "end glow" is when a hyper-dash is *started*, the name was confusing.
The "after-image" was already used in the code as a synonym of "end glow" inconsistently.
2021-07-28 19:11:22 +09:00
Dean Herbert 2b107d624a
Merge pull request #14024 from ekrctb/trail-generation
Move catcher trail generation logic to `CatcherArea` to remove mutual dependency of `Catcher` and `CatcherTrailDisplay`
2021-07-28 19:06:44 +09:00
ekrctb da69867fd4 Move catcher trail generation logic to `CatcherArea` 2021-07-27 19:07:37 +09:00
ekrctb de68fd12b3 Move catcher trail colouring logic to `CatcherTrailDisplay` 2021-07-27 19:07:37 +09:00
ekrctb 8045534fa5 Remove outdated comment and simplify code 2021-07-26 18:18:24 +09:00
ekrctb 4282442278 Make `Catcher.body` private as it is no longer needed by `CatcherTrailDisplay` 2021-07-26 17:58:34 +09:00
ekrctb c08130398c Add some comments 2021-07-26 17:58:34 +09:00
ekrctb bb046fa3b8 Move catcher trail generation logic to `Catcher`
It resolves mutual dependency of `Catcher` and `CatcherTrailDisplay`.
Trail generation logic is moved to `Catcher`.
The generation logic no longer uses delayed scheduling because the hidden state is hard to manage.
Instead, the last time a trail is generated is calculated and used.
The new logic has a different behavior when the dash key is pressed in succession under 50ms, but it is not noticeable for normal plays.
2021-07-26 17:51:59 +09:00
ekrctb d9f9ad35be Move catcher base size constant to `Catcher`. 2021-07-21 16:43:24 +09:00
ekrctb 41169fbdaf Add `[NotNull]` 2021-07-19 20:20:10 +09:00
ekrctb b88ee3c1a1 Pass `DroppedObjectContainer` via constructor instead of DI
It is now just one level deep, so it is not beneficial to use DI here.
This effectively reverts ae09c23e.
2021-07-19 20:11:49 +09:00
Dean Herbert 01961fe4f9
Merge pull request #13747 from ekrctb/catcher-flip
Don't flip catcher plate contents when catcher changes direction
2021-07-06 00:02:23 +09:00
ekrctb 83c80291d4 Don't flip catcher plate contents in legacy skin 2021-07-02 23:23:21 +09:00
ekrctb fbba32647e Decouple direction of catcher from its scale 2021-07-02 23:22:39 +09:00
ekrctb 170513568b Move caught object stack vertical offset logic 2021-07-02 20:43:47 +09:00
ekrctb ae09c23e4e Resolve `DroppedObjectContainer` via DI 2021-06-24 16:09:13 +09:00
ekrctb 16d5893535 Add `DroppedObjectContainer` class 2021-06-24 15:51:54 +09:00
ekrctb df16d4bacc Remove `CurrentTexture` from catcher 2021-06-14 20:26:33 +09:00
ekrctb ca061c4b93 Factor out `SkinnableDrawable` component of the catcher to `SkinnableCatcher` 2021-06-14 19:41:51 +09:00
ekrctb 7f7c2c73e0 Move catcher movement logic of `Catcher` to `CatcherArea` 2021-06-11 15:39:06 +09:00
Dean Herbert 05b46b4743
Merge pull request #13379 from ekrctb/catcher-sprite
Refactor osu!catch catcher sprite to factor out skinning logic
2021-06-10 16:52:17 +09:00
ekrctb 7df971a970 `ICatcherPiece` -> `ICatcherSprite` 2021-06-08 22:10:13 +09:00
ekrctb 194c78f67a Make current state bindable protected 2021-06-08 22:08:54 +09:00