From aaffc05b820b434ca74c9ffc8a2af81f8c8d5d0b Mon Sep 17 00:00:00 2001 From: Xexxar Date: Sat, 21 Aug 2021 17:56:45 +0000 Subject: [PATCH] removed accuracy penalty for misses --- osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs index 3ed8012a83..62f84b22ec 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs @@ -185,7 +185,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty double p100 = (2 * (double)countOk) / amountHitObjectsWithAccuracy; // this is multiplied by two to encourage better accuracy. (scales better) double p50 = (1 * (double)countMeh) / amountHitObjectsWithAccuracy; double pm = (1 * (double)countMiss) / amountHitObjectsWithAccuracy; - double p300 = 1.0 - pm - p100 - p50; + double p300 = Math.Max(0, 1.0 - pm - p100 - p50); double m300 = 79.5 - 6.0 * Attributes.OverallDifficulty; double m100 = 139.5 - 8.0 * Attributes.OverallDifficulty; @@ -193,8 +193,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty double variance = p300 * Math.Pow(m300 / 2.0, 2.0) + p100 * Math.Pow((m300 + m100) / 2.0, 2.0) + - p50 * Math.Pow((m100 + m50) / 2.0, 2.0) + - pm * Math.Pow(229.5 - 11 * Attributes.OverallDifficulty, 2.0); + p50 * Math.Pow((m100 + m50) / 2.0, 2.0); double accuracyValue = 2.83 * Math.Pow(1.52163, (79.5 - 2 * Math.Sqrt(variance)) / 6.0) * Math.Pow(Math.Log(1.0 + (Math.E - 1.0) * (Math.Min(amountHitObjectsWithAccuracy, 1600) / 1000.0)), 0.5);