1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-17 19:44:22 +08:00

Reduce strain influence a bit more (#36813)

Changes snap aim scaling to d/t^1.65 and speedflow scaling to d/t^1.9
(roughly). This is as much as we can nudge scaling towards d/t without
breaking everything
This commit is contained in:
StanR
2026-03-04 22:50:49 +05:00
committed by GitHub
Unverified
parent b1227e1f12
commit 020e6fa1b2
5 changed files with 9 additions and 9 deletions
@@ -11,9 +11,9 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
{
public static class AimEvaluator
{
private const double wide_angle_multiplier = 1.4;
private const double acute_angle_multiplier = 2.6;
private const double slider_multiplier = 2.0;
private const double wide_angle_multiplier = 1.35;
private const double acute_angle_multiplier = 2.5;
private const double slider_multiplier = 1.9;
private const double velocity_change_multiplier = 1.1;
private const double wiggle_multiplier = 1.02; // WARNING: Increasing this multiplier beyond 1.02 reduces difficulty as distance increases. Refer to the desmos link above the wiggle bonus calculation
@@ -171,7 +171,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
// We decrease strain for distances <radius to fix cases where doubles with no aim requirement
// have their strain buffed incredibly high due to the delta time.
// These objects do not require any movement, so it does not make sense to award them.
private static double highBpmBonus(double ms, double distance) => 1 / (1 - Math.Pow(0.03, Math.Pow(ms / 1000, 0.75)))
private static double highBpmBonus(double ms, double distance) => 1 / (1 - Math.Pow(0.03, Math.Pow(ms / 1000, 0.65)))
* DifficultyCalculationUtils.Smootherstep(distance, 0, OsuDifficultyHitObject.NORMALISED_RADIUS);
private static double calcWideAngleBonus(double angle) => DifficultyCalculationUtils.Smoothstep(angle, double.DegreesToRadians(40), double.DegreesToRadians(140));
@@ -45,6 +45,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
return strain;
}
private static double highBpmBonus(double ms) => 1 / (1 - Math.Pow(0.3, ms / 1000));
private static double highBpmBonus(double ms) => 1 / (1 - Math.Pow(0.3, Math.Pow(ms / 1000, 0.9)));
}
}
@@ -29,7 +29,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
if (mods.Any(m => m is OsuModAutopilot))
return 0;
double aimRating = Math.Pow(aimDifficultyValue, 0.58) * 0.0346;
double aimRating = Math.Pow(aimDifficultyValue, 0.62) * 0.0248;
if (mods.Any(m => m is OsuModRelax))
aimRating *= 0.9;
@@ -134,7 +134,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Preprocessing
AdjustedDeltaTime = Math.Max(DeltaTime, MIN_DELTA_TIME);
LastObjectEndDeltaTime = lastDifficultyObject != null ? Math.Max(StartTime - lastDifficultyObject.EndTime, MIN_DELTA_TIME) : AdjustedDeltaTime;
SmallCircleBonus = Math.Max(1.0, 1.0 + (30 - BaseObject.Radius) / 60);
SmallCircleBonus = Math.Max(1.0, 1.0 + (30 - BaseObject.Radius) / 70);
Preempt = BaseObject.TimePreempt / clockRate;
@@ -31,8 +31,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
private double currentAimStrain;
private double currentSpeedStrain;
private double skillMultiplierAim => 58.5;
private double skillMultiplierSpeed => 2.0;
private double skillMultiplierAim => 65.2;
private double skillMultiplierSpeed => 2.8;
private double skillMultiplierTotal => 1.0;
private double meanExponent => 1.2;