1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 00:47:24 +08:00
Commit Graph

592 Commits

Author SHA1 Message Date
Bartłomiej Dach
017003deea
Fix osu! standardised score conversion sometimes exceeding bounds
Co-authored-by: Zyf <zyfarok@gmail.com>

Closes https://github.com/ppy/osu/issues/25860

Users reported that some stable scores would convert to large negative
total scores in lazer after the introduction of combo exponent. Those
large negative total scores were actually mangled NaNs.

The root cause of this was the following calculation going below zero
unexpectedly:

	8e8d9b2cd9/osu.Game/Database/StandardisedScoreMigrationTools.cs (L323)

which then propagates negative numbers onward until

	8e8d9b2cd9/osu.Game/Database/StandardisedScoreMigrationTools.cs (L337)

which yields a NaN due to attempting to take the square root of a
negative number.

To fix, clamp `comboPortionInScoreV1` to sane limits: to
`comboPortionFromLongestComboInScoreV1` from below, and to
`maximumAchievableComboPortionInScoreV1` from above. This is a less
direct fix than perhaps imagined, but it seems like a better one as it
will also affect the calculation of both the lower and the upper
estimate of the score.
2023-12-18 22:05:19 +01: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
Dean Herbert
3553717cc6
Fix results screen not including slider end misses in tick count 2023-11-29 21:28:25 +09:00
Bartłomiej Dach
ca37e1afc2
Merge branch 'master' into scorev3 2023-11-24 10:37:10 +09:00
Bartłomiej Dach
e28e0ef1cc
Fix classic scoring overflowing in osu! ruleset due to integer multiplication overflow
Closes https://github.com/ppy/osu/issues/25545.
2023-11-23 08:16:25 +09:00
Zyf
cadd9b4ace Merge remote-tracking branch 'upstream/master' into scorev3 2023-11-19 23:53:05 +01:00
Dean Herbert
c1c8e2968f
Move operation to after user population 2023-10-30 15:46:09 +09:00
Dean Herbert
96dd7b3333
Update the last played date of a beatmap when importing a replay by the local user 2023-10-30 15:44:16 +09:00
Bartłomiej Dach
96d784e06b
Delete ScoreInfo.HasReplay as no longer needed 2023-10-27 12:39:54 +02:00
Bartłomiej Dach
526ee6e140
Remove IScoreInfo : IHasNamedFiles inheritance 2023-10-26 14:58:33 +02:00
Bartłomiej Dach
fb2293821a
Allow watching replay from multi/playlist results screens 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
b144cfd55c
Add LegacyOnlineID handling to places that definitely need it
Mostly places that can interact with imported replays.

