diff --git a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs index e8b60bab81..ed5db58418 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs @@ -1,72 +1,70 @@ -//Copyright (c) 2007-2016 ppy Pty Ltd . -//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE - -using System; -using osu.Framework.Allocation; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Colour; -using osu.Framework.Graphics.Containers; -using osu.Framework.Graphics.Primitives; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.Textures; -using osu.Framework.MathUtils; -using osu.Game.Database; -using osu.Game.Graphics; -using osu.Game.Graphics.Backgrounds; -using osu.Game.Graphics.UserInterface; -using OpenTK; -using OpenTK.Graphics; +//Copyright (c) 2007-2016 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using System; +using osu.Framework.Allocation; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Colour; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Primitives; +using osu.Framework.Graphics.Sprites; +using osu.Framework.Graphics.Textures; +using osu.Framework.MathUtils; +using osu.Game.Database; +using osu.Game.Graphics; +using osu.Game.Graphics.Backgrounds; +using osu.Game.Graphics.UserInterface; +using OpenTK; +using OpenTK.Graphics; using osu.Framework.Input; -namespace osu.Game.Beatmaps.Drawables -{ - class BeatmapPanel : Panel - { - public BeatmapInfo Beatmap; - private Sprite background; - +namespace osu.Game.Beatmaps.Drawables +{ + class BeatmapPanel : Panel + { + public BeatmapInfo Beatmap; + private Sprite background; + public Action GainedSelection; public Action StartRequested; - Color4 deselectedColour = new Color4(20, 43, 51, 255); - protected override void Selected() { base.Selected(); GainedSelection?.Invoke(this); - background.ColourInfo = ColourInfo.GradientVertical( - new Color4(20, 43, 51, 255), + background.ColourInfo = ColourInfo.GradientVertical( + new Color4(20, 43, 51, 255), new Color4(40, 86, 102, 255)); - } - + } + protected override void Deselected() { base.Deselected(); - background.Colour = deselectedColour; - } - + background.Colour = new Color4(20, 43, 51, 255); + } + protected override bool OnClick(InputState state) { if (State == PanelSelectedState.Selected) StartRequested?.Invoke(this); return base.OnClick(state); - } - - public BeatmapPanel(BeatmapInfo beatmap) + } + + public BeatmapPanel(BeatmapInfo beatmap) { Beatmap = beatmap; - Height *= 0.60f; - - Children = new Drawable[] - { - background = new Box - { - RelativeSizeAxes = Axes.Both, - }, - new Triangles + Height *= 0.60f; + + Children = new Drawable[] + { + background = new Box + { + RelativeSizeAxes = Axes.Both, + }, + new Triangles { // The border is drawn in the shader of the children. Being additive, triangles would over-emphasize // the border wherever they cross it, and thus they get their own masking container without a border. @@ -74,70 +72,70 @@ namespace osu.Game.Beatmaps.Drawables CornerRadius = Content.CornerRadius, RelativeSizeAxes = Axes.Both, BlendingMode = BlendingMode.Additive, - Colour = deselectedColour, - }, - new FlowContainer - { - Padding = new MarginPadding(5), - Direction = FlowDirection.HorizontalOnly, - AutoSizeAxes = Axes.Both, + Colour = new Color4(20, 43, 51, 255), + }, + new FlowContainer + { + Padding = new MarginPadding(5), + Direction = FlowDirection.HorizontalOnly, + AutoSizeAxes = Axes.Both, Anchor = Anchor.CentreLeft, - Origin = Anchor.CentreLeft, - Children = new Drawable[] - { - new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(159, 198, 0, 255)) + Origin = Anchor.CentreLeft, + Children = new Drawable[] + { + new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(159, 198, 0, 255)) { Scale = new Vector2(1.8f), Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, - }, - new FlowContainer - { - Padding = new MarginPadding { Left = 5 }, - Spacing = new Vector2(0, 5), - Direction = FlowDirection.VerticalOnly, - AutoSizeAxes = Axes.Both, - Children = new Drawable[] - { - new FlowContainer - { - Direction = FlowDirection.HorizontalOnly, - AutoSizeAxes = Axes.Both, - Spacing = new Vector2(4, 0), - Children = new[] - { - new SpriteText - { - Font = @"Exo2.0-Medium", - Text = beatmap.Version, - TextSize = 20, - Anchor = Anchor.BottomLeft, - Origin = Anchor.BottomLeft - }, - new SpriteText - { - Font = @"Exo2.0-Medium", - Text = "mapped by", - TextSize = 16, - Anchor = Anchor.BottomLeft, - Origin = Anchor.BottomLeft - }, - new SpriteText - { - Font = @"Exo2.0-MediumItalic", - Text = $"{(beatmap.Metadata ?? beatmap.BeatmapSet.Metadata).Author}", - TextSize = 16, - Anchor = Anchor.BottomLeft, - Origin = Anchor.BottomLeft - }, - } - }, - new StarCounter { Count = beatmap.BaseDifficulty?.OverallDifficulty ?? 5, StarSize = 8 } - } - } - } - } - }; + }, + new FlowContainer + { + Padding = new MarginPadding { Left = 5 }, + Spacing = new Vector2(0, 5), + Direction = FlowDirection.VerticalOnly, + AutoSizeAxes = Axes.Both, + Children = new Drawable[] + { + new FlowContainer + { + Direction = FlowDirection.HorizontalOnly, + AutoSizeAxes = Axes.Both, + Spacing = new Vector2(4, 0), + Children = new[] + { + new SpriteText + { + Font = @"Exo2.0-Medium", + Text = beatmap.Version, + TextSize = 20, + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft + }, + new SpriteText + { + Font = @"Exo2.0-Medium", + Text = "mapped by", + TextSize = 16, + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft + }, + new SpriteText + { + Font = @"Exo2.0-MediumItalic", + Text = $"{(beatmap.Metadata ?? beatmap.BeatmapSet.Metadata).Author}", + TextSize = 16, + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft + }, + } + }, + new StarCounter { Count = beatmap.BaseDifficulty?.OverallDifficulty ?? 5, StarSize = 8 } + } + } + } + } + }; } - } -} + } +} diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs index 7234e2ad8b..99942de133 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs @@ -1,74 +1,74 @@ -//Copyright (c) 2007-2016 ppy Pty Ltd . -//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE - -using System; -using osu.Framework.Allocation; -using osu.Framework.Configuration; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Colour; -using osu.Framework.Graphics.Containers; -using osu.Framework.Graphics.Primitives; -using osu.Framework.Graphics.Sprites; -using osu.Game.Configuration; -using osu.Game.Graphics; -using OpenTK; -using OpenTK.Graphics; - +//Copyright (c) 2007-2016 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using System; +using osu.Framework.Allocation; +using osu.Framework.Configuration; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Colour; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Primitives; +using osu.Framework.Graphics.Sprites; +using osu.Game.Configuration; +using osu.Game.Graphics; +using OpenTK; +using OpenTK.Graphics; + namespace osu.Game.Beatmaps.Drawables { - class BeatmapSetHeader : Panel - { - public Action GainedSelection; - private SpriteText title, artist; - private OsuConfigManager config; - private Bindable preferUnicode; - private WorkingBeatmap beatmap; - - public BeatmapSetHeader(WorkingBeatmap beatmap) - { - this.beatmap = beatmap; - - Children = new Drawable[] - { + class BeatmapSetHeader : Panel + { + public Action GainedSelection; + private SpriteText title, artist; + private OsuConfigManager config; + private Bindable preferUnicode; + private WorkingBeatmap beatmap; + + public BeatmapSetHeader(WorkingBeatmap beatmap) + { + this.beatmap = beatmap; + + Children = new Drawable[] + { new PanelBackground(beatmap) { RelativeSizeAxes = Axes.Both, }, - new FlowContainer - { - Direction = FlowDirection.VerticalOnly, - Padding = new MarginPadding { Top = 5, Left = 18, Right = 10, Bottom = 10 }, - AutoSizeAxes = Axes.Both, - Children = new[] - { - title = new SpriteText - { - Font = @"Exo2.0-BoldItalic", - Text = beatmap.BeatmapSetInfo.Metadata.Title, - TextSize = 22, - Shadow = true, - }, - artist = new SpriteText - { - Margin = new MarginPadding { Top = -1 }, - Font = @"Exo2.0-SemiBoldItalic", - Text = beatmap.BeatmapSetInfo.Metadata.Artist, - TextSize = 17, - Shadow = true, - }, - new FlowContainer - { - Margin = new MarginPadding { Top = 5 }, - AutoSizeAxes = Axes.Both, - Children = new[] - { - new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(159, 198, 0, 255)), - new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(246, 101, 166, 255)), - } - } - } - } - }; + new FlowContainer + { + Direction = FlowDirection.VerticalOnly, + Padding = new MarginPadding { Top = 5, Left = 18, Right = 10, Bottom = 10 }, + AutoSizeAxes = Axes.Both, + Children = new[] + { + title = new SpriteText + { + Font = @"Exo2.0-BoldItalic", + Text = beatmap.BeatmapSetInfo.Metadata.Title, + TextSize = 22, + Shadow = true, + }, + artist = new SpriteText + { + Margin = new MarginPadding { Top = -1 }, + Font = @"Exo2.0-SemiBoldItalic", + Text = beatmap.BeatmapSetInfo.Metadata.Artist, + TextSize = 17, + Shadow = true, + }, + new FlowContainer + { + Margin = new MarginPadding { Top = 5 }, + AutoSizeAxes = Axes.Both, + Children = new[] + { + new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(159, 198, 0, 255)), + new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(246, 101, 166, 255)), + } + } + } + } + }; } protected override void LoadComplete() @@ -81,8 +81,8 @@ namespace osu.Game.Beatmaps.Drawables { base.Selected(); GainedSelection?.Invoke(this); - } - + } + [BackgroundDependencyLoader] private void load(OsuConfigManager config) { @@ -90,31 +90,32 @@ namespace osu.Game.Beatmaps.Drawables preferUnicode = config.GetBindable(OsuConfig.ShowUnicode); preferUnicode.ValueChanged += preferUnicode_changed; - preferUnicode_changed(preferUnicode, null); + preferUnicode_changed(preferUnicode, null); } - private void preferUnicode_changed(object sender, EventArgs e) - { - title.Text = config.GetUnicodeString(beatmap.BeatmapSetInfo.Metadata.Title, beatmap.BeatmapSetInfo.Metadata.TitleUnicode); - artist.Text = config.GetUnicodeString(beatmap.BeatmapSetInfo.Metadata.Artist, beatmap.BeatmapSetInfo.Metadata.ArtistUnicode); + + private void preferUnicode_changed(object sender, EventArgs e) + { + title.Text = config.GetUnicodeString(beatmap.BeatmapSetInfo.Metadata.Title, beatmap.BeatmapSetInfo.Metadata.TitleUnicode); + artist.Text = config.GetUnicodeString(beatmap.BeatmapSetInfo.Metadata.Artist, beatmap.BeatmapSetInfo.Metadata.ArtistUnicode); } protected override void Dispose(bool isDisposing) - { - if (preferUnicode != null) + { + if (preferUnicode != null) preferUnicode.ValueChanged -= preferUnicode_changed; base.Dispose(isDisposing); - } - + } + class PanelBackground : BufferedContainer - { - private readonly WorkingBeatmap working; - - public PanelBackground(WorkingBeatmap working) - { - this.working = working; - - CacheDrawnFrameBuffer = true; - + { + private readonly WorkingBeatmap working; + + public PanelBackground(WorkingBeatmap working) + { + this.working = working; + + CacheDrawnFrameBuffer = true; + Children = new[] { new FlowContainer @@ -128,34 +129,37 @@ namespace osu.Game.Beatmaps.Drawables Children = new[] { // The left half with no gradient applied - new Box - { - RelativeSizeAxes = Axes.Both, - Colour = Color4.Black, - Width = 0.4f, + new Box + { + RelativeSizeAxes = Axes.Both, + Colour = Color4.Black, + Width = 0.4f, }, // Piecewise-linear gradient with 3 segments to make it appear smoother new Box { RelativeSizeAxes = Axes.Both, - ColourInfo = ColourInfo.GradientHorizontal(Color4.Black, new Color4(0f, 0f, 0f, 0.9f)), + ColourInfo = ColourInfo.GradientHorizontal( + Color4.Black, new Color4(0f, 0f, 0f, 0.9f)), Width = 0.05f, }, new Box { RelativeSizeAxes = Axes.Both, - ColourInfo = ColourInfo.GradientHorizontal(new Color4(0f, 0f, 0f, 0.9f), new Color4(0f, 0f, 0f, 0.1f)), + ColourInfo = ColourInfo.GradientHorizontal( + new Color4(0f, 0f, 0f, 0.9f), new Color4(0f, 0f, 0f, 0.1f)), Width = 0.2f, }, new Box { RelativeSizeAxes = Axes.Both, - ColourInfo = ColourInfo.GradientHorizontal(new Color4(0f, 0f, 0f, 0.1f), new Color4(0, 0, 0, 0)), + ColourInfo = ColourInfo.GradientHorizontal( + new Color4(0f, 0f, 0f, 0.1f), new Color4(0, 0, 0, 0)), Width = 0.05f, }, } - }, - }; + }, + }; } [BackgroundDependencyLoader] @@ -172,6 +176,6 @@ namespace osu.Game.Beatmaps.Drawables ForceRedraw(); }); } - } + } } } \ No newline at end of file diff --git a/osu.Game/Beatmaps/Drawables/Panel.cs b/osu.Game/Beatmaps/Drawables/Panel.cs index f97a5260d8..ff89e5882d 100644 --- a/osu.Game/Beatmaps/Drawables/Panel.cs +++ b/osu.Game/Beatmaps/Drawables/Panel.cs @@ -8,6 +8,7 @@ using osu.Framework.Graphics.Transformations; using osu.Framework.Input; using OpenTK; using OpenTK.Graphics; +using osu.Game.Graphics; namespace osu.Game.Beatmaps.Drawables { @@ -98,7 +99,7 @@ namespace osu.Game.Beatmaps.Drawables Type = EdgeEffectType.Shadow, Offset = new Vector2(1), Radius = 10, - Colour = new Color4(0, 0, 0, 100), + Colour = Color4.Black.Opacity(100), }; } diff --git a/osu.Game/Beatmaps/Formats/BeatmapDecoder.cs b/osu.Game/Beatmaps/Formats/BeatmapDecoder.cs index 83cd60eca3..cd55f36ae3 100644 --- a/osu.Game/Beatmaps/Formats/BeatmapDecoder.cs +++ b/osu.Game/Beatmaps/Formats/BeatmapDecoder.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.IO; using osu.Game.Modes.Objects; using OpenTK.Graphics; +using osu.Game.Graphics; namespace osu.Game.Beatmaps.Formats { @@ -44,11 +45,11 @@ namespace osu.Game.Beatmaps.Formats public virtual void ApplyColours(Beatmap b) { - List colours = b.ComboColors ?? new List() { + List colours = b.ComboColors ?? new List { new Color4(17, 136, 170, 255), - new Color4(102,136,0, 255), - new Color4(204,102,0, 255), - new Color4(121,9,13, 255), + new Color4(102, 136, 0, 255), + new Color4(204, 102, 0, 255), + new Color4(121, 9, 13, 255), }; if (colours.Count == 0) return; diff --git a/osu.Game/Graphics/OsuColour.cs b/osu.Game/Graphics/OsuColour.cs new file mode 100644 index 0000000000..1ab5ec8f7c --- /dev/null +++ b/osu.Game/Graphics/OsuColour.cs @@ -0,0 +1,61 @@ +using System; +using OpenTK.Graphics; +using osu.Framework.Graphics.Colour; + +namespace osu.Game.Graphics +{ + public static class OsuColourExtensions + { + public static Color4 Opacity(this Color4 color, float a) => new Color4(color.R, color.G, color.B, a); + public static Color4 Opacity(this Color4 color, byte a) => new Color4(color.R, color.G, color.B, a / 255f); + } + + public class OsuColour + { + public static Color4 Gray(float amt) => new Color4(amt, amt, amt, 1f); + public static Color4 Gray(byte amt) => new Color4(amt, amt, amt, 255); + + private static Color4 FromHex(string hex) + { + return new Color4( + Convert.ToByte(hex.Substring(0, 2), 16), + Convert.ToByte(hex.Substring(2, 2), 16), + Convert.ToByte(hex.Substring(4, 2), 16), + 255); + } + + // See https://github.com/ppy/osu-web/blob/master/resources/assets/less/colors.less + + public Color4 PurpleLighter = FromHex(@"eeeeff"); + public Color4 PurpleLight = FromHex(@"aa88ff"); + public Color4 Purple = FromHex(@"8866ee"); + public Color4 PurpleDark = FromHex(@"6644cc"); + public Color4 PurpleDarker = FromHex(@"441188"); + + public Color4 PinkLighter = FromHex(@"ffddee"); + public Color4 PinkLight = FromHex(@"ff99cc"); + public Color4 Pink = FromHex(@"ff66aa"); + public Color4 PinkDark = FromHex(@"cc5288"); + public Color4 PinkDarker = FromHex(@"bb1177"); + + public Color4 BlueLighter = FromHex(@"ddffff"); + public Color4 BlueLight = FromHex(@"99eeff"); + public Color4 Blue = FromHex(@"66ccff"); + public Color4 BlueDark = FromHex(@"44aadd"); + public Color4 BlueDarker = FromHex(@"2299bb"); + + public Color4 YellowLighter = FromHex(@"ffffdd"); + public Color4 YellowLight = FromHex(@"ffdd55"); + public Color4 Yellow = FromHex(@"ffcc22"); + public Color4 YellowDark = FromHex(@"eeaa00"); + public Color4 YellowDarker = FromHex(@"cc6600"); + + public Color4 GreenLighter = FromHex(@"eeffcc"); + public Color4 GreenLight = FromHex(@"b3d944"); + public Color4 Green = FromHex(@"88b300"); + public Color4 GreenDark = FromHex(@"668800"); + public Color4 GreenDarker = FromHex(@"445500"); + + public Color4 Red = FromHex(@"fc4549"); + } +} diff --git a/osu.Game/Graphics/UserInterface/BackButton.cs b/osu.Game/Graphics/UserInterface/BackButton.cs index ade6cedc58..2f9a026b8f 100644 --- a/osu.Game/Graphics/UserInterface/BackButton.cs +++ b/osu.Game/Graphics/UserInterface/BackButton.cs @@ -34,55 +34,6 @@ namespace osu.Game.Graphics.UserInterface public BackButton() { Size = size_retracted; - - Children = new Drawable[] - { - new Container - { - RelativeSizeAxes = Axes.Both, - Width = 0.4f, - Children = new Drawable[] - { - leftBox = new Box - { - RelativeSizeAxes = Axes.Both, - Colour = new Color4(195, 40, 140, 255), - Shear = new Vector2(shear, 0), - }, - icon = new TextAwesome - { - Anchor = Anchor.Centre, - TextSize = 25, - Icon = FontAwesome.fa_osu_left_o - }, - } - }, - new Container - { - Origin = Anchor.TopRight, - Anchor = Anchor.TopRight, - RelativeSizeAxes = Axes.Both, - Width = 0.6f, - Children = new Drawable[] - { - rightBox = new Box - { - Colour = new Color4(238, 51, 153, 255), - Origin = Anchor.TopLeft, - Anchor = Anchor.TopLeft, - RelativeSizeAxes = Axes.Both, - Shear = new Vector2(shear, 0), - EdgeSmoothness = new Vector2(1.5f, 0), - }, - new SpriteText - { - Origin = Anchor.Centre, - Anchor = Anchor.Centre, - Text = @"Back", - } - } - } - }; } public override bool Contains(Vector2 screenSpacePos) => leftBox.Contains(screenSpacePos) || rightBox.Contains(screenSpacePos); @@ -140,9 +91,57 @@ namespace osu.Game.Graphics.UserInterface } [BackgroundDependencyLoader] - private void load(AudioManager audio) + private void load(AudioManager audio, OsuColour colours) { sampleClick = audio.Sample.Get(@"Menu/menuback"); + Children = new Drawable[] + { + new Container + { + RelativeSizeAxes = Axes.Both, + Width = 0.4f, + Children = new Drawable[] + { + leftBox = new Box + { + RelativeSizeAxes = Axes.Both, + Colour = colours.PinkDark, + Shear = new Vector2(shear, 0), + }, + icon = new TextAwesome + { + Anchor = Anchor.Centre, + TextSize = 25, + Icon = FontAwesome.fa_osu_left_o + }, + } + }, + new Container + { + Origin = Anchor.TopRight, + Anchor = Anchor.TopRight, + RelativeSizeAxes = Axes.Both, + Width = 0.6f, + Children = new Drawable[] + { + rightBox = new Box + { + Colour = colours.Pink, + Origin = Anchor.TopLeft, + Anchor = Anchor.TopLeft, + RelativeSizeAxes = Axes.Both, + Shear = new Vector2(shear, 0), + EdgeSmoothness = new Vector2(1.5f, 0), + }, + new SpriteText + { + Origin = Anchor.Centre, + Anchor = Anchor.Centre, + Text = @"Back", + } + } + } + }; } protected override bool OnClick(InputState state) @@ -151,7 +150,7 @@ namespace osu.Game.Graphics.UserInterface { RelativeSizeAxes = Axes.Both, Shear = new Vector2(shear, 0), - Colour = new Color4(255, 255, 255, 128), + Colour = Color4.White.Opacity(0.5f), }; Add(flash); diff --git a/osu.Game/Graphics/UserInterface/OsuButton.cs b/osu.Game/Graphics/UserInterface/OsuButton.cs index 476895e0b2..2afcf56140 100644 --- a/osu.Game/Graphics/UserInterface/OsuButton.cs +++ b/osu.Game/Graphics/UserInterface/OsuButton.cs @@ -3,6 +3,7 @@ using System; using OpenTK.Graphics; +using osu.Framework.Allocation; using osu.Framework.Graphics.UserInterface; namespace osu.Game.Graphics.UserInterface @@ -12,7 +13,12 @@ namespace osu.Game.Graphics.UserInterface public OsuButton() { Height = 25; - Colour = new Color4(14, 132, 165, 255); + } + + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { + Colour = colours.BlueDark; } } } \ No newline at end of file diff --git a/osu.Game/Modes/Objects/HitObject.cs b/osu.Game/Modes/Objects/HitObject.cs index 71839e7036..b2043fa94c 100644 --- a/osu.Game/Modes/Objects/HitObject.cs +++ b/osu.Game/Modes/Objects/HitObject.cs @@ -4,6 +4,7 @@ using osu.Game.Beatmaps; using osu.Game.Beatmaps.Samples; using OpenTK.Graphics; +using osu.Game.Graphics; namespace osu.Game.Modes.Objects { diff --git a/osu.Game/Online/Chat/Drawables/ChatLine.cs b/osu.Game/Online/Chat/Drawables/ChatLine.cs index 454f7beed7..2dd3425bda 100644 --- a/osu.Game/Online/Chat/Drawables/ChatLine.cs +++ b/osu.Game/Online/Chat/Drawables/ChatLine.cs @@ -35,7 +35,7 @@ namespace osu.Game.Online.Chat.Drawables { Text = Message.Timestamp.LocalDateTime.ToLongTimeString(), TextSize = text_size, - Colour = new Color4(128, 128, 128, 255) + Colour = Color4.Gray }, new SpriteText { diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs index 7c1f620c93..d29fe0032c 100644 --- a/osu.Game/OsuGameBase.cs +++ b/osu.Game/OsuGameBase.cs @@ -13,6 +13,7 @@ using osu.Game.Beatmaps; using osu.Game.Beatmaps.IO; using osu.Game.Configuration; using osu.Game.Database; +using osu.Game.Graphics; using osu.Game.Graphics.Cursor; using osu.Game.Graphics.Processing; using osu.Game.Online.API; @@ -41,6 +42,7 @@ namespace osu.Game Dependencies.Cache(this); Dependencies.Cache(Config); Dependencies.Cache(new BeatmapDatabase(Host.Storage, Host)); + Dependencies.Cache(new OsuColour()); //this completely overrides the framework default. will need to change once we make a proper FontStore. Dependencies.Cache(Fonts = new FontStore { ScaleAdjust = 0.01f }, true); diff --git a/osu.Game/Overlays/ChatOverlay.cs b/osu.Game/Overlays/ChatOverlay.cs index 22f7a3a78f..17a1a2604a 100644 --- a/osu.Game/Overlays/ChatOverlay.cs +++ b/osu.Game/Overlays/ChatOverlay.cs @@ -13,6 +13,7 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.Threading; +using osu.Game.Graphics; using osu.Game.Online.API; using osu.Game.Online.API.Requests; using osu.Game.Online.Chat; @@ -45,7 +46,7 @@ namespace osu.Game.Overlays { Depth = float.MaxValue, RelativeSizeAxes = Axes.Both, - Colour = new Color4(0.1f, 0.1f, 0.1f, 0.4f), + Colour = OsuColour.Gray(0.1f).Opacity(0.4f), }, content = new Container { diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs index 449d588f26..5052840848 100644 --- a/osu.Game/Overlays/MusicController.cs +++ b/osu.Game/Overlays/MusicController.cs @@ -56,7 +56,7 @@ namespace osu.Game.Overlays EdgeEffect = new EdgeEffect { Type = EdgeEffectType.Shadow, - Colour = new Color4(0, 0, 0, 40), + Colour = Color4.Black.Opacity(40), Radius = 5, }; @@ -65,7 +65,31 @@ namespace osu.Game.Overlays Origin = Anchor.TopRight; Position = start_position; Margin = new MarginPadding(10); + } + protected override bool OnDragStart(InputState state) => true; + + protected override bool OnDrag(InputState state) + { + Vector2 change = (state.Mouse.Position - state.Mouse.PositionMouseDown.Value); + + // Diminish the drag distance as we go further to simulate "rubber band" feeling. + change *= (float)Math.Pow(change.Length, 0.7f) / change.Length; + + MoveTo(start_position + change); + return base.OnDrag(state); + } + + protected override bool OnDragEnd(InputState state) + { + MoveTo(start_position, 800, EasingTypes.OutElastic); + return base.OnDragEnd(state); + } + + [BackgroundDependencyLoader] + private void load(OsuGameBase osuGame, BeatmapDatabase beatmaps, AudioManager audio, + TextureStore textures, OsuColour colours) + { Children = new Drawable[] { title = new SpriteText @@ -171,34 +195,11 @@ namespace osu.Game.Overlays Origin = Anchor.BottomCentre, Anchor = Anchor.BottomCentre, Height = 10, - Colour = new Color4(255, 204, 34, 255), + Colour = colours.Yellow, SeekRequested = seek } }; - } - - protected override bool OnDragStart(InputState state) => true; - - protected override bool OnDrag(InputState state) - { - Vector2 change = (state.Mouse.Position - state.Mouse.PositionMouseDown.Value); - - // Diminish the drag distance as we go further to simulate "rubber band" feeling. - change *= (float)Math.Pow(change.Length, 0.7f) / change.Length; - - MoveTo(start_position + change); - return base.OnDrag(state); - } - - protected override bool OnDragEnd(InputState state) - { - MoveTo(start_position, 800, EasingTypes.OutElastic); - return base.OnDragEnd(state); - } - - [BackgroundDependencyLoader] - private void load(OsuGameBase osuGame, BeatmapDatabase beatmaps, AudioManager audio, TextureStore textures) - { + this.beatmaps = beatmaps; trackManager = osuGame.Audio.Track; config = osuGame.Config; @@ -393,7 +394,7 @@ namespace osu.Game.Overlays { sprite = new Sprite { - Colour = new Color4(150, 150, 150, 255), + Colour = OsuColour.Gray(150), FillMode = FillMode.Fill, }, new Box @@ -402,7 +403,7 @@ namespace osu.Game.Overlays Height = 50, Origin = Anchor.BottomCentre, Anchor = Anchor.BottomCentre, - Colour = new Color4(0, 0, 0, 127) + Colour = Color4.Black.Opacity(0.5f) } }; } diff --git a/osu.Game/Overlays/Options/CheckBoxOption.cs b/osu.Game/Overlays/Options/CheckBoxOption.cs index 2ea176378c..310d33580d 100644 --- a/osu.Game/Overlays/Options/CheckBoxOption.cs +++ b/osu.Game/Overlays/Options/CheckBoxOption.cs @@ -16,6 +16,7 @@ using osu.Framework.Graphics.UserInterface; using OpenTK; using OpenTK.Graphics; using osu.Framework.Input; +using osu.Game.Graphics; namespace osu.Game.Overlays.Options { @@ -140,26 +141,13 @@ namespace osu.Game.Overlays.Options private Box fill; const float border_width = 3; - - Color4 hoverColour = new Color4(255, 221, 238, 255); - Color4 defaultColour = new Color4(255, 102, 170, 255); - Color4 glowColour = new Color4(187, 17, 119, 0); + private Color4 glowingColour, idleColour; public Light() { Size = new Vector2(40, 12); - Masking = true; - - Colour = defaultColour; - - EdgeEffect = new EdgeEffect - { - Colour = glowColour, - Type = EdgeEffectType.Glow, - Radius = 10, - Roundness = 8, - }; + Masking = true; CornerRadius = Height / 2; Masking = true; @@ -176,19 +164,33 @@ namespace osu.Game.Overlays.Options }; } + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { + Colour = idleColour = colours.Pink; + + EdgeEffect = new EdgeEffect + { + Colour = glowingColour = colours.PinkDarker, + Type = EdgeEffectType.Glow, + Radius = 10, + Roundness = 8, + }; + } + public bool Glowing { set { if (value) { - FadeColour(hoverColour, 500, EasingTypes.OutQuint); + FadeColour(glowingColour, 500, EasingTypes.OutQuint); FadeGlowTo(1, 500, EasingTypes.OutQuint); } else { FadeGlowTo(0, 500); - FadeColour(defaultColour, 500); + FadeColour(idleColour, 500); } } } diff --git a/osu.Game/Overlays/Options/DropdownOption.cs b/osu.Game/Overlays/Options/DropdownOption.cs index e843e15993..6262673734 100644 --- a/osu.Game/Overlays/Options/DropdownOption.cs +++ b/osu.Game/Overlays/Options/DropdownOption.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Reflection; using OpenTK; using OpenTK.Graphics; +using osu.Framework.Allocation; using osu.Framework.Configuration; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -131,9 +132,6 @@ namespace osu.Game.Overlays.Options private class StyledDropDownComboBox : DropDownComboBox { - protected override Color4 BackgroundColour => new Color4(0, 0, 0, 128); - protected override Color4 BackgroundColourHover => new Color4(187, 17, 119, 255); - private SpriteText label; protected override string Label { @@ -157,14 +155,17 @@ namespace osu.Game.Overlays.Options } }; } + + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { + BackgroundColour = Color4.Black.Opacity(0.5f); + BackgroundColourHover = colours.PinkDarker; + } } private class StyledDropDownMenuItem : DropDownMenuItem { - protected override Color4 BackgroundColour => new Color4(0, 0, 0, 128); - protected override Color4 BackgroundColourSelected => new Color4(0, 0, 0, 128); - protected override Color4 BackgroundColourHover => new Color4(187, 17, 119, 255); - public StyledDropDownMenuItem(string text, U value) : base(text, value) { AutoSizeAxes = Axes.None; @@ -193,6 +194,14 @@ namespace osu.Game.Overlays.Options } }; } + + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { + BackgroundColour = Color4.Black.Opacity(0.5f); + BackgroundColourHover = colours.PinkDarker; + BackgroundColourSelected = Color4.Black.Opacity(0.5f); + } } } } diff --git a/osu.Game/Overlays/Options/OptionsSection.cs b/osu.Game/Overlays/Options/OptionsSection.cs index 256d5c8218..5a5f22275b 100644 --- a/osu.Game/Overlays/Options/OptionsSection.cs +++ b/osu.Game/Overlays/Options/OptionsSection.cs @@ -3,6 +3,7 @@ using OpenTK; using OpenTK.Graphics; +using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Primitives; @@ -19,14 +20,16 @@ namespace osu.Game.Overlays.Options public abstract FontAwesome Icon { get; } public abstract string Header { get; } + private SpriteText headerLabel; + public OptionsSection() { Margin = new MarginPadding { Top = 20 }; - - const int headerSize = 26, headerMargin = 25; - const int borderSize = 2; AutoSizeAxes = Axes.Y; RelativeSizeAxes = Axes.X; + + const int headerSize = 26, headerMargin = 25; + const int borderSize = 2; AddInternal(new Drawable[] { new Box @@ -48,10 +51,9 @@ namespace osu.Game.Overlays.Options AutoSizeAxes = Axes.Y, Children = new[] { - new SpriteText + headerLabel = new SpriteText { TextSize = headerSize, - Colour = new Color4(247, 198, 35, 255), Text = Header, }, content = new FlowContainer @@ -66,5 +68,11 @@ namespace osu.Game.Overlays.Options }, }); } + + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { + headerLabel.Colour = colours.Pink; + } } } \ No newline at end of file diff --git a/osu.Game/Overlays/Options/SidebarButton.cs b/osu.Game/Overlays/Options/SidebarButton.cs index a1edc997a1..da2704ee60 100644 --- a/osu.Game/Overlays/Options/SidebarButton.cs +++ b/osu.Game/Overlays/Options/SidebarButton.cs @@ -4,6 +4,7 @@ using System; using OpenTK; using OpenTK.Graphics; +using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; @@ -55,44 +56,49 @@ namespace osu.Game.Overlays.Options RelativeSizeAxes = Axes.X; Children = new Drawable[] { - backgroundBox = new Box + backgroundBox = new Box + { + RelativeSizeAxes = Axes.Both, + BlendingMode = BlendingMode.Additive, + Colour = OsuColour.Gray(60), + Alpha = 0, + }, + new Container + { + Width = OptionsSidebar.default_width, + RelativeSizeAxes = Axes.Y, + Children = new[] { - RelativeSizeAxes = Axes.Both, - BlendingMode = BlendingMode.Additive, - Colour = new Color4(60, 60, 60, 255), - Alpha = 0, - }, - new Container - { - Width = OptionsSidebar.default_width, - RelativeSizeAxes = Axes.Y, - Children = new[] + drawableIcon = new TextAwesome { - drawableIcon = new TextAwesome - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - }, - } - }, - headerText = new SpriteText - { - Position = new Vector2(OptionsSidebar.default_width + 10, 0), - Anchor = Anchor.CentreLeft, - Origin = Anchor.CentreLeft, - }, - selectionIndicator = new Box - { - Alpha = 0, - RelativeSizeAxes = Axes.Y, - Width = 5, - Anchor = Anchor.CentreRight, - Origin = Anchor.CentreRight, - Colour = new Color4(247, 198, 35, 255) + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + }, } + }, + headerText = new SpriteText + { + Position = new Vector2(OptionsSidebar.default_width + 10, 0), + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, + }, + selectionIndicator = new Box + { + Alpha = 0, + RelativeSizeAxes = Axes.Y, + Width = 5, + Anchor = Anchor.CentreRight, + Origin = Anchor.CentreRight, + } }; } + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { + selectionIndicator.Colour = colours.Pink; + } + protected override bool OnClick(InputState state) { Action?.Invoke(); diff --git a/osu.Game/Overlays/Options/SliderOption.cs b/osu.Game/Overlays/Options/SliderOption.cs index 44b7935945..e2e387d348 100644 --- a/osu.Game/Overlays/Options/SliderOption.cs +++ b/osu.Game/Overlays/Options/SliderOption.cs @@ -16,6 +16,8 @@ using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.UserInterface; using osu.Framework.Input; +using osu.Game.Graphics; +using System.Linq; namespace osu.Game.Overlays.Options { @@ -84,7 +86,6 @@ namespace osu.Game.Overlays.Options RelativeSizeAxes = Axes.None, Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, - Colour = new Color4(255, 102, 170, 255), }, rightBox = new Box { @@ -92,7 +93,6 @@ namespace osu.Game.Overlays.Options RelativeSizeAxes = Axes.None, Anchor = Anchor.CentreRight, Origin = Anchor.CentreRight, - Colour = new Color4(255, 102, 170, 255), Alpha = 0.5f, }, nub = new Container @@ -104,13 +104,11 @@ namespace osu.Game.Overlays.Options AutoSizeAxes = Axes.None, RelativeSizeAxes = Axes.None, Masking = true, - BorderColour = new Color4(255, 102, 170, 255), BorderThickness = 3, Children = new[] { new Box { - Colour = new Color4(255, 102, 170, 0), RelativeSizeAxes = Axes.Both } } @@ -119,9 +117,13 @@ namespace osu.Game.Overlays.Options } [BackgroundDependencyLoader] - private void load(AudioManager audio) + private void load(AudioManager audio, OsuColour colours) { sample = audio.Sample.Get(@"Sliderbar/sliderbar"); + leftBox.Colour = colours.Pink; + rightBox.Colour = colours.Pink; + nub.BorderColour = colours.Pink; + (nub.Children.First() as Box).Colour = colours.Pink.Opacity(0); } private void playSample() diff --git a/osu.Game/Overlays/OptionsOverlay.cs b/osu.Game/Overlays/OptionsOverlay.cs index 33677799f1..0767a70739 100644 --- a/osu.Game/Overlays/OptionsOverlay.cs +++ b/osu.Game/Overlays/OptionsOverlay.cs @@ -23,6 +23,7 @@ using osu.Game.Overlays.Options.Graphics; using osu.Game.Overlays.Options.Input; using osu.Game.Overlays.Options.Online; using System; +using osu.Game.Graphics; namespace osu.Game.Overlays { @@ -45,6 +46,13 @@ namespace osu.Game.Overlays private float lastKnownScroll; public OptionsOverlay() + { + RelativeSizeAxes = Axes.Y; + AutoSizeAxes = Axes.X; + } + + [BackgroundDependencyLoader(permitNulls: true)] + private void load(OsuGame game, OsuColour colours) { sections = new OptionsSection[] { @@ -58,10 +66,6 @@ namespace osu.Game.Overlays new OnlineSection(), new MaintenanceSection(), }; - - RelativeSizeAxes = Axes.Y; - AutoSizeAxes = Axes.X; - Children = new Drawable[] { new Box @@ -94,7 +98,7 @@ namespace osu.Game.Overlays }, new SpriteText { - Colour = new Color4(255, 102, 170, 255), + Colour = colours.Pink, Text = "Change the way osu! behaves", TextSize = 18, Margin = new MarginPadding { Left = CONTENT_MARGINS, Bottom = 30 }, @@ -123,11 +127,7 @@ namespace osu.Game.Overlays ).ToArray() } }; - } - - [BackgroundDependencyLoader(permitNulls: true)] - private void load(OsuGame game) - { + scrollContainer.Padding = new MarginPadding { Top = game?.Toolbar.DrawHeight ?? 0 }; } diff --git a/osu.Game/Overlays/Toolbar/Toolbar.cs b/osu.Game/Overlays/Toolbar/Toolbar.cs index df6168b6c5..783f7b65da 100644 --- a/osu.Game/Overlays/Toolbar/Toolbar.cs +++ b/osu.Game/Overlays/Toolbar/Toolbar.cs @@ -66,7 +66,7 @@ namespace osu.Game.Overlays.Toolbar solidBackground = new Box { RelativeSizeAxes = Axes.Both, - Colour = new Color4(0.1f, 0.1f, 0.1f, 1), + Colour = OsuColour.Gray(0.1f), Alpha = alpha_normal, }, gradientBackground = new Box @@ -75,7 +75,8 @@ namespace osu.Game.Overlays.Toolbar Anchor = Anchor.BottomLeft, Alpha = 0, Height = 90, - ColourInfo = ColourInfo.GradientVertical(new Color4(0.1f, 0.1f, 0.1f, 0.5f), new Color4(0.1f, 0.1f, 0.1f, 0f)), + ColourInfo = ColourInfo.GradientVertical( + OsuColour.Gray(0.1f).Opacity(0.5f), OsuColour.Gray(0.1f).Opacity(0)), }, new FlowContainer { diff --git a/osu.Game/Overlays/Toolbar/ToolbarButton.cs b/osu.Game/Overlays/Toolbar/ToolbarButton.cs index 80b2fcdb42..47f2df8d3f 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarButton.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarButton.cs @@ -70,7 +70,7 @@ namespace osu.Game.Overlays.Toolbar HoverBackground = new Box { RelativeSizeAxes = Axes.Both, - Colour = new Color4(80, 80, 80, 180), + Colour = OsuColour.Gray(80).Opacity(180), BlendingMode = BlendingMode.Additive, Alpha = 0, }, @@ -144,7 +144,7 @@ namespace osu.Game.Overlays.Toolbar { Action?.Invoke(); sampleClick.Play(); - HoverBackground.FlashColour(new Color4(255, 255, 255, 100), 500, EasingTypes.OutQuint); + HoverBackground.FlashColour(Color4.White.Opacity(100), 500, EasingTypes.OutQuint); return true; } @@ -174,7 +174,7 @@ namespace osu.Game.Overlays.Toolbar new Box { RelativeSizeAxes = Axes.Both, - Colour = new Color4(30, 30, 30, 255) + Colour = OsuColour.Gray(30) }, new Triangles { diff --git a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs index 22c214d82f..68ae31e934 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs @@ -13,6 +13,7 @@ using osu.Game.Graphics.Backgrounds; using osu.Game.Modes; using OpenTK; using OpenTK.Graphics; +using osu.Game.Graphics; namespace osu.Game.Overlays.Toolbar { diff --git a/osu.Game/Overlays/Toolbar/ToolbarOverlayToggleButton.cs b/osu.Game/Overlays/Toolbar/ToolbarOverlayToggleButton.cs index b72a358456..3e8a1831aa 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarOverlayToggleButton.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarOverlayToggleButton.cs @@ -17,6 +17,7 @@ using osu.Game.Configuration; using osu.Game.Online.API; using OpenTK; using OpenTK.Graphics; +using osu.Game.Graphics; namespace osu.Game.Overlays.Toolbar { @@ -41,7 +42,7 @@ namespace osu.Game.Overlays.Toolbar Add(StateBackground = new Box { RelativeSizeAxes = Axes.Both, - Colour = new Color4(150, 150, 150, 180), + Colour = OsuColour.Gray(150).Opacity(180), BlendingMode = BlendingMode.Additive, Depth = 2, Alpha = 0, diff --git a/osu.Game/Overlays/Toolbar/ToolbarUserButton.cs b/osu.Game/Overlays/Toolbar/ToolbarUserButton.cs index 09708fc403..e093dbeca0 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarUserButton.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarUserButton.cs @@ -16,6 +16,7 @@ using osu.Game.Configuration; using osu.Game.Online.API; using OpenTK; using OpenTK.Graphics; +using osu.Game.Graphics; namespace osu.Game.Overlays.Toolbar { @@ -73,7 +74,7 @@ namespace osu.Game.Overlays.Toolbar { Type = EdgeEffectType.Shadow, Radius = 4, - Colour = new Color4(0, 0, 0, 0.1f), + Colour = Color4.Black.Opacity(0.1f), }; Masking = true; diff --git a/osu.Game/Screens/Menu/Button.cs b/osu.Game/Screens/Menu/Button.cs index 28158457dd..719d75b018 100644 --- a/osu.Game/Screens/Menu/Button.cs +++ b/osu.Game/Screens/Menu/Button.cs @@ -64,7 +64,7 @@ namespace osu.Game.Screens.Menu EdgeEffect = new EdgeEffect { Type = EdgeEffectType.Shadow, - Colour = new Color4(0, 0, 0, 0.2f), + Colour = Color4.Black.Opacity(0.2f), Roundness = 5, Radius = 8, }, diff --git a/osu.Game/Screens/Menu/ButtonSystem.cs b/osu.Game/Screens/Menu/ButtonSystem.cs index 6e15d458c1..8825f9474b 100644 --- a/osu.Game/Screens/Menu/ButtonSystem.cs +++ b/osu.Game/Screens/Menu/ButtonSystem.cs @@ -72,7 +72,7 @@ namespace osu.Game.Screens.Menu { RelativeSizeAxes = Axes.Both, Size = new Vector2(2, 1), - Colour = new Color4(50, 50, 50, 255), + Colour = OsuColour.Gray(50), Anchor = Anchor.Centre, Origin = Anchor.Centre, }, diff --git a/osu.Game/Screens/Select/BeatmapInfoWedge.cs b/osu.Game/Screens/Select/BeatmapInfoWedge.cs index 81cd55d429..aad2982544 100644 --- a/osu.Game/Screens/Select/BeatmapInfoWedge.cs +++ b/osu.Game/Screens/Select/BeatmapInfoWedge.cs @@ -14,6 +14,7 @@ using osu.Game.Beatmaps; using osu.Game.Database; using osu.Framework.Graphics.Colour; using osu.Game.Beatmaps.Drawables; +using osu.Game.Graphics; namespace osu.Game.Screens.Select { @@ -80,7 +81,7 @@ namespace osu.Game.Screens.Select new Container { RelativeSizeAxes = Axes.Both, - ColourInfo = ColourInfo.GradientVertical(Color4.White, new Color4(1f, 1f, 1f, 0.3f)), + ColourInfo = ColourInfo.GradientVertical(Color4.White, Color4.White.Opacity(0.3f)), Children = new [] { // Zoomed-in and cropped beatmap background @@ -93,53 +94,53 @@ namespace osu.Game.Screens.Select }, }, // Text for beatmap info - new FlowContainer - { - Anchor = Anchor.BottomLeft, - Origin = Anchor.BottomLeft, - Direction = FlowDirection.VerticalOnly, - Margin = new MarginPadding { Top = 10, Left = 25, Right = 10, Bottom = 40 }, - AutoSizeAxes = Axes.Both, - Children = new[] - { - new SpriteText - { - Font = @"Exo2.0-MediumItalic", - Text = beatmapSetInfo.Metadata.Artist + " -- " + beatmapSetInfo.Metadata.Title, - TextSize = 28, - Shadow = true, - }, - new SpriteText - { - Font = @"Exo2.0-MediumItalic", - Text = beatmapInfo.Version, - TextSize = 17, - Shadow = true, - }, - new FlowContainer + new FlowContainer + { + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft, + Direction = FlowDirection.VerticalOnly, + Margin = new MarginPadding { Top = 10, Left = 25, Right = 10, Bottom = 40 }, + AutoSizeAxes = Axes.Both, + Children = new[] + { + new SpriteText + { + Font = @"Exo2.0-MediumItalic", + Text = beatmapSetInfo.Metadata.Artist + " -- " + beatmapSetInfo.Metadata.Title, + TextSize = 28, + Shadow = true, + }, + new SpriteText + { + Font = @"Exo2.0-MediumItalic", + Text = beatmapInfo.Version, + TextSize = 17, + Shadow = true, + }, + new FlowContainer { Margin = new MarginPadding { Top = 10 }, Direction = FlowDirection.HorizontalOnly, AutoSizeAxes = Axes.Both, Children = new [] { - new SpriteText - { - Font = @"Exo2.0-Medium", - Text = "mapped by ", - TextSize = 15, - Shadow = true, + new SpriteText + { + Font = @"Exo2.0-Medium", + Text = "mapped by ", + TextSize = 15, + Shadow = true, }, - new SpriteText - { - Font = @"Exo2.0-Bold", - Text = beatmapSetInfo.Metadata.Author, - TextSize = 15, - Shadow = true, + new SpriteText + { + Font = @"Exo2.0-Bold", + Text = beatmapSetInfo.Metadata.Author, + TextSize = 15, + Shadow = true, }, } - } - } + } + } } } }).Preload(game, delegate(Drawable d) diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs index 3a74c42029..aba48f2401 100644 --- a/osu.Game/Screens/Select/PlaySongSelect.cs +++ b/osu.Game/Screens/Select/PlaySongSelect.cs @@ -30,6 +30,7 @@ using osu.Game.Beatmaps.Drawables; using osu.Game.Graphics.Containers; using osu.Framework.Input; using OpenTK.Input; +using osu.Game.Graphics; namespace osu.Game.Screens.Select { @@ -62,7 +63,7 @@ namespace osu.Game.Screens.Select { RelativeSizeAxes = Axes.Both, Size = new Vector2(1, 0.5f), - Colour = new Color4(0, 0, 0, 0.5f), + Colour = Color4.Black.Opacity(0.5f), Shear = new Vector2(0.15f, 0), EdgeSmoothness = new Vector2(2, 0), }, @@ -72,7 +73,7 @@ namespace osu.Game.Screens.Select RelativePositionAxes = Axes.Y, Size = new Vector2(1, -0.5f), Position = new Vector2(0, 1), - Colour = new Color4(0, 0, 0, 0.5f), + Colour = Color4.Black.Opacity(0.5f), Shear = new Vector2(-0.15f, 0), EdgeSmoothness = new Vector2(2, 0), }, @@ -80,7 +81,34 @@ namespace osu.Game.Screens.Select } } - public PlaySongSelect() + Player player; + + private void start() + { + if (player != null) + return; + + //in the future we may want to move this logic to a PlayerLoader gamemode or similar, so we can rely on the SongSelect transition + //and provide a better loading experience (at the moment song select is still accepting input during preload). + player = new Player + { + BeatmapInfo = carousel.SelectedGroup.SelectedPanel.Beatmap, + PreferredPlayMode = playMode.Value + }; + + player.Preload(Game, delegate + { + if (!Push(player)) + { + player = null; + //error occured? + } + }); + } + + [BackgroundDependencyLoader(permitNulls: true)] + private void load(BeatmapDatabase beatmaps, AudioManager audio, BaseGame game, + OsuGame osuGame, OsuColour colours) { const float carouselWidth = 640; const float bottomToolHeight = 50; @@ -126,7 +154,7 @@ namespace osu.Game.Screens.Select { RelativeSizeAxes = Axes.Both, Size = Vector2.One, - Colour = new Color4(0, 0, 0, 0.5f), + Colour = Color4.Black.Opacity(0.5f), }, new BackButton { @@ -142,42 +170,13 @@ namespace osu.Game.Screens.Select RelativeSizeAxes = Axes.Y, Width = 100, Text = "Play", - Colour = new Color4(238, 51, 153, 255), + Colour = colours.Pink, Action = start }, } } }; - } - - Player player; - - private void start() - { - if (player != null) - return; - - //in the future we may want to move this logic to a PlayerLoader gamemode or similar, so we can rely on the SongSelect transition - //and provide a better loading experience (at the moment song select is still accepting input during preload). - player = new Player - { - BeatmapInfo = carousel.SelectedGroup.SelectedPanel.Beatmap, - PreferredPlayMode = playMode.Value - }; - - player.Preload(Game, delegate - { - if (!Push(player)) - { - player = null; - //error occured? - } - }); - } - - [BackgroundDependencyLoader(permitNulls: true)] - private void load(BeatmapDatabase beatmaps, AudioManager audio, BaseGame game, OsuGame osuGame) - { + if (osuGame != null) { playMode = osuGame.PlayMode; diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index a15cd5db7d..a4da659718 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -231,6 +231,7 @@ +