1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 03:47:26 +08:00
Commit Graph

3426 Commits

Author SHA1 Message Date
Pasi4K5
a0a6f3ef81 Replace Vector2 methods with math operators 2021-06-04 16:23:03 +02:00
Pasi4K5
9f2a9608f2 Rework slider positioning 2021-06-04 16:17:54 +02:00
ekrctb
d7da66d876 Bring back scheduling of follow point update 2021-06-04 18:41:02 +09:00
ekrctb
0098ac2760 Remove one TODO
It can be removed because pooled drawables are always ready, and `FollowPointConnection` is also ready when applied.
2021-06-04 17:09:59 +09:00
ekrctb
bc892086fe Resolve nullable inspection, enable nullable for FollowPointLifetimeEntry 2021-06-04 17:09:59 +09:00
ekrctb
b373b120ff Use general lifetime container for follow point container 2021-06-04 16:31:50 +09:00
Dean Herbert
06275a6a7d Merge branch 'master' into legacy-skin-default-fallback 2021-06-04 16:00:30 +09:00
Dean Herbert
f62a2747f6 Add legacy implementation 2021-06-04 14:51:35 +09:00
Dean Herbert
5953674737 Tidy up constants 2021-06-04 14:14:51 +09:00
Dean Herbert
ff70f99da2 Merge branch 'master' into kiai 2021-06-04 13:50:12 +09:00
Pasi4K5
7a4fc9ffc8 Move seed to base class 2021-06-03 18:16:11 +02: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
Dan Balasescu
d39eb7eac2
Merge pull request #12952 from peppy/autoplay-pause-support
Externalise autoplay generation from `Player` to allow use of replay playback functions
2021-06-03 17:29:17 +09:00
Dean Herbert
8b43cfdd7d
Merge pull request #12568 from Pasi4K5/mod-osu-random
Add mod "Random" for osu! ruleset
2021-06-03 17:14: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
Dan Balasescu
44b1102241
Merge branch 'master' into autoplay-pause-support 2021-06-03 13:26:00 +09:00
Dan Balasescu
c065f761c7
Merge branch 'master' into legacy-skin-default-fallback 2021-06-02 19:08:52 +09:00
ekrctb
c06ff3c623 Remove defunct Animate calls 2021-06-02 11:46:28 +09:00
ekrctb
b82190e157 Fix hit circle animation reset when skin is changed
The transforms applied in `Animate` call was not applied because the piece is recreated.
2021-06-02 11:32:24 +09: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
33577cbad5 Fix multiple issues with default lookups 2021-05-31 21:29:47 +09:00
Dean Herbert
88ed95e012 Add FindProvider lookup function 2021-05-31 21:29:47 +09:00
Dean Herbert
de0e51a81d Merge branch 'master' into fix-skin-sample-lookup 2021-05-31 15:27:39 +09:00
Dean Herbert
17574833fb Update other transformers with similar refactored logic 2021-05-30 19:15:59 +09:00
Salman Ahmed
fbc316ea1d Fix legacy skin transformers potentially ignoring source implementations 2021-05-29 21:23:22 +03:00
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 TernaryStateMenuItems 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