Dean Herbert
6c0e968727
Merge pull request #26512 from OliBomby/slider-pathtype-update
...
Fix glitchy path type correction for sliders in the editor
2024-01-15 16:19:24 +09:00
Bartłomiej Dach
0b2b1fc588
Fix flashlight dim being applied before slider start time
...
Closes https://github.com/ppy/osu/issues/26515 .
Compare https://github.com/ppy/osu/pull/26053 .
2024-01-14 13:05:02 +01:00
OliBomby
243b7b6fda
fix code quality
2024-01-13 23:17:38 +01:00
OliBomby
83e108071a
fix wrong path type being displayed
2024-01-13 22:51:33 +01:00
OliBomby
39908f5425
remove Validating event and instead call validation explicitly on edits
2024-01-13 22:39:09 +01:00
OliBomby
da4d83f8ca
remove the need for caching points in segment
2024-01-13 21:41:33 +01:00
OliBomby
b4f9878b46
working jank solution
2024-01-13 20:39:49 +01:00
OliBomby
f5d6d52d4c
Move logic for caching segments and updating path types to PathControlPointVisualiser
2024-01-13 14:47:40 +01:00
OliBomby
ce643aa68f
revert overwriting Position getter in SliderTailCircle
...
It would have very weird implications when combined with the position bindable which would be all wrong and stuff
2024-01-13 13:54:04 +01:00
OliBomby
fca9b1f536
Fix so it reacts to PathVersion with Scheduler
2024-01-13 12:50:39 +01:00
OliBomby
e1186080b8
simplify scheduling logic
2024-01-13 02:24:33 +01:00
OliBomby
5fa7f6ec53
make drawables that update from path version update once per frame
2024-01-13 02:21:32 +01:00
OliBomby
882f490390
lazy load slider tail position
2024-01-13 01:32:37 +01:00
Bartłomiej Dach
7c9adc7ad3
Fix incorrect score conversion on selected beatmaps due to incorrect difficultyPeppyStars
rounding
...
Fixes issue that occurs on *about* 246 beatmaps and was first described
by me on discord:
https://discord.com/channels/188630481301012481/188630652340404224/1154367700378865715
and then rediscovered again during work on
https://github.com/ppy/osu/pull/26405 :
https://gist.github.com/bdach/414d5289f65b0399fa8f9732245a4f7c#venenog-on-ultmate-end-by-blacky-overdose-631
It so happens that in stable, due to .NET Framework internals, float
math would be performed using x87 registers and opcodes.
.NET (Core) however uses SSE instructions on 32- and 64-bit words.
x87 registers are _80 bits_ wide. Which is notably wider than _both_
float and double. Therefore, on a significant number of beatmaps,
the rounding would not produce correct values due to insufficient
precision.
See following gist for corroboration of the above:
https://gist.github.com/bdach/dcde58d5a3607b0408faa3aa2b67bf10
Thus, to crudely - but, seemingly accurately, after checking across
all ranked maps - emulate this, use `decimal`, which is slow, but has
bigger precision than `double`. The single known exception beatmap
in whose case this results in an incorrect result is
https://osu.ppy.sh/beatmapsets/1156087#osu/2625853
which is considered an "acceptable casualty" of sorts.
Doing this requires some fooling of the compiler / runtime (see second
inline comment in new method). To corroborate that this is required,
you can try the following code snippet:
Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3f).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3).Select(x => x.ToString("X2"))));
Console.WriteLine();
decimal d1 = (decimal)1.3f;
decimal d2 = (decimal)1.3;
decimal d3 = (decimal)(double)1.3f;
Console.WriteLine(string.Join(' ', decimal.GetBits(d1).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', decimal.GetBits(d2).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', decimal.GetBits(d3).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
which will print
66 66 A6 3F
CD CC CC CC CC CC F4 3F
0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
8C 5D 89 FB 3B 76 00 00 00 00 00 00 00 00 0E 00
Note that despite `d1` being converted from a less-precise floating-
-point value than `d2`, it still is represented 100% accurately as
a decimal number.
After applying this change, recomputation of legacy scoring attributes
for *all* rulesets will be required.
2024-01-10 19:30:18 +01:00
Dean Herbert
5970a68e2d
Use invalidation based logic for child anchor position updpates in DrawableSlider
2024-01-09 14:17:33 +09:00
Dean Herbert
962c8ba4ac
Reset child anchor position cache on hitobject position change
2024-01-07 20:55:28 +09:00
Dean Herbert
5cc4a586ac
Avoid iteration over NestedHitObjects
in silder's Update
unless necessary
2024-01-07 14:31:22 +09:00
Dean Herbert
35eff639cb
Remove unnecessary second iteration over NestedHitObjects
2024-01-07 14:31:22 +09:00
B3nn1
eea87090fb
Make changeHandler
save changes to PathTypes
2024-01-06 19:25:49 +01:00
Dean Herbert
ddc8a64764
Reduce spinner glow
...
It was horrible
2024-01-04 14:55:52 +09:00
Dean Herbert
94531807e4
Make slider ends show on results screen again
2024-01-02 17:01:32 +09:00
OliBomby
460c584dca
fix code quality
2024-01-01 16:21:33 +01:00
OliBomby
de14da95fa
Remove other grid types
2024-01-01 15:44:20 +01:00
OliBomby
39f4a1aa8e
conflict fixes
2024-01-01 15:34:05 +01:00
OliBomby
594b6fe167
Add back the old keybind for cycling grid spacing
2024-01-01 15:27:51 +01:00
OliBomby
20e338b892
also hide grid from points button when not hovered
2024-01-01 15:24:32 +01:00
OliBomby
33e559f835
add integer keyboard step to sliders
2024-01-01 15:22:56 +01:00
OliBomby
904ea2e436
move OutlineTriangle code down
2024-01-01 15:22:23 +01:00
OliBomby
e47d570e68
improve UI
2024-01-01 15:21:12 +01:00
OliBomby
493e3a5f7a
use G to change grid type
2024-01-01 15:19:44 +01:00
OliBomby
9a8c41f6ca
Saving exact grid spacing
2024-01-01 15:14:15 +01:00
OliBomby
f649fa106f
Added bindables and binding with BindTo
2024-01-01 15:13:11 +01:00
OliBomby
d0ca3f2b2b
Add circular grid
2024-01-01 15:13:11 +01:00
OliBomby
8a331057b0
Make it actually possible to change grid type
2024-01-01 15:13:10 +01:00
OliBomby
040fd5ef9c
Add option to change grid type
2024-01-01 15:13:10 +01:00
OliBomby
8ef9bdf861
clarify comment
2024-01-01 15:13:10 +01:00
OliBomby
351cfbff3e
Fix snapping going out of bounds
2024-01-01 15:13:10 +01:00
OliBomby
f223487e1c
improve code
2024-01-01 15:13:10 +01:00
OliBomby
b16c232490
add basic control by grid tool box
2024-01-01 15:13:10 +01:00
Dan Balasescu
17a531209c
Use SliderTailHit result for slider tails (non-classic-mod)
2023-12-30 10:38:47 +09:00
Dean Herbert
c7f10dbc74
Merge pull request #26148 from rushiiMachine/resumeoverlay-min-cursor-size
...
Force minimum cursor size for `OsuResumeOverlay`
2023-12-28 19:23:57 +09:00
rushiiMachine
cf39bb7a18
Fix spinner max bonus not respecting ISamplePlaybackDisabler
...
The spinner max bonus was loaded through SkinnableSound instead of PausableSkinnableSound, leading to it not respecting the case where sample playback is globally disabled through ISamplePlaybackDisabler, and can be easily heard in situations like during the catchup period after seeking using the ArgonSongProgressBar with song volume at 0
2023-12-27 12:55:49 -08:00
Bartłomiej Dach
288ac930e4
Use new icons in editor
...
Some that exist on figma are purposefully not used due to an editorial
request from @peppy.
2023-12-27 17:42:18 +01:00
rushiiMachine
c087578e01
Force minimum cursor size for OsuResumeOverlay
...
On cursor sizes below 0.3x it becomes exceedingly difficult to quickly locate and then accurately click the resume cursor on the pause overlay as it could as big as a handful of pixels. This clamps the minimum cursor size to 1x for the resume overlay, which is way more comfortable and more closely resembles stable.
2023-12-26 10:07:21 -08:00
Bartłomiej Dach
651a608e73
Merge pull request #26120 from peppy/argon-triangle-tick-end-miss
...
Update argon and triangles slider tick/end miss to match display style
2023-12-25 14:42:59 +01:00
Dean Herbert
8e6ea2dd9b
Update argon and triangles to match display style
2023-12-25 17:37:28 +09:00
Andrei Zavatski
19d0236418
Change mod acronym
2023-12-23 22:11:00 +03:00
Andrei Zavatski
e470a42da0
Merge branch 'master' into depth-mod
2023-12-23 22:09:12 +03:00
Dean Herbert
d72ec81684
Merge pull request #26083 from smoogipoo/try-improve-hp-drain
...
Replace recently-added HP drain density calculation with combo-end bonus
2023-12-24 01:30:49 +09:00
Dan Balasescu
7437d21f49
Adjust comment regarding slider tail
2023-12-24 00:45:22 +09:00
Dan Balasescu
8b11bcc6ea
Remove unused using
2023-12-24 00:08:15 +09:00
Dan Balasescu
00090bc527
Add combo end bonus to HP
2023-12-23 23:51:12 +09:00
Dan Balasescu
d1000b2e6c
remove HP density
2023-12-23 23:36:15 +09:00
Dean Herbert
c5893f245c
Change legacy version checks to account for users specifying incorrect versions
2023-12-23 14:03:45 +09:00
Dean Herbert
21e9e103fd
Merge pull request #26039 from smoogipoo/hp-drain-density
...
Add basic density consideration to HP drain
2023-12-23 01:04:53 +09:00
Dean Herbert
32e1b273c2
Merge pull request #26053 from bdach/fix-strict-tracking-sliders
...
Fix strict tracking mod forcefully missing tail before slider start time
2023-12-23 00:03:47 +09:00
Bartłomiej Dach
30553dc7b8
Fix strict tracking mod forcefully missing tail before slider start time
...
Closes https://github.com/ppy/osu/issues/25816 .
Regressed in https://github.com/ppy/osu/pull/25748 .
The reason this broke is that allowing the state of `Tracking` to change
before the slider's start time to support the early hit scenario causes
strict tracking to consider loss of tracking before the slider's start
time as an actual miss, and thus forcefully miss the tail
(see test case in 6cb8231054
).
2023-12-22 13:43:14 +01:00
Bartłomiej Dach
7e557152fb
Fix relax mod not considering full follow area radius when automatically holding sliders
...
Closes https://github.com/ppy/osu/issues/25947 .
Regressed in https://github.com/ppy/osu/pull/25776 with the changes to
`DrawableSliderBall`.
I would have liked to include tests, but relax mod is a bit untestable,
because it disengages completely in the presence of a replay:
7e09164d70/osu.Game.Rulesets.Osu/Mods/OsuModRelax.cs (L49-L58)
Additionally, `RulesetInputManager` disengages completely from parent
inputs when there is a replay active:
7e09164d70/osu.Game/Rulesets/UI/RulesetInputManager.cs (L116)
which means there is really no easy way to control positional input
while still having relax logic work. So I'm hoping the fix could be
considered obvious enough to not require test coverage.
2023-12-22 12:50:42 +01:00
Dan Balasescu
a0185508b7
Add basic consideration of density for HP drain
2023-12-22 18:08:26 +09:00
Dan Balasescu
3f6dad5502
Use classic HP values for non-classic osu! HP drain
2023-12-22 02:16:46 +09:00
Dan Balasescu
6b4b2a57fc
Expose only as one method
2023-12-21 14:58:23 +09:00
Dan Balasescu
4e3b994142
Relocate HitResult numeric score to ScoreProcessor
2023-12-21 14:52:31 +09:00
Dean Herbert
fa4c9051cb
Merge branch 'master' into argon-pro-no-slider-tick-judgements
2023-12-21 10:01:22 +09:00
Bartłomiej Dach
88e36eb08c
Fix autopilot mod still declaring incompatibility with fail-preventing mods
...
Closes https://github.com/ppy/osu/issues/25974 .
2023-12-20 21:46:18 +01:00
Bartłomiej Dach
b6a331b2f7
Fix argon pro not showing slider tick judgements
...
Addresses https://github.com/ppy/osu/discussions/25968 .
2023-12-20 20:52:26 +01:00
Dean Herbert
eb8fb8092d
Attempt to standardise miss handling logic
2023-12-21 00:59:35 +09:00
Dean Herbert
fcf47267fd
Revert change to OsuHitWindows
and move logic local to pooling initialisation
2023-12-21 00:48:46 +09:00
Dean Herbert
9b383e3276
Add support for showing tick misses
2023-12-20 20:23:19 +09:00
Dean Herbert
b6f0c98a09
Also apply to autopilot
2023-12-20 14:56:52 +09:00
Dan Balasescu
fe5e071e70
Fix sliding sample playing before Slider's start time
2023-12-19 17:01:52 +09:00
Dean Herbert
2f28a92f0a
Merge pull request #25776 from smoogipoo/slider-late-hit-lenience
...
Add slider head circle late hit lenience
2023-12-18 13:05:31 +09:00
Dan Balasescu
2b33aec124
Require slider head to be judged before ticks
2023-12-17 21:26:48 +09:00
Dan Balasescu
fddfa33e49
Fix 1-frame issues due to referencing external value
2023-12-17 20:19:25 +09:00
Dan Balasescu
9b02bd712b
Only track if in slider ball after any ticks missed
2023-12-17 20:12:02 +09:00
Dan Balasescu
fbe48d7be8
Fix tail being missed too early
2023-12-17 20:11:15 +09:00
Dan Balasescu
f77884b62f
Only hit passed-through ticks if none were missed
2023-12-17 19:57:48 +09:00
Dan Balasescu
4b9aefa6f2
Change osu ruleset to use new HP algorithm by default
2023-12-17 19:33:04 +09:00
Dean Herbert
c0e96927aa
Merge branch 'master' into slider-late-hit-lenience
2023-12-17 13:00:01 +09:00
Dan Balasescu
12210017e4
Use the cursor position to test nested object validity
2023-12-15 17:05:14 +09:00
Dan Balasescu
6bd190c55d
Refactor all slider input into SliderInputManager
2023-12-15 16:13:32 +09:00
Dan Balasescu
599fdb0128
Add lenience for late-hit of slider heads
2023-12-15 14:14:58 +09:00
Bartłomiej Dach
0f4d054bfe
Use HitWindows
data directly for computing effective OD
2023-12-14 20:41:12 +01:00
Bartłomiej Dach
605269f65f
Extract preempt durations to shared constants
2023-12-14 20:41:12 +01:00
Bartłomiej Dach
fd1c72bf74
Use IBeatmapDifficultyInfo.(Inverse)DifficultyRange()
instead of local reimplementations
...
Also adds explicit references to places from where the magic constants
were lifted.
2023-12-14 20:41:12 +01:00
Dean Herbert
33d3766918
Merge pull request #25748 from smoogipoo/slider-early-hit-lenience
...
Allow sliders to track if hit early
2023-12-14 16:40:12 +09:00
Dan Balasescu
27e55def64
Make animation start at the slider's start time
2023-12-13 20:27:14 +09:00
Dean Herbert
9a982a9564
Tidy up GetRateAdjustedDisplayDifficulty
implemetations
2023-12-13 17:13:21 +09:00
Dan Balasescu
3f67538d61
Allow slider to be tracked before its start time
2023-12-13 16:59:41 +09:00
Dean Herbert
0259ab761b
Merge branch 'master' into arod_rate_adjust
2023-12-13 16:35:18 +09:00
Dean Herbert
c2d3dcdd9c
Fix slider tests and incorrect nullability handling around freehandToolboxGroup
2023-12-13 15:15:49 +09:00
Dean Herbert
73189be6cc
Merge branch 'better-drawing' into dropdown-search
2023-12-13 14:09:33 +09:00
Dean Herbert
5b00cf283d
Merge branch 'master' into drawnode-subtree-draw-cleanup
2023-12-13 14:01:01 +09:00
Dan Balasescu
987fe9322e
Merge pull request #24166 from Zyfarok/scorev3
...
Modify osu! standardised scoring to introduce a combo exponent
2023-12-12 17:38:44 +09:00
Givikap120
faf54bca43
Merge branch 'master' into arod_rate_adjust
2023-12-10 01:49:18 +02:00
Dan Balasescu
005fb78994
Fix last tick handling in osu beatmap conversion tests
2023-12-07 16:02:00 +09:00
OliBomby
7b49db05d1
Update default parameters to be slightly better
2023-12-07 01:15:42 +01:00
OliBomby
a2ec75d824
Fix illegal circle arc with center out of polygon
2023-12-07 00:57:29 +01:00
OliBomby
89859b85b7
add controllable leniency
2023-12-07 00:43:34 +01:00
OliBomby
1930476192
Add circle arc segments
2023-12-07 00:26:13 +01:00
OliBomby
22287f3a7f
decrease max tolerance
2023-12-06 16:36:24 +01:00
OliBomby
a8f3a0533a
Use 4th order BSpline by default
2023-12-06 16:35:59 +01:00
Andrei Zavatski
b0878e36cf
Fix stacks having incorrect position
2023-12-06 10:30:21 +03:00
Andrei Zavatski
160edcd270
Move objects at a constant speed whenever possible
2023-12-06 08:42:34 +03:00
Andrei Zavatski
594ea4da5f
Apply suggested behaviour
2023-12-05 16:00:20 +03:00
Andrei Zavatski
68907fe1ba
Cleanup pass
2023-12-05 02:48:11 +03:00
Andrei Zavatski
ec5c7d7830
Add deceleration and rework depth handling
2023-12-04 10:26:43 +03:00
Dan Balasescu
b56a78c6ec
Adjust with framework changes
2023-12-04 08:51:21 +09:00
OliBomby
060141866c
Update SliderPlacementBlueprint.cs
2023-12-03 22:06:07 +01:00
OliBomby
b3d1a9ee2e
Dont snap expected distance while drawing
...
This makes it 10 billion times smoother to draw, very nice
2023-12-03 22:03:51 +01:00
OliBomby
ca55a7b2bf
call builder finish before ending curve
2023-12-03 21:43:37 +01:00
OliBomby
bcf2effae9
Remove the Linear segment simplification because it just makes things harder to edit afterwards if it made some segment linear type when you actually intended there to be some curve
2023-12-03 21:22:04 +01:00
OliBomby
34b5264616
fix the linear segment
2023-12-03 21:13:27 +01:00
OliBomby
ba2cc0243c
update comment
2023-12-03 21:10:01 +01:00
OliBomby
8873824107
fix control points being cleared
2023-12-03 20:53:25 +01:00
OliBomby
4cd6efc8f7
update default parameters
2023-12-03 20:53:05 +01:00
OliBomby
595bc9398a
update to new builder control point signature
2023-12-03 20:14:00 +01:00
Andrei Zavatski
b90000f7b7
Simplify objects depth calculation
2023-12-03 17:15:52 +03:00
Andrei Zavatski
ebcde63caa
Don't override hitobjects anchor
2023-12-03 17:13:47 +03:00
Andrei Zavatski
937689ee6b
Add OsuModDepth as incompatable to other mods
2023-12-03 05:39:44 +03:00
Andrei Zavatski
cf6e50f73c
Add header and fix typo
2023-12-03 05:07:40 +03:00
Andrei Zavatski
dc588e6d56
Implement OsuModDepth
2023-12-03 04:58:17 +03:00
Bartłomiej Dach
874a3706bc
Merge branch 'master' into spinner-glow
2023-11-27 15:06:27 +09:00
Bartłomiej Dach
e2d51973ce
Merge pull request #25569 from smoogipoo/legacy-hp-abstraction
...
Encapsulate common HP logic from osu and catch HP calculations
2023-11-27 14:38:41 +09:00
Bartłomiej Dach
63481e8e60
Merge pull request #25539 from default0/fix-slider-drawing-with-snap
...
Fix freehand-drawn sliders with distance snap
2023-11-27 11:25:50 +09:00
Dan Balasescu
8314f656a3
Encapsulate common HP logic from osu and catch HP calculations
2023-11-24 18:32:06 +09:00
Dan Balasescu
c126c46e2d
Remove legacy implementations (moved to osu-tools)
2023-11-24 15:43:57 +09:00
Dean Herbert
e3217bc82e
Merge branch 'master' into hp-drain-fix-breaks
2023-11-24 15:15:48 +09:00
Andrei Zavatski
c7f1fd23e7
Implement spinner glow
2023-11-24 07:21:25 +03:00
Bartłomiej Dach
ca37e1afc2
Merge branch 'master' into scorev3
2023-11-24 10:37:10 +09:00
Dean Herbert
686afa9697
Merge branch 'master' into fix-combo-handling
2023-11-24 10:30:52 +09:00
Dean Herbert
039f8e6242
Add note about shared code
2023-11-24 10:25:23 +09:00
Dan Balasescu
7bc2d6e6cd
Merge branch 'master' into fix-combo-handling
2023-11-23 16:22:01 +09:00
Dean Herbert
c0d24fe177
Merge pull request #25549 from bdach/editor-drag-length
...
Fix slider length not updating when adding new anchor via ctrl-click
2023-11-23 16:13:56 +09:00
Bartłomiej Dach
3da8a0cbed
Fix undo being broken when ctrl-click and dragging new point
2023-11-23 14:01:17 +09:00
Dan Balasescu
7998204cfe
Fix combo/combo colouring issues around spinners
2023-11-23 13:54:05 +09:00
Bartłomiej Dach
d4519f74ab
Merge branch 'master' into hp-drain-fix-breaks
2023-11-23 10:31:42 +09:00
Bartłomiej Dach
e8d3d26d16
Fix slider length not updating when adding new anchor via ctrl-click
2023-11-23 10:07:40 +09:00
Dean Herbert
52dc02fd32
Merge pull request #25418 from smoogipoo/hp-drain-v1-2
...
Add `OsuHealthProcessor` that uses the legacy drain rate algorithm
2023-11-23 00:08:20 +09:00
cs
95b12082ae
Update to respect distance snap
...
This will cause freehand drawing to respect distance snap, instead
changing the drawn path to start from the sliders start position
and "snap" in a linear fashion to the cursor position from the
position indicated by distance snap
2023-11-22 10:14:44 +01:00
cs
f7fce1d714
Fix freehand-drawn sliders with distance snap
2023-11-22 09:55:32 +01:00
Dan Balasescu
4b5ef8328b
Merge pull request #25521 from Syriiin/fix/refactor-miss
...
Fix implicitly used method being named incorrectly
2023-11-21 18:00:19 +09:00
Dean Herbert
21bf288277
Merge pull request #25520 from peppy/context-menu-spacers
...
Allow context menus to have visible spacers
2023-11-21 16:56:36 +09:00
Bartłomiej Dach
bf972a04ee
Merge pull request #25409 from Tom94/bspline-sliders
...
Add free-hand drawing of sliders to the editor
2023-11-21 16:28:14 +09:00
Bartłomiej Dach
ed38746823
Fix spacer appearing on top of menu
2023-11-21 16:14:41 +09:00
Bartłomiej Dach
d83b2e24e7
Merge pull request #25371 from RatinFX/open-editor-timestamp
...
Implement opening editor timestamp links
2023-11-21 15:48:36 +09:00
Dean Herbert
cc33e12125
Fix dragging after one point already placed incorrectly entering drawing mode
2023-11-21 15:38:12 +09:00
Dean Herbert
a210469956
Reorder methods
2023-11-21 15:38:12 +09:00
Dean Herbert
016de7be6a
Simplify drag handling code in SliderPlacementBlueprint
2023-11-21 15:38:12 +09:00
Dean Herbert
cf6f66b84f
Remove redundant Clear()
call
2023-11-21 15:38:12 +09:00
Dean Herbert
92728ea564
Simplify toolbox initialisation
2023-11-21 15:38:12 +09:00
Dean Herbert
e69e78ad41
Refactor b-spline path conversion code to better handle linear segments
2023-11-21 15:38:12 +09:00
Dean Herbert
0a5444d091
Fix using the incorrect position for the first point
2023-11-21 15:38:12 +09:00
Dean Herbert
314a7bf6f1
Simplify AddOnce
call to avoid self
argument
2023-11-21 15:38:12 +09:00
Samuel Cattini-Schultz
c9ee29028f
Fix implicitly used method being named incorrectly
2023-11-21 16:54:20 +11:00
Dean Herbert
9718a80249
Add visible spacer between "inherit" and other curve types
2023-11-21 14:24:19 +09:00
Dean Herbert
3680024e31
Fix tolerance not being transferred to blueprint in all cases
2023-11-21 11:15:00 +09:00
Dean Herbert
e9f371a581
Refactor slider settings class
2023-11-21 09:59:49 +09:00
Dean Herbert
638c8f1adc
Get rid of weird cruft and non-standard flow
2023-11-21 00:25:23 +09:00
Dean Herbert
6f5c468a83
Rename settings class
2023-11-21 00:21:44 +09:00
Dean Herbert
750bbc8a19
Simplify null checks
2023-11-21 00:18:36 +09:00
Bartłomiej Dach
364a3f75e1
Compile regexes
2023-11-20 22:03:25 +09:00
Bartłomiej Dach
b6215b2809
Rename and document SelectFromTimestamp
2023-11-20 21:57:14 +09:00
Dean Herbert
492fd06c62
Remove unnecessary null override
2023-11-20 19:21:23 +09:00
Bartłomiej Dach
3d569850b1
Merge pull request #25493 from peppy/adjust-slider-tick-animation
...
Adjust slider follow circle animation to not abruptly scale on early ticks
2023-11-20 17:58:15 +09:00
Dean Herbert
7633c92a78
Merge branch 'master' into bspline-sliders
2023-11-20 17:53:58 +09:00
Bartłomiej Dach
4061417ac8
Decrease default value for slider tolerance
...
Highly subjective change, but at 50 the drawing just did not feel
responsive enough to input.
2023-11-20 15:54:46 +09:00
Bartłomiej Dach
43dbd65708
Show Catmull as a control point type option if selection already contains it
2023-11-20 15:53:25 +09:00
Bartłomiej Dach
5d1bac6d7a
Remove IToolboxAttachment
for now
...
The interface doesn't really do anything useful right now because
it enforces a common contract, but all usages of the contract
go through the concrete implementation, and it inflates
the already-huge diff.
2023-11-20 13:17:43 +09:00
Bartłomiej Dach
affef85f25
Remove ISliderDrawingSettingsProvider
...
Seems like excessive abstraction.
2023-11-20 13:02:51 +09:00
Bartłomiej Dach
831884a64b
Remove unused enum member
2023-11-20 13:00:12 +09:00
Bartłomiej Dach
f46945a294
Avoid one unnecessary path update from B-spline builder
2023-11-20 12:42:16 +09:00
Bartłomiej Dach
518dcc567b
Null-check drawingSettingsProvider
...
As it's annotated as an optional dependency.
2023-11-20 12:41:24 +09:00
Bartłomiej Dach
b6e3e42445
Merge branch 'master' into bspline-sliders
2023-11-20 12:03:29 +09:00
Bartłomiej Dach
e182acf3e8
Expand comment for clarification
2023-11-20 11:50:28 +09:00
Zyf
cadd9b4ace
Merge remote-tracking branch 'upstream/master' into scorev3
2023-11-19 23:53:05 +01:00
Dean Herbert
307ec172cb
Use simplified formula
2023-11-17 23:48:48 +09:00
Dean Herbert
66f7b9fae1
Adjust slider follow circle animation to not abruptly scale on early ticks
2023-11-17 19:09:24 +09:00
Dean Herbert
fd3508254b
Add note about break calculation method
2023-11-17 18:49:19 +09:00
Dean Herbert
2ab84fdaa3
Use switch statement for type matching
2023-11-17 18:45:16 +09:00
Dean Herbert
a556caae43
Move default value out of switch statement
2023-11-17 18:43:31 +09:00
Dean Herbert
c9c8ed7c77
Remove unused values
2023-11-17 18:41:09 +09:00
Dean Herbert
6fa7b4f552
Merge branch 'master' into hp-drain-v1-2
2023-11-17 18:33:03 +09:00
Dean Herbert
9172632b0b
Rename method and adjust xmldoc to be very explicit about how wrong this is
2023-11-17 17:04:20 +09:00
Dean Herbert
a1673160f1
Refactor OsuAutoGenerator
to allow custom SPM specifications
2023-11-17 16:44:11 +09:00
Dean Herbert
3c513d0b62
Refactor fail reason output to not perform string interpolation unless hooked
2023-11-16 15:29:32 +09:00
Dean Herbert
265ae6fd30
Remove unused using refs
2023-11-16 15:14:32 +09:00
cs
360864fd7b
Hide catmull curve type when possible
2023-11-15 07:45:28 +01:00
cs
520642975b
Fix control point hover text and context menu
2023-11-15 07:45:09 +01:00
cs
ceeaf5b67c
CI fixes and small tweaks
2023-11-15 07:09:33 +01:00
Thomas Müller-Höhne
90ec6895d1
Automatic red control point generation & corner threshold
2023-11-14 16:53:01 +09:00
Dan Balasescu
e3137d575b
Fix osu! and base HP processor break time implementation
2023-11-14 01:11:17 +09:00
cs
fa976a5aa0
Fix code style/quality issues
2023-11-13 08:25:27 +01:00
Dan Balasescu
35d4c483d7
Improve commenting around small tick/large tick health
2023-11-13 14:06:34 +09:00
Dan Balasescu
65b41138a3
Add option to disable combo end
2023-11-13 14:06:24 +09:00
Dan Balasescu
98e6b7744b
Cleanup
2023-11-13 13:46:47 +09:00
Dan Balasescu
7713da499f
Make osu ruleset use the new health processor
2023-11-13 13:12:56 +09:00
Dan Balasescu
929570656d
Disallow legacy health processor from being used for gameplay
2023-11-13 13:12:46 +09:00
Dan Balasescu
5fd55e55c0
Add flag for combo end bonus to legacy processor
2023-11-13 12:59:36 +09:00
Thomas Müller-Höhne
e6b4dfba36
Fix doubled control point at beginning of drawn slider
2023-11-13 12:49:59 +09:00
Thomas Müller-Höhne
c24b3543ab
Fix OnDragStart on macOS
2023-11-13 12:47:12 +09:00
ratinfx
fab6fc9adb
Updated comments, renamed method
2023-11-12 15:09:15 +01:00
ratinfx
4e7c40f1d7
Do Split and Parse before checking HitObjects
2023-11-12 14:58:46 +01:00
Dean Herbert
a04f9aaef7
Apply various inspections
2023-11-12 16:24:35 +09:00
Dean Herbert
6bd5eda2a0
Merge branch 'master' into arod_rate_adjust
2023-11-12 15:49:07 +09:00
cs
54b8244a18
CI Fixup
2023-11-11 15:02:06 +01:00
ratinfx
4e1e19728c
Refactor HitObject selection in Composer
2023-11-11 14:02:42 +01:00
cs
3f85aa79c5
Add free-hand drawing of sliders to the editor
2023-11-11 13:33:25 +01:00
Thomas Müller-Höhne
926636cc03
Generalize Bezier curves to BSplines of Nth degree
2023-11-11 13:32:53 +01:00
Dan Balasescu
793d90e396
Add some notes
2023-11-10 19:09:09 +09:00
Dan Balasescu
12e5766d50
Implement OsuHealthProcessor following osu-stable
2023-11-10 18:41:02 +09:00
Dan Balasescu
fecc6f580b
Add legacy reference health processor
2023-11-10 18:40:21 +09:00
Bartłomiej Dach
c522a703eb
Merge branch 'master' into skin-size-editing
2023-11-10 18:19:27 +09:00
Dean Herbert
1c63f1f89d
Merge pull request #25348 from bdach/less-basic-touchscreen-detection
...
Implement basic touchscreen detection
2023-11-10 18:01:40 +09:00
Dean Herbert
35e11c7c63
Rename diagonal scale variable and update xmldoc
2023-11-10 17:55:02 +09:00
Dan Balasescu
a8cf105beb
Merge pull request #25342 from peppy/slider-combo-matching-2
...
Fix osu! (slider) combo not matching expectations when classic mod is disabled
2023-11-10 15:07:05 +09:00
Dean Herbert
ec3b6e47fb
Change selection handling to adjust Size
instead of Scale
for edge nodes
2023-11-10 14:22:28 +09:00
Dan Balasescu
44c0442f4f
Adjust comment on Slider's judgement
2023-11-10 14:00:34 +09:00
Givikap120
e451b2197c
Delete util functions from rulesets
2023-11-09 18:23:53 +02:00
Dean Herbert
edef31f426
Correctly propagate classic behaviour flag to tail
2023-11-09 22:03:22 +09:00
Bartłomiej Dach
5180fa669b
Merge pull request #25343 from peppy/spinner-max-sample
...
Continue to play spinner bonus sounds when MAX display occurs
2023-11-09 13:34:29 +01:00
Dean Herbert
92043f45a4
Merge branch 'master' into slider-combo-matching-2
2023-11-09 18:45:37 +09:00
Bartłomiej Dach
13b599b9b6
Merge branch 'master' into less-basic-touchscreen-detection
2023-11-09 17:36:48 +09:00
Dean Herbert
c00a1d948a
Merge branch 'master' into better-touch-settings
2023-11-07 23:21:59 +09:00
Dean Herbert
7bedf7cf16
Move static method to end of file
2023-11-07 21:08:49 +09:00
Dean Herbert
38c9a98e67
Add failing test coverage
2023-11-07 19:54:21 +09:00
ratinfx
aa87e0a44d
HitObject Selection logic and separation for gamemodes
...
+ moved time_regex into EditorTimestampParser
2023-11-07 01:36:58 +01:00
Susko3
05d9418718
Rename setting to TouchDisableGameplayTaps
for better visibility when searching
2023-11-07 00:13:46 +01:00
Susko3
ea357bafdd
Fix tests by using the correct setting for touch input
2023-11-06 20:53:22 +01:00
Salman Ahmed
75fbbb35ad
Move cursor scale application within OsuCursor
...
Doing so takes down two birds with one stone.
1. `ResumeOverlay` having to manually apply cursor scale to its "resume
cursor".
2. Resume cursor input handling scaling up with the gameplay setting. Now, only the sprite itself gets scaled.
2023-11-06 18:30:55 +03:00
Salman Ahmed
915feeffb0
Revert gameplay cursor scale changes
2023-11-06 17:37:32 +03:00
Dean Herbert
92e4a8666d
Add spinnerbonus-max
support and fallback to spinnerbonus
2023-11-06 18:43:47 +09:00
Dean Herbert
b219a371a9
Move sample playback logic local to avoid edge case with no bonus ticks
...
Can't see a better way of doing this.
2023-11-06 18:29:51 +09:00
Bartłomiej Dach
febd004bda
Merge branch 'master' into less-basic-touchscreen-detection
2023-11-06 07:41:35 +01:00
Salman Ahmed
9cb331641c
Rename container
2023-11-05 06:34:09 +03:00
Salman Ahmed
48a75f6152
Fix resume cursor following gameplay cursor scale setting
2023-11-05 06:28:10 +03:00
Givikap120
5597e819be
fixed bug in AR formula
2023-11-04 18:01:10 +02:00
Givikap120
57170501cd
Improve code quality
2023-11-04 17:25:09 +02:00
Bartłomiej Dach
d3c5988bf1
Merge branch 'master' into slider-combo-matching-2
2023-11-03 09:11:39 +01:00
Bartłomiej Dach
8e9006b5d5
Declare Touch Device incompatible with Autopilot
...
With Autopilot active, Touch Device no longer matters.
2023-11-02 22:57:05 +01:00
Bartłomiej Dach
9f11a04cc7
Generalise notion of 'touch device' mod
2023-11-02 19:14:05 +01:00
Bartłomiej Dach
a0757ce13f
Update xmldoc to match flipped flag semantics
2023-11-02 18:58:14 +01:00
Bartłomiej Dach
86ede717cb
Clean up comment
2023-11-02 18:52:47 +01:00
Dean Herbert
ac6fb386d1
Remove nested ternary
2023-11-02 23:42:52 +09:00
Dean Herbert
f0f595ca40
Continue to play spinner bonus sounds when MAX display occurs
2023-11-02 19:52:49 +09:00
Dean Herbert
818432fab4
Fix non-classic osu! combo not matching expectations
2023-11-02 19:27:55 +09:00
Dean Herbert
bf9f20705f
Simplify classic behaviour flag to only need to be specified on the slider itself
2023-11-02 18:31:29 +09:00
Dean Herbert
a7705284e7
Add better commenting around DrawableSliderHead
logic
2023-11-02 18:31:28 +09:00
Dean Herbert
9af2a5930c
Remove redundant passing of Scale
to nested objects
2023-11-02 17:52:10 +09:00
Dean Herbert
9c1f4b552e
Rename and invert flags for slider classic behaviours
2023-11-02 17:43:21 +09:00
Bartłomiej Dach
64feea80db
Merge pull request #25334 from peppy/fix-bubble-crash-again
...
Fix another potential crash in bubbles mod
2023-11-02 09:32:09 +01:00
Bartłomiej Dach
ad82ada030
Trim redundant comments
2023-11-02 08:18:37 +01:00
Dean Herbert
48bdeaeff1
Fix another potential crash in bubbles mod
...
Storing `DrawableHitObject` for later use is not safe – especially
when accessing `HitObject` – as it's a pooled class. In the case here,
it's important to note that `PrepareForUse` can be called a frame or
more later in execution, which made this unsafe.
Closes https://github.com/ppy/osu/issues/24444 .
2023-11-02 02:43:51 +09:00
Dean Herbert
c2de03aa44
Fix all spinner ticks being alive and causing performance degradation
...
Regressed in https://github.com/ppy/osu/pull/25216 .
The new logic will ensure at least one tick is ready for judgement.
There shouldn't be a case where more than one is needed in a single
frame.
2023-11-01 18:28:07 +09:00
Bartłomiej Dach
e5b51f769c
Fix incorrect assertion placement in spinner rotation tracker
...
Checking the delta after the application of rate is not correct. The
delta is in screen-space *before* the rate from rate-changing mods were
applied; the point of the application of the rate is to compensate for
the fact that the spinner is still judged in "track time" - but the goal
is to keep the spinner's difficulty *independent* of rate, which means
that with DT active the user's spin is "twice as effective" to
compensate for the fact that the spinner is twice as short in real time.
In another formulation, with DT active, the user gets to record replay
frames "half as often" as in normal gameplay.
2023-10-30 21:28:29 +01:00
Dean Herbert
fbba3787d1
Merge pull request #25190 from frenzibyte/match-skin-element-animation-support
...
Match capability of animating legacy skin elements with osu!(stable)
2023-10-30 18:25:06 +09:00
Dean Herbert
a91b704d21
Fix some new nullable inspections
2023-10-30 15:10:10 +09:00
Bartłomiej Dach
99e590c8dd
Fix legacy sprite texts not matching stable with respect to fixed width
...
stable's `pSpriteText` has a `TextConstantSpacing` flag, that is
selectively enabled for some usages. In particular, these are:
- mania combo counter (not yet implemented)
- taiko combo counter (not yet implemented)
- score counter
- accuracy counter
- scoreboard entries (not yet implemented)
Everything else uses non-fixed-width fonts.
Hilariously, `LegacySpinner` _tried_ to account for this by changing
`Font` to have `fixedWidth: false` specified, only to fail to notice
that `LegacySpriteText` changes `Font` in its BDL, making the property
set do precisely nothing. For this reason, attempting to set `Font`
on a `LegacySpriteText` will now throw.
2023-10-27 20:14:39 +02:00
Bartłomiej Dach
c9cb0561f7
Move maxSizePerGlyph
optional ctor param to init-only property
...
I'm doing this as I'm about to add more similar properties to
`LegacySpriteText` and I don't want to create a twenty-argument
constructor monstrosity.
2023-10-27 19:48:10 +02:00
Dean Herbert
24b1d1e955
Fix code quality fail
2023-10-27 18:18:07 +09:00
Dean Herbert
f165653e8d
Merge pull request #25233 from Termincc/FreezeFrame-and-Transform-Compatibility
...
Make FreezeFrame and Transform Incompatible
2023-10-27 16:53:23 +09:00
Dan Balasescu
9a0882af69
Merge pull request #25218 from peppy/better-slider-judgement-handling
...
Fix out-of-order judgements when missing a slider head
2023-10-27 15:50:13 +09:00
Termincc
8b9b085ef5
Address mod incompatibilities
...
Makes FreezeFrame and Transform mods incompatible.
2023-10-26 22:15:10 +10:00
Bartłomiej Dach
9c9000027a
Merge pull request #25221 from peppy/fix-repeat-dim
...
Fix repeat circles on sliders not correctly getting dimmed
2023-10-25 11:43:46 +02:00
Dean Herbert
2f95e7a284
Add note about implementation being shared
2023-10-25 15:44:51 +09:00
Dean Herbert
6eafb66fdf
Fix DrawableSliderTail
potentially forcing miss on head too early
2023-10-25 15:44:42 +09:00
Dean Herbert
74f794a549
Fix repeat circles on sliders not correctly getting dimmed
2023-10-25 14:01:55 +09:00
Dean Herbert
23ea128f30
Merge branch 'master' into velocity-based-ball-animation
2023-10-25 14:01:19 +09:00
Dean Herbert
121fa6f165
Simplify pre-checks in HitObjectApplied
delegate
2023-10-25 13:53:20 +09:00
Dean Herbert
34505b3933
Merge pull request #25185 from bdach/minimum-sample-volume
2023-10-24 22:04:43 +09:00
Dean Herbert
bf313cc732
Merge pull request #25216 from bdach/spinner-tick-lifetime
...
Fix spinner ticks not playing samples correctly sometimes
2023-10-24 19:12:49 +09:00
Dean Herbert
5503407907
Force miss head when a tick or repeat is successfully judged
2023-10-24 19:10:57 +09:00
Dean Herbert
5eefc5323d
Standardise DrawableSliderRepeat
/ DrawableSliderTick
judgement implementations
2023-10-24 19:10:57 +09:00
Dean Herbert
176cb0dd28
Remove unused variable
2023-10-24 19:10:57 +09:00
Dean Herbert
93147a5998
Change slider tail tick to only hold back judgement on ticks/repeats
2023-10-24 19:10:57 +09:00
Dean Herbert
68397f0e81
Remove unused using
2023-10-24 18:01:24 +09:00
Bartłomiej Dach
a0c8158033
Remove unnecessary LifetimeEnd
specification
2023-10-24 10:42:03 +02:00
Bartłomiej Dach
0e5a521695
Merge pull request #25157 from peppy/spinner-anti-cheese-final
...
Fix spinner cheese by accounting for spin directionality
2023-10-24 08:13:32 +02:00
Dean Herbert
ded99c4097
Simplify calculation
2023-10-24 14:32:03 +09:00
Salman Ahmed
ff66b74b0e
Refactor logic to support DHO pooling
2023-10-24 02:24:00 +03:00
Bartłomiej Dach
cfd8d05fde
Fix spinner ticks not playing samples correctly sometimes
...
Noticed this during work on https://github.com/ppy/osu/pull/25185 .
In some circumstances, it seemed that spinner bonus ticks (and mostly
them specifically) would not always play with the correct volume.
Hours of debugging later pointed at a trace at
`DrawableAudioWrapper.refreshLayoutFromParent()` not firing sometimes.
Initially I thought it to be some sort of framework bug, but after
preparing a diff and running final checks, I noticed that sometimes
the sample was being played *by a `PoolableSkinnableSample` that wasn't
loaded*. And determining why *that* is the case turned out with this
diff.
As it happens, spinner ticks get assigned a start time proportionally,
i.e. the 1st of 10 ticks is placed at 10% of the duration, the 2nd
at 20%, and so on. The start time generally shouldn't matter,
because the spinner is manually judging the ticks. *However*, the ticks
*still* receive a lifetime start / end in the same way normal objects
do, which means that in some cases they can *not be alive* when they're
hit, which means that the `DrawableAudioWrapper` flow *hasn't had
a chance to run*, and rightly so.
To fix, ensure that all spinner ticks are alive throughout the entirety
of the spinner's duration.
2023-10-23 21:29:55 +02:00
Salman Ahmed
0cf572d029
Use existing property and fix nullability
2023-10-23 11:46:21 +03:00
Dean Herbert
4e057b446a
Rename accumulated rotation variable
2023-10-23 16:46:15 +09:00
Dean Herbert
d0599496bd
Merge pull request #25177 from peppy/spinner-max-display
2023-10-21 11:10:09 +09:00
Salman Ahmed
2a70c331b9
Remove animation support from osu! slider reverse arrow
2023-10-20 23:59:03 +03:00
Salman Ahmed
80ce78e05d
Remove animation support from osu! hit circle overlay
2023-10-20 23:59:03 +03:00
Salman Ahmed
7373a9a784
Remove unnecessary usage of ApplyWithDoubledAlpha
2023-10-20 23:54:29 +03:00
Salman Ahmed
ac8c2a173b
Apply velocity into legacy slider ball animation rate
2023-10-20 22:47:45 +03:00
Bartłomiej Dach
b321d556b6
Enforce minimum gameplay sample volume of 5%
2023-10-20 15:50:13 +02:00
Dean Herbert
3fb74cb5f9
Move helper method to LegacyRulesetExtensions
and stop applying rounding allowance to catch
...
As discussed, it isn't used in stable like this. Was a mistake.
2023-10-20 18:57:14 +09:00
Dean Herbert
2ba6286470
Merge branch 'master' into fix-circle-radius
2023-10-20 18:53:36 +09:00
Dean Herbert
686c45e21b
Merge branch 'master' into legacy-tick-test-coverage
2023-10-20 16:41:32 +09:00
Dean Herbert
ca3a3f600e
Update visuals of spinner implementations to show MAX score differently
2023-10-20 16:11:09 +09:00
Dean Herbert
181a98e8ef
Remove duplicate definition of bonus text in ArgonSpinner
2023-10-20 16:10:54 +09:00
Dean Herbert
3986cec949
Cap bonus score more correctly
2023-10-20 16:10:54 +09:00
Dean Herbert
f16400929d
Update bindable flow to expose every spin, even after max bonus is reached
2023-10-20 15:38:04 +09:00
Bartłomiej Dach
dcfd6a0a8a
Remove DistancedHitObjectComposer
inheritance from osu! composer
2023-10-19 11:46:30 +02:00
Bartłomiej Dach
3ab083b696
Split IPositionSnapProvider
from IDistanceSnapProvider
...
In preparation to remove `DistancedHitObjectComposer`, split off
`IPositionSnapProvider` from `IDistanceSnapProvider`.
`DistancedHitObjectComposer` was not touching `IPositionSnapProvider`'s
only interface member at all, it was just forwarding it for subclasses
to override to their own leisure.
2023-10-19 11:45:24 +02:00
Dean Herbert
3a5490892c
Centralise and repair circle size calculations game-wide
2023-10-18 19:50:42 +09:00
Dean Herbert
6ae82c5e73
Fix circle scale not matching stable due to missing multiplier
...
This multiplier has to exist.
I'm not guaranteeing that the rest is correct here. Should we be doing
proper cross-testing on this? Maybe, but it's going to be hard to get
right. We could likely check as far as "game pixels", but there's still
a chance that the osu-framework could be doing something weird in the
rest of the hierarchy where playfield scale is involved.
Closes https://github.com/ppy/osu/issues/25162 . Tested to fix the linked
replay.
2023-10-18 18:35:14 +09:00
Dean Herbert
54da6f1048
Merge pull request #25160 from bdach/repeat-arrow-hidden-fade
...
Adjust slider repeat transforms to closer match stable
2023-10-18 18:03:48 +09:00