1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-30 06:32:54 +08:00
Commit Graph

483 Commits

Author SHA1 Message Date
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
Dean Herbert
013ddc734c Fix osu!catch fruit showing on plate when hidden mod is enabled
Closes https://github.com/ppy/osu/issues/12065.
2021-03-25 17:04:37 +09:00
Dean Herbert
1793385e96 Pass a score to the replay recorder to allow reading more general scoring data 2020-12-14 16:52:14 +09:00
ekrctb
96f3e0dad8 Replace CatchHitObject.X usage to EffectiveX and OriginalX 2020-12-14 11:03:14 +09:00
ekrctb
2634c6b8d9 Combine DisplayRadius and Scale to DisplaySize 2020-12-10 20:43:01 +09:00
ekrctb
a8e2f35b62 Remove unneeded check of caught object removal
The logic was public but now it is private
so the condition is ensured by the caller
2020-12-09 10:50:35 +09:00
ekrctb
b52e279702 Reword exception message 2020-12-09 10:38:11 +09:00
ekrctb
86445e7c23 Remove unnecessary copy 2020-12-09 10:36:54 +09:00
ekrctb
c8b0934573 Rename caughtFruitContainer -> caughtObjectContainer 2020-12-09 10:35:36 +09:00
ekrctb
ccca7e0b25 more specific type droppedObjectContainer 2020-12-09 10:35:01 +09:00
ekrctb
b80204642e Revert rename error 2020-12-09 10:25:35 +09:00
ekrctb
1212ffd24f Rename to CopyStateFrom, and add comment 2020-12-08 23:35:24 +09:00
ekrctb
1f36bbecd1 Fix dropped objects not removed on revert result 2020-12-08 23:07:30 +09:00
ekrctb
749d5380ca Pool caught objects and dropped objects 2020-12-08 22:38:10 +09:00
ekrctb
a32dac00dd Introduce IHasCatchObjectState implemented by DHO and CaughtObject 2020-12-08 21:29:26 +09:00
ekrctb
c301223d8c Make object on the catcher plate separate CaughtObject class 2020-12-08 21:11:40 +09:00
ekrctb
94a59ac3b2 Make catch hit lighting logic not dependent on caught object 2020-12-08 20:41:26 +09:00
ekrctb
56721a6fa9 Compute object position in stack via a pure function 2020-12-08 20:36:59 +09:00
Dan Balasescu
c3241f163d
Merge pull request #11126 from ekrctb/fix-catcher-trail-sprite-pooled
Clear all transforms of catcher trail sprite before returned to pool
2020-12-08 17:59:23 +09:00
ekrctb
22a5df6309 Clear all transforms of catcher trail sprite before returned to pool 2020-12-08 17:31:00 +09:00
ekrctb
02571ec7ae Remove hit explosion on revert result 2020-12-08 15:43:17 +09:00
ekrctb
1a66d8f2bc Remove caught objects on revert result 2020-12-08 15:24:39 +09:00
ekrctb
100b365c98 Restore hyper dash state on revert judgement result 2020-12-08 15:21:47 +09:00
ekrctb
cb76a2d7b5 Restore catcher state on revert judgement result 2020-12-08 15:03:03 +09:00
ekrctb
0213f77b4b Move catcher state changing logic to OnNewResult method 2020-12-08 14:28:30 +09:00
ekrctb
12c6b3c1fb Pool catcher trail sprite 2020-12-07 18:12:55 +09:00
Dean Herbert
d3a17b65d5 Move public methods upwards 2020-12-04 14:36:40 +09:00
Dean Herbert
8988023407 Tidy up code formatting and remove unnecessarily publicly exposed methods 2020-12-04 14:35:56 +09:00
ekrctb
23af70dd32 Invert if 2020-12-04 10:24:25 +09:00
ekrctb
e82ca66d3e Fix depth of dropped objects 2020-12-04 10:21:54 +09:00
ekrctb
7e66714c2f Use ApplyCustomUpdateState for dropping transformation
We cannot just apply the transforms because DHO clears transforms when state is updated
2020-12-03 18:46:58 +09:00
ekrctb
be456f9c6b Make DroppedObjectAnimation private 2020-12-03 18:46:58 +09:00
ekrctb
5a5c956ced Move more logic to Catcher from CatcherArea 2020-12-03 16:44:36 +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
873f2363c1 Simplify the fruit stacking code
It is now more clear that
the expression of distance checking is probably unintended (a bug)
2020-12-03 16:44:36 +09:00
ekrctb
8d32cca5d6 Use more specific type for caught object 2020-12-03 16:44:36 +09:00
ekrctb
a231a4aa6d Remove unused method 2020-12-03 16:44:36 +09:00
ekrctb
af45e8d97b Don't delay caught fruit loading
It is not needed anymore because
some code in DCHO is moved from `load` to constructor.
2020-12-03 16:44:36 +09:00
ekrctb
e5c8e06c4b Create children in the constructor 2020-12-03 16:44:36 +09:00
Dan Balasescu
2e0fdf9bca
Merge pull request #11011 from ekrctb/catch-pooling-initial
Initial implementation of hit object pooling in osu!catch ruleset
2020-12-02 13:02:22 +09:00
ekrctb
e8842eed81 Use bigger initial capacity for catch hit object pool 2020-12-01 14:50:42 +09:00
ekrctb
a16b265090 Apply suggested styling changes 2020-12-01 14:46:04 +09:00
smoogipoo
5945c088cb A few code standard cleanups 2020-12-01 12:57:37 +09:00
ekrctb
08cb84b325 Pool osu!catch hit explosion 2020-12-01 11:32:20 +09:00
ekrctb
d1076778fd Convert switch expression to switch statement 2020-12-01 09:50:52 +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
c99d34d140
Merge branch 'master' into palpable-catch-hit-object 2020-11-26 12:24:57 +09:00
ekrctb
3c3229ac4b Remove redundant StaysOnPlate 2020-11-25 07:59:45 +09:00
ekrctb
ab7251d742 Move members to PalpableCatchHitObject 2020-11-24 19:57:37 +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
Dean Herbert
4024b44a53 Fix unsafe manipulation of parent's children from child 2020-10-19 17:41:21 +09:00
Bartłomiej Dach
2b1ef16f89 Replace comparison references to HitResult.Miss with IsHit 2020-10-02 23:31:24 +02:00
smoogipoo
4ca9a69de2 Use new hit results in catch 2020-09-29 16:33:38 +09:00
Dean Herbert
1c58f568d6 Simplify and reformat rewind/transform logic 2020-09-22 12:54:21 +09:00
Dean Herbert
08d8975566 Remove DisplayInitialCombo method for simplicity 2020-09-22 12:35:18 +09:00
Bartłomiej Dach
fcf3a1d13c Encapsulate combo display better 2020-09-12 22:40:34 +02:00
Salman Ahmed
a0a4501008 Merge remote-tracking branch 'upstream/master' into catch-combo-counter 2020-09-01 20:17:25 +03:00
Salman Ahmed
ba8a4eb6f0 Move osu!catch combo counter display to inside CatcherArea 2020-09-01 20:17:21 +03:00
Salman Ahmed
cf6b34db1e Merge remote-tracking branch 'upstream/master' into catch-combo-counter 2020-08-22 13:07:28 +03:00
smoogipoo
62d833d63d Fix comment 2020-08-21 13:14:50 +09:00
smoogipoo
6ad7a3686b Simplify condition 2020-08-21 13:13:08 +09:00
smoogipoo
855b5ba4ed Merge branch 'master' into add-droplet-hypers 2020-08-21 13:09:16 +09:00
Dean Herbert
f0ba587515
Merge branch 'master' into fix-catch-double-sample 2020-08-21 12:38:29 +09:00
Bartłomiej Dach
9546fbb64b Prevent catcher from performing invalid catches 2020-08-20 19:06:29 +02:00
Bartłomiej Dach
28534c1599 Reintroduce PalpableCatchHitObject at data level 2020-08-20 19:06:26 +02:00
smoogipoo
f956c9fe37 Clobber in a gameplay test 2020-08-21 02:01:29 +09:00
Dean Herbert
a94a86178b Align osu!catch playfield with stable 1:1 2020-08-20 19:12:37 +09:00
Dean Herbert
1f14d9b690 Use correct width adjust for osu!catch playfield 2020-08-20 18:15:06 +09:00
Salman Ahmed
af52b73b06 Fill out missing documentation 2020-08-19 08:39:40 +03:00
Salman Ahmed
d4bde0afe5 Do not pass accent value on a reverted miss judgement 2020-08-19 08:18:30 +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
02678c04d5
Merge pull request #9556 from gagahpangeran/toggle-hit-lighting-catch 2020-07-17 17:06:40 +09:00
Dan Balasescu
ab477c3be4
Remove returns xmldoc 2020-07-16 15:55:35 +09: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
Gagah Pangeran
3e2d184a91 change hitlighting bool to bindable 2020-07-14 10:52:34 +07:00
Gagah Pangeran
a25f4880d6 disable hit explotion when hit lighting off 2020-07-14 10:35:01 +07: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
Bartłomiej Dach
5bab53b04c Centralise trail visibility state management 2020-05-10 17:05:30 +02:00
Salman Ahmed
b44a70ef9a
Let the catcher be responsible for stopping the trails 2020-05-07 01:46:37 +03:00
Bartłomiej Dach
25f73c0b9f Add [NotNull] annotation 2020-05-06 23:40:36 +02:00
Bartłomiej Dach
52d1e2b5f8 Improve xmldoc 2020-05-06 23:28:54 +02:00
Bartłomiej Dach
ed83ac188e Remove special case for moving catcher sprite 2020-05-06 23:25:25 +02:00
Salman Ahmed
278c3795e4
Merge remote-tracking branch 'upstream/master' into catch-hyperdash-catcher-colouring 2020-04-23 05:21:56 +03:00
Salman Ahmed
883788dd5a
Privatize externally-unused methods 2020-04-22 07:37:49 +03:00
Salman Ahmed
fccb30e031
Adjust documents
*whoops*
2020-04-22 07:36:59 +03:00
Salman Ahmed
f841eb7e06
Replace constructing a whole Catcher with static calculation methods 2020-04-22 07:27:15 +03:00
Salman Ahmed
2d4077e713
Reword special default hyper-dash colour constant a bit 2020-04-22 05:25:40 +03:00
Salman Ahmed
9ab0f6d8bc
Separate trail-related logic to its own container 2020-04-22 05:12:29 +03:00
Salman Ahmed
95de2c6f7f
Mark Catcher.additiveTarget to never be null
And provide empty containers instead.
2020-04-22 05:04:07 +03:00
Salman Ahmed
c8c2b51108 Remove redundant property set
Co-Authored-By: Dean Herbert <pe@ppy.sh>
2020-04-21 11:44:39 +03:00
Salman Ahmed
ee62739b08 Simplify process of adding catcher trails 2020-04-21 11:44:39 +03:00
Salman Ahmed
a82efa626e Add XMLDoc for default hyper-dash colour constant 2020-04-21 11:44:39 +03:00
Salman Ahmed
282d100109 Fix XMLDoc references 2020-04-21 06:09:57 +03:00
Salman Ahmed
9373520bca Add constant for special colour of catcher on default skin 2020-04-21 05:59:37 +03:00
Salman Ahmed
e17a44c99b Merge branch 'master' of github.com:ppy/osu into catch-hyperdash-catcher-colouring 2020-04-21 05:58:56 +03:00
Salman Ahmed
d27d8671ab Convert all static getter-only properties to static readonly fields 2020-04-08 14:23:29 +03:00
Salman Ahmed
42ccee5e6c Fix CI issue 2020-04-05 00:15:42 +03:00
Salman Ahmed
0014a8404e GetHyperDashEndGlowColour() -> GetHyperDashCatcherAfterImageColour() 2020-04-04 23:12:42 +03:00
Salman Ahmed
19f39fe632 Change AdditiveTarget into a set method 2020-04-04 19:33:52 +03:00
Salman Ahmed
fbe95a52e3 Remove unnecessary restating comment 2020-04-04 19:29:41 +03:00
Salman Ahmed
50604dc7b2 Update catcher hyper-dashing colours on changing hyper-dash state only 2020-04-04 19:29:06 +03:00
Salman Ahmed
f3bcb0628c Add helper methods for retrieving other skin hyper-dash colours 2020-04-04 19:09:52 +03:00
Salman Ahmed
ee247e58c8 Merge branch 'catch-hyperdash-fruit-colouring' into catch-hyperdash-catcher-colouring 2020-04-04 18:07:29 +03:00
Salman Ahmed
f67a62699b Merge remote-tracking branch 'upstream/master' into catch-hyperdash-fruit-colouring 2020-04-03 19:57:52 +03:00
Dean Herbert
51db361c32 Update usages of Animation and Video in line with framework changes 2020-04-03 16:00:06 +09:00
Dean Herbert
f653d37058
Merge pull request #8521 from peppy/remove-scale-down-to-fit
Remove ScaleDownToFit as it was implemented without enough safety
2020-03-31 23:22:04 +09:00
Dean Herbert
b7d73f96ea Fix osu!catch catcher hit area being too large 2020-03-31 18:33:09 +09:00
Dean Herbert
1fce7cce01 Remove ScaleDownToFit as it was not implemented without enough safety 2020-03-31 13:50:04 +09:00
Salman Ahmed
c2e31f53f1 Merge remote-tracking branch 'upstream/master' into catch-hyperdash-fruit-colouring 2020-03-28 07:44:11 +03:00
Dean Herbert
2949e8dc27 Reduce spread of stacked fruit 2020-03-26 16:58:23 +09:00
Salman Ahmed
fecafc2e48 Fix additive target accidentally clears all of the added containers
It sets the AdditiveTarget on the object initializer but then the catcher is set to Child which wipes up all of the existing children (containers added by Catcher through AdditiveTarget setter)
2020-03-26 09:14:44 +03:00
Salman Ahmed
302fdd834a Add support for custom hyper-dash catcher colouring 2020-03-26 09:11:59 +03:00
Salman Ahmed
e3a7c8a124 Make catcher trails colouring per container 2020-03-26 09:11:31 +03:00
Salman Ahmed
0a368f13d9 Add default hyper-dash colour constant on Catcher 2020-03-26 05:42:11 +03:00