feat: Implement maxAchievable
.
#341
Merged
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.
This PR implements a new pp value called
maxAchievable
that indicates the maximum pp value a user could be getting from their play if they fc the rest of the map. This is similar to gosu's oldmaxThisPlay
property, so it's a step towards gosu-tosu compatibility. (more or less...)Q: How is this any different from
play.pp.fc
?A: The
play.pp.fc
does not take account of misses; it shows the PP value that could have been achieved only if the player would have never missed. ThemaxAchievable
value takes account of all hit judgements (300s,100s,50s & misses).!! There's a few things to consider before merging, such as compatibility issues.
Since this PR also renames
maxAchievedThisPlay
tomaxAchieved
, there are two ways of approaching future issues:maxAchievedThisPlay
, but keep both values (old name and new name) even though they provide the same value. (Assuming deprecation comes later, so people have time to switch)maxAchievedThisPlay
(announcing breaking changes) and update all counters available in the tosu counters repository with the new property name (which can be done very easily by me), but the issue still remains with the local/private pp counters that use thisImportant
Either way, the socket will need to be updated with the new changes, which will be a future PR after this gets merged.
Note
The new value has only been tested on osu!std so far, I am not aware of the possible issues with the other rulesets.