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
Dean Herbert
388cf5c83a
Fix catch positional data being incorrectly recorded
2020-03-24 15:38:54 +09:00
Dean Herbert
96a849f897
Add remaining replay recorders
2020-03-24 14:55:49 +09:00
Bartłomiej Dach
f904859943
Remove leftover unused private methods
2020-03-15 15:45:13 +01:00
Dean Herbert
d3f23b766e
Move across to new file in line with master
2020-03-14 17:06:23 +09:00
Dean Herbert
9ea0e83f3d
Merge branch 'master' into correct-trail-animation-frame
2020-03-14 16:57:35 +09:00
Dean Herbert
45dfb22bd5
Centralise additive texture creation
2020-03-14 16:39:44 +09:00
Dean Herbert
202c8cdad8
Add braces to satisfy codefactor
2020-03-14 15:35:59 +09:00
Dean Herbert
1733519c3a
Split out CatcherArea nested classes and reorder methods
2020-03-13 12:59:30 +09:00
Dean Herbert
c30bfa79e7
Merge branch 'master' into correct-trail-animation-frame
2020-03-13 09:55:41 +09:00