Store total score without mod multipliers to local database and to replays, and send it on score submission #27912
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
RFC. This is supposed to be the start of a series of changes which is an alternative to #27816, and will generally facilitate unconstrained mod multiplier rebalancing without worry of precision or even complete total score loss in the future.
I will continue with further changes if this is accepted, but I generally will not be PRing further changes until I see agreement on this general direction.
General plan
The plan here is as follows:
osu-web
reads the score without mod multipliers, and stores it. (Up in the air as to exactly how - either new column or in the json blob; new column will require table rebuild, json blob will not but may behave erratically wrt storage requirements. I have a branch that implements the json blob variant.)osu-queue-score-statistics
command that will back-populate the pre-mod multiplier total score for rows that do not have it.osu-queue-score-statistics
command forevermore.Client considerations
Player
.LegacyReplaySoloScoreInfo
was created will have the new property populated inline via a crude estimation.LegacyReplaySoloScoreInfo
existed are considered obsolete and unsupported. They will receive aTotalScoreWithoutMods
of zero, which means that their total score will likely also zero upon future rebalances.