// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Graphics; using osu.Game.Online.Multiplayer; namespace osu.Game.Screens.Multi.Components { public class StatusColouredContainer : Container { private readonly double transitionDuration; [Resolved(typeof(Room), nameof(Room.Status))] private Bindable status { get; set; } [Resolved(typeof(Room), nameof(Room.Category))] private Bindable category { get; set; } public StatusColouredContainer(double transitionDuration = 100) { this.transitionDuration = transitionDuration; } [BackgroundDependencyLoader] private void load(OsuColour colours) { status.BindValueChanged(s => { this.FadeColour(category.Value == RoomCategory.Spotlight ? colours.Pink : s.NewValue.GetAppropriateColour(colours) , transitionDuration); }, true); } } }