Dean Herbert
6268bbea85
Merge branch 'master' into fix-skin-sample-lookup
2021-05-28 14:47:35 +09:00
Dean Herbert
70a844ac10
Remove allowFallback
parameters completely
2021-05-27 14:50:42 +09:00
Endrik Tombak
9ac4ef273e
Make DrawableSliderTail not require ITrackSnaking
2021-05-26 23:21:05 +03:00
Pasi4K5
d5de5ae640
Add comments explaining the usage of shiftNestedObjects()
2021-05-26 20:50:31 +02:00
Dean Herbert
a08a4aa911
Move second call to shiftNestedObjects
to a more understandable location
2021-05-26 16:48:16 +09:00
Dean Herbert
d6c4be207b
Simplify naming
2021-05-26 16:44:44 +09:00
Dean Herbert
ad3e4287cd
Move distanceToPrev
inside randomisation function
2021-05-26 16:44:05 +09:00
Dean Herbert
6ca9b37c28
Make random generator a field to avoid passing around internally
2021-05-26 16:42:20 +09:00
Dean Herbert
6181b1ac92
Simplify previous object handling by using a class instead of struct
2021-05-26 16:42:20 +09:00
Dean Herbert
c5ff052096
Change internal
to public
2021-05-26 16:31:25 +09:00
Pasi4K5
c85d5513be
Remove redundant parameter and unused setters
2021-05-25 21:42:26 +02:00
Pasi4K5
bdbd64c88d
Fix sliders being partly outside of the playfield in some cases
2021-05-25 21:32:18 +02:00
Dean Herbert
a3c78674a1
Add new interface for autoplay mods
2021-05-25 18:09:24 +09:00
Pasi4K5
098d8c2131
Add complete randomisation for first hit object and hit objects after spinners
2021-05-24 15:13:31 +02:00
smoogipoo
3db995c778
Fix sliders jumping around the screen on movement
2021-05-24 17:15:57 +09:00
Dean Herbert
8336428574
Add regression test for spinner sample actually transforming its frequency
2021-05-24 15:10:33 +09:00
Dean Herbert
53b5341bb9
Simplify application logic
2021-05-24 14:34:27 +09:00
Dean Herbert
a92ded8a2f
Apply renaming and general code clean-up
2021-05-24 14:28:07 +09:00
Dean Herbert
88d7bc195d
Split out and clean up playfield sizing references
2021-05-24 14:27:56 +09:00
Dean Herbert
8dd3f11d28
Tidy up struct and previous object handling
2021-05-24 14:19:10 +09:00
Henry Lin
15e7cce264
Added seed setting, fixed mod ignoring IncreaseFirstObjectVisibility
2021-05-22 14:14:41 +08:00
Dean Herbert
bb2fae55ce
Merge branch 'master' into refactor-selection-rotate-logic
2021-05-21 19:19:54 +09:00
Dean Herbert
df5970fab4
Create base implementations of the two most common TernaryStateMenuItem
s
2021-05-20 19:34:53 +09:00
Dean Herbert
27e81d6504
Implement proper rotation algorithm for skin editor
2021-05-20 18:21:16 +09:00
Henry Lin
d20b5c2d5a
Refactored ApplyToBeatmap
2021-05-20 11:57:13 +08:00
Henry Lin
fe099be443
Implemented osu target mod
2021-05-19 22:25:56 +08:00
Dean Herbert
a0f67ef3bc
Move scaling logic out of OsuSelectionHandler
for reuse
2021-05-19 17:37:28 +09:00
Dean Herbert
d661e98fa6
Move common functionality out of OsuSelectionHandler
and implement flip support
2021-05-18 18:34:06 +09:00
Dean Herbert
a96603f025
Merge pull request #12782 from smoogipoo/rework-hitobject-blueprints
...
Rename hitobject blueprints and tie them to HitObjects
2021-05-18 16:30:58 +09:00
smoogipoo
532c41c82e
Remove nested blueprints from sliders
2021-05-18 14:19:11 +09:00
smoogipoo
e621cfc4ea
Add Apply() method for applying new DHOs
2021-05-18 14:14:10 +09:00
smoogipoo
0989aa3364
Fix accuracy heatmap points changing colour
2021-05-17 18:07:50 +09:00
Dean Herbert
a32f1ef35a
Merge pull request #12811 from PercyDan54/hidden-code-cleanup
...
Remove obsolete methods in `ModHidden` and apply few touches
2021-05-16 22:07:45 +09:00
Henry Lin
a91f2d3dba
Change "judgment" to "judgement"
2021-05-16 10:17:04 +08:00
Dean Herbert
bdcb1a624e
Merge pull request #12759 from Naxesss/beatmap-verifier-context
...
Encapsulate check arguments in context object
2021-05-15 15:39:12 +09:00
PercyDan54
63ac430386
Rename startTime in parameters
2021-05-15 11:26:16 +08:00
Pasi4K5
878182fbdf
Fix slider ticks not being shifted along with their parent sliders
2021-05-15 02:07:24 +02:00
Pasi4K5
3fa6a0413b
Add slider position randomisation
2021-05-14 23:04:09 +02:00
PercyDan54
a4c1b9a1a7
Rename startTime to fadeStartTime
2021-05-14 21:56:13 +08:00
PercyDan54
a86a4bab91
Remove empty override
2021-05-14 21:55:32 +08:00
PercyDan54
393ac4fdd1
Destruct declaration
2021-05-14 21:30:58 +08:00
PercyDan54
67dfeeb1b7
Cleanup code in ModHidden
2021-05-14 21:29:13 +08:00
Dean Herbert
dbc2318710
Initial tidying up
2021-05-14 14:13:35 +09:00
Pasi4K5
ac04e8afa2
Change name of option "Custom seed" to "Seed" and set its value to the generated seed
2021-05-14 01:50:11 +02:00
Pasi4K5
a9d5211e81
Remove seed from the ScorePanel and "Paste" button
2021-05-14 01:42:39 +02:00
smoogipoo
ffb6135a1b
Rework hitobject blueprints to take in hitobject models
2021-05-13 19:53:32 +09:00
Naxess
19800f5f7f
Move IBeatmap
arg into context
2021-05-13 11:24:22 +02:00
Pasi4K5
946abfbb83
Rework settings; Add seed to ScorePanel; Apply requested changes from @bdach
2021-05-12 18:11:50 +02:00
Naxess
b7bc42e0d3
Rename "playableBeatmap" check arg to "beatmap"
...
The working beatmap is now in the context, so it's easier to distinguish beatmap type, hence no need for this prefix.
2021-05-12 02:34:16 +02:00
Naxess
c13b93e6f1
Replace IWorkingBeatmap
arg with BeatmapVerifierContext
in checks
...
This simplifies passing of contextual information by enabling addition without needing to refactor lots of classes.
See next commit for example.
2021-05-12 02:29:18 +02:00
Dean Herbert
004798d61d
Update Legacy components to not require skin in ctor
2021-05-11 18:39:14 +09:00
Dean Herbert
01d732bb65
Revert "Refactor SliderSelectionBlueprint
to not reference blueprint pieces for input handling"
...
This reverts commit 54fe10c82a
.
2021-05-08 23:33:03 +09:00
Dean Herbert
63e267a3be
Revert "Trim redundant this
qualifier"
...
This reverts commit df630d9428
.
2021-05-08 23:32:52 +09:00
Bartłomiej Dach
df630d9428
Trim redundant this
qualifier
2021-05-08 14:53:19 +02:00
Dean Herbert
54fe10c82a
Refactor SliderSelectionBlueprint
to not reference blueprint pieces for input handling
2021-05-07 10:36:03 +09:00
Dean Herbert
39067e6926
Fix slider input handling potentially being offset after composer area resize
...
Closes https://github.com/ppy/osu/issues/12671 .
2021-05-06 17:19:19 +09:00
Salman Ahmed
cc24d8a6bd
Remove unused using directive
...
I literally noticed it after I pushed, god damn it.
2021-05-05 14:27:38 +03:00
Salman Ahmed
6fb9eb8b33
Move legacy beatmap combo offset to osu! processor
...
Better suited there, I intiailly wanted the whole legacy interface to reside in `osu.Game.Rulesets.Osu` but it's required in `ConvertHitObjectParser` and that's in the main game project, so had to leave the interface as-is for now.
2021-05-05 14:24:14 +03:00
Dean Herbert
1410b8f36d
Fix follow points displaying at incorrect locations when dragging a slider out-of-bounds
2021-05-05 18:30:57 +09:00
Salman Ahmed
cd6d070b4a
Consider "combo offsets" as legacy logic and separate from combo information
2021-05-05 07:43:08 +03:00
Pasi4K5
6bed268bd8
Enhance mod settings and add option "Random seed"
...
+ slight adjustments
2021-05-01 04:01:43 +02:00
Pasi4K5
d90708d646
Merge branch 'master' into mod-osu-random
2021-05-01 02:45:32 +02:00
Bartłomiej Dach
9cb55ca245
Merge branch 'master' into barrel-roll
2021-04-30 22:27:27 +02:00
Andrei Zavatski
7bf3498e2a
Calculate playfield scale locally
2021-04-30 02:49:19 +03:00
Andrei Zavatski
25e0fb1cf9
Refactor OsuModBarrelRoll to allow it's usage by other rulesets
2021-04-30 01:59:59 +03:00
Dean Herbert
9c62c90cfc
Refactor SelectionBlueprint
and MoveSelectionEvent
to work in screen-space coordinates
...
Until now, the implementation of the overrides in `SelectionBlueprint`
have been confusing to the point where I would just implement by
trial-and-error (or copying from an existing implementation). This was
due to a combination of using "object" space coordinates
(ie. the thing the `Blueprint` is operating on) and screen-space coordinates.
This change switches all event related coordinates to screen-space,
which is how we already handle rotation/scale operations. With the
introduction of other editor types where the related objects are
drawables, this also makes a lot more sense.
2021-04-29 16:10:42 +09:00
Pasi4K5
95040f7edc
Change initial seed to a random number
2021-04-27 22:19:04 +02:00
Pasi4K5
a141a4e9e6
Add setting "Seed"
...
Random numbers are now generated with the seed specified in the mod settings.
2021-04-27 20:44:36 +02:00
Pasi4K5
4b05568d2d
Revert "Fix bug causing the star rating to change when Random is enabled"
...
This reverts commit 1dfe028c02
.
2021-04-27 19:39:58 +02:00
Dean Herbert
f586bc46e6
Avoid using EditorBeatmap.SelectedHitObjects
2021-04-27 19:01:29 +09:00
Dean Herbert
f2e56bd306
Refactor editor selection/blueprint components to be generic
2021-04-27 19:01:29 +09:00
Dean Herbert
ec1c336b0a
Fix a couple of inspections
2021-04-27 13:23:14 +09:00
Pasi4K5
1dfe028c02
Fix bug causing the star rating to change when Random is enabled
2021-04-26 22:26:13 +02:00
Pasi4K5
19fc224348
Revert "Make OsuAutoGenerator spin the cursor around the position of the spinner instead of a set value"
...
This reverts commit 817bb5213c
.
2021-04-26 11:52:46 +02:00
smoogipoo
1e0ee3cd61
Merge branch 'master' into fix-editor-slider-repeat-animation
2021-04-26 16:45:04 +09:00
Dan Balasescu
0727728771
Merge pull request #12579 from peppy/rename-edit-classes
...
Rename "EditRuleset" and "EditPlayfield" to use full "Editor" keyword
2021-04-26 16:44:35 +09:00
smoogipoo
0d0b4ea78a
Rewrite comment to hopefully be more readable
2021-04-26 15:47:37 +09:00
smoogipoo
f70e45b199
Prevent adding null enumerable
2021-04-26 15:35:08 +09:00
Dean Herbert
d10aac851d
Extract scale constant
2021-04-26 15:30:22 +09:00
Dean Herbert
8795c5f082
Update osu! editor transform logic to allow adjustments to DrawableSliderRepeat
and DrawableSliderTail
2021-04-26 15:27:10 +09:00
Dean Herbert
4da964c3f3
Expose DrawableSliderRepeat
's arrow and move transforms to children
2021-04-26 15:22:42 +09:00
Dean Herbert
aa7ade8186
Expose presence of MainCirclePiece
via an interface
2021-04-26 15:22:17 +09:00
smoogipoo
6182181ea1
Fix simultaneous slider input not allowing both keys
2021-04-26 15:20:29 +09:00
Dean Herbert
4898471d68
Merge branch 'master' into fix-editor-slider-repeat-animation
2021-04-26 14:43:22 +09:00
Dean Herbert
e8d83f2f99
Rename "EditRuleset" and "EditPlayfield" to use full "Editor" keyword
2021-04-26 14:33:30 +09:00
Salman Ahmed
0b9172a1dc
Animate back slider repeat and tail circle pieces
2021-04-26 02:39:49 +03:00
Pasi4K5
6e85c4e069
Change randomisation process to keep distances between objects
...
Remove now unnecessary settings;
Remove spinners;
Sliders are not implemented yet
2021-04-25 23:57:01 +02:00
Pasi4K5
08821da954
Change mod description
2021-04-25 01:43:32 +02:00
Pasi4K5
f33f1b2bed
Remove class "ModRandomOsu" and adjust code
...
Add documentation comment for OsuModRandom
2021-04-25 01:34:39 +02:00
Pasi4K5
92f765b958
Change ModType from Fun to Conversion
2021-04-25 01:19:06 +02:00
Pasi4K5
817bb5213c
Make OsuAutoGenerator spin the cursor around the position of the spinner instead of a set value
...
This is to make Autoplay work with randomised spinner positions
2021-04-25 00:46:35 +02:00
Pasi4K5
961bd1177c
Add mod "Random" for ruleset "osu!"
2021-04-25 00:39:36 +02:00
Dan Balasescu
50f37ef09c
Merge pull request #12519 from peppy/editor-hit-animation-toggle
...
Add editor hit animation toggle
2021-04-22 20:49:21 +09:00
smoogipoo
d4d78f7434
Merge branch 'master' into legacy-scores-classic-mod
2021-04-22 18:44:20 +09:00
Dean Herbert
0f70469d1c
Only apply custom editor overrides if hit animations is disabled
2021-04-21 19:44:17 +09:00
Dean Herbert
f2824a222a
Adjust existing fades to close match stable editor
2021-04-21 19:41:15 +09:00
Dean Herbert
47a4a07024
Split out animation triggering of MainCirclePiece
to be interface driven
2021-04-21 19:15:10 +09:00
Salman Ahmed
e90d791754
Add base "classic" mod
2021-04-21 09:14:19 +03:00
Dean Herbert
6164902eba
Merge pull request #12510 from smoogipoo/fix-wiggle-slider-tails
...
Fix slider tails wiggling independently
2021-04-21 11:30:13 +09:00
smoogipoo
e454037d82
Add to comment
2021-04-21 10:32:13 +09:00
Dan Balasescu
397df41570
Merge pull request #12507 from peppy/fix-cursor-position-rotated
...
Fix click-to-resume cursor location being incorrect when playfield is transformed
2021-04-21 10:29:35 +09:00
smoogipoo
9d423201ed
Fix slider tails wiggling independently
2021-04-21 10:29:18 +09:00
Dean Herbert
4910d8f56c
Fix click-to-resume cursor location being incorrect when playfield is transformed
...
Closes #12501 .
2021-04-21 00:12:49 +09:00
Dean Herbert
26430e3cb5
Merge pull request #12492 from Naxesss/bg-audio-quality-checks
...
Add background and audio checks
2021-04-21 00:10:32 +09:00
Dan Balasescu
86772869da
Merge pull request #12498 from peppy/barrel-roll-faster-spin
...
Allow faster roll speed selection in "Barrel Roll" mod
2021-04-20 20:39:45 +09:00
Dean Herbert
ac0ed72d04
Keep hitcircles aligned with view in "Barrel Roll" mod
2021-04-20 18:36:11 +09:00
Dean Herbert
f11b068dee
Allow faster roll speed selection in "Barrel Roll" mod
2021-04-20 18:22:58 +09:00
Naxess
0e6b66f457
Merge branch 'master' into bg-audio-quality-checks
2021-04-20 02:36:13 +02:00
Naxess
8656176ab8
Add the playable beatmap as check argument
...
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.
So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.
This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
Dean Herbert
510e54ff54
Update framework
2021-04-19 23:41:21 +09:00
Naxess
56bf49c85c
Take IWorkingBeatmap
instead of WorkingBeatmap
...
This makes testing much easier, and allows for checking of any class deriving from that interface, including `WorkingBeatmap`.
2021-04-18 01:21:20 +02:00
Naxess
448574e7e6
Use WorkingBeatmap
instead of IBeatmap
...
This lets us access things like the background, track, etc. which are necessary for quality and filesize checks.
Also improves the structure of the `CheckBackgroundTest` class in the process.
2021-04-17 17:33:53 +02:00
Salman Ahmed
c1082ddb9a
Add space before the unit
...
Co-authored-by: Joseph Madamba <madamba.joehu@outlook.com>
2021-04-17 06:28:07 +03:00
Salman Ahmed
892a8a7cd2
Remove unnecessary comma
2021-04-17 04:23:48 +03:00
Salman Ahmed
78c8508784
Remove unused using directive
...
gotta git gud
2021-04-17 03:52:08 +03:00
Salman Ahmed
d5a1e00feb
Improve "barrel roll" mod settings description
2021-04-17 03:32:47 +03:00
Dean Herbert
f824105075
Merge branch 'master' into fix-slider-zero-length
2021-04-16 18:47:22 +09:00
Dan Balasescu
7648d6f7fb
Merge pull request #12443 from peppy/fix-slider-scale-crash
...
Fix div-by-zero when scaling a 1-dimensional slider
2021-04-16 17:31:42 +09:00
Dan Balasescu
5ad2d0e759
Merge pull request #12439 from ekrctb/further-refactor-framed-replay
...
Further refactor FrameReplayInputHandler, simplify the template code
2021-04-16 17:16:09 +09:00
Dean Herbert
401bf368a7
Merge branch 'fix-slider-scale-crash' into fix-slider-zero-length
2021-04-16 16:58:19 +09:00
Dean Herbert
8de68e0ebf
Fix div-by-zero when scaling a 1-dimensional slider
2021-04-16 16:55:26 +09:00
Dean Herbert
ff408b852e
Handle scaling a slider below minimum length
2021-04-16 15:45:24 +09:00
Dean Herbert
89373638be
Handle control point deletion when the resulting slider would be too short to be useful
2021-04-16 15:45:24 +09:00
Dean Herbert
2949a6bbdc
Handle control point drag revert
2021-04-16 15:45:24 +09:00
Dean Herbert
d38e294d96
Centralise length validation function
2021-04-16 15:45:24 +09:00
Dean Herbert
965a1ead36
Disallow zero-length slider blueprint placements
2021-04-16 14:38:30 +09: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
Dean Herbert
5c0ef55691
Rename SliderPlacementState
to make way for more generic version
2021-04-16 14:09:35 +09:00
Dan Balasescu
587973be25
Merge pull request #12405 from frenzibyte/top-left-cursor
...
Add support for legacy skin's `CursorCentre` setting
2021-04-16 00:30:53 +09:00
smoogipoo
34859a4760
Invalidate drawnode on change
2021-04-15 23:37:05 +09:00
Dan Balasescu
3374895e40
Merge branch 'master' into mod-barrel-roll
2021-04-15 22:15:26 +09:00
smoogipoo
1a987dfbc0
Fix gameplay cursor showing offscreen
2021-04-15 21:16:38 +09:00
Dean Herbert
698a9d3fed
Add rotation direction setting
2021-04-15 14:40:03 +09:00
Dean Herbert
23eb1c655c
Add missing description
2021-04-15 14:37:47 +09:00
Dean Herbert
7469849e7c
Merge branch 'abstract-mod-description' into mod-barrel-roll
2021-04-15 14:37:17 +09:00
Dean Herbert
346e36d32a
Make Mod.Description
abstract and add missing descriptions
2021-04-15 14:36:26 +09:00
Dean Herbert
0d32290cd5
Show roll speed in rotations-per-minute
2021-04-15 13:15:52 +09:00
Dean Herbert
362a5a39d0
Scale the playfield to avoid off-screen objects
2021-04-15 13:15:42 +09:00
Dean Herbert
a209415942
Add "Barrel Roll" mod
2021-04-14 16:52:29 +09:00
Salman Ahmed
367dafab56
Apply CursorCentre
to old-style legacy cursor trail
2021-04-14 08:20:18 +03:00
Salman Ahmed
ad53ababe8
Fix wrong default
...
Ah, soz
2021-04-14 08:16:46 +03:00
Salman Ahmed
bf5ed12b75
Add support for legacy skin CursorCentre
setting
2021-04-14 06:33:54 +03:00
Dean Herbert
1ff4e2076f
Merge branch 'master' into verify-tab
2021-04-13 23:05:48 +09:00
Dean Herbert
03ba04e8ce
Split out general checks into its own verifier class (and remove static
usage)
2021-04-13 19:50:22 +09:00
Naxess
304fe5cd34
Add CheckBackground
to OsuBeatmapVerifier
2021-04-13 10:41:02 +02:00
Naxess
60c2494b31
Make BeatmapVerifier
an interface
2021-04-13 10:40:56 +02:00
Naxess
c8cb4286f6
Add reference for screen bounding box numbers
2021-04-13 10:35:06 +02:00
Dean Herbert
fbc6fb8fc5
Split out common logic into private method and add inline comment for future visitors
2021-04-13 15:35:57 +09:00
Naxess
6d3f9fa9ce
Use is
class instead of Equals
with template index
...
Ensures ordering of `PossibleTemplates` does not affect tests.
2021-04-13 02:29:25 +02:00
Naxess
d9e3276d0e
Don't update path type once immediately
2021-04-12 19:18:22 +02:00
Naxess
19a154ddf1
Rename checkOrigin
-> check
...
More consistent with `Issue.ctor`'s "template".
2021-04-12 17:28:12 +02:00
Naxess
bb720c23a0
Remove check ctors and locals
2021-04-12 17:12:37 +02:00
Dean Herbert
62c1812282
Remove redundant parameter naming
2021-04-12 23:37:47 +09:00
Dean Herbert
36bd235021
Move nested classes to bottom of file
2021-04-12 23:36:10 +09:00
Naxess
7c4f6d2b62
Rework template usage
...
Includes moving the origin check back to templates, constructing nested template classes in each check, and making parameterized template usage.
2021-04-12 15:47:26 +02:00
Naxess
a2fc9c398f
Rename CreateChecker
-> CreateBeatmapVerifier
2021-04-12 10:08:30 +02:00
Naxess
65ebdd8f7a
Move check origin from IssueTemplate
to Issue
...
As a result we can also make check an interface, and need to provide the check itself when constructing an issue.
2021-04-12 10:08:08 +02:00
Dean Herbert
8bf85d737c
Change Metadata into a get property
2021-04-12 15:52:29 +09:00
Dean Herbert
8c31e96cdf
Change some methods to get properties
2021-04-12 15:52:18 +09:00
Dean Herbert
f78239c7f2
Move enums out of nesting
2021-04-12 15:52:18 +09:00
Dean Herbert
1c553b5d48
Checker -> BeatmapVerifier
2021-04-12 15:29:05 +09:00
Dean Herbert
14bd5bdc77
Merge branch 'master' into verify-tab
2021-04-12 15:14:37 +09:00
Dean Herbert
e2470d757e
Merge branch 'master' into legacy-spm-counter
2021-04-12 12:52:52 +09:00
Joseph Madamba
a42714540b
Add follow delay setting to osu! flashlight mod
2021-04-10 23:04:15 -07:00
Naxess
dac733cced
Fix field name and accessibility
2021-04-10 15:49:57 +02:00
Naxess
3289bb0379
Merge Check
and BeatmapCheck
...
We're probably not going to need GeneralChecks or BeatmapsetChecks.
The verify tab is only available to a single difficulty at a time, and we already have access to the rest of the set through `IBeatmap`.
2021-04-10 14:56:30 +02:00
Naxess
bc4f3351f3
Replace checks with realistic ones
2021-04-10 13:03:16 +02:00
Naxess
d1007ff26a
Move components to more appropriate spot
2021-04-10 13:02:22 +02:00
Dean Herbert
cceb10cc85
Merge pull request #12337 from Naxesss/slider-path-segments
...
Improve UX of correcting invalid slider path types
2021-04-09 19:26:49 +09:00
Naxess
f64b2095bf
Carry over the previous path type
2021-04-09 11:04:00 +02:00
smoogipoo
f2e811928b
Rework slider hackery to not overwrite Samples
2021-04-09 15:28:08 +09:00
smoogipoo
8efa381d3a
Actually use whistle sample for sliderwhistle
2021-04-08 23:13:16 +09:00
smoogipoo
7d291ed7d7
Don't serialise OriginalSamples
2021-04-08 20:57:50 +09:00
smoogipoo
7713c8a45f
Add support for sliderwhistle
2021-04-08 20:20:09 +09:00
Naxess
9a675a2219
Correct 4+ point perfect curves to Bezier
2021-04-08 12:33:43 +02:00
Naxess
be4520fe33
Fix index out of range possibility
2021-04-08 11:46:00 +02:00
Naxess
0341023d13
Improve UX of selecting PerfectCurve
2021-04-08 09:06:28 +02:00
Naxess
725edfcbf3
Add path type menu change method
2021-04-08 09:05:35 +02:00
Dean Herbert
a8839792fd
Merge branch 'master' into circular-arc-freeze
2021-04-08 14:33:03 +09:00
Naxess
d6490899e2
Simplify slider path bindings
...
Adds a slight performance overhead, but solves the memory leak and makes the code much easier to follow.
2021-04-08 03:21:56 +02:00
Naxess
d1d56c636a
Convert pathTypes
to local variable
...
Not entirely sure what holds the reference to pathTypes now (the binding to`slider.Path.ControlPoints` maybe?), but this does seem to work still.
2021-04-08 01:43:06 +02:00
Naxess
b8ab1c7682
Track path type changes for PointsInSegment
2021-04-07 17:19:12 +02:00
Naxess
9c4604e3c5
Add example checks
2021-04-07 14:36:53 +02:00
Naxess
0343ef7f14
Add ruleset-specific checker
2021-04-07 14:36:43 +02:00
Dean Herbert
784552022f
Merge pull request #12303 from smoogipoo/fix-last-control-point-segmenting
...
Make last control point not able to make an implicit segment
2021-04-06 13:35:55 +09:00
smoogipoo
42e816fcae
Add failing tests
2021-04-05 17:48:29 +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
smoogipoo
9c3d15171c
Reword xmldoc slightly
2021-04-02 18:00:28 +09:00
Amber
5ac36a2462
Switch AlwaysPlaySample to SamplePlaysOnlyOnHit in DrawableSliderTail for conformity
2021-04-02 03:56:23 -05:00
Amber
48e9985782
Make "AlwaysPlayTailSample" a mod setting rather than a hardcoded constant.
2021-04-02 03:10:28 -05:00
Amber
5063cd957f
Force hit sample to play when Classic mod is enabled
2021-04-02 02:54:35 -05:00
Naxess
7e47922fb7
Merge branch 'master' into circular-arc-freeze
2021-04-01 17:09:45 +02:00
Naxess
5022a78e80
Check current point instead of start point
...
Since each control point will call this when the path updates, the previous would correct the start segment 3 times instead of just once.
This fixes that.
2021-03-31 20:25:46 +02:00
Naxess
75b8f2535f
Move updatePathTypes to PathControlPointPiece
...
Here we produce a local bound copy of the path version, and bind it to update the path type.
This way, if the path version updates (i.e. any control point changes type or position), we check that all control points have a well-defined path.
Additionally, if the control point piece is disposed of, the GB should also swoop up the subscription because of the local bound copy.
2021-03-31 20:09:56 +02:00
Dean Herbert
b82247aabe
Add inline comments and use Vector2.Zero
2021-03-30 14:13:16 +09:00
Dean Herbert
eda45e0e28
Merge branch 'master' into scale-breaking-bounds
2021-03-30 14:05:19 +09:00
Dean Herbert
9504fe3f3c
Inline add of spm calculation (no need for it to be a separate call)
2021-03-30 13:43:05 +09:00
Salman Ahmed
f848ef5347
Add legacy spinner SPM counter support
2021-03-30 04:19:23 +03:00
Salman Ahmed
0bf84e473d
Refactor spinner SPM counter for skinning purposes
2021-03-30 04:19:23 +03:00
Naxess
70d5b616f2
Add scaling path type recovery
2021-03-29 15:49:49 +02:00
Leon Gebler
17b16d4f89
Clarify purpose of getClampedScale()
2021-03-29 14:17:30 +02:00
Leon Gebler
1d99a63f17
Limit minimum size for single slider scaling
2021-03-29 14:16:27 +02:00
Dean Herbert
690debe507
Merge pull request #12030 from LeNitrous/editor-platform-clipboard-copy
2021-03-29 19:31:16 +09:00
Nathan Alo
9a02f3868c
return a string instead
2021-03-29 17:29:05 +08:00
Leon Gebler
a50c4be8ab
Add missing space
2021-03-26 17:41:36 +01:00
Leon Gebler
305c2e31cf
Clarify todo comment
2021-03-26 16:53:17 +01:00
Leon Gebler
25ea60cb92
Remove return values from HandleScale submethods
2021-03-26 16:40:10 +01:00
Leon Gebler
5d272bef97
Remember ContolPoint positions instead of recalculating them
2021-03-26 16:31:04 +01:00
Nathan Alo
b8b7eb4c4b
refactor logic to its own component and handle hit object to string conversion to its ruleset-specific composers
2021-03-26 15:25:20 +08:00
Nathan Alo
2bea69456e
remove implementations
2021-03-26 15:24:33 +08:00
Naxess
51f0477df4
Move bounding box logic to framework
2021-03-26 04:42:46 +01:00
Naxess
ce9130ca50
Remove determinant limit
...
This has since been added into the framework through https://github.com/ppy/osu-framework/pull/4302
2021-03-25 17:38:55 +01:00
Salman Ahmed
bada1e7189
Update legacy spinner bonus counter usage
2021-03-25 15:00:06 +03:00
Salman Ahmed
6aa0c9d8fd
Merge branch 'master' into legacy-sprite-text-fonts
2021-03-25 14:52:01 +03:00
Dean Herbert
b4bccc19ba
Refactor LegacySpriteText initialisation
2021-03-25 18:37:13 +09:00
Dean Herbert
c715b9b89e
Merge branch 'master' into legacy-spinner-bonus
2021-03-25 18:09:25 +09:00
Naxess
9df059b01d
Add bounding box limit
2021-03-24 17:25:28 +01:00
Leon Gebler
e67ab3cca7
Change single slider scaling to a method that works
2021-03-24 12:24:11 +01:00
Leon Gebler
3d471d239f
Clamp multi-object scale instead of cancelling it
2021-03-24 12:24:11 +01:00
Leon Gebler
def0e5c42e
Fix off-by-one error in isQuadInBounds
2021-03-24 12:24:11 +01:00
Naxess
e0240ab9d9
Increase exterior threshold
2021-03-24 05:55:34 +01:00
Naxess
4ae3eaaac6
Move path type correction
...
This is better because `PathControlPointVisualizer` is local to the editor, meaning there is no chance that this could affect gameplay.
2021-03-24 03:02:19 +01:00
Naxess
0bcd38e661
Simplify path type maintenance when dragging
2021-03-24 02:57:47 +01:00
Naxess
5ee280f941
Update PointsInSegment when adding/removing points
...
There was a bug where if you created a slider, moved the last point, and then added a point such that it became a PerfectCurve, it would fail to recover after becoming a Bezier.
This fixes that.
2021-03-24 02:56:32 +01:00
Dan Balasescu
ade542191a
Merge pull request #12154 from peppy/fix-hitcircle-glow-fade-out
...
Fix default skin's glow resetting fade on miss
2021-03-23 20:14:51 +09:00
Dean Herbert
d10ff615fe
Fix default skin's glow resetting fade on miss
2021-03-23 19:28:08 +09:00
Dean Herbert
64e85ba995
Always fade out approach circles at a HitObject's start time to better match stable
2021-03-23 19:19:07 +09:00
Dan Balasescu
9e38d580ca
Merge pull request #12139 from peppy/fix-editor-spinner-looping-too-long
...
Fix spinners playing looping sound too long in the editor
2021-03-23 17:44:07 +09:00
Dean Herbert
098005393e
Remove unnecessary null checks and debug code
2021-03-23 10:38:37 +09:00
Naxess
067178e537
Maintain path type when dragging/placing
2021-03-22 15:59:06 +01:00
smoogipoo
e60ff45b73
Add another test for colinear perfect curves
2021-03-22 16:57:40 +09:00
Dean Herbert
c4d08463ad
Fix spinners playing looping sound too long in the editor
...
The `OnComplete` event was never being run due to the transform playing
out longer than the spinner's lifetime. I've matched the durations, but
also moved the `Stop()` call to what I deem a safer place to run it (I
did notice that without this it would still potentially never fire).
Note that this is more noticeable in the editor because of lifetime
extension. In gameplay, the returning of a spinner to the pool will
clean things up (but in the editor that can take longer, depending on
timeline zoom level).
Another thing worth mentioning is that the fade doesn't actually work.
This is due to https://github.com/ppy/osu-framework/pull/4212 .
Closes #12119 .
2021-03-22 16:04:51 +09:00
Bartłomiej Dach
e67c759eef
Mark control point visualiser as possibly-null
2021-03-19 22:44:31 +01:00
Bartłomiej Dach
9634560d4b
Fix control point visualiser crashing after deselections
...
`SliderSelectionBlueprint.OnDeselected()` would expire the
`ControlPointVisualiser` on deselection, leading to its removal from the
blueprint and eventual disposal, but still kept a separate reference to
said visualiser in another field.
This could lead to that stale reference to a disposed child getting read
in `ReceivePositionalInputAt()`, crashing quite a ways down over at the
framework side on futilely trying to compute the bounding box of a
drawable with no parent.
2021-03-19 21:40:22 +01:00
Dean Herbert
27c38db14d
Add tooltips for slider path nodes which aren't inheriting
2021-03-19 16:58:08 +09:00
Dean Herbert
5f31304d05
Give each type of slider path type a unique colour to help visually distinguish them
2021-03-19 14:00:26 +09:00
Nathan Alo
51e0304c54
properly format strings per ruleset
2021-03-17 18:31:09 +08:00
smoogipoo
7fa5fd5647
Update usages of config with framework changes
2021-03-17 16:10:16 +09:00
Salman Ahmed
848adddd92
Use double.ToString(InvariantInfo)
instead
2021-03-15 11:05:29 +03:00
Salman Ahmed
779c55d768
Fix potentially adding null legacy text to hierarchy
2021-03-14 03:27:47 +03:00
Salman Ahmed
43c1e1d217
Update existing usages
...
Resolve post-conflict issues
2021-03-13 06:09:07 +03:00
Salman Ahmed
115c186cb7
Move hit circle font from osu! ruleset
2021-03-13 06:05:36 +03:00
Salman Ahmed
98f6e16113
Move default spinner bonus counter to new DefaultSpinner
2021-03-13 05:59:42 +03:00
Salman Ahmed
774ebf50bc
Move legacy spinner bonus counter to LegacySpinner
2021-03-13 05:59:42 +03:00
Salman Ahmed
8fdab5a7de
Revert legacy spinner presence changes and bonus counter component
...
No longer necessary, after inlining legacy coordinates logic to `LegacySpinner` and limiting precisely-positioned legacy components there
2021-03-13 05:57:47 +03:00
Salman Ahmed
020a03e01e
Use sensible "score per tick" constant
2021-03-13 05:56:28 +03:00
Salman Ahmed
c4048c9831
Merge branch 'master' into legacy-spinner-bonus
2021-03-13 05:54:34 +03:00
Dean Herbert
e3813ab828
Merge branch 'master' into legacy-spinner-placements
2021-03-12 19:47:34 +09:00
smoogipoo
ea9b48d17d
Remove unused using
2021-03-11 21:21:48 +09:00
smoogipoo
b5bdf235ca
Slightly improve comments more
2021-03-11 21:21:44 +09:00
smoogipoo
8bc494b224
Adjust explanatory comments
2021-03-11 20:57:00 +09:00
Dean Herbert
1591d593e2
Move spin start time to inside result and switch to standard state handling
2021-03-11 12:58:15 +09:00
Salman Ahmed
3f34981664
Fix incorrect spinner top offset calculation with clarification
2021-03-11 05:40:20 +03:00
Dean Herbert
4e8bcc9265
Fix SPM counter decreasing after spinner has already been completed
2021-03-09 16:54:46 +09:00
Dean Herbert
5a6864eb78
Fix SPM counter immediately disappearing on completion of spinners
2021-03-09 16:54:46 +09:00
Salman Ahmed
0549395869
Inline "legacy coordinates container" and add "spinner Y centre" const
2021-03-09 08:55:32 +03:00
Salman Ahmed
bb79da1aac
Correct playfield shift counteract comment
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-03-09 00:34:00 +03:00
Salman Ahmed
0ad3073c1a
Use MathF utility class instead
...
Co-authored-by: Berkan Diler <b.diler@gmx.de>
2021-03-07 21:21:44 +03:00
Salman Ahmed
fbfaa378fc
Move spinner top offset constant outside
2021-03-07 20:47:16 +03:00
Salman Ahmed
413cbb30a0
Reword playfield shift counteract comment
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-03-07 13:39:46 +03:00
Salman Ahmed
30f07aa9fc
Add legacy spinner bonus counter piece
2021-03-06 20:27:56 +03:00
Salman Ahmed
3f1d36ee6b
Add default spinner bonus counter piece
2021-03-06 20:27:56 +03:00
Salman Ahmed
c441e993ff
Separate "gained bonus" to a read-only bindable
2021-03-06 20:27:56 +03:00
Salman Ahmed
1841a4d1c9
Extract legacy spinner presence to lazy field
2021-03-06 20:27:56 +03:00
Salman Ahmed
e4afe717d5
Publicize legacy coordinates container and sprite scale
2021-03-06 20:27:56 +03:00
Salman Ahmed
1525480e73
Demonstrate value of SPINNER_TOP_OFFSET
to being more sensible
2021-03-06 19:18:40 +03:00
Dan Balasescu
5b6018295d
Merge branch 'master' into diffcalc/skill-mods
2021-03-04 13:06:26 +09:00
Salman Ahmed
d528ef426f
Reposition legacy spinner components in-line with osu!stable
2021-02-28 22:59:22 +03:00
Salman Ahmed
41b43dd39a
Add nested legacy-simulating coordinates container
2021-02-28 21:32:56 +03:00
Dean Herbert
8004652d27
Merge branch 'master' into optimised-has-flag-checks
2021-02-25 21:24:39 +09:00
Dean Herbert
90e8308716
Merge branch 'master' into localisation-refactor-framework
2021-02-25 17:28:55 +09:00
smoogipoo
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
Dean Herbert
0c202e0777
Merge branch 'master' into fix-selecting-incompatible-freemods
2021-02-24 19:24:04 +09:00
smoogipoo
14160b897e
Fix references to ModSuddenDeath
2021-02-24 14:44:53 +09:00
Leon Gebler
877e19421b
Refactor movement while scaling
2021-02-23 21:02:00 +01:00
Leon Gebler
2a4139a207
Refactor isQuadInBounds
2021-02-23 21:02:00 +01:00
Leon Gebler
71b30bdbbb
Adjust tuple usage
2021-02-23 21:02:00 +01:00
Leon Gebler
3491021f72
Move moveSelection into HandleMovement
2021-02-23 21:02:00 +01:00
Dean Herbert
1fd76ea3fb
Apply changes to UI components overriding functions with changing signatures
2021-02-22 19:01:42 +09:00
smoogipoo
ca92ad715a
Add test
2021-02-22 13:32:54 +09:00
Leon Gebler
33985d9e7c
Rewrite scaling bounds check to behave more intuively
2021-02-21 18:11:32 +01:00
Leon Gebler
2c6f92d12f
Move bounds check from moveSelection to HandleMovement
2021-02-21 17:38:50 +01:00
Leon Gebler
562a4cefdb
Simplify HandleScale by extracting methods
2021-02-21 12:12:32 +01:00
Leon Gebler
0b8009938a
Prevent selection from breaking playfield bounds when scaling
2021-02-21 00:14:39 +01:00
Leon Gebler
cc4c5f72d8
Move logic to keep selection in bounds into it's own method
2021-02-21 00:14:39 +01:00
Samuel Cattini-Schultz
66643a97b0
Add a list of mods to Skill class
...
Although this isn't necessary for existing official rulesets and calculators, custom calculators can have use cases for accessing mods in difficulty calculation.
For example, accounting for the effects of visual mods.
2021-02-20 20:37:44 +11:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dan Balasescu
cb4d119f23
Merge pull request #11740 from peppy/editor-fix-slider-samples-new-placement
...
Fix newly placed sliders in the editor not playing hitsounds
2021-02-12 13:31:00 +09:00
Dean Herbert
f84ea30637
Expose Mods in DrawableRuleset to avoid using external DI
2021-02-11 17:47:29 +09:00
Dean Herbert
aaa0362b12
Merge branch 'master' into autoplay-rate-independence
2021-02-11 17:39:45 +09:00
Dean Herbert
db79080bc4
Fix GetNodeSamples potentially returning a live reference and overwriting existing samples
2021-02-11 17:14:49 +09:00
Dean Herbert
4710a12774
Merge branch 'master' into classic-mode-flags
2021-02-11 16:21:55 +09:00
smoogipoo
5d1d6ec1cb
Fix inverted calculation
2021-02-10 22:09:24 +09:00
smoogipoo
20a6405fd2
Add explanatory comments + const
2021-02-10 22:06:19 +09:00
smoogipoo
bd2486e5a0
Fix grammatical error in comment
2021-02-10 21:27:12 +09:00
smoogipoo
1d425b8322
Simplify case
2021-02-10 21:25:31 +09:00
smoogipoo
4a391ce03d
Fix div-by-0 when 0 ticks are hit
2021-02-10 21:24:41 +09:00
smoogipoo
be9b07a4cf
Merge branch 'master' into difficulty-adjustment-extension
2021-02-10 20:42:08 +09:00