mirror of
https://github.com/ppy/osu.git
synced 2025-02-11 23:53:22 +08:00
initial commit
This commit is contained in:
parent
c8b05ce114
commit
41a6a38d93
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user