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

5307 Commits

Author SHA1 Message Date
Bartłomiej Dach
8df593a8e6
Allow pp for No Scope
Deemed as not affecting difficulty or pp in
https://github.com/ppy/osu/pull/26935#issuecomment-1925644008,
so can be treated pretty much as nomod.
2024-02-06 13:04:19 +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
f65449375e
Merge branch 'master' into scrolling-alloc 2024-02-05 19:59:47 +01:00
Bartłomiej Dach
4b5348bbbf
Merge branch 'master' into ur-alloc 2024-02-05 19:14:08 +01:00
Bartłomiej Dach
7b03bebd5f
Move algorithm description to remarks section of xmldoc 2024-02-05 18:57:57 +01:00
Bartłomiej Dach
a5aeb2ff9e
Use better variable names
It's not the 1970s. We can spare a few extra letters.
2024-02-05 18:56:20 +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
Bartłomiej Dach
39fe078984
Merge branch 'master' into hit-object-result-allocations 2024-02-05 13:24:10 +01:00
Bartłomiej Dach
2976f225e0
Improve xmldoc of state param 2024-02-05 13:22:58 +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
Bartłomiej Dach
83df6297d2
Merge branch 'master' into new-mods-for-pp 2024-02-04 12:20:31 +01:00
Dean Herbert
c64d414d1b
Merge pull request #26934 from bdach/which-mods-for-pp
Display which mods grant pp
2024-02-04 19:15:11 +08:00
Andrei Zavatski
4aa27482a9 Use SlimReadOnlyDictionaryWrapper for AliveEntries 2024-02-03 19:54:08 +03:00
Andrei Zavatski
57bc5ee04f Improve readability 2024-02-03 00:19:04 +03:00
Andrei Zavatski
dde7e068a4 Incorporate new unstable rate algo 2024-02-02 22:46:52 +03:00
Dan Balasescu
b44f77cee1
Update R# + fix inspections 2024-02-02 21:00:28 +09:00
Andrei Zavatski
53c5483eba Reduce allocation in Playfield 2024-02-02 04:53:48 +03:00
Bartłomiej Dach
ea76f7a5d8
Allow pp for Double/Half Time's "adjust pitch" setting 2024-02-01 22:33:49 +01:00
Bartłomiej Dach
96f66aaa2e
Allow pp for Accuracy Challenge
Addresses https://github.com/ppy/osu/discussions/26919.
2024-02-01 22:30:26 +01:00
Bartłomiej Dach
c114fd8f89
Allow pp for Sudden Death and Perfect regardless of "restart on fail" setting
Closes https://github.com/ppy/osu/issues/26844.
2024-02-01 22:28:49 +01:00
Bartłomiej Dach
f89923aeae
Annotate mods that give pp 2024-01-31 14:59:35 +01:00
Dan Balasescu
0642d74014
Expose as ReadOnlyDictionary 2024-01-31 22:52:57 +09:00
Bartłomiej Dach
e71c95f1fe
Reintroduce IMod.Ranked
What goes around, comes around.
2024-01-31 14:48:35 +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
Dan Balasescu
9b1bbe5f48
Adjust default min result of SliderTailHit, remove override 2024-01-31 16:12:05 +09:00
Andrei Zavatski
6b1de5446a Reduce allocaations in ScrollingHitObjectContainer 2024-01-31 07:54:28 +03:00
Andrei Zavatski
3aefc91967 Make AliveDrawableMap public 2024-01-31 07:54:07 +03:00
Andrei Zavatski
87f853fcd2 Reduce overhead in ScrollingHitObjectContainer 2024-01-30 00:59:31 +03: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
a1fe5eedd5
Merge pull request #26751 from frenzibyte/fix-multiplayer-fail-freezing-score
Fix score processor no longer applying results when failing in multiplayer match
2024-01-29 19:51:31 +09:00
Dean Herbert
760368709a
Mark some delegates as static because we can 2024-01-29 16:16:28 +09:00
Dean Herbert
76832a1495
Remove ScorePerformanceCache
This class was only used in two places, both on the results screen, but
was holding references to `OsuPlayfield` game-wide (due to unrelated
issues, but still).

