diff --git a/osu.Game.Rulesets.Osu/Difficulty/Evaluators/AimEvaluator.cs b/osu.Game.Rulesets.Osu/Difficulty/Evaluators/AimEvaluator.cs index 5f1a5a379c..d0fc063703 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Evaluators/AimEvaluator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Evaluators/AimEvaluator.cs @@ -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 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)); diff --git a/osu.Game.Rulesets.Osu/Difficulty/Evaluators/SpeedAimEvaluator.cs b/osu.Game.Rulesets.Osu/Difficulty/Evaluators/SpeedAimEvaluator.cs index 9211ec39cf..afa1245820 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Evaluators/SpeedAimEvaluator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Evaluators/SpeedAimEvaluator.cs @@ -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))); } } diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuRatingCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuRatingCalculator.cs index bc9de3494f..5826f497d6 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuRatingCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuRatingCalculator.cs @@ -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; diff --git a/osu.Game.Rulesets.Osu/Difficulty/Preprocessing/OsuDifficultyHitObject.cs b/osu.Game.Rulesets.Osu/Difficulty/Preprocessing/OsuDifficultyHitObject.cs index b0b1c5132f..33bb6b29c8 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Preprocessing/OsuDifficultyHitObject.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Preprocessing/OsuDifficultyHitObject.cs @@ -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; diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs index 50fc9333a7..3c8491a6dc 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs @@ -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;