Skip to content

Commit

Permalink
Add autoplay and relax to mods test scene
Browse files Browse the repository at this point in the history
  • Loading branch information
tomm13 committed May 12, 2024
1 parent f137176 commit e9d79a2
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions osu.Game/Screens/Select/FooterV2/FooterButtonModsV2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
using System.Linq;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Extensions.LocalisationExtensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Colour;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Cursor;
using osu.Framework.Graphics.Effects;
Expand Down Expand Up @@ -52,6 +54,7 @@ public Bindable<IReadOnlyList<Mod>> Current

private ModDisplay modDisplay = null!;
private OsuSpriteText modCountText = null!;
private Box modDisplayGlow = null!;

protected OsuSpriteText MultiplierText { get; private set; } = null!;

Expand Down Expand Up @@ -124,6 +127,11 @@ private void load()
Colour = colourProvider.Background3,
RelativeSizeAxes = Axes.Both,
},
modDisplayGlow = new Box
{
Colour = colourProvider.Background3.Opacity(0f),
RelativeSizeAxes = Axes.Both,
},
modDisplay = new ModDisplay(showExtendedInformation: false)
{
Anchor = Anchor.Centre,
Expand Down Expand Up @@ -218,13 +226,22 @@ private void updateDisplay()
modDisplayBar.FadeIn(duration, easing);
}

if (Current.Value.Any(m => !m.UserPlayable))
modDisplayGlow.FadeColour(ColourInfo.GradientHorizontal(colours.Blue1.Opacity(0.5f), colours.Blue1.Opacity(0f)), duration, easing);

double multiplier = Current.Value?.Aggregate(1.0, (current, mod) => current * mod.ScoreMultiplier) ?? 1;
MultiplierText.Text = ModUtils.FormatScoreMultiplier(multiplier);

if (multiplier > 1)
{
MultiplierText.FadeColour(colours.Red1, duration, easing);
modDisplayGlow.FadeColour(ColourInfo.GradientHorizontal(colours.Red1.Opacity(0.5f), colours.Red1.Opacity(0f)), duration, easing);
}
else if (multiplier < 1)
{
MultiplierText.FadeColour(colours.Lime1, duration, easing);
modDisplayGlow.FadeColour(ColourInfo.GradientHorizontal(colours.Lime1.Opacity(0.5f), colours.Lime1.Opacity(0f)), duration, easing);
}
else
MultiplierText.FadeColour(Color4.White, duration, easing);
}
Expand Down

0 comments on commit e9d79a2

Please sign in to comment.