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 IBindable
s 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
Dan Balasescu
a1a46e58fc
Move validation to DHO.ApplyResult()
2023-10-10 21:42:37 +09:00
Dan Balasescu
18d20cad8b
Adjust xmldoc for readability
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2023-10-10 17:04:21 +09:00
Dan Balasescu
04ce223e66
Remove pairings that shouldn't be valid
2023-10-10 10:03:37 +09:00
Dan Balasescu
594bcc2ab5
Apply suggestion to condense method
2023-10-10 09:56:26 +09:00
Bartłomiej Dach
71c4b138fb
Merge branch 'master' into fix-legacy-score-multipliers-2
2023-10-09 10:53:14 +02:00
Dan Balasescu
326702165f
Update HitResult helpers with new judgement
2023-10-09 11:50:17 +09:00
Dan Balasescu
65ac617be4
Actually validate judgements
2023-10-09 10:45:29 +09:00
Dan Balasescu
9415fe4446
Add mania hold note body + combo break judgement
2023-10-09 09:47:00 +09:00
Dean Herbert
cfb18e18c0
Add better commenting around legacy last tick edge case
2023-10-04 13:45:26 +09:00
Dan Balasescu
da2a4681d9
Add method to retrieve legacy score multiplier
2023-10-02 16:52:01 +09:00
Dan Balasescu
b4b7a7ea5e
Add LegacyBeatmapConversionDifficultyInfo abstraction
2023-10-02 16:52:01 +09:00
Dean Herbert
62bcb62842
Document remaining pieces of LastTick
and add back legacy prefix for generation flow
2023-09-29 16:58:17 +09:00
Dean Herbert
81485c548c
Move LegacyLastTickOffset
specification to generation code and stop passing everywhere
2023-09-29 14:32:29 +09:00
Bartłomiej Dach
8215c4cb0e
Merge branch 'master' into mods-stable-ordering
2023-09-28 18:30:56 +02:00
Dean Herbert
f340bb99e8
Nudge text right 1 pixel
2023-09-28 22:23:45 +09:00
Dean Herbert
e4fd3b65f4
Avoid recreating ModSettingChangeTracker
unless required
2023-09-28 22:18:28 +09:00
Dean Herbert
b1f6803371
Remove unused commented code
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-28 22:11:03 +09:00
Dean Herbert
e0e222c1fa
Include mention of what to do when not using field in xmldoc
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-28 22:10:30 +09:00
Dean Herbert
d4cf6e100f
Update other usages of OsuIcon.ModBg
and remove
2023-09-28 19:03:34 +09:00
Dean Herbert
2ff376daa4
Adjust to include shadow, and use new main background sprite which includes shadow
2023-09-28 19:03:34 +09:00
Dean Herbert
b8953e8ce1
Code quality pass
2023-09-28 19:03:34 +09:00
Dean Herbert
2800920ed9
Adjust font size slightly for better display when small
2023-09-28 19:03:34 +09:00
Dean Herbert
7d74d84e6c
Display mod icons using stable ordering
...
In discussion with nanaya, we likely want this now that we're adding the
ability for some icons to be extended. Historically mod icons have been
displayed in a stable but arbitrary order (based on their position in
the `Mods` enum).
This change aims to make them stable across lazer scores (where they are
stored based on .. the order the user selected them).
2023-09-28 16:48:09 +09:00
Dean Herbert
1246f15186
Don't show extended information where it duplicates already visible information
2023-09-27 19:29:03 +09:00
Dean Herbert
6e602929a4
Add support for tracking settings changes
2023-09-27 19:29:03 +09:00
Dean Herbert
192eb541c0
Adjust sizing to work better with expansion (no more centre anchoring)
2023-09-27 19:29:03 +09:00
Dean Herbert
16e752e07d
Add basic structure and test coverage for extended info on mod icon
2023-09-27 19:29:03 +09:00
Dean Herbert
0dcf7a2fa9
Merge branch 'master' into split-legacy-scoring-attribs
2023-09-26 15:52:27 +09:00
Salman Ahmed
9e4a56d64e
Merge branch 'master' into update-framework
2023-09-21 19:49:20 +03:00
Bartłomiej Dach
69ed99dfd5
Merge branch 'master' into mania-edit-disable-sv
2023-09-21 09:13:27 +02:00
Dean Herbert
bf984388b3
Update clocks in line with framework changes
2023-09-20 21:17:08 +09:00
Bartłomiej Dach
28da5baea4
Merge branch 'master' into fix-slider-length
2023-09-20 11:10:01 +02:00
Dean Herbert
41a8239e49
Remvoe null default for mods which can't be null
2023-09-20 15:27:50 +09:00
Dean Herbert
c6cc858967
Change implementation of "show speed changes" to require explicit ruleset support
2023-09-20 15:27:30 +09:00
Dean Herbert
c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv
2023-09-20 14:23:07 +09:00
Dean Herbert
12611a09f1
Merge branch 'master' into editor/checks/delayed-hitsounds
2023-09-20 14:18:41 +09:00
Dean Herbert
aea7f81f1c
Merge pull request #24800 from sw1tchbl4d3r/invalid_bank
...
Default to normal bank if invalid sample bank is specified
2023-09-19 22:28:34 +09:00
Bartłomiej Dach
c4a0ca326e
Replace sample bank fix with more correct fix
...
stable does not treat unknown enum members as `None` / `Auto`, it treats
them as `Normal`:
switch (sampleSet)
{
case SampleSet.Normal:
default:
sample = 0;
break;
case SampleSet.None:
case SampleSet.Soft:
sample = 1;
break;
case SampleSet.Drum:
sample = 2;
break;
}
(from 1531237b63/osu
!/Audio/AudioEngine.cs#L1158-L1171).
2023-09-19 13:53:49 +02:00
Magnus-Cosmos
73db68a49a
Check if path lists are empty
2023-09-19 02:28:28 -04:00
Magnus-Cosmos
a9b45c6fdc
Fix slider path calculations for edge cases
2023-09-19 01:31:26 -04:00
Magnus-Cosmos
83584519e6
Fix extension check using control points instead of path points
2023-09-18 11:40:00 -04:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point
2023-09-15 11:14:28 +02:00
Dean Herbert
56cc2b62f0
Make not extension method
2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff
Move to extension method and throw on non-legacy ruleset
2023-09-15 17:38:34 +09:00
sw1tchbl4d3
5b2af7f264
Default to none bank if invalid samplebank is specified
2023-09-13 12:44:00 +02:00
Dean Herbert
d146da9546
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-13 16:43:48 +09:00
Givikap120
1a70110a4e
Added BeatmapAttributesDisplay support
2023-09-12 16:44:44 +03:00
Givikap120
c61212c523
Merge pull request #1 from Givikap120/master
...
add display to calibrate
2023-09-12 13:02:19 +03:00
Dean Herbert
4ecc4632aa
Make rounding error even less precise
...
Basically matching the old code more closely to avoid too much precision
from doing math in a slightly different way.
2023-09-12 18:41:09 +09:00
Dean Herbert
04ab44bb7a
Reword xmldoc to read better
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-12 15:28:55 +09:00
Dan Balasescu
2334be1987
Split legacy scoring attributes into a separate object
2023-09-07 21:10:38 +09:00
Dean Herbert
b34a36f6ce
Remove all usage of LegacyDifficultyControlPoint
2023-09-07 17:41:57 +09:00
Bartłomiej Dach
9c6f77b26e
Fix too many things being exposed
2023-09-07 08:11:04 +02:00
Dean Herbert
e05d7d5f8d
Inline local control
2023-09-07 14:22:06 +09:00
Dean Herbert
d2a6235135
Fix code quality issues
2023-09-07 14:19:19 +09:00
isakvik
2ab11ab568
adds new diffsetting control that shows millisecond values for approach rate override
2023-09-07 01:41:22 +02:00
isakvik
3db0d0d341
extendable minimum AR value for osu!std diff adjust mod, set to -10
2023-09-06 23:26:34 +02:00
Dean Herbert
1a37543d28
Rename SliderVelocity
to SliderVelocityMultiplier
to distinguish from Velocity
2023-09-06 19:01:08 +09:00
tsrk
a4e146ad9b
style: remove usage of HIT_FLOURISH
...
Unaware clueless usage
2023-09-01 21:02:43 +02:00
tsrk
2e2dcd99a6
fix(AudioCheckUtils): use Path.GetExtension()
...
To avoid filename escaping
2023-09-01 20:56:54 +02:00
tsrk
5f00d3e2a4
style: convert to using
declaration for less nesting
2023-09-01 20:54:02 +02:00
Dean Herbert
37c2b330a2
Move toggle implementation to work on all scrolling rulesets automatically
2023-09-01 19:53:10 +09:00
Dean Herbert
6ce251fbb5
Expose base VisualisationMethod
so we don't need to new
it locally per ruleset
2023-09-01 19:17:53 +09:00
Dean Herbert
0f5eff1230
Merge branch 'master' into mania-edit-disable-sv
2023-09-01 19:08:48 +09:00
Dean Herbert
cbd4b91feb
Merge pull request #24678 from Nabile-Rahmani/bot-scores
...
Fix and use score user's IsBot property in results screen animation
2023-08-30 14:00:35 +09:00
Nabile Rahmani
270e2a6600
Update osu.Game/Rulesets/Mods/ModExtensions.cs
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-29 23:59:08 +02:00
Nabile Rahmani
b658b0e346
Fix and use score user's IsBot property in results screen animation
...
While a mod-created replay did flag itself as performed by a bot, the extension method converting it into a Score did not copy all the generated properties.
As noted, it might be preferable for ModCreatedUser to inherit APIUser and forward it as-is to the Score instance.
Related to PR #24675
2023-08-29 23:28:50 +02:00
tsrk
5ecd5142d8
fix(AudioCheckUtils): add license header
2023-08-29 23:27:15 +02:00
tsrk
b3d432b0d5
fix: issue template typo in CheckDelayedHitsounds
2023-08-29 20:15:33 +02:00
tsrk
c1a7ad09b4
style: move common audio utils to separate static class
2023-08-29 20:10:35 +02:00
tsrk
a7a64b57e9
fix: use using
statement for waveform auto-disposal
2023-08-29 19:46:19 +02:00
tsrk
a04333c17b
style: use HitSampleInfo.All
properties
2023-08-29 19:42:37 +02:00
Bartłomiej Dach
d07530b241
Mark "Score V2" mod as not user-playable
...
The mod generally will only be present on scores imported from stable.
As such, it's probably ok to mark it as such.
The primary reason for this change is to address #24436 (Score V2 being
visible on beatmap overlay leaderboard mod selector).
There is one possibly-unintended consequence of this change, namely that
the results screen uses `UserPlayable` to determine as to whether
animations should be played back, with the intention of turning off the
animation playback for autoplay scores specifically. Therefore, turning
off this flag will mean that the results screen animations will not play
out for Score V2 scores - but I tend to consider this as either largely
unimportant, or something that should be fixed in some other way
(possibly by checking against the autoplay mod directly).
Other usages of `UserPlayable` are either innocuous, or straight-up good
safeties going forward in the context of Score V2 (guards against
selection in mod select overlays, against score submission with
the mod).
2023-08-29 11:52:11 +02:00
Givikap120
290f8db341
fixed stated problems
...
removed functions from `Ruleset.cs` and added a `GetEffectiveDifficulty()` instead
2023-08-26 02:13:14 +03:00
tsrk
29a46f5b36
style(editor/checks): add issues for delays with no silence
2023-08-25 11:46:09 +02:00
tsrk
4c32e9a479
style: use more rigorous hitsound filtering
2023-08-25 00:37:45 +02:00
Givikap120
17b9b1649a
Fixed "works only for std" problem
...
1) Now it use AR/OD calculation from Ruleset class
2) Implemented needed functions in each of default rulesets
2023-08-25 00:58:26 +03:00
tsrk
50dbf564a5
revert: use old wording
...
This makes more sense wrt to the complete silence thing.
Refs: f7599c5b
2023-08-24 23:52:41 +02:00
tsrk
f7599c5bc4
style: reword
2023-08-24 23:41:56 +02:00
tsrk
273593a0ee
style: typo
2023-08-24 23:25:42 +02:00
tsrk
208e94e9be
style(editor/checks): add type nullability for Stream
2023-08-24 21:33:54 +02:00
tsrk
df55a2f683
style(editor/checks): fix inconsistent argument names
2023-08-24 21:31:28 +02:00
tsrk
12bff9659b
Merge branch 'master' into editor/checks/delayed-hitsounds
2023-08-24 21:05:59 +02:00
tsrk
a885bf6ebf
feat(editor/checks): check for delayed hitsounds
...
I really just borrowed the implementation from MapsetVerifier
2023-08-24 21:05:40 +02:00
Givikap120
49598774e0
Added a "Adjust pitch" switch
...
Adjust pitch switch in DoubleTime and HalfTime mods
Also Nightcore and Daycore is now inherit from RateAdjust
2023-08-24 15:00:32 +03:00
Dean Herbert
5ddb10281b
Move combo exponent to shared constant
2023-08-24 14:55:44 +09:00
Dean Herbert
72d2715222
Show mod settings as "on" or "off" rather than "True" or "False"
2023-08-23 20:21:43 +09:00
Dean Herbert
91c2cadb47
Add missing colon in mod settings tooltip
2023-08-23 19:13:32 +09:00
Bartłomiej Dach
8cd9f0822a
Merge branch 'master' into judge-fix
2023-08-22 09:44:58 +02:00
Bartłomiej Dach
5be5335784
Reword comment to be better
2023-08-22 09:37:54 +02:00
Dean Herbert
4e9e084b2c
Merge branch 'master' into scorev3
2023-08-22 15:52:22 +09:00
OliBomby
e283aa2843
Update inline comments
2023-08-21 13:09:31 +02:00
OliBomby
5bc11ed358
Revert "Ensure invariant of monotone time"
...
This reverts commit 5d1ccc2601
.
2023-08-21 13:02:23 +02:00
OliBomby
c7b1c75379
Revert "Fix typo"
...
This reverts commit 90f2acaf0a
.
2023-08-21 13:00:01 +02:00
Bartłomiej Dach
1d657a8844
Merge branch 'master' into fix-slider-reversing
2023-08-21 09:29:46 +02:00
Bartłomiej Dach
dd1ac461db
Reformat xmldoc
2023-08-21 08:29:51 +02:00
OliBomby
56b1062c2f
expand xmldoc
2023-08-19 19:39:29 +02:00
Bartłomiej Dach
0a55830c16
Add braces for clarification
...
I like no-braces for single-line ifs as much as anyone, but with inline
comments involved it gets rather dicey.
2023-08-19 14:34:20 +02:00
Pasi4K5
44a85139e4
Update Reverse()
based on the changes in #24581
2023-08-19 02:40:18 +02:00
Pasi4K5
47d787b359
Merge remote-tracking branch 'OliBomby/fix-segment-ends' into fix-slider-reversing
2023-08-19 02:38:34 +02:00
Pasi4K5
0e691d5935
Revert changes in SliderPath
2023-08-19 00:16:05 +02:00
OliBomby
ff07fbae15
fix GetSegmentEnds
2023-08-18 12:20:40 +02:00
Dan Balasescu
a2fd7707a1
Allow toggling SVs in the editor
2023-08-18 18:55:24 +09:00