1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-18 12:00:22 +08:00

Make reading and flashlight pp to be LP summed (#36464)

Right now they're summed normally what opens a problem that FL rewards
too much pp when combined with reading map, since you're memorizing FL
anyway.

Co-authored-by: James Wilson <tsunyoku@gmail.com>
This commit is contained in:
Givy120
2026-01-26 20:47:08 +02:00
committed by GitHub
Unverified
parent ae43d3e3b1
commit ea87e82a91
3 changed files with 8 additions and 5 deletions
@@ -110,8 +110,9 @@ namespace osu.Game.Rulesets.Osu.Difficulty
double baseSpeedPerformance = HarmonicSkill.DifficultyToPerformance(speedRating);
double baseReadingPerformance = HarmonicSkill.DifficultyToPerformance(readingRating);
double baseFlashlightPerformance = Flashlight.DifficultyToPerformance(flashlightRating);
double baseCognitionPerformance = DifficultyCalculationUtils.Norm(2, baseReadingPerformance, baseFlashlightPerformance);
double basePerformance = DifficultyCalculationUtils.Norm(OsuPerformanceCalculator.PERFORMANCE_NORM_EXPONENT, baseAimPerformance, baseSpeedPerformance, baseReadingPerformance, baseFlashlightPerformance);
double basePerformance = DifficultyCalculationUtils.Norm(OsuPerformanceCalculator.PERFORMANCE_NORM_EXPONENT, baseAimPerformance, baseSpeedPerformance, baseCognitionPerformance);
double starRating = calculateStarRating(basePerformance);
@@ -145,10 +145,12 @@ namespace osu.Game.Rulesets.Osu.Difficulty
double aimValue = computeAimValue(score, osuAttributes);
double speedValue = computeSpeedValue(score, osuAttributes);
double accuracyValue = computeAccuracyValue(score, osuAttributes);
double flashlightValue = computeFlashlightValue(score, osuAttributes);
double readingValue = computeReadingValue(osuAttributes);
double totalValue = DifficultyCalculationUtils.Norm(PERFORMANCE_NORM_EXPONENT, aimValue, speedValue, accuracyValue, readingValue, flashlightValue) * multiplier;
double readingValue = computeReadingValue(osuAttributes);
double flashlightValue = computeFlashlightValue(score, osuAttributes);
double cognitionValue = DifficultyCalculationUtils.Norm(2, readingValue, flashlightValue);
double totalValue = DifficultyCalculationUtils.Norm(PERFORMANCE_NORM_EXPONENT, aimValue, speedValue, accuracyValue, cognitionValue) * multiplier;
return new OsuPerformanceAttributes
{
@@ -20,7 +20,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
{
}
private double skillMultiplier => 0.05512;
private double skillMultiplier => 0.056;
private double strainDecayBase => 0.15;
private double currentStrain;