diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs index 245c4107e9..ee6e0dba85 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs @@ -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); diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs index a8a024023d..8ee76814c3 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs @@ -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 { diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs index 70d61250bb..44c39cbb9c 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs @@ -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;