diff --git a/osu.Game/Screens/SelectV2/FilterControl.DifficultyRangeSlider.cs b/osu.Game/Screens/SelectV2/FilterControl.DifficultyRangeSlider.cs index f65c17bddf..f15cfa4b4d 100644 --- a/osu.Game/Screens/SelectV2/FilterControl.DifficultyRangeSlider.cs +++ b/osu.Game/Screens/SelectV2/FilterControl.DifficultyRangeSlider.cs @@ -12,6 +12,7 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; using osu.Framework.Layout; using osu.Framework.Localisation; +using osu.Framework.Utils; using osu.Game.Graphics; using osu.Game.Graphics.UserInterface; using osu.Game.Localisation; @@ -164,15 +165,20 @@ namespace osu.Game.Screens.SelectV2 protected override void UpdateDisplay(double value) { Colour4 nubColour = ColourUtils.SampleFromLinearGradient(spectrum, (float)Math.Round(value, 2, MidpointRounding.AwayFromZero)); - nubColour = nubColour.Lighten(0.4f); - if (value >= 8.0) + // Handle edge case colors for color harmony + if (value >= 7.5 && value < 8.0) + nubColour = Interpolation.ValueAt(value, nubColour, colours.Gray4, 7.5, 8.0); + else if (value >= 8.0) nubColour = colours.Gray4; Nub.AccentColour = nubColour; - Nub.GlowingAccentColour = nubColour.Lighten(0.2f); + Nub.GlowingAccentColour = nubColour.Lighten(0.1f); Nub.ShadowColour = Color4.Black.Opacity(0.2f); - NubText.Colour = OsuColour.ForegroundTextColourFor(nubColour); + NubText.Colour = colours.ForStarDifficultyText(value); + // Except for infinity, which should be white + if (Current.IsDefault && isUpper) + NubText.Colour = OsuColour.ForegroundTextColourFor(nubColour); base.UpdateDisplay(value); }