1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-31 12:13:00 +08:00

Adjust menu side flashes to be brighter and coloured when seasonal active

This commit is contained in:
Dean Herbert 2024-12-19 17:57:12 +09:00
parent 9baa56b0c8
commit fb58823da3
No known key found for this signature in database

View File

@ -3,22 +3,23 @@
#nullable disable
using osuTK.Graphics;
using System;
using osu.Framework.Allocation;
using osu.Framework.Audio.Track;
using osu.Framework.Bindables;
using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Colour;
using osu.Framework.Graphics.Shapes;
using osu.Framework.Utils;
using osu.Game.Beatmaps;
using osu.Game.Beatmaps.ControlPoints;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Skinning;
using osu.Game.Online.API;
using System;
using osu.Framework.Audio.Track;
using osu.Framework.Bindables;
using osu.Game.Online.API.Requests.Responses;
using osu.Game.Skinning;
using osuTK.Graphics;
namespace osu.Game.Screens.Menu
{
@ -67,7 +68,7 @@ namespace osu.Game.Screens.Menu
Anchor = Anchor.CentreLeft,
Origin = Anchor.CentreLeft,
RelativeSizeAxes = Axes.Y,
Width = box_width * 2,
Width = box_width * (SeasonalUI.ENABLED ? 4 : 2),
Height = 1.5f,
// align off-screen to make sure our edges don't become visible during parallax.
X = -box_width,
@ -79,7 +80,7 @@ namespace osu.Game.Screens.Menu
Anchor = Anchor.CentreRight,
Origin = Anchor.CentreRight,
RelativeSizeAxes = Axes.Y,
Width = box_width * 2,
Width = box_width * (SeasonalUI.ENABLED ? 4 : 2),
Height = 1.5f,
X = box_width,
Alpha = 0,
@ -104,7 +105,11 @@ namespace osu.Game.Screens.Menu
private void flash(Drawable d, double beatLength, bool kiai, ChannelAmplitudes amplitudes)
{
d.FadeTo(Math.Max(0, ((ReferenceEquals(d, leftBox) ? amplitudes.LeftChannel : amplitudes.RightChannel) - amplitude_dead_zone) / (kiai ? kiai_multiplier : alpha_multiplier)), box_fade_in_time)
if (SeasonalUI.ENABLED)
updateColour();
d.FadeTo(Math.Clamp(0.1f + ((ReferenceEquals(d, leftBox) ? amplitudes.LeftChannel : amplitudes.RightChannel) - amplitude_dead_zone) / (kiai ? kiai_multiplier : alpha_multiplier), 0.1f, 1),
box_fade_in_time)
.Then()
.FadeOut(beatLength, Easing.In);
}
@ -113,7 +118,9 @@ namespace osu.Game.Screens.Menu
{
Color4 baseColour = colours.Blue;
if (user.Value?.IsSupporter ?? false)
if (SeasonalUI.ENABLED)
baseColour = RNG.NextBool() ? SeasonalUI.PRIMARY_COLOUR_1 : SeasonalUI.PRIMARY_COLOUR_2;
else if (user.Value?.IsSupporter ?? false)
baseColour = skin.Value.GetConfig<GlobalSkinColours, Color4>(GlobalSkinColours.MenuGlow)?.Value ?? baseColour;
// linear colour looks better in this case, so let's use it for now.