1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 04:27:34 +08:00
Commit Graph

19 Commits

Author SHA1 Message Date
Bartłomiej Dach
7c65a9de75
Fix Score V1 simulation in scoring test scene incorrectly applying multiplier
`TestSceneScoring` included a local simulation of stable's Score V1
algorithm. One of the parts of said algorithm is a mysterious
"score multiplier", influenced by - among others - the beatmap's drain
rate, overall difficulty, circle size, object count, drain length,
and active mods. (An implementation of this already exists in lazer
source, in `OsuLegacyScoreSimulator`, but more on this later.)

However, `TestSceneScoring` had this multiplier in _two_ places, with
_two_ distinct values, one of which being 1 (i.e. basically off).
Unfortunately, the place that had 1 as the multiplier was the wrong one.

Stable calculates the score increase for every hit in two stages;
first, it takes the raw numerical value of the judgement, but then
applies a combo-based bonus on top of it:

    scoreIncrease += (int)(Math.Max(0, ComboCounter.HitCombo - 1) * (scoreIncrease / 25 * ScoreMultiplier));

On the face of it, it may appear that the `ScoreMultiplier` factor
can be factored out and applied at the end only when returning total
score. However, once the above formula is rewritten as:

    scoreIncrease = scoreIncrease + (int)(Math.Max(0, ComboCounter.HitCombo - 1) * (scoreIncrease / 25 * ScoreMultiplier));
                  = scoreIncrease * (1 + (Math.Max(0, ComboCounter.HitCombo - 1) / 25 * ScoreMultiplier))

it becomes clear that that assumption is actually _incorrect_,
and the `ScoreMultiplier` _must_ be applied to every score increase
individually.

The above was cross-checked experimentally against stable source
on an example test map with 100 objects, and a replay hitting them
perfectly.
2023-09-12 21:33:26 +02:00
Bartłomiej Dach
3981e2e957
Only show visible graph values in tooltip 2023-09-12 13:29:02 +02:00
Bartłomiej Dach
15708ee465
Add toggle for showing relative/absolute score values 2023-09-12 13:27:40 +02:00
Bartłomiej Dach
607ceeccb9
Persist visibility state of graphs 2023-09-12 12:19:50 +02:00
Bartłomiej Dach
3cf8082aa7
Add capability to toggle visibility of graph 2023-09-12 12:07:12 +02:00
Bartłomiej Dach
95d15a703e
Improve legibility of scoring test scene
- Add black background to avoid clashes with background images.
- Use sorta-tetradic colours for the four plots.
2023-09-12 11:36:41 +02:00
Zyf
82364b4f9f Use OsuScoreProcessor in the scoring test scene 2023-07-11 02:46:32 +02:00
Dan Balasescu
7cbf48ffcf Fix TestSceneScoring and incorrect combo calculations 2023-05-19 14:09:19 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
f08270f6b0 Fix incorrect maxBaseScore accounting due to silly oversight 2022-10-24 15:54:09 +09:00
Dean Herbert
d5666ca717 Add tooltip display of current values 2022-10-18 19:04:02 +09:00
Dean Herbert
d92aca7c22 Fix scoreV2 being higher than intended 2022-10-18 18:30:18 +09:00
Dean Herbert
74e1b5794b Add ability to add "OK" or 100s via right click 2022-10-18 18:27:05 +09:00
Dean Herbert
a7b3aa62fb Move lines to background to better visualise graphs at points of change 2022-10-18 18:13:13 +09:00
Dean Herbert
74986e0c8c Show final scores and change colouring again 2022-10-18 18:07:42 +09:00
Dean Herbert
4b2fe72a90 Add stable v2 algorithm 2022-10-18 18:02:42 +09:00
Dean Herbert
743ae10df5 Improve colouring 2022-10-18 17:50:59 +09:00
Dean Herbert
7360cca047 Add stable v1 algorithm 2022-10-18 17:50:58 +09:00
Dean Herbert
d694c8b771 Move test scene more correctly into visual folder 2022-10-18 17:10:53 +09:00