From 7188a3268fbdfc24fb66b8aa6783ca151833c72d Mon Sep 17 00:00:00 2001 From: MBmasher Date: Tue, 24 Aug 2021 14:01:54 +1000 Subject: [PATCH] Apply a nerf to stacks for Flashlight skill --- osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs b/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs index d225486cc8..f048142b56 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/Skills/Flashlight.cs @@ -19,7 +19,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills { } - protected override double SkillMultiplier => 0.13; + protected override double SkillMultiplier => 0.15; protected override double StrainDecayBase => 0.15; protected override double DecayWeight => 1.0; protected override int HistoryLength => 10; // Look back for 10 notes is added for the sake of flashlight calculations. @@ -53,10 +53,13 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills cumulativeStrainTime += osuPrevious.StrainTime; // We want to nerf objects that can be easily seen within the Flashlight circle radius. - if (i == 0 && jumpDistance < 50.0) - smallDistNerf = jumpDistance / 50.0; + if (i == 0) + smallDistNerf = Math.Min(1.0, jumpDistance / 50.0); - result += Math.Pow(0.8, i) * scalingFactor * jumpDistance / cumulativeStrainTime; + // We also want to nerf stacks so that only the first object of the stack is accounted for. + double stackNerf = Math.Min(1.0, osuPrevious.JumpDistance * scalingFactor / 50.0); + + result += Math.Pow(0.8, i) * stackNerf * scalingFactor * jumpDistance / cumulativeStrainTime; } } }