1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-26 08:10:35 +08:00

Adjust speed deviation scaling to be more harsh on low end (#36554)

This should buff raw speed plays like Ivaxa Violation, at the same time
undoing part of the buff on the lower end scores like Save Me NM
Moved part of the multiplier out of the Pow to be more intuitive (it
multiplies the 20 by Pow(difficulty/4), so it's more clear that it would
be equal to 1 on difficulty = 4)
The scaling itself was adjusted to be more similar to live (so
buffs/nerfs on 98% acc remains +- the same through the difficulty curve)
This commit is contained in:
Givy120
2026-01-30 20:18:07 +02:00
committed by GitHub
Unverified
parent 8be9317475
commit e9974ba43d
@@ -256,8 +256,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty
speedValue *= speedHighDeviationMultiplier;
// An effective hit window is created based on the speed SR. The higher the speed difficulty, the shorter the hit window.
// For example, a speed SR of 3.0 leads to an effective hit window of 20ms, which is OD 10.
double effectiveHitWindow = Math.Sqrt(30 * 60 / attributes.SpeedDifficulty);
// For example, a speed SR of 4.0 leads to an effective hit window of 20ms, which is OD 10.
double effectiveHitWindow = 20 * Math.Pow(4 / attributes.SpeedDifficulty, 0.35);
// Find the proportion of 300s on speed notes assuming the hit window was the effective hit window.
double effectiveAccuracy = DifficultyCalculationUtils.Erf(effectiveHitWindow / (double)speedDeviation);