Add verbose difficulty calculator option to make intermediate calculations visible #15011
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.
Currently WIP, I can add to all modes and simplify a bit if you think this is going in the right direction.
Implements #14934
There are a few small details that maybe should change:
information is collected for all difficulty calculations, not just the verbose one. This will have a small memory overhead on the order of ~100 bytes per hit object, but shouldn't impact computation speed or allocations. If necessary, data could be stored in a VerboseOsuDifficultyHitObject or something else
maybe you don't like the "logic in the constructor" thing - that can be moved into explicitly instantiating a struct later at the cost of a few extra LOC but no other benefit IMO
if we want to integrate this into the editor in future then maybe a new attribute should be used rather than newtonsoft json. My perferred option would be to get rid of the baseHitObject members so everything is included, but that would require more work.
this diff is probably more relevant than what's listed: https://github.com/joseph-ireland/osu/compare/refactor-skills...joseph-ireland:verbose-difficulty?expand=1