ekrctb
da69867fd4
Move catcher trail generation logic to CatcherArea
2021-07-27 19:07:37 +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
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
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
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
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
ekrctb
ccca7e0b25
more specific type droppedObjectContainer
2020-12-09 10:35:01 +09:00
ekrctb
0213f77b4b
Move catcher state changing logic to OnNewResult method
2020-12-08 14:28:30 +09:00
ekrctb
e82ca66d3e
Fix depth of dropped objects
2020-12-04 10:21:54 +09:00
ekrctb
2eb2c934cc
Refactor fruit dropping code
...
- The repeated `Remove` call was quadratic complexity.
Now it is linear time.
2020-12-03 16:44:36 +09:00
ekrctb
e8842eed81
Use bigger initial capacity for catch hit object pool
2020-12-01 14:50:42 +09:00
ekrctb
70628235e3
Use hit object pooling for BananaShower
.
2020-11-30 19:22:40 +09:00
ekrctb
9611aaf09e
Use hit object pooling for JuiceStream
.
...
- Use `Clear(false)` to not dispose pooled children.
- Don't set nested DHO `Origin`.
- Simplify the layout (remove custom `Origin`).
2020-11-30 19:19:14 +09:00
ekrctb
b76ae525b2
Use hit object pooling for Fruit
and Banana
.
2020-11-30 19:07:50 +09:00
ekrctb
94fd607a7c
Use hit object pooling for Droplet
and TinyDroplet
.
2020-11-30 19:04:09 +09:00
ekrctb
05aaa377e7
Don't use CreateDrawableRepresentation in CatcherArea
2020-11-30 19:02:49 +09:00
Dean Herbert
9fbfb1aa9f
Add comment explaining requirement
2020-11-30 15:22:55 +09:00
Dean Herbert
73990a6674
Fix osu!catch combo counter not showing after 1 combo
2020-11-30 15:20:52 +09:00
ekrctb
c506b438bf
Remove more code and make some methods private
2020-11-22 18:51:16 +09:00
ekrctb
4345d8dcb6
Event -> virtual method
2020-11-21 15:20:33 +09:00
ekrctb
82aefa3868
Rework and rename to OnNewDrawableHitObject.
...
The semantics is changed and hopefully more clear.
2020-11-21 00:27:19 +09:00
ekrctb
468b2a97cb
Use events instead of overriding Add (catch)
2020-11-20 17:56:47 +09:00
Bartłomiej Dach
fcf3a1d13c
Encapsulate combo display better
2020-09-12 22:40:34 +02:00
Salman Ahmed
ba8a4eb6f0
Move osu!catch combo counter display to inside CatcherArea
2020-09-01 20:17:21 +03:00
Salman Ahmed
4dbf695bca
Fix wrong ordering
2020-08-04 00:04:00 +03:00
Salman Ahmed
f37ba49f7f
Add catch-specific combo counter with its legacy design
2020-08-03 22:13:02 +03:00
Dean Herbert
c42b315abb
Expose via CreateProxiedContent method
2020-07-16 15:35:19 +09:00
Dean Herbert
3666599053
Remove space
2020-07-15 22:00:48 +09:00
Dean Herbert
72789dc0aa
Remove redundant array spec
2020-07-15 21:52:37 +09:00
Dean Herbert
2624862e32
Fix osu!catch dropping fruit appearing above the plate instead of behind
2020-07-15 20:58:09 +09:00
ekrctb
3278a1d7d8
Standardize osu!catch coordinate system
...
There were two coordinate systems used:
- 0..512 (used in osu!stable)
- 0..1 (relative coordinate)
This commit replaces the usage of
the relative coordinate system to
the coordinate system of 0..512.
2020-07-02 00:21:45 +09:00
Dean Herbert
ea0bbd2926
Rename drawable namespace to avoid clashes with framework class
2020-02-19 18:01:59 +09:00
Dean Herbert
d8ce1fd86c
Fix osu!catch not handling all vertical space
2020-01-30 13:23:39 +09:00
Dean Herbert
63128c9465
Extend mouse hiding in catch to include catcher area
2019-11-29 18:25:11 +09:00
Dean Herbert
4f081f2fe8
Remove catch-specific cursor provider
2019-11-29 17:38:28 +09:00
unknown
8e248d5cfa
add invisible cursor for ctb
2019-11-03 15:34:08 +01:00
Dean Herbert
14cef94a53
Merge remote-tracking branch 'upstream/master' into hitobject-drawable-representation
2019-03-29 12:59:26 +09:00
Dean Herbert
ed3746e166
Make PlayfieldAdjustmentContainer universal
2019-03-26 13:32:44 +09:00
Dean Herbert
9bf48863b0
Fix DrawableRuleset drawable creation method's name
2019-03-25 00:00:29 +09:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
smoogipoo
f27bd3ef3e
OpenTK -> osuTK
2018-11-20 17:14:59 +09:00
jorolf
41a0f9896e
Merge branch 'master' into flashlight-mod
2018-11-15 00:35:42 +01:00
smoogipoo
10543cf1b6
Move rest of ScrollingPlayfield into ScrollingRulesetContainer
2018-11-12 17:34:35 +09:00