diff --git a/osu.Game.Tournament/Components/TournamentBeatmapPanel.cs b/osu.Game.Tournament/Components/TournamentBeatmapPanel.cs index 628f1006059c..09b9216b0df6 100644 --- a/osu.Game.Tournament/Components/TournamentBeatmapPanel.cs +++ b/osu.Game.Tournament/Components/TournamentBeatmapPanel.cs @@ -32,7 +32,8 @@ public partial class TournamentBeatmapPanel : CompositeDrawable private readonly Bindable currentMatch = new Bindable(); private Box flash = null!; - private PadLock padLock = null!; + private MapStatusIcon padLock = null!; + private MapStatusIcon banIcon = null!; private readonly bool isMappool; public TournamentBeatmapPanel(IBeatmapInfo? beatmap, string mod = "", bool isMappool = false) @@ -113,7 +114,13 @@ private void load(LadderInfo ladder) } }, }, - padLock = new PadLock + padLock = new MapStatusIcon(FontAwesome.Solid.ShieldAlt) + { + Origin = Anchor.Centre, + Anchor = Anchor.Centre, + Alpha = 0f, + }, + banIcon = new MapStatusIcon(FontAwesome.Solid.Ban) { Origin = Anchor.Centre, Anchor = Anchor.Centre, @@ -203,6 +210,13 @@ private void updateState() case ChoiceType.Ban: Colour = Color4.Gray; Alpha = 0.5f; + + if (isMappool) + { + banIcon.Team = lastFound.Team; + banIcon.Show(); + } + break; case ChoiceType.Protected: @@ -216,6 +230,11 @@ private void updateState() Colour = Color4.White; BorderThickness = 0; Alpha = 1; + + if (isMappool) + { + banIcon.Hide(); + } } choice = lastFound; @@ -231,18 +250,25 @@ protected override DelayedLoadWrapper CreateDelayedLoadWrapper(Func cr => new DelayedLoadWrapper(createContentFunc(), timeBeforeLoad); } - private partial class PadLock : Container + private partial class MapStatusIcon : Container { + private readonly IconUsage icon; + [Resolved] private OsuColour osuColour { get; set; } = null!; public TeamColour Team { - set => lockIcon.Colour = value == TeamColour.Red ? osuColour.TeamColourRed : osuColour.TeamColourBlue; + set => spriteIcon.Colour = value == TeamColour.Red ? osuColour.TeamColourRed : osuColour.TeamColourBlue; } private Sprite background = null!; - private SpriteIcon lockIcon = null!; + private SpriteIcon spriteIcon = null!; + + public MapStatusIcon(IconUsage icon) + { + this.icon = icon; + } [BackgroundDependencyLoader] private void load(TextureStore textures) @@ -259,12 +285,12 @@ private void load(TextureStore textures) Anchor = Anchor.Centre, Origin = Anchor.Centre, }, - lockIcon = new SpriteIcon + spriteIcon = new SpriteIcon { Origin = Anchor.Centre, Anchor = Anchor.Centre, Size = new Vector2(22), - Icon = FontAwesome.Solid.ShieldAlt, + Icon = icon, Shadow = true, } };