There are other places that use the online ID as a sort tiebreaker, or
to check presence of a score on results screens, but they should
probably still continue to only use `OnlineID`, since all scores with a
legacy online ID should have an online ID, but the converse is not
generally true.
2023-10-16 11:20:02 +02:00
Bartłomiej Dach
c53f4c144c
Encode/decode new OnlineID into/from LegacyReplaySoloScoreInfo 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
fa519984df
Move legacy online ID encode/decode to legacy property 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
c1a817fec6
Add LegacyOnlineID with backwards migration 2023-10-16 11:20:02 +02:00
Dean Herbert
5bb73632c4
Show maximum bonus statistics on results screen
Addresses https://github.com/ppy/osu/discussions/25088.
2023-10-12 14:55:16 +09:00
Bartłomiej Dach
24956588e9
Fix score importer looking up guest user by username online 2023-10-10 09:28:01 +02:00
Dan Balasescu
b9ab4a2b7c Update score conversion to consider legacy multiplier 2023-10-02 16:56:15 +09:00
Dean Herbert
d5472d3524
Merge pull request #24957 from bdach/solo-score-info-get-display-score
Add `GetDisplayScore()` extension for `SoloScoreInfo`
2023-09-29 13:09:16 +09:00
Dan Balasescu
db9113b38e
Merge pull request #24924 from bdach/update-classic-scoring
Update classic scoring formula to closer match stable score V1
2023-09-28 20:19:23 +09:00
Bartłomiej Dach
fc4390884f
Add GetDisplayScore() extension for SoloScoreInfo
To be used server-side for ppy/osu-queue-score-statistics#134.
2023-09-28 12:43:05 +02:00
Bartłomiej Dach
0769d0f49f
Merge branch 'master' into fix-batch-import-score-missing-notifications 2023-09-27 17:06:47 +02:00
Dean Herbert
2481c0b64b Don't show replay import "missing beatmap" notifications during stable import
Closes https://github.com/ppy/osu/issues/24926.
2023-09-27 17:04:43 +09:00
Dean Herbert
3708e79577 Adjust logging to still expose the underlying exception 2023-09-27 16:55:03 +09:00
Dean Herbert
d1d82d2b49 Improve notification display when score import fails 2023-09-26 15:00:56 +09:00
Bartłomiej Dach
57c00e728b
Update classic scoring algorithm to closer match stable score V1 2023-09-25 19:16:18 +02:00
Dean Herbert
f726c38215 Pass ArchiveReader instead of Stream to simplify resolution code 2023-09-19 17:49:15 +09:00
Dean Herbert
0593c76c57 Fix log output using incorrect name 2023-09-19 17:34:24 +09:00
Bartłomiej Dach
59b9a636d3
Fix grammar in comment 2023-09-18 10:46:14 +02:00
cdwcgt
f68a12003a
check beatmap hash before try to import 2023-09-04 17:37:31 +09:00
cdwcgt
58844092d6
post a notification instead a screen 2023-09-04 16:17:21 +09:00
cdwcgt
dfecddbf5d
Merge branch 'master' into missing-beatmap 2023-09-04 12:41:23 +09:00
Dean Herbert
5dee43815c Bump version to allow migration to re-run 2023-08-22 16:13:01 +09:00
Dean Herbert
b3e7416972 Rename new flag and update xmldoc to match 2023-08-21 19:36:22 +09:00
Dean Herbert
662073c472
Fix some incorrect comments / test step descriptions
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-21 19:35:04 +09:00
cdwcgt
09047538c7
remove all memory stream dispose 2023-08-04 20:02:22 +09:00
cdwcgt
0e7e36f114
don't passing stream by exception 2023-08-02 22:04:29 +09:00
cdwcgt
6637a5e7bc
ensure Performer not null 2023-08-02 18:53:27 +09:00
cdwcgt
4c43c92329
ensure dispose stream 2023-08-02 17:58:17 +09:00
cdwcgt
eef63b41da
fetch missing beatmap when import score with missing beatmap 2023-08-02 17:58:05 +09:00
Dean Herbert
30baac0f3d Avoid reprocessing scores which already failed an upgrade previously
Closes https://github.com/ppy/osu/issues/24301.
2023-07-26 16:22:10 +09:00
Dean Herbert
c1ba8fe175 Rename BackgroundBeatmapProcessor to BackgroundDataStoreProcessor 2023-07-26 16:22:10 +09:00
Dean Herbert
eb81eac635 Flag decoded scores more correctly 2023-07-15 12:19:18 +09:00
Dean Herbert
d72765b6f8
Merge pull request #24114 from peppy/editor-save-local-score-management
Ensure scores always have the correct linked `BeatmapInfo`
2023-07-07 15:40:54 +09:00
Bartłomiej Dach
ae2896ba7e
Sprinkle some more null-forgiving operators 2023-07-06 22:08:48 +02:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Dean Herbert
9ff6b3fcd3 Merge branch 'master' into editor-save-local-score-management 2023-07-06 12:28:44 +09:00
Dean Herbert
00c68cad53 Fix new scoring related properties not storing to realm due to internal spec 2023-07-05 19:47:44 +09:00
Dean Herbert
5947c2b298 Throw if a null BeatmapInfo arrives during score import process 2023-07-05 16:08:06 +09:00
Bartłomiej Dach
a55809733d
Expand ScoreInfo.BeatmapInfo xmldoc 2023-07-04 22:20:50 +02:00
Dean Herbert
f2aa80f413 Rename and adjust xmldoc on TotalScoreVersion 2023-07-04 20:04:02 +09:00
Dean Herbert
a0c3fa9c13 Move preconditions to realm migration step to simplify marker version logic 2023-07-04 17:53:53 +09:00
Dean Herbert
d74b1e148d Make ScoreInfo.BeatmapInfo nullable 2023-07-04 14:50:34 +09:00
Dean Herbert
4203e2183d
Merge branch 'master' into diffcalc-total-scorev1 2023-07-04 14:15:24 +09:00
Cootz
8d25e2c3e1 Add importer update test 2023-07-01 09:49:06 +03:00
Dan Balasescu
6822871dab Move population of LegacyTotalScore to ScoreImporter 2023-06-29 17:21:24 +09:00
Dan Balasescu
ddd870e843 Make LegacyTotalScore nullable 2023-06-29 17:19:10 +09:00
Dan Balasescu
1ca4e39fc3 Allow legacy scores to be displayed in "classic" scoring mode 2023-06-28 16:30:50 +09:00
Dan Balasescu
09bc8e45de Refactoring 2023-06-28 16:14:32 +09:00
Dan Balasescu
e291dff5ad Fix imported scores not getting LegacyTotalScore 2023-06-28 14:50:16 +09:00
Dan Balasescu
6e2369e651 Add xmldoc on LegacyTotalScore 2023-06-27 17:18:32 +09:00
Dan Balasescu
0c5c09597c Store old total score as LegacyTotalScore 2023-06-27 14:59:40 +09:00
Dan Balasescu
a9c65d200a Initial conversion of scores 2023-06-26 22:19:01 +09:00
Dan Balasescu
8e79510793 Add migration for total score conversion 2023-06-26 21:53:21 +09:00
Bartłomiej Dach
66ef199fa4
Revert nullability enable in Score (and related changes)
Causes several knock-on inspections in `OsuGame` et al. Probably best
addressed in a separate pass, because treatment is mixed at best (some
places nullcheck, some expect non-null).
2023-06-24 15:35:07 +02:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dean Herbert
362aa4b376 Also move GetMaxAchievableCombo 2023-06-16 15:26:13 +09:00
Dean Herbert
ce41ef6e5d Move OrderByTotalScore() to an extension method 2023-06-16 15:24:30 +09:00
Bartłomiej Dach
51b5a0863f
Apply migration to new standardised score on normal reimport too 2023-06-15 21:53:15 +02:00
Dean Herbert
659a042065
Merge pull request #23844 from peppy/memory-caching-nrt
Apply NRT to `MemoryCachingComponent` classes
2023-06-09 23:28:21 +09:00
Bartłomiej Dach
52412c673d
Bump replay version in encoder after Score V2 changes
One release too late, but this may help in the future if we need to
discern replays set with Score V2 from older lazer replays.
2023-06-09 14:49:49 +02:00
Bartłomiej Dach
11694f35fe
Apply NRT in MemoryCachingComponent subclasses too 2023-06-09 13:47:35 +02:00
Dean Herbert
c5e77e13de Add a very simple user cache to ScoreImporter 2023-06-09 19:03:28 +09:00
Dan Balasescu
76df11c398 Don't scale stable scores with the classic scoring mode 2023-06-08 21:38:10 +09:00
Dan Balasescu
facf7de053 Parse ScoreInfo.IsLegacyScore from replays 2023-06-08 21:38:10 +09:00
Dean Herbert
4e0f40bee5 Split out multiplier retrieval into a function and use a default multiplier for all rulesets 2023-05-30 14:20:26 +09:00
Dan Balasescu
f3591f83a2 Remove ScoreManager.GetTotalScore() 2023-05-18 20:08:49 +09:00
Dan Balasescu
510b8e4c78 Remove ScoreManager.Mode, handle per-use 2023-05-18 20:08:49 +09:00
Dan Balasescu
f2483a1cf8 Add some helper methods, fix precision differences
Introduces some error at all times, but if we're to store scores everywhere as
`long`, then the same precision should be applied to the "during
gameplay" path as well.
2023-05-18 17:44:31 +09:00
Dan Balasescu
a7b623f52a Reimplement classic scoring mode 2023-05-09 20:21:38 +09:00
Dan Balasescu
3c3c812ed6 Initial implementation of ScoreV2 2023-05-09 19:33:33 +09:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
Dean Herbert
0d095c4bb7 Remove non-Live pathway 2023-05-06 23:10:18 +09:00
cdwcgt
ce6a87b4a3
Merge remote-tracking branch 'upstream/master' into export 2023-04-09 15:02:47 +09:00
cdwcgt
de21b4a2f7
use Live<TModel>
Use RealmAccess only when needed
2023-04-09 22:21:15 +09:00
Cootz
54f864463c
Merge branch 'master' into BitmapUpdatesOnScore 2023-03-16 13:54:47 +03:00
Dean Herbert
cb9b14b30f Revert "Merge pull request #22741 from cdwcgt/do-not-fetch-deletePending"
This reverts commit 15c44a2817, reversing
changes made to de2ab05e78.
2023-03-16 19:48:36 +09:00
Cootz
556964eae0
Merge branch 'master' into BitmapUpdatesOnScore 2023-03-16 12:16:42 +03:00
cdwcgt
a705698ab6 beatmapset that already deletePending should not be fetched 2023-02-26 21:13:05 +09:00
cdwcgt
e84e011d5d Merge branch 'master' into export 2023-02-17 22:15:19 +09:00
Dean Herbert
4fdba880b1 Fix xmldoc reference fail at CI 2023-02-08 15:39:18 +09:00
Dean Herbert
5c113ddb03 Reword xmldoc to read better 2023-02-08 14:20:58 +09:00
Cootz
086b3eb542 Fix minor formating issues 2023-02-08 05:50:52 +03:00
Cootz
ab7c9a200b Fix a typo 2023-02-08 05:42:06 +03:00
Cootz
6bf56aff73 Add warning for ScoreInfo 2023-02-08 05:40:20 +03:00
Cootz
391af2791b Fix CSharpWarnings::CS1574,CS1584,CS1581,CS1580 2023-02-08 05:23:42 +03:00
PC
7e127dafe2 Update reference 2023-02-07 11:52:47 +03:00
Cootz
957c9e7e27
Update osu.Game/Scoring/ScoreInfo.cs
Co-authored-by: Dean Herbert <pe@ppy.sh>
2023-02-07 11:23:39 +03:00
Cootz
723f13af25 Add summary for OriginalBeatmapHash 2023-02-07 02:43:27 +03:00