Drison64
a4fae37013
Fixed tests failing
2022-09-20 19:45:39 +02:00
Drison64
6b1cd1bce3
Clamped JuiceStream to Playfield, but broke few tests
2022-09-20 19:13:40 +02:00
Drison64
4958421303
Moved X clamping from X to EffectiveX
2022-09-19 17:26:04 +02:00
Drison64
6d7d80a4fb
Made X position value of CatchHitObject clamp to CatchPlayfield's width
2022-09-18 17:29:08 +02:00
Salman Ahmed
8f80a22ef9
Fix osu! and catch hitobjects no longer scaled to 1 by default
2022-07-19 07:00:13 +03:00
Salman Ahmed
1051009827
Change bindable properties in all HitObject
s to be lazily initialised
2022-07-19 05:39:10 +03:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
ekrctb
670922c8e5
Use latest slider velocity for juice stream velocity computation.
...
This fixes one-frame glitch in editor when slider velocity is changed.
2022-05-08 22:36:33 +09:00
ekrctb
9ffa90602b
Automatically set slider velocity from juice stream path
2022-05-08 22:36:33 +09:00
ekrctb
4e0155fa4b
Make JuiceStreamPath
time based instead of distance based.
...
And remove the "slope limit" feature.
TODO: for a juice stream with a large slope, the slider velocity of the hit object should be changed.
2022-05-08 22:36:33 +09:00
goodtrailer
4440b9ca11
Change IHasRepeats.NodeSamples to IList from List
2021-10-23 01:59:07 -07:00
smoogipoo
bc37cb6f43
Merge branch 'master' into no-more-difficulty-control-points-info
2021-10-08 18:41:17 +09:00
Dean Herbert
a92d499d7a
Convert usages of BeatmapDifficulty
to IBeatmapDifficultyInfo
2021-10-01 16:55:50 +09:00
Dean Herbert
a3d9ab1e2e
Move approach rate to EffectControlPoint
2021-09-03 16:58:16 +09:00
Dean Herbert
071c56e90b
Update usages of DifficultyPointAt
2021-09-03 16:58:16 +09:00
Dean Herbert
6dcd9427ac
Remove bindable usage in PathControlPoint
...
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.
I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
Salman Ahmed
523c154f15
Add ComboIndexWithOffsetsBindable
and bind similar to ComboIndexBindable
2021-07-22 16:40:33 +03:00
Dean Herbert
399c3b0be8
Rename property, reword xmldoc and improve readability of update code
2021-07-21 17:32:56 +09:00
Salman Ahmed
9d92b795fa
Revert making ComboOffset
s legacy and define BeatmapSkinComboIndex
instead
2021-07-20 14:15:43 +03:00
Salman Ahmed
554652b033
Merge branch 'refactor-combo-colour-retrieval' into legacy-beatmap-combo-offset
2021-07-20 10:11:52 +03:00
Salman Ahmed
1af230c48c
Merge branch 'master' into refactor-combo-colour-retrieval
2021-07-20 10:08:25 +03:00
Dean Herbert
6d49165664
Merge pull request #13928 from ekrctb/juice-stream-path
...
Add `JuiceStreamPath` as alternative representation of `JuiceStream` path for catch editor
2021-07-19 22:18:05 +09:00
Dean Herbert
443058f879
Move playfield constant to top of file and make internal
2021-07-19 18:41:29 +09:00
ekrctb
be495a7488
Add JuiceStreamPath
to allow editing JuiceStream
in catch editor
...
A `JuiceStream` holds a legacy `SliderPath` as the representation of the path.
However, the `SliderPath` representation is difficult to work with because `SliderPath` works in 2D position, while osu!catch works in `(time, x)` coordinates.
This `JuiceStreamPath` represents the path in a more convenient way, a polyline connecting list of `(distance, x)` vertices.
2021-07-19 13:59:10 +09:00
ekrctb
7f432665e5
Preserve Y position of hit objects in osu!catch
2021-07-14 14:38:38 +09:00
ekrctb
175d666906
Use getters of OriginalX
and XOffset
2021-07-06 15:32:32 +09:00
ekrctb
ae1b1cbec9
Allow serialization of catch hit objects
2021-07-06 15:32:32 +09:00
ekrctb
ac5c55bd2c
Remove "fruit visual representation" state from DrawableFruit
...
Instead, skin pieces compute visual representation from `IndexInBeatmap`.
2021-06-07 14:49:37 +09:00
ekrctb
166e4565be
Move FruitVisualRepresentation
namespace
2021-06-07 13:59:17 +09:00
Salman Ahmed
cd6d070b4a
Consider "combo offsets" as legacy logic and separate from combo information
2021-05-05 07:43:08 +03:00
Salman Ahmed
eeeb001d62
Refactor combo colour retrieval logic to request skin lookups instead
2021-05-05 07:17:27 +03:00
Dean Herbert
b81dbfc192
Move shared implementation to a named function
2020-12-14 13:56:46 +09:00
ekrctb
5b5e883904
Remove EffectiveXBindable (setting Value was not handled)
...
And use orthogonal `OriginalXBindable` and `XOffsetBindable`.
2020-12-14 13:39:07 +09:00
ekrctb
0ad256a762
Fix comment
2020-12-14 13:18:32 +09:00
ekrctb
d96399ea42
Revert "Remove X setter from CatchHitObject"
...
This reverts commit 7cbbd74d
2020-12-14 13:18:14 +09:00
ekrctb
7cbbd74df2
Remove X setter from CatchHitObject
2020-12-14 11:38:07 +09:00
ekrctb
f621d977fc
Add some more doc comment
2020-12-14 11:32:34 +09:00
ekrctb
36529bdd1b
Use OriginalX for CatchHitObject.X instead of EffectiveX
...
And explicitly implement IHasXPosition interface to prevent use of the X property.
It should be preferred for beatmap conversion purpose.
2020-12-14 11:26:05 +09:00
ekrctb
089f3bebf5
Add doc comments to catch hit object X properties
2020-12-14 11:15:49 +09:00
ekrctb
cd2db59900
XBindable -> EffectiveXBindable in catch DHO
2020-12-14 11:05:26 +09:00
ekrctb
96f3e0dad8
Replace CatchHitObject.X usage to EffectiveX and OriginalX
2020-12-14 11:03:14 +09:00
ekrctb
c1f3f1c231
Obsolete X
getter
2020-12-14 11:03:10 +09:00
ekrctb
8da502da44
Separate asymmetric CatchHitObject.X to EffectiveX and OriginalX
2020-12-14 11:03:03 +09:00
Dean Herbert
c0d20d8ce4
Add some spacing to interface class
2020-12-11 16:43:00 +09:00
ekrctb
2634c6b8d9
Combine DisplayRadius and Scale to DisplaySize
2020-12-10 20:43:01 +09:00
ekrctb
e097b6e61c
Add ScalingContainer back
...
Don't want to set DHO.Scale or DHO.Rotation because because DHO may be transformed by mods.
DHO.Size is also assigned for drawable visualizer
2020-12-10 19:42:01 +09:00
ekrctb
775c4bad97
Remove unneeded lifetime assignment
2020-12-09 10:47:04 +09:00
ekrctb
da2f3d4473
Move classes to separate files
2020-12-09 10:40:42 +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
5ca98b0033
Add doc comments a bit
2020-12-08 23:11:22 +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
004c705aa9
Remove ScaleContainer and flatten the Drawable tree of catch DHO
2020-12-08 20:37:08 +09:00
Dan Balasescu
1757b9c3e7
Merge branch 'master' into fruit-piece-in-place
2020-12-08 17:42:34 +09:00
ekrctb
cb76a2d7b5
Restore catcher state on revert judgement result
2020-12-08 15:03:03 +09:00
ekrctb
b2e5658d23
Merge branch 'master' into fruit-piece-in-place
2020-12-07 18:57:42 +09:00
ekrctb
c1d39b6401
Don't inherit Fruit from Banana
2020-12-07 14:10:17 +09:00
ekrctb
7f1ad1040d
Don't inherit DrawableFruit from DrawableBanana
...
- A banana cannot be hyper
2020-12-07 14:08:50 +09:00
ekrctb
b8f1c499a4
Allow PulpFormation to update formation dynamically
...
Pulps are lazily allocated but never deallocated for a DrawableFruit
2020-12-07 13:56:22 +09:00
ekrctb
0d73bf8488
Refactor catch default piece to allow reuse
...
But Fruit in-place update is still incomplete,
as child drawables are recreated when reused.
2020-12-07 13:14:00 +09:00
ekrctb
d51d2c5331
Don't recreate pieces when catch DHO is reused
2020-12-07 12:59:03 +09:00
ekrctb
d18397acad
Adjust namespace
2020-12-07 12:35:24 +09:00
ekrctb
b4b9312e0f
Move piece files of Catch ruleset
2020-12-07 12:34:38 +09:00
Dean Herbert
aa24890aff
Merge branch 'master' into caught-object-refactor
2020-12-04 14:12:33 +09:00
Dean Herbert
0134ac94a7
Merge pull request #11055 from ekrctb/catch-stateless-rng
2020-12-04 13:08:30 +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
2e8195e059
Use transformation to set fruit rotation
2020-12-03 12:13:14 +09:00
ekrctb
fdcfa81e46
Make RandomSeed a property, not a bindable
2020-12-02 20:53:47 +09:00
ekrctb
08848e49de
Set banana combo colour using random seed
2020-12-02 17:12:30 +09:00
ekrctb
8b6161a51c
Use deterministic randomness in catch hit object
2020-12-02 16:54:18 +09:00
ekrctb
e7c0e9834f
Introduce RandomSeed in catch DHO
2020-12-02 16:53:01 +09:00
smoogipoo
946613e803
Fix bananas not playing sounds
2020-12-02 15:22:54 +09:00
Dean Herbert
71a121389b
Merge pull request #11033 from smoogipoo/immutable-hit-samples
...
Make HitSampleInfo immutable
2020-12-02 14:44:26 +09:00
smoogipoo
6b4a6c12c8
Fix bad equality comparer implementations
2020-12-01 18:13:53 +09:00
smoogipoo
199710b941
Implement equality comparers for HitSampleInfo
2020-12-01 16:04:08 +09:00
smoogipoo
5760e1c1fc
Make HitSampleInfo immutable
2020-12-01 15:37:51 +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
8528b2687f
Fix possible null reference.
2020-11-30 14:24:50 +09:00
ekrctb
4228977c86
Store a DHO in FruitPiece
to animate itself.
2020-11-30 13:46:02 +09:00
ekrctb
5e0e4e9db7
Use private access modifier for Border
field.
2020-11-30 13:07:55 +09:00
ekrctb
09b7ba41d6
Consistently use readonly field for bindables.
2020-11-30 13:00:01 +09:00
ekrctb
5d3a5081a0
Remove use of HitObject in DHO constructors.
2020-11-30 12:52:58 +09:00
ekrctb
35cd6674f6
Fix tiny droplet scale factor
2020-11-27 11:56:57 +09:00
ekrctb
e36bb7631d
Fix colour not updated when index changes
2020-11-27 11:41:39 +09:00
ekrctb
dbf67f82c0
Use bindable for DrawableDroplet HyperDash state
2020-11-27 11:40:38 +09:00
ekrctb
23109f5bbc
Add bindable to drawable catch hit obejcts
2020-11-27 11:08:32 +09:00
ekrctb
5e36fb322a
Move fruit visual logic from CHO to DrawableFruit
2020-11-27 11:08:32 +09:00
ekrctb
c272fda416
Add bindables to catch hit objects
2020-11-27 11:02:23 +09:00
smoogipoo
e53f849aa0
Completely separate combo colours from DHOs
2020-11-26 18:14:25 +09:00
ekrctb
cafe8cf7fa
Refactor border of fruits to classes
2020-11-26 15:24:32 +09:00
ekrctb
8a73b335f3
Move catch piece files
2020-11-26 15:24:32 +09:00
ekrctb
c99d34d140
Merge branch 'master' into palpable-catch-hit-object
2020-11-26 12:24:57 +09:00
ekrctb
323533d945
Add hiding Palpable HitObject property
2020-11-25 08:07:59 +09:00
ekrctb
6e55eb2090
Fix and add comments
2020-11-25 08:00:11 +09:00
ekrctb
3c3229ac4b
Remove redundant StaysOnPlate
2020-11-25 07:59:45 +09:00