Because I can't really think of future use cases for this, and running
the calculation twice at results screen isn't a huge overhead, let's
just do that for now to keep things simple.
2024-01-29 15:28:20 +09:00
Dean Herbert
de32e7815b
Clean up DrawableHitObject events on Dispose
This is just general safeties to avoid cases where
components don't correctly unbind events.
2024-01-29 15:28:20 +09:00
Salman Ahmed
64b61108ad Move solution to multiplayer flow instead 2024-01-28 00:42:04 +03:00
Salman Ahmed
5f68999893 Fix TestSceneFailJudgement asserts no longer being correct 2024-01-27 23:23:32 +03:00
Salman Ahmed
a25be9927d Fix score processor no longer applying results when failing in multiplayer match 2024-01-27 23:23:10 +03:00
Dean Herbert
347e88f597
Add note about using static callback 2024-01-26 16:21:48 +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
107b37494e
Update triangles skin judgment display 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ồ
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
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
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
Bartłomiej Dach
b85a861175
Merge pull request #26668 from peppy/adjust-tick-end-misses
Adjust slider tick / end miss animations to be less busy
2024-01-22 15:03:33 +01:00
Bartłomiej Dach
17d05b0fdf
Fix non-miss drawable judgements fading out instantly on triangles skin
`else if` proves to be insidious once again.
2024-01-22 14:23:46 +01:00
Dean Herbert
c8521b49cd
Change S rank to require no miss 2024-01-22 21:43:32 +09:00
Bartłomiej Dach
7f31070b87
Merge pull request #26648 from peppy/fix-followpoint-pooling
Fix `FollowPointConnection` pool filling up when follow points are hidden
2024-01-22 13:31:43 +01:00
Dean Herbert
47e9846315
Adjust slider tick / end miss animations to be less busy 2024-01-22 18:48:48 +09:00
Bartłomiej Dach
77ef12ebb0
Merge branch 'master' into frame-stable-catchup-zoom 2024-01-22 10:37:06 +01:00
Dean Herbert
1999e772f6
Fix FollowPointConnection pool filling up when follow points are hidden
Closes https://github.com/ppy/osu/issues/26642.

