mirror of
https://github.com/ppy/osu.git
synced 2025-03-15 14:47:18 +08:00
added acc bonus for low AR
and slight balancing
This commit is contained in:
parent
ab47d39d0d
commit
333bfd2490
@ -24,7 +24,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
{
|
{
|
||||||
public const double DIFFICULTY_MULTIPLIER = 0.067;
|
public const double DIFFICULTY_MULTIPLIER = 0.067;
|
||||||
public const double SUM_POWER = 1.1;
|
public const double SUM_POWER = 1.1;
|
||||||
public const double FL_SUM_POWER = 1.6;
|
public const double FL_SUM_POWER = 1.4;
|
||||||
public override int Version => 20220902;
|
public override int Version => 20220902;
|
||||||
|
|
||||||
public OsuDifficultyCalculator(IRulesetInfo ruleset, IWorkingBeatmap beatmap)
|
public OsuDifficultyCalculator(IRulesetInfo ruleset, IWorkingBeatmap beatmap)
|
||||||
|
@ -221,9 +221,15 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
if (score.Mods.Any(m => m is OsuModBlinds))
|
if (score.Mods.Any(m => m is OsuModBlinds))
|
||||||
accuracyValue *= 1.14;
|
accuracyValue *= 1.14;
|
||||||
|
|
||||||
// It's stupid so i removed it, it's better just to increase FL coef
|
if (score.Mods.Any(m => m is OsuModFlashlight))
|
||||||
//if (score.Mods.Any(m => m is OsuModFlashlight))
|
accuracyValue *= 1.02;
|
||||||
// accuracyValue *= 1.02;
|
|
||||||
|
// Visual indication bonus
|
||||||
|
double visualIndicationBonus = 1.0 + 0.1 * logistic((8.0 - attributes.ApproachRate) / 6);
|
||||||
|
|
||||||
|
accuracyValue *= visualIndicationBonus;
|
||||||
|
if (score.Mods.Any(h => h is OsuModHidden))
|
||||||
|
accuracyValue *= visualIndicationBonus;
|
||||||
|
|
||||||
return accuracyValue;
|
return accuracyValue;
|
||||||
}
|
}
|
||||||
@ -397,5 +403,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static double softmin(double a, double b, double power = Math.E) => a * b / Math.Log(Math.Pow(power, a) + Math.Pow(power, b), power);
|
private static double softmin(double a, double b, double power = Math.E) => a * b / Math.Log(Math.Pow(power, a) + Math.Pow(power, b), power);
|
||||||
|
private static double logistic(double x) => 1 / (1 + Math.Exp(-x));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
hasHiddenMod = mods.Any(m => m is OsuModHidden);
|
hasHiddenMod = mods.Any(m => m is OsuModHidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
private double skillMultiplier => 0.052;
|
private double skillMultiplier => 0.054;
|
||||||
private double strainDecayBase => 0.15;
|
private double strainDecayBase => 0.15;
|
||||||
|
|
||||||
private double currentStrain;
|
private double currentStrain;
|
||||||
|
@ -16,7 +16,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
public class ReadingLowAR : GraphSkill
|
public class ReadingLowAR : GraphSkill
|
||||||
{
|
{
|
||||||
private readonly List<double> difficulties = new List<double>();
|
private readonly List<double> difficulties = new List<double>();
|
||||||
private double skillMultiplier => 1.1;
|
private double skillMultiplier => 1.08;
|
||||||
private double aimComponentMultiplier => 0.7;
|
private double aimComponentMultiplier => 0.7;
|
||||||
|
|
||||||
public ReadingLowAR(Mod[] mods)
|
public ReadingLowAR(Mod[] mods)
|
||||||
@ -95,7 +95,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
}
|
}
|
||||||
|
|
||||||
private double currentStrain;
|
private double currentStrain;
|
||||||
private double skillMultiplier => 5;
|
private double skillMultiplier => 4.9;
|
||||||
|
|
||||||
protected override double CalculateInitialStrain(double time, DifficultyHitObject current) => currentStrain * StrainDecay(time - current.Previous(0).StartTime);
|
protected override double CalculateInitialStrain(double time, DifficultyHitObject current) => currentStrain * StrainDecay(time - current.Previous(0).StartTime);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user