mirror of
https://github.com/ppy/osu.git
synced 2024-11-11 13:37:25 +08:00
Add the [200 .. 300] bpm speed bonus
This commit is contained in:
parent
00a4d60e89
commit
e7da5b0400
@ -14,10 +14,20 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
protected override double SkillMultiplier => 1400;
|
protected override double SkillMultiplier => 1400;
|
||||||
protected override double StrainDecayBase => 0.3;
|
protected override double StrainDecayBase => 0.3;
|
||||||
|
|
||||||
|
private const double min_speed_bonus = 75; // ~200BPM
|
||||||
|
private const double max_speed_bonus = 45; // ~330BPM
|
||||||
|
private const double speed_balancing_factor = 40;
|
||||||
|
|
||||||
protected override double StrainValueOf(OsuDifficultyHitObject current)
|
protected override double StrainValueOf(OsuDifficultyHitObject current)
|
||||||
{
|
{
|
||||||
double distance = Math.Min(SINGLE_SPACING_THRESHOLD, current.TravelDistance + current.JumpDistance);
|
double distance = Math.Min(SINGLE_SPACING_THRESHOLD, current.TravelDistance + current.JumpDistance);
|
||||||
return (0.95 + Math.Pow(distance / SINGLE_SPACING_THRESHOLD, 4)) / current.StrainTime;
|
double deltaTime = Math.Max(max_speed_bonus, current.DeltaTime);
|
||||||
|
|
||||||
|
double speedBonus = 1.0;
|
||||||
|
if (deltaTime < min_speed_bonus)
|
||||||
|
speedBonus = 1 + Math.Pow((min_speed_bonus - deltaTime) / speed_balancing_factor, 2);
|
||||||
|
|
||||||
|
return speedBonus * (0.95 + Math.Pow(distance / SINGLE_SPACING_THRESHOLD, 4)) / current.StrainTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user