1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-12 03:02:54 +08:00

initial commit

This commit is contained in:
Givikap120 2025-01-28 13:20:41 +02:00
parent c8b05ce114
commit 41a6a38d93

View File

@ -34,6 +34,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
return 0;
// derive strainTime for calculation
var osuNextObj = (OsuDifficultyHitObject)current.Next(0);
var osuCurrObj = (OsuDifficultyHitObject)current;
var osuPrevObj = current.Index > 0 ? (OsuDifficultyHitObject)current.Previous(0) : null;
@ -54,6 +55,22 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
double travelDistance = osuPrevObj?.TravelDistance ?? 0;
double distance = travelDistance + osuCurrObj.MinimumJumpDistance;
// Buff accelerating patterns
double nextDistance = 0;
if (osuNextObj != null && osuPrevObj != null)
{
nextDistance = osuCurrObj.TravelDistance + osuNextObj.MinimumJumpDistance;
// Don't use increased distance from jumps
nextDistance *= DifficultyCalculationUtils.Smoothstep(osuNextObj.StrainTime, osuCurrObj.StrainTime * 1.75, osuCurrObj.StrainTime * 1.5);
nextDistance *= DifficultyCalculationUtils.Smoothstep(osuCurrObj.StrainTime, osuPrevObj.StrainTime * 1.75, osuPrevObj.StrainTime * 1.5);
// Have a threshold so very small changes aren't buffed
if (distance > 0) nextDistance *= DifficultyCalculationUtils.Smoothstep(nextDistance, distance, distance * 1.1);
}
distance = Math.Max(distance, nextDistance);
// Cap distance at single_spacing_threshold
distance = Math.Min(distance, single_spacing_threshold);