I think this applied to all pooling cases here.
2024-01-21 10:31:27 +09:00
Dean Herbert
e73910571f
Allow FrameStabilityContainer to continue updating while paused during replay playback 2024-01-18 20:13:28 +09:00
Dean Herbert
2afa4c7e1c
Remove redundant RequiresChildrenUpdate usage
We are already manually calling `base.UpdateSubTree` when we need to.
Changing this flag is doing nothing and just adds to the complexity of
the implementation.
2024-01-18 20:13:28 +09:00
Dean Herbert
c362a93a36
Change frame stable catch-up method to allow for much faster sync 2024-01-18 14:01:37 +09:00
Dean Herbert
45e52854ca
Change key overlay to use the ordering provided by rulesets
osu!mania already goes out of its way to order things correctly.
Arguably, osu!taiko just did it wrong.
2024-01-17 17:37:38 +09:00
Bartłomiej Dach
cde0c0b2ee
Merge pull request #26561 from peppy/fix-catch-banana-health-bar
Fix argon health bar showing "miss" bar for bananas
2024-01-16 11:04:38 +01:00
Dean Herbert
57a6025a2c
Add helper method to bypass judgement woes 2024-01-16 15:52:05 +09:00
Dean Herbert
902a5436f3
Fix silver S/SS not being awarded correctly 2024-01-16 13:21:15 +09:00
Dean Herbert
6b844ed8b6
Split out judgement pooling concepts from OsuPlayfield for reuse 2024-01-15 20:50:09 +09:00
Salman Ahmed
13060c8698
Merge branch 'master' into slider-tick-display 2024-01-14 16:35:34 +03:00
Bartłomiej Dach
1cd7656f33
Reorder hit results so that SliderTailHit is next to SmallTickHit
This addresses https://github.com/ppy/osu/discussions/26507.
2024-01-14 09:33:04 +01:00
Bartłomiej Dach
b7d74fda88
Revert "Keep editor in frame stable mode when possible" 2024-01-14 09:10:39 +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
a4c9e9f84d
Merge pull request #26405 from bdach/catch-scoring
Adjust catch scoring to match stable score V2
2024-01-10 01:28:56 +09:00
Bartłomiej Dach
00a4c055b3
Merge branch 'master' into catch-scoring 2024-01-09 15:49:37 +01:00
Bartłomiej Dach
8110c995dd
Merge branch 'master' into allocs-off-the-charts 2024-01-09 14:11:00 +01:00
Dean Herbert
6f8a3e15d8
Merge pull request #26382 from peppy/editor-more-frame-stable
Keep editor in frame stable mode when possible
2024-01-09 13:25:03 +09:00
Bartłomiej Dach
aa83b84bb2
Fix Cinema mod being compatible with mods that can force failure
Addresses
https://github.com/ppy/osu/pull/26080#issuecomment-1868833214.
2024-01-08 22:34:41 +01:00
Bartłomiej Dach
8295ad1feb
Change catch scoring to match score V2 2024-01-05 20:46:11 +01:00
Dean Herbert
e9289cfbe7
Reduce precision of audio balance adjustments during slider sliding 2024-01-05 02:26:30 +09:00
Dean Herbert
b12011d501
Avoid rank updates after failing 2024-01-04 17:13:24 +09:00
Dean Herbert
a4dee1a01a
Don't unset Disabled on rank (never actually disabled?) 2024-01-04 17:13:24 +09:00
Dean Herbert
705f25e4b9
Make ScoreProcessor.Rank read-only 2024-01-04 17:13:24 +09:00
Dean Herbert
65c29b4f09
Make editor remain frame stable during normal playback 2024-01-04 15:47:16 +09:00
Dan Balasescu
807443b648
Add HitResult.SliderTailHit 2023-12-30 10:38:47 +09:00
Dan Balasescu
a6313c4ee8
Expose Mod.UsesDefaultConfiguration 2023-12-29 17:16:16 +09:00
rushiiMachine
75b9d0fe66
Make flashlight scale with playfield
When the playfield is shrunk with mods such as BarrelRoll, flashlight does not account for this, making it significantly easier to play. This makes it scale along with the playfield.
2023-12-27 23:02:45 -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
Dean Herbert
8e6ea2dd9b
Update argon and triangles to match display style 2023-12-25 17:37:28 +09: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
d1000b2e6c
remove HP density 2023-12-23 23:36:15 +09:00
Bartłomiej Dach
0cbf594a8c
Make cinema mod incompatible with no fail 2023-12-23 15:10:31 +01:00
Dean Herbert
15a9740eb6
Change "cinema" mod to never fail
Addresses https://github.com/ppy/osu/discussions/26032.
2023-12-23 21:12:47 +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
7e09164d70
Merge pull request #26036 from smoogipoo/fix-perfect-mod-special-judgements
Fix perfect mod not failing with special judgements
2023-12-22 18:22:28 +09:00
Dan Balasescu
a0185508b7
Add basic consideration of density for HP drain 2023-12-22 18:08:26 +09:00
Dan Balasescu
5703546d71
Revert change to ModSuddenDeath 2023-12-22 16:43:17 +09:00
Dan Balasescu
ea778c6e0a
Fix perfect/sudden death not working on slider tails 2023-12-22 14:02:25 +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
Bartłomiej Dach
a763ad8473
Add remarks to Is{Hit,Miss}() to explain their simultaneous existence 2023-12-20 19:07:18 +01:00
Dean Herbert
eb8fb8092d
Attempt to standardise miss handling logic 2023-12-21 00:59:35 +09:00
Dean Herbert
9b383e3276
Add support for showing tick misses 2023-12-20 20:23:19 +09:00
Dean Herbert
831c273b45
Merge pull request #25887 from smoogipoo/restore-taiko-accuracy
Restore taiko accuracy to ScoreV2 values
2023-12-20 17:29:40 +09:00
Dan Balasescu
188c463c9c
Merge pull request #25934 from peppy/adjust-classic-mod-multiplier
Adjust "classic" mod multiplier to 0.96x
2023-12-20 17:11:09 +09:00
Dean Herbert
98efff0bd6
Merge pull request #25917 from rushiiMachine/remove-relax-mod-exclusions
Allow failing with "relax" and "autopilot" mods
2023-12-20 15:48:21 +09:00
Dean Herbert
14d2d0d215
Remove ModBlockFail
Was only being used by `NoFail` now.
2023-12-20 14:50:45 +09:00
Dean Herbert
d7603e8021
Adjust "classic" mod multiplier to 0.96x
Following discussions on discord, this seems like the most agreed upon
value. Increasing this is important so that imported legacy scores don't
lose too much value.
2023-12-20 14:33:14 +09:00
rushiiMachine
1b004dbebc
Allow Relax to fail and remove failable mod exclusions
Allows the Relax mod to fail, and remove NF/PF/SD mod exclusion

