1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 03:02:53 +08:00
Commit Graph

5703 Commits

Author SHA1 Message Date
Bartłomiej Dach
22e9c4a3b5
Use private interface rather than weird inheritance 2024-02-13 10:20:06 +01:00
James Wilson
5101979ac0
only use LegacyReplayPressHandler on legacy replays 2024-02-13 00:34:06 +00:00
Givikap120
5639155009 Update OsuModTraceable.cs 2024-02-12 23:31:00 +02:00
Givikap120
6402f23f02 Added Traceable support for pp 2024-02-12 21:00:15 +02:00
tsunyoku
cc733ea809 add inline comment for supposedly backwards ternary 2024-02-12 18:00:05 +00:00
tsunyoku
2a02566283 refactor down and wasLeft management into respective PressHandler classes 2024-02-12 17:45:00 +00:00
tsunyoku
581ae2f679 handle key presses when watching legacy relax replays 2024-02-12 12:51:35 +00:00
tsunyoku
c5f392c17d only compute flashlight in osu! difficulty calculations when required 2024-02-10 15:25:03 +00:00
Bartłomiej Dach
6954a185c4
Merge branch 'master' into deselect-slider-adds-control-point-bug 2024-02-10 15:35:03 +01:00
Berkan Diler
6adf0ac01e Use new LINQ Order() instead of OrderBy() when possible 2024-02-08 18:01:00 +01:00
Dan Balasescu
1f13124b38
Always process position as long as it's hittable
For example... If a hitobject is pressed but the result is a shake, this
will stop processing hits.
2024-02-07 03:52:56 +09:00
Dan Balasescu
e2867986c5
Add xmldocs 2024-02-07 03:52:14 +09:00
Dan Balasescu
38f7913b31
Fix inverted condition 2024-02-07 03:50:56 +09:00
Dan Balasescu
9b8f206486
Enable NRT for DrawableHitCircle to clean up 2024-02-07 03:38:07 +09:00
Dan Balasescu
44b1515cc5
Remove LangVersion redefintions 2024-02-07 03:28:40 +09:00
Bartłomiej Dach
d150d69abf
Merge branch 'master' into heatmap-misses 2024-02-06 18:02:50 +01:00
Bartłomiej Dach
2a11d37995
Merge pull request #27062 from smoogipoo/fix-heatmap-offset
Fix hit accuracy heatmap points being offset
2024-02-06 18:02:30 +01:00
Dan Balasescu
99d716f8fc
Make miss points into crosses 2024-02-06 22:30:22 +09:00
Dan Balasescu
5850d6a578
Show near-misses on the results-screen heatmap 2024-02-06 22:30:22 +09:00
Dan Balasescu
891346f795
Fix hit accuracy heatmap points being offset 2024-02-06 21:56:52 +09:00
Dean Herbert
d784934bce
Merge pull request #26935 from bdach/new-mods-for-pp
Allow a few new mods and mod settings for pp
2024-02-06 20:54:20 +08:00
Bartłomiej Dach
a84f53b169
Allow pp for Blinds
The mod does impact pp, but it requires no extra difficulty attributes
(https://github.com/ppy/osu/pull/26935#issuecomment-1925734171).
2024-02-06 13:03:05 +01:00
Dan Balasescu
c18cd65081
Merge pull request #26694 from chandler14362/hit-object-result-allocations
Avoid closure allocations when applying hit object results
2024-02-06 17:49:26 +09:00
Bartłomiej Dach
c093fe6bcf
Merge pull request #26763 from frenzibyte/fix-relax-mod
Fix relax mod not respecting tracking state of sliders when triggering actions
2024-02-06 09:41:44 +01:00
kongehund
0da67e64b3 Fix deselecting slider adding control points 2024-02-06 00:28:39 +01:00
Bartłomiej Dach
f65449375e
Merge branch 'master' into scrolling-alloc 2024-02-05 19:59:47 +01:00
Bartłomiej Dach
3e29a9c334
Merge pull request #26877 from smoogipoo/adjust-default-minresult
Adjust default min result of `SliderTailHit`, remove override
2024-02-05 14:15:38 +01:00
Dean Herbert
cc5e1e0af3
Merge pull request #26957 from smoogipoo/net8
Update to .NET 8 + C# 12
2024-02-05 20:59:31 +08:00
Bartłomiej Dach
fb80d76b4a
Apply further changes to remove remaining weirdness 2024-02-05 13:37:38 +01:00
Bartłomiej Dach
39fe078984
Merge branch 'master' into hit-object-result-allocations 2024-02-05 13:24:10 +01:00
Bartłomiej Dach
efe6bb25b1
Refactor result application around again to remove requirement for fields
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-02-05 13:21:01 +01:00
Andrei Zavatski
e2e3c61c9c Use AliveEntries where we don't need startTime order 2024-02-03 19:54:08 +03:00
Dan Balasescu
6e4d52863c
Upgrade to .NET 8 SDK 2024-02-02 21:28:51 +09:00
Bartłomiej Dach
f89923aeae
Annotate mods that give pp 2024-01-31 14:59:35 +01:00
Bartłomiej Dach
dfea2ade6d
Revert incorrect end position optimisation
Closes https://github.com/ppy/osu/issues/26867.

Reverts 882f490390
and ce643aa68f.

The applied optimisation may have been valid as long as it was
constrained to `Slider`. But it is not, as `SliderTailCircle` stores a
local copy of the object position. And as the commit message of
ce643aa68f states, this could be bypassed
by some pretty hacky delegation from `SliderTailCircle.Position` to the
slider, but it'd also be pretty hacky because it would make flows like
`PositionBindable` break down.

Long-term solution is to probably remove bindables from hitobjects.
2024-01-31 12:45:42 +01:00
Dan Balasescu
0642a0ee11
Adjust default min result of SliderTailHit, remove override 2024-01-31 18:01:29 +09:00
Dean Herbert
fbc923b47e
Revert "Merge pull request #26870 from smoogipoo/adjust-default-minresult"
This reverts commit 1acff746ee, reversing
changes made to 696ecda398.
2024-01-31 17:51:38 +09:00
Dean Herbert
ebf637bd3c
Adjust slider tick / end misses to show slightly longer 2024-01-31 17:41:26 +09:00
Dan Balasescu
9b1bbe5f48
Adjust default min result of SliderTailHit, remove override 2024-01-31 16:12:05 +09:00
Bartłomiej Dach
2667cb8b36
Merge pull request #26703 from peppy/smaller-slider-misses
Adjust slider tick / end defaults again
2024-01-29 13:51:07 +01:00
Dean Herbert
a3199333bb
Merge pull request #26698 from EVAST9919/slider-sample-alloc
Reduce sliding sample allocations in `DrawableSlider`
2024-01-29 20:37:32 +09:00
Dean Herbert
034f8c0388
Also fix spinner case 2024-01-29 20:36:59 +09:00
Dean Herbert
760368709a
Mark some delegates as static because we can 2024-01-29 16:16:28 +09:00
Salman Ahmed
ee4fe1c068 Fix relax mod not handling objects close to a previous slider's follow area 2024-01-28 23:11:42 +03:00
Dean Herbert
b6fa50c312
Reduce allocation overheads in SliderInputManager 2024-01-26 17:49:20 +09:00
Chandler Stowell
93bd3ce5ae update DrawableHitCircle.ApplyResult to pass this to its callback 2024-01-25 11:25:41 -05:00
OliBomby
c2d57dc77c Merge remote-tracking branch 'upstream/master' into edit-nodesample 2024-01-25 11:33:29 +01:00
Dean Herbert
fd9527d523
Remove weird red fade that didn't work 2024-01-25 19:31:57 +09:00
Dean Herbert
107b37494e
Update triangles skin judgment display 2024-01-25 19:31:57 +09:00
Dean Herbert
0175f6e0b8
Add new judgement drawable for argon slider misses 2024-01-25 19:31:57 +09:00
Dean Herbert
dda96d7106
Rename JudgementPiece to TextJudgementPiece 2024-01-25 19:31:57 +09:00
Nguyên Minh Hồ
d5b70ed09a Move CanRotatePlayfieldOrigin bindable to generic rotation handler 2024-01-25 16:58:44 +07:00
Nguyên Minh Hồ
2fa52de87a Fix formatting 2024-01-25 16:29:44 +07:00
Nguyên Minh Hồ
94ada87cba Un-hardcode tooltip from EditorRadioButton and add disabled tooltip for rotation popover 2024-01-25 14:32:48 +07:00
Nguyên Minh Hồ
500bed0121 Split editor toolbox radio button disabling logic from EditorRadioButton, then add disabling logic for rotate popover 2024-01-25 14:24:35 +07:00
Nguyên Minh Hồ
601ba9f194 Change rotate tool button to be enabled on single circle.
Inject osu ruleset specific rotate handler instead of generic handler.
2024-01-25 12:16:35 +07:00
Nguyên Minh Hồ
e1f8bc9692 Rename CanRotate property of SelectionRotationHandler to a more descriptive name 2024-01-25 12:10:50 +07:00
Andrei Zavatski
21b11092d6 Fix slider sliding samples allocation 2024-01-25 04:06:15 +03:00
Chandler Stowell
d2775680e6 use stack to pass action state when applying hit results
this removes closure allocations
2024-01-24 13:13:45 -05:00
Dean Herbert
b272d34960
Merge pull request #26630 from peppy/s-rank-change
Change S rank to require no miss
2024-01-24 13:27:40 +09:00
Andrei Zavatski
da992ccc55 Implement per-axis triangles clamping 2024-01-23 04:54:27 +03:00
Bartłomiej Dach
cb8ec48717
Make RankFromScore()'s dictionary param readonly
Just to make sure nobody tries any "funny" business.
2024-01-22 19:56:30 +01:00
Bartłomiej Dach
5bae9074aa
Merge branch 'master' into s-rank-change 2024-01-22 19:54:53 +01:00
Dean Herbert
c8521b49cd
Change S rank to require no miss 2024-01-22 21:43:32 +09:00
Dean Herbert
47e9846315
Adjust slider tick / end miss animations to be less busy 2024-01-22 18:48:48 +09:00
Dean Herbert
993e733fce
Merge pull request #26598 from frenzibyte/fix-storyboard-sprites-2
Remove handling for non-legacy texture lookup paths in `LegacySkin`
2024-01-22 17:50:55 +09:00
Salman Ahmed
57b2d018a9 Fix slider sometimes not updating relative anchor position 2024-01-22 02:07:32 +03:00
Andrei Zavatski
1393f52b2b Rename Masking to ClampToDrawable 2024-01-21 05:20:42 +03:00
Andrei Zavatski
e003ecb593 Change default masking value to true 2024-01-21 04:57:48 +03:00
OliBomby
9b9485f656 fix adjust axes detection 2024-01-20 15:39:38 +01:00
OliBomby
1596776a81 fix imports 2024-01-20 15:15:49 +01:00
OliBomby
e1f3f7d988 fix possible NaN in clamped scale 2024-01-20 14:49:47 +01:00
OliBomby
a4f771ec08 refactor CanScale properties 2024-01-20 01:13:01 +01:00
OliBomby
26c0d1077a Refactor scale handling in editor to facilitate reuse 2024-01-20 00:22:53 +01:00
Bartłomiej Dach
3853f63b74
Merge pull request #26567 from peppy/cusor-scale-rate
Fix cursor scale animation not matching stable on classic skins
2024-01-18 13:59:49 +01:00
Salman Ahmed
1527ab89ef Refactor DefaultApproachCircle/LegacyApproachCircle to make sense 2024-01-18 11:16:26 +03:00
Salman Ahmed
06da7f74de
Merge branch 'master' into fix-storyboard-sprites-2 2024-01-17 18:43:25 +03:00
Salman Ahmed
eaa748f075 Remove unused using directive 2024-01-17 18:35:34 +03:00
Salman Ahmed
ed1e66b8f9 Fix enabling beatmap skin cause hitobjects to use LegacyApproachCircle regardless of selected skin 2024-01-17 16:36:09 +03:00
Salman Ahmed
e54d20ea93 Remove ancient osu-resources lookup path from legacy skin textures 2024-01-17 16:33:14 +03:00
Bartłomiej Dach
d0e9402761
Fix flashlight not dimming if slider head is hit early
Closes https://github.com/ppy/osu/issues/26551

Fix is a bit nuclear (`OnUpdate` should be considered last resort),
but I don't see many better alternatives here as
`ApplyCustomUpdateState` does not work...
2024-01-16 18:56:50 +01:00
Justin
7736445659
Merge branch 'master' into spinner-speed-fix 2024-01-17 01:40:53 +11:00
Dean Herbert
c45daa373e
Fix cursor scale animation not matching stable on classic skins 2024-01-16 17:15:25 +09:00
Justin
e3ab7b1e9f Update disctop to use turnratio like stable 2024-01-16 17:22:22 +11:00
Dean Herbert
2fdbc501c2
Merge pull request #26499 from OliBomby/slider-performance
Fix lag when dragging first slider control point in editor
2024-01-16 13:22:49 +09:00
Bartłomiej Dach
71d0543213
Merge pull request #26545 from frenzibyte/fix-resume-cursor-transition-abused
Fix pop-in scale transition in resume overlay affecting input area
2024-01-15 20:06:16 +01:00
Dean Herbert
23815b2045
Merge pull request #26547 from bdach/cursor-ripple-pool-wrong
Fix cursor ripple pool not loading pooled drawables ahead of time
2024-01-15 22:56:50 +09:00
Bartłomiej Dach
399fc8195a
Fix cursor ripple pool not loading pooled drawables ahead of time
Increment the counter over at
https://github.com/ppy/osu-framework/pull/6136.
2024-01-15 13:22:22 +01:00
OliBomby
96ffe8e737 change wording 2024-01-15 12:51:08 +01:00
Dean Herbert
6b844ed8b6
Split out judgement pooling concepts from OsuPlayfield for reuse 2024-01-15 20:50:09 +09:00
OliBomby
86382f4408 Clarify comment 2024-01-15 12:49:40 +01:00
Salman Ahmed
13517869f6 Apply scale transitions in resume overlay cursor to local container 2024-01-15 14:03:23 +03:00
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
6bb72a9fcc Revert "Remove other grid types"
This reverts commit de14da95fa.
2024-01-01 15:46:07 +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