ekrctb
846f539428
Avoid usage of LINQ in last dash trail computation
2021-07-27 19:11:08 +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
30777795ce
Add some doc comment to CatcherArea
2021-07-21 16:40:35 +09:00
ekrctb
94678064ff
Rename CatcherArea.MovableCatcher
to Catcher
2021-07-21 16:28:31 +09:00
ekrctb
81d0a9bd9c
Fix item ordering
2021-07-19 21:05:36 +09:00
ekrctb
41169fbdaf
Add [NotNull]
2021-07-19 20:20:10 +09:00
ekrctb
7201cfe0b4
Move child drawable creation of CatchPlayfield
from constructor to load
.
2021-07-19 20:18:17 +09:00
ekrctb
879467961f
Fix catcher trails displayed in wrong place
2021-07-19 20:13:31 +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
ekrctb
50f9e5f362
Replace usage of CatcherArea.MovableCatcher
with Catcher
2021-07-19 19:52:40 +09:00
ekrctb
97059a9f50
Create Catcher
in CatchPlayfield
2021-07-19 19:44:40 +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
Dean Herbert
ee6cf4396a
Merge pull request #13648 from ekrctb/dropped-object-container
...
Use DI to resolve "dropped object target" container in `Catcher`
2021-06-25 18:23:39 +09:00
ekrctb
c0c1b8d620
Fix catcher hyper-dash afterimage is not always displayed
2021-06-24 16:12:43 +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
b54e82eb99
Remove unused argument from CatchPlayfield
2021-06-22 15:23:50 +09:00
ekrctb
b087c95581
Use a frozen clock for catcher trails
2021-06-16 16:17:32 +09:00
ekrctb
1632450918
Add comments
2021-06-16 16:17:32 +09:00
ekrctb
73e443a0d9
Add comments
2021-06-16 14:01:12 +09:00
ekrctb
df16d4bacc
Remove CurrentTexture
from catcher
2021-06-14 20:26:33 +09:00
ekrctb
38a56d64d3
Rename CatcherTrailSprite
-> CatcherTrail
2021-06-14 19:47:18 +09:00
ekrctb
c094914023
Simplify catcher trail creation
2021-06-14 19:46:48 +09:00
ekrctb
9b6ab4360e
Use common skinnable catcher in catcher trails
2021-06-14 19:45:58 +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
ekrctb
0192549d6c
Refactor catcher sprite to use skinned piece pattern
2021-06-08 21:29:41 +09:00
ekrctb
6e28c1b29a
Move default catcher sprite to its own file
2021-06-08 17:54:57 +09:00
Dean Herbert
6017ef3825
Merge branch 'master' into fix-skin-sample-lookup
2021-06-08 17:37:36 +09:00
ekrctb
8e20f90ed5
Use seeded RNG for catch explosion animation
...
The animation is always the same when a replay is rewound or a beatmap is played multiple times.
2021-06-04 19:54:46 +09:00
ekrctb
181f1da3d3
Maintain catch hit explosion by lifetime entries
...
- Fix hit explosion not showing when a replay is rewound to a time after a hit object is caught
2021-06-04 19:46:50 +09:00
Dean Herbert
70a844ac10
Remove allowFallback
parameters completely
2021-05-27 14:50:42 +09:00
Dean Herbert
dc2bc462b8
Expose internal catcher width calculation methods
2021-04-22 17:27:23 +09:00
Dean Herbert
84a7138223
Update tests to better support stack regeneration cases
2021-04-22 17:13:19 +09:00
Dean Herbert
3e1002fbf3
Improve osu!catch caught fruit placement algorithm
2021-04-22 17:06:28 +09:00
Dean Herbert
ddf1b560f3
Remove catcher fade during hyperdash
...
Closes https://github.com/ppy/osu/issues/12472 .
2021-04-20 18:18:51 +09:00
ekrctb
6d0dc62502
Make sure latest catcher position is used for catching logic
...
A replay frame processed in CatchInputManager is applied to catcher in `CatcherArea`.
The catcher position is then used for the catching logic for each hit object under `HitObjectContainer`.
Thus, if `HitObjectContainer` came before `CatcherArea`, the replay input is delayed one frame.
That was one reason why the catch autoplay misses hit objects (especially when fast-forwarded).
2021-04-09 16:04:45 +09:00
Dean Herbert
89bea2868a
Move bool one level down
2021-03-30 14:33:55 +09:00