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:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user