1
0
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:
Givikap120 2024-03-21 21:35:29 +02:00
parent ab47d39d0d
commit 333bfd2490
4 changed files with 14 additions and 7 deletions

View File

@ -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)

View File

@ -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));
} }
} }

View File

@ -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;

View File

@ -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);