ref: https://github.com/ppy/osu/discussions/13229
2023-12-19 12:33:00 -08:00
OliBomby
ec578e1d9f fix near-zero length sliders n stuff being placeable 2023-12-19 21:20:21 +01:00
Dan Balasescu
c1b55c7fac
Add ScoreProcessor methods to override numeric result 2023-12-19 13:50:31 +09:00
Dean Herbert
374425ea75
Fix keyboard precision of nightcore/daycore adjustments being incorrect
Closes https://github.com/ppy/osu/issues/25854.
2023-12-19 01:07:33 +09:00
Dan Balasescu
4b9aefa6f2
Change osu ruleset to use new HP algorithm by default 2023-12-17 19:33:04 +09:00
Dan Balasescu
d7aca2f641
Add IApplicableHealthProcessor 2023-12-17 19:27:03 +09:00
Dean Herbert
4ad312ef5b
Update xmldoc for LegacyComboIncrease 2023-12-15 19:12:45 +09:00
Dean Herbert
e296730b37
Merge pull request #24642 from Givikap120/arod_rate_adjust
Show adjusted AR/OD when using DT/HT
2023-12-13 22:17:10 +09:00
Dean Herbert
8d55b3f34d
Merge pull request #25749 from smoogipoo/move-counts-to-beatmapinfo
Move object counts to BeatmapInfo
2023-12-13 17:58:13 +09:00
Dan Balasescu
8c7570525a
Merge pull request #25744 from peppy/adjust-mod-multipliers
Adjust some mod multipliers for initial leaderboard sanity
2023-12-13 17:56:13 +09:00
Dan Balasescu
0171078052
Move object counts to BeatmapInfo 2023-12-13 17:33:24 +09:00
Dean Herbert
9a982a9564
Tidy up GetRateAdjustedDisplayDifficulty implemetations 2023-12-13 17:13:21 +09:00
Dean Herbert
0259ab761b
Merge branch 'master' into arod_rate_adjust 2023-12-13 16:35:18 +09:00
Dean Herbert
fdcf87569c
Merge pull request #25711 from smoogipoo/mania-convert-song-select-keycount
Display osu!mania keycount in song select carousel panels and details
2023-12-13 16:31:25 +09:00
Dean Herbert
ec6200b4ad
Merge pull request #25743 from peppy/merge-everything-at-once
Merge everything at once
2023-12-13 16:17:06 +09:00
Dean Herbert
4983845041
Update HT mod multiplier to match stable better 2023-12-13 15:53:39 +09:00
Dean Herbert
aa4faf5e8e
Merge pull request #25740 from smoogipoo/fix-ignoremiss-accuracy-update
Fix IgnoreMiss judgements not updating accuracy
2023-12-13 15:03:07 +09:00
Dean Herbert
996bc659e4
Adjust some mod multipliers for initial leaderboard sanity 2023-12-13 14:31:19 +09:00
Dean Herbert
0be6743e87
Apply Bindable.Parse refactorings 2023-12-13 14:07:38 +09:00
Dan Balasescu
41ba1dcfce
Merge branch 'master' into editor/checks/delayed-hitsounds 2023-12-13 14:01:06 +09:00
Dean Herbert
5b00cf283d
Merge branch 'master' into drawnode-subtree-draw-cleanup 2023-12-13 14:01:01 +09:00
Dan Balasescu
6ed5613c22
Merge branch 'master' into mania-convert-song-select-keycount 2023-12-13 13:53:50 +09:00
Dan Balasescu
2930b53edd
Simplify implementation 2023-12-13 13:43:14 +09:00
Dan Balasescu
8c760e5110
Fix hitobject count when creating from an IBeatmap 2023-12-13 13:41:03 +09:00
Dan Balasescu
daaadf3fc3
Fix IgnoreMiss judgements not updating accuracy 2023-12-13 11:51:45 +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
b36db3518c
Add keycount to song select details panel and carousel panels 2023-12-09 22:31:51 +09:00
Dan Balasescu
767d5c8018
Add object counts to IBeatmapDifficultyInfo 2023-12-09 22:31:51 +09:00
Dan Balasescu
b56a78c6ec
Adjust with framework changes 2023-12-04 08:51:21 +09:00
Dan Balasescu
295a1b01d6
Adjust catch score grade cutoffs 2023-11-29 19:05:31 +09:00
Dan Balasescu
8314f656a3
Encapsulate common HP logic from osu and catch HP calculations 2023-11-24 18:32:06 +09:00
Dean Herbert
e3217bc82e
Merge branch 'master' into hp-drain-fix-breaks 2023-11-24 15:15:48 +09:00
Bartłomiej Dach
ca37e1afc2
Merge branch 'master' into scorev3 2023-11-24 10:37:10 +09:00
Dan Balasescu
10e16e4b04
Fix handling of combo offset without new combo, and incorrect lazer tests 2023-11-24 09:46:06 +09:00
Dan Balasescu
7bc2d6e6cd
Merge branch 'master' into fix-combo-handling 2023-11-23 16:22:01 +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
Dan Balasescu
30309cdf11
Merge pull request #25415 from Poyo-SSB-forks/unify-ur
Change unstable rate calculation to account for rate-change mods
2023-11-23 09:53:28 +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
Dan Balasescu
cb4568c4a1
Fix first object after break not starting a new combo 2023-11-22 17:22:48 +09:00
Dean Herbert
04640b6fb0
Improve commenting around IHasCombo interfaces
Following discusion with smoogi IRL.
2023-11-22 10:44:29 +09:00
Poyo
3a0586a8f5 Rewrite backwards assertion 2023-11-21 15:19:04 -08:00
Poyo
0cf925dadf Use better fallback
Seems better to use the rate from a non-gameplay clock than to arbitrarily apply 1.
2023-11-21 15:18:04 -08:00
Dan Balasescu
8302ebcf1a
Remove default DrainRate value 2023-11-21 19:18:02 +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
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
4b2d8aa6a6
Add ToString on PathType for better test output 2023-11-21 15:38:12 +09:00
Dean Herbert
3d094f84ad
Fix incorrect parsing of BSpline curve types 2023-11-21 15:38:12 +09:00
Bartłomiej Dach
b6215b2809
Rename and document SelectFromTimestamp 2023-11-20 21:57:14 +09:00
Bartłomiej Dach
0e0ab66148
Simplify parsing code
Less methods, less smeared around logic, saner data types.
2023-11-20 21:57:12 +09:00
Bartłomiej Dach
8e39dbbff1
Adjust casing of curve type menu items
The "Perfect curve" one in particular... fixes test failures, as some
tests were relying on this particular casing. But the new version feels
more correct anyway, so it's whatever.
2023-11-20 15:42:55 +09:00
Bartłomiej Dach
6d7d826b8b
Fix incorrect legacy conversion when B-splines are used 2023-11-20 15:08:58 +09:00
Bartłomiej Dach
80a3225bb2
Use static BEZIER instead of allocating new every time 2023-11-20 13:35:07 +09:00
Bartłomiej Dach
487326a4c7
Remove pattern matching syntax usage in switch
Also throw on unknown types.
2023-11-20 13:34:01 +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
7820c8ce4d
Decrease redundancy of equality implementations 2023-11-20 12:28:20 +09:00
Bartłomiej Dach
25c1a90047
Change switchexpr to standard switch statement 2023-11-20 12:26:45 +09:00
Bartłomiej Dach
577cb9994c
Move static instances / construction methods closer together 2023-11-20 12:26:43 +09:00
Bartłomiej Dach
b6e3e42445
Merge branch 'master' into bspline-sliders 2023-11-20 12:03:29 +09:00
Clément Burgelin (Zyfarok)
1f88658bad Fix syntax 2023-11-20 03:05:46 +01:00
Zyf
432b88674b Scoring : change formula parameters to match survey results 2023-11-20 00:02:58 +01:00
Zyf
cadd9b4ace Merge remote-tracking branch 'upstream/master' into scorev3 2023-11-19 23:53:05 +01:00
Poyo
d9cd546377 Use rate fallback in DrawableHitObject 2023-11-18 12:09:37 -08: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
Poyo
a73c870712 Allow GameplayRate to be nullable and assert before use 2023-11-15 17:00:35 -08:00
cs
520642975b Fix control point hover text and context menu 2023-11-15 07:45:09 +01:00
Poyo
f5e1734de9 Use soft-cast to access IGameplayClock 2023-11-14 13:51:55 -08:00
Bartłomiej Dach
69c2c0e427
Fix touch device mod declared valid for multiplayer
Mostly matters for web, so that it doesn't permit creation of playlist
items with touch device inside.
2023-11-14 16:30:10 +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
98e6b7744b
Cleanup 2023-11-13 13:46:47 +09:00
Poyo
f794d4dc83 Allow gameplayClock to be null 2023-11-12 13:29:40 -08:00
Poyo
e67725f5d6 Use IGameplayClock for rate 2023-11-12 12:14:19 -08:00
ratinfx
fab6fc9adb Updated comments, renamed method 2023-11-12 15:09:15 +01:00
Dean Herbert
6bd5eda2a0
Merge branch 'master' into arod_rate_adjust 2023-11-12 15:49:07 +09:00
ratinfx
c367697559 Changed TIME_REGEX to accept everything in the parentheses
- changed osu-web link to the current value
2023-11-11 16:14:26 +01: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
Poyo
064857c40b Calculate unstable rate using rate-adjusted offsets 2023-11-10 19:57:44 -08:00
Givikap120
d0d334a371 Update Ruleset.cs 2023-11-10 15:05:26 +02:00
Givikap120
9ef34fa51a FIxed stated problems 2023-11-10 15:02:15 +02:00
Dan Balasescu
fecc6f580b
Add legacy reference health processor 2023-11-10 18:40:21 +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
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
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
Bartłomiej Dach
a136f272cf
Just use yellow for system mods 2023-11-06 16:40:57 +01:00
Bartłomiej Dach
4bc36a6c90
Fix unused variable 2023-11-06 12:18:02 +01:00
Bartłomiej Dach
6deac9a5a4
Use better colours for system mods 2023-11-06 11:41:23 +01:00
Bartłomiej Dach
204cd541e2
Use placeholder mod icon for touch device 2023-11-06 10:14:56 +01:00
Givikap120
57170501cd Improve code quality 2023-11-04 17:25:09 +02: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
8784dd42c0
Do not attempt to turn on Touch Device in song select with autoplay active 2023-11-02 22:56:43 +01:00
Bartłomiej Dach
2f6ff893b5
Automatically activate and deactivate touch device mod in song select 2023-11-02 19:45:48 +01:00
Bartłomiej Dach
68efb3c110
Mark ModTouchDevice as always valid for submission 2023-11-02 19:25:57 +01:00
Bartłomiej Dach
9f11a04cc7
Generalise notion of 'touch device' mod 2023-11-02 19:14:05 +01:00
Dean Herbert
818432fab4
Fix non-classic osu! combo not matching expectations 2023-11-02 19:27:55 +09:00
Dean Herbert
57d8b5ddc9
Merge pull request #25328 from bdach/mod-cleanups-docs
Clean up mod usability flags
2023-11-01 15:48:47 +09:00
Bartłomiej Dach
a90f8dd4f6
Seal a few more multiplayer playability flags of rate-changing mods
Not really changing anything, just tightening things down to curb
possible funny business.
2023-10-31 16:20:33 +01:00
Bartłomiej Dach
955e2ed051
Seal UnknownMod
Not a class for extension.
2023-10-31 16:18:09 +01:00
Bartłomiej Dach
a644c75957
Mark ModScoreV2 as invalid for multiplayer
Doesn't do much for the client; mostly a safety for osu-web's sake,
as without the change it could theoretically fail to validate the mod
properly in multiplayer contexts.
2023-10-31 16:16:59 +01:00
Bartłomiej Dach
456f4ebba2
Seal ModScoreV2
Nobody should ever need to extend it.
2023-10-31 16:16:14 +01:00
Bartłomiej Dach
3a2645efb1
Seal ModAutoplay playability flags
Can't do much more than that due to the unfortunate fact of Cinema
inheriting from Autoplay.
2023-10-31 16:15:10 +01:00
Bartłomiej Dach
7ea298a1b6
Add xmldoc to Mod playability flags 2023-10-31 16:13:44 +01:00
Dean Herbert
a91b704d21
Fix some new nullable inspections 2023-10-30 15:10:10 +09:00
Bartłomiej Dach
79910df959
Fix catch distance snap provider not hiding slider properly
Regressed in https://github.com/ppy/osu/pull/25171.

