osu/osu.Game.Rulesets.Taiko/Difficulty
Bartłomiej Dach 6266af8a56
Fix taiko legacy score simulator not including swell tick score gain into bonus portion
Reported in https://discord.com/channels/188630481301012481/1097318920991559880/1221836384038551613.

Example score: https://osu.ppy.sh/scores/1855965185

The cause of the overestimation was an error in taiko's score simulator.
In lazer taiko, swell ticks don't give any score anymore, while they did
in stable.

For all intents and purposes, swell ticks can be considered "bonus"
objects that "don't give any actual bonus score". Which is to say,
during simulation of a legacy score swell ticks hit should be treated
as bonus, because if they aren't, then otherwise they will be treated
essentially as *normal hits*, meaning that they will be included in
the *accuracy* portion of score, which breaks all sorts of follow-up
assumptions:

- The accuracy portion of the best possible total score becomes
  overinflated in comparison to reality, while the combo portion of
  that maximum score becomes underestimated.

- Because the affected score has low accuracy, the estimated accuracy
  portion of the score (as given by maximmum accuracy portion of score
  times the actual numerical accuracy of the score) is also low.

- However, the next step is estimating the combo portion, which is done
  by taking legacy total score, subtracting the aforementioned
  estimation for accuracy total score from that, and then dividing
  the result by the maximum achievable combo score on the map. Because
  most of actual "combo" score from swell ticks was "moved" into the
  accuracy portion due to the aforementioned error, the maximum
  achievable combo score becomes so small that the estimated combo
  portion exceeds 1.

Instead, this change makes it so that gains from swell ticks are treated
as "bonus", which means that they are excluded from the accuracy portion
of score and instead count into the bonus portion of score, bringing the
scores concerned more in line with expectations - although due to
pessimistic assumptions in the simulation of the swell itself,
the conversion will still overestimate total score for affected scores,
just not by *that* much.
2024-03-25 19:09:38 +01:00
..
Evaluators Remove unnecessary null-forgiving 2022-10-28 13:07:44 +09:00
Preprocessing Minor refactoring to reduce amount of looping 2022-10-09 07:09:05 +08:00
Skills Use new LINQ Order() instead of OrderBy() when possible 2024-02-08 18:01:00 +01:00
TaikoDifficultyAttributes.cs Write max combo attribute from base class 2023-06-02 21:53:25 +09:00
TaikoDifficultyCalculator.cs Bump databased star rating versions 2024-02-06 22:58:11 +09:00
TaikoLegacyScoreSimulator.cs Fix taiko legacy score simulator not including swell tick score gain into bonus portion 2024-03-25 19:09:38 +01:00
TaikoPerformanceAttributes.cs Automated pass 2023-06-24 01:00:03 +09:00
TaikoPerformanceCalculator.cs Make `ScoreInfo.BeatmapInfo` nullable 2023-07-04 14:50:34 +09:00