1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 12:33:01 +08:00
osu-lazer/osu.Game/Database
Bartłomiej Dach b0cfea4916
Fix standardised score conversion failing for some taiko scores due to overestimating accuracy portion
Standardised score conversion would return a negative total score for
https://osu.ppy.sh/scores/taiko/182230346.

The underlying reason for this is that the estimation of the accuracy
portion for a score can be above the actual accuracy portion in the
taiko ruleset.

When calculating the maximum accuracy portion achievable,
`TaikoLegacyScoreSimulator` will include the extra 300 points from
a double hit on a strong hit, per strong hit. However, this double hit
is not factored into accuracy.

Both of the aforementioned facts mean that in taiko

	maximumLegacyAccuracyScore * score.Accuracy

- which normally in other rulesets can be used pretty reliably as the
exact number of points gained from the accuracy portion - is an
estimate in the case of taiko, and an _upper_ estimate at that,
because it implicitly assumes that the user has also hit
`score.Accuracy` percent of all double hits possible in the beatmap. If
this assumption is not upheld, then the user will have earned _less_
points than that from the accuracy portion, which means that the combo
proportion estimate will go below zero.

It is possible that this has happened on other scores before, but did
not result in the total score going negative as the accuracy portion
gained would have counteracted the effect of that due to being larger in
magnitude than the score loss incurred from the negative combo
portion. In the case of the score in question this was not the case due
to very low accuracy _and_ very low max combo.
2024-01-02 10:11:49 +01:00
..
BeatmapExporter.cs change .osz2 to .olz (osu lazer zip) 2023-07-12 15:04:06 +02:00
BeatmapLookupCache.cs Apply NRT in MemoryCachingComponent subclasses too 2023-06-09 13:47:35 +02:00
EmptyRealmSet.cs Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
ICanAcceptFiles.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasFiles.cs Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
IHasGuidPrimaryKey.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasNamedFiles.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasOnlineID.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IHasPrimaryKey.cs Automated pass 2023-06-24 01:00:03 +09:00
IHasRealmFiles.cs Remove IScoreInfo : IHasNamedFiles inheritance 2023-10-26 14:58:33 +02:00
IModelDownloader.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IModelFileManager.cs Automated pass 2023-06-24 01:00:03 +09:00
IModelImporter.cs Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
IModelManager.cs Automated pass 2023-06-24 01:00:03 +09:00
ImportParameters.cs Fix skin editor freezing game if opened during active gameplay 2023-10-27 14:34:30 +02:00
ImportProgressNotification.cs Partial everything 2022-11-27 00:00:27 +09:00
ImportTask.cs Bring back disposal of stream after copy-out to MemoryStream 2023-09-14 19:36:35 +02:00
INamedFile.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
INamedFileInfo.cs Automated pass 2023-06-24 01:00:03 +09:00
INamedFileUsage.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
IPostNotifications.cs Automated pass 2023-06-24 01:00:03 +09:00
ISoftDelete.cs Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
LegacyArchiveExporter.cs Move all conversion code to LegacyBeatmapExporter 2023-07-13 00:20:01 +02:00
LegacyBeatmapExporter.cs Fix incorrect legacy conversion when B-splines are used 2023-11-20 15:08:58 +09:00
LegacyBeatmapImporter.cs Fix legacy beatmap importer not always handling nested paths correctly 2023-10-03 16:01:17 +09:00
LegacyCollectionImporter.cs Fix re-importing existing collections not correctly adding new items 2022-08-16 16:43:05 +09:00
LegacyExporter.cs Move lower and xmldoc GetFilename(TModel) 2023-05-06 19:29:08 +02:00
LegacyImportManager.cs Extract common method for determining stable import usability of directory 2023-12-15 15:42:19 +01:00
LegacyModelImporter.cs Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
LegacyScoreExporter.cs Mark exporter extensions as untranslatable 2023-05-06 19:42:28 +02:00
LegacyScoreImporter.cs Path.GetExtension() will not get null 2023-02-19 02:56:53 +09:00
LegacySkinExporter.cs Mark exporter extensions as untranslatable 2023-05-06 19:42:28 +02:00
LegacySkinImporter.cs create a task to export to avoid block main thread 2022-11-17 01:08:06 +09:00
Live.cs Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
MemoryCachingComponent.cs Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00
MissingBeatmapNotification.cs Fix notification text sets overwriting each other 2023-09-19 11:12:58 +02:00
ModelDownloader.cs Merge branch 'master' into guard-url-protocols 2022-12-16 18:23:16 +09:00
ModelManager.cs Add helper method for safer realm Find<T> 2023-08-16 15:37:09 +09:00
OnlineLookupCache.cs Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00
RealmAccess.cs Add versioning of local scores 2023-12-21 18:37:15 +09:00
RealmArchiveModelImporter.cs Fix skin editor freezing game if opened during active gameplay 2023-10-27 14:34:30 +02:00
RealmExtensions.cs Fill out xmldoc and adjust inline commentary 2023-08-16 09:40:46 +02:00
RealmFileStore.cs Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
RealmLive.cs Add helper method for safer realm Find<T> 2023-08-16 15:37:09 +09:00
RealmLiveUnmanaged.cs Automated #nullable processing 2022-06-17 16:37:17 +09:00
RealmObjectExtensions.cs Remove outdated xmldoc 2023-07-06 22:01:02 +02:00
StandardisedScoreMigrationTools.cs Fix standardised score conversion failing for some taiko scores due to overestimating accuracy portion 2024-01-02 10:11:49 +01:00
TooManyDownloadsNotification.cs Partial everything 2022-11-27 00:00:27 +09:00
UserLookupCache.cs Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00