Skip to content

Commit 8f69243

Browse files
committed
Add wide angle bonus to agility
1 parent 4ce4bca commit 8f69243

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

osu.Game.Rulesets.Osu/Difficulty/Evaluators/Aim/AgilityEvaluator.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators.Aim
1212
public static class AgilityEvaluator
1313
{
1414
private const double distance_cap = OsuDifficultyHitObject.NORMALISED_DIAMETER * 1.25; // 1.25 circles distance between centers
15+
private const double wide_angle_multiplier = 0.5;
1516

1617
/// <summary>
1718
/// Evaluates the difficulty of fast aiming
@@ -31,6 +32,11 @@ public static double EvaluateDifficultyOf(DifficultyHitObject current)
3132

3233
double strain = distanceScaled * 1000 / osuCurrObj.AdjustedDeltaTime;
3334

35+
if (osuCurrObj.Angle != null)
36+
{
37+
strain *= 1 + SnapAimEvaluator.CalcWideAngleBonus(osuCurrObj.Angle.Value) * wide_angle_multiplier;
38+
}
39+
3440
strain *= Math.Pow(osuCurrObj.SmallCircleBonus, 1.5);
3541

3642
strain *= highBpmBonus(osuCurrObj.AdjustedDeltaTime);

osu.Game.Rulesets.Osu/Difficulty/Evaluators/Aim/SnapAimEvaluator.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators.Aim
1212
{
1313
public static class SnapAimEvaluator
1414
{
15-
private const double wide_angle_multiplier = 1.05;
15+
private const double wide_angle_multiplier = 0.8;
1616
private const double acute_angle_multiplier = 2.41;
1717
private const double slider_multiplier = 1.5;
1818
private const double velocity_change_multiplier = 0.9;
@@ -84,10 +84,10 @@ public static double EvaluateDifficultyOf(DifficultyHitObject current, bool with
8484
DifficultyCalculationUtils.Smootherstep(currDistance, 0, diameter * 2);
8585
}
8686

87-
wideAngleBonus = calcWideAngleBonus(currAngle);
87+
wideAngleBonus = CalcWideAngleBonus(currAngle);
8888

8989
// Penalize angle repetition.
90-
wideAngleBonus *= 0.25 + 0.75 * (1 - Math.Min(wideAngleBonus, Math.Pow(calcWideAngleBonus(lastAngle), 3)));
90+
wideAngleBonus *= 0.25 + 0.75 * (1 - Math.Min(wideAngleBonus, Math.Pow(CalcWideAngleBonus(lastAngle), 3)));
9191

9292
wideAngleBonus *= angleBonus;
9393

@@ -213,7 +213,7 @@ private static double vectorAngleRepetition(OsuDifficultyHitObject current, OsuD
213213
return Math.Pow(baseNerf + (1 - baseNerf) * vectorRepetition * maximum_vector_influence * stackFactor, 2);
214214
}
215215

216-
private static double calcWideAngleBonus(double angle) => DifficultyCalculationUtils.Smoothstep(angle, double.DegreesToRadians(40), double.DegreesToRadians(140));
216+
public static double CalcWideAngleBonus(double angle) => DifficultyCalculationUtils.Smoothstep(angle, double.DegreesToRadians(40), double.DegreesToRadians(140));
217217

218218
public static double CalcAcuteAngleBonus(double angle) => DifficultyCalculationUtils.Smoothstep(angle, double.DegreesToRadians(140), double.DegreesToRadians(40));
219219
}

0 commit comments

Comments
 (0)