1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-18 08:32:54 +08:00

Harshen speed scaling

This commit is contained in:
02Naitsirk 2025-01-14 16:24:20 -05:00
parent db552d2309
commit 68f4476190
2 changed files with 3 additions and 3 deletions

View File

@ -254,8 +254,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty
double relevantAccuracy = attributes.SpeedNoteCount == 0 ? 0 : (relevantCountGreat * 6.0 + relevantCountOk * 2.0 + relevantCountMeh) / (attributes.SpeedNoteCount * 6.0); double relevantAccuracy = attributes.SpeedNoteCount == 0 ? 0 : (relevantCountGreat * 6.0 + relevantCountOk * 2.0 + relevantCountMeh) / (attributes.SpeedNoteCount * 6.0);
// An effective hit window is created based on the speed SR. The higher the speed difficulty, the shorter the hit window. // 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 4.0 leads to an effective hit window of 20ms, which is OD 10. // For example, a speed SR of 3.0 leads to an effective hit window of 20ms, which is OD 10.
double effectiveHitWindow = Math.Sqrt(20 * 80 / attributes.SpeedDifficulty); double effectiveHitWindow = Math.Sqrt(20 * 60 / attributes.SpeedDifficulty);
// Find the proportion of 300s on speed notes assuming the hit window was the effective hit window. // Find the proportion of 300s on speed notes assuming the hit window was the effective hit window.
double effectiveAccuracy = SpecialFunctions.Erf(effectiveHitWindow / (double)speedDeviation); double effectiveAccuracy = SpecialFunctions.Erf(effectiveHitWindow / (double)speedDeviation);

View File

@ -53,7 +53,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
if (maxStrain == 0) if (maxStrain == 0)
return 0; return 0;
return ObjectStrains.Sum(strain => 1.0 / (1.0 + Math.Exp(-(strain / maxStrain * 12.0 - 6.0)))); return ObjectStrains.Sum(strain => strain / maxStrain);
} }
} }
} }