From e25e507d09aaad5adb91e6e75692b5bb8826f15b Mon Sep 17 00:00:00 2001 From: danielthirtle Date: Wed, 3 Jul 2024 21:42:51 +1200 Subject: [PATCH 1/6] reduce the first strains in the map --- .../Difficulty/Skills/OsuStrainSkill.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs index 4a6328010b..6b7d2087d0 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs @@ -23,6 +23,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills /// This is done in order to decrease their impact on the overall difficulty of the map for this skill. /// protected virtual int ReducedSectionCount => 10; + protected virtual int ReducedEarlySectionCount => 50; + protected virtual double ReducedEarlySectionProportion => 0.1; /// /// The baseline multiplier applied to the section with the biggest strain. @@ -46,7 +48,15 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills // Sections with 0 strain are excluded to avoid worst-case time complexity of the following sort (e.g. /b/2351871). // These sections will not contribute to the difficulty. - var peaks = GetCurrentStrainPeaks().Where(p => p > 0); + var peaks = GetCurrentStrainPeaks().Where(p => p > 0).ToList(); + + // We are reducing the highest strains first to account for extreme difficulty spikes + int reducedEarlyStrains = Math.Min((int)(peaks.Count * ReducedEarlySectionProportion), ReducedEarlySectionCount); + for (int i = 0; i < reducedEarlyStrains; i++) + { + double scale = Math.Log10(Interpolation.Lerp(1, 10, Math.Clamp((float)i / reducedEarlyStrains, 0, 1))); + peaks[i] *= Interpolation.Lerp(ReducedStrainBaseline, 1.0, scale); + } List strains = peaks.OrderDescending().ToList(); @@ -68,4 +78,4 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills return difficulty * DifficultyMultiplier; } } -} +} \ No newline at end of file From 601ecd35f261c28ac1c6d46c8b1e11c1b9b3bf86 Mon Sep 17 00:00:00 2001 From: danielthirtle Date: Thu, 4 Jul 2024 20:55:14 +1200 Subject: [PATCH 2/6] make speed normal --- osu.Game.Rulesets.Osu/Difficulty/Skills/Speed.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/Speed.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/Speed.cs index 40aac013ab..cc49bc0909 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/Speed.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/Speed.cs @@ -22,9 +22,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills private double currentStrain; private double currentRhythm; - protected override int ReducedSectionCount => 5; - protected override double DifficultyMultiplier => 1.04; - private readonly List objectStrains = new List(); public Speed(Mod[] mods) From 2d255f86f9ef7073919fd573b0f71c90361387d1 Mon Sep 17 00:00:00 2001 From: danielthirtle Date: Sat, 13 Jul 2024 12:15:55 +1200 Subject: [PATCH 3/6] clean up --- osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs index 6b7d2087d0..c9eceaeb3d 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs @@ -78,4 +78,4 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills return difficulty * DifficultyMultiplier; } } -} \ No newline at end of file +} From 7b077255fe4288c18fe0906a065bc96aa1db4f55 Mon Sep 17 00:00:00 2001 From: danielthirtle Date: Tue, 16 Jul 2024 23:48:38 +1200 Subject: [PATCH 4/6] stop nerfing early strains --- .../Difficulty/Skills/OsuStrainSkill.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs index c9eceaeb3d..074318f33e 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs @@ -23,8 +23,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills /// This is done in order to decrease their impact on the overall difficulty of the map for this skill. /// protected virtual int ReducedSectionCount => 10; - protected virtual int ReducedEarlySectionCount => 50; - protected virtual double ReducedEarlySectionProportion => 0.1; /// /// The baseline multiplier applied to the section with the biggest strain. @@ -50,14 +48,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills // These sections will not contribute to the difficulty. var peaks = GetCurrentStrainPeaks().Where(p => p > 0).ToList(); - // We are reducing the highest strains first to account for extreme difficulty spikes - int reducedEarlyStrains = Math.Min((int)(peaks.Count * ReducedEarlySectionProportion), ReducedEarlySectionCount); - for (int i = 0; i < reducedEarlyStrains; i++) - { - double scale = Math.Log10(Interpolation.Lerp(1, 10, Math.Clamp((float)i / reducedEarlyStrains, 0, 1))); - peaks[i] *= Interpolation.Lerp(ReducedStrainBaseline, 1.0, scale); - } - List strains = peaks.OrderDescending().ToList(); // We are reducing the highest strains first to account for extreme difficulty spikes From 10d1b8f39a9fa7de1037d34b344ae04c87cedce7 Mon Sep 17 00:00:00 2001 From: danielthirtle Date: Tue, 16 Jul 2024 23:49:37 +1200 Subject: [PATCH 5/6] remove to list --- osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs index 074318f33e..4a6328010b 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs @@ -46,7 +46,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills // Sections with 0 strain are excluded to avoid worst-case time complexity of the following sort (e.g. /b/2351871). // These sections will not contribute to the difficulty. - var peaks = GetCurrentStrainPeaks().Where(p => p > 0).ToList(); + var peaks = GetCurrentStrainPeaks().Where(p => p > 0); List strains = peaks.OrderDescending().ToList(); From 8b18be6214701ae4cae1e46cd8404a0c6cbc934a Mon Sep 17 00:00:00 2001 From: TextAdventurer12 Date: Wed, 27 Nov 2024 23:54:20 +1300 Subject: [PATCH 6/6] change global mult --- osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs index 31b00dba2b..cfbd92ec3b 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs @@ -14,7 +14,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty { public class OsuPerformanceCalculator : PerformanceCalculator { - public const double PERFORMANCE_BASE_MULTIPLIER = 1.15; // This is being adjusted to keep the final pp value scaled around what it used to be when changing things. + public const double PERFORMANCE_BASE_MULTIPLIER = 1.06; // This is being adjusted to keep the final pp value scaled around what it used to be when changing things. private bool usingClassicSliderAccuracy;