Bartłomiej Dach
3a2ed3677b
Fix standardised score conversion failing for scores set with 0.0x mod mutliplier
...
Closes https://github.com/ppy/osu/issues/26073 .
2023-12-23 13:28:39 +01:00
Bartłomiej Dach
007ea51e20
Add extra safety against returning negative total score in conversion operation
2023-12-23 13:07:29 +01:00
Dan Balasescu
eb072a1d24
Add accuracy conversion, fix usages
2023-12-21 15:09:56 +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
8c06d3873d
Merge branch 'master' into mania-scorev2-values
2023-12-20 15:54:31 +01:00
Dan Balasescu
38d6b7f45b
Update total score conversion
2023-12-20 20:03:13 +09:00
Bartłomiej Dach
3f41c20ac6
Use safer fix for now
2023-12-19 17:25:15 +01:00
Bartłomiej Dach
ddb67c87a8
Roll back incorrect change in ShouldMigrateToNewStandardised()
2023-12-19 08:13:02 +01:00
Bartłomiej Dach
9c8df4e6d1
Run score conversion for previously-imported scores
2023-12-18 22:27:51 +01:00
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
Zyf
71e5654b64
Account for legacyAccScore in score conversion
2023-11-24 23:07:27 +01:00
Zyf
27f9dfccc4
Fix scoring-conversion when miss-count is 0
2023-11-24 22:05:24 +01:00
Bartłomiej Dach
7590bae445
Rename and comment everything in score migration code
...
Hopefully, _hopefully_, makes all this a little bit less inscrutable.
2023-11-24 10:34:13 +09:00
Clément Burgelin (Zyfarok)
901e45b6a4
Scoring conversion: remove mention of v3 + improve comments
2023-11-21 14:26:07 +01:00
Clément Burgelin (Zyf)
16acec335f
Fix: update score migration of special case to match the new score
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-11-21 11:27:03 +01: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
Dan Balasescu
b9ab4a2b7c
Update score conversion to consider legacy multiplier
2023-10-02 16:56:15 +09:00
Dan Balasescu
4198e025fa
Fix overflow
2023-09-08 00:27:01 +09:00
Dan Balasescu
2334be1987
Split legacy scoring attributes into a separate object
2023-09-07 21:10:38 +09:00
Dean Herbert
5ddb10281b
Move combo exponent to shared constant
2023-08-24 14:55:44 +09:00
Dean Herbert
5dee43815c
Bump version to allow migration to re-run
2023-08-22 16:13:01 +09:00
Dean Herbert
4e9e084b2c
Merge branch 'master' into scorev3
2023-08-22 15:52:22 +09:00
Zyf
b672b49e02
Scoring : Implement v1 to v3 conversion.
2023-07-15 23:20:49 +02:00
Dean Herbert
480259b8d2
Ensure migration is never run on scores with new-enough TotalScoreVersion
s
2023-07-14 20:02:25 +09:00
Bartłomiej Dach
9e4ffc8c12
Split helper method for populations from replay
2023-07-10 21:10:01 +02:00
Bartłomiej Dach
e12255bbe5
Do not run legacy conversion with ScoreV2 mod present
2023-07-09 17:48:25 +02:00
Dean Herbert
dd9998127e
Count missing beatmaps as errored items
2023-07-04 18:35:03 +09:00
Dean Herbert
1629024111
ILegacyScoreProcessor
-> ILegacyScoreSimulator
2023-07-04 17:32:54 +09:00
Dean Herbert
67650831bd
Remove unnecessary null check
2023-07-04 14:19:25 +09:00
Dan Balasescu
c6ad184d94
Move Ruleset method to ILegacyRuleset interface
2023-06-29 17:24:37 +09:00
Dan Balasescu
ddd870e843
Make LegacyTotalScore nullable
2023-06-29 17:19:10 +09:00
Dan Balasescu
09bc8e45de
Refactoring
2023-06-28 16:14:32 +09:00
Dean Herbert
94b7de4b3f
Fix old-new standardised score conversion missing some scores due to not rounding correctly
2023-06-16 14:01:56 +09:00
Bartłomiej Dach
51b5a0863f
Apply migration to new standardised score on normal reimport too
2023-06-15 21:53:15 +02:00
Bartłomiej Dach
6205864c62
Fix score migration not considering mod multipliers
2023-06-13 19:00:13 +02:00
Dean Herbert
c1b0c60e79
Ensure all misses are dequeued
2023-06-13 05:24:04 +09:00
Dean Herbert
3304e41a30
Add more commenting
2023-06-13 05:20:29 +09:00
Dean Herbert
e9fb1f8932
Avoid tracking hit events altogether during migration
2023-06-13 02:15:41 +09:00
Dean Herbert
385f6dbd84
Move local classes to their rightful location
2023-06-13 02:12:23 +09:00
Dean Herbert
87520ae400
Avoid overhead from retrieving MaxCombo
inside loop from realm
2023-06-13 02:05:00 +09:00
Dean Herbert
0916ae1671
Add basic profiling output of realm migrations
2023-06-13 01:57:41 +09:00
Dean Herbert
d19f8997fc
Account for scores which don't have correct maximum statistics populated
2023-06-13 01:40:43 +09:00
Dean Herbert
f30c1a564f
Add basic setup for score migration
2023-06-13 01:40:43 +09:00