ekrctb
a204ef39dd
Prevent catcher trail generation while rewinding
2021-07-29 17:32:38 +09:00
ekrctb
81f23e1111
Manage catcher trails by lifetime entries
2021-07-29 17:12:01 +09:00
Henry Lin
e89f33483d
Code formatting fixes
2021-07-28 21:52:01 +08:00
Henry Lin
22d83c75e3
Revert imports re-ordering
...
Out of the scope of this PR
2021-07-28 18:32:38 +08:00
Henry Lin
58bbe9db7e
Added muted mod
2021-07-28 18:21:08 +08:00
ekrctb
90f3611ed0
Replace "sprite" variable names in CatcherTrailDisplay
...
The `CatcherTrail` was originally named `CatcherTrailSprite`, but it is not a sprite anymore.
2021-07-28 19:11:22 +09:00
ekrctb
a960a28d06
Replace "end glow" terminology with "hyper-dash after-image"
...
Because the is "end glow" is when a hyper-dash is *started*, the name was confusing.
The "after-image" was already used in the code as a synonym of "end glow" inconsistently.
2021-07-28 19:11:22 +09:00
Dean Herbert
2b107d624a
Merge pull request #14024 from ekrctb/trail-generation
...
Move catcher trail generation logic to `CatcherArea` to remove mutual dependency of `Catcher` and `CatcherTrailDisplay`
2021-07-28 19:06:44 +09:00
ekrctb
0bf04ece34
Avoid internal
property by using ChildrenOfType
2021-07-28 18:13:43 +09:00
ekrctb
846f539428
Avoid usage of LINQ in last dash trail computation
2021-07-27 19:11:08 +09:00
ekrctb
da69867fd4
Move catcher trail generation logic to CatcherArea
2021-07-27 19:07:37 +09:00
ekrctb
de68fd12b3
Move catcher trail colouring logic to CatcherTrailDisplay
2021-07-27 19:07:37 +09:00
ekrctb
8045534fa5
Remove outdated comment and simplify code
2021-07-26 18:18:24 +09:00
ekrctb
4282442278
Make Catcher.body
private as it is no longer needed by CatcherTrailDisplay
2021-07-26 17:58:34 +09:00
ekrctb
c08130398c
Add some comments
2021-07-26 17:58:34 +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
Dean Herbert
50a2abbe7f
Merge pull request #12683 from frenzibyte/legacy-beatmap-combo-offset
...
Apply combo offsets "colour hax" only on beatmap skins
2021-07-23 14:30:18 +09:00
Dean Herbert
a7d6c682de
Merge pull request #13983 from ekrctb/juice-stream-placement
...
Add initial implementation of juice stream placement
2021-07-23 13:52:25 +09:00
ekrctb
bd3386e770
Fix previously placed vertices in juice stream placement
...
A different UX than not fixing vertices.
2021-07-23 10:18:37 +09:00
ekrctb
4509c8bcfb
Use the more consistent lastVertex
, with a comment
2021-07-23 10:13:55 +09:00
ekrctb
d49d303bae
Call GetContainingInputManager
at LoadComplete
2021-07-23 10:10:55 +09:00
Salman Ahmed
523c154f15
Add ComboIndexWithOffsetsBindable
and bind similar to ComboIndexBindable
2021-07-22 16:40:33 +03:00
ekrctb
9fff304554
Implement reversing of selected pattern in catch editor
2021-07-22 17:00:08 +09:00
ekrctb
dc90e4d24c
EditorBeatmap.SelectedHitObjects
-> SelectedItems
(same thing)
2021-07-22 16:52:47 +09:00
ekrctb
64102d2972
Add initial implementation of juice stream placement
2021-07-22 15:47:23 +09:00
ekrctb
2beef89c23
Add empty juice stream placement blueprint (no implementation)
2021-07-22 15:47:23 +09:00
Dean Herbert
e8aaf4df16
Merge pull request #13961 from ekrctb/catch-editor-flip
...
Implement horizontal flipping of hit objects in catch editor
2021-07-22 15:27:59 +09:00
Dean Herbert
1d2fdd9841
Merge pull request #13937 from ekrctb/selection-editable-path
...
Add initial implementation of juice stream path editing
2021-07-22 14:48:02 +09:00
Dean Herbert
2151c1863e
Rename variables for catch-specific casting to avoid any confusion
2021-07-22 14:07:32 +09:00
ekrctb
19657cd00e
Guard against empty range in PositionRange
2021-07-22 13:29:32 +09:00
ekrctb
7b6981c632
Don't show the flip button when flipping is a no-op
2021-07-22 13:29:32 +09:00
ekrctb
d93bf5be80
Don't handle mouse down at fixed vertices
2021-07-22 12:58:39 +09:00
Dean Herbert
73866c2837
Merge branch 'master' into catch-editor-flip
2021-07-21 19:54:39 +09:00
Dean Herbert
399c3b0be8
Rename property, reword xmldoc and improve readability of update code
2021-07-21 17:32:56 +09:00
ekrctb
179ba3c9a8
Merge branch 'master' into catcher-area-catcher
...
# Conflicts:
# osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs
2021-07-21 16:45:28 +09:00
ekrctb
d9f9ad35be
Move catcher base size constant to Catcher
.
2021-07-21 16:43:24 +09:00
ekrctb
30777795ce
Add some doc comment to CatcherArea
2021-07-21 16:40:35 +09:00
ekrctb
94678064ff
Rename CatcherArea.MovableCatcher
to Catcher
2021-07-21 16:28:31 +09:00
ekrctb
d2d3214d47
Implement horizontal flipping of hit objects in catch editor
2021-07-21 16:07:02 +09:00
ekrctb
4c8b9c168e
Use added position range computation in hit object move handling
2021-07-21 16:06:34 +09:00
ekrctb
60f876511d
Add function of computing position range occupied by hit objects
2021-07-21 16:06:34 +09:00
ekrctb
cd447f0305
Add some doc comment to JuiceStreamSelectionBlueprint
2021-07-21 13:27:07 +09:00
ekrctb
cc0110aa52
Add doc comment to VertexState
2021-07-21 13:17:18 +09:00
ekrctb
97fba5df58
Use existing method for the same code
2021-07-21 12:59:42 +09:00
ekrctb
ca3dfb2498
Fix comment
2021-07-21 12:53:48 +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
ekrctb
8586458704
Implement vertex deletion in juice stream selection blueprint
2021-07-19 22:53:32 +09:00
ekrctb
08f8d4e65e
Implement vertex addition in juice stream selection blueprint
2021-07-19 22:53:32 +09:00
ekrctb
8cc1630655
Add initial juice stream editing
2021-07-19 22:53:32 +09: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
ekrctb
81d0a9bd9c
Fix item ordering
2021-07-19 21:05:36 +09:00
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