Commit Graph

125 Commits

Author SHA1 Message Date
ekrctb
b88091262d Remove #nullable disable from Catch.UI 2023-01-15 17:29:35 +09:00
Dean Herbert
775952380f Remove unused using statements 2022-12-13 18:57:17 +09:00
Dylan Nantz
0dd4e0cf94 hide cursor in catch 2022-12-12 21:18:01 -05:00
Bartłomiej Dach
7f68fe429f
Remove unused using directive 2022-11-30 20:01:59 +01:00
Bartłomiej Dach
285248d554
Fix potential null dereference in CatchPlayfield 2022-11-30 20:01:11 +01:00
Dean Herbert
5ce2d6f54a Hide the game mouse cursor when playing osu!catch with relax mod 2022-11-30 18:13:53 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
ekrctb
e8cd9a5d11 Allow arbitrary height catch editor
Useful because can see more notes at once.
2022-10-06 17:26:03 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
a92d499d7a Convert usages of BeatmapDifficulty to IBeatmapDifficultyInfo 2021-10-01 16:55:50 +09:00
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