The old code was kinda dependent on correct order of setting `Disabled`.
`CatchHitObjectComposer` would disable distance spacing in its BDL, and
then via the base `DistancedHitObjectComposer.LoadComplete()`, the
slider would be faded out. The switch to composition broke that
ordering.

To fix, stop relying on ordering and just respond to changes as they
come. That's what bindables are for.
2023-10-26 15:46:32 +02:00
Dean Herbert
34505b3933
Merge pull request #25185 from bdach/minimum-sample-volume 2023-10-24 22:04:43 +09:00
Bartłomiej Dach
b321d556b6
Enforce minimum gameplay sample volume of 5% 2023-10-20 15:50:13 +02:00
Dean Herbert
906b700aca
Fix fudge not being applied 2023-10-20 20:18:14 +09: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
686c45e21b
Merge branch 'master' into legacy-tick-test-coverage 2023-10-20 16:41:32 +09:00
Bartłomiej Dach
2c6bf9e346
Remove unused using directive 2023-10-19 20:45:47 +02:00
Dean Herbert
013b5fa916
Move beat snap grid implementation details to ScrollingHitObjectComposer 2023-10-19 23:54:34 +09:00
Dean Herbert
52c2eb93de
Merge branch 'master' into taiko-beat-snap-grid 2023-10-19 23:53:01 +09:00
Bartłomiej Dach
144ef5a87c
Remove DistancedHitObjectComposer 2023-10-19 11:46:30 +02: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
Bartłomiej Dach
cff69d63a6
Add inline commentary in Mod{Day,Night}core about different speed adjustments 2023-10-18 12:27:16 +02:00
Dean Herbert
9907adc337
Take in IBindables and tidy up multiplier handling 2023-10-18 17:39:13 +09:00
Dean Herbert
161890292f
Move audio adjustment hookup to own method for clarity 2023-10-18 17:38:11 +09:00
Dean Herbert
e56ff33271
Also share ScoreMultiplier implementation 2023-10-18 17:23:50 +09:00
Dean Herbert
43238b0cee
Split common functionality from rate adjust mods into helper class 2023-10-18 17:23:50 +09:00
Dean Herbert
eabfcfbf2a
Merge branch 'master' into pitch_change 2023-10-18 16:33:03 +09:00
Dan Balasescu
939b55020c
Merge branch 'master' into legacy-tick-test-coverage 2023-10-18 15:21:31 +09:00
Bartłomiej Dach
e927267c4d
Merge pull request #25155 from peppy/fix-new-inspections
Fix various new rider EAP inspections
2023-10-17 17:04:39 +02:00
Dean Herbert
d9fc532a9f
Merge pull request #25152 from bdach/key-binding-deduplication
Clear pre-existing bindings of same key combination to single action
2023-10-17 17:49:51 +09:00
Dean Herbert
e081fa48a2
Fix various other inspections 2023-10-17 17:48:51 +09:00
Bartłomiej Dach
7abd7fe658
Remove redundant explicit array type specification 2023-10-17 10:26:02 +02:00
Dean Herbert
4885c55ef0
Merge branch 'master' into key-binding-deduplication 2023-10-17 17:17:44 +09:00
Dean Herbert
4381169a3f
Combine selection and input handling logic for beat snap grids across all rulesets 2023-10-17 17:09:42 +09:00
Dean Herbert
d26d4b8b79
Cache IScrollingInfo at a HitObjectComposer level automatically 2023-10-17 16:42:22 +09:00
Dean Herbert
165cd07428
Persist the state of "show speed changes" between editor sessions
Addresses https://github.com/ppy/osu/discussions/25149.
2023-10-17 16:01:02 +09:00
Dan Balasescu
d2a3f14d5b
Merge branch 'master' into mania-bonus-refactor 2023-10-17 13:28:04 +09:00
Bartłomiej Dach
9c6166ec3d
Add migration to remove duplicate bindings 2023-10-16 22:20:26 +02:00
Bartłomiej Dach
639c96e60c
Prevent ruleset input managers from reading duplicate bindings 2023-10-16 21:02:24 +02:00
Bartłomiej Dach
f2436a5ecb
Remove no longer used scoring difficulty attributes 2023-10-16 12:36:58 +02:00
Bartłomiej Dach
c762241268
Merge branch 'master' into fix-hr-cs-mania-adjustment 2023-10-13 14:08:05 +02:00
Dean Herbert
3787348448
Change Perfect judgement to not give extra score 2023-10-13 16:29:02 +09:00
Dean Herbert
aabed8b6e5
Merge pull request #25093 from Joehuu/mod-switch-tiny-extended-info
Add extended info support to tiny mod switches
2023-10-13 13:40:24 +09:00
Dean Herbert
3849b11644
Fix "Hard Rock" mod affecting CS/AR in osu!mania
Closes https://github.com/ppy/osu/issues/25090.

Not sure if there are other exceptions we should account for here.
2023-10-12 19:48:47 +09:00
Joseph Madamba
764f641bc9 Add extended info support to tiny mod switches 2023-10-11 12:47:12 -07:00
Bartłomiej Dach
063623b4e6
Merge branch 'master' into remove-hold-note-ticks 2023-10-11 19:47:51 +02:00