ekrctb
41169fbdaf
Add [NotNull]
2021-07-19 20:20:10 +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
Dean Herbert
23ef666f34
Merge pull request #13887 from ekrctb/legacy-converted-y
...
Preserve Y position of hit objects in osu!catch
2021-07-19 18:48:23 +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
c347584851
Use added utility function
2021-07-19 13:33:46 +09:00
ekrctb
70c9d7105f
Add a function to compute hit object position in catch editor
2021-07-19 13:33:22 +09:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault()
extension
2021-07-18 21:52:16 +02:00
ekrctb
7f432665e5
Preserve Y position of hit objects in osu!catch
2021-07-14 14:38:38 +09:00
Dan Balasescu
0c52b26d23
Merge pull request #13824 from peppy/da-mod-refactor
...
Refactor `ModDifficultyAdjust` to more elegantly track user override status
2021-07-12 12:03:45 +09:00
Dean Herbert
79d546afa2
Add missing osu!catch difficulty adjust attributes
2021-07-11 10:14:42 +09:00
Bartłomiej Dach
6f89f8e572
Merge branch 'master' into da-mod-refactor
2021-07-10 11:41:54 +02:00
Bartłomiej Dach
c5011865fc
Invert strangely negated condition
2021-07-10 11:23:38 +02:00
Bartłomiej Dach
494089e402
Fix up English in comment
2021-07-10 11:22:54 +02:00
ekrctb
995ef953c6
Modify comment
2021-07-09 15:13:54 +09:00
Dean Herbert
90326f8864
Standardise variables
2021-07-09 13:24:26 +09:00
ekrctb
7e14679606
Expand the selection movement limiting code with detailed comments
2021-07-09 12:58:08 +09:00
ekrctb
c937c45360
Don't move selected objects outside the playfield in catch editor
2021-07-08 18:49:32 +09:00
Dean Herbert
88b00123f6
Use existing reflection methods to avoid manual binding of ExtendedLimits
2021-07-08 17:49:00 +09:00
Dean Herbert
bd7c334588
Avoid the need for per-settings control classes
2021-07-08 17:49:00 +09:00
Dean Herbert
a6e94dd491
Add back extended limits support
2021-07-08 17:49:00 +09:00
Dean Herbert
0e4f4a6fde
Initial storage changes
2021-07-08 14:28:13 +09:00
ekrctb
f1aa99e103
Fix catch selection blueprint not displayed after copy-pasted
2021-07-07 21:03:26 +09:00
ekrctb
7d76fcf2b6
Fix hit object placement not receiving input when outside playfield
...
The input area is vertical infinite, but horizontally restricted to the playfield due to `CatchPlayfield`'s `ReceivePositionalInputAt` override.
2021-07-07 16:18:21 +09:00
ekrctb
115376c538
Add playfield border to catch editor
2021-07-07 16:14:45 +09:00
Dean Herbert
fd46d30f29
Merge pull request #13795 from ekrctb/juice-stream-selection-1
...
Add path visualization to juice stream selection blueprint
2021-07-07 15:24:39 +09:00
ekrctb
7b21d1ecf9
Fix juice stream outline disappears away when start position is outside the screen.
2021-07-06 19:50:32 +09:00
ekrctb
2ba3003934
Add nested fruit outlines to juice stream selection blueprint
2021-07-06 17:15:51 +09:00
ekrctb
7833a1b09a
Allow FruitOutline
to be used for nested hit objects
2021-07-06 17:15:27 +09:00
ekrctb
0fa7716ced
Show path of juice stream in selection blueprint
2021-07-06 16:46:12 +09:00
ekrctb
7ef7c5148f
Add ScrollingPath
for visualization of the real path of a JuiceStream
2021-07-06 16:41:53 +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
Dean Herbert
01961fe4f9
Merge pull request #13747 from ekrctb/catcher-flip
...
Don't flip catcher plate contents when catcher changes direction
2021-07-06 00:02:23 +09:00
ekrctb
d247b8042e
Fix default skin catcher not flipping catcher plate
...
When legacy beatmap skin is present but catcher is not provided, it was using the legacy setting (always false).
2021-07-05 20:05:08 +09:00
ekrctb
83c80291d4
Don't flip catcher plate contents in legacy skin
2021-07-02 23:23:21 +09:00
ekrctb
fbba32647e
Decouple direction of catcher from its scale
2021-07-02 23:22:39 +09:00
ekrctb
170513568b
Move caught object stack vertical offset logic
2021-07-02 20:43:47 +09:00
Dean Herbert
ee6cf4396a
Merge pull request #13648 from ekrctb/dropped-object-container
...
Use DI to resolve "dropped object target" container in `Catcher`
2021-06-25 18:23:39 +09:00
ekrctb
c0c1b8d620
Fix catcher hyper-dash afterimage is not always displayed
2021-06-24 16:12:43 +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
smoogipoo
6215f2d42b
Remove unnecessary string interpolation
2021-06-23 17:40:11 +09:00
smoogipoo
7767e2e77f
Add to tooltip
2021-06-23 17:34:30 +09:00
ekrctb
ad60b9d5a0
Allow catch difficulty adjust to enable hard rock offsets
2021-06-23 14:52:41 +09:00
ekrctb
a0fd7f72ac
Use IApplicableToBeatmapProcessor in CatchModHardRock
2021-06-23 14:47:32 +09:00
Dean Herbert
f62b4f2d24
Merge pull request #13617 from ekrctb/catch-editor
...
Add "placeholder" (pre-MVP) implementation of osu!catch editor
2021-06-23 14:00:34 +09:00
ekrctb
125e143401
Fix banana shower placement outline initial opacity
2021-06-23 10:27:40 +09:00
ekrctb
5a5cb39c9f
Add some comments about logic
2021-06-23 10:27:40 +09:00
ekrctb
69c8865a04
Use more consistent method names
2021-06-23 10:19:25 +09:00
ekrctb
a9b8736f70
Order field and properties consistently
2021-06-23 10:18:44 +09:00
ekrctb
e96814bb86
Remove comment about using skin for blueprint
...
As the current game-wise direction is not using skin elements in blueprints.
The design of the blueprint could be improved somehow, though.
2021-06-23 09:37:30 +09:00
ekrctb
1a7bfafc69
Add icon for composition tools
2021-06-23 09:34:11 +09:00
Dean Herbert
4cb9c6a842
Merge pull request #13423 from frenzibyte/transformers-per-skin
...
Refactor ruleset skin transforming logic to be per-`ISkin` rather than one `ISkinSource`
2021-06-22 21:24:56 +09:00
ekrctb
21331d3a13
Disable caught object stacking in editor
2021-06-22 17:20:13 +09:00
ekrctb
e8907b53a8
Add basic banana shower placement tool
2021-06-22 17:20:13 +09:00
ekrctb
4d7a877795
Add basic fruit placement tool
2021-06-22 17:20:13 +09:00
ekrctb
0078d7dc18
Add outline to selected fruit
2021-06-22 17:20:13 +09:00
ekrctb
c28cd5dd75
Add basic juice stream selection blueprint
2021-06-22 17:20:13 +09:00
ekrctb
b8ccfe6ea7
Add basic selection blueprint movement logic
2021-06-22 17:20:13 +09:00
ekrctb
fbe44dac34
Add empty catch hit object composer
2021-06-22 17:20:13 +09:00
Dean Herbert
1b0aadcc6f
Merge branch 'master' into transformers-per-skin
2021-06-22 16:03:15 +09:00
ekrctb
b54e82eb99
Remove unused argument from CatchPlayfield
2021-06-22 15:23:50 +09:00
Dean Herbert
4b45d8318e
Merge branch 'master' into transformers-per-skin
2021-06-16 16:37:28 +09:00
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
Salman Ahmed
fbb856d84b
Call base
when overriding lookup methods
...
Rather than arbitrarily accessing `Skin` here and there.
2021-06-11 12:44:44 +03:00
ekrctb
7f7c2c73e0
Move catcher movement logic of Catcher
to CatcherArea
2021-06-11 15:39:06 +09:00
Salman Ahmed
26cdcc8d78
Remove stale access to Source
from master merge
2021-06-10 13:07:32 +03:00
Dan Balasescu
35d5632355
Merge pull request #13378 from Syriiin/diffcalc/refactor/auto-properties
...
Refactor DifficultyAttributes to use auto properties over public fields
2021-06-10 18:42:11 +09:00
Salman Ahmed
dde84e5cbd
Merge branch 'master' into transformers-per-skin
2021-06-10 11:58:52 +03:00
Dan Balasescu
a44fd887ee
Merge branch 'master' into no-unranked-display
2021-06-10 17:09:46 +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
Dean Herbert
865c5c0676
Use [Resolved]
to simplify bindable resolution
2021-06-10 15:47:03 +09:00
Dean Herbert
6995945360
Use With
to simplify drawable construction
2021-06-10 15:45:49 +09:00
Salman Ahmed
cf40282f1f
Convert LegacySkinTransformer
s to accept raw ISkin
s rather than a full ISkinSource
2021-06-09 22:49:31 +03:00
ekrctb
e5deecf459
Check skin version for legacy catcher sprite
2021-06-09 15:47:23 +09:00
Dean Herbert
85abee5fc7
Remove difficulty calculator exceptions
...
I don't think there's any reason difficulty calculators shouldn't be
able to calculate for autoplays.
2021-06-09 14:33:35 +09:00
Dean Herbert
d0e9f8ef90
Replace and obsolete Ranked
flag with IsUserPlayable
2021-06-09 14:17:03 +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
109a366722
Use separate classes for old and new catcher legacy skin element
...
- Fix catcher texture animation is reset for legacy old catcher skin
2021-06-08 21:59:09 +09:00
ekrctb
0192549d6c
Refactor catcher sprite to use skinned piece pattern
2021-06-08 21:29:41 +09:00
Samuel Cattini-Schultz
f1bef989b7
Refactor DifficultyAttributes to use auto properties over public fields
2021-06-08 19:43:59 +10: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
Dean Herbert
e388a896e8
Don't apply visibility increase to first object in osu!catch
...
The goal of the visibility increase is to help in cases where timing is
an issue (by showing the approach circle etc.). This doesn't need to
apply to catch.
@smoogipoo interested as to whether you agree with this one. Visually it
looks better to me but it does change the behaviour for only osu!catch,
so I'm not 100% confident on it.
Closes #13367 .
2021-06-08 16:02:26 +09:00
Bartłomiej Dach
122a624b7f
Remove bogus CatchHitWindows
...
`CatchHitWindows` were a vestige from the past, and were not actually
used anywhere except for the hit error meter test, giving off an
appearance that the hit error meter was working properly.
`CatchHitObject` actually specifies empty hit windows.
2021-06-07 13:16:07 +02:00
Dean Herbert
1b93234c76
Merge branch 'master' into fruit-representation
2021-06-07 16:05:00 +09:00
ekrctb
bb02c35f2d
Move all osu!catch legacy skin piece files to the correct location
2021-06-07 15:10:47 +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
Dean Herbert
d26c9a66c2
Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup
2021-06-07 12:01:19 +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
Dan Balasescu
15b43beef1
Merge pull request #11857 from Syriiin/diffcalc/refactor/catch-clockrate-effects
...
Refactor catch Movement skill to not require explicit clockrate usage
2021-06-03 17:29:27 +09:00
Samuel Cattini-Schultz
f51413ead9
Refactor to pass clockrate in constructor rather than deriving from mods
2021-06-03 16:09:42 +10:00
Samuel Cattini-Schultz
7cdef5cb0a
Merge branch 'master' into diffcalc/refactor/catch-clockrate-effects
2021-06-03 15:51:03 +10:00
Samuel Cattini-Schultz
94701b77cb
Add TODO for variable clockrate support in catch difficulty calculator
2021-06-03 15:44:28 +10:00
Dean Herbert
14570b6fb1
Merge branch 'master' into autoplay-pause-support
2021-06-01 14:19:21 +09:00
Dean Herbert
00b3eea840
Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup
2021-05-31 21:39:04 +09:00
Dean Herbert
de0e51a81d
Merge branch 'master' into fix-skin-sample-lookup
2021-05-31 15:27:39 +09:00
Salman Ahmed
4e186b0cf5
ContentVisible
-> HiddenByRulesetImplementation
2021-05-31 09:24:26 +03:00
Salman Ahmed
60b781701f
Rewrite catch combo counter hide logic
2021-05-30 14:22:11 +03:00
Salman Ahmed
fb81e5133f
Merge branch 'master' into catch-hide-combo-workaround
2021-05-30 14:16:46 +03:00
Dean Herbert
50d71faf56
Restructure lookup code to avoid repeating the base call
2021-05-30 17:55:10 +09:00
Dean Herbert
dac1a98d8a
Merge branch 'master' into fix-skin-sample-lookup
2021-05-30 15:19:47 +09:00
Salman Ahmed
fbc316ea1d
Fix legacy skin transformers potentially ignoring source implementations
2021-05-29 21:23:22 +03:00
Susko3
2439de1c3d
fix capitalzation of osu!catch HitResults
2021-05-28 18:40:58 +02:00
Dean Herbert
70a844ac10
Remove allowFallback
parameters completely
2021-05-27 14:50:42 +09:00
Dean Herbert
a3c78674a1
Add new interface for autoplay mods
2021-05-25 18:09:24 +09:00
Salman Ahmed
a4d52a7f52
Use switch—case instead
2021-05-19 23:37:22 +03:00
Salman Ahmed
c98d036b48
Merge branch 'master' into catch-hide-combo-workaround
2021-05-18 17:47:20 +03:00
Salman Ahmed
ff419af512
Hide the combo counter content rather than full death
2021-05-18 09:10:15 +03:00
Salman Ahmed
df248ea41b
Improve code readability
2021-05-17 11:41:53 +03:00
Salman Ahmed
102842bcf1
Expire legacy combo counters on catch ruleset
2021-05-15 16:55:15 +03:00
PercyDan54
166974506e
Duplicate implementions
2021-05-15 11:55:50 +08:00
PercyDan54
67dfeeb1b7
Cleanup code in ModHidden
2021-05-14 21:29:13 +08:00
Dean Herbert
004798d61d
Update Legacy components to not require skin in ctor
2021-05-11 18:39:14 +09:00
ekrctb
207f7f1e56
Rename FramedAutoGenerator<T> -> AutoGenerator<T>
2021-05-07 00:31:12 +09:00
ekrctb
cf39178099
Use FramedAutoGenerator in Taiko, Catch, Mania
...
OsuAutoGenerator is not included in this change because it uses SortedList-like thing
2021-05-06 22:57:07 +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
0ccdfeea57
Fix code quality issues
2021-04-24 14:35:49 +09:00
Dean Herbert
d4ffd2ef4b
Merge branch 'master' into reversed-fruits
2021-04-23 15:08:18 +09:00
Dean Herbert
bc0e1d8c37
Remove dead newline
2021-04-23 15:06:39 +09:00
smoogipoo
d4d78f7434
Merge branch 'master' into legacy-scores-classic-mod
2021-04-22 18:44:20 +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
Salman Ahmed
e3398d8f1f
Implement "classic" mod for all other legacy rulesets
...
Currently empty, automatically handled in game to not be selectable (see `Mod.HasImplementation`)
2021-04-21 09:14:33 +03: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
Fabian
eec77b0527
replace icon
2021-04-17 23:55:39 +02:00
Fabian
5d274dbce8
replace IApplicableToPlayer with IApplicableToDrawableRuleset
2021-04-17 16:38:28 +02:00
Fabian
cf3aaff7bd
Add floating fruits mod
2021-04-17 16:01:23 +02:00
ekrctb
a965e8a75d
Remove AutoGenerator workaround of now-fixed issue
2021-04-16 14:13:41 +09:00
ekrctb
91c7d8d26c
Introduce StartFrame
and EndFrame
to simplify the replay interpolation code
2021-04-16 14:13:41 +09:00
ekrctb
84bc81a6de
Make FramedReplayInputHandler.CurrentTime non-null
2021-04-16 14:13:41 +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
Samuel Cattini-Schultz
85d2b1232a
Refactor to abstract out strain logic into StrainSkill class
...
While it is the case for the existing official Skills, Skill implementations shouldn't be required to conform to a strain based approach.
There are other valid approaches to calculating skill difficulty that can be supported by abstracting the strain logic into its own StrainSkill class.
2021-04-03 20:52:39 +11:00