diff --git a/osu.Desktop/OsuGameDesktop.cs b/osu.Desktop/OsuGameDesktop.cs
index 2eeb112450..0b50db1f72 100644
--- a/osu.Desktop/OsuGameDesktop.cs
+++ b/osu.Desktop/OsuGameDesktop.cs
@@ -97,7 +97,7 @@ namespace osu.Desktop
private void fileDrop(object sender, FileDropEventArgs e)
{
- var filePaths = new[] { e.FileName };
+ var filePaths = e.FileNames;
var firstExtension = Path.GetExtension(filePaths.First());
diff --git a/osu.Desktop/osu.Desktop.csproj b/osu.Desktop/osu.Desktop.csproj
index ad08f57c3a..4f0ae3d65d 100644
--- a/osu.Desktop/osu.Desktop.csproj
+++ b/osu.Desktop/osu.Desktop.csproj
@@ -28,8 +28,8 @@
-
-
+
+
diff --git a/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj b/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj
index e875af5a30..feab3ed81c 100644
--- a/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj
+++ b/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj
@@ -4,7 +4,7 @@
-
+
diff --git a/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj b/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj
index 0c6fbfa7d3..e26d2433f9 100644
--- a/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj
+++ b/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj
@@ -4,7 +4,7 @@
-
+
diff --git a/osu.Game.Rulesets.Mania/Mods/ManiaModMirror.cs b/osu.Game.Rulesets.Mania/Mods/ManiaModMirror.cs
index 68325b40bf..34e65e8b02 100644
--- a/osu.Game.Rulesets.Mania/Mods/ManiaModMirror.cs
+++ b/osu.Game.Rulesets.Mania/Mods/ManiaModMirror.cs
@@ -3,14 +3,14 @@
using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Game.Rulesets.Mania.Objects;
-using osu.Game.Rulesets.Mania.UI;
using osu.Game.Rulesets.Mods;
-using osu.Game.Rulesets.UI;
using System.Linq;
+using osu.Game.Beatmaps;
+using osu.Game.Rulesets.Mania.Beatmaps;
namespace osu.Game.Rulesets.Mania.Mods
{
- public class ManiaModMirror : Mod, IApplicableToRulesetContainer
+ public class ManiaModMirror : Mod, IApplicableToBeatmap
{
public override string Name => "Mirror";
public override string Acronym => "MR";
@@ -18,11 +18,11 @@ namespace osu.Game.Rulesets.Mania.Mods
public override double ScoreMultiplier => 1;
public override bool Ranked => true;
- public void ApplyToRulesetContainer(RulesetContainer rulesetContainer)
+ public void ApplyToBeatmap(Beatmap beatmap)
{
- var availableColumns = ((ManiaRulesetContainer)rulesetContainer).Beatmap.TotalColumns;
+ var availableColumns = ((ManiaBeatmap)beatmap).TotalColumns;
- rulesetContainer.Objects.OfType().ForEach(h => h.Column = availableColumns - 1 - h.Column);
+ beatmap.HitObjects.OfType().ForEach(h => h.Column = availableColumns - 1 - h.Column);
}
}
}
diff --git a/osu.Game.Rulesets.Mania/Mods/ManiaModRandom.cs b/osu.Game.Rulesets.Mania/Mods/ManiaModRandom.cs
index b3a3d4280b..4454012d01 100644
--- a/osu.Game.Rulesets.Mania/Mods/ManiaModRandom.cs
+++ b/osu.Game.Rulesets.Mania/Mods/ManiaModRandom.cs
@@ -4,15 +4,15 @@
using System.Linq;
using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.MathUtils;
+using osu.Game.Beatmaps;
using osu.Game.Graphics;
+using osu.Game.Rulesets.Mania.Beatmaps;
using osu.Game.Rulesets.Mania.Objects;
-using osu.Game.Rulesets.Mania.UI;
using osu.Game.Rulesets.Mods;
-using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Mania.Mods
{
- public class ManiaModRandom : Mod, IApplicableToRulesetContainer
+ public class ManiaModRandom : Mod, IApplicableToBeatmap
{
public override string Name => "Random";
public override string Acronym => "RD";
@@ -21,12 +21,12 @@ namespace osu.Game.Rulesets.Mania.Mods
public override string Description => @"Shuffle around the keys!";
public override double ScoreMultiplier => 1;
- public void ApplyToRulesetContainer(RulesetContainer rulesetContainer)
+ public void ApplyToBeatmap(Beatmap beatmap)
{
- var availableColumns = ((ManiaRulesetContainer)rulesetContainer).Beatmap.TotalColumns;
+ var availableColumns = ((ManiaBeatmap)beatmap).TotalColumns;
var shuffledColumns = Enumerable.Range(0, availableColumns).OrderBy(item => RNG.Next()).ToList();
- rulesetContainer.Objects.OfType().ForEach(h => h.Column = shuffledColumns[h.Column]);
+ beatmap.HitObjects.OfType().ForEach(h => h.Column = shuffledColumns[h.Column]);
}
}
}
diff --git a/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj b/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj
index 35f137572d..273d29c3de 100644
--- a/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj
+++ b/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj
@@ -4,7 +4,7 @@
-
+
diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs
index 8fc2b69267..4f01dbe2f3 100644
--- a/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs
+++ b/osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs
@@ -57,6 +57,10 @@ namespace osu.Game.Rulesets.Osu.Difficulty
s.Process(h);
}
+ // The peak strain will not be saved for the last section in the above loop
+ foreach (Skill s in skills)
+ s.SaveCurrentPeak();
+
double aimRating = Math.Sqrt(skills[0].DifficultyValue()) * difficulty_multiplier;
double speedRating = Math.Sqrt(skills[1].DifficultyValue()) * difficulty_multiplier;
double starRating = aimRating + speedRating + Math.Abs(aimRating - speedRating) / 2;
diff --git a/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj b/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj
index 0fc01deed6..fade054382 100644
--- a/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj
+++ b/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj
@@ -4,7 +4,7 @@
-
+
diff --git a/osu.Game.Tests/Visual/TestCaseSkipButton.cs b/osu.Game.Tests/Visual/TestCaseSkipOverlay.cs
similarity index 89%
rename from osu.Game.Tests/Visual/TestCaseSkipButton.cs
rename to osu.Game.Tests/Visual/TestCaseSkipOverlay.cs
index 4f381fd7a8..62fb78b4ea 100644
--- a/osu.Game.Tests/Visual/TestCaseSkipButton.cs
+++ b/osu.Game.Tests/Visual/TestCaseSkipOverlay.cs
@@ -7,7 +7,7 @@ using osu.Game.Screens.Play;
namespace osu.Game.Tests.Visual
{
[TestFixture]
- public class TestCaseSkipButton : OsuTestCase
+ public class TestCaseSkipOverlay : OsuTestCase
{
protected override void LoadComplete()
{
diff --git a/osu.Game.Tests/osu.Game.Tests.csproj b/osu.Game.Tests/osu.Game.Tests.csproj
index e6786dfd15..b22c1aed99 100644
--- a/osu.Game.Tests/osu.Game.Tests.csproj
+++ b/osu.Game.Tests/osu.Game.Tests.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/osu.Game/Graphics/Containers/ScalingContainer.cs b/osu.Game/Graphics/Containers/ScalingContainer.cs
index 8d21d6de10..62760b39ea 100644
--- a/osu.Game/Graphics/Containers/ScalingContainer.cs
+++ b/osu.Game/Graphics/Containers/ScalingContainer.cs
@@ -28,6 +28,8 @@ namespace osu.Game.Graphics.Containers
private readonly Container content;
protected override Container Content => content;
+ public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => true;
+
private readonly Container sizableContainer;
private Drawable backgroundLayer;
@@ -41,7 +43,7 @@ namespace osu.Game.Graphics.Containers
this.targetMode = targetMode;
RelativeSizeAxes = Axes.Both;
- InternalChild = sizableContainer = new Container
+ InternalChild = sizableContainer = new AlwaysInputContainer
{
RelativeSizeAxes = Axes.Both,
RelativePositionAxes = Axes.Both,
@@ -55,6 +57,8 @@ namespace osu.Game.Graphics.Containers
private readonly bool applyUIScale;
private Bindable uiScale;
+ public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => true;
+
public ScalingDrawSizePreservingFillContainer(bool applyUIScale)
{
this.applyUIScale = applyUIScale;
@@ -143,5 +147,15 @@ namespace osu.Game.Graphics.Containers
sizableContainer.MoveTo(targetPosition, 500, Easing.OutQuart);
sizableContainer.ResizeTo(targetSize, 500, Easing.OutQuart).OnComplete(_ => { sizableContainer.Masking = requiresMasking; });
}
+
+ private class AlwaysInputContainer : Container
+ {
+ public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => true;
+
+ public AlwaysInputContainer()
+ {
+ RelativeSizeAxes = Axes.Both;
+ }
+ }
}
}
diff --git a/osu.Game/Graphics/UserInterface/OsuSliderBar.cs b/osu.Game/Graphics/UserInterface/OsuSliderBar.cs
index 2bd84ab2b4..e0f38a13d0 100644
--- a/osu.Game/Graphics/UserInterface/OsuSliderBar.cs
+++ b/osu.Game/Graphics/UserInterface/OsuSliderBar.cs
@@ -92,6 +92,12 @@ namespace osu.Game.Graphics.UserInterface
AccentColour = colours.Pink;
}
+ protected override void LoadComplete()
+ {
+ updateTooltipText(Current.Value);
+ base.LoadComplete();
+ }
+
protected override bool OnHover(HoverEvent e)
{
Nub.Glowing = true;
diff --git a/osu.Game/Graphics/UserInterface/OsuTabControl.cs b/osu.Game/Graphics/UserInterface/OsuTabControl.cs
index 488e16b6fb..989528e5cd 100644
--- a/osu.Game/Graphics/UserInterface/OsuTabControl.cs
+++ b/osu.Game/Graphics/UserInterface/OsuTabControl.cs
@@ -160,7 +160,6 @@ namespace osu.Game.Graphics.UserInterface
Anchor = Anchor.BottomLeft,
Text = (value as IHasDescription)?.Description ?? (value as Enum)?.GetDescription() ?? value.ToString(),
TextSize = 14,
- Font = @"Exo2.0-Bold", // Font should only turn bold when active?
},
Bar = new Box
{
@@ -173,6 +172,8 @@ namespace osu.Game.Graphics.UserInterface
},
new HoverClickSounds()
};
+
+ Active.BindValueChanged(val => Text.Font = val ? @"Exo2.0-Bold" : @"Exo2.0", true);
}
protected override void OnActivated() => fadeActive();
diff --git a/osu.Game/Graphics/UserInterface/PageTabControl.cs b/osu.Game/Graphics/UserInterface/PageTabControl.cs
index 50e4743028..15a27b1f6f 100644
--- a/osu.Game/Graphics/UserInterface/PageTabControl.cs
+++ b/osu.Game/Graphics/UserInterface/PageTabControl.cs
@@ -46,7 +46,6 @@ namespace osu.Game.Graphics.UserInterface
Anchor = Anchor.BottomLeft,
Text = (value as Enum)?.GetDescription() ?? value.ToString(),
TextSize = 14,
- Font = @"Exo2.0-Bold",
},
box = new Box
{
@@ -59,6 +58,8 @@ namespace osu.Game.Graphics.UserInterface
},
new HoverClickSounds()
};
+
+ Active.BindValueChanged(val => Text.Font = val ? @"Exo2.0-Bold" : @"Exo2.0", true);
}
[BackgroundDependencyLoader]
diff --git a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs
index c4d180790c..e5cde37254 100644
--- a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs
@@ -5,7 +5,6 @@ using osu.Framework.Allocation;
using osu.Framework.Configuration;
using osu.Framework.Graphics;
using osu.Framework.Input;
-using osu.Framework.Input.Events;
using osu.Game.Configuration;
using osu.Game.Graphics.UserInterface;
@@ -78,66 +77,15 @@ namespace osu.Game.Overlays.Settings.Sections.Input
private class SensitivitySetting : SettingsSlider
{
- public override Bindable Bindable
- {
- get { return ((SensitivitySlider)Control).Sensitivity; }
-
- set
- {
- BindableDouble doubleValue = (BindableDouble)value;
-
- // create a second layer of bindable so we can only handle state changes when not being dragged.
- ((SensitivitySlider)Control).Sensitivity = doubleValue;
-
- // this bindable will still act as the "interactive" bindable displayed during a drag.
- base.Bindable = new BindableDouble(doubleValue.Value)
- {
- Default = doubleValue.Default,
- MinValue = doubleValue.MinValue,
- MaxValue = doubleValue.MaxValue
- };
-
- // one-way binding to update the sliderbar with changes from external actions.
- doubleValue.DisabledChanged += disabled => base.Bindable.Disabled = disabled;
- doubleValue.ValueChanged += newValue => base.Bindable.Value = newValue;
- }
- }
-
public SensitivitySetting()
{
KeyboardStep = 0.01f;
+ TransferValueOnCommit = true;
}
}
private class SensitivitySlider : OsuSliderBar
{
- public Bindable Sensitivity;
-
- public SensitivitySlider()
- {
- Current.ValueChanged += newValue =>
- {
- if (!isDragging && Sensitivity != null)
- Sensitivity.Value = newValue;
- };
- }
-
- private bool isDragging;
-
- protected override bool OnDragStart(DragStartEvent e)
- {
- isDragging = true;
- return base.OnDragStart(e);
- }
-
- protected override bool OnDragEnd(DragEndEvent e)
- {
- isDragging = false;
- Current.TriggerChange();
-
- return base.OnDragEnd(e);
- }
-
public override string TooltipText => Current.Disabled ? "Enable raw input to adjust sensitivity" : Current.Value.ToString(@"0.##x");
}
}
diff --git a/osu.Game/Screens/Backgrounds/BackgroundScreenDefault.cs b/osu.Game/Screens/Backgrounds/BackgroundScreenDefault.cs
index 989883c8b3..f924cf9805 100644
--- a/osu.Game/Screens/Backgrounds/BackgroundScreenDefault.cs
+++ b/osu.Game/Screens/Backgrounds/BackgroundScreenDefault.cs
@@ -2,10 +2,14 @@
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using osu.Framework.Allocation;
+using osu.Framework.Configuration;
using osu.Framework.Graphics;
using osu.Framework.MathUtils;
using osu.Framework.Threading;
using osu.Game.Graphics.Backgrounds;
+using osu.Game.Online.API;
+using osu.Game.Skinning;
+using osu.Game.Users;
namespace osu.Game.Screens.Backgrounds
{
@@ -16,11 +20,21 @@ namespace osu.Game.Screens.Backgrounds
private string backgroundName => $@"Menu/menu-background-{currentDisplay % background_count + 1}";
+ private Bindable user;
+ private Bindable skin;
+
[BackgroundDependencyLoader]
- private void load()
+ private void load(IAPIProvider api, SkinManager skinManager)
{
+ user = api.LocalUser.GetBoundCopy();
+ skin = skinManager.CurrentSkin.GetBoundCopy();
+
+ user.ValueChanged += _ => Next();
+ skin.ValueChanged += _ => Next();
+
currentDisplay = RNG.Next(0, background_count);
- display(new Background(backgroundName));
+
+ Next();
}
private void display(Background newBackground)
@@ -39,8 +53,33 @@ namespace osu.Game.Screens.Backgrounds
nextTask?.Cancel();
nextTask = Scheduler.AddDelayed(() =>
{
- LoadComponentAsync(new Background(backgroundName) { Depth = currentDisplay }, display);
+ Background background;
+
+ if (user.Value?.IsSupporter ?? false)
+ background = new SkinnedBackground(skin.Value, backgroundName);
+ else
+ background = new Background(backgroundName);
+
+ background.Depth = currentDisplay;
+
+ LoadComponentAsync(background, display);
}, 100);
}
+
+ private class SkinnedBackground : Background
+ {
+ private readonly Skin skin;
+
+ public SkinnedBackground(Skin skin, string fallbackTextureName) : base(fallbackTextureName)
+ {
+ this.skin = skin;
+ }
+
+ [BackgroundDependencyLoader]
+ private void load()
+ {
+ Sprite.Texture = skin.GetTexture("menu-background") ?? Sprite.Texture;
+ }
+ }
}
}
diff --git a/osu.Game/Screens/Multi/Lounge/Components/ParticipantInfo.cs b/osu.Game/Screens/Multi/Lounge/Components/ParticipantInfo.cs
index 34fc7fe886..228bacf3f3 100644
--- a/osu.Game/Screens/Multi/Lounge/Components/ParticipantInfo.cs
+++ b/osu.Game/Screens/Multi/Lounge/Components/ParticipantInfo.cs
@@ -93,10 +93,14 @@ namespace osu.Game.Screens.Multi.Lounge.Components
Host.BindValueChanged(v =>
{
hostText.Clear();
- hostText.AddText("hosted by ");
- hostText.AddLink(v.Username, null, LinkAction.OpenUserProfile, v.Id.ToString(), "Open profile", s => s.Font = "Exo2.0-BoldItalic");
+ flagContainer.Clear();
- flagContainer.Child = new DrawableFlag(v.Country) { RelativeSizeAxes = Axes.Both };
+ if (v != null)
+ {
+ hostText.AddText("hosted by ");
+ hostText.AddLink(v.Username, null, LinkAction.OpenUserProfile, v.Id.ToString(), "Open profile", s => s.Font = "Exo2.0-BoldItalic");
+ flagContainer.Child = new DrawableFlag(v.Country) { RelativeSizeAxes = Axes.Both };
+ }
});
ParticipantCount.BindValueChanged(v => summary.Text = $"{v:#,0}{" participant".Pluralize(v == 1)}");
diff --git a/osu.Game/Screens/Multi/Lounge/Components/RoomInspector.cs b/osu.Game/Screens/Multi/Lounge/Components/RoomInspector.cs
index 63730ff635..665481934e 100644
--- a/osu.Game/Screens/Multi/Lounge/Components/RoomInspector.cs
+++ b/osu.Game/Screens/Multi/Lounge/Components/RoomInspector.cs
@@ -266,7 +266,7 @@ namespace osu.Game.Screens.Multi.Lounge.Components
private void updateParticipants()
{
- var roomId = room.RoomID.Value ?? 0;
+ var roomId = room?.RoomID.Value ?? 0;
request?.Cancel();
@@ -297,6 +297,12 @@ namespace osu.Game.Screens.Multi.Lounge.Components
api.Queue(request);
}
+ protected override void Dispose(bool isDisposing)
+ {
+ request?.Cancel();
+ base.Dispose(isDisposing);
+ }
+
private class UserTile : CompositeDrawable, IHasTooltip
{
private readonly User user;
diff --git a/osu.Game/Screens/Multi/Match/MatchSubScreen.cs b/osu.Game/Screens/Multi/Match/MatchSubScreen.cs
index 14cdd90128..a7932e1131 100644
--- a/osu.Game/Screens/Multi/Match/MatchSubScreen.cs
+++ b/osu.Game/Screens/Multi/Match/MatchSubScreen.cs
@@ -51,6 +51,8 @@ namespace osu.Game.Screens.Multi.Match
MatchChatDisplay chat;
Components.Header header;
+ Info info;
+ GridContainer bottomRow;
MatchSettingsOverlay settings;
Children = new Drawable[]
@@ -61,10 +63,10 @@ namespace osu.Game.Screens.Multi.Match
Content = new[]
{
new Drawable[] { header = new Components.Header(room) { Depth = -1 } },
- new Drawable[] { new Info(room) { OnStart = onStart } },
+ new Drawable[] { info = new Info(room) { OnStart = onStart } },
new Drawable[]
{
- new GridContainer
+ bottomRow = new GridContainer
{
RelativeSizeAxes = Axes.Both,
Content = new[]
@@ -109,10 +111,19 @@ namespace osu.Game.Screens.Multi.Match
header.OnRequestSelectBeatmap = () => Push(new MatchSongSelect { Selected = addPlaylistItem });
header.Tabs.Current.ValueChanged += t =>
{
+ const float fade_duration = 500;
if (t is SettingsMatchPage)
+ {
settings.Show();
+ info.FadeOut(fade_duration, Easing.OutQuint);
+ bottomRow.FadeOut(fade_duration, Easing.OutQuint);
+ }
else
+ {
settings.Hide();
+ info.FadeIn(fade_duration, Easing.OutQuint);
+ bottomRow.FadeIn(fade_duration, Easing.OutQuint);
+ }
};
chat.Exit += Exit;
diff --git a/osu.Game/Screens/Multi/RoomBindings.cs b/osu.Game/Screens/Multi/RoomBindings.cs
index 30e2918b69..e7f9e323bc 100644
--- a/osu.Game/Screens/Multi/RoomBindings.cs
+++ b/osu.Game/Screens/Multi/RoomBindings.cs
@@ -53,23 +53,20 @@ namespace osu.Game.Screens.Multi
Duration.UnbindFrom(room.Duration);
}
- room = value;
+ room = value ?? new Room();
- if (room != null)
- {
- RoomID.BindTo(room.RoomID);
- Name.BindTo(room.Name);
- Host.BindTo(room.Host);
- Status.BindTo(room.Status);
- Type.BindTo(room.Type);
- Playlist.BindTo(room.Playlist);
- Participants.BindTo(room.Participants);
- ParticipantCount.BindTo(room.ParticipantCount);
- MaxParticipants.BindTo(room.MaxParticipants);
- EndDate.BindTo(room.EndDate);
- Availability.BindTo(room.Availability);
- Duration.BindTo(room.Duration);
- }
+ RoomID.BindTo(room.RoomID);
+ Name.BindTo(room.Name);
+ Host.BindTo(room.Host);
+ Status.BindTo(room.Status);
+ Type.BindTo(room.Type);
+ Playlist.BindTo(room.Playlist);
+ Participants.BindTo(room.Participants);
+ ParticipantCount.BindTo(room.ParticipantCount);
+ MaxParticipants.BindTo(room.MaxParticipants);
+ EndDate.BindTo(room.EndDate);
+ Availability.BindTo(room.Availability);
+ Duration.BindTo(room.Duration);
}
}
diff --git a/osu.Game/Screens/Play/HUDOverlay.cs b/osu.Game/Screens/Play/HUDOverlay.cs
index 11cee98bdf..cc665d99a1 100644
--- a/osu.Game/Screens/Play/HUDOverlay.cs
+++ b/osu.Game/Screens/Play/HUDOverlay.cs
@@ -24,8 +24,6 @@ namespace osu.Game.Screens.Play
{
private const int duration = 100;
- private readonly Container content;
-
public readonly KeyCounterCollection KeyCounter;
public readonly RollingCounter ComboCounter;
public readonly ScoreCounter ScoreCounter;
@@ -37,6 +35,7 @@ namespace osu.Game.Screens.Play
public readonly PlayerSettingsOverlay PlayerSettingsOverlay;
private Bindable showHud;
+ private readonly Container visibilityContainer;
private readonly BindableBool replayLoaded = new BindableBool();
private static bool hasShownNotificationOnce;
@@ -45,34 +44,35 @@ namespace osu.Game.Screens.Play
{
RelativeSizeAxes = Axes.Both;
- Add(content = new Container
+ Children = new Drawable[]
{
- RelativeSizeAxes = Axes.Both,
- AlwaysPresent = true, // The hud may be hidden but certain elements may need to still be updated
- Children = new Drawable[]
+ visibilityContainer = new Container {
+ RelativeSizeAxes = Axes.Both,
+ AlwaysPresent = true, // The hud may be hidden but certain elements may need to still be updated
+ Children = new Drawable[] {
+ ComboCounter = CreateComboCounter(),
+ ScoreCounter = CreateScoreCounter(),
+ AccuracyCounter = CreateAccuracyCounter(),
+ HealthDisplay = CreateHealthDisplay(),
+ Progress = CreateProgress(),
+ ModDisplay = CreateModsContainer(),
+ PlayerSettingsOverlay = CreatePlayerSettingsOverlay(),
+ }
+ },
+ new FillFlowContainer
{
- ComboCounter = CreateComboCounter(),
- ScoreCounter = CreateScoreCounter(),
- AccuracyCounter = CreateAccuracyCounter(),
- HealthDisplay = CreateHealthDisplay(),
- Progress = CreateProgress(),
- ModDisplay = CreateModsContainer(),
- PlayerSettingsOverlay = CreatePlayerSettingsOverlay(),
- new FillFlowContainer
+ Anchor = Anchor.BottomRight,
+ Origin = Anchor.BottomRight,
+ Position = -new Vector2(5, TwoLayerButton.SIZE_RETRACTED.Y),
+ AutoSizeAxes = Axes.Both,
+ Direction = FillDirection.Vertical,
+ Children = new Drawable[]
{
- Anchor = Anchor.BottomRight,
- Origin = Anchor.BottomRight,
- Position = -new Vector2(5, TwoLayerButton.SIZE_RETRACTED.Y),
- AutoSizeAxes = Axes.Both,
- Direction = FillDirection.Vertical,
- Children = new Drawable[]
- {
- KeyCounter = CreateKeyCounter(adjustableClock as IFrameBasedClock),
- HoldToQuit = CreateHoldForMenuButton(),
- }
+ KeyCounter = CreateKeyCounter(adjustableClock as IFrameBasedClock),
+ HoldToQuit = CreateHoldForMenuButton(),
}
}
- });
+ };
BindProcessor(scoreProcessor);
BindRulesetContainer(rulesetContainer);
@@ -91,7 +91,7 @@ namespace osu.Game.Screens.Play
private void load(OsuConfigManager config, NotificationOverlay notificationOverlay)
{
showHud = config.GetBindable(OsuSetting.ShowInterface);
- showHud.ValueChanged += hudVisibility => content.FadeTo(hudVisibility ? 1 : 0, duration);
+ showHud.ValueChanged += hudVisibility => visibilityContainer.FadeTo(hudVisibility ? 1 : 0, duration);
showHud.TriggerChange();
if (!showHud && !hasShownNotificationOnce)
diff --git a/osu.Game/Screens/Play/SkipOverlay.cs b/osu.Game/Screens/Play/SkipOverlay.cs
index e5a6dd2db1..577a1325a9 100644
--- a/osu.Game/Screens/Play/SkipOverlay.cs
+++ b/osu.Game/Screens/Play/SkipOverlay.cs
@@ -46,10 +46,10 @@ namespace osu.Game.Screens.Play
State = Visibility.Visible;
RelativePositionAxes = Axes.Both;
- RelativeSizeAxes = Axes.Both;
+ RelativeSizeAxes = Axes.X;
Position = new Vector2(0.5f, 0.7f);
- Size = new Vector2(1, 0.14f);
+ Size = new Vector2(1, 100);
Origin = Anchor.Centre;
}
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index 86a4cc3a11..689ba82ef9 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -15,8 +15,8 @@
-
-
+
+