mirror of
https://github.com/ppy/osu.git
synced 2025-03-12 23:07:26 +08:00
Merge branch 'pp-dev' into match-my-freak-sliders
This commit is contained in:
commit
4ff5ea13b4
@ -22,7 +22,7 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
public void Test(double expectedStarRating, int expectedMaxCombo, string name)
|
public void Test(double expectedStarRating, int expectedMaxCombo, string name)
|
||||||
=> base.Test(expectedStarRating, expectedMaxCombo, name);
|
=> base.Test(expectedStarRating, expectedMaxCombo, name);
|
||||||
|
|
||||||
[TestCase(9.4310274277499619d, 239, "diffcalc-test")]
|
[TestCase(9.6343245007055653d, 239, "diffcalc-test")]
|
||||||
[TestCase(1.7550169162648608d, 54, "zero-length-sliders")]
|
[TestCase(1.7550169162648608d, 54, "zero-length-sliders")]
|
||||||
[TestCase(0.55231632896800109d, 4, "very-fast-slider")]
|
[TestCase(0.55231632896800109d, 4, "very-fast-slider")]
|
||||||
public void TestClockRateAdjusted(double expectedStarRating, int expectedMaxCombo, string name)
|
public void TestClockRateAdjusted(double expectedStarRating, int expectedMaxCombo, string name)
|
||||||
|
@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
|||||||
public static class AimEvaluator
|
public static class AimEvaluator
|
||||||
{
|
{
|
||||||
private const double wide_angle_multiplier = 1.5;
|
private const double wide_angle_multiplier = 1.5;
|
||||||
private const double acute_angle_multiplier = 2.35;
|
private const double acute_angle_multiplier = 2.7;
|
||||||
private const double slider_multiplier = 1.35;
|
private const double slider_multiplier = 1.35;
|
||||||
private const double velocity_change_multiplier = 0.75;
|
private const double velocity_change_multiplier = 0.75;
|
||||||
private const double wiggle_multiplier = 1.02;
|
private const double wiggle_multiplier = 1.02;
|
||||||
@ -75,7 +75,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
|||||||
{
|
{
|
||||||
double currAngle = osuCurrObj.Angle.Value;
|
double currAngle = osuCurrObj.Angle.Value;
|
||||||
double lastAngle = osuLastObj.Angle.Value;
|
double lastAngle = osuLastObj.Angle.Value;
|
||||||
double lastLastAngle = osuLastLastObj.Angle.Value;
|
|
||||||
|
|
||||||
// Rewarding angles, take the smaller velocity as base.
|
// Rewarding angles, take the smaller velocity as base.
|
||||||
double angleBonus = Math.Min(currVelocity, prevVelocity);
|
double angleBonus = Math.Min(currVelocity, prevVelocity);
|
||||||
@ -90,11 +89,11 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
|||||||
|
|
||||||
// Penalize wide angles if they're repeated, reducing the penalty as the lastAngle gets more acute.
|
// Penalize wide angles if they're repeated, reducing the penalty as the lastAngle gets more acute.
|
||||||
wideAngleBonus *= angleBonus * (1 - Math.Min(wideAngleBonus, Math.Pow(calcWideAngleBonus(lastAngle), 3)));
|
wideAngleBonus *= angleBonus * (1 - Math.Min(wideAngleBonus, Math.Pow(calcWideAngleBonus(lastAngle), 3)));
|
||||||
// Penalize acute angles if they're repeated, reducing the penalty as the lastLastAngle gets more obtuse.
|
// Penalize acute angles if they're repeated, reducing the penalty as the lastAngle gets more obtuse.
|
||||||
acuteAngleBonus *= 0.03 + 0.97 * (1 - Math.Min(acuteAngleBonus, Math.Pow(calcAcuteAngleBonus(lastLastAngle), 3)));
|
acuteAngleBonus *= 0.03 + 0.97 * (1 - Math.Min(acuteAngleBonus, Math.Pow(calcAcuteAngleBonus(lastAngle), 3)));
|
||||||
|
|
||||||
// Apply wiggle bonus for jumps that are [radius, 2*diameter] in distance, with < 110 angle and bpm > 150
|
// Apply wiggle bonus for jumps that are [radius, 3*diameter] in distance, with < 110 angle
|
||||||
// https://www.desmos.com/calculator/iis7lgbppe
|
// https://www.desmos.com/calculator/dp0v0nvowc
|
||||||
wiggleBonus = angleBonus
|
wiggleBonus = angleBonus
|
||||||
* DifficultyCalculationUtils.Smootherstep(osuCurrObj.LazyJumpDistance, radius, diameter)
|
* DifficultyCalculationUtils.Smootherstep(osuCurrObj.LazyJumpDistance, radius, diameter)
|
||||||
* Math.Pow(DifficultyCalculationUtils.ReverseLerp(osuCurrObj.LazyJumpDistance, diameter * 3, diameter), 1.8)
|
* Math.Pow(DifficultyCalculationUtils.ReverseLerp(osuCurrObj.LazyJumpDistance, diameter * 3, diameter), 1.8)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user