From e3a7c8a124b46fc6979c2cbc96565560a91228cb Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Thu, 26 Mar 2020 09:11:31 +0300 Subject: [PATCH 001/213] Make catcher trails colouring per container --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 73 +++++++++++++++++++++------ 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index f53e14a8c7..68280ab111 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -35,7 +35,30 @@ namespace osu.Game.Rulesets.Catch.UI public Container ExplodingFruitTarget; - public Container AdditiveTarget; + private Container additiveTarget; + private Container dashTrails; + private Container hyperDashTrails; + private Container endGlowSprites; + + public Container AdditiveTarget + { + get => additiveTarget; + set + { + if (additiveTarget == value) + return; + + additiveTarget?.RemoveRange(new[] { dashTrails, hyperDashTrails, endGlowSprites }); + + additiveTarget = value; + additiveTarget?.AddRange(new[] + { + dashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = Color4.White }, + hyperDashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashColour }, + endGlowSprites ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashEndGlowColour }, + }); + } + } public CatcherAnimationState CurrentState { get; private set; } @@ -65,7 +88,7 @@ namespace osu.Game.Rulesets.Catch.UI get => trail; set { - if (value == trail || AdditiveTarget == null) return; + if (value == trail || additiveTarget == null) return; trail = value; @@ -82,6 +105,9 @@ namespace osu.Game.Rulesets.Catch.UI private CatcherSprite currentCatcher; + private Color4 hyperDashColour = DefaultHyperDashColour; + private Color4 hyperDashEndGlowColour = DefaultHyperDashColour; + private int currentDirection; private bool dashing; @@ -213,8 +239,6 @@ namespace osu.Game.Rulesets.Catch.UI /// When this catcher crosses this position, this catcher ends hyper-dashing. public void SetHyperDashState(double modifier = 1, float targetPosition = -1) { - const float hyper_dash_transition_length = 180; - var wasHyperDashing = HyperDashing; if (modifier <= 1 || X == targetPosition) @@ -223,11 +247,7 @@ namespace osu.Game.Rulesets.Catch.UI hyperDashDirection = 0; if (wasHyperDashing) - { - this.FadeColour(Color4.White, hyper_dash_transition_length, Easing.OutQuint); - this.FadeTo(1, hyper_dash_transition_length, Easing.OutQuint); Trail &= Dashing; - } } else { @@ -237,18 +257,37 @@ namespace osu.Game.Rulesets.Catch.UI if (!wasHyperDashing) { - this.FadeColour(Color4.OrangeRed, hyper_dash_transition_length, Easing.OutQuint); - this.FadeTo(0.2f, hyper_dash_transition_length, Easing.OutQuint); Trail = true; - var hyperDashEndGlow = createAdditiveSprite(); - + var hyperDashEndGlow = createAdditiveSprite(endGlowSprites); hyperDashEndGlow.MoveToOffset(new Vector2(0, -10), 1200, Easing.In); hyperDashEndGlow.ScaleTo(hyperDashEndGlow.Scale * 0.95f).ScaleTo(hyperDashEndGlow.Scale * 1.2f, 1200, Easing.In); hyperDashEndGlow.FadeOut(1200); hyperDashEndGlow.Expire(true); } } + + updateCatcherColour(); + } + + private void updateCatcherColour() + { + const float hyper_dash_transition_length = 180; + + if (HyperDashing) + { + this.FadeColour(hyperDashColour == DefaultHyperDashColour ? Color4.OrangeRed : hyperDashColour, hyper_dash_transition_length, Easing.OutQuint); + this.FadeTo(0.2f, hyper_dash_transition_length, Easing.OutQuint); + } + else + { + this.FadeColour(Color4.White, hyper_dash_transition_length, Easing.OutQuint); + this.FadeTo(1f, hyper_dash_transition_length, Easing.OutQuint); + } + + // update hyper-dash colour of the hyper-dashing catcher sprites containers. + hyperDashTrails?.FadeColour(hyperDashColour, hyper_dash_transition_length, Easing.OutQuint); + endGlowSprites?.FadeColour(hyperDashEndGlowColour, hyper_dash_transition_length, Easing.OutQuint); } public bool OnPressed(CatchAction action) @@ -392,7 +431,7 @@ namespace osu.Game.Rulesets.Catch.UI return; } - var additive = createAdditiveSprite(); + var additive = createAdditiveSprite(HyperDashing ? hyperDashTrails : dashTrails); additive.FadeTo(0.4f).FadeOut(800, Easing.OutQuint); additive.Expire(true); @@ -409,21 +448,23 @@ namespace osu.Game.Rulesets.Catch.UI updateCatcher(); } - private CatcherTrailSprite createAdditiveSprite() + private CatcherTrailSprite createAdditiveSprite(Container target) { + if (target == null) + return null; + var tex = (currentCatcher.Drawable as TextureAnimation)?.CurrentFrame ?? ((Sprite)currentCatcher.Drawable).Texture; var sprite = new CatcherTrailSprite(tex) { Anchor = Anchor, Scale = Scale, - Colour = HyperDashing ? Color4.Red : Color4.White, Blending = BlendingParameters.Additive, RelativePositionAxes = RelativePositionAxes, Position = Position }; - AdditiveTarget?.Add(sprite); + target.Add(sprite); return sprite; } From 302fdd834a305697536ac4093b00f88d72751d80 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Thu, 26 Mar 2020 09:11:59 +0300 Subject: [PATCH 002/213] Add support for custom hyper-dash catcher colouring --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 68280ab111..b3742aa1ad 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -13,13 +13,15 @@ using osu.Framework.Utils; using osu.Game.Beatmaps; using osu.Game.Rulesets.Catch.Objects; using osu.Game.Rulesets.Catch.Objects.Drawables; +using osu.Game.Rulesets.Catch.Skinning; using osu.Game.Rulesets.Objects.Drawables; +using osu.Game.Skinning; using osuTK; using osuTK.Graphics; namespace osu.Game.Rulesets.Catch.UI { - public class Catcher : Container, IKeyBindingHandler + public class Catcher : SkinReloadableDrawable, IKeyBindingHandler { public static Color4 DefaultHyperDashColour { get; } = Color4.Red; @@ -133,7 +135,7 @@ namespace osu.Game.Rulesets.Catch.UI [BackgroundDependencyLoader] private void load() { - Children = new Drawable[] + InternalChildren = new Drawable[] { caughtFruit = new Container { @@ -184,7 +186,7 @@ namespace osu.Game.Rulesets.Catch.UI caughtFruit.Add(fruit); - Add(new HitExplosion(fruit) + AddInternal(new HitExplosion(fruit) { X = fruit.X, Scale = new Vector2(fruit.HitObject.Scale) @@ -378,6 +380,15 @@ namespace osu.Game.Rulesets.Catch.UI }); } + protected override void SkinChanged(ISkinSource skin, bool allowFallback) + { + base.SkinChanged(skin, allowFallback); + + hyperDashColour = skin.GetConfig(CatchSkinConfiguration.HyperDash)?.Value ?? DefaultHyperDashColour; + hyperDashEndGlowColour = skin.GetConfig(CatchSkinConfiguration.HyperDashAfterImage)?.Value ?? hyperDashColour; + updateCatcherColour(); + } + protected override void Update() { base.Update(); From fecafc2e48b9e45fa5a70c630832b55e7db6f396 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Thu, 26 Mar 2020 09:14:44 +0300 Subject: [PATCH 003/213] Fix additive target accidentally clears all of the added containers It sets the AdditiveTarget on the object initializer but then the catcher is set to Child which wipes up all of the existing children (containers added by Catcher through AdditiveTarget setter) --- osu.Game.Rulesets.Catch/UI/CatcherArea.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs index e0d9ff759d..37501736ff 100644 --- a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs +++ b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs @@ -33,10 +33,10 @@ namespace osu.Game.Rulesets.Catch.UI { RelativeSizeAxes = Axes.X; Height = CATCHER_SIZE; - Child = MovableCatcher = new Catcher(difficulty) - { - AdditiveTarget = this, - }; + Child = MovableCatcher = new Catcher(difficulty); + + // this property adds containers to 'this' so it must not be set in the object initializer. + MovableCatcher.AdditiveTarget = this; } public static float GetCatcherSize(BeatmapDifficulty difficulty) From 77b3011394ffdc1afb2517943a025bce713177c2 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Thu, 26 Mar 2020 09:19:00 +0300 Subject: [PATCH 004/213] Add hyper-dash catcher & trails colouring test cases --- .../TestSceneHyperDashColouring.cs | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs index 7fab961aa7..6bad45f7ba 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs @@ -28,6 +28,140 @@ namespace osu.Game.Rulesets.Catch.Tests { public class TestSceneHyperDashColouring : OsuTestScene { + [Test] + public void TestHyperDashCatcherColour() + { + CatcherArea catcherArea = null; + + AddStep("setup catcher", () => + { + Child = setupSkinHierarchy(() => + catcherArea = new CatcherArea + { + RelativePositionAxes = Axes.None, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Scale = new Vector2(4f), + }, false); + }); + + AddStep("set hyper-dash", () => + { + catcherArea.MovableCatcher.SetHyperDashState(2); + catcherArea.MovableCatcher.FinishTransforms(); + }); + + AddAssert("catcher colour default-hyperdash", () => catcherArea.MovableCatcher.Colour == Color4.OrangeRed); + AddAssert("catcher trails colour default-hyperdash", () => catcherArea.OfType>().Any(c => c.Colour == Catcher.DefaultHyperDashColour)); + + AddStep("clear hyper-dash", () => + { + catcherArea.MovableCatcher.SetHyperDashState(1); + catcherArea.MovableCatcher.FinishTransforms(); + }); + + AddAssert("catcher colour white", () => catcherArea.MovableCatcher.Colour == Color4.White); + } + + [Test] + public void TestCustomHyperDashCatcherColour() + { + CatcherArea catcherArea = null; + + AddStep("setup catcher", () => + { + Child = setupSkinHierarchy(() => + catcherArea = new CatcherArea + { + RelativePositionAxes = Axes.None, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Scale = new Vector2(4f), + }, true); + }); + + AddStep("set hyper-dash", () => + { + catcherArea.MovableCatcher.SetHyperDashState(2); + catcherArea.MovableCatcher.FinishTransforms(); + }); + + AddAssert("catcher colour custom-hyperdash", () => catcherArea.MovableCatcher.Colour == TestLegacySkin.CustomHyperDashColour); + AddAssert("catcher trails colour custom-hyperdash", () => catcherArea.OfType>().Any(c => c.Colour == TestLegacySkin.CustomHyperDashColour)); + + AddStep("clear hyper-dash", () => + { + catcherArea.MovableCatcher.SetHyperDashState(1); + catcherArea.MovableCatcher.FinishTransforms(); + }); + + AddAssert("catcher colour white", () => catcherArea.MovableCatcher.Colour == Color4.White); + } + + [Test] + public void TestHyperDashCatcherEndGlowColour() + { + CatcherArea catcherArea = null; + + AddStep("setup catcher", () => + { + Child = setupSkinHierarchy(() => + catcherArea = new CatcherArea + { + RelativePositionAxes = Axes.None, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Scale = new Vector2(4f), + }, false, false, false); + }); + + AddStep("set hyper-dash", () => catcherArea.MovableCatcher.SetHyperDashState(2)); + AddAssert("end-glow sprite colour default-hyperdash", () => catcherArea.OfType>().Any(c => c.Colour == Catcher.DefaultHyperDashColour)); + } + + [TestCase(true)] + [TestCase(false)] + public void TestCustomHyperDashCatcherEndGlowColour(bool customHyperDashCatcherColour) + { + CatcherArea catcherArea = null; + + AddStep("setup catcher", () => + { + Child = setupSkinHierarchy(() => + catcherArea = new CatcherArea + { + RelativePositionAxes = Axes.None, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Scale = new Vector2(4f), + }, customHyperDashCatcherColour, false, true); + }); + + AddStep("set hyper-dash", () => catcherArea.MovableCatcher.SetHyperDashState(2)); + AddAssert("end-glow sprite colour custom-hyperdash", () => catcherArea.OfType>().Any(c => c.Colour == TestLegacySkin.CustomHyperDashAfterColour)); + } + + [Test] + public void TestCustomHyperDashCatcherEndGlowColourFallback() + { + CatcherArea catcherArea = null; + + AddStep("setup catcher", () => + { + Child = setupSkinHierarchy(() => + catcherArea = new CatcherArea + { + RelativePositionAxes = Axes.None, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Scale = new Vector2(4f), + }, true, false, false); + }); + + AddStep("set hyper-dash", () => catcherArea.MovableCatcher.SetHyperDashState(2)); + AddAssert("end-glow sprite colour catcher-custom-hyperdash", () => catcherArea.OfType>().Any(c => c.Colour == TestLegacySkin.CustomHyperDashColour)); + } + [TestCase(false)] [TestCase(true)] public void TestHyperDashFruitColour(bool legacyFruit) From f3bcb0628c828b12484c4b6f46be8b44c3599ccd Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 4 Apr 2020 19:09:52 +0300 Subject: [PATCH 005/213] Add helper methods for retrieving other skin hyper-dash colours --- osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs | 7 +++++++ osu.Game.Rulesets.Catch/UI/Catcher.cs | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs b/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs index 8fc0831918..48e11121ea 100644 --- a/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs +++ b/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs @@ -9,6 +9,13 @@ namespace osu.Game.Rulesets.Catch.Skinning { internal static class CatchSkinExtensions { + public static IBindable GetHyperDashCatcherColour(this ISkin skin) + => skin.GetConfig(CatchSkinColour.HyperDash); + + public static IBindable GetHyperDashEndGlowColour(this ISkin skin) + => skin.GetConfig(CatchSkinColour.HyperDashAfterImage) ?? + skin.GetConfig(CatchSkinColour.HyperDash); + public static IBindable GetHyperDashFruitColour(this ISkin skin) => skin.GetConfig(CatchSkinColour.HyperDashFruit) ?? skin.GetConfig(CatchSkinColour.HyperDash); diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 98cc10aa31..49c9a77277 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -389,9 +389,9 @@ namespace osu.Game.Rulesets.Catch.UI { base.SkinChanged(skin, allowFallback); - hyperDashColour = skin.GetConfig(CatchSkinColour.HyperDash)?.Value ?? DefaultHyperDashColour; - hyperDashEndGlowColour = skin.GetConfig(CatchSkinColour.HyperDashAfterImage)?.Value ?? hyperDashColour; updateCatcherColour(); + hyperDashColour = skin.GetHyperDashCatcherColour()?.Value ?? DefaultHyperDashColour; + hyperDashEndGlowColour = skin.GetHyperDashEndGlowColour()?.Value ?? DefaultHyperDashColour; } protected override void Update() From 50604dc7b22624632f015fcb55c0cb44bd3f4080 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 4 Apr 2020 19:29:06 +0300 Subject: [PATCH 006/213] Update catcher hyper-dashing colours on changing hyper-dash state only --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 49c9a77277..0b73c510d9 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -254,7 +254,10 @@ namespace osu.Game.Rulesets.Catch.UI hyperDashDirection = 0; if (wasHyperDashing) + { + updateCatcherColour(false); Trail &= Dashing; + } } else { @@ -264,6 +267,7 @@ namespace osu.Game.Rulesets.Catch.UI if (!wasHyperDashing) { + updateCatcherColour(true); Trail = true; var hyperDashEndGlow = createAdditiveSprite(endGlowSprites); @@ -273,15 +277,13 @@ namespace osu.Game.Rulesets.Catch.UI hyperDashEndGlow.Expire(true); } } - - updateCatcherColour(); } - private void updateCatcherColour() + private void updateCatcherColour(bool hyperDashing) { const float hyper_dash_transition_length = 180; - if (HyperDashing) + if (hyperDashing) { this.FadeColour(hyperDashColour == DefaultHyperDashColour ? Color4.OrangeRed : hyperDashColour, hyper_dash_transition_length, Easing.OutQuint); this.FadeTo(0.2f, hyper_dash_transition_length, Easing.OutQuint); @@ -389,9 +391,9 @@ namespace osu.Game.Rulesets.Catch.UI { base.SkinChanged(skin, allowFallback); - updateCatcherColour(); hyperDashColour = skin.GetHyperDashCatcherColour()?.Value ?? DefaultHyperDashColour; hyperDashEndGlowColour = skin.GetHyperDashEndGlowColour()?.Value ?? DefaultHyperDashColour; + updateCatcherColour(HyperDashing); } protected override void Update() From fbe95a52e3b068d37c49dafa6057a744d0d0df9c Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 4 Apr 2020 19:29:41 +0300 Subject: [PATCH 007/213] Remove unnecessary restating comment --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 0b73c510d9..1cb6987397 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -294,7 +294,6 @@ namespace osu.Game.Rulesets.Catch.UI this.FadeTo(1f, hyper_dash_transition_length, Easing.OutQuint); } - // update hyper-dash colour of the hyper-dashing catcher sprites containers. hyperDashTrails?.FadeColour(hyperDashColour, hyper_dash_transition_length, Easing.OutQuint); endGlowSprites?.FadeColour(hyperDashEndGlowColour, hyper_dash_transition_length, Easing.OutQuint); } From 19f39fe6327ffd3b3bdf27cde0da4d5b1a2801a7 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 4 Apr 2020 19:33:52 +0300 Subject: [PATCH 008/213] Change AdditiveTarget into a set method --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 39 ++++++++++++----------- osu.Game.Rulesets.Catch/UI/CatcherArea.cs | 5 ++- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 1cb6987397..0e42c19455 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -42,25 +42,6 @@ namespace osu.Game.Rulesets.Catch.UI private Container hyperDashTrails; private Container endGlowSprites; - public Container AdditiveTarget - { - get => additiveTarget; - set - { - if (additiveTarget == value) - return; - - additiveTarget?.RemoveRange(new[] { dashTrails, hyperDashTrails, endGlowSprites }); - - additiveTarget = value; - additiveTarget?.AddRange(new[] - { - dashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = Color4.White }, - hyperDashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashColour }, - endGlowSprites ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashEndGlowColour }, - }); - } - } public CatcherAnimationState CurrentState { get; private set; } @@ -167,6 +148,26 @@ namespace osu.Game.Rulesets.Catch.UI updateCatcher(); } + /// + /// Sets container target to provide catcher additive trails content in. + /// + /// The container to add catcher trails in. + public void SetAdditiveTarget(Container target) + { + if (additiveTarget == target) + return; + + additiveTarget?.RemoveRange(new[] { dashTrails, hyperDashTrails, endGlowSprites }); + + additiveTarget = target; + additiveTarget?.AddRange(new[] + { + dashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = Color4.White }, + hyperDashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashColour }, + endGlowSprites ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashEndGlowColour }, + }); + } + /// /// Add a caught fruit to the catcher's stack. /// diff --git a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs index 37501736ff..641b81599e 100644 --- a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs +++ b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs @@ -33,10 +33,9 @@ namespace osu.Game.Rulesets.Catch.UI { RelativeSizeAxes = Axes.X; Height = CATCHER_SIZE; - Child = MovableCatcher = new Catcher(difficulty); - // this property adds containers to 'this' so it must not be set in the object initializer. - MovableCatcher.AdditiveTarget = this; + Child = MovableCatcher = new Catcher(difficulty); + MovableCatcher.SetAdditiveTarget(this); } public static float GetCatcherSize(BeatmapDifficulty difficulty) From 0014a8404e17d196d3aebf386346efd20790d023 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 4 Apr 2020 23:12:42 +0300 Subject: [PATCH 009/213] GetHyperDashEndGlowColour() -> GetHyperDashCatcherAfterImageColour() --- osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs | 2 +- osu.Game.Rulesets.Catch/UI/Catcher.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs b/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs index 48e11121ea..06d21f8c5e 100644 --- a/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs +++ b/osu.Game.Rulesets.Catch/Skinning/CatchSkinExtensions.cs @@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Catch.Skinning public static IBindable GetHyperDashCatcherColour(this ISkin skin) => skin.GetConfig(CatchSkinColour.HyperDash); - public static IBindable GetHyperDashEndGlowColour(this ISkin skin) + public static IBindable GetHyperDashCatcherAfterImageColour(this ISkin skin) => skin.GetConfig(CatchSkinColour.HyperDashAfterImage) ?? skin.GetConfig(CatchSkinColour.HyperDash); diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 0e42c19455..0d5b454a9d 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -392,7 +392,7 @@ namespace osu.Game.Rulesets.Catch.UI base.SkinChanged(skin, allowFallback); hyperDashColour = skin.GetHyperDashCatcherColour()?.Value ?? DefaultHyperDashColour; - hyperDashEndGlowColour = skin.GetHyperDashEndGlowColour()?.Value ?? DefaultHyperDashColour; + hyperDashEndGlowColour = skin.GetHyperDashCatcherAfterImageColour()?.Value ?? DefaultHyperDashColour; updateCatcherColour(HyperDashing); } From 42ccee5e6c8a2eedc459a369e129cccab853133d Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sun, 5 Apr 2020 00:15:42 +0300 Subject: [PATCH 010/213] Fix CI issue --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 0d5b454a9d..7971a17e68 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -42,7 +42,6 @@ namespace osu.Game.Rulesets.Catch.UI private Container hyperDashTrails; private Container endGlowSprites; - public CatcherAnimationState CurrentState { get; private set; } /// From b8327ed877b61ac867210f7b611240c28063fdc7 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sun, 5 Apr 2020 00:30:10 +0300 Subject: [PATCH 011/213] Add test for osu!catch skin colour decoding Tests the skin configuration CatchTheBeat section's colours decoding part --- .../CatchSkinColourDecodingTest.cs | 36 +++++++++++++++++++ .../Resources/special-skin/skin.ini | 4 +++ .../Skinning/CatchLegacySkinTransformer.cs | 2 +- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs create mode 100644 osu.Game.Rulesets.Catch.Tests/Resources/special-skin/skin.ini diff --git a/osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs b/osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs new file mode 100644 index 0000000000..57228210d6 --- /dev/null +++ b/osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs @@ -0,0 +1,36 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using NUnit.Framework; +using osu.Framework.IO.Stores; +using osu.Game.Rulesets.Catch.Skinning; +using osu.Game.Skinning; +using osuTK.Graphics; + +namespace osu.Game.Rulesets.Catch.Tests +{ + [TestFixture] + public class CatchSkinColourDecodingTest + { + [Test] + public void TestCatchSkinColourDecoding() + { + var store = new NamespacedResourceStore(new DllResourceStore(GetType().Assembly), "Resources/special-skin"); + var rawSkin = new TestLegacySkin(new SkinInfo { Name = "special-skin" }, store); + var skin = new CatchLegacySkinTransformer(rawSkin); + + Assert.AreEqual(new Color4(232, 185, 35, 255), skin.GetHyperDashCatcherColour()?.Value); + Assert.AreEqual(new Color4(232, 74, 35, 255), skin.GetHyperDashCatcherAfterImageColour()?.Value); + Assert.AreEqual(new Color4(0, 255, 255, 255), skin.GetHyperDashFruitColour()?.Value); + } + + private class TestLegacySkin : LegacySkin + { + public TestLegacySkin(SkinInfo skin, IResourceStore storage) + // Bypass LegacySkinResourceStore to avoid returning null for retrieving files due to bad skin info (SkinInfo.Files = null). + : base(skin, storage, null, "skin.ini") + { + } + } + } +} diff --git a/osu.Game.Rulesets.Catch.Tests/Resources/special-skin/skin.ini b/osu.Game.Rulesets.Catch.Tests/Resources/special-skin/skin.ini new file mode 100644 index 0000000000..96d50f1451 --- /dev/null +++ b/osu.Game.Rulesets.Catch.Tests/Resources/special-skin/skin.ini @@ -0,0 +1,4 @@ +[CatchTheBeat] +HyperDash: 232,185,35 +HyperDashFruit: 0,255,255 +HyperDashAfterImage: 232,74,35 diff --git a/osu.Game.Rulesets.Catch/Skinning/CatchLegacySkinTransformer.cs b/osu.Game.Rulesets.Catch/Skinning/CatchLegacySkinTransformer.cs index 65e6e6f209..ba939157ea 100644 --- a/osu.Game.Rulesets.Catch/Skinning/CatchLegacySkinTransformer.cs +++ b/osu.Game.Rulesets.Catch/Skinning/CatchLegacySkinTransformer.cs @@ -16,7 +16,7 @@ namespace osu.Game.Rulesets.Catch.Skinning { private readonly ISkin source; - public CatchLegacySkinTransformer(ISkinSource source) + public CatchLegacySkinTransformer(ISkin source) { this.source = source; } From 9373520bca1ebc0f38d16bca5163eb9ed2e28a5c Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 21 Apr 2020 05:59:37 +0300 Subject: [PATCH 012/213] Add constant for special colour of catcher on default skin --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index f37dae29dd..97d0fb0ada 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -25,6 +25,14 @@ namespace osu.Game.Rulesets.Catch.UI { public static readonly Color4 DEFAULT_HYPER_DASH_COLOUR = Color4.Red; + /// + /// The default colour used directly for . + /// + /// + /// This colour is only used when no skin overrides . + /// + public static readonly Color4 DEFAULT_CATCHER_HYPER_DASH_COLOUR = Color4.OrangeRed; + /// /// Whether we are hyper-dashing or not. /// @@ -285,7 +293,13 @@ namespace osu.Game.Rulesets.Catch.UI if (hyperDashing) { - this.FadeColour(hyperDashColour == DefaultHyperDashColour ? Color4.OrangeRed : hyperDashColour, hyper_dash_transition_length, Easing.OutQuint); + // special behaviour for catcher colour if no skin overrides. + var catcherColour = + hyperDashColour == DEFAULT_HYPER_DASH_COLOUR + ? DEFAULT_CATCHER_HYPER_DASH_COLOUR + : hyperDashColour; + + this.FadeColour(catcherColour, hyper_dash_transition_length, Easing.OutQuint); this.FadeTo(0.2f, hyper_dash_transition_length, Easing.OutQuint); } else From 282d1001093ac757eac1e65933577d1ac035e9d7 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 21 Apr 2020 06:09:57 +0300 Subject: [PATCH 013/213] Fix XMLDoc references --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 97d0fb0ada..056e838419 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -26,7 +26,7 @@ namespace osu.Game.Rulesets.Catch.UI public static readonly Color4 DEFAULT_HYPER_DASH_COLOUR = Color4.Red; /// - /// The default colour used directly for . + /// The default colour used directly for this 's . /// /// /// This colour is only used when no skin overrides . From a82efa626e9d95f98ccad220f14a3ab4fdb76690 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 21 Apr 2020 11:36:09 +0300 Subject: [PATCH 014/213] Add XMLDoc for default hyper-dash colour constant --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 056e838419..6f5e8be92c 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -23,6 +23,9 @@ namespace osu.Game.Rulesets.Catch.UI { public class Catcher : SkinReloadableDrawable, IKeyBindingHandler { + /// + /// The default colour used for all hyper-dashing components. (catcher drawables and fruit) + /// public static readonly Color4 DEFAULT_HYPER_DASH_COLOUR = Color4.Red; /// From ee62739b08e09feeda55b78d5a49dd68a857de0e Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 21 Apr 2020 11:41:53 +0300 Subject: [PATCH 015/213] Simplify process of adding catcher trails --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 29 +++++++---------------- osu.Game.Rulesets.Catch/UI/CatcherArea.cs | 4 +--- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 6f5e8be92c..92f2977c40 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -48,7 +48,7 @@ namespace osu.Game.Rulesets.Catch.UI public Container ExplodingFruitTarget; - private Container additiveTarget; + private readonly Container additiveTarget; private Container dashTrails; private Container hyperDashTrails; private Container endGlowSprites; @@ -116,8 +116,10 @@ namespace osu.Game.Rulesets.Catch.UI private int hyperDashDirection; private float hyperDashTargetPosition; - public Catcher(BeatmapDifficulty difficulty = null) + public Catcher(BeatmapDifficulty difficulty = null, Container additiveTarget = null) { + this.additiveTarget = additiveTarget; + RelativePositionAxes = Axes.X; X = 0.5f; @@ -155,27 +157,14 @@ namespace osu.Game.Rulesets.Catch.UI } }; - updateCatcher(); - } - - /// - /// Sets container target to provide catcher additive trails content in. - /// - /// The container to add catcher trails in. - public void SetAdditiveTarget(Container target) - { - if (additiveTarget == target) - return; - - additiveTarget?.RemoveRange(new[] { dashTrails, hyperDashTrails, endGlowSprites }); - - additiveTarget = target; additiveTarget?.AddRange(new[] { - dashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = Color4.White }, - hyperDashTrails ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashColour }, - endGlowSprites ??= new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashEndGlowColour }, + dashTrails = new Container { RelativeSizeAxes = Axes.Both, Colour = Color4.White }, + hyperDashTrails = new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashColour }, + endGlowSprites = new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashEndGlowColour } }); + + updateCatcher(); } /// diff --git a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs index 641b81599e..1dd94afa9e 100644 --- a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs +++ b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs @@ -33,9 +33,7 @@ namespace osu.Game.Rulesets.Catch.UI { RelativeSizeAxes = Axes.X; Height = CATCHER_SIZE; - - Child = MovableCatcher = new Catcher(difficulty); - MovableCatcher.SetAdditiveTarget(this); + Child = MovableCatcher = new Catcher(difficulty, this); } public static float GetCatcherSize(BeatmapDifficulty difficulty) From c8c2b51108a1a0b80c80d5b846c2925231e80e3a Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 21 Apr 2020 11:44:10 +0300 Subject: [PATCH 016/213] Remove redundant property set Co-Authored-By: Dean Herbert --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 92f2977c40..7ecb245617 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -159,7 +159,7 @@ namespace osu.Game.Rulesets.Catch.UI additiveTarget?.AddRange(new[] { - dashTrails = new Container { RelativeSizeAxes = Axes.Both, Colour = Color4.White }, + dashTrails = new Container { RelativeSizeAxes = Axes.Both }, hyperDashTrails = new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashColour }, endGlowSprites = new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashEndGlowColour } }); From 95de2c6f7f9d82a6c8c72e94280d8b7257766ad7 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 22 Apr 2020 05:04:07 +0300 Subject: [PATCH 017/213] Mark Catcher.additiveTarget to never be null And provide empty containers instead. --- osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs | 3 ++- .../Difficulty/CatchDifficultyCalculator.cs | 3 ++- osu.Game.Rulesets.Catch/UI/Catcher.cs | 3 ++- osu.Game.Rulesets.Catch/UI/CatcherArea.cs | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs index acc5f4e428..3a3e664690 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Linq; using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; namespace osu.Game.Rulesets.Catch.Tests { @@ -23,7 +24,7 @@ namespace osu.Game.Rulesets.Catch.Tests [BackgroundDependencyLoader] private void load() { - SetContents(() => new Catcher + SetContents(() => new Catcher(new Container()) { RelativePositionAxes = Axes.None, Anchor = Anchor.Centre, diff --git a/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs b/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs index 4d9dbbbc5f..fbdf437b7b 100644 --- a/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs +++ b/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using osu.Framework.Graphics.Containers; using osu.Game.Beatmaps; using osu.Game.Rulesets.Catch.Difficulty.Preprocessing; using osu.Game.Rulesets.Catch.Difficulty.Skills; @@ -71,7 +72,7 @@ namespace osu.Game.Rulesets.Catch.Difficulty protected override Skill[] CreateSkills(IBeatmap beatmap) { - using (var catcher = new Catcher(beatmap.BeatmapInfo.BaseDifficulty)) + using (var catcher = new Catcher(new Container(), beatmap.BeatmapInfo.BaseDifficulty)) halfCatcherWidth = catcher.CatchWidth * 0.5f; return new Skill[] diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 7ecb245617..029de2cac0 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -3,6 +3,7 @@ using System; using System.Linq; +using JetBrains.Annotations; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Animations; @@ -116,7 +117,7 @@ namespace osu.Game.Rulesets.Catch.UI private int hyperDashDirection; private float hyperDashTargetPosition; - public Catcher(BeatmapDifficulty difficulty = null, Container additiveTarget = null) + public Catcher([NotNull] Container additiveTarget, BeatmapDifficulty difficulty = null) { this.additiveTarget = additiveTarget; diff --git a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs index 1dd94afa9e..37d177b936 100644 --- a/osu.Game.Rulesets.Catch/UI/CatcherArea.cs +++ b/osu.Game.Rulesets.Catch/UI/CatcherArea.cs @@ -33,7 +33,7 @@ namespace osu.Game.Rulesets.Catch.UI { RelativeSizeAxes = Axes.X; Height = CATCHER_SIZE; - Child = MovableCatcher = new Catcher(difficulty, this); + Child = MovableCatcher = new Catcher(this, difficulty); } public static float GetCatcherSize(BeatmapDifficulty difficulty) From 9ab0f6d8bc5a160f9859305a4a70e3d889f644ec Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 22 Apr 2020 05:12:29 +0300 Subject: [PATCH 018/213] Separate trail-related logic to its own container --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 120 ++++----------- .../UI/CatcherTrailDisplay.cs | 137 ++++++++++++++++++ 2 files changed, 168 insertions(+), 89 deletions(-) create mode 100644 osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 029de2cac0..e30988d8f7 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -8,7 +8,6 @@ using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Animations; using osu.Framework.Graphics.Containers; -using osu.Framework.Graphics.Sprites; using osu.Framework.Input.Bindings; using osu.Framework.Utils; using osu.Game.Beatmaps; @@ -37,6 +36,11 @@ namespace osu.Game.Rulesets.Catch.UI /// public static readonly Color4 DEFAULT_CATCHER_HYPER_DASH_COLOUR = Color4.OrangeRed; + /// + /// The duration between transitioning to hyper-dash state. + /// + public const double HYPER_DASH_TRANSITION_DURATION = 180; + /// /// Whether we are hyper-dashing or not. /// @@ -49,10 +53,10 @@ namespace osu.Game.Rulesets.Catch.UI public Container ExplodingFruitTarget; - private readonly Container additiveTarget; - private Container dashTrails; - private Container hyperDashTrails; - private Container endGlowSprites; + [NotNull] + private readonly Container trailsTarget; + + private CatcherTrailDisplay trails; public CatcherAnimationState CurrentState { get; private set; } @@ -66,33 +70,23 @@ namespace osu.Game.Rulesets.Catch.UI /// internal float CatchWidth => CatcherArea.CATCHER_SIZE * Math.Abs(Scale.X) * allowed_catch_range; - protected bool Dashing + /// + /// The drawable catcher for . + /// + internal Drawable CurrentDrawableCatcher => currentCatcher.Drawable; + + private bool dashing; + + public bool Dashing { get => dashing; - set + protected set { if (value == dashing) return; dashing = value; - Trail |= dashing; - } - } - - /// - /// Activate or deactivate the trail. Will be automatically deactivated when conditions to keep the trail displayed are no longer met. - /// - protected bool Trail - { - get => trail; - set - { - if (value == trail || additiveTarget == null) return; - - trail = value; - - if (Trail) - beginTrail(); + trails.DisplayTrail |= dashing; } } @@ -109,17 +103,13 @@ namespace osu.Game.Rulesets.Catch.UI private int currentDirection; - private bool dashing; - - private bool trail; - private double hyperDashModifier = 1; private int hyperDashDirection; private float hyperDashTargetPosition; - public Catcher([NotNull] Container additiveTarget, BeatmapDifficulty difficulty = null) + public Catcher([NotNull] Container trailsTarget, BeatmapDifficulty difficulty = null) { - this.additiveTarget = additiveTarget; + this.trailsTarget = trailsTarget; RelativePositionAxes = Axes.X; X = 0.5f; @@ -158,12 +148,7 @@ namespace osu.Game.Rulesets.Catch.UI } }; - additiveTarget?.AddRange(new[] - { - dashTrails = new Container { RelativeSizeAxes = Axes.Both }, - hyperDashTrails = new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashColour }, - endGlowSprites = new Container { RelativeSizeAxes = Axes.Both, Colour = hyperDashEndGlowColour } - }); + trailsTarget.Add(trails = new CatcherTrailDisplay(this)); updateCatcher(); } @@ -257,7 +242,7 @@ namespace osu.Game.Rulesets.Catch.UI if (wasHyperDashing) { updateCatcherColour(false); - Trail &= Dashing; + trails.DisplayTrail &= Dashing; } } else @@ -269,21 +254,15 @@ namespace osu.Game.Rulesets.Catch.UI if (!wasHyperDashing) { updateCatcherColour(true); - Trail = true; - var hyperDashEndGlow = createAdditiveSprite(endGlowSprites); - hyperDashEndGlow.MoveToOffset(new Vector2(0, -10), 1200, Easing.In); - hyperDashEndGlow.ScaleTo(hyperDashEndGlow.Scale * 0.95f).ScaleTo(hyperDashEndGlow.Scale * 1.2f, 1200, Easing.In); - hyperDashEndGlow.FadeOut(1200); - hyperDashEndGlow.Expire(true); + trails.DisplayTrail = true; + trails.DisplayEndGlow(); } } } private void updateCatcherColour(bool hyperDashing) { - const float hyper_dash_transition_length = 180; - if (hyperDashing) { // special behaviour for catcher colour if no skin overrides. @@ -292,17 +271,17 @@ namespace osu.Game.Rulesets.Catch.UI ? DEFAULT_CATCHER_HYPER_DASH_COLOUR : hyperDashColour; - this.FadeColour(catcherColour, hyper_dash_transition_length, Easing.OutQuint); - this.FadeTo(0.2f, hyper_dash_transition_length, Easing.OutQuint); + this.FadeColour(catcherColour, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); + this.FadeTo(0.2f, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); } else { - this.FadeColour(Color4.White, hyper_dash_transition_length, Easing.OutQuint); - this.FadeTo(1f, hyper_dash_transition_length, Easing.OutQuint); + this.FadeColour(Color4.White, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); + this.FadeTo(1f, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); } - hyperDashTrails?.FadeColour(hyperDashColour, hyper_dash_transition_length, Easing.OutQuint); - endGlowSprites?.FadeColour(hyperDashEndGlowColour, hyper_dash_transition_length, Easing.OutQuint); + trails.HyperDashTrailsColour = hyperDashColour; + trails.EndGlowSpritesColour = hyperDashEndGlowColour; } public bool OnPressed(CatchAction action) @@ -453,22 +432,6 @@ namespace osu.Game.Rulesets.Catch.UI (currentCatcher.Drawable as IFramedAnimation)?.GotoFrame(0); } - private void beginTrail() - { - if (!dashing && !HyperDashing) - { - Trail = false; - return; - } - - var additive = createAdditiveSprite(HyperDashing ? hyperDashTrails : dashTrails); - - additive.FadeTo(0.4f).FadeOut(800, Easing.OutQuint); - additive.Expire(true); - - Scheduler.AddDelayed(beginTrail, HyperDashing ? 25 : 50); - } - private void updateState(CatcherAnimationState state) { if (CurrentState == state) @@ -478,27 +441,6 @@ namespace osu.Game.Rulesets.Catch.UI updateCatcher(); } - private CatcherTrailSprite createAdditiveSprite(Container target) - { - if (target == null) - return null; - - var tex = (currentCatcher.Drawable as TextureAnimation)?.CurrentFrame ?? ((Sprite)currentCatcher.Drawable).Texture; - - var sprite = new CatcherTrailSprite(tex) - { - Anchor = Anchor, - Scale = Scale, - Blending = BlendingParameters.Additive, - RelativePositionAxes = RelativePositionAxes, - Position = Position - }; - - target.Add(sprite); - - return sprite; - } - private void removeFromPlateWithTransform(DrawableHitObject fruit, Action action) { if (ExplodingFruitTarget != null) diff --git a/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs b/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs new file mode 100644 index 0000000000..afbfac9a51 --- /dev/null +++ b/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs @@ -0,0 +1,137 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Animations; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Sprites; +using osuTK; +using osuTK.Graphics; + +namespace osu.Game.Rulesets.Catch.UI +{ + /// + /// Represents a component responsible for displaying + /// the appropriate catcher trails when requested to. + /// + public class CatcherTrailDisplay : CompositeDrawable + { + private readonly Catcher catcher; + + private readonly Container dashTrails; + private readonly Container hyperDashTrails; + private readonly Container endGlowSprites; + + private Color4 hyperDashTrailsColour; + + public Color4 HyperDashTrailsColour + { + get => hyperDashTrailsColour; + set + { + if (hyperDashTrailsColour == value) + return; + + hyperDashTrailsColour = value; + hyperDashTrails.FadeColour(hyperDashTrailsColour, Catcher.HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); + } + } + + private Color4 endGlowSpritesColour; + + public Color4 EndGlowSpritesColour + { + get => endGlowSpritesColour; + set + { + if (endGlowSpritesColour == value) + return; + + endGlowSpritesColour = value; + endGlowSprites.FadeColour(endGlowSpritesColour, Catcher.HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); + } + } + + private bool trail; + + /// + /// Whether to start displaying trails following the catcher. + /// + public bool DisplayTrail + { + get => trail; + set + { + if (trail == value) + return; + + trail = value; + + if (trail) + displayTrail(); + } + } + + public CatcherTrailDisplay(Catcher catcher) + { + this.catcher = catcher ?? throw new ArgumentNullException(nameof(catcher)); + + RelativeSizeAxes = Axes.Both; + + InternalChildren = new[] + { + dashTrails = new Container { RelativeSizeAxes = Axes.Both }, + hyperDashTrails = new Container { RelativeSizeAxes = Axes.Both, Colour = Catcher.DEFAULT_HYPER_DASH_COLOUR }, + endGlowSprites = new Container { RelativeSizeAxes = Axes.Both, Colour = Catcher.DEFAULT_HYPER_DASH_COLOUR }, + }; + } + + /// + /// Displays a single end-glow catcher sprite. + /// + public void DisplayEndGlow() + { + var endGlow = createTrailSprite(endGlowSprites); + + endGlow.MoveToOffset(new Vector2(0, -10), 1200, Easing.In); + endGlow.ScaleTo(endGlow.Scale * 0.95f).ScaleTo(endGlow.Scale * 1.2f, 1200, Easing.In); + endGlow.FadeOut(1200); + endGlow.Expire(true); + } + + private void displayTrail() + { + if (!catcher.Dashing && !catcher.HyperDashing) + { + DisplayTrail = false; + return; + } + + var sprite = createTrailSprite(catcher.HyperDashing ? hyperDashTrails : dashTrails); + + sprite.FadeTo(0.4f).FadeOut(800, Easing.OutQuint); + sprite.Expire(true); + + Scheduler.AddDelayed(displayTrail, catcher.HyperDashing ? 25 : 50); + } + + private CatcherTrailSprite createTrailSprite(Container target) + { + var texture = (catcher.CurrentDrawableCatcher as TextureAnimation)?.CurrentFrame ?? ((Sprite)catcher.CurrentDrawableCatcher).Texture; + + var sprite = new CatcherTrailSprite(texture) + { + Anchor = catcher.Anchor, + Scale = catcher.Scale, + Blending = BlendingParameters.Additive, + RelativePositionAxes = catcher.RelativePositionAxes, + Position = catcher.Position + }; + + target.Add(sprite); + + return sprite; + } + } +} From 5d3475a5ed32b45c6b3fca5fdd823fab0e2141f9 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 22 Apr 2020 05:12:51 +0300 Subject: [PATCH 019/213] Retrieve CatcherTrailDisplay for asserting colours set correctly --- .../TestSceneHyperDashColouring.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs index 347b71f3ff..0c8ade9018 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs @@ -113,6 +113,7 @@ namespace osu.Game.Rulesets.Catch.Tests private void checkHyperDashCatcherColour(ISkin skin, Color4 expectedCatcherColour, Color4? expectedEndGlowColour = null) { CatcherArea catcherArea = null; + CatcherTrailDisplay trails = null; AddStep("create hyper-dashing catcher", () => { @@ -123,6 +124,7 @@ namespace osu.Game.Rulesets.Catch.Tests Scale = new Vector2(4f), }, skin); + trails = catcherArea.OfType().Single(); catcherArea.MovableCatcher.SetHyperDashState(2); catcherArea.MovableCatcher.FinishTransforms(); }); @@ -132,8 +134,8 @@ namespace osu.Game.Rulesets.Catch.Tests ? catcherArea.MovableCatcher.Colour == Catcher.DEFAULT_CATCHER_HYPER_DASH_COLOUR : catcherArea.MovableCatcher.Colour == expectedCatcherColour); - AddAssert("catcher trails colours are correct", () => catcherArea.OfType>().Any(c => c.Colour == expectedCatcherColour)); - AddAssert("catcher end-glow colours are correct", () => catcherArea.OfType>().Any(c => c.Colour == (expectedEndGlowColour ?? expectedCatcherColour))); + AddAssert("catcher trails colours are correct", () => trails.HyperDashTrailsColour == expectedCatcherColour); + AddAssert("catcher end-glow colours are correct", () => trails.EndGlowSpritesColour == (expectedEndGlowColour ?? expectedCatcherColour)); AddStep("finish hyper-dashing", () => { From 2d4077e71313c8fdb2c03bddd65db9b0a9555ae5 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 22 Apr 2020 05:25:40 +0300 Subject: [PATCH 020/213] Reword special default hyper-dash colour constant a bit --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index e30988d8f7..08e438db56 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -29,7 +29,8 @@ namespace osu.Game.Rulesets.Catch.UI public static readonly Color4 DEFAULT_HYPER_DASH_COLOUR = Color4.Red; /// - /// The default colour used directly for this 's . + /// The default hyper-dash colour used directly for this + /// 's . /// /// /// This colour is only used when no skin overrides . From 730b5ea1a986a6772520d8babd185ede3543c2ab Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 22 Apr 2020 10:40:21 +0300 Subject: [PATCH 021/213] Make the Catcher.Colour assertion read better --- .../TestSceneHyperDashColouring.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs index 0c8ade9018..1e1746efb3 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs @@ -130,9 +130,16 @@ namespace osu.Game.Rulesets.Catch.Tests }); AddAssert("catcher colour is correct", () => - expectedCatcherColour == Catcher.DEFAULT_HYPER_DASH_COLOUR - ? catcherArea.MovableCatcher.Colour == Catcher.DEFAULT_CATCHER_HYPER_DASH_COLOUR - : catcherArea.MovableCatcher.Colour == expectedCatcherColour); + { + var expected = expectedCatcherColour; + + if (expected == Catcher.DEFAULT_HYPER_DASH_COLOUR) + // The expected colour for Catcher.Colour is another colour + // for the default skin, assert with that instead. + expected = Catcher.DEFAULT_CATCHER_HYPER_DASH_COLOUR; + + return catcherArea.MovableCatcher.Colour == expected; + }); AddAssert("catcher trails colours are correct", () => trails.HyperDashTrailsColour == expectedCatcherColour); AddAssert("catcher end-glow colours are correct", () => trails.EndGlowSpritesColour == (expectedEndGlowColour ?? expectedCatcherColour)); From bffe6742e0cde53ce1ce4c6f76546e79eca41abd Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 22 Apr 2020 10:43:49 +0300 Subject: [PATCH 022/213] Replace finishing catcher transforms with until-true step --- osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs index 1e1746efb3..589bafe400 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs @@ -126,10 +126,9 @@ namespace osu.Game.Rulesets.Catch.Tests trails = catcherArea.OfType().Single(); catcherArea.MovableCatcher.SetHyperDashState(2); - catcherArea.MovableCatcher.FinishTransforms(); }); - AddAssert("catcher colour is correct", () => + AddUntilStep("catcher colour is correct", () => { var expected = expectedCatcherColour; From 617d27ace9620128db73f1da44278d2111d801a0 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Wed, 22 Apr 2020 15:19:29 +0200 Subject: [PATCH 023/213] Restart branch --- .../Skinning/TaikoLegacySkinTransformer.cs | 12 ++- .../TaikoSkinComponents.cs | 1 + .../UI/DefaultTaikoDonTextureAnimation.cs | 60 ++++++++++++++ .../UI/DrawableTaikoCharacter.cs | 80 +++++++++++++++++++ .../UI/TaikoDonAnimationState.cs | 13 +++ osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 39 +++++++-- 6 files changed, 196 insertions(+), 9 deletions(-) create mode 100644 osu.Game.Rulesets.Taiko/UI/DefaultTaikoDonTextureAnimation.cs create mode 100644 osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs create mode 100644 osu.Game.Rulesets.Taiko/UI/TaikoDonAnimationState.cs diff --git a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs index 78eec94590..722dbf2671 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs @@ -7,6 +7,7 @@ using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Textures; using osu.Game.Audio; +using osu.Game.Rulesets.Taiko.UI; using osu.Game.Skinning; namespace osu.Game.Rulesets.Taiko.Skinning @@ -32,9 +33,16 @@ namespace osu.Game.Rulesets.Taiko.Skinning return new LegacyInputDrum(); return null; - } - return source.GetDrawableComponent(component); + case TaikoSkinComponents.TaikoDon: + if (GetTexture("pippidonclear0") != null) + return new DrawableTaikoCharacter(); + + return null; + + default: + return source.GetDrawableComponent(component); + } } public Texture GetTexture(string componentName) => source.GetTexture(componentName); diff --git a/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs b/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs index 6d4581db80..a68cc54efa 100644 --- a/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs +++ b/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs @@ -6,5 +6,6 @@ namespace osu.Game.Rulesets.Taiko public enum TaikoSkinComponents { InputDrum, + TaikoDon } } diff --git a/osu.Game.Rulesets.Taiko/UI/DefaultTaikoDonTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/DefaultTaikoDonTextureAnimation.cs new file mode 100644 index 0000000000..1fefed953d --- /dev/null +++ b/osu.Game.Rulesets.Taiko/UI/DefaultTaikoDonTextureAnimation.cs @@ -0,0 +1,60 @@ +using osu.Framework.Allocation; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Animations; +using osu.Framework.Graphics.Textures; +using osu.Game.Skinning; + +namespace osu.Game.Rulesets.Taiko.UI +{ + public sealed class DefaultTaikoDonTextureAnimation : TextureAnimation + { + private readonly TaikoDonAnimationState _state; + private int currentFrame; + + public DefaultTaikoDonTextureAnimation(TaikoDonAnimationState state) : base(false) + { + _state = state; + this.Stop(); + + Origin = Anchor.BottomLeft; + Anchor = Anchor.BottomLeft; + } + + [BackgroundDependencyLoader] + private void load(ISkinSource skin) + { + for (int i = 0;; i++) + { + var textureName = $"pippidon{_getStateString(_state)}{i}"; + Texture texture = skin.GetTexture(textureName); + + if (texture == null) + break; + + AddFrame(texture); + } + } + + /// + /// Advances the current frame by one. + /// + public void Move() + { + if (FrameCount <= currentFrame) + currentFrame = 0; + + GotoFrame(currentFrame); + + currentFrame++; + } + + private string _getStateString(TaikoDonAnimationState state) => state switch + { + TaikoDonAnimationState.Clear => "clear", + TaikoDonAnimationState.Fail => "fail", + TaikoDonAnimationState.Idle => "idle", + TaikoDonAnimationState.Kiai => "kiai", + _ => null + }; + } +} diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs new file mode 100644 index 0000000000..897670d049 --- /dev/null +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs @@ -0,0 +1,80 @@ +using osu.Framework.Allocation; +using osu.Framework.Audio.Track; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Textures; +using osu.Game.Beatmaps.ControlPoints; +using osu.Game.Graphics.Containers; +using osuTK; + +namespace osu.Game.Rulesets.Taiko.UI +{ + public sealed class DrawableTaikoCharacter : BeatSyncedContainer + { + private static DefaultTaikoDonTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; + + private TaikoDonAnimationState state; + + public DrawableTaikoCharacter() + { + RelativeSizeAxes = Axes.Both; + //Size = new Vector2(1f, 2.5f); + //Origin = Anchor.BottomLeft; + var xd = new Vector2(1); + } + + private DefaultTaikoDonTextureAnimation getStateDrawable() => State switch + { + TaikoDonAnimationState.Idle => idleDrawable, + TaikoDonAnimationState.Clear => clearDrawable, + TaikoDonAnimationState.Kiai => kiaiDrawable, + TaikoDonAnimationState.Fail => failDrawable, + _ => null + }; + + public TaikoDonAnimationState State + { + get => state; + set + { + state = value; + + foreach (var child in InternalChildren) + child.Hide(); + + getStateDrawable().Show(); + } + } + + [BackgroundDependencyLoader] + private void load(TextureStore textures) + { + InternalChildren = new[] + { + idleDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Idle), + clearDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Clear), + kiaiDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Kiai), + failDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Fail), + }; + + // sets the state, to make sure we have the correct sprite loaded and set. + State = TaikoDonAnimationState.Idle; + } + + protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) + { + base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); + + getStateDrawable().Move(); + + //var signature = timingPoint.TimeSignature == TimeSignatures.SimpleQuadruple ? 4 : 3; + //var length = timingPoint.BeatLength; + //var rate = 1000d / length; + //adjustableClock.Rate = rate; + // + //// Start animating on the first beat. + //if (beatIndex < 1) + // adjustableClock.Start(); + // Logger.GetLogger(LoggingTarget.Information).Add($"Length = {length}ms | Rate = {rate}x | BPM = {timingPoint.BPM} / {signature}"); + } + } +} diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoDonAnimationState.cs b/osu.Game.Rulesets.Taiko/UI/TaikoDonAnimationState.cs new file mode 100644 index 0000000000..773710ee7e --- /dev/null +++ b/osu.Game.Rulesets.Taiko/UI/TaikoDonAnimationState.cs @@ -0,0 +1,13 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +namespace osu.Game.Rulesets.Taiko.UI +{ + public enum TaikoDonAnimationState + { + Idle, + Clear, + Kiai, + Fail + } +} diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index bde9085c23..d5cabb8662 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -19,6 +19,9 @@ using osu.Game.Rulesets.Taiko.Judgements; using osu.Game.Rulesets.Taiko.Objects; using osuTK; using osuTK.Graphics; +using osu.Game.Rulesets.Scoring; +using osu.Framework.Bindables; +using osu.Game.Skinning; namespace osu.Game.Rulesets.Taiko.UI { @@ -53,6 +56,10 @@ namespace osu.Game.Rulesets.Taiko.UI private readonly Box overlayBackground; private readonly Box background; + private readonly SkinnableDrawable characterDrawable; + + private Bindable frameTime = new Bindable(100); + public TaikoPlayfield(ControlPointInfo controlPoints) { InternalChildren = new Drawable[] @@ -186,6 +193,12 @@ namespace osu.Game.Rulesets.Taiko.UI { Name = "Top level hit objects", RelativeSizeAxes = Axes.Both, + }, + characterDrawable = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => new Container(), confineMode: ConfineMode.ScaleToFit) + { + Origin = Anchor.BottomLeft, + Anchor = Anchor.TopLeft, + RelativePositionAxes = Axes.None } }; } @@ -254,16 +267,28 @@ namespace osu.Game.Rulesets.Taiko.UI break; } - } - private class ProxyContainer : LifetimeManagementContainer - { - public new MarginPadding Padding + if (characterDrawable.Drawable is DrawableTaikoCharacter character) { - set => base.Padding = value; + if (result.Type == HitResult.Miss && result.Judgement.AffectsCombo) + { + character.State = TaikoDonAnimationState.Fail; + } + else + { + character.State = judgedObject.HitObject.Kiai ? TaikoDonAnimationState.Kiai : TaikoDonAnimationState.Idle; + } } - - public void Add(Drawable proxy) => AddInternal(proxy); } } + + class ProxyContainer : LifetimeManagementContainer + { + public new MarginPadding Padding + { + set => base.Padding = value; + } + + public void Add(Drawable proxy) => AddInternal(proxy); + } } From 6376128bde406d3340feb7f9dd946d8bdae77225 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Thu, 23 Apr 2020 05:33:28 +0300 Subject: [PATCH 024/213] Remove unnecessary using directive --- osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs b/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs index 57930a21fa..d99325ff87 100644 --- a/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs +++ b/osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.Linq; -using osu.Framework.Graphics.Containers; using osu.Game.Beatmaps; using osu.Game.Rulesets.Catch.Difficulty.Preprocessing; using osu.Game.Rulesets.Catch.Difficulty.Skills; From 608596c3b39a83d61fa21d30dd92eab4334bfee5 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 02:50:10 +0200 Subject: [PATCH 025/213] Rename DefaultTaikoDonTextureAnimation to TaikoDonTextureAnimation --- .../UI/DrawableTaikoCharacter.cs | 14 ++++++-------- ...ureAnimation.cs => TaikoDonTextureAnimation.cs} | 11 ++++++----- 2 files changed, 12 insertions(+), 13 deletions(-) rename osu.Game.Rulesets.Taiko/UI/{DefaultTaikoDonTextureAnimation.cs => TaikoDonTextureAnimation.cs} (79%) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs index 897670d049..85f18b3ec7 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs @@ -1,16 +1,14 @@ using osu.Framework.Allocation; using osu.Framework.Audio.Track; -using osu.Framework.Graphics; using osu.Framework.Graphics.Textures; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics.Containers; -using osuTK; namespace osu.Game.Rulesets.Taiko.UI { public sealed class DrawableTaikoCharacter : BeatSyncedContainer { - private static DefaultTaikoDonTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; + private static TaikoDonTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; private TaikoDonAnimationState state; @@ -22,7 +20,7 @@ namespace osu.Game.Rulesets.Taiko.UI var xd = new Vector2(1); } - private DefaultTaikoDonTextureAnimation getStateDrawable() => State switch + private TaikoDonTextureAnimation getStateDrawable() => State switch { TaikoDonAnimationState.Idle => idleDrawable, TaikoDonAnimationState.Clear => clearDrawable, @@ -50,10 +48,10 @@ namespace osu.Game.Rulesets.Taiko.UI { InternalChildren = new[] { - idleDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Idle), - clearDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Clear), - kiaiDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Kiai), - failDrawable = new DefaultTaikoDonTextureAnimation(TaikoDonAnimationState.Fail), + idleDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Idle), + clearDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Clear), + kiaiDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Kiai), + failDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Fail), }; // sets the state, to make sure we have the correct sprite loaded and set. diff --git a/osu.Game.Rulesets.Taiko/UI/DefaultTaikoDonTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoDonTextureAnimation.cs similarity index 79% rename from osu.Game.Rulesets.Taiko/UI/DefaultTaikoDonTextureAnimation.cs rename to osu.Game.Rulesets.Taiko/UI/TaikoDonTextureAnimation.cs index 1fefed953d..315cd57f13 100644 --- a/osu.Game.Rulesets.Taiko/UI/DefaultTaikoDonTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoDonTextureAnimation.cs @@ -6,18 +6,19 @@ using osu.Game.Skinning; namespace osu.Game.Rulesets.Taiko.UI { - public sealed class DefaultTaikoDonTextureAnimation : TextureAnimation + public sealed class TaikoDonTextureAnimation : TextureAnimation { - private readonly TaikoDonAnimationState _state; + private readonly TaikoDonAnimationState state; private int currentFrame; - public DefaultTaikoDonTextureAnimation(TaikoDonAnimationState state) : base(false) + public TaikoDonTextureAnimation(TaikoDonAnimationState state) : base(false) { - _state = state; + this.state = state; this.Stop(); Origin = Anchor.BottomLeft; Anchor = Anchor.BottomLeft; + AutoSizeAxes = Axes.Y; } [BackgroundDependencyLoader] @@ -25,7 +26,7 @@ namespace osu.Game.Rulesets.Taiko.UI { for (int i = 0;; i++) { - var textureName = $"pippidon{_getStateString(_state)}{i}"; + var textureName = $"pippidon{_getStateString(state)}{i}"; Texture texture = skin.GetTexture(textureName); if (texture == null) From bbe831698c5b315a373d16ef2b5996f682607619 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 02:50:33 +0200 Subject: [PATCH 026/213] Remove unused code --- .../UI/DrawableTaikoCharacter.cs | 13 ------------- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 1 - 2 files changed, 14 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs index 85f18b3ec7..aace96aa9b 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs @@ -15,9 +15,6 @@ namespace osu.Game.Rulesets.Taiko.UI public DrawableTaikoCharacter() { RelativeSizeAxes = Axes.Both; - //Size = new Vector2(1f, 2.5f); - //Origin = Anchor.BottomLeft; - var xd = new Vector2(1); } private TaikoDonTextureAnimation getStateDrawable() => State switch @@ -63,16 +60,6 @@ namespace osu.Game.Rulesets.Taiko.UI base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); getStateDrawable().Move(); - - //var signature = timingPoint.TimeSignature == TimeSignatures.SimpleQuadruple ? 4 : 3; - //var length = timingPoint.BeatLength; - //var rate = 1000d / length; - //adjustableClock.Rate = rate; - // - //// Start animating on the first beat. - //if (beatIndex < 1) - // adjustableClock.Start(); - // Logger.GetLogger(LoggingTarget.Information).Add($"Length = {length}ms | Rate = {rate}x | BPM = {timingPoint.BPM} / {signature}"); } } } diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index f4e24afb32..c86a6f61b2 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -22,7 +22,6 @@ using osuTK; using osuTK.Graphics; using osu.Game.Rulesets.Scoring; using osu.Framework.Bindables; -using osu.Game.Skinning; namespace osu.Game.Rulesets.Taiko.UI { From 6de08db65316679f99830c6448540aeb5b89ea06 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 02:50:47 +0200 Subject: [PATCH 027/213] Add removed skin component back --- osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs b/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs index bd98c2ea87..ff7590c561 100644 --- a/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs +++ b/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs @@ -6,6 +6,7 @@ namespace osu.Game.Rulesets.Taiko public enum TaikoSkinComponents { InputDrum, + CentreHit, RimHit, DrumRollBody, DrumRollTick, From dbf39be6070c863109150cc8610cc275ee1aca1a Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 06:59:05 +0200 Subject: [PATCH 028/213] Decide on the name "Mascot", add testing, bug fixed, etc. --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 155 ++++++++++++++++++ .../Skinning/TaikoLegacySkinTransformer.cs | 2 +- .../UI/DrawableTaikoCharacter.cs | 65 -------- .../UI/DrawableTaikoMascot.cs | 99 +++++++++++ .../UI/TaikoDonTextureAnimation.cs | 61 ------- ...nState.cs => TaikoMascotAnimationState.cs} | 2 +- .../UI/TaikoMascotTextureAnimation.cs | 88 ++++++++++ osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 16 +- 8 files changed, 353 insertions(+), 135 deletions(-) create mode 100644 osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs delete mode 100644 osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs create mode 100644 osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs delete mode 100644 osu.Game.Rulesets.Taiko/UI/TaikoDonTextureAnimation.cs rename osu.Game.Rulesets.Taiko/UI/{TaikoDonAnimationState.cs => TaikoMascotAnimationState.cs} (86%) create mode 100644 osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs new file mode 100644 index 0000000000..dc89fa3a59 --- /dev/null +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -0,0 +1,155 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System; +using System.Collections.Generic; +using System.Linq; +using NUnit.Framework; +using osu.Framework.Allocation; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Testing; +using osu.Game.Beatmaps.ControlPoints; +using osu.Game.Rulesets.Judgements; +using osu.Game.Rulesets.Objects; +using osu.Game.Rulesets.Scoring; +using osu.Game.Rulesets.Taiko.Judgements; +using osu.Game.Rulesets.Taiko.Objects; +using osu.Game.Rulesets.Taiko.Objects.Drawables; +using osu.Game.Rulesets.Taiko.UI; +using osu.Game.Rulesets.UI.Scrolling; +using osu.Game.Skinning; +using osu.Game.Tests.Visual; + +namespace osu.Game.Rulesets.Taiko.Tests.Skinning +{ + [TestFixture] + public class TestSceneDrawableTaikoMascot : TaikoSkinnableTestScene + { + public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] + { + typeof(DrawableTaikoMascot), + }).ToList(); + + [Cached(typeof(IScrollingInfo))] + private ScrollingTestContainer.TestScrollingInfo info = new ScrollingTestContainer.TestScrollingInfo + { + Direction = { Value = ScrollingDirection.Left }, + TimeRange = { Value = 5000 }, + }; + + private readonly List mascots = new List(); + private readonly List skinnables = new List(); + private readonly List playfields = new List(); + + [Test] + public void TestStateTextures() + { + AddStep("Create mascot (idle)", () => + { + skinnables.Clear(); + SetContents(() => + { + var skinnable = getMascot(); + skinnables.Add(skinnable); + return skinnable; + }); + }); + + AddUntilStep("Wait for SkinnableDrawable", () => skinnables.Any(d => d.Drawable is DrawableTaikoMascot)); + + AddStep("Collect mascots", () => + { + mascots.Clear(); + + foreach (var skinnable in skinnables) + { + if (skinnable.Drawable is DrawableTaikoMascot mascot) + mascots.Add(mascot); + } + }); + + AddStep("Clear state", () => setState(TaikoMascotAnimationState.Clear)); + + AddStep("Kiai state", () => setState(TaikoMascotAnimationState.Kiai)); + + AddStep("Fail state", () => setState(TaikoMascotAnimationState.Fail)); + } + + private void setState(TaikoMascotAnimationState state) + { + foreach (var mascot in mascots) + { + if (mascot == null) + continue; + + mascot.Dumb = true; + mascot.State = state; + } + } + + private SkinnableDrawable getMascot() => + new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => new Container(), confineMode: ConfineMode.ScaleToFit) + { + RelativePositionAxes = Axes.Both + }; + + [Test] + public void TestPlayfield() + { + AddStep("Create playfield", () => + { + playfields.Clear(); + SetContents(() => + { + var playfield = new TaikoPlayfield(new ControlPointInfo()) + { + Height = 0.4f, + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft, + }; + + playfields.Add(playfield); + + return playfield; + }); + }); + + AddUntilStep("Wait for SkinnableDrawable", () => playfields.Any(p => p.ChildrenOfType().Any())); + + AddStep("Collect mascots", () => + { + mascots.Clear(); + + foreach (var playfield in playfields) + { + var mascot = playfield.ChildrenOfType().SingleOrDefault(); + + if (mascot != null) + mascots.Add(mascot); + } + }); + + AddStep("Create hit (miss)", () => + { + foreach (var playfield in playfields) + addJudgement(playfield, HitResult.Miss); + }); + + AddAssert("Check if state is fail", () => mascots.Where(d => d != null).All(d => d.PlayfieldState.Value == TaikoMascotAnimationState.Fail)); + + AddStep("Create hit (great)", () => + { + foreach (var playfield in playfields) + addJudgement(playfield, HitResult.Great); + }); + + AddAssert("Check if state is idle", () => mascots.Where(d => d != null).All(d => d.PlayfieldState.Value == TaikoMascotAnimationState.Idle)); + } + + private void addJudgement(TaikoPlayfield playfield, HitResult result) + { + playfield.OnNewResult(new DrawableRimHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); + } + } +} diff --git a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs index cc79822417..dfc9297a33 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs @@ -59,7 +59,7 @@ namespace osu.Game.Rulesets.Taiko.Skinning case TaikoSkinComponents.TaikoDon: if (GetTexture("pippidonclear0") != null) - return new DrawableTaikoCharacter(); + return new DrawableTaikoMascot(); return null; diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs deleted file mode 100644 index aace96aa9b..0000000000 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoCharacter.cs +++ /dev/null @@ -1,65 +0,0 @@ -using osu.Framework.Allocation; -using osu.Framework.Audio.Track; -using osu.Framework.Graphics.Textures; -using osu.Game.Beatmaps.ControlPoints; -using osu.Game.Graphics.Containers; - -namespace osu.Game.Rulesets.Taiko.UI -{ - public sealed class DrawableTaikoCharacter : BeatSyncedContainer - { - private static TaikoDonTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; - - private TaikoDonAnimationState state; - - public DrawableTaikoCharacter() - { - RelativeSizeAxes = Axes.Both; - } - - private TaikoDonTextureAnimation getStateDrawable() => State switch - { - TaikoDonAnimationState.Idle => idleDrawable, - TaikoDonAnimationState.Clear => clearDrawable, - TaikoDonAnimationState.Kiai => kiaiDrawable, - TaikoDonAnimationState.Fail => failDrawable, - _ => null - }; - - public TaikoDonAnimationState State - { - get => state; - set - { - state = value; - - foreach (var child in InternalChildren) - child.Hide(); - - getStateDrawable().Show(); - } - } - - [BackgroundDependencyLoader] - private void load(TextureStore textures) - { - InternalChildren = new[] - { - idleDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Idle), - clearDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Clear), - kiaiDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Kiai), - failDrawable = new TaikoDonTextureAnimation(TaikoDonAnimationState.Fail), - }; - - // sets the state, to make sure we have the correct sprite loaded and set. - State = TaikoDonAnimationState.Idle; - } - - protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) - { - base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); - - getStateDrawable().Move(); - } - } -} diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs new file mode 100644 index 0000000000..fbac1e9d0b --- /dev/null +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -0,0 +1,99 @@ +using osu.Framework.Allocation; +using osu.Framework.Audio.Track; +using osu.Framework.Bindables; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Textures; +using osu.Game.Beatmaps.ControlPoints; +using osu.Game.Graphics.Containers; + +namespace osu.Game.Rulesets.Taiko.UI +{ + public sealed class DrawableTaikoMascot : BeatSyncedContainer + { + private static TaikoMascotTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; + private EffectControlPoint lastEffectControlPoint; + private TaikoMascotAnimationState state; + + public Bindable PlayfieldState; + + /// + /// Determines if there should be no "state logic", intended for testing. + /// + public bool Dumb { get; set; } + + public TaikoMascotAnimationState State + { + get => state; + set + { + state = value; + + foreach (var child in InternalChildren) + child.Hide(); + + var drawable = getStateDrawable(State); + + drawable?.Show(); + } + } + + public DrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) + { + RelativeSizeAxes = Axes.Both; + PlayfieldState = new Bindable(); + PlayfieldState.BindValueChanged((b) => + { + if (lastEffectControlPoint != null) + State = getFinalAnimationState(lastEffectControlPoint, b.NewValue); + }); + + State = startingState; + } + + private TaikoMascotTextureAnimation getStateDrawable(TaikoMascotAnimationState state) => state switch + { + TaikoMascotAnimationState.Idle => idleDrawable, + TaikoMascotAnimationState.Clear => clearDrawable, + TaikoMascotAnimationState.Kiai => kiaiDrawable, + TaikoMascotAnimationState.Fail => failDrawable, + _ => null + }; + + private TaikoMascotAnimationState getFinalAnimationState(EffectControlPoint effectPoint, TaikoMascotAnimationState playfieldState) + { + if (playfieldState == TaikoMascotAnimationState.Fail) + return playfieldState; + + return effectPoint.KiaiMode ? TaikoMascotAnimationState.Kiai : TaikoMascotAnimationState.Idle; + } + + [BackgroundDependencyLoader] + private void load(TextureStore textures) + { + InternalChildren = new[] + { + idleDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Idle), + clearDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Clear), + kiaiDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Kiai), + failDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Fail), + }; + + // making sure we have the correct sprite set + State = state; + } + + protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) + { + base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); + + if (!Dumb) + State = getFinalAnimationState(lastEffectControlPoint = effectPoint, PlayfieldState.Value); + + if (State == TaikoMascotAnimationState.Clear) + return; + + var drawable = getStateDrawable(State); + drawable.Move(); + } + } +} diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoDonTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoDonTextureAnimation.cs deleted file mode 100644 index 315cd57f13..0000000000 --- a/osu.Game.Rulesets.Taiko/UI/TaikoDonTextureAnimation.cs +++ /dev/null @@ -1,61 +0,0 @@ -using osu.Framework.Allocation; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Animations; -using osu.Framework.Graphics.Textures; -using osu.Game.Skinning; - -namespace osu.Game.Rulesets.Taiko.UI -{ - public sealed class TaikoDonTextureAnimation : TextureAnimation - { - private readonly TaikoDonAnimationState state; - private int currentFrame; - - public TaikoDonTextureAnimation(TaikoDonAnimationState state) : base(false) - { - this.state = state; - this.Stop(); - - Origin = Anchor.BottomLeft; - Anchor = Anchor.BottomLeft; - AutoSizeAxes = Axes.Y; - } - - [BackgroundDependencyLoader] - private void load(ISkinSource skin) - { - for (int i = 0;; i++) - { - var textureName = $"pippidon{_getStateString(state)}{i}"; - Texture texture = skin.GetTexture(textureName); - - if (texture == null) - break; - - AddFrame(texture); - } - } - - /// - /// Advances the current frame by one. - /// - public void Move() - { - if (FrameCount <= currentFrame) - currentFrame = 0; - - GotoFrame(currentFrame); - - currentFrame++; - } - - private string _getStateString(TaikoDonAnimationState state) => state switch - { - TaikoDonAnimationState.Clear => "clear", - TaikoDonAnimationState.Fail => "fail", - TaikoDonAnimationState.Idle => "idle", - TaikoDonAnimationState.Kiai => "kiai", - _ => null - }; - } -} diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoDonAnimationState.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimationState.cs similarity index 86% rename from osu.Game.Rulesets.Taiko/UI/TaikoDonAnimationState.cs rename to osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimationState.cs index 773710ee7e..02bf245b7b 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoDonAnimationState.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimationState.cs @@ -3,7 +3,7 @@ namespace osu.Game.Rulesets.Taiko.UI { - public enum TaikoDonAnimationState + public enum TaikoMascotAnimationState { Idle, Clear, diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs new file mode 100644 index 0000000000..19a533156e --- /dev/null +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -0,0 +1,88 @@ +using osu.Framework.Allocation; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Animations; +using osu.Framework.Graphics.Textures; +using osu.Game.Skinning; + +namespace osu.Game.Rulesets.Taiko.UI +{ + public sealed class TaikoMascotTextureAnimation : TextureAnimation + { + private const float clear_animation_speed = 1000 / 10F; + private static readonly int[] clear_animation_sequence = new[] { 0, 1, 2, 3, 4, 5, 6, 5, 6, 5, 4, 3, 2, 1, 0 }; + private int currentFrame; + + public TaikoMascotAnimationState State { get; } + + public TaikoMascotTextureAnimation(TaikoMascotAnimationState state) + : base(true) + { + State = state; + + // We're animating on beat if it's not the clear animation + if (state == TaikoMascotAnimationState.Clear) + DefaultFrameLength = clear_animation_speed; + else + this.Stop(); + + Origin = Anchor.BottomLeft; + Anchor = Anchor.BottomLeft; + } + + [BackgroundDependencyLoader] + private void load(ISkinSource skin) + { + if (State == TaikoMascotAnimationState.Clear) + { + foreach (var textureIndex in clear_animation_sequence) + { + var textureName = _getStateTextureName(textureIndex); + Texture texture = skin.GetTexture(textureName); + + if (texture == null) + break; + + AddFrame(texture); + } + } + else + { + for (int i = 0;; i++) + { + var textureName = _getStateTextureName(i); + Texture texture = skin.GetTexture(textureName); + + if (texture == null) + break; + + AddFrame(texture); + } + } + } + + /// Advances the current frame by one. + public void Move() + { + if (FrameCount == 0) // Frames are apparently broken + return; + + if (FrameCount <= currentFrame) + currentFrame = 0; + + GotoFrame(currentFrame); + + currentFrame += 1; + } + + private string _getStateTextureName(int i) => $"pippidon{_getStateString(State)}{i}"; + + private string _getStateString(TaikoMascotAnimationState state) => state switch + { + TaikoMascotAnimationState.Clear => "clear", + TaikoMascotAnimationState.Fail => "fail", + TaikoMascotAnimationState.Idle => "idle", + TaikoMascotAnimationState.Kiai => "kiai", + _ => null + }; + } +} diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index c86a6f61b2..3bf5d084ee 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -268,16 +268,18 @@ namespace osu.Game.Rulesets.Taiko.UI break; } - if (characterDrawable.Drawable is DrawableTaikoCharacter character) + if (characterDrawable.Drawable is DrawableTaikoMascot mascot) { - if (result.Type == HitResult.Miss && result.Judgement.AffectsCombo) + var isFailing = result.Type == HitResult.Miss; + + // Only take combo in consideration when it's not a strong hit (it's always false) + if (!(judgedObject.HitObject is StrongHitObject)) { - character.State = TaikoDonAnimationState.Fail; - } - else - { - character.State = judgedObject.HitObject.Kiai ? TaikoDonAnimationState.Kiai : TaikoDonAnimationState.Idle; + if (isFailing) + isFailing = result.Judgement.AffectsCombo; } + + mascot.PlayfieldState.Value = isFailing ? TaikoMascotAnimationState.Fail : TaikoMascotAnimationState.Idle; } } } From ac44185f091266d551080feb35c8d3c4caf2da00 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 07:09:20 +0200 Subject: [PATCH 029/213] Fix formatting --- .../UI/DrawableTaikoMascot.cs | 19 +++++++++++-------- .../UI/TaikoMascotTextureAnimation.cs | 19 +++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index fbac1e9d0b..dae0b47900 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -41,7 +41,7 @@ namespace osu.Game.Rulesets.Taiko.UI { RelativeSizeAxes = Axes.Both; PlayfieldState = new Bindable(); - PlayfieldState.BindValueChanged((b) => + PlayfieldState.BindValueChanged(b => { if (lastEffectControlPoint != null) State = getFinalAnimationState(lastEffectControlPoint, b.NewValue); @@ -50,14 +50,17 @@ namespace osu.Game.Rulesets.Taiko.UI State = startingState; } - private TaikoMascotTextureAnimation getStateDrawable(TaikoMascotAnimationState state) => state switch + private TaikoMascotTextureAnimation getStateDrawable(TaikoMascotAnimationState state) { - TaikoMascotAnimationState.Idle => idleDrawable, - TaikoMascotAnimationState.Clear => clearDrawable, - TaikoMascotAnimationState.Kiai => kiaiDrawable, - TaikoMascotAnimationState.Fail => failDrawable, - _ => null - }; + return state switch + { + TaikoMascotAnimationState.Idle => idleDrawable, + TaikoMascotAnimationState.Clear => clearDrawable, + TaikoMascotAnimationState.Kiai => kiaiDrawable, + TaikoMascotAnimationState.Fail => failDrawable, + _ => null + }; + } private TaikoMascotAnimationState getFinalAnimationState(EffectControlPoint effectPoint, TaikoMascotAnimationState playfieldState) { diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index 19a533156e..dd4785ea81 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -9,7 +9,7 @@ namespace osu.Game.Rulesets.Taiko.UI public sealed class TaikoMascotTextureAnimation : TextureAnimation { private const float clear_animation_speed = 1000 / 10F; - private static readonly int[] clear_animation_sequence = new[] { 0, 1, 2, 3, 4, 5, 6, 5, 6, 5, 4, 3, 2, 1, 0 }; + private static readonly int[] clear_animation_sequence = { 0, 1, 2, 3, 4, 5, 6, 5, 6, 5, 4, 3, 2, 1, 0 }; private int currentFrame; public TaikoMascotAnimationState State { get; } @@ -76,13 +76,16 @@ namespace osu.Game.Rulesets.Taiko.UI private string _getStateTextureName(int i) => $"pippidon{_getStateString(State)}{i}"; - private string _getStateString(TaikoMascotAnimationState state) => state switch + private string _getStateString(TaikoMascotAnimationState state) { - TaikoMascotAnimationState.Clear => "clear", - TaikoMascotAnimationState.Fail => "fail", - TaikoMascotAnimationState.Idle => "idle", - TaikoMascotAnimationState.Kiai => "kiai", - _ => null - }; + return state switch + { + TaikoMascotAnimationState.Clear => "clear", + TaikoMascotAnimationState.Fail => "fail", + TaikoMascotAnimationState.Idle => "idle", + TaikoMascotAnimationState.Kiai => "kiai", + _ => null + }; + } } } From 84aa37d7c3a9cd1b92c792441b1ea6e217d03d0e Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 07:57:16 +0200 Subject: [PATCH 030/213] Fix all local tests --- osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs | 5 ++++- osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs | 5 ++++- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index dae0b47900..f05c335456 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -1,4 +1,7 @@ -using osu.Framework.Allocation; +// 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.Audio.Track; using osu.Framework.Bindables; using osu.Framework.Graphics; diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index dd4785ea81..4a95717c8c 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -1,4 +1,7 @@ -using osu.Framework.Allocation; +// 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.Graphics; using osu.Framework.Graphics.Animations; using osu.Framework.Graphics.Textures; diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 3bf5d084ee..6d9d263141 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -284,7 +284,7 @@ namespace osu.Game.Rulesets.Taiko.UI } } - class ProxyContainer : LifetimeManagementContainer + internal class ProxyContainer : LifetimeManagementContainer { public new MarginPadding Padding { From 8ae119ab62e68968f84caff0d101281bee5d88e9 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 08:05:57 +0200 Subject: [PATCH 031/213] Fix last formatting error --- osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index 4a95717c8c..922b2d08b6 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -50,7 +50,7 @@ namespace osu.Game.Rulesets.Taiko.UI } else { - for (int i = 0;; i++) + for (int i = 0; true; i++) { var textureName = _getStateTextureName(i); Texture texture = skin.GetTexture(textureName); From 364f5bf7885ac853a968b7796cdbd37f4f006b1b Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Fri, 24 Apr 2020 22:57:23 +0200 Subject: [PATCH 032/213] Update osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Bartłomiej Dach --- osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index 922b2d08b6..2c04d3e1dc 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -11,7 +11,7 @@ namespace osu.Game.Rulesets.Taiko.UI { public sealed class TaikoMascotTextureAnimation : TextureAnimation { - private const float clear_animation_speed = 1000 / 10F; + private const float clear_animation_speed = 1000 / 10f; private static readonly int[] clear_animation_sequence = { 0, 1, 2, 3, 4, 5, 6, 5, 6, 5, 4, 3, 2, 1, 0 }; private int currentFrame; From dc6acf6ec9f133225a45391723c7b2b9647688fe Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 01:40:57 +0200 Subject: [PATCH 033/213] Various code changes, fixes --- .../Resources/old-skin/pippidonclear0.png | Bin 0 -> 72589 bytes .../Resources/old-skin/pippidonclear1.png | Bin 0 -> 40613 bytes .../Resources/old-skin/pippidonclear2.png | Bin 0 -> 73308 bytes .../Resources/old-skin/pippidonclear3.png | Bin 0 -> 34541 bytes .../Resources/old-skin/pippidonclear4.png | Bin 0 -> 71177 bytes .../Resources/old-skin/pippidonclear5.png | Bin 0 -> 77056 bytes .../Resources/old-skin/pippidonclear6.png | Bin 0 -> 78392 bytes .../Resources/old-skin/pippidonclear7.png | Bin 0 -> 77056 bytes .../Resources/old-skin/pippidonclear8.png | Bin 0 -> 71177 bytes .../Resources/old-skin/pippidonfail0.png | Bin 0 -> 67970 bytes .../Resources/old-skin/pippidonfail1.png | Bin 0 -> 69118 bytes .../Resources/old-skin/pippidonfail2.png | Bin 0 -> 73351 bytes .../Resources/old-skin/pippidonidle0.png | Bin 0 -> 68649 bytes .../Resources/old-skin/pippidonidle1.png | Bin 0 -> 69329 bytes .../Resources/old-skin/pippidonkiai0.png | Bin 0 -> 76964 bytes .../Resources/old-skin/pippidonkiai1.png | Bin 0 -> 75434 bytes .../Skinning/TestSceneDrawableTaikoMascot.cs | 191 ++++++++++++------ .../UI/DrawableTaikoMascot.cs | 99 ++++----- .../UI/TaikoMascotTextureAnimation.cs | 39 ++-- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 14 +- 20 files changed, 207 insertions(+), 136 deletions(-) create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear0.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear1.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear2.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear3.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear4.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear5.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear6.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear7.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear8.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail0.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail1.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail2.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle0.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle1.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai0.png create mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai1.png diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear0.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f4d03e2a61075513c85f24ab39280c31f591d9 GIT binary patch literal 72589 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�F*Q&jpbtTl0ro%YGC`VnPkLo4Qt@L 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 literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear1.png new file mode 100644 index 0000000000000000000000000000000000000000..b239cc561c5cfccc67f04badfa8ab1b54ef6852f GIT binary patch literal 40613 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�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 literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear3.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear3.png new file mode 100644 index 0000000000000000000000000000000000000000..31e0b91e9fdcb82988b6b8d7b2505a38fdf70358 GIT binary patch literal 34541 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%0Dr63wml-6F*tONlh7MSGocvsq)+w z+6KaQFt(~SjU^wAhl78&7BNj_e@8M6t(p$I3%zx)m{%V{B_HjE|mg}#L`BIL_(40Fqkt+7B_{~Q{HqhAtIRnQrE^4&}y?1i! zEHXuz1*`A%f=yd{1P?i&c^oJq?+=!c9*-bL(W}mKNyJLv%xU50p{q;0dt5m!VB)@K zFO4=yy_1!>NND3R;&w#db&hom0v5beJLz?PcdTqMnYEW`_KiGQWY8_0Z=;M3YZgd~ z35Gcsl8JWNo!+<};9(E_ePFUYUWp4Ash z3(}_Ty%g|C;S@AfE3*{v1LY{6*MK94B<^o0{N{0Qel@w{rUGcjRxVWuANN#=p4*#x zSbQ;u2@gHon(;&YZ4x@!_%*nZ<={3pH_^BkyKHo-67aVuSnA<)_q*Frg=-#$j;42j zrNw8<2M@O2sIeS>e5hB<7Yd-Gv&u+*;b+k*n)mSC${VENREpRff1|O(-Bx{3?%S?f z?z>>vs<3Fl-`fNMWY3k_oMvB^7Cs6ll53k)Py^H}8|D(`rrcOwQcUOl+kTSN34w1>!beN0ih=*H(=()LpdjP(FalABKlVU zWQ{?Dv?99VEFgMj?j=MWZ$$$d{zcB)5^m~81&n2q`L*ZvDw&;*LYZCWN9)8WsT)?J zB0Foc3&A-v)G;Vyv3P8WZts$>`+UgMna&0^*Ho(hc8ZnkrnGG>&#MsMsJQ@RKJlq6 zyBd7vV!HiW_8;a(XVdWOa%sG<8?bu>`SglE{A#D%pOmOjotH7M2NO_&p6_K}9(H$( znJ3xN);|3Z`jN9&>Lny@Y*qj4*Y`=pU~2CPq4!DSSFJ@$rYX2$FQUNVLb`lI|L>+Q5dS zG#W#FW+i~IS1!w&ks*O6Vlf)ycEuif2_0(F_U~NN>!O1bMs}hLJ0rtm<*Pb%C|GQI zGum{HCL@<00Ipw2pbgL-n>gvdK4)O9xuj{i-z>DDS%y0jO4w8k@qShkvKZQQ=Yg~I zwON%)&r$OiSY_^!$H(!myj@utY3l2!*h^JO49Nn|7<G_+c@D)KWzzzGutfe@-c{ zFtM}o_WLHPy>49JFmr73)sTgJSaVT>5B_5?Ku8IGFl(?EN_P9OmA#p*XD_yk{wE!s zg!A58aSs39EmU?PQlAgp`5OULnJjBa+t@mqT>$r5T@Fa1x)%OGQ&U4jXdxUI;9tpG z^#Yzz?IvTF0lN(UBoWqz^@t7B$h+z!P%wpRb#tO8;N@BC6J{*O!|5uBi`w3?mLs`& z#6YWO2X@y5aJKWu3UL}>3*SAzTkKPck}gb?n`(%==Lbme?SXz>%hZMrC*(uN zr3wBt2@rY-^%uWSRAh=AYoc2QUCwghhYu|GB2Q)+qQttUah|r2b_*l9qIG>Feu^a& zcrBy66KL; z-gjtRp&e$Q5f!!)WOnhBA+poItl5WK><~yj$6~@Q>}Gf{s~wH6ny0e9C^5H~crf;G zRv{<$r!q1REG9v9b3Y;R<4#WR$b^-ahTk^XLp-~sRmb+?Pd6F+gNmRbLj6UUVX;u= z@e9IJZ$n;-#W+D4$=UM4w3UXgRPG;c>FWkWa?8|)acCrrG59*n2Tcd|Xb~NxMk^~y zk3~Fu3hy`>3W&q$PuQS6o1k4Dj!J$+Jx6-qR|yHBwf3#1JCnX+`Fyi^Pcb;Y=fQjZ zQ`H}QqNQY2Wc*hczqt5!e|hAcBxl4OLbtkSen`QPek|_QJW<-a@3AWmd&wCzs3k9N zIgaDUe!R<9Y2w`e+zLwbV*aADF8or1)Xu4`pa0EM>-Q(7QVFjb0&e-xatI(Yf4L{3;ujj0zMiN7|v3REA5W} zNMhOuw*cE=9Bj)gUCD#xRpg|{6K-%Hl5&YDl?&%sX7A2K<EK6-^#>I_4s;l?3>+ z2s|RzW6Ob*qKv6ON_tDa`HLYXZ{&*5U=DpB(n2E>!P~J`BM=A#m9dB2$=IyBsTl>y z9<`1iOsn0=QS@ILw{KqO*=S9{RD$IBb{w(nN77bTI@XaLRwpdK^8PwoDDPjskG@r897k8ysKDq*b{$)+0<`N6!-K zbWfH_S4&$bh|hKsMikaff%4Vq?RfYnU|Z$=o9Oc;O{>daCTrwodr99e@A{pe#Htyo z#MHCXcoBFE9sdcYX$^-PRC|OuB+d!6m}UyUvOvuZ2?bwok}ENxIWpA z14~EMSNatY0hzJfr%M**wvu0lp0}O5Yn+ci8yvA)&1#(d1~vEXw5v4l^hj?FnB%X4 zZwm(Ae1!NcvW<(y>5j4I*MoD}%h4n|?0$TS+QXLFj|`-Lr7TcwJXOqRu3mls7{+^_ za(HJB(-EyR4apDwkQF2bOXhB$;@mibB8(n6@{NXk9y!SsC_ZXqXrrQ*-4-7zL(P;w}`O6C_?dL@9XtO(2v zA_S2fVb7%W(4(prU`FK+LqS8(FL?~XL%}^Crpj;(VC5msx-2rNSsp1B%Xi+KxHcc| z^+CZ_eD3$o1^Hvxi0Znind5Q(VPIqf@v0_VI}!$>P#P{*12JR-e4>P!kr!0qsc@1I zjzke3uZej`Zn?~_QJZ`BR|qlpgQWPyP1K#O5ir;u8r+~tw7W=(|NX!RrB%9o#c`qO z9f%Ww$21c992;Ch{@z`{ylVg6?sz}s!b37owyo@`xR5Aa;l0(-9K|}-54SDG75!7& zJeNqxCmht8o57HAQ|@nMTi(00u)pZF9glXmyy#L_y7A8O<+j7k3-z7SG`73vMp?_? zv9rGnJBZKd5YIKj3tFa1P7xpL6?UZ0!h_x)C`@%Nz_Ym5*=&8Qsat zug!|O4DDDr-&Cqy@MH~k!UYBe78j?XVpvS=qg~T;DR#?yJ^(f0MlcRC*lsGJ^RiJ&k)OjG7HU?aQGW^*hnx|EhQ5~*3WUz z$F^Pfi}a?h{_QzrtVv?_zj(eE@#KJBvzG3k%27HvD(BF4e8R9Ud>Q0qn^ND~)5CjR zcrWYA3{7SgzAD8Yg+|%dJ`Gi>y79_D30Dn|D3?zcG&enZWN6UL{Pk;IZeE48Uq12H z^x?X@gb)lbZ^=Q5v*G2a0nsLCT)X-tGCPHy-Krry=V>GlJ`+#Q{E9KeP{09O$L*gw zL#in$;)M9jF@Ir0kMp!es5w!_+6VDgx`P+OaE@3W;;+hdSqN^XwybIj@AZb z?mg{!e1m+rF1YDt)6&Y+cbYcw{{Yn&OD4%jj{lEzUo1dUV3708omuXvJ?(ErB8ZH~ zkphsi7~p+;jm%YQj7WgVcE<#BP=$x?Kl1H>MUwjJ3<3`9<2&}sL;`7Znm4>DD@g{Y z{&1Tf*=MNzc!$`3!Mc?67HRt6J-|c3tW;0oaNKatbCc8BhFOozOHPRF^u+04Lnsp$FWj%@4Ir4Z(ko`-N{J%p|k#u|+x0o|)<#Nh>g*1%y L&GqVZUE=-^HyYM< literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear5.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear5.png new file mode 100644 index 0000000000000000000000000000000000000000..417af6c61166c727b9ab50cdd14a498c68744e0d GIT binary patch literal 77056 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 NziqdsJ&+yE=yzftZ#5;QXZo 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 S-AwW`#1E{fu22Os|L{NMEB7e? literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear6.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear6.png new file mode 100644 index 0000000000000000000000000000000000000000..5cec7a105d569aa2f9d4b37f709496b29eb96e2a GIT binary patch literal 78392 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

3s~@flweDA35(#PV^FB#0ww8-D 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

qC|Je@A{CPaWgAH#&us)?C)p`xW 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Ɛ$)7cJ87~{#3|_#o2xOh1UuK?bBmXyMpDjq6-3zT?WMe9&2jV@xa8^EsbHy zdl6^hx6-&8qE#u`q61vqt0>R4Nq)Go$B==U$1p6l?&G`I;1#EU-je=&|r1vn!!= zlQ^hUL$gip`cl;=5t2h_b$e~f;F`DIJ#6b?6Ex}614?7*)Kn!QEfAE3`&)1p=`63+NQ(%@}w+G>B=SG&&j-GaPj_uW zc!)kTO+Y(G?}Q~0n9aZmdhA@QGw}=NMl57lA}*@uVvJ>_itfdo_;@5G8i!#XNv)O@ z(5|@f>+SS)7-EE>WnzG}2)t`rF4n=ZEPQKoh32f`S6DdnOT@=)Ug|21A8gOhqQh9C-Je`YTQom73jy~Za|ME4< zE$U%&ndMgHOjR~hl5WHCUj8l~bw6#M>;tzV`htqKMoiLqT>i(fmdj%dCkH;+x+5Ij zYAV}t(I;_b1MQ%7;TTWndUcH#D{-Ni&<&*LqGm`aBqiKN zz%k1%HkOp|ZTB>M%bGG!&Yd=u!p|+?3H*9`TwRO8yQXP1y@$acx9;1ONQl#Cy>XIS zyY|DZ8n@?XdA1k`?-HgSe^BHRoIIPg$Hx#zjr#S?#$A$d^G@ERo?1#wi{9u~qpCP| zR+#>5WinD@@W;Ak2s18i_xRFwd|&vMsG;9TPr<57SCkAZYva|h1&Vs=u_t{eAc~&&&+a9j&CNJ#Dy{wm*&TFc*9D)+1_46%kjWc(TV9O6# zFNa*%saU}tT`QO>Uj#<@iJrLit$vmEjZwvzj+KsouHVAlpu8E_I=A-*R$jPZ%=m0s zzBcOiX{(=gFFY1&EbK=CTQ%cPO!?p|Y&pFViHVsKZ1{&+`k2C^E?vx_02&v*X1zH6 z{|VU@7fvKm`bcSMsW=vF*`PitSsbWSrXgHC^jTb-t$+MC>(tFk(V09KFHa}9SukXB z{!%KgMViE|O&KpZ=25?-wvP{--AxM|`6(r8vZi9)QYhkX8g~hdEtncl=EOJZguyk- z3azx#h^iIgVrvV2`&o1x@~C@lBXCf=x=&f7SF6+B#l5S>exKD~#G#jODcITT=c(O` zx`DmlT0c9DV=Z$(n1{IN!^$>8egnJrR~GlO)~x%uSRLjLn}PQ?Y{Z!hYmt z2^aA@Di$@3UdALB-1_?Fcs3c1@|8@hCE5~Kf)3%Am%mnesgE;7E7ydJo9NP$j70cf zHrBwhDn2dyqKGjxb_GYzAF^mYr|htQ?FIaEmCK;(ZFoc9`e;9)yRxvKHD=wP+2x0+ z1190qJ$n&wa|3i{olyZh%bdr;+-G&7B$bE4Lfa>WC5L2n>UfLt;H!iBR03mkHzp$uN8(>^;YV)*&3_` zH|M|s?D<2V0rXv1!1oWC zVcjr#EHV^k1uPX8rXy2aSYq1fYQ)F*A@HL9qOgP_!p*MTX#k3qY;M?-j?L#!<$C#J zJB{fo)alaUkcGI!ieGXw)Ho*;B|SXhSgomH%lc%LsH%vbN@_M%nDlXXHD;SBi(*~Z zugF)>q;+`}HLK|7Ti6=W;d}AXH;WM!#>@8cq+%U!6lcD$fq>wEJQ;1~a^?M-v@lkk zhzQ+_l}nZ($x4TI<;>;S=Wi0L_SHI|&(zL_t(+4Wpv5NxX5h77mcsA)-{RiUM_9Be z#xG90#uQ^_5Kx)fYg2`V9?Rn$Tg?Y7aXNXB&BcXEuXr!1sS!979Bgq2f<2M8BU++W zIkhJw&SvCEc<##G`V{72u@qs%b-XklL0AM36l*G$RMts&Qf8lFZ8AKIXA&0=m#h;G zR9wY-9h^*4k&}b+b|pefNh(~VWu!-9+fjY`VNS6#`x!b-1`^^Q?HOprO&FDA z5|?sCO_?`&LcnRHn@w*n>8`KYWC`x#yE!$i+{ke%YO;mq7K??VDH=%8s|)*ZyGHQ z+;biaJr+4h(#lvWF0|Gh)aMCc-na2G4h^}5lPfJBci{kC(-)sbrLy`-VB}JWAKWhJ zGevTOz1h!56?a(3HC`_dM<;$ws`8WcR48VpDZdZFF6=Ur&Eg0?o|bpbJW7^=laon| zq7p4jpvVtc)UsilVes;{&B6VoxHFi!W(~G1+H2VJ_(0?AVm2tDVHYcxV-$~~(R2OL zsVbMw(EpKBxA$S;OY@XWubi;sw^R7#kd$x@!8eUFTrHwr19uFqTFyB8SDSDF0S8tp&vSyilbhk0aIX>*5q|5@ zX_@Td*|F%Efs{Nhnv@zBBt%$$j5qb$sv4@L`DYrVFt0>tJ@r^oSO#SN6 zI9UFh@{{O@J$QBY_c*f6`Xy2d5?;ePv&*(*ky1+7Ij>+k@UZby;Zd}uvdyUkUu{~2 zgFCXHU=k9Vjv2GQRm7h-xzxq1d0)cYv?992?Emu^2DO`jsVkP^>h-nad+9y<3^>8D z=tQ`b`VAUKeQmNdoqpjl1FE+||BD_AZ!9S+R>abN0uMY-08a+QWN0J1D~9 zf{esLT&T^SeI6yf)lwoE*x~P=<0X)bxtPQyDKQc;fsanvRcaNbnSOe3+@r&2xgsMS zTkZrab1;ZU(S~S0Vu3y3^3b~Ff}nd_FlE|@ zICE0pOMVhlL2J;#bI)9lMM!>X17iU=(h8$${_ zkaC>G%2+BcJn%dT9CzVh1zkzS%5i|qFCr2rcCv7&<+SNl8GTsO!SEF#!;eGruVpjW z@5kG$lASgw1WDnKt^ra^+&uPX-Mo;PysH_KeryfS2Qjp(r*5f=sMEnz?Kn%s_jGqR z-5^PM6ej1J+dpratHYyddW)n`TmMafBxE#}D z)nHCO`grT(4^ir9wdx=uoTLe{pK0fJv&`vt$B+9eDJ?Yah? zYxcs6UyROj`hd#a^8t9j@7w4y{5AY~@;K)+=}Q237IOm z?!u)Um6i8lSIYq1;;4v6Pf{!@dSy))g)ys|O5 zJtKqBbdwO8i=r(N(d9)vTc@JUhR2xYbokm|m^^ke_G}I;^n?6CR|14VHwdN18C9xP zM%4wdLQ&e=#_9HF6T=ztYwWWr@RoK@v}cevuZ+M4Cdp=^}q1!Q!gPZ^5GEx zj?Jw2`Vc<-XDw0^^=tB%Ez=FJ&UzoEEXbz`x^@q<2EL0*U6MwI|Cmh*OCFI^aiQnJS*^<1O-i^9|J#?8NlV$Gn|(PjEZrJc=DyZP>D$vL(&0&U9S5`{?i*!(x?7n97z1LT2?0Yz>Fr)6t}s?S{vch3fp*VbYY>ux;6eY+tXo z#Px%xh4-Q_y6E8O3y;#?O2y>7hM~77>O150*WZLsnWyzTg%`5(@+u7M@FH$p{cpkv zo$X&f_y^Nwzl*4FeeE~*qRsGD-`;4^{?SX3Uq2s#@txj6^N!Esv+X}3=hqOzyyq2u{a&IP{v@S7$*;{m)N`J%`9sYn10! zBUOjBTYpAmh(6VlUdyPuRZ+iDHry70E-f9gv8FmmUhdgBW%&!kW1U;|ftR=KhR0|} z0)jVV!i*VM{@ErZXE7(r7NHmL_qGGdpgM7OErpV-e34IZ%;xD~wJ__&3GnvrqU>V_ z>iCVnFlfL;EFLo(CyqoRT69BC9*f6^gFeFR-+zF_czp$O3d^LX_0fC!2<2Y9AI?qs zd(jcJt2Y77J9NXJM;9U{YM&xvDqQ~9!F{msR{j>=%4o6Y(f370hN*)lpdDl5*{5C0 zez-)ECE2l5RCk^XW>=`8F=IF7X4q{US&{wuDo?-A0hP>3(jO1telCHH}r#+qnfbAfTd z-LrTb3~W^aPfebV;`(}+3KUHL+d8~H?R9Xfg108Ug32|rKS3l$suvz!T`hgVBfsM1GS(<3io&;RhH#i&`WU7_+|PV5a90%ItFDJ|a&xu{y8GG2A(f!lulSn*o@-}ipT<~>#zjm<_ z;!_Ye|A1zL(Pu*TS8$|IA6LeY^onioSOV^DmaVc`kfb}hqGhj%@G6nB^>NbEbQn>s z1m5T~3LR??7apdmqI6!sLaq7((Y|d7cxcn%R<0_(nK%or8w^9UM)mRS zfPS&uXw>qcfq<5WX&p}v3>_WwH?06$yHt5J>!n{KsUWFP$rWGxGaGYXpN7fpTch8A z?&v?TANuz1h;C2UK&=`YgoJ9a{d5AxO@9u*?wN%c?JK6X@U>Q~tUocvWen?=cxT9(V_lSyaU>SGfq@nEWz4i!y|x=kDEq z@a@X^h&{bATUT7%sZIE5>3g^rvemGMa|62I``>1xbPhun`?dz*Ubub`lyHHlg!)e! zwrrocp08kFeQ|8FX&9JJ9+5@|Sx-#!-e~{MQcP$!2F`BQFO=EDw=$YPVcTO_BuN~S zcgB8#_;@ZoA`Yv)7y8w%4xdLST;&_=K=ql}22+3j0d4H`-sZg!4GtZN!^VwAad`hq zga&REf|7YwKj){|yR?E+vA5vrvr!1jayS;9WSm)V4boDLD&Df7=(FY!GrioK=v8S+p?mENP z!|5`jF+LdaoD%0(iHg{bFPDFY&GRNAKGZar{vdR5u?YC<6MX*1hlr0g)kpIx+73T2 znvJ@REU$oU4#OYceEf+JS{`CyNHitUyIKvUo>yVQ=h=@?r-~tE)nd|d;l4q3{%-qc zKfts>FTJsAS{OMuzTIF89OMQ@?Uc*;lM+BQzQ{?tvLs`3<84 zcW%Vu_o+)Tsn-O2b?BrJlp{EDz#u3o_mzp!IK$qx1Ds2I0=Kd|;9PPZ96ScW&ak?s zb;&?_n$b1o!K1LSLrg=(razz(t78Ab2OlU;KK$@Q<N$)37 zYxvtpb2UvEEexbPyP}?FQCzqY2yK$(b*P+*)Ii<3t&!%Exu~eNQav;&TN(Co3Ah^( zA;gzXbk1p5p#xs|czmYJC0isgBm;v641`W+s)W(I?$daFMn9{pFP~i~cF|F(*thH; zw#-|N4?p=8pD+3qYY+d8Yr)5m5O)I^Y4;Dxy9z;hN}SvAaQ2!32e%%=JER{| z^Q@-;^C)m)-G{Tj#)Uh~^fC@5S&W@SQ8cgE9bf&r0F4^v?uHrO=2dJwYbuBHOtVoa z{^C5tR^h{a?JRt=^G~E|GsV6iN=ctC7&~M#;-7eM#btW6aqB<8inG^{5Tg$hWfvxM zeBS?MO#Jy}!yeltG6v|;dLk~~Hf2#dI9I~&KWs;@f%!APh4oTzUx~u$b$bwU`2vpJ zy^GTki3p9ni=;SlzZq6_{SS6-LQvYm!L<|YU0RFnTrAd-L(-CuAS!@$#uPYSOasF( z1M`!aR+_sWisXUhBrHZdO!cSrRYPNp9T{U`8*kjiwQG+a?|2Z@w+SD-4p)yR%J!K% z{_xtdP^w|s-3%40^;Ng7kF*p`?zp>m42sz5^mK| zzP8UJlUA||L$Ms!;pE4Fz%=Y!?T25d{(|W}-o(?*$D-SS33%zd*_ggzA=aH-f!qG; zkraFKzrteYA-t0Aa4zw+KIB#W6D0&z5W+&zbzH&N2)z_F1zCo~@{pW(E`)Dp@*{^5 zIdaD}f+vW^$tDgiuD)3C($^UM#Za-CJy_iC`KR8%>XVC=?KX`Dqw)B8NOQJqP?+n& zEc|Jvu{W!+_ra2{mt*jF%a<|cO?K);JpP)!6#tw&iqJ&SJBz}FB0G1udDcSl zqQ2->!56(>oP-YjDk}n+8*W}pK);^jaVzK_!yce{?Llbzdd`Y^+7d1icd_C78MyAB z^;j4y?@sSC0TJD&81_7z65GGWcK_2jc4CK;Qf>(x41c%FD7>-yqg>9bnQ z7&irnlx2GF^Q7%uQLI=ClyLEci-VJB4sdaFgqxESJYAjP;pzfUPdB)`xglM=uCsGQ zs-1%ngE%C_#UeQ|0m;cpNKVlrIW+|_$;pUMNk*bB8QSzDq^2eyEj3=W7|V{S@K7Aw zItme?hr&>HKGdSIkfiW8kq~9PpV(vhPBa<_&O~KsEc-oSNtWbPTnMioP7AIm8pmAP ziZ)y{C5AQT$#M8@#}7G5!QHt&03%*}4vBFm;p|Z#?{w~m(B7{bUd@`AA6~;B$Nn(h zknZlyas1>~lrNXP;IvNoXZON{?|dWxH`cAj?a%-?YV6=(uYsGR9g27qM~fH6pkZqt zMQw8n|K8XRFX8Xge~Qmz$BJG{UA)tE5JG!RQ??5`MUSk*cWV|SF6xkB&x7HB{d+xL zMdZNu40|4p=cyeyc6=rFoZM-VG4%26fnOJVh1OlNHyJN4;jI{#0PI_K80WVCgQcgh zA~cMt{kGY;R!XqAwo<$ldzW^?h!l)xk`?iR{e+k*6#^J>VRkFmRp-L}qQ|IAr_kSQ z604FMabZY}Q_eXHkvW4*w_@;GaWTr4?}R@VFGbs@vw!pIM6d1nr>0=->0iWF1{&8J zgeNC_t<1!?1gF>t>|FRdF8GNapW()=S78V?9a@s>fm_4j%9Gyix6gi!4>tddv=mc@ zTEj*|(Baunl)7Dy3+{i;#GJi<8P~XZ7(<$lLCJ~V8n&{=%~&oohqm zB${I#Xq=ybohEy=@(O~O+by9>QIZQNE{rd-dM0a3F*||>nc*>smC22`@E@?NQc^V5 zQQ<%d<6x|z@8IaGt_beTNu!! zrQ-Vcld$!i5Pwq{^#9PZ+AuVJXOUscGCcjy;q;Dq*l}#PGGFRJlqlT^KY#HVIt;Sj zJcAXM9aO+VQqkpKCYIg|Ybz|c z2VTMIrJut8_6EbA|I)bfP_%sa2g8=-c-*;!gX`zu;F-U~)_wD3#3lQDtC9G6%iKq% zsArcL(J?-GJ_BL5BM^5t0C)XwBPci+;gJ!Dj1ECmLKLEsqLGlI7m@$e&Uye04ca@^ z6JA1P*f~@bk6bUOl6cO0pb#4R0w7&?6_Nh^4O`0C3VSOw2uvwuh=2pBQe5(YoXm4E zhbM)B1$KiN4r9=Xo{N$alps!J)d)K@>TTg%6*E|##nrwnHXpnIoi+&3aY=Y8Jp##f z^(DS7A)!`Vw2nB96ZevkrVCf*L|h5Igq`cJqDI;Js8lNli*{QP>iX*U{=^%<{(-QN z?S{Q3BEqiXc!&;>SC6A{;88eultxN18<~!sOLRp_qD4kLPTq-xj>h%@G%Vi~UM;yO zRrW|J>W!-9YT(kTt4P*nE-zA~cq_d6(#xpX)Kus+x9~hJ9{ny}|MqLF`Rh|`-Ln{n z&#uLVn>%qc_#lF#&LS#a|6TMm#UC+#EIbL$R%iJW=i=|e(PJ>|UE9Ilxq%Rtio(-i zU#&`xiyUvsBdl?i^5ig2oUzM$qA{++*d}75FJRM^ z<48`*SxB?na}Ck6I&%f=l=%_AUkifA*}eJ~EhK5kER1T}1kUb;`b+64xO`_FhQB-o zi{JhmDFt+C(KGvf+7i6>`*K8tK5P}wbR@-{!R0G|;j_?lkXwD<*PF z?kBgNi;C*Ka5RIB<1b3kAyQWim7-lxuXFZmLNQY3TeT5ZuRjc3N{|q%yD00Rh5Hjd z#EX{cBFlz2)$V{+aeg>2zDG*3eh^ukdT=@ZbapX({-O(X7IY#t~4e8GriAadMj#WDQ6VISgSAF-OLA|y}1!L73plVNZwIvGyIUKS$KQ+O&Z^)uBq41MM( zJS}+$+L)!#X^oX3IDpRyWDJMVg=D8#4(8_()-b2E2y{1DMu8`cdE|^|D&9+I@O~UV zll@A`D$UxKLjQ*C#4~ZzWh7wprQ0aJO+SO*QaDE@Y4{wx-nKow%XBsD6<;vr29_TB z8KWmn#_QduVe^ki^3;=IcF>;XNAPU77cgVvAEKvgs-Da>UnY+F5nFctj5j~-iT!7n zVata7=+fW?xVkk};_rIWkr;atC$6r+XB!q^^{3;Z`F#f5?&-_c6gF7irCINn;p>|@ z-09#{T6i?sD|q=JQgx<`tLEjaqxpHEK3Rs%!Sb1{{NFt4YS47$-!oSBJmTZ8;i&&< zTs(6Q#jhNNueT3UymDUCtRP4!=7W}q$FUp!%Gen3C{hnCYc)h-wdTrpPH;T64@ZwN zIY>NrtBL7@N1|a@>z1cyXXN9Lm*Q5azG$hFTWz?Bzm=lZr;}%h4v}LK=D6gOTU_YT zAuVZ_IB@Z>v(H^=8!l~}6ggi!DjLH7LB$R*dmWk9K9*P)Yl{m*VI0h7bw$P= z_^64E2}H#VdvqMm@?+V@%S(gwn`zj0LEOL@$q0*zMoV27QX6Eq+Afe(=?OHb-3X;3 z)bNunp6;oyWcafxz`Z$7e` zfT}yG!nx)+idOh=OgZH;EEf*m!KT@NV)kdhVAg^^@b86nNJ-+gt;fZq0mii+g1Kwv zqG1bfxKf($gF?gK|74%$7(RM1>bllMREPt@buPkyg(w2aaFRAD09QlK;`mA7eVsar zYOZcbEnCI#DYlQcazj)Nyo&RIm&H~pe9JdMo!YISEmu?jh8(cxhYt`M!_Na6RC)>@ z{PYf-ova&nVu_UR|5`52g+AQcx_U?S>N^pqFI^DVR;aj0V#P(`ri8>K4<{q_E>h!u zg*M`S(V26FgGXPnH+O=Zp}UO4C}Y_idM-yqV`z*^yRvup@H}`)uE}jGvI_q(M_-vO z#LD(D@v}8{;@AlTpTR>Q%zSzp zZUp(mKl&bGlLCdObxZ8MFV-eLuV#f#nDOFxbequjfuiy#;zfV!*rrR^vg9YMx^^8A zq5J>yH@E^|rBbahpzkOoH8+I}Mun-1n0VuUZFoFs45JCVoD=R5|`Go((Z=$Sa6$JrMT){DAK_%`;4h z)xfF5hj4JUen_rxlPbKFeMpV}3u)Tp;xIYGsn|P8wPb6M8ovh7!7~k8%0NEj=`0Pw z9tTqt^&tRBo?tC;Aq;^rBt~DB-A%6R%e$F^Q0F zo>vBZdo=5hs^h;$x_!>GitL0KIPLrmtNz`B;HYy*Pcy7np9kd~`F*#s;;ZlR=Y>m%jyfoe96M+x>>VqjYr}!4{NnqDJ+_T|@O3QydMXCB zDh;>(mRH2SpCg}+!>OBVl;_nd^~2Wfi&5Iwx^tWU{mTy{CQm{_ETb)U=<>u6RDZ=Z zFDGuv+gNsNg)%XcV`eTTzEUa#|G%SnDGBSLi{B_V^pzCsotwb1*c;F|<}7snAheMm zA}+$XqAkNqUIw)?yil!0 z&a!o?HY$tT+b`f;;02|p7!aeu(`k`NsF{n^8SOMktJ(;)x(r79#+^|;#Tf~9zR=ng zL#j@=2oEbIo*jgnU%YgC3~kT~)1DuT39~1lM9JJ|cyTU}Z{=d>GNKE5ckB$!jdb|M zI3YPXP#hn9ry(Of2G@g*;O5>VsP|NVA@f$8IhY6NJd5K=4;K{E6hUJ3?9Y!Po+q|p z-QH!QqYx!duQ#T(e;S=e!PS6m%C>v478uaw86=lC&H8tJqCH%1 zUB>P3>!KHziqxdtN_gyHsn?G;DZ)$n7rN-#NQwCd=_#zfk_0>Zif}GI6OKh+63?wW z?<^%|A#^Fm1qbP=Ff7K@F~-7WrdS?hP0xkUd*O6^jwsW6;b<)DjVUAV&d#0~(q<5r zY+4KlC%!fN?B8}z$?ggb(cjb+tMtX-{x2c1PRjb5GNilMn@nZDGjm7 zS|ldKLz^5egojmQiS1l%qi#rl61;o4P0ojZ*iTuROtmqyOQ!-b7>-A$w>u19M8 zCh_w*XVHM@yg3z}00)l&Vk2j^;L&6t_D&0=Xq8lcy7M#`n?++<9|u0^GG%u2C051S z;=&K%2m-qxTyyw83yGEVX@@z32VumwFL5(Rd^7w@e6aZ^q^AanzvznIO?#o@^9zvf zkj=r1Y@$ik!Z|ub^m{_!m=FQ`gfM6lBax99gA4I@5R#$6`3tuZA0>>s_+H%`jKb{I zU!t7os9NRdW`nrsB+MN775+SPK>vLNo}R5R^4rWMW*#@(uAapF1+PGxa6ugOBADLg zIlQy>GsCOa;q0Cp7&G-FTw^JGLFuwjW7L3&h;R5{@2J#V}w_k{jyM&l93vKm^(d@nx^On z|BoxJaRxT4B6Eg*HfFm@a)PzRV9r^p(!GNQu|VbP((2*2})s5=HsJz z?b@MJ?E#qg_m?Q2O<`fLI8b=<0l6Id@hs+w8pWMZrc7DG9-vC8$3Gl%Y3na~VG)$_ zX@#y6jVlmZ1umww;_ErM;jgb($7F%A4eC5pSV&l}*D1n zmHAk|hcQl;Cf0W$Qd4pE>M<;PV-7cSgl~CgygXzmJiPQ}JQ$i-a_%xbPd%)RO5Wpe zc@2)Ax~qttSJAeZv0yfQvRMX6;34G+Vkd5sl&Ft|(f&!IKBhyA?V=GZfZ|_UgHC$R8hV+>M0jqsn%%67A9a>G2k2E7I#t z8}JpzG-;$PTdkstStvy23-Qc$BQzSv8gMH58eB^M3HNgQ;p($ah{m^K->Y!&940)G zNs4$ldoL8PtrcQ&K(uXQ-}^#P=&j|CpqP`EV(4V(p{P(?=(*4~$#7UckQd@Y*fZdX zCNONu~ zUMnvSPTr1vT0)vO)4KVzL-%_wk~}7_#D$VUFNJpt2Uj?KnHd`FPAJ}sRvU?BXHH|| z7y7vfIlP4ji5J;T{g~FFkV^#SX7kw(|qd%UE?g94U!c;O5yBFHL(3WwW_x zjaphe}ZeUrYG#w-I3Or#vs1z5@YmwrTPvn)j5S~Euu@`zT>`Ln`o**jx z7~c5tPlVq!OHs@wPYtY#u^opQ!(%ZK`>=8UKX45*Rzl5N_AJGX>j%W&cgJ&$+o0=^ z%#*-^!o&|3(#m-e4`S8K)%bbsB5XKu9gSTbFlf$nrQ}OaIkfI9mfZ}6HsQRo%@9n_ zcHMJ48L=>+(Iw&U^Jfi)A871b9(`Z$r996qY2qsW^`&pH=$NUBLq*^2XffeaWLQ|4 z`$0tanu?bOPezeqri?LWI3Y`w(=OV*m`9NNZi@Ep0 zu@`zT>_Kob5=CG*;C4H33nmSELwR#faB>7b`1LiktT{G|*mnLGgtpM4X{zdi{6K;g7hm}tm3(_Cp*)53WTZrWAR4nD zW$CM&z`=Y&3NoQ-Va0ZK?-;7*3pq76l5CKd;zHO%;2lEmg|lMmPB1jaI@rqD*Xfe6 z`NDQAos#p(eI9PW*FSv@-_nK}S{ZTJbZ!r{zfIR~=Mib!en7~*{fgH#wsl)HZ~osw z{MJqFP{Oe^e!3QfH|Nj7i0-4YWZZk0JNiW&%n*k`oPjEpGSIzpE41jDyEWanE!mGh zF8Lc4tYUbm73%kXL3#eTVwaJQO=nJubFOy{eM>xnejf~1p68bBOZVf`4I2>_tY0#M z3(id#JPGj?tyfu@pVfQD59n6!S=ebzGt^TP{zh`>^TJSOTI@<<0cl!&QilQB8Hx+T zVloXmAIWQR;YsAlWRHOsk0ls5_QExNX$=&CNlFU9yQ`Pu(%wviaM_|xLoa+faU9%> zvZR?%wbT&&eEeTH|Fb~Zwl?%yR$RU&eqjR2c(*~1w@czL!J{}%%{jm*LN5sS(BQ4!thLi9b1OPXm3<;k>mq;QCsXm zP-N8J0*6_7_j90yH82!QkdhpTLkB}KVst+^Ips|AYPGC}^rQYb6c7xqm%`doX96P7 zvP?Ck`BXH#%R1Qq{W*4C_(%L2Crs`#0s|(rdguVMqa)C?Un{h4+8n;Yu?Vp9Mrg=+ z-1R?<>o=1Slu{faJO332!5bComsM(pWta8e?8N+kR_M#T3rdyhgr*ZdQx-~loQc@6 z1gCC^V<+$^(iC%ln**;BxvSgecRmX5zVSW|U)&@vR;@V4o*3SI2%LxKttV_>voTsU z>;V6>H;|CT%J3vZcrRCw8vnPrz8s-(rugJ_pRn+vj9W!7RVPqVNI2htGn>s99o4JKb?io2YrO=*RwZP#1j0!uU-Xh0#k9t-_n%8$d)aUQlzA^{kX!A*seQ_ zw(9#WEz8$Ih03{0w+;@{;p3Oy#-8)r#K$IyPj*1ZTD?(h+^2?jF{ zNf|#fk`b@WkWUJJ25HIqiLsLZ!jM=RvoK6hrOiDTDJ=O!et9m$+B=Yp81qd0W)6prt_ zjB3@}3Pb5;(dVxHaw~q=xdEwKea)Df<-4N7_*qmLW&3f(^Yp*id3cSodZos}2k%XK z9rd29Ya#{t=?{ za9eav47W~34AK&}3V}HwPOm#Ojx6E#c%SF&kQ)C7k`wivECG9IRAR0H&YOcLm7QEk zK9HYRCGQS;DeOgX?hD;iT7Q z85aYu;lieUh~*Gu7SLDS zYO_zsJsm!KW*U~A-eF8RE?>F_x=ou?V3SXEO*>%d2S1@-!)M{(oH@mv<1yNZ8A!U< zU#aJXbPFz){{vE!j~kvT(5^6A!h<6-#qyc_?(&#tkEwHCxGLOo(Tu+Ay^tLk|J+Lm z)K@Oa5p9Mv!{;xKMA`DD`3`4puf@gL(+pcV!*Sno1P5_3JD^_a8fe%c_wz^GT!6Mu z6~Xl1Uc%pdf5)=b`%$51KZ{nVT=&HW?D3~g>+hMerJ5qP{RrjxRJS4C(py{17Cq}*`A_T zk~!BsBQ+Q)F>{a@+zYyx@5HvcZ1?{k9B)a_{QJ4VOfinL&|}FIFO%dg`7JKA1U$h! z(HzjHt4f!Z>B%e+YaDF2aQiQe?KMSNi$14xf2k`z9Xb%DeD!PXbCTVjOTXd5+;^4j zobcDNQ^r)^c1;@Q$ZL5R{H*dmK)0vt(6f_Wmf2&RIlg=UM#M(yOX_p2_JQ?lKh_f_ zRXhSNBQWNg@|@*up6b;zN9&+nIu(K0lV2CYaulg4ycB^l-cRG1*S>!VaIPD|#zpZ_mgs*JaoDk0NL;b6Y%xv*0!#U&pp zh+wT69^(n8bTB=cR)UN8&`K)dG0w2vbAAb?KJzJJ8A!_^13wsu_q%n5m$$woI!mJL zJ+}yFzt7nK?X6H#n&X0vf8e%X!KH|F#!$DNFm8=*_& zbSb8LS4Eokd%vIxaa1* zfay=Qfv1;#4Hyc{fs=D^a`9|sJ3AEjG|fXuPCkdGPxi&so-=Xda%_&X+;Ymf(_4|0 zWD++=Cug|cJe22^32cE&0lZA~2D4fTUlhw`ozH#i{P6MnA7I__e~qCq?~+|GYSM>D zC}X`c{dqx5^IoVk{&OLSx1miDf|9CJI%Dj$>%?;kO;U0qbSWW7iCc-Jkg-U**B82& z1yD-mKc=K6W*To{kBiX}c1`7YO97Cd*<$y@6U|1GtTw_6qLyf!te{CtOU8wpXW)_E zQW)}bIhq4Pn)Gc0yCauzEJWOZ+F&6t>9`ws5SqXY_%^eA4gMMpp2Wq&`;exr=OM0G z-94PTeFCf3o`&|QKPonBjH1Qzr^I-CSTPh$4#K4{d!!0Ok`Q|x2XEhno!@EHwoA*j zp8Mkj#q-3$b%+S#a2+s27~3w-Snj!O{pA!s{dNuxo?})RFE^k>$xayi!n=sCWZTOR zYZIdpaA^;Id8f(!At1H;#d}J*ODH%@@u&DOl{r1-tWtqFUAtQ;?x?XZ4LglKWxueK zk$MLyu|J!aec_1he$hCt%bS(qG2@Gpyr&?=Mdd*P!*Chza*k+dbh;QEJ97%4jHh>yLd%msPA|1i{T&;H1x;f1zt-adS^a1qX4 z*&xmvJG8QGnmz1&FzbWS z5k^T=`y$B)Y*Ad)3xEQ{B2LOMtyX&v2M?V>y(fmCY86LCEV7G6V~6H_IwS7j8Jr2z zB3&1uh(l1wQDj_?McLM!4DWn2>7K<=r|VEu7oFaKXmNM*h7~dL3?T4X!8ND}>T^yb4(YQlfB%Zv4^P;z}FP9<& zChR2Au7so9lZN7#7U25ClW6etaCGpg3eRL01SUBkH6;WcfZ5f zcW#d|dD7LrGNw)&{m4+{`ThQw^}@TDcVG`9L-*=;+IgaN&A#X|bvBYqme=pIK~f`w zu=<@AIK2A@!yW~CE9{Z47LBD%C@dU=;@}a(K}_@Kg-xNMN5fg_EZ3m+F3f~R4V|Tk z>ox%C$$OzoSb>bx>*D%xgvNn4n(b#FCP#cOeuFXdhhB<0e#?wh#y%hafk+#}R>Xy< z9*in5>Na~{qALXrOZ3Ml-^8h1*U_YXf0QXLu6yx9c5(G|Myp<3kbe9MPKVnmg1|o) z9B~G^3xO!#E_=lZQ_5C{SF4_QvT6gQ1SKLUMs%1m(vXmF13M4DIS@C$B1If z%u{u|g{s5-l6=J0#6@l90z-F};=+6&4R3((*ekfS{~j7V*#o}WT=h}K$;AO}hjxS0 zsXI6xmX4HUcKR}KFX}v^PFzOyw%w3n!P@BN=t`79xwgGfDj*8iLn$!HNKW<_0&@)& z-0PrL<1#rKFUl^y72MHxR1Z{0uYwboqmhurdn`j4^uHK%4gP+2@T3sHP(6A$?_h_`@-nfH|l+#E}{0Awq%f$1O zLfG$#&XPUs?CB8Y!$tiFQWG{KF?P3MOR*bVi<-ZY$BV~?5fJW|tbwQ!IjmgA-cTdLG~WF&~X{vAhO<{?9Kj#>{^wuAOehY1B)^5r^F{{7Fik;sm3yBeTkCvGG(QFJFSKlfNSy{@x;8aY1_Cu^awGL@I zeb1e+oXAtPnxJvtDOO#dBtNj%CSv7>V-OmmU(cRUG~7LkEAt$5x9Fdc`oMgLSRor z^l*!@3fYj86J({9?ygLqDjX_ePzSMc5@HoyM zIgTbJ$|Iv}_KP99)NO_u(eXHcN7w^l8OoP^k(8RT^^+%faIMNcI(EPHe#jBIG$7_nl(P(x%+4C}bFwJU?#rzcu z(5No=p(I7X+k-_oHYm{>L#U_A)4<`ksa)U$IqjA^bwT0aSruN{<>M8z!2Wz&N5w^)dMV z&xL51%LvcWo&FdpA2cxN&K!gq*+tnbvh zcr?I>hV|k8%$G=YrHv^Zcpl#Zw~$LnPl*#(j0UM*6_Hx0krL|5?zze@94_rgxDfbX zj%-kR{${A&$}!P6P{c76iVEEsdKmOL_z%?gnR_eQLA}|jxNHv!pP35{A1OAf=&&)0 zz*5b8FF%8y`OvFYBhH0`aMv{&(HzUd-l>|n{;R;wsfzNb5uL8=icUsq2qJFj%Q^{o zOqkU0y=YwLn4(NErV!`!I7xDWEsG1Gb$F1#(1Uq^z>LPcKNg{BE+afQuEgNw5wGKb zpAeV~j)@BFil9@So~So|7IdDB7G#ZE@HO1o@D(;*_Cr!!roq_?EIls<&coW67JJ_Zmfl_Y=JnT6$Gz*myxuaMZ^6 zGra#)0pd*EMxxQv;XRwBccVfN$4)eR2QMKym0<7aD?FZ3;uDIC{i4|$njJNbAInM5 zmyr-E?nOiC9s$FD%-3c}j0cyZ%;QFHMv6-TU~7xBL;wIX97#k$RO{kGvL!H$s*S=o zzb{6s#@v&0BEnNKbLbmber6X^wY=APg*u{Mm0svEEz$#F^W^yVS@FA-7VZv1c)W-tE)TEhZM6qpfB zJEG{AIfW)fX6ty|JcE>jKjF9Y=WzEf=k^&JRVZ-)sAfqGS%oT*?%G0`==O zg`-yqL;ra=NEU7ZCpy8=9?z&)4Udy{~+#PRcLtsQ5@KKAF6^wu`w5%`@I~BjoP@)dzX`JZ6hTV=@9miFCyoLQE-$<0jElSj2^7OJJ&%8-(wcEknB&;*Q|I z%ps}b(%tyo9!y`b7DYiekdMcM#u+9WsuAq>7IWz7~qL?|+3YanU$_bPv)~dA|T-JHCx? z)=jr~evD3h-uhJ`IJ@dSwCp+@Jtysb_dA>K7jRK6u?Zqp?Y$~UTYD?DcTqu&($=WG zY9t6Tx==gzXpJhdirAZ?rBx(mRqZW!)6e&M|BCm`FS)N=x$gUU&bZG$$JJi;K_%HL zO(>0DvK>9|pm96YHJMr3>6>y;kPQpzoArsJVywqcbuZ;JsnPi}R*&+lU0V<8rq`@Y zedHN71xP@jg|O(RkD2+2!+buu6CbztRmHs^xeBMk5QU1xj8JH+)rgi3GqJnaLLm~E z=l2b4Cd+2KB(Jg$vr>Mp$t5)U9am(^rH_Qb;W%kpZ__tDF-5n84e;tg1vcW+$^v&` zxH|v!AEPE-e$PjBS>x7E=5K|aoSj1#8=2UCBhCy1wuG(fICG!OGT)zQl=NXlBf>89}Gnx5sjGmY&fbA!EN zbn19GqD@Iim--bf(n_yX!@^>q3k%;;)91v!GNpha$ zEz8|Is9o51u8fmES%^Tz4C8{ppUM~HH=~bvv^WY_wMT%ti7QO1tf*XgHEo`@dwzry zx;l{i;G7V+(zJ{#%2tV2ii{v@UnFK=ubzYonvcccJIVCbV9rOZeb+IMIIFB^oCHlw zYGFQ2+=tvI?&h7rsq1CuQ@!7Z;kwLRhkhqbiWFXohCmpX0^wh4*Cee{=n@8mCW zenYGH@s+mtcs!}aRa2aKTKxY7+E55pXk?J4BX+mx$qwo4ZJJcCDE6 z>9r??Wo6NY0IDni-Sw0YqS8R7&nD)#Idw!N$#r1NtXQg1J4fimD^jyZ^=?|S0P6O* ztcL<8rY1gBer%f7)(Ihd;S2R2DfI&@3D%#+ulp{0AE9~e%Dj9o!+VE<)R#9LL| zV*BY=sMkybIN<#&(DVnT)ei)=_AhlH)|li@DdQLyA2H&TqluE=n#T&vQ8-w9VpH-* z`=9vF1ycDdszdP3D_ik1n)gZU3Q#vX??BIFlYJXj6Eq&kp4=Z9(b4ewoE{X+C}O*z zA?UtILBl2c4*EShT3w1LAgo2Zpg?BC3vou~x9XCTHk~R(fRT&8YLB9C#*jMC2XW|? zkO}k@FD?#3nxjb~br`KdvgF)DE$97}}VVV!hq-Xb{e!nd=S zOrd52D>H`~l(A7tmYkOP{8u%sHbm`XEIf#rNk!Np(x|w!PxW;{v+X4zp|AN zov0#fLg=X!2d0@Z{o^G(BR;&${PUfP#7A@aZbypAZTnU@!&`k?hxHzgv(54;_mX`~ zyyvCaTju|yJb&bwpmjCe{b4cZn2M@e=IFi1Eiuh=!+Hy}&$|=KiHy$fKd+X=H(Yc- zdr@6|7_n8ES2&&0ZFVn5%XEp^)N4-QwGu;BmmQ|rTz($x74^1i4_~f0Qkk%P4sjzm?_R)HR^3#ycuFAJT=?-B| z=%qBrJjBmNl*%3bb)xPbLEY>!y1?`?*X;2WNJ%UB@+#h0ow_xE5WoK@xhG}&u+vR! zp|_l!JuM@(Tn9@w{3qFgqRT;F(^+&gV#0bO=dDoi-`)KAM=qwEHRh^x|~+W z(XyJo;!K9~PFzYlpKQ?R&+b(Wo!^-`ICG5WDkYS`$G3YUruy);lqEEg@{2UXcWRi* zZ7*8MkDVlT3|mU2e;>1XyTr}_vY{XZ311(d=nGb2H%WXYfb`eS~*Fbz!7Go+C`Tg8cnTSwTk4ssgxGAr~OSpAcL!L`I7K~F6anq6c~E!c$OOyKmlF_Y?&))_ zmlUu;;UI<4>-c{BcI}`FMZ{%#>Z>rO$3uag-DlG>CzXx3hnJndy9p1rk0QDK0!LYI z8qKJ*@Mhd5W^!WrLgrxoLrXhPHdR7_rP0rMMe!Uj?rvZs^QEP8jjYlg06nob96;b! zp$;~(AL1;^NUn8g$OWZMWh%nx0@zbtW9To{-UkDy-N^lN0JH~IOsHbv487j#*R&kt zKlzzVeH>@rMn%$wmmbnD%r2}i59TQAnO;}fTjckU$Y{rX5Iy%P8bpdXe^>wMN8 z|Do?&jGya|Z(PxbI`3S5Gt0nF=MscDY-_H2UPvxgUHL<2TAZ9dJqhyJwR_wgygWP`al_mwhKqs~ z&?Ep}=s&up2D7&0)G)dFU_tDJCHV^5yCf*7$qXuiR0s%R)q7<-2(&f|R5=h`J1)C~^#+?tfn$;5b*xMDu$p zAgJL`U-rsHLZ_Z zR`fSS-px~I28M_bq#G1lGXKL5+`{gplS9M=9y>Pu6w6)wrPt)<=O+A<*L8B|SgvS{p_CY?$)X{yJA9U&3W9>U9Fu)f^*)6ifdO_B9o9PsTviTdY)z*u> zIeP4j*Ncsf*L#f3&DC($0H*svW&3k``aWquc|am&CuT5 zIqC+@wJXk>T-Ki+a&DF~{}ltby*Idwt9jb&z2}KF5RJ|cQ<`3 zZ96O+Ms{kqH?uz_551m)9jFP#fYXuVHT2z@IYal2gY3PprjzydQ0~o0=$TX zMQ33Yi&Y~r(GQw*%lBX7V?Qn@)$m!QbDD|njcPLj)5tw|qa9Pd8%}6^QkKN_m{Y4z zp{xBvJT*DOW2nfb{G;{BsQC-_tD?H650d}3$8nL}P|xZ%Za*SP(tTh!EZY`jKdyoM+&LN_d?u~rXu9~${y%&q;?W_Z6=lZP ztxwY)V=^y_<)6tiRTa30{hGVIr!!IJ&B#940y=Wc5mNqIHl8}}EnS(EXJ!JS-SZPr zlD~YQDG2|3#M`pygxb+~L4%Pb?1ML<-P;|DzlcqpD z7+-paEOj@0fiZp1R`4?mI`}8U#0X#l@Rm;LUR`aif-YF0M?%TxC8 zLr>C=JD>DYl|07|_n4umV%{G7PI_KysIid#fjh)ZPnYzE9GJ4bMUh&) zEm0X>;CC?g0i~UOy-~k!k>kY;HMKx*L2)q2F7TCcOset1Cj^&%-8u`?&`s-d?OD74Goh7CvGj_S1OV4#P z-)9H$x>9N`JF)PMCxf||1BX^NQ;o~E5#m^QEro2is%}81gl<2^LapFs*<-6I9i(0X z5a{=x@FACwT*a!#jM9UYm}zVLHe>uuPMS@uIdWQ!iE~z8{5hlUZIx$S88mi*o_tjJ zkzJlEXp5GX2z)NEI5yVagZ|*BHTHc*za$CK>?l+d7_C%NPH~=0?icap9MapOJ|RZ#t8erM(tY zb~a=*gP)0r=imcQ>Fw037gyWvL0P%tI5+OUeI`A6-iroy?v^w>BdZjaroql z+-L5~4*@Hp7CKFhpp|G`=>e%ly>j@QP zdlebL`)V>e|Lz!*alE?zpfLyzhe;#ap*4ov1s~nD_5a{)Z(M+tQE5yLTIU6ai-VDm zNrsc|`tx6teFTciv4ZN1QiOi`scB}xdd@0pg`RX#itc);aBkGo z>^BrUuw-?uwe_y!(8g)m&sPba@4C#~=7CfpSIRLnf{Dsut%nse}>=|bJ+P|AqTV{b8K65K$7x~_U`Dn$yvK93K>d^|nl@onKhCe$=- ziD=l${hbO+vd?$rbXG#<2b)^kV+~zgAiV)xNR-73!Ki2;>y5}QRu%w&%D{Ik!NhuFY7=4AOw&;&)oW8vdl5rHlhT`Q#kyFz zB1;nrbpMrUqFLBY4Y4$_yxiK`rgL7Wdf`%a)2fybww#{P=*)2YYi27yZM24nK}a3@ zVCX5F5B2nj7H2)i62QmW<5a_eRV^dr{qWF}$Y;y)1! zxNmnt`l%k;i!}!ISz)4Gj3#W6C7>Ww8x`U+cf6HDCZeP*(B_AygA@^dy$<8g)mHEZBUARn}u(^_j1Ke6sjGrQpFHYj5t+ZCNm?ke+#W^6$a7 z?}mhQp6fALgTag=qsfW4cBfx_5#`bfEkZn`P;m$zR&91?V|#I}PMhybc4A^B{atQI z)%XoE+s~@U9%G%2tv|_>81?fTr;B_wvRf*L&v8-snSpAwPky`uRi7=f4*_VnPRh1F z4bLm`Vh24^c|;-1bzm(ln%#PWbmw@PU$CY!TodR$lJV8wTzlukPEvh6q*87oX6yvl zrt-FZwqf-& zU^EVGrxFtF$o~jT2+JceFP;)Bm*#_MKDR6@1COK`;lV%7{_wP(_t;(6IW6!?5R&%9 zF}~Pdymqs&dxh)jXF2GXC*qclzr2Z7aEHEJY{1T--Xl(fg&6c}4}qhoUvs zLxRVkSWY6yOHsP%oL~H2Jy8>hQm@m4(B7~7G|*(kc@J|XX8q8dLaV2hk(4UfceAn{ z#trk}U^y;g?>qM6qLlqJMJd*sP_mZ%OXHW|w@jC_fj97=tCn+)As*V?zB8SmIllRmIX_caQN+9l25qzFWMB{b)^ZTWlA?#b1e|m%4koC3s16% zj1;FP%V8u(WX~|UNfDaeA>SbHp7b&eP|27OJ*hA~%eay?H8mJ5r0cb!)bJG1KXV+x zZ78=v_&E4yL{ttNRVh@3{|krf6q+{q>VA{4Eh9**CVy&P)tdmBxgdXC<$PEFPdc6| zt*SF=7WQIp(qv9J^GyB-=!xxtKeEpFTYr$VauPBb<_9aNT}CB(lox9gR z%NRk0MhLQ8-!dK-hj7;~0xA4A6S?@?7(!$=uPf?GVp2v<&iXwTtR<2#&VPa}tSOZ4 zlyFy0SBZ!M-8>!(yi!+<2$6)SReZ39aob((>d10GNEteJz)AKKn3PGb-9x&6AmuR&# zSw($%t&q+6t0zFT-os@4H)CwZOlMyysM*pzF`cy)gzN~~y&SHx>M9kWAuGx2w=^o6y=->;UCp8Rmx-}hP-1JPPcn_iiT zZs_sq1>-sDMNMCFum)1!O@8i0o8d5aZj~H{FD! zT4$bta@VK0Kb$wH|MvYj9v?X}#4pOvQ2LFKnD6IC5~}bbJW{m6qIQ&W5|CH)G$$Dv z>?frVJS;4Fuz_(Q?SVT`50PY~7+ow7^Yct+`lWmd$k8z8-(e-3epp`5$?Pr=>_HhK6`&~in7dT35;vyiPfU~Q)aAanW$}ov!js% zmV}6(!eq>=;lFziY=tGM<4}wvWtTaBXnGpOEb~MA2&^oOLi~Jprps6fH#UQ6;)ONJ zhQ(d_Vt>&g`N=0vehDxp{7rj=$L7lR#4@Ur^?7GRXFb$P%9fEFv$P+k`x1S^~>>m=1n0X+M6OfExY$_hYh~>t5WJCpF6n+4d`AFNYnLtL!f6plAfJ} z<@fj%N}#O{Q^mAC#1RI~_9o%R{PsqOJ7SS<9T;AN%3J zfuE6GpuGqFsl#JAscqCv$57Se@p7@Z?_WERVA~ag6FTF1iRy0t;3hqaNg$JScvxt3 zuvFo7o-_Fq=&Qb*-@TAgyU`B!H*pa5mn368lAfJQ0?k}zDx5DBZnn|{(nVPCwL0`B z^t#Yn1~>}A=QI9yq)InDG6s*Gmqn4D_alA${3>I6+kUeCpsrm8PW+5mwV0!v^O`AC z^??;=jXJ{`m}GmV5?-B(h*x|^(=JyIfy=bGab{;Ct;ZJzS$8jU@uI;`ClZ624Y@JU z{YtT&b5jEl*V48lA(_};x9FHRZRXY~%+meZOlS#ayhet`M&?*2dQBBoOe zRBK^0LadfE3fS$jg#u(E$4okrSXxWOMnLG6AAxwgJ_TprXPxtxQ<-zy(U)(!Yv{Ap@U(Qy)RpPd4bMM}3~C$G*m& zyZRbq6or3DAgLnrXvh!w858bD#8XMcG+~5qjLy%K`+Hi5y;+iQlPczsk@;h=XWWmdI}tGx9PYfg??FFRlOcnfp6$8$%z<2?npfduVIsfI$^w_{;;W14ydzE> zV`2^hhzY}FjzP0sYjgC@#|uN1B+UlwUNd!1-_wEsD5X+uHk^O=f+lYH`K$l-KIM^w zT!UPPP>BEe_(DS|(K0$zW=k~8J$81>vif7qVkY(?ThEYTWqXMV8E2`w^L#(FtS?6? ze8ukP&!2_w(&@qm{Z59C%B`(lsM}>md1*2~@Nd;ZCTcpxEXQHS`^#Z6&aCzBwXf9e z0BhINw{kX(OU>voA>KR>$S<{JnlL38g4zMDM4cXA48-F#ff`gGXR*Vk919*^gZc+e8%Z&GfK zI#2ZTUCdTN-e|j}Ax|)cd{NvYNNT4{be2lA;t?f8tLN8*Mv{tk)H*SNnbmZ*XZ< z7Fd6Nf{^$b$D@nl70>KmQMpGXiKl7b@#rH-k9GGjROHya1KD?VyJPs<81~Q4Xi|7H z@0Zp{^G_q@Nl_sV+zUFeh)t0ffYDK|9SI$4l@F;?LD6BxGvSRikB=0Qd|i=17Vsef`XxnOuA_Im(_f8IJwwJGDs6!qD-xI+ z;xu*q@BZrUA(%K4rzzj-M%3KCkL&qdCOg;?qVDXbm_$H5IjO$Y1J_Q!k@0&xJEm(O z8{koH8*9Ie9DT0da8${Z2leeyoAB!@AfJD{I#sq{#4dcI`u76+>)!kaM^*W=Ky zbGT>W*ysQ9aEJ2WGc`o3Gqa2~;^x?$MM!caxpqmaN^PLJ@rLTrW{A`KNra~advc|8 zUEVas=vJ2W^U!f^Dh8%fjj*6>Sf#gmRFy+@n(-S0Jl6TioQdiVbn?VkUC245%D;Ch z1p`u<*vd4FMfv#;DaXdTiGJ$Z_zE;ozVGu-J`h>n!rGl;CP`jGl-Km&K2@M~l9|*i z=R$zP{Y$Epdp)sz*?1=o7rhC@Qb(KgImBJY`*+_=#CV8Sn66hU zQPhC1P51Ab@JJp>*2};j+PzShUvhRH=ASId537kA`|M)C|d9e_gtfEHxMz5UV8)ZM=ublkwPcOZ30$PN+Sd4Xn zgtkA9>2fvt9s6ZCm)p_S>`*BN^j4AgKylP-b?>raWctF&`zV*&^hK{SCGI6db#b)y ztQl{bHIW^tXh=}(-``m2PG~RfwcSH}z$O@GG<4K>?{~UlbL)Qq7%#(#YG1cq`xV9= zStHcFfL*vGiKi|+nvraeJe4Ij6+=cbI2cvk9q~-yWI^hyQ8j7u244%7kc4@f?2={9D)bG@u%EhzHP+(!6ZKcriWT(PD>hw}-I8-LaT7 zP1uhkt_#+I1iR@O3L4B^F4ZoFR3fPv!PWu`Fy6B(IcT;IhXa4yYW7giQ(X_-yvW+S zE>C{xy1U|gF(RF$$kD;I;q^bR1ea@=cO>mTS*8j+~(g0Gnma- zSmjPlc&95N{FLR@>yuAF_iM-Ty;FiARD==orw!A@1L+u0xrq~@35iWf&r@=-?Uj;# zlY+W>hFzH5ZC+)0vojejmr8dM^ez~`yCUZTyq}=y^zh%cdaVq{hUlI-R}_Blv}kI| zTjSU%M6o0WkKLh{h&cBY;N6n(a*jo0V+S6g!R^soHd)-EXK|3xEKOPDe9q6S#jNTt z9go|i14*GT2WH@t&kw6A8bj}cEikF z4n5aQjgJy~6YfFqK+}ixtm=GKAyORFZa1(D6T*AQj&)O~+RYhJ1I``Nk9K2`StCo$ z{=3QsIqk+l@N=3_=99;l^naV(H)`KHBx;&c5H)=sNCTvqntj5!=H|$Obx((Y;Cye< zcR~EB#N$c9)2CsYDQ`}JAq+Mx#|#i=X@L5TpAbUWW`Q7D(@HXJ4x z;RZO_O}b zOA)ZvD=rea*`ci$C0FEhC~k%-MQNyvAP7DdBQ4aQ#t)CkW$azLx6V8U1YG)y8F{9{ z5yi01_`u!y-Uk%aGf7jBCGI7ri1tEsEt9&M%LYgwrCP6Ai?`Nib1TdKnZ?$_v~&W7s@uvXU9Lj8bt`PQZh^qNYs?L9j5P;gz& z^)}eQBIzr>stKB?u;L^`!u6&m)!ZwyjqxGv)4q3!LJZtlA`emc&Lxay{XSZTzju_P zg<~_D@F+wgI5_V?$XQm%Np6 z?`)eEKlF$N-~XE#p#%WZmGt_)TtvIW1-!bJsy~(+MeQ=9*78f-$uuj)-Au~&e1n`}~^UKKpc`O$2>X_G_&8$qQUR2wfAo>9ib(o?1N3empN^P?zFl_ z(`s4Sv1PHs-JXSMRf*AttcZhp-J;@B|s>sYRe^H0@Va6nU`E&KT56%0}S0F6x!}CvsqO?(Mt^n$rr#kW4W7<;Ew8`E9A7V?hP@Sy$^QtSz zZ$`dLuoJh-0K(4NZ9-@Od;LImGg@^?J0*7C*D#^P74eH3AeI!UVnnYM)0Y`N${-nX z8yJ?$q#VM|HM>4N#qy!dU6GP-yebs)b5$s(FBa98s@}Pz#Q=k*W%?f&PW6(F28)N$ zeZm6veLmm)zixToc48KFxuk745ntYR9W!PDJ^}EoP`)JhA6$GTD7DE^3%|buHP=?A z6KhZQe;L){2eqy*{7OD};rt>|JB@3|cS15=8wPtS3D)r6x%82KsfYx!(H>2{#`%XIOJ|*U{O@oZFMDTFm=)yx4>4;Jq|R4jj~FlX34-59J*?MmX+IGEKx@+S74;LVl8{k6TWWj|+vwx)a| zVns6Vkh|mCpiv>u#)C7VNJ!EMGN4w+^U`PLzFc2#(T%^80_1$^AUNaqMF70^&thac zokG9aP<+=nOR;DDX}5JJV}Gs;g~sY2$Gcitm=8e{EzV|bjE8Bc^XX$fsx$ikz}LY0 zFOlUanQd}S5rh~3t+~D5ltu5#z0z|TE|^)rs>+%Fx_i}aw0!rN@WHiGTbbf0dsbMK zI%eV_?gV-FJJ!znGH=nuTnPvOG0ghgC$?J(b6ECg$tAM1&${uese$Ey=77NFXk z)~-jUHWSdru~ZwQiHx@H<5zJ26x`T=0>$;|?Y9K&YPhqQ_&w|{b26p(@Zyz;HNX5z zAgdm%>l?AcuFcus(T17LRl>ylJ{wn)5lzm-Bn+ed_d#WbidAG;u+;lqY1*%o`miHb zvqYP)SGj;b%PDyKi83;^wM&4U7*`^0#6oPB#ce9Q{|F$3E>R zAQzKRT~0PqQKPt?Qi)fWBEl0u(Pt_Q30rOelP;aRfDB9*|3?P)cIM`_#%*lK_#fsb zCR*!6z4i`}%EEDG3SuqCY{_Ybi%JWu?-u;eWd~#-CbC+%pOgWRKg6R{Y?;~QnBSrL zTdbY@{@ZQO+>U5G5-r?>Vx{l|P2MzJac!a{P5iD(2D1M9!J1P5x0wFtF(57~`FgbeEi8#)$p62=|GO{{BO}o5uWgN5$S4x75kGobhMFJM H9i#sbzl81d literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear7.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear7.png new file mode 100644 index 0000000000000000000000000000000000000000..417af6c61166c727b9ab50cdd14a498c68744e0d GIT binary patch literal 77056 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 NziqdsJ&+yE=yzftZ#5;QXZo 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 S-AwW`#1E{fu22Os|L{NMEB7e? literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear8.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear8.png new file mode 100644 index 0000000000000000000000000000000000000000..de64264914cc8330093550eab1f0ffaa01e91be9 GIT binary patch literal 71177 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%0Dr63wml-6F*tONlh7MSGocvsq)+w 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 L&GqVZUE=-^HyYM< literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail0.png new file mode 100644 index 0000000000000000000000000000000000000000..a25325815275dfe5e34358f3509f93fa273ba40f GIT binary patch literal 67970 zcmV*6Ky$x|P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D|D{PpK~#8N?41RC z6vr3GeU*Hr8vUO1;$VC(+Lgg|PR6+P?n|Se< zAe4gG(qB6E;$w1FWCn#EGZa=Th8Vs-72*9~d@VsYi6FEu{(Z3s7BKy#qSO@yE9ttD zrYp2f$4Q*&Ifmj)#o`nRvUO1;$VKD@p^}iG2}KYv+I|r_E)+u%G%SYiB@{YtD6+P? zza*T35DQ{#rz`Xv+BXz#;j;}f{4Or6IJ4r&iUTY3KJ2YT_YmG!_*{z#bdexi7e#_x#On|$!ixea{H02|CYIgzGI_dnzv? zoFAbGzmc%!-)Iqv1i1)8xOs#k2qP5|KB16k8U7_PB=Hl9Afm$i8CE9Yed%#QNDYhd zzQS{a_a_1NW2Gc3uB?zK({qIP7e0et^Cm#TN`gbedxMn+th^}BR7jjtS)u2VI8%91 zoP{EY8BtgwCR_`;E_Cgv2=&77+ENh^#8~JN(C-t9@H^>odftCRoQnkczlGsVBitN9 z5kycZf=~)KmEa06JVr&ZT&d8$aN`M|B~&QkbLe>SqToglN3z+Os^NnvNhzJ`c>CGNhE zK+E1w%QlrvCgRdHNJv*9F)0BFDXe6sBSDph5gH=Fg+s;gH@&qK3G&;CaFYnaEBrMSJfR4}ONDMG!y*VR-B5yWRX9$6 zNl*h>@nJ={>4eWFUi>SNCvi1|>M4n>Sj39d0aA$vWVY^*OWojT;|NDv2e{e0z|GYi z9-iLtC{`Rc9)8ez`5@EP2O0_ebn_$9YGD8DE@Z(sAc=j7o1vk&AD@KKq&Os}gdi>T zF;q&@npYwSGzm~RD;HQ1#F>PdEN4Ne1h)qL6@1oINSNvM^j?CH(Y7FHB+%xvI_bJn zeWL3wh%ou%sj+oug?co!?ZgT_PS2xjFVqM69`t<$F{a;0jgVoX#z^q98;UdW)`@eG zAivoN7mEZ}5M7~=;s{oYq3{Y;F5Mus{VL%VtQx_}slbXqD|DRRlRiuM?0k#stDt%) zk=jGb#MQ>e4fYORu(xrCo7@p@wzhD0aDtbcJG_boK2WtL|PCs zL9D6J`wLceUId!z0M#q1KU7CZcO(0k=cc&QHQ3%y)dr$iz-6If^1$UGpIvm$kZz04Mlav5CYHgLC30E`66Ltejzm20*D$gG3@7%L<7z{XY8sLZk9lh;or2TOYy&pi2Lu_|i>4 z75r7gOV%z~xwQSF#Y=xlaD~5g^N_27x|H-flZ2OZ6^JF=UkUpwlE~R#Pe>(hu$8&O z-qsz?4sLLE_JF&)7d(CZ;9WWZVplIH9o?a_qpwhefHXY?j+b^r9Ciu&pNHdqR3zeK z?lN(Xgjy|V@M|%&5=l%+%t){vvO?y!AkrjYhN3MD9#Rp+n~I_J`J!up>Il_Cs&jM^ z$?_EjT+6Z2mX#W;PQV)viR0&o{h^dYZW`*irwt8hNx8v$jPP#%GL`B7Zmr_aX$xG00p>mED3L6Y& zg&G_3v(s;(?@f&fz4(o`mWu?rU=hSu5MZjjR0P2_EF_?U)oWM`g;x+?x<`RjFb0ye0lz^MPF9Mi#Th_}RrAn5CvRD;l1lELFP9I%FK|+IscDK&K zKKKlh;-BJdbSj>wWFR>?0coj`P$lVdc8A%akoaFL~Xj1}_L3PrFyNuULB zCSj)MQ(dC^MGZY!#Z>3WHPMe1!ImBm_f~5`(7+ z33!^UKuAg|l2T)koD>R0MkJJ(WIVnWL7eGt2rH*qAzv*C99h$3eF}q!q>fZ~$<0NU zad}o+vC@Y zGKzGdm}v6Xl0cKiOja`0V{%o{;BO07>a&t>t2j4aBh2)DsY^hO2o3&`&zxKtir@!- zBSg7KkWJ%70e+SE(qF;PYiR9~@Ct=udZ|LwHoXtMZ;rxCNF`E;B@#Hf1)+pbNmO%o zMiswONH1L<=~WsO3GZ8kO==>fDRB@b#6z5xfXt*ggoTA8Gd%@rWd&T6!gO5p8i z3ttyINTpI}#8Rl8iy_mqEEFXxKy6Fa@YTqYVj(^L2Od5?heJ;uATshLaTcsg61V$w zfI-GX6;=vVj0HGrne_rPGG4Nl$vr{Q7-TV%8{;V}WZjc5oSsagY?PC|Fewt`oS~Cp zD8eMZWF?UDk@&tUvVn@B^-DgtO01M+g`Ou^zpoWw-s*LOokKCWx%#7+pC=Py8$5Xu ziNu)WkULbx%+5m)+wL9RD~fmOa_DSr$x4hRxQd!g8VXuB5ddb7A#+3piK~6DkQpw zr4}m`>r1aAAtzodz_xb9;N)Bue$29|?CF8p{{C<;SqgqZHBqri1w_Y*ac1Ru90}Wx zefzhwFQ-J+^1aY<;&)Ivkik-fDL6d50^7%DppFkle3}Z0N+pt6$2L`|MzVrgUu<6@ z7Q@a)3VRy~9OP0sJ2=DM#T#<(0N9qUfOOx|W}B$uc=-Slu5ZJh&?H1h2O}fp4tI^s zg2)MWPJ!_84M0OC&}F@*wF1jgBuj-Kt44xJt$!g-J!w> ze5C->`L&Tbz|pxfN_&<@x4^O}U#~H0_H6@SUny*v?8{#9%IG*?&Dhykbovw&Dc2#E z7RLvzdLg0T0^Ku;coovrcsN`?23f={L?njeR7^S|5)zS=_>6V`AF+!?_pfP)B(9Lz z`oUJ}2@iW`_&YhFZ1DiNS8s~+Dh;6(3vF=DI9xl1m`fY5>q#`CBTg}iAic00T2>|P z9IK+ZM@e+95D0DOi8(gtlKbaycGEXFb$371>U2&3DW;gBC?pc8)o2BMuk?&G?ynBI zs5Gee4=XoWAr}Vu!%38dh!Lw4<^QrE(+{OWch8GfFbVOCt_Kod5?w0fejqDYa6!D* z`lXp{5~-BSEavRi0JWH9)v0D>1oi5Spf=?or%yGKb4Q~vcH;YZ8uBli3W`^@N>TnV39=x> zB&0MbXXp#2ej61MUUET@2vZ1J6Wz8TzAuTey@MYDOVmIse}5#qC~*3|8o`f`u-cIX zk=O$@O0>X&uRcZ7E+rv0!>LV3)S!FwF}U(*Gq>-^Zl=jyhasWaAa4J^g#GPv5Z~C1 zoezWYIO-7;snk2Qx?U)x@=~mx_(P>uAT99{J7SIFN@6&;)IrnIr4UrL36dK2(fgSb z_iw}64I{X1YlrlVX8C0@YuNy5`2K|hLDCQF%S_6hC_tKh#N$c92JSi{0VoFKrI zGLX^*(!6}~2a_v8c+E?AcvL~-Qh{hufmuLp+95O~0~_}IiF5a^K$S^j2<(F#YhY5{ zMi~Fgm+uZH>9{M{jp|N28@rtty(^(yy9-S<|!RoT#9hvTz5u)nkg$DcpNmC$G; z#4v%=(tTBgc@V+QIS6F}N~3{?1fDWCthjIoi3v2r`ptke?G=N4B+6S^p?ny0Bb99){8*V-h zIDaY$JHJ_kzi(bfay(5I;?E_C@!VEjFmClM*i#c=X3|;XKdR*Ez|4*# zkl1xPxBoWcaP25ku581u&{%|r-GWL%5l#O=M7EIIm4jUD1P7TjobBD=>`q~BzHoPT zfm)+Qrcw!oQUyguDl(I!k(r)=3}q@(Gt&{38qexa7?g@<>;}nsKvT{=OH~_I$Zt$P zI-3wnZS3LcSqGiURYLcnW6-2u5M0Q?!3ch?!H)SWu;SPWJdZfat~`Y}^2i;lV^-7F znEdBF*jjL&#+if9&};Z8q$be}SN5ZdbwZ!n%b|3jpZfOTdTKq6pFV_ZQ6Wf4yv%MH zy?^jOh1|Xx>IT$CopyuZRH+_pnRH0=;GH4GNskPH>h>O7zkdt26XFq@p2X_WbA9jb zZQ?beyp|PKnYdVGa$iu8w_!+Jq4Bl}GJScna!H6OQi8-*5Mm*LHVw>mVTCN_m#kq| z_nN32PzeJoS4Z=yBTzZWo1GK>vA6_a_xF3TX2(Wce0mn@ObTzzLheuvlk3;RjP?Js zh-GYuf>o? z%48`E)5A%W&3u-P=WP*W`qF|`Oj1a;EDh4pz#IuNr3$3Do}R3bNN2Z(r82m9)JF5t zWznliTXdK;0B#;xPf@T-wEv&G`1iLTvHjj{q$kn9Om=AY+?YBw@ZPHL;ajX=e7QF+ zMxjfeafpvS!tHzew#Sh7zCpSdwL5PfHp%gDIcJNC~j}Z*5D|14IU#SAdjo)78!&m%(h(mm1p{pGL~SN$#JylPX@_BT%A!htn7^W-{|=@h$P1mR!2Glq}&49>-9sH5;uFcDUrT#dtb z&f)Cc%jO?UW%rL*;>d~v#3Fl0*}hCl#TGJ&99pJFT8#=SjS?!Y8ktNh6&W#5D#Cdq z!~{s|XyOP>AkjghOgA=J%2!#T1WJ^?ld{K=C>MAO^ri~3U=@?En1q;ZXSd{{M;^Rrv&}9@YC06jLSe05bcpg6A{};0?qal`h;e%EKtbR&0 zC9?@#`xSQGyMpv&8eb_wz}dYC-s?FQj3s->c!Z>u@tHYHpHY>tMkIi+*Lj zA#3>#()`Nf@el7}&-KmhizvBR`p@w z+xdOnGpqxeg1hy%Z}A{(KRd^TkiX##z|W^6#((sCq4=g+_(sL%(9vnWK0Xb0)_@VbVQXfy7`PLb8U* zbwP2YLX0xKf#6Rr5Z)9)rY|K}#e%O`u!>2DX<`ShVjw(^!_BJ>`c$rgk?&7Iy)IR` z2MwX0e(FRD{x{sM>P%W_fW3jNELv3!Le2VpkX*YxcTB!<0hS*6hZ}GbOMUQe zgRb~+%Xe@f@3j?h?L-KMPW}i_AJGg^phc}dsQm6qR#C0P&Qc%Th(G^bf%MduBUFmu zp?Wp5=Lc|aK1z4QdLbE0inx!>zkh-I&neke_MVPN><+&YjWDEIZ8)``3>%UDwzN1T z&heM_VZ-h}@g$PmD_Qdd3?c1%A@YKDerAO#DfvJIe{zAjF5Uz|CPkq*GLk+rZw0HE zGOp38w|!Y5k=9>vnamZ{1KVR-ub$}rQQwya?1&V0>i=GH8Vi5^8nN-rDrV=K(i8d? zZ-dd*t01xaEd2@`j#m!h=XL)>QXK1Ii{)rjts54v`5q<9l8f3pAS?N^9#gR7*jDya zlHl&$3gbHuMnYq9r57#_e)<%LuKfkAhN6m!cpcSB_d@>}zrvZ>`sG%N{;N2x9oF?-HBw68i65*zAJXNOyz z$A-M19HbUBI!|L!6f#9Uak|k-g9^k_wN^oOgBX`lsAP7E*KwwT_gKLRJNKw9N` z{F8OW{PijBJSBfW`yy@)F|%WPwCr1z+qV=6$-tv$tXY0_PwTa`oZJodN>aNe;{0cO zpJj#W6*Sb4?U*|l_e06p$ljeT;$>QvsSUeoynF0T!?B5u;$>j#Nb9Ep4RY;BU_u=dkYcpkG? zcch4%pcJYNI=*AI){!yTvD>N6JO4w|^4-`Te}iZ>(b#|O8qy9fkkGy7RM;%$qk)x5@L_XP@b|3WZmR zG4(UZGN!J?5LWcD#ZnswG-=Qevs!h)v_C(Cvj=%LUM4LA7}Vt}tljY;Yq{h2gCZw% z3>t^3Q@?}4jpmYM$077C{@DCG61gmHOz0|h#Qe42a-x?L)Z@&{RU;qpjmz;^_rVO@ z7e%4_m`NyJ#~)KG|BO5pIBD@cgD2c;qj?L57aTA{J-8J36K6dOJsj+g{m0QfCN zEN5L{KiJxrg_BDqcz9Pu@etuFz4t5I(QsSbXEv}sE&A0N3XgYw;2$gi&VBJNED=fHVSVF&~_@2(lo?LL>#5tmMNXF(&h_ zH7j~YPhk1_7+JX?#{T>{+&y0(cShOSn$;VDkZ{UN%_Ff1z@QP|!?FI$Yn=(WZT=iz zAEubz$B@}q#5ZH-V#Md&xi6U;*KPxQKbnrRE&8C#I}Ks0A1`<{l-qdAg7rA|a36vb zBoR!rfuO_tv=)$3DGqNC(YJ>u+rGum zM}A~IQhwPdvD6PU+Kzxn=ULpowV*t`4vTjG$wc`yw@*{6GZgw5c@p1MtWZ*WicO|L zrzBP^W+_{P+e#2)vW%&ZPNo8la#mx7=8k3)<94h|^huuyn7;nI9K|>)MuXbbdSnx0 z8+k>HeE;tp#n|ccLHu&<20v$CJh+Z?qUoWo1yY z#6S!lyA3mz-NB?UH>211Pf@mVBe}-J$5n{ zsZF++ZWgv6)77FgKw?aznIy)fBqYYPNF4bh^kO`v!(c30xC{g54}~-bcR(y_lp6>2 zV}JRyl!U!qZH)YM3v2@EtzQkLe>{EaA4G=H3`(F%sdkw1!#v2c4Z`M(JNp$i$G?xH z5DDh*+lB83O-IPXmq(c&Uys25hEBr9$PnDVn}$(=6)=9)w3l*gcL(&VE6J+#Ue*|y0k=(4&P(;_m?qb_HtCO(E=XK2C}DdU)|Hpi3)1? z6mNxL^_#G|_3CktHyvuY+V!3RFJD>%f+sfS6vB=#*X>ykHVyh?X4lbhbZN+W2yEqg zLyuI3+@<8JByFM)CSfM9u{N4X6s8~>iZNNnf}4V3%4iBS4d!vOORd(d4#Sz%@*}D@ zDalS69ep(<#w}_OMr1r6sz$guH^cC+w?pEcv!70~eLl|IImf=3nrktq4mDW|^jRXtRw{{+zsxpC_;bR$ zd;mncOqMZ;aSv8#Iy5K7j?O;#p!ERETDuIMJ~@kHTq4k| z$#~ok+oC%Hc(}B{fN$Bpj6Ul1xE)=C)o0HkE$JHPKb+RMJw|^wGEeRUdQHhdXE-S< z;@G)exc&S-o<~PRbv_I?_MXGq3;VF^++(O!8jPzRfYGbIhKsZL8r*A#@8ZCjvxtwm z3yIVhL7gl&6<6`^Z`gaD+-&;nSyqe~E^bZHzg8D?AF&uU+YEr6XEDo|IyoS%&=-|H`PB{tRbAW0-}X02QTD_3BTOFg8fI2v&*Q(uo?mA_w^!pxSQ`X&=_sR zy%M*OG>_k1JSzTEXTo<$&5&1RD?z$)p zL8i~7*aH${a+C{VOx*%<@NzOpt9g9ZaU4F_v;;ObIe*OzW}Gc}X9bSkqIvUt7hP^! z4TBbKeX;xTN^G`&j|=xG^hFDA-_{s6Y!phAr1m0z_%pk|QwpfyulO83XJ(up6;a{Icz03nq0rzWfubPZmVIoqA>ZVcz(k zPXbf)6l3QAeMULom$ne#mX_+at>pjOgq-b~D8{unmm8%T=lE`BcD`sGU`#?yLXK=pto82G=rkeg|6 zjUd-WV7mtBSFr_JHfz9DN+%aLxYwaJ$b5u{t1-XdXZYmb^-!eV*f{LyySVs6`< z(8QT7`~QJf#k)nU3lW^08ewAR&oS|nwQ#8QX6A=@+mO^6g7Seux;-E^?gF&u3ojE~ zZb&LN!IY*QVDCisq8`#qs!(J|zL@92ETUXcf=pkQ1ef~fWEPS`i3aW(utGt>dNE!) z`B%KNVq&ghOk6u3jRjvWL_z}JJr{{RFu3h|kmnF*Y>0jM0~~wI&(e`QRKdjFJy5*3 z{;QY;cV;11Vr@gO&j({fvtH<1zYc44#dvyfH8O>4h53M{T<>3Z8$&vd#j@k8p-8*I z9hb^WVd%IOuyrs!N+dVZHY`R|9N&mp6O>Q5W7VOUGj9_DI*isGEy5a*`Uaqjk1b^O zOMBgD`uT3`*+dlk3%Nc`gb{kcEf}A-s*u zS78uOZ;vkQ|2f|IZn#mujK-{f|6~EKJmF)8X@!qY)%(Js=U8sv7%r||4rK;E`diVf z0$NV&Zd5~%7ih*_w`rZQ@Q>9DKSgnyzLu}MwDrgMkcH8MkMVn*cl)i9~`IJ9_YDI{|9H$p|^AGcynP^xs6 z#d$C4DU^3k>h`RYD*e7dwNjL@Og}hIqTGcQ(lB9wk18A;&$oIMgdo#r82XLLDNa{~ zCVuEYe{zfQnE2Zqqb5d>Ww~kAPgr;3ioV-iv3M5*OfoI2)agfAm7!Ho9k^s0ShWmp z9(I`U$H#d8_myzYV@hR;C|Ujf8gywh3iJN`2??=$4}o&(wyDtvVTB2=5!gUs zUHkvKitmn|LPiR$N65~GQzNvWwS?O?mX!E-*4@wYfiB?V z8y4t;W6igC_-qHC_+8|TlI6N%X4B@VIBp421Nd&Cxgi(NuDdj?-|~}9j6;M< zC3;};q#s~cjb_*vVbw^as3a``7Z2W-Oasr`pFD#`kjDvKG zmW(rd7@Q>qnZ6i(LHeSG)1oPwf_?}m#>I;TVb=87C|-t7Y@Hhq9x1ST^^dH(zMtEt z`~xEP%XLQN${DGxTrL0fQQ~M|{7pp|)Um{pz|UrmZw=QADW1#CY%rtGQU$BHj#a zs`NscQWWjV6B%;@s*7232dow6rc>bWPw@wONZ&fJLPjPnpkbDr$(9skdT+s1A>=hC zXLwsyI5C#VT`{}Q1aurq`8#qaDFxU#<1-w+bB6tDrc$iyGoV2)sLE%J-kO44+di1w zZW!#GD7+AeO*)3&1Nz|S&kk^dWrdB3eTUPqci|#JU_dwY8~+XKewoei4 z{6rC2Sop*Z$~kV`$h~|qx@vXUJLnsK(l8p>6Q)#?(V1^6*;0ZmSjS|p32Wg|R7F2l z^q)Dq?O2Td+PG=GE)fOzjdR@2lk_dGJ+rxRt9R3M;B)!`dOl#j4E}qS}{fzW0 znDfI-%WzLwXCsb@b*6K{2$IXe-*Byv7fcm! zaH)qeja$IBTz%bA{mLh#Wu$Fn zDbwsd(z|@cC0jy}1?!l^SFn!BcWjWOq726M9fR^^j1yCGA8cFr9qv5lqatWV-N@>- zkXD7ln9W0M+wmCAEakv*J-84$ttJk;ZfwT*ku!1rScL9bmV-jz)_->#LpqGchZ~mS z>GOYCw}5h)uzrwJEp)8jAL9nkg3UnN-#==9mWX zda|N#F^1P^kD(t^?s? zE#T;+p9xGxW))V*@T9Ra(mnDe=c(&%Zb2r|rPe{Pj>)$|-<%xYoON8PWP1$xaBi+k z8wsRmXs~npIz)u>GsB$So1jgzo)(KHNGVejbw@2k&sv?BMMe&M4IYL5iwR>U;r>nD zVl^js9s(bZSb!gQ%tJ;hZzXU8cIErv{r=NY>HU>Ru1nsYf`^v!|MS`nKD4fo@$qhp z=6ybbSZsNJc@dV!rblY+6>ZN;DA+hUcL_`$+O(L_egi&1v!@;}oS1m5WJdp4-^JCXj#EWu9>K$Y};>U-q z9g#?kK25s9(V5~DI7r{>vO)$ZO%$OiW+WUYTgm1YWcm^`(kM&Garfi#P?J?r} z8M?jPdHx_CTW_65d^CTds+4OEX*bI*lIV8qZ`@z;4!%FM8yC)RW(IO5wCsGlxivNt{M~mYSrtbQ?t&9Z!v^_un-ZeRoHstI@b^uDk4Ypty&vSwY%vK z6!Eqo^$&vFo`#ng8U>C#35M2Wo3e1AWuI!5Bn{R>qD(!40GxH~?iGX)eTTu_!?;F+!rV50{4LJjeahZk4Lj%B=w7!u6s}o8<>tiY z{4U&DJQj<$ug1a4n~)rTn)_UP=Q`+GyC;7A_6v-d)6r;Gi?K`}*OSXoN5X&Q;x?>1 zwgavw3qMfa>Byf5i!S_J$ARVBp=|RB+~S}`yj@7Dw1Tq}ACFAjPl!W$Oqg!Zx}o~m zqk3)FJLtbZ=^Vw*8V>H6?6xqcAd_>?&^jicieA13RH=_H?-@V6^~{#b*c2Lxv?Q90 zAV#|~~gcj08AFIwv0+5iJf`@^9mjhPhj zwm}QLmUYUSVVjun0OFh5b$iy2rse>6`_c?*J!FuQAX7YQo)XxbLy!%vV#z1*Q0Y6t)N1-I|GIkA{zzn9Dz53Fw@Bvwab|RqMjeB(-Nie9RI2`0wv$ zW~otbck&~Xr$7jSGulcvm&_Pi$7I9P5TssydsV1`<~_0{dd`u9zZ}E%uylTAm{^AH zfn|_hDVx70Uw9l^jRQ-kVe!$8h>1MFS*8#TV!4Gm!&tTcEf8cO#H@9Dq+&Q})iqu=Wy~4r4wJuuw*MQvBysN4d zVO=^GiM5lK*~tUK9|Ayq0ggPjApjyXv4=*I|tWRu+%=8zk*j!8wxM5ix8 z?g~l{!3na5PknS7GQ#N0X0$%ux!oJ_=sus~(Zj1Le9dGXJA~dv@Q>s1&5mDj_t7>k zu9*hx+`U_3Vv~XReenX!+V};k)b=hAAvVOzSB`I1euetwJ986Lh?K-LShZ;d?C+5q zrC@M+dL73?3VRZW2#v}FK-%hE-F^`Q+Drws7q%jO_t&`m`(#}CeG=~cITerB&cO2x zbC9xY0Wwbgiu8LYk*P?s`p8~s)mCtH%8H(eNeGAP>K@&m^B;ngWEoSuF$pov_-M)s_a%lj8jfF&{%W)!ANcbk z-urqnoE0T{W-dm$R{?~5t(lGG?1mQBCoBx?UFzb4-VHJ<9dObO=sU@HmfdY(a8X<2Td)GtPuKkR+jupVsfBwSrU_SP>Sn+0XY?(jn zn5O%VvCtm4|*pn<17LV_FS5%82<}?7-n$>oI@dDt!IVBK)>^6hi))0p*#$p-eXaL?=_BS(ml_ zvmz~M0n~%xF}fvs-wa%;c7=LK8ms+Zvpw+goHyzDU4*^ym`7!p3gq}Ot+OQ zWF1rAnp_oRqEkR2rEsdw3isiitGC4LTd3)C@k!q zYomAHIgq;-Q=jY$h@@ zo+CE?E-r*z#mPrcaP!7VsP7#_@%SfD%RL}*CLJkwY?%RY;tK1z>grvl#2^hUf^g^4S}D)`zS`-jm44l47y-+iAG^Xe(bqMUDt6(+4ZQScs{A z&48P0-hTS-Ip5;v;Zt#JZY7FX`?D)8@-AG%Zsf}I^jjBtA=)BW@?#;>hmtu?A4*w5C|H!- z6`VcXvRZ3=xat$*(`%l3iZ9mfL0l{iV2RPAYIBHN<;^;lrl;WW;%Rsgx`W%NP_|J` zM&XO0p$ z%fa=H?k$iDrBd_C(44uC)6YVoRVP8CPQd-pbkt@&2bDc_Ow5P-fuFJK@*${Ig_pO& z&M623S`UQH8)6w17MZO6rrp?wgj3()Sj0W-zy1sl@9u{pJ(xYpTL~huI~-i9!>3pf zDweN_mgTCz-m@}f&J`e$m4H^{0%c|_Yv?sh#8Z)x_7u-!Z{zr#<2ZZ#5b*RSyh~Jo zjfpGqcEIO6O9zeg6s)SPw)8=_CCh z@+VXGoTj`|3zMUjoL506Nuy3XIkCuZOzY&4)06zjVjGzYW^@{f20gO{O}`cm`-&Tw z<@xW8OHeDLShqC@tww$ZrIUUQE0c)-`)eG$@h4Z=Xu`$FHq-Ip>KQ0TO-DW{U%wop zcihI2kPsZWejb@8FQR0%+Hmv9GJo$r0=CRwi*q;EAle?NmF|JTOXtAR!L*7+;$6N) zQ`|pv9Ss92(}#zUnL$x8Oo&AeaQ0|`x~1x4WKex{WDR%wHeJ!W|5#LP(gO`z zbVL1eHPFz<3ynOzQO&z7;>7_-)7V3)h~erNjY%n$p{%}L!s&B|k#OrGN;%j;>RZNQ z*M?XJkt#C+7s6s-|Lit=sx@c#f{~V8At7~egyYlWxc2-S(=$$UsbwTL z#Zy+uZ9zE_n3*l}hPYZ_$e-})OCAUQD!n;t!b)=`Q;KQ&r<)<^fR#>2%(cg3qXy7MU}&iD||Lir@# zl!b0;$1zCn{yw*#UufF+Pn&*3a$Mmpr6YH&j*r{)f=!#Lx+6shXtio&oLYm(m@_yL ztHp!+ccDlX{FP$Xv#5bGo~6*MVmXxS*as!+RfNn4{mRVb$2Xqt+JmRp4q?}`XoQ5{ zf->WQ?ioB(-^%#ZLBG27;n-v(w-U3txwPw7Y}oUP`Yf_Tt+Jiar9U%hit+1TS}Tfk z>o9-Aw@8e?raQuk@KRPNhL^16a8}4t&MvwJ&?PoA)!orbb5WzcnKTiBW~2$vh= zPAFZgA?}>LgNM)0;8~IfY{~#nR5AGLnBhLhsbA?lc z7)NghbC!cvlZ?lStfI2-pt8%q>mq6YN}RpFM`s}w4y8*pM2&7AKq99JpG63yJv@hq z6AQ5YQ7{f)yM~D8C%IlE36+Oe3yfs<+NeR}FzS=32yER99s!<4M>Wy&9GRiuUn>xm z+qFZ}rX5gA;s`~$Ga{HRr&jX$$Em)NJK^NROSp0Q5=ul|gPnH;NF2=PHWN7jnm}d0 z$Z_`MYTce8Dn!KH#e)aWP{qRyG9SxX>iI?FR}uHG9Y=I5zwRZ2^pJ#@)~6EO78Jr{ zRzao@p}U3#^2m!#(^UHEj={|%2$P47My1C3*(*6hzSd34R^r$l3Q5aEDgR~&82ACS z`G`ZafeS9*yu`#S5>FD-P}RQ`D%CXaj4wAYJGhGcaq4OWVxkTrQ&S#3-eT1DcEXT` zT`~2S4^bhgxLLyKs9`HpzY<~&-@@hR*E!)#O^ZZrMG~|%+UuT`H$)mWc5V9u$$I}? zA;83CWR0e9u4&n{s&5i%wE~L03-QmzL)d@yJYpiwLZf0mUy&ocd|F_9y$+c4$$T^# z+ymYfOXXXnsE#=}+aRERO*HP@6+u2Vpo!5UG(*f80UR0yQd1w{JnNQUzIGLEVK?AX zG6+)J{5PVR9$q-L>nGac4={XvdO@Mqu-_enl$3|K@-P%ZHW`qz&oskrWp>0O30#9u zvU~I@H0-`&knoa~OwN58oXOQ~krzRx_Ln-~6lX`PfsiRn^P0JHR6Vc-K3nktWH!cC zk&FB8V)4I6kPv&FyD>)vwLoSKT9`WTD7{NSe2rPIakrpWMI+{66599e0(&zXUxBrX z!S+c8j^7VMOyn6jyH-N4WFXSCF30tbbNm0ch2U?9P_L%eyt+ zt=|TdKKcap26ls^M?U;uIbg&3zr`y0p<$O!s9(M*WRYrwq)DMvkT5fi(W;@y2*&m2 zmvHXFNl1e4qgb^D%;GjGkl>Xln0lPu{|7g4O-O7?;^#m2qK4EBm!8Elt38DCm0t}{ zLv5QBNCRqHrKRkg_zWi=-bJQ@yPrrC$r8N53WYBvvO=+aG1pgRwJ^KIeUQ)Z>d<05)(aPft zZ7TLXOoZ$4wfw$`P!jq>&uCVs1-`72P!vp?`o^baeOn=MN#C~!KOESC`}enSE67m8 z8xYV9i~5bl%+)_3phn@Wm_okha<#lMVcF;S<(G{Z(|96W+?ugklVuTSq+P|I#}?tc zPx>MH@UOa~#zQgH4)QFwqEupw%=lPHnX)vRG6J(&wt=G?zqn{Z%yIm1XeZK6{%Uoi zY~$_A3=GzoNc3G~(pWNFNsvi5NswQwyQT^Fis& z16M=H-^~y?qkVbf{LaSGqFHAyuQ72q{1i5Qyvia%Ns~<8UHLVJ)NanYR-ssS_B^hg zvCK-G*MkE?g>F8Jo7k5PZh7^~=>({~66bi}A17T||PKVw3Z(aZ>I#ko`X z$5q@k|L?Xh!0%s=K;~tB9)K~B5IH%JobYJ0YA6$V_XUl^G@daLGaI*t+@UIWEI#T8 zmL1v6Eaf#;C(6xBlwv(*y|qs#hf;FV0rD!4cY!qXmESrqf-GcqqYt2vH|~vX?R?Rp za&5?rbR&^4UOjyjiLw05JQw$x$e=_*W+bs;57a0@Gr6hKM`PKc!+89_GSh+s0;G6% z$=B#!vn8H9yN+Go{KSRFnH#c_JN2&$CwpDec5MpIXK3MY-E>h-xOWDMRQ-r>q0ls- zv{fa$DQIZ$?$L%B`0?xsq$Zx{j?pSLAGGL)smoWOL>=DkW=+ryU#^ZH1}|QOMYFy{ zuUZ53?m>dA`#T}qFn{d=oLn^#nXx*fD+kCzc5%rPWUWRGRZ7;ZL$cCad^`(N8n)#k zv4|Mfcr8D?2PwBK+!q$zg-T?cw2dPBi~Oappc z^XTbS6+t5g(56v5zaNcl!LjVj^YiX&cojpsH+etIOS?wxxK*5q=aDC|`IDvGL=;O< zsfryYfAuxmSFDQ-6sEM>GFGym4^XjW*7V|thz!_2G_6vK)k^GpM&GaSLfs^?;;2`P zpBnyOM59q6c;ig`e(4mH8RW+o!P~DrKJPsUoxl2!iI8di?m)WTevilsQ0x?B<>|bBkiHRmn64mIVzqc3va=-5k`a>ePnhVBab0DXjQ9q;0(QQ!FW z?oO=Sfv|8sxLqXnM3d^ZxovY3-?Tq!1<-0z3~drtU%HBi_qjBA7NJf97c5-A9Am0h zK=7gcx})Z&Q&-Az$`ce%|ya-s|x>>>RR;1#)9VM(x9w|9pw_ zzrGJ;=Iif0&*J)A5UjCML6t^PV%d?gYTozruh6M_3-;!uZ@|5$dvJQkm&jBWUQ(=V zupVDqKM%-k^zul?EQt_#70A~}59C{r=?&a1S;v#X{09??y4Zo{XHQzLk#PihDNJF_?8*?<^`40&%J8dPn^6pY!3v|{zGBM9E`VIlVSvg7Mt4Ym&Ygh`}~)J@OTk8G?U z(+lZMg>W~rjww+EC&A9HRZy{m@v*}SC9{yjXnHqKIahZmoyu5ld&@uO=ZX8y*T`U7Jub&vhzi9qk+1;+@ZY6d!JKcnZnDaC6$*! zUH|`H5+M?z#DBlU&lfKuGmR3_h)^n^3qF2#DysH+JEBcI{T=bYjXz=j&T>gn zeS03c2j8su5O@Ci5K4n=ZY0R?%1XJaWfrnpK@;0vO+Yn2jOsTYWlMMB_9;u@nyaUg zy30Be+iNOzfv0CS|34YCFZz*R(qB^q`9*gHS;`zG+)AQe*KAJg967W3G9nZC<-RF& zris7tu8zFYp#4zD?0EqQi#mhtpRKT{m23$zRluLqf5o()RwFfuk5Q#dSif9tWIEF& zF%IXm+Yuh4OYB@oI5_%4Q@)LE@4rLZ#clZh%prX)3jY#a@Zrd@sL&>e+kaai!Dv0K zH8%dc1D$J6g;<)EgkG6(4{Of;j!jF(vtAlM&O*1M$|1`r(`r?$2mNXbS)gj?dYIUz z6FhwQhK#~zzdv^z85cHi`-O?z!xOc=-C!dn-Q}QDLhJ1b;cw)&$g?2R^GJ~Cjpz-@ zqt3lnB9WqfsQ{DmHQd~L6lux)WDr}2K*)8G5SAphdQ&tm$@`LN6nNG7O9%_K>`c##*zBu9MV!~@=)R7W#fbk38z73>B zJjGA{{-s~x+^bkS%;?-1Rk}Cl_TNSvoWz*B>N70)Vhemc+Ui5(D2D#(<1JXSa2&!O zUg0v?Wk(A&vyyY8{`mfw-k>pTo%nk@IqnpGKDZr<$NV`iOd9%^g^gSvIYK|2yb6Nb zf)w*5w}r8SEclNFLDnzvZ|6`NRf9|$klTOj9y{N>%fQt&0BJP}#!?FEI8quys7o#jcZTn`O& zS>&{uSgbjB2?>S2tk^4|6;%G2{TBxIdmo=2*omhPxAU{N7}Tf?sy7lHzxWdx6Y~c+ zJ-vo!v6Ka{@Sv%;HLL1p-2W%I{O57Qh7VT!gz@#e zbJM{ERGCk)Y5P>1{@;hXBMgz&C_yH;aJWyuKo_c0B9bT#F5TOQtJ^+imCXW^0gS|^ zLIafY^o1xZ&Ylcg(oVyHy=)q6tc6T3Bta$%nchsV0@XdeQ6|v%5&n~Z9ztT$BYsC@ zkH&sk!Qcf!*A#U4RAos-KKhNTw_Tw?_?>}(<<|b~0nxIkZz|uW1 zv)f3xj{BNBW-79~$B~jyxRXI_mxO~H043gU=jXv1jBNf~a$As5ODzXIkS+Ypm?}Xp5CmDUkU2A3Dz!zM3gx)~ zabtOW{D?`u6gRr=U2Uw_Gpgz{S5N>>TvreB@~$YmlsDL6GT~{sb6PE9f~iphqS)`9Abc z5xH$~lx)IhVKSBr!Mf#U81C+VNXuucO;gcGr085Bkn1)R`yW3>XlUUsrWhNZf}e(c zfk6{K!FR{DB079O`=WeaSjuV8vPvI}9XcE8pkj~;Df6;bD37ulkCu}+xLV-hM(TZL3J_+0HGpCCG=@bVrDlys%>jJKa_Yd^%3 z$OGKASn7q*)vBQGnEu>;5j-^qcgEcQgY~Pc>tQ#CsTQ(8!*>T@X!Qo{9wP555EpkC zTUUQrC`pJUwl1jV?gmMg8-X;JtSUi}$=KEFaBhN3KY_$oh(Q*DnmNk26+>|o77h)M z)F3)7%R;N;RWO5jFOu%X8WJzvEE?8*UwhyPk}Nly`jvzSr{KH3voZVc4cK>nr@vc4eNrL?YhI((IEVl2KDkN$Rt|5Kl}*Q%4JQoxf-$!7dQT>+bcLoU>o}T zv+JJC2&u=4prxd(+0;5G=(mwcO-e3=ym2oUi^T{kQPSw_Zp8hQcafIHPY4l9ec@b8 zKee#HX;F_xWck6!yD<+D7E&b5@f0nbTb$&$n?13fS%sJAeB0xb}iE;bUeFs8A=8Dkl7pB`y<1<@FoVNHtx$# z51*ner8{)VMcol?cR;Ju*>QEk==q!zbK%EenD zg*!WskVsuv-J$mV?d8Tl3-K&Ma8>wVe61i<@A2QwYG({~tV*<)`7s)nZ^`yVY~K@h zatP8!d8sn;>|l;OGP+2c|s9bc+2*vZ5w#Fs0*pg0oC1IxmnFRs5Tf{$RyBQ4KYTL4J~ASKf>9*1gbVLezce-I^2oK>Mnab z*qdbu`}|O=Mibo@vmV3la4TS20utkQI!wjiXMclA!RKwIu34L^eK2PFVu<^^53N|= zYq1z{8HGO!M#KbJD}Q?j^|t=@DU=xxxoxSeEQU93&aJXhgmKj9)f8i@)WN`#uJG@k z|5=PqUXB>pc_51U@w0)o>ID3DU_BJ^1s823(*kvilOH*oAwniIRSYtANn=g2kV%l~ z-ROlJrQE#XXu^FJ9S20DWSxX6u7&SMEMC46=gTHi({CU$;^q9S`GrLOgJDas^ZGhg z8~E&1bfb=HJP_rlEJvDe!THe@tTGlhViB_vY~D_nMcl2kxcQu)8cj4PT^ltyBdYXjgRxc1=~o&_NH~E@o3pRBZ%HIfkTu0?ac){2WGYiS zPQhiNAK1%DkV&x(T^1z2-18;OnyX%{m`Uj+BO=vEQ|kmzE>M!< zpixaw6G(2GdH>GbGT#75?WGA&IT&`S<^3Z;S< z1RI$%R33#B@+MD+z=Pe3aN;Vvd9(n!PA>zI2WCqbqsk#duY zQ`Mp&Puhnav-nC^%d+~6A?jHOtGWE3l1%1^%+i+6f&3!0uxHY?&#>#_1uokg#BwyL z)&{da{ty*wS;k@~w@&-vjnJ_&EtgKGRErDOk0bQ(QqGM~P$&z?637j)SfZOa|MqbD z&o7aZ$}bo|X;J&vYJ>{43TM(&5joRl&Rorg9$ zx&3k_JK)3jC!=<&(iRO%@?_^~;-_;^%$pzS)u-`+Uuw}Be{+M-9rN~|)Hh-q--;dNx3&7L6N+>n@RJW8XHoeEd!;2rpr^ROfIlc!<3y-mA?I_8RUXV#! zDbj-UmA0wYyw*Y{1D;e{a9NO&bI&CoU@1R8+B6!PG8~_tCCJ{+`AZ>b3KAwnr;o44 z(?|Sj4dl=tR-+!?{e334UywLE0q_3sG3u1cO3wb|$!=WOyByMV%TC%*XXd1Q_Y01Y&dzUl||aua01LM9(F=Vc)ar&^5)v}rVCA*U*`e3)Kd1-D8_+S++IeftRe z@=9*NrAg(MnECU3vsp38%?6&9L? zXd+5w?h9AG2~Yx|fA3PBW4?7MUAz$*Oq|4R7x8A$bi_my^W($dXnC}CXO2N($+ae> zw(NcD6Ro>obarrFN*^+_VS@TE1QlKB9mk4ctAm1xQ;A zr;B^B_WF4~qJmK}paW*U$1XzY{736k5^nC?qdRIGox8bX*67)gJMgQe z(D(c6%4s<5_#d}#36x4J5#&s&@Nd3}{AA|}Bqj1Ix=={t*ai*Z?p5$(BSqvL|C*&S zs%jupLEb=&iamq4-AlM_OCYvkf}DK}g>oX3#*!H4Xd%;aQf;bX)CZ$!e)J;P*mxnZ zwrNQ}GE!B{qTmHtEOvw1#e^ivd4xjB{@wQvGE%N_`?Ola?2aAKVu0}p^n;VsqkC82GluE@L zFUK?@zxCo#X6^9SehJ?oR2@Bz+b-hGqTcxTP^yG(@ds@RHe9<3g~Bo+q7r5yLz_*I z1(&ekvdGawCIKcvCU=ECs8VL*ZSpLd=!egsR`M%p5URqmElZ#(pp#%>6brTzY{uD`46}pX>jnWlO_lZ-K%Jdau(7k3K z&XqzWC!E5D%|AnyWd5A3N;RK-tgun3$d~6_n(XT1IA+InD4Q7 zM-;m-x(5tUFe7vO^7GiW^E+g)^V+iccr@)sork<(&l=3d+rC2O;#tuiA)&i*<>!xd zd*(x_vKB#3<7T$K$?Q3_fwQIv5AXV@)O|3wUBsJ7&3E5LmD07jZPJXjckUxKmS(n^ z7YVs6MA-yc5Mw&Xsp{*b^~FIw{ku5ZI-8VKh=_}bW2PtXESE_g&At-Gi^Q(~21(4? zB%EEFVA|{t;8#2cHD+|2I~C4wz|xBs@XplnnAd+Ime2SXM^0(+EDU%O0{s2SRvbFD z0%~^Fn$;PJ9upeqUY&P5+{E~G-4ZxE32WwQaQyymq^#)SQNOtZ zdl``-xD#_nwufw^>Ux?3}w5TcM^m z#{a$qvpRM~Ss!<-zj6rk|5=J9Gsj`Wl(|?tWik$j?SxpXMWfo|&}V8>v#pO-sfHWA z{a_BO5W3ZAwMp1`?Ktf3UFP@AfKsE@Z51vWbqcg9>lk3n3l9&i)K4z5cd3nr^;&Q@ zOA&82H7ATlDX(hWHZ61ZPjDzQp55j4&4rDF-HR5ops|A9<|xR9qO7lTc5;1Svr&*w zHat2j53h^NwAY)8PAHLABcH{mE%bmvC+OFWj~{P^qm&kds)k zU}%vA(P)&|b3f}Qt?D0unj`w?_KJ9uv9lLrXzPwl>3D60r^Tr}@2S}hafR|vA8 zv&3r!nGi%-C>*8=vWf|EY(kbGyV+SbH0ad*`|OwV{^~*fN5RL$94|KPd^Kq1g_-NW z!@{BCP@!}Wq$b_MiKAO^@^n0ohMmE#1#4mMa9R@hsXu-KUr$<7jOWM6%3X5~@vw6m;*oWO2)0U5hjO!apQxHvLv zd46xK`gIA0*Y6KI$0~@6JcQkc_haGyeONi-3&fc@I;LC&2aKy*9keheL5rZC-oA$0 z&M#^!N_iQRR&ZJF%mw)q_gy}xPeAYOQyJxYzCLQFh&K$?2J`i*}hik}mbC&))! zvyL0S{&z8!&zy%w75YLd^T3k_+wjHl<5)U$CL*GBPc{=GZ5$KkthN4v6U>uTUahen zK~6}wj))IaP^87!&Imu+-_4Kui`mu>(Zh@%WuRFJ0#M{T-}vmSpJCf{xbBg>kr0`PMU!S@?ZszEh&ie|Dni}LgCVME+EQ7s zLrPiJtb~-z%r|NkrwpwU*J8qTdt!7hUzQt{FXHW_X8%qo=FaN}aVq!;GN14%81f4V z^2;8JEM8Ts1l2YaWezg6z5MifhK$FcyR3D{!|P2XuI+fV3M|Xo0xA2zB>ZyzJT4qD z|I8at_EWlcw8ijIdH+p`F)8?B^auFu{9U9b@X2Z@^sP>rfv7!o0k>}sq&d}s0wzt# z1lfANPOgZr>_%b&AA2l!sD$c``AmI9yq(b4QQw+1^dYFJi5C%baWl7_UksLTGDLqj zO+z+IPsIyUAQ{#x`6w6z&UHNyJ2e(9Kg#cm(>GAPr| z{Hv1}VO_KwI|fd!f|abn-Y5LBZ}~-%Jr4OLUU!$$aZ+u1HJN|hykkmEU%a%5iGg0Y z^E4R+6N8#ks}%-TD9e6@1N$LrY`=F2`&ORRJzDrA#3}IMfLZwc{7Ejnji42(H=6io&F~FLcm~Cj ztGd0s^BN0T&+8tgyH^lp{hiE>4oXd%qW0pAC*`tz6%6uj)8OaJuP~dDaveYX_A6p3 z-%ueFAFIOjUeoaBh5h;kS1I;*K<)nUpJbVw$Tn8wLsqGh-WWkv-#v}EuLPgM+Sw}$bwDX9N{x5AOu?pWJGs@T2})`*vSDwyj$6d-TLK#^vXIs4 zM5{@5lpAUH4k9z-F}LmL5(wW0Ex7F>-hL`{Zx25=T?m{e6Z;-K;J5RECKvI^NsxtC zW(#1A3Ndk_!V8}-RTpexnUt>6P^CmeZkv*Z{BZCfZd@yz6_}rgsWG(uMC`e}30f5& zyezY?gb7W0KsNkKZr@VSlyGZ7t%`>xjJG^Ni+0Yn@m{koPz{{N?OPHXvGrKUw2ojx z@NM0m^`eN2!QLP~X_XZRZtDE;(g#6J&aI zHc5|-F>zWNy^8_TLdf)$T)RD5mgSR%K%0TJ*DvGH2J@!Y%ZV$OQ_-#M5Zn#j%J%pR z;_Ti8)0?zLN}mt8eM@5_wH`qxBE#}$X%qzFr>BsR7{+f)y-}x9k#+pG6CDfu{ox`U zp8p-UU!qYBc)94TWNj*r+~Eh{^NJ>)7BZ=a-a^)DwTO?)T0Pn*I8Stz7>G56lj*DK z;2E%Ys>^MsB%Z||KYfn`%dWi7`KnJJk3+XEeGwMBUw0JnEY=oN8#Y92uerJ-mPekG zbE*)Cjf>E2Sue`SJ5Z$F=e8Z31L51^?Vc{3z-%pp4#9tth{p-oa^oacT)&DN8}`D* z1!z(tK=&wcGdi3JV$N1>PP{^pvsp^7x=jU}mOhn=zH?84oNVG1dolb~q%IsmPWLW_ zZp^~rCX2BD4?ez$P1Ap1Cy0OC+>jWbJraSzgGV7TnP0tx@bT}6cY|smx@W;y#sYFH zOA{HFoRyN*S~(x`j9p0H#pdVaiDH$rZp^n0x~=EF|1I7f{Q;haSm>t61r<}8@JQgo z-iJ8(+d-UIwgpGO`yI!>T!v!{mf-leKjZAGEx5Yn1n!@Cg6MDsQq%a?nTwcXTaca+ zh0x#=xN&+Hm#wl;C`}(eLIr{nbZHQMnGDK zD_8jSoC0@GKB!-javiI0UB%Hg$GLrTLSlUGPzXkkeGjn-M|4MlVga2ozIr7l#^zr$ zFE^~sLQY7tZc~hA65fu@YBcKmdc(%Fh|f2Q$NP@q_PvdG^k4<1jOdN%=)7BjdF6SS z7XSWl8D@Vq26ISLV8Ku|N{*{KrLJU>$lXx3=Dfhmp9o z{~AhmXbT5>-j7V_SMOao$Zh8ZUXZgH#n~`Mko7-@LN?OUO^YKY3t1$hx6z?3yi8x| zUI7?br4sv6{1PI!Zym$0>((In2Ja^npbJO|$!KODrE;eGGM;tkQdnzD3!Ub4fjP@~ z?|r;Gg6edCh-o^ldnOgc*;dZanVScOl}~UL{gpk z44G+n*>kQiu|19W*dqvy+=DBRw_w-xb@=|+Dtx%}XMC{sCrn=S5rzyNgwef*;gg~7 z;O}W4;p`8*P{%|nIRT~tybRU}3JV8r?7M*nj+rP^wj%pBVnl`=#<6X`LoAW79+Efz zB^g&kp5%GzzZU8oJVZQmGA^)qD>J&KVysOCr{* z@i?5N=mN&H7Gseytx4<9Z?)eb?rN8diyP9KLKk8EUHytN^cxM60O8R+)$q?g=|mO_!Lz>0+vu=(I6 zPLM5v$PQ9jG01H_;V5;1qm3PGZEPWBU3s-Q6B)K5lq)O6!$&GSyt4&z`>Ob4)&`v0 z`xkbc!p?o5nJ7pfQ&axPx0fbJ|KP-#<`t&l@kqmU6t-C-6ZA9L^I?AXxFb0||pi(?RQrt;A4E-0|F8+Y&%f{i@#VydN z`BaUi0=r>o*#IWS=3UZ1FUX`$>`NQD+G_!zQYJzbC9J?fu#LWu@Wi(h{YM z^+v5S!_lhxMD%Vj1MP#RAgJ^}1o(7%-0k{B6U84=-6kRUIn+bdi| zc9h53dPGI7jE5-JdS~n1OeP;Ue=RGy+r4!YLXyLy@nFY(TwJmo8#e!fYghP{+Owm@ z<)@EvXZ4b7lO-$xtt@msEe474d5>VQ7}_Kx#2nM@@LYX#*JM93J)gIbvuQBx=tbjo zK4e-J#L$O4o)ylAT-vV}?mjVoNfQc58P;YFc3$GsNj9$77u9F1;74L|$YkwFI%|`jKTO1f zJ%{l4##QWk5`t&(5!_6k7cFdwtOWWu8VZ*ovvfxa2e+etV&OlZ>+@$=19Jx~g-erR zx;^Vb5f_htHqXTEYn#}Gcf@DyhokM6mYv#eZs@*Cj7mfFjax_#et?YVFr=nLBQ7%m zkCZArPZJ>~CJl*+QAkgD$hjz9jR;K|^g)k~vr)fOIg2$+w|1PwhbxyNO1D~$wd3N_ z6w|)?7j`Ci-Be6NKABnr$w{}FFmt*~F~G}NAq$b#2YYU!AWKogy9*vZGd@`}MI=n^ z`6Yfo%nt-sE!`7MKm3i`wlre33T}IsV%yzYcpMsxw3O@Y3mL>gi=5!=)d(Yls-pdb zL8#iSoXOD$GzB{@R*ggdTaPO@PGH-kSVV;%XTogI%@aAJMTO3&KK@H6olIPD#Y{L} zIgF*he+oq^jU8AABU{Wu#Xbc$ImTF2S9W6g;q`d_(;@AJ<6(0KL~-J{k6-MI=@ z%|b8UMBI%_hzoy)I}uTMnv{x&vl*)@9}zC8S^KF5o-Lx$FepYDN!i@)wj?qsl2_t|?@m>}zC`%#elPpq6~ zg;qcaHO6H@*PT;s(r%?%!F4Z;g zE={3XQBfLP-+L7Yzg~$ihEK!L&V$jTa~F)6J08=1{~Vv~`VJc|t-<*Rn-CJZ6Y)_; zxK(HrskgXrvAl>ekq~S*Has~ zV+BcuR{$IxspDfk#H5-y4ZncMRKy}Zou3rq=H?8Sz$)B!K|%uj6V+XAXAV_!W=CcOog_1QXnwx&cTN`p+gnF~E23r$Y14G7CIBJbWI( z(bm&*GnUJ@O-oo$E(=X|{UZyR3LPX>%~6mI#h4Rh%2cFcf}BooVFFH`teY;f=e9GI z8IUFM0qB-M`p$yyD-+)%He`=sVrwS5Jq zwHXGPUDmSViSftq%brbexF#%SS};)7J1?2_L|G8=8R>Zru(u=`tZSdC;Kvw>yG!6% z*>ZJ7fTBsC-c7{m760Iy(bF-k#{i6;*c&ree}J_YR^evIR%WRlgEHeG6G#&+A~O&l z9|}#hWfF45Uf2&+W{hs{&EZjO1h=A$v2cQ{$tIrE>eFy3MM@Yg$kgm|f=p;dO0M-b z1$#GFh$Xyrrc|cECMty6HaG5@KEukh2RVzu5c2m7Ydi@D&i#otqg!%BRC_X60;-Z z`c);(3w6~mZ#<3-(>}(O!6Pw#;sDHCJsVrE{DS9Ed-!!0wbs##$VhpBxb*BZTFpg# z8hc+Y?;?7WNK}MDoo;+OVzpYyie5ZPfGNyK5M**&yjG9}G3NXly27Dh7IIpuX}6J+ zw<{zR2g^{YQXq*l{|eA<$Nt8$%U8LXRfagbHpO@Ee2RseK82f$?qC7aWkfan_0wW_ zxM!_aeDCodT;0N__$w#^J-paO&4Z)dLS$&t3&GaQ8M4?Pr_=OSB{L%2;G(fJt02=L z_r2qH@clb;F{DRdOk4aumK^&LH=l0drUJh{+M$qPf_XdEGFK}}Dag#5MP~XlXm4ia zs>uyeYCJUA(+^W1J_$0ZbdDCXU>Q@PC+ZcL-Z1jMX@ctN>%j!sf!kJPCc`G#yn_RF zkx#Jh_&#nBLyyQA)ynq7ny){{;7|K>>9l!)@nR#uu zpCZ<@CeO99($U1zE{Aj&0($EsaJhhr5Nkoq0j4iA83j`NtFTMdCB0r}6QyGMOC{1q&RqCQcwa%#5seGPRS*8gup^?CW9T8YHaW#G% z{5e*PScG-6)*v!W!A*=Y2Q7y-KqZf?$p#l=q99Ezn86%>M@QY3HK0Logq1Djlokg? z1|NbYm&;)9XS!9G6syFUf0yFP(}P_6`P)EwCubB7%36WhoK))B9@YJ+2W@>8lt|)= z-Zfid@S^V^(T(ofmnsiO-HhAxv$~DGpFFAZGYpV-D~m5zTNnE`!4kEJ^>5+&d05@q4^eOiuULbREu>(_?dih zF?Zl}DR0@MOr@-MmjBBdcxvf|4NW9d5f4=+Kj>^Hw}Gpl=`Nm|zbwQ4XKCzadGkWK zUIq0$do*gK+cQ668!6fb1aZl_tO}7WI#lX}v0s1BzFStPjc=VGI63exSfzsLPek@G z+gG7cq#!+AZ+wuxQa6k$2njL?qEUiORx$}P4TaM-Xc?#bu}LPaV?{2OihfyxN%3Y_ zgWu)cPCN|HnkiGkrz{43|FOx@6tQt?{4wcA4DUM{^SAsDmmY2A5}c$bU4ljxij0)2 z-2U~uoAK5D73eu)Iu`YwgNJwX*9~nrWB}|OD{( zS_zTqSwiY05#?z>Se2I5sWU0~5Yk z3P;!MSrWYhoZ&6wyWkWa`S@Y(gS43!w&}JwNPx)_F${U*%)FfX2qeh#LcvPrpxJuC ziRs`%2Tj1+w-~ny0gmG>T`F32 zL>`;J(e-N)S^gMj*IMW~d#G+NcSwx4%=-tUrhSS7H#Tu=blE%CL5Dhh@oD=(nBHwP zM)dm(@AjXI83RAS#~lV?aJ{~8^=!rovqlw-dr!Av$`2o5M(63cddYNa*@;>5Eh|;k z?a?&iXgGvF)a_Xgm4h3cZA<9(3ZD!`BGjS!!HztL7Yjwo)){H5nTx7f7XV zhamg;*F(wHeRX@5rFysenA)Hb1_~OH*aNLA4#LcDenyEBuQ%{Yxw^9_+i}~W zNpZaU;5AV0|3eQh>Grs%USvhEkjbRWRgeimkOd2wGh@g?PRUG0M6hX@nS3gify|cA zHkO_i14&rklat%uI*X*VtTngl6$?PIa$dTrclp`PbhN9=@CHi{V$iGv+jJ zhn7Q^!M4-Kkk#r6xlaJ(rK&<+sVQWwCZoo%WtcW$8HU#z%B3TuQ%89P)|}gb55~QR zJv*YgSy;wGSx)OTX~_BKh>WyQ*j_J~T(IRltRrbYk*SD*II3W$kiQO%Djli%Ybb`7 zt%P&8nM%bzJ>lkHzNA%!1&PyuGXAL8s=DroWubH3V?Tm zen7dvoO|1j?*95oRtXvLIflNe6{&a>eoeQ>Ne~Ufy%b?VTqt#G z^u)V;-h-_DEE>JgJ?quj`uL;Du>WDkfElP?z89-O?DuGsaOVCN%y@q?w)_=rl5f3y z>pF0Ctn;;85WO^YVEziiz z2t)h>)5OEcNemYozJimlHaQo* z@n~^1E`I}s#^PAF4QqR{7Huq4GzwgP%ty);Hrlj!CdmB76N&60m-1cGybv^a6x=-O z>h|6|XnOF#poS<>so*VDH#cC^=S$EyP-pa52y#EVcs67A@n9_Y?0YnwIs&#vw!xk? zg4lEUJe(Y|1{4dM z>rqw`k&uyyOkHa#64}5;mUj!+uUaXz4j^BB0h*U)g4}2WEBT`Kgt59K1y9LRHkk3v z_ZU&XKcw=!&z5{8B3roov_|iS-7&xaNQ_#t6cy`uo787?E#?eI86VQ6R>eUaOF2ni zhOF5m5A^viNKeU`OoB|BO4^$3hBwASreSA#F**9U4ml0%-3T{s4!3}q{n`d4DBBqC z7I>0MU)6LZ8L3E+W_|4dX9uIYRHXmE{{1^U>1y6LR=G5!jq?7CLQ-lX97A%CX*36A-S`1kYalu`3`#2yWl=^l zluEu{iX}{t?egbx=ss*b+&r7>_TCKW{;X509_n@;%NY!XiEn@dMt=V-7L5H8ULI}O z1$)E(Umc6sOs(Hs$9JKmh8(6{L5SI;D5kL3wAFZm;kVDUwAP`Yd<3<_$C3T=XP#|jr4X1_Hb)e$Ry`xEmzPeAq3 zJ-OszwBW?+5pzZtMQeC@w@33T{V=!9Ff1HA0l)tB2L>!&h$>wg=gT)vuPtHF;}1!E zb&o&u+2N|?9&H0u7V{+_Q0!wYvGwU$|L)WC3(9;SEWttdKKv;M-;jO8PhC zwlh+0;K1&GxT)B=;a{&d>** z9a}c+!;h0!;{7&L(XaMsw5~J^P0J5O&st;fPSXkaqWfGdefMkpzT_`#-nju^{kaNV z7JY+y;|9Rd)%dvzxlz%R>IdJu4NK32`V~Hp2lr|HQau#vMux573_YU-nVv`r{*oXQ z$*Irrhl{6TaVCQIc{@1Q zfKO%P1_4b$?&XJ}l`HA3p~Fvt@#sZhUPT?nM+#*FC*zV>sAbkCl8i zCKej4iCr!;BT}Y8t>VY7#mqvsaWyWKGAHD=VoZ5=3KN0`x+B&HMKc6e?172R+MvP2 zLAs;Xi(4^A1P$+rK3{)^sjL2n1%Lm5MgRPWnXA9Uu;3*MK>Tp{<)Ir$3>=H1%74vBHRAE%6G2}rA2W;T$##bkJS z@m;;7#49+z=3j0*C!8Hw>u=CCzE?nz78;2ZrCjnaIOZZgB@Bvt*{q2IN35h3)p&VFUr$!s zc~QO`t=D&>(K10+sdNnst34t$KPvt@;u3)E7q74vvdXSFj7ezKB+(fJV(Xh-4u<7!$r@Bs~|* z#+dru_2UKB05uSet8~YEod=-dq!GHKMHq`iKv~G;yoIdDNQWpTyMdW{cP}&=y*`m> z8TyY&S4|dVdI7y7y#c+EK8uE$ndg@u2WNMH7=dT8(va)A%8@AvkSDx8p!!wNiY02p z(L@zL2=h8_o_dD+@w~f2ZeJR9CF^k8mLkA8YjR0QLhcQYj6L1cAd{5p8$YC=fqkGWDa?cLw*%Q7k`1F^?K{OxrK&U2A|>`Ft=52 ze6;vS)ELlC_dpS*;9jXb?Cp7DDpSdNRw>z6&OUTMo54!@DF`x&)=L9=gt3B5Z$NKE z{txb+QLEJmP6$UP>AVS)s8<6nE_~N5IVl9T_s((K#-hm)Ks+p{4=h=nr=(McH zT`D%eAQKeEHEH=m%<4Q1j!u>}4h$iyymINDnBTDvrhK~`K|LE<%8=WF1X9}CWqiZ&T&AGFs6;9H=~+LpGI$Zg%!@+CTnibQPX0H zsf+Gkxh@=C`4oFkc=9i&ATpkfs)#Alo+S1AC`xy1l|DBeI%#LF{$s+JDo39|swNEVQU9NNGo?z2 z+fflrm}$>=8jtD*Z#O=qC^qUU9#Q& z(IHom6i2B}0dHqd)a_|p(jptVEu=EujYFfd;&i%p1w(4_iYV)DJ$WtCQ*Pqe+J3;$S+9~Q5}=L0`S=W4@Hxm-^Kl*Cqwa)T@YBY7n)V>i>a;O!_w(rV#V4&(Cw?aC|9RA=O!t_ zGRPe~xip+wE(Tf4#U863TtZlMw)kV3B21PV8MJ~RzY=4r9EmTzf#65h5A12RT12Hh zN5u0iQ{5Pf2iT#tFHH~;aq-CepBkU}P3c5S`}23JQW1vKq;PKgb(H1AoBx^7saZZk zbE8U4#pXxsyJ*unE2n1}Zy39Loy^`2QX4+WkVc&eac0hqjJau3r6M~;IZZ_^IA~C9 ze?%Noqw=?aL0(ABCdlFf^|4Yug}`bqXgO^dW~}@HU;gwvzL@(pJ{>X+pS16UIgJ}& zdc)e7-mDR(HfxTFjcVfk`qeO}X+wP6vpc?Dvu`p?&8=Vhje?!LC)~X zm4aYn%a8EijSPd`9pl!N(|WQNU#2skv}t&hNMGmmcu1Tf67wV4QR$|~JsXSWa{If}r*?-)2K_O~75caH_Yb}I^-h}k>U%I`5BSWc=8HG&& z3$h`UxW?Oy856a9QL|rb)SosME$7ce=S7Rr{p%mm`|IWC`}GQR{OUV2o;wrOhxLPN zi8m!*#@mI=w+!s;U6^soBvL2Hd+%he^~oUb0{I|?2#eSHj|pR|90@WhJG~*jF@8YZuJ7Ttb0e)pMc8Sw+%I>MGmz6F*6!|pklFF> zkpxv5l-JC^Du*&I7QfxN1$8E~>O{8aRmvA_2i4F$nmaaj_DqBM!AY%_T|X%wN>fl| zcm<$>JD>E)8c-=7W7p${NEf}f-dcooRn`D839_XI^@@0Vuq#oPX^a!JYRV!hfku&p zJJI?D7f2&1ISmCuP`8)dz9i6D0`>yN3bNowCX<`qnBqCOH_cRL;>z=UN$HAYtf3t@X=;{?dS{@!tcL66==)JgW>1RugVc0eICzm8z=mx5Pj%- zJPtm>ZM%6jM5FG5IfuWoP*}BEC&*+WYYJG9iI&x>agB+!aP!$yXfABk?G+44gIS+4 zrpAS3As6xH;OOm)(%xc7=?YZuvjvvx}4j6P*cq5WvnRv<}?h+sm@hscPcZLlg|~T2t{2K_(NyPo{;N zM`@^~Hn@M|IIBnco*iin3?_v2bTS=+cORd zf2%oiAUs_8G?B)zn#YG*(Z&y!2 zb$$c4pC42yDOkT_Ig%6jq&OAIw8n_fX2aIR@v-E%SZH)pz-?Gdt2GP_DIgTCKB(+z zCCfT-XmBtj9BEGrE-j~FwmEWH6p??|ldyGN*W*yL^UL`cH?Ta?es-b<$=IGhB z2j&f#gp)t5L-6Btlh&iO7AS(nRxL)wKqt20f+Hc>GFXyjEclN}km(oZ*an$W>*&pd z&^P)ZnqtSDLX|2LdoN!y`Gi)jW{)-{1>dC>`|przI(J0XnzAkeAF4%5^6$HL6FEh+ zRjBEKdA+-HOa0T0{_x&*{B~v!RL538L^Evi$iCk`z_rJGMmGnSdYI9vBdRqtJwsSp zN<6e8K2k*{bAVd6G)zI$vStw9lduxvqR%1a{BPVqNkO1BxK~6*56KqsDnf3AG9ey? z8NYpj8zCE!oN|WUt6}UUr$em_K}OnD#3UTSf!lv#_L_NkZ{l$5{`d<-N0}%hg$xBK zD8w4LxM(0s2tj0wK7R%MkTa~1g={z>#B72rxGe-fG9?}0-kjo*A0|A<={=^c9&9TI zTJ;&i#a0sG2{++#F87p`6g%r=o0ZD&LR1_=ZofVU0$JmOz8Zo#?YhIpwmdt+MESus zEIPakS2s+6>eL$kiAJKlvJ?OQG#1AnY+|>qlFLglHmCu5&(B+8@083WR#|yLmdov- z3ZU;;@T4~z04G=Laa&M^zHK3~NPlGdLI!!lz-7Tznj%bw+z^MCZ^6ikgP9O-X7!rg zmm)`a7w>?8GTl%rum{Rk>sC>#_`=*g;Ikm z>~%Fdz20|AJ%-}n&7*bMFP*ttTz|?hoP72{ETW_J`76ki zK>1`TT0s!ztWo3FV5%U~86poU^=oNljm%VOo}j|1nr^cqH*pX zAIlu8@kFC?m67S1bKckhW?rAaM0qqap;0Hm-o_K{2X=*SR`n~PRG0O7HHTN27I&kh zh);ULSz#%O4{-DOU7U+d$BpPHJczuG=a2Uy{Q7p>y0sHGA05N7tLJgx#yOmOcpMq2 z_nA0oxf}$8>JGr--QU7Fk3IeUtB&CBLuZhhOtIr4bgx_=l3E@42MdAn88J9@i+WmF zAz+1xR+Ee{NhwtGC>{@O+CscJ>!Noai zA;!bO(YSpw_a&hyN&bj$hhf#vi!q|X5P18w=Y*AJh@~f8MtI0B+`hI6Cr)g@?$eua z{Nx5)II{sEk9Qy?o(YwfHGE<@>>PqHwci3P+O`k|EBTuQSrkuBpFwOiZ;?vnrBR#- zPhpbUq#ryy>+1HbgW$)f5PNm4#ivtiX&G@HlvS_@(+Jz8;yq93TJj14?fdYW_W_WDWdE7m2`oxQBRi$VUpc4UhF*ZI9hb$?3vgcRP zreaO@KmQZrVoqYilHWLy%MH5M>NoYmq8&@{_2l>QQLBEaUa>bP&Q5NPSOuxbweaNo z5=(tKA2+RZ>+I1K)ywt5$6aS*>!yD(_oso}Mae5qZpUKHtq0uVtAv|JATs=GaodH3 z+SUQx%a><0%7ku?h0$tau<1!G((f3bgeos+4JI6kMAqM3wl?mnAE8Oz7Ff`K9D05A z5$qj|KZn%(HEWXPBFf-gu+~d)ZzjeU?;_ZV*V)^5$s?hMG|@2JjWp9Df=tkd(T9-w zlLwoepPVV4ksgEfkDuY$6MlfoSjf#VVcH}}Z1{+akdO;-KKvWEofH23--DyGZt+M> zCjP#91y@fRKOkUl2lSfM05dj!iFKQQ#)82^@Nug)nAM~)-fPtk(^_}M)aEVmLG$ML zs#{+yn=unx5B`Q3f4+}KO&mFEJFif~vF)?PcocG;+oyrSE@j=3Tw7-)6e6x&CcxRX zzHZMt2!D1Q;aAtca%Eq$VK6hW$U-(9f29+Kb{U5T@AS*lEXTldS%cY9D?a}oZoGAT zW79T$$V6y}eliGYA^E+8*?A;}x%!R;OciAMeEL8k9+@m;T0NAj$rM;05_S_ue%M62 zCegfSIaKxImsg_jm<_jXLHxoht}j9f)_Yf}%6dMT=QHf>Ur08JD* zuy40+4=C-Hwa%n9K}%-RvY<+)F^{=%A0Q=JjI`8j?otW~CTFr?b~nSy^;+^$>qzd% zCn8J`p$zk6E%R1#>O<_kaN6XUWSY4*x_eg$i$FdMy$rYGxhI(MVAh<6XH#xl#J|7tXw;M2w+2e}oB&$~atT=vF;U0yP87M*Cm#TI&S2g&@ehvM^|H?|5(sE*#XSpEH`SGkT(=H}6YUXNF+snd97c zPNe&k#=si2*;%4UJeu`(245{*g`{Mo&q0Agu8P&~EXJZAalz*0XIXh!12mqZaXKmeP*GQPcz*fa4mQjrgfX0so={*iMwtQkHYaucA6i%Msjx-HbKlAaD z%Yxm3-i5q4^nZcJSHtl6qzQN!o;4w?V~vgoC~w*2)=b5pb=-xN2#+78kCi9cr7DA#SvXUtYC?|oLiUe%9c@J?WE_^}0 z*$y*D!PAo;P*N$L;N-sb+;&cABvN$kHI9pp;Lv7Z^VMzmdiWB4-%9xR`@Q&L*FMBW z@{J5datx|i3Q=9(=k~3Q?3a$vc;!+4G%Q$KfgBO=}RMLl&|-(*&AL zT7>yYj!Va(PZ#064<_TnV;Xbf&%M1}ZH)bVCTEda3$z5NVKmj@Z&u@4w1f+hjf(wtl>MWqyEwQ!%Smr6>s8l%IAIb7VY zHIq@bAYW+JAqyrN4L0W|*1QNFGK!9@*o2|ohhqA= zCAe^VGnDD~xX0uURZt_aCw^GG4GkJtPvb9_0sb$1ot+E*!qE^7)1`+@X&sOHko zc_{588K*-0ae)dlK_4hg5~1mV)EDQPj0{B@_B;;3q!urnBtoXruG3(qSXLH>q|LytyZ4}EqHGTMNqPqNj)++XIDrr=4~PW?nEf|7mpXju{ChfYDY2G+9-m3|P`{D;>km% zyCQqoO0&(XCF7K=VBe_Ls~2! z%bi~geaIxpf(FwBAQI&w@;%8uT~;b0kP#_H$;Q?-Rzcxya$OcTfgKAs zVfW)y&K+9bp*9jyvP}k|P>X!ID+p7Q3%v>wb^7YG&Mhe*nYJ`OEv7J~6tx$64(`sG z|E3U7w-SzRJBiR}{zr$U1C2^mgUX9vVI)VGDEl_^ylEJJ+2?{Gp3@b|(=wUI7s6S`O-}z954$=qbQ9-RlMnGlVBi4;Npb{jv zui|<3^}-4tZ3gb9$kD*n3DRP@C$h&m;>%K9~Cf}9mfNzg2qtXzVY0nI?D*0|$^Meahuonk%6A}{8 zuVa4%hre>&PZDElVaQ!eQ}=|iv^+K4qU_T}NrX&39c1Rw$P~H1>5ib7wMndSZH%q0 zBc``{7xT7%WpXG>*pqnl?LQqi?(j=H**Vq1yQ3B$t(s{$mkHJ8rPy-*7~p0H#6yvkfT);wTzMRfhjB58 z&WJ}^N;s6v5*FMNFG7<)WVU6vE-^(22-rKF_QLfDxq*tWW($!(Of zJf}Ni8kD5T@b{aOvL(7=%=oR8(NK6<|ayN-NBPwSeKvE}&ZFEz^Pto!|hQuh{# za-Jc@xv_2+PMq3-&DZa8t|!8;cxQYx_C3_>RycW7Xz-SsiTA=aKXB+QI<(`LfMbvV zpJIhZy2&d*`{YlhSuK>;hb&|oQ_GXf!W@E3FCep$64ukY{*SUqkjW^G-=jcO7ds}De_DaQGeUqqUo1gC?muLsMl*B8q6;aCc zCb4nRjl5IWM9cdaMQYZl=R8nJ1B!C{KzP{uqpEKSbZ*lGL47*l$*Jr3@#kM~`T1Fc zfekU7-5a5Ig^F_?gyKEv?w?+6D6TRghA^Y!OFuZU&n zU27!jja;NVU^<`9Xn~9jUK|>hAC2AT|M$w-dek#|$~s&{qMSeI{2lycKE6A9nww!u z_f3nS?wC4rK71;e)}ziZ6y6q4jPy@;KnGdJ9v&oZ93;Nvj-a*XNTKQ3B)~MXOgVG~ z3z;G;@)SN`4wnT%UySTu3Zo}$nF@L7IYG|UNKjSchbqlY?^2d*SR047pGRaIzuw;S zR4JPJ1R%3mX>Q*XG&XW%RA_|aO}eA8moI9_9T2JYhe9obN*Tv~gy9{Q$%HqVi7=H^ zuF&8hb&<0na)8XP3>=&)!{4n28kTL2NdqTh!IJry{mEbq8rL4RT2+FtuMPYw`=d>- zZm1+KhNodbTxuM9-xO};lK;1N9q>(6Z}c>6y7!_$*?aH3H?jl)Whe-O3`Lv>I1u#j zLPf;|E^r`-A}YfLB2#4VU7)2c-MeX;H2vT6k{i<6-E?6NzmL54@|wK7ckj91{nkAm zaT=G7ok8pPE3j+Q8QH2zU`)#c4$ZqE{`hGmB%4=8C_3zXF}Z0qWOy{f&1kk`D;i|Q z)b~P6B-%T=!=+xyYH;k`u@0H00`)%bO)+)$h#X#a39h5YN`c9#;%keo1KA)!@@vq) z59)+PVNY0sP*NgsBQ_1SIgk3FI{x)=f7aC zy6*~Mod`A@nl7lR@VpYiT7=AI$)7{#9_Ng7?vZ^-%ql}x5~?ErgYF%Y=Z`K3uC6LL z+|c2-<0lnclRon%42cF*?>WkJM#+#_y#dg62%7d9i9SC5=;#%Q6m@NA?E;XgCHdw` z%~d(UL0uPap3UJG*cuIjT48X*PPnhza7-FE2}_ngf%yyX!96nuD+KK8r~cRKB{Wa7 zh*gsw&2YzB0sk8Rx>ceLt?VLf`{!AEA|(P!_&ozsS))97w!+OUwj6Z{-%V(Z?+O2~||&RT>P zP5O-%PqTE&;;c<7X-fVJN`jv+%f2MdbA4i zMDxLgFLqo~a3HNK#_Rk74SxLYPptUpWz(KQvMgG`>@?bmX|8xr2sK1b6J@E*QfbG8 z_1Mfv$TSLa5+@4|(H*ah7^%sZ@a^uM$SmRbF=%Q>jBL_Xe2H-m85+F{x{Yrs+tz?n zViYd@{W10k0wkuk>yHONdJ`kZ_$ayTMb&;w0y>V`cMHJsZOifbOK+lGy|Kn6qy#e4 z&tvPc53u&hQAqi*@KsdG3pzJ1Od5KRxqfv~Vfp+ufpt;q?pH9eV=p*3(I0Fb&|$d$ z;p=CL4b4u+`hWfuL|XI?mmjz?Nz$fe*n0S&m{uoabn83t z$R}^0e%)KyS|tHPq)rqgY?rau!yo8`EeAfs(tDnSk54~w)cA-}QxD?HpBLblXYPet zxUmL6MMKx`ZuD)$V49*gqYOh%H8RuFAKsJR!1PW%;OJt#RZ1Azxb^5hoZY?zS@a1M z0nUz`g&LvD5`@eyRz$FK(@SqF*;z91{>8)@Baawu;p$v!Zp#z285cyxQPJ_J!`Qc5 zV1uPskDZQz$Tx(Li0QzSW(p1;Bm`F)FfD2!krxhiJ$9GGx?!+>-16o`i(e8U zct2hYGx{P>xsaScH^p3)MUy z_<9)I6`{}0P@Z9N5hx}$B-y5h?02#-{C89>otPsX#ej|jz=_F&O{L13dLDjEEK`v@N$KLc&r zSv0IW0#7~j3|chHX*j%e75Hxct9WPXY^-@`HFobzfOvNK#-UO(-mv%!?2g@ypeDD9 zBoznL%p0}x!>50)z`9pfpi#|H;-ImSYEqBk^F7<)b>IhOzapXau7>FYM-?~f}_7k=|y#Oh3#fzRfvT_A3MVwH!oty&^+_LC{d|{xkhXv+Yk0iet zZ(MvLnl#E0mP?Z5be@qEv>P*$f=Z?(5mU9KipGXgDG8a#ZMNV%gd>WgqQpi2jc;~s zEpa)_nzfwp@bJOrV)QJ}xqag*WxKd=JGmEM{&N6{F}vUs&<{`FJs$l>|2w|9b335b zoG0LH=Y$WA9>4>$XXClC599MEzrpFVI%q9&9O&5D^7e1o6}1b^(ml{;qH*EYl7hDD zAv1bm{r0sO)^>)OloR6)BJ-MgtgBF@4w{CMExL);r1)y_+}}=D4F_VaP%&q zSYf;%<9=NSB0*fg3FInjd0Y~nHe-@86--%DlkfAVNwFHN8D)_hZ2D9+$sja(Gg@Ei zjS<+`$Eh~{Ne%RnK52H!j(w7uW6T@3*xBmH0^=D`b3|7tJe-~29!J&oNb9j!1(Kum_Mo#+^Yv6YTsd8jJ^PaJ{H%a z&ST%XaJZei1h*zVpwALFL)-^Cu(<#-?epQsF5~wV@8GpxenMibae-4RMhnMJK(*G* zl>O3x&bxXwje}!;AQ=zqH4Miu9X1_N$d<%H?U>njjC-S_iX28VE*s;v31vyh1PPe8 zgWeLMFMvimRi-u`=Mo&zvU)4jZ&CcZh78vCunWK+N5YViF78)$2ChV9p>?kj$aW~& zJW=!IV*GsU7xA~L=-p@pUfuk9q09BSx!R%E*dFNDu{UbO*ds|ySkA|5k?IwP(1TkL z@!M7G-}wWM#AjnvvmqGwM1Rv?mJVSzf#08f9&0W{BK#WLNj4fZ8HDaW!ANgzy{TPk zpm*~|*Q|IPz8(vGCM{KYqi@^c$ZS~ntRbUOXY^I2;p9!Nc*fQtWoASk6{OrE@i1KK z_l2E9PScdZNsWDbe^iQDWgGP98q^Y9?<##PEVX1O(Y8`=<9KD7XBu=8TIR_Rgv2np zCPV3)`>vkBuUmKE%+9}XapxYK{_`mIZ~F^ht@#Y=wttVm&TmGh>G|3_*22OeqDEi6jwia0>x-dd??k<7UEv=Rfh$h&xR@S` zZHF&nLbJ}8{od>XlM0H8*aTqxlPmDX-rb0g`coXqhMRX+JkY!z67O27B(_u*XzI5| zi-@B*79l!h?i6zYhAj5&G!_|kinf|HKd-lAHco}7T8)%h>F-!fHfkpyhi6b1s9bN^ z6!ea+_(!yh%#1M6aI@j8u8Xk`3@gzrE;kq@dawS=dK=*O+P4~6PtG|t9E zn_|ng$jl5wM8X-IyLkjBLigg#jeUqtIsg2&pyAO(Gam|9*8=53gLzb+_;gA$*p@}!Iw`fX|<&Vor7O5 z`3^7s@ChDNOL6>H3@w1l0VE4p~IjYX26bq#6rZ>Ft6sW#-sI zlS7IMn!Z@x(OI+&nlNt1;zX|Q_Gmk35Zb%ehEt{!k{#+GGfVtnJ16D&bHZ$=a)y&@ z199KzmDg#S;3^+X)X5Lbz}vF@2zqtTVTzJwij6`@#>@^P z8Pg9&&4QY7xy)_KnvnS;I8ISW#@weZncJ#NZ7j~Dx*#ag4Xye%D{w^13$)pKBs=5x zqZgEV$$H&Q7{ZeZtaEXA)w5!XvR&Ek*Zf{A{di8X2Lp+7$6~PamFI9weHES=28``? zH)gGvQlQPMsK^qXb@Qr2SoGl=$VfAiv4c}x%o;ia8KdSa`;`${&hBWPrNQY4YPIIH zQw4S^Pju@!5xT%yrXxiIQ`>v^`QY@G7^{)8K_8EEkqM#^hN8Z6AmAUYXboXUei7Q7 zF?d`HFN~is72>O{3bqel+Lpz3QIk)q66{6quF* zR|rXgW(uhpGZ2AKhh$xDhNkk+kR?dBZ1W5qF`F(@lCR)Ww0K|*yP!_PTxI%;fTrCV zA^i6?_jlzzQ4AGWB#+xh!K6avafOoz`Y}%fy3}=%6?@AO%k1=4&zWn zteBBf$uL6g6pXI@1tEJC-*2F;(GXpOYU0d=2&<7YQ}9C~Zz3ft5lyq~U{|9FwC8u= zbfhu-D$AfjkGj3ltdr>JR)#Xe5(=Y-(B|miqND3}13SETH4oJ8)fLSK4@b*EBhh-$ zD4{`*LX$yvpjMAg2&m(mZ(MLuz?mpxi@n9nqacMYJTeh8?wEvi+dnlOQHYkpW#C!g zn4_??8B5KWWL>US|MJj~ErsCi=jg*ZgQAl1@{sZl;Tu#KUdJYdK3Nc7>}{f zOfJ!2k{`~W)nLv8^AQ$h)a1E}_Sn9U!uzh7#{H^*2A$v-c^22B#Pr{^)Q!7)3p5`y zyTmm)bk*vhbFBtAdoHweq-@7It;vv^t-+1R>xeRBp;dY`=+4-6`H*4)qa8dz7l0v? zWZb*;K|h19XgYL0agetaDJmLB;-b)bi$Ut)IJgA0Mo_RzvCJ09X@H;L`mUqf zqkhZ45}Q2oLTo%Rd(1o>yT+uCZ1GQxq3vcM_<=>n6RHRdjxK1H7>R4?PDn~Hrh3=* zZHIaT#wpt+1=m#U)}$rQo(vJw{o<3doqZj+25l4rw+03s`yrdB4pC8;5NdEmuzM;F zU1!xj_DS)5*+G~#XLPa6X~hLYv~G8&pS8d$ZFPf0{Ub#?QYT zz{Rb{;owjYH5&RA$$>+UIU7Z3rdoMHBRF8m_-FCs31%{~UD%;>g9&Ky_#4XmRSg;S z+Mz+@FE}6X0bND}`nI?O?(O@U-Yq#;DXvSa4mfx0VhKpu4r;IIuy^S$q^BU|3!*K= zh@%F?$6i20c0DA;pBDSZ{-{+~LsNAi8g;f_@uU18oqn8#->y!-(txvw8iB?rih@jo zd~&;fI*mSkI%3xu7HKnsS}`@U^+M>p<2Do5m<~;nCMQXrst}YXAxko*$ap^91XdDf zoU%%1cNO;G(qr<>9#UeaDpxTYw#DPMUuG98^e^@ZNWn5Ls@*a}^P z8^SeJiyO&0C4ik_P-i2LV(VWAap1du;F#utnyu<8q+6a~^1!NjpW@ve>&11^j3s9M zL3g6}^Q#1hl(BkNRDLpPlsAxT`VgX!ver31z$pT}<}&)~q8BM1~)RQ?BHM|Vrs<9a#R)2_vi%O_0tI~nmP|JfAK7|I&-O25;5(5KMLUz{WMXK6lkJg z(F)p&sWq2-Bt=0eZ$c*c<0+DmDctAOfhk;y^*Ac-EJDx3pi{3Q@DC`uRzllzjo=p8 zvF936QfMO5;_Qu^=-PESvRraTjMLkn)x0O#cJ7B(=^9)~bw!5ehB9U4`hB6%=kV)4 zqN5*+M91OXt?Im!V8QnP&3G0&PBZ#O2M4Emm^Jx1WHzgqrO?X)OztQPGM31!ULQT2 zU2ycub%i_&gS~SnsML8Ur>GoiLha6#Xw=Bko)T@rXkFtnQ&*xdV#nTaxSWeall~p7 zl8ISVNMfclnGQe_Q6{P6HiBAo^B{j?Wj4+Z3R8k2LXz;ogG(`Y`BOL73El)r#+EmQ`}CeDlatVx^GG}vfgX2`f?F~AbItlb za5@!*U01@Dx&%xbi9U554g23^IwL1Y7WQoiqEp)*sGFk2)l{{zHXFh8&b=4UBINfA z=-8(xJbg+Qx11k-TzwR8eE*gBzU$&9*kg2;nQ$Fh`D2YM8#3!ON4M-O9JzW`i8C(< zD#vE9cVZ}fey|tsw};wwFtT;xxnvnNZ#w>xk}lw{kQiLpc2Km*rl{B4w@~7+Ciq>n zG1K|y=VeTUpvGL(I^C5KBwr^Cs?rPuKN-=gp2)QV{f{zC}k zTd5JVum&S2q}_Yp={eweCQjsM~Ac|91XiFNR;8E zd4pQ8y^Cq(nF7GfLI<}ygf?9dhRl;nJ0Q67`MJom_ zDkCzuk~uTgSclm~^buytQG>3`Yy6RT{lzs?8>ZIJP}jnUH~^zST)+H=9$zf_9CH`G zif{LSiuibA2&)MsTH1w4#B>C3nw+yHi^sfjtEAI2bajsK&h}aY{+sW1-EanozF2|vLv$pUL=D1Nh>_421SKfU= zbQ})gK<^Hd;MKO9vTZ{N(V_>M$3)`9jSw?|{tI@Ff@q6gwp69AFU}t=T4;tjc9~`^ zu8@52+DZJj^#rmmXQFodR!ZhwMSx_+zCnT}F_Yw&@~u>w6C_RYX0%2{*q_O>tlyzr zm(c2~3le731WCEDNGe|Mp`F+9#e#P+|CRT!dH-5OMjsZ(&5EwniVq2)vrgKFd5oV< z@)h$5rP3sg{|vL`Hodw$&bc?qnd+V;G4ry?P34M;BxHg=*piTCbCH>R9KBS!%tV|N z8msr&c(fhaqrezMOVn%>2=$Q=9Ef0D-7v*rckya0I&|!fEEhhDf|2PRg!(;)BPc8y z7j7~(RflMe8?r9LDOj)3WK_B zf7A*K5wjX9O6-?8L3^;;vv?67c7nvsvCDdD;KtBIPU@0VFJaf|!`Qp|xaj>2P`hcM zQf{-NL1!3E8Z-$owU`^x@|fzhLc)EAi4-oAAr=O^Ay>fy_*Dtr;X^J_trnkV7~E^C$4`lW>`% z&%F1VLRdhBuk_~9Th3WHiJ6)eBL^&rnc6gOheWv%b43#}!5>Q^<_(p^%wwExF!F*o zMx{v$$9auAoR5W}{iyB*dR{HjdU#hP?fe^uBa#$CX3VPHwP;lDF~Zn_3IQvs)o@VZ z#HFjyWrRbYm4>E`>Z14HQSk8Qvnx4jR1j%JrR%N=M)9WM~?cZl#g` zI=ou-f;#jvLZca1EXR2X9UNR4e_VWZ))>1y5-P{m$ksE#$T+(p$=^&oi(mHc!|843 z;Zd^(YS$4YUIvcf(tu=0jhTc=jg*) zgjP&?P$0Epdh+BlAN&?-!(8%*DutRkg!lh^^t%Z<`DYQXKjhUaJD1t)d zmGjc1lqo6$Artb)N@A9zEW_cHW}O&+9w7!FI36J>cPr9^Rte^A)3+zi?>UXjH(AI@ zkMP8sXq6BL2cbz71#Y`P!e5tJlXuj-s7R1U$4*@H36+4@k? zHkj-s8m>MLm!pqj^H1CG&(<5L+p-s`2dN63npY;UUy-;OenvtifzuSi_DVAYx2fs! zxYV+Fei3=s40iC;G+@v7r}4vUU*h>?pW*G#)?&-CpK$Hw5oppF7@-$RkdRx|m$<=D z8mSc%G;wlGHakK91JkzI?_2wXj!(6Dw>>^&HP_(VZ`*&3XRibYo!9~kN} zCnbN_Ytym)_f3e7GA^VV6xaz%-g^!{0eohq2Q`m=V}>AnS18U$vxb63DaL+0DhvJ7 zBaq&-;N^~N$RB$D8tAT##F6k+bJUE4%056L<#G~`)Vd&&G#=B{dbeawZ1XcK?G5$B*IA_3JpFl!%0cOQuCl3rAWy!-f^mj7iOypvl2gh{6dH z&MwvA;Zhg1{2HQp9U-*?ks)X$L6e1;n0Um--b7qV46Y|$71wqKnObwmoFz#7j9LCp z2&b-eMzHbZu6bc~R5n5;NXi`TNXj(6lax7~VAXk9++K`!DzxuB5p&yj!PNI2;-Nyp zpZe~D@8gBpGe*mp_-dS-`AI-t0!`~>|fk8v?{g>~dO;?T;)<;6T z4*#3{7}g#;s;rbuxOsKP{GR=hFlM2$Z$t6nkd}bcYo5ZNCw>;)i1`3UxCCt$gKW-> zJ?ntPyaSnus}-%;60Dn1H=sLaj2MO?Glrp7BOk>HR+YizCKlSKQgLqAY1}w`6i3dU z$GNCz+(=16sx}tdbUM|IvxmIE7<_xjMq;MX5-P`*uy<;S%%t~}0nUPuxe7Gz7FR$e zPngNLQO$vvGyF~roH-Fq+xQe{yQlRdMey*+!;yGt;cGY+vLC6Uzv*;2G;@+NXX$H& za1fx~i<*)pDO+7rE^k8Shf{bnEk%MC!;y#QNKKj5Xc(tPO?k8sMqe07S>=FE-R=>j z+zt1>J%@)11xM}2?pT1Y4}BrN%{Ucm5_~5HE&Kpk&YZQ}f?N1Sto`U2#6XU+l9p4`3Kps{~2hBpjAy~fSZct|hQZQnqN z&`_LVrc)~tjAdq>2$lua35rTh$wJtvFhrlfg5>ZBTni1u@#_%?Nk~AfCLS8iP3W{- zlaRCi{9$JwAc(h>k$iIe&r6W_90)1wJm}LrH%Fc7jpA&ZOf^?e+(rsZBb#pN@DSXu!CgWs8&p^5+ zOO=UD*Uqw13x|@8hCi@0{njbD>1O-NWmv3trjAS+0%|qQl?7H z+iW$IH6ioEEJ>KLek52L<0F*T6p4j;w zeE8dkrJJ}BV$9@oc5jV2cRqxSe)lN*HWVM)H4owQ{lA!}&uXtZ zLQ5{MRP`)D%v*)5|Cfzff(!4uxYvVP?IOe(j*gCSbW+3F*1J&7pE&S1mrT7<8AB5jDxQC!s=(n!~Vo)G*xr;^bm4 zW>FY88(6jQJG}VSO2kGReN6)7CEB`H3Sl`$+Lf6J$aGN2QC2}&5wav=YQI!JNWwJ0 z(;Lcc849;~jPFZA=JbHU-JGK^0-Ueh=Z_}&@_Yt&GwOoNfpFVI$_}XCcoY^79EvG# z7fp-&Y0Wu2{QN>BCK!uYvjW)czLSwX;TiaTyAW?5Jc_iWf0SkS|2J$nrmrg966M7O zwU(6=p2eI0oI+x(@fsEL#UpParEVK#--hDB?eZ~f`}uvGJ;T|NfY44|s&5uVNb6Yn z!JxYcefl=&Q-2ZNnaWnxLblMORQ5Fl>DE@l2knHY)J?@ci#D;_mmb;rNN8^6%%}{k zF$9YS4#vbcXDA_fWdTy+4{z_n%>O+lxPeNs0+KSd+HKnV>Fp_R9ah_hX>j<#rW5sQ<7K83hZ}HyVga*{!knVJ&i2A;_RdOl;29{9;Xjf7)i!f zjkvI;hOD$}A<{G<36aArbczA}1P>U~@wn%lS%U4hx2GG~$im)Pdi_o5Rm# zwIJGO7w&?eKHPDQ} zZSg9OWoLjXt1+$7r#|>PdhIql+%u{%D%Vqs_e6Xzlzle z5-sO`)No0}Ood|D8e;|r2_b3bN5TbxH$vVFP8(>uVGE=dPBLaNH^0mL***cCF|X@T zJh^U3p`|;+ZvrdlEXRjCKN5|b_m|*L%I_YlM1%E)z1j;7YEQVh`k}e6A4W89jBZo! zLfgI#t=?dEe)%`1J^v~aVz~kh(75Jk3|P8G*|wqh@Y%BgU+&q8Fq3`W!EG!YeV$gf zZKx#3)*?N;muUxR-{o#BxO)nQJ$UO_S>wBxHev4jZy+xEpy`O>+j>igjJlvLnImGQ zA!JgIG*M71CP7Lfra@`E5R!BbBKG!ehJb1f5a8?qcQ_+CQ;$SVni8~~l6n~#8vf3I zK@u|;Kx3^_+Lx&V(;iLjo8M>t9(RvA7}jDK-dO)8YSt>)`hVmk@ZKYf@cq%x#I04P zD8+}+JUqSIVnWN7nDyEMG-}0h$vR-TUca_eaVBiDvhVBD5BDtR%G5TL6i#2y!^(Y3 z#0e9<$pNlG-wKV9lP()71G4qe(A>PWa{P$FUv?ViLl15Zka-xZZ z_8ewXaG4f502QRBT*pr*zQTwBQ*iu%u?S3lXe5S@&eL8-w+3TPNAiH38@&8_qiv`0 z=s);wG;2K$0X2pwwk-wOsY({$>b+|);;x7A`QlAht4SLg0Ys$GY;J_RlXX(J|I2Xb zI}eQ;7;VRPqCe@98QEk*WkGiKt!1>>_Zk}1@bW1?GA3A1X>_yJaCFQu%_hH52_)~4 zf2=kiE{#*ql8mVel8hPsz^ppPs?d4I_mzwF@okEy`%l6n&n&~Zg%i+zU{eIuayJ(y zk%dg?ISs1rh;{>8V9c~(nD*clw5vNDp%}S~#B?jq41Eq>Y)|G?ysW zW4%5T@j~PN{-;Bz?b#BI+f>i9p1{eoz}_{VV%zcUf<$EjDZ&oU?rqU1xGQFM?2aK# z8liigdg$7)ExI*of({<;=oAzn<}7s)lg_XqUVDnINf9S_ z__=AX;@Cxw(%FhOH>_D7xOAiy$cB=Fb+0?eoX6kciONC*T;SB+sgux>^Um6|p?qP` zT}4*T?50KbU=@LawuqJ4jK&N6V&*5_W@`#l-Ojl2RV=7Z`AUrC2^*16%Dzh zCJUYfAP)Iud!zPR$PnTCHPJT zy4%6kqay~@Z-V~424e7|cf!jPaMS|()+PFo^wu?u5ET1w1Q(m2{?3X7JlYuTB#^Z9xCesnciN}NmW*Bk3 zKGwM~cKA}FB!tWpNOB}&X{MkyOvfEf6eL821l5k-c%=8ecv!v~Wv ze*9F#B^aG~jxJ5`_}KYK>YF=Y-iDIG>);l=|NVzZiQlK}tG#AH?NPFf$ZSI*SiC-4 zA0=L+#k5ppx7T?UYD$`{ONoYH45 z)*o0co~Oc>B#ZZi>=!~)Dbp|W&+jeF4U@9LU zI8&*q2$mXoSW^oG&*xl@WXGUQ5*?j*_X#nRv9DiiyguuBJoJI}$(Z2OfA(9`@ZS6! zP8b>ls1efuNHv7P+9YP)EXE8fDzHv(_W7BhQsRv7?r`qBMhie?1CE{>)WirT}oz`TE%}vEvdOq%rQiQLP~em|9`=s&8x5=`IwVcA}|dCcL6-7X+pkXU4yP^oTo@A~=PSF=5EOB+h*i>ER<4Ct|jt>SgJb7Yv#7 z(Hqgi$Gt+A#qx6V6w0cZE~&MW2g!Hj9llYhCR-E~hmiS&{Bja6$0?>QGxLsRG0l+_ z?j8-WY|?B@d+8o!MS-#c75O=DJ%Gmso3&(qKQ;IELO4(`i;tOt1c{m6HZ$lL^Yra0 zhcCJd) zjjLxz_yqQchi?x!xwQmWx)$oO=_G;d1VPB32r?fj2>JyWbS#fxg9KM#k;`L2<%CZ4 z8d|+>MRDLL`kl%?2RZO+EJ@iaD2~ZOk};ilT>6Bj07huD`kF$!0>uCG4h_t=zo6?IG54DvGe0U z@xXhr<%*v z(@;m8gJVLNASPy~u}x+x9Y7b*7#YobBEzrj}H!Ozk;KW3=fTp@N%7M+|Pz3O(DkL}25_sMW3s4Eju@L?s|GA_{S5P9r=j1i#)$ z!qu1vq$M90kCs-pTd;TP0!N<(U|op+IK^ym!vaNP*gioJ)1EU`?DmN8@kLRxu zy!H$EmH&(}81z0^TgPba~B$Lc~P-y6y4o!>?fI!vo=DREEk7SC3uCJr6C# z`BUEuQVqhh14iM=@0Oe1%^P$eteW>R7O#ItNmwAdH@X{bp1wU|WK~&uxSseE;YWAj zX!s38q{S*L3F~#KFl14TK3PYX8gO>@hnu?>JUv}d%f$|@J>1~oUK5%ct)OYqQ_L1< zIkPS_pU%gcgJK{wIe8sihr-c!nX;XgaafS?5}~=tut*hry?bL~uVJ|Nxd%|Uu0x?w zM2T^F{JiWl>InBtq;9$IV^m5{0L(yGcVJZhXY z3(yU1c9!+&I0>J8^%3efsu(ZwsyBYX+^5Hx_Wlh=2S+TM^E&Q-_CE1o%f~aYZ~fnR z;=PY?_QZEW%L>4Y!zSU8Z;YKgKU@#hVbqXmxO&4lU3PYBgNL8^5NWkJ23B2o9NLbv z2Y$w1*RLZr<-E`|^Itt8KhT`u=v)`>9>MVS^+r>72ec8dDxU_(Xwe^OH5qwXI=Gxa zg3rHr2?^1+G+;;X1wwPb1brHd+Z*lqtN}5w$yh9U|7Emj=~C?C=$YCq{P5fw>^k!| zwx5qhT=Z_CK`0I*1uDlTaPog!v>WSXdsZD7potu59{2_|pMnkhRw}s)6@`uO9md@M z%}0E+sg|}eL+^bdT=|*_61>=)Q=Sr_C_|2%>XVQ;cVp!?rl!#at=uBtfKGUD;D`z% zV`A*Iei+s75v2^LgrnLM16mHmCm;QR(C|n+_4d4SBV*#`)tiWnG&*e@U8}>zt>E}M zmfPI=;wQL%)A-O?hj~=@!`N3MGA0-Sq06|0gqS~Z z<-!lxdSoMB{$m5)*!B&+SoIwCFP{#>nkV4*+eb=0>ykjzv;#&r5VI`{dv9jq>w=7# zrfwu-wNoQJdiU#i=f@Rj->&#%OgK8(O;v-iPWqwc6sGA3NBSBF}iV@5_kWFz5~QDMzflPxZaq9K#C$+Xmt zSu28te7J}mqb$V5*kNX$X?XvSk1Kpd-2^e)?a|?WxQpBK;KWH7G-EJoR1+Pj0v;ys z>e~}u#0$TCqD)DB1N-Bvm!3w?iL5l5HzFdkFs%PngoGQlV@}oXTe=2%w_7&Ms)T?o zZ{hv@`-S%Rhv|p~>^$J%-5PEV?(lJRL7;~hf&;3fR&_tP=`}bT9)&Bh35ZNiL_&HT zGW5~V>mmeG6|RJ^8lJ0XT~u=qK!<9+Xxy+lG%W`pJ*a`{jDq2Q{WMm+zYxjs<^ttr zxVd-5%kvgv>?3^?$E~#xb|ncPJh}*Lj$Kk}aNmNRAf-Ta&0(ePFzapDxrx5Y?ng2C zmc+K5!Vfu*8_(l*1$WRQf>9{ap~^mR;Lv8&464{`|6^wc?wv9MF_Gq(6SWEkNwew@ zlS61+E@2UzTPO-4^9fV6qejdnlvods<_g6ETf6>XeDmgVbRAXpOB)phVM3wcXzK4P zF0h;&i+SPNm2`|7I|mo97>fZlsW%!2j;_sjq~}w3f9@xE=Id951}U@y(c$I{c^nw` zgzfZ?CJGMsaaih_)M_r{F9|v=}ej68|RD|26{hJ{P zxVY^%(K(OcaKueSq(mb4uO7X(xfFctp-99X!bk&3m4y< zhaKl`)#4?bTwCDvC*Q{ShdP%@IA=<-4j)Zlh>uQ&ijM!A>8LfqD$Dlbeuzex&CbEb zXxg_k?Th1f$}Cfg*tc^M{9aQG1a)BVHd36=psKP$Cep))i0d$B%nojGKi2Ji2addy z3d9dzT*ZS6CL=z^T=k84)E@|811~p1<_;%htUOKif<=88XU4ge108vf44R17fBvl8 zqAIEa;#qrQ;u3th?_;H5sT=~aY}j->^0hGyG%v)6@pf>JdvV329s36i!ad8rfI(e| zm#7kg=7KNZdj?Ta#`ORRrjXy=q8+9$eiZHdn~E`&03_{n(d;8aQ*q+EKk(1rhwyi3 z1gp`gQd(rf6)k4x|&tu)+AJGu1?0fq5z?-vX;qFCuiuR=(vKrWYS(-HNrUw6P_!DOi z9>!l+uH#Bd0+N$Mq06`;&NAA5^8-yB-u}(eG{6VFgM6U&sE(}ENPKkS3gV-8is!1v zl+O2K;a6{<78CNz81yB4J^uqN*|rn0QH-uC4aC$#CAw?2vmiKEL8ctw`6^U=A$E4T z_r5E-^e?Yz36>n^vSADy}}5Y69t+p7)`-i6^uKcB1D-$^y_mkKL0>8(x#AMjb zXPk1gj>Dn>gVtrR+)4ffZKv`T z14v7FdU~5f(wI`e>a|ZWYI6Q24r_zqkL#AK$AUF$keYbFbkqnthw9?K))xdzGeWSk z&x90(Y)PghS+T9Wmida>)`LNN6d5s$q&4Es_H*&sj#nzg2b3GDXRXE)>lPzD-JD;> zQDdzT8TLj(E_K*jVM7n!rzeqf6sCwV_E>?lOAz{cdHmSb7}bC{^gi_--Gz^ z_(n4si{5~CO*&)Hf`SXxYkJ=e{>FX~JB*u>A`}$NVNJSg2U|auGDtm^N`NJSrfflMdjSs~2KqOF_sM2GBnFNgl>n+d z44LPUr8PUuP}8Rk+V`zI8HOyU?SZI2>4k3rl z3ky^Vkf42iR2VV4Cl+m3i0wx{#-V>U;;Yv_!gCXsqfgTr2=W;Och}CSQ)3jmPpLSk zlAF5&9(sHps#j-uZxaj|<}9|`1-g`5+A%S__Xq@4k~L@9=OfaRk#%eN9}=*%8Cz9D zF3g539eSKIktH4xqD0KMXnQYSx^FT@Jvx}Xw>4$($42m zIWBLo zKt$Xx$~Ft@Jl}s19$xo?;vudo;KBuILeX~>nz5TuPAfVw;p5rw;py)_xn&NsbA?Ow zpUc(ZR#xCjEg4a)?``BFwNq1U+Hw$mDoGbOb1VT9r_INiQ!In4fE`xWLuS~8tcP4` zQZ7tGCfJWC=D;>PQ`f52f|WOKPtY-REzE##m+!*t0S}>nzhQXvlgF_C{5m8joytwd zd_X+F;7KkaMca~@WqEE&(glQF-GbxCzQA{Xe}NrmR^w*WX7LDflKTEVf8yKq?;?9w z)m^}JU@Ml#Ha0D7+G+e45{k$$-j=EZPeH`h#RSkxs3a9l#>D;aJ&gX1$WW#(o1G4Q z>U!gL6^AbIZSnstE^Au7Ga45yho@X{^vjW`u*^mi-5ykwa zT-A+m^SymaK{Ea`A`1BV)8klv@0%Fec^Z0k8;t48?!%|MKf=wMyP(VDGcZGvFstDl z62dirz7z7TX`2Qy{sGT1lQW?g1f7|wg(f2%>6$dNsUt(10c}PEu7_{IhhNRbh6Q7g z_UQt+AGfS5R{7yQW)583+nDx%V^>aM!&9%CT8#}Q0i9d3A9@h3p6yIWM8itql0sH7 zT~-)aHP6y^ObqPa2LY8NIh6*4@M}kroWO-a%wQoQuH{JujAje7Eu*w3%w)lQB-XBI zCWON?)5es{{idz%#@qAeV$cJOgsXbc3Yv_L5z~>~7jbm!HtaZY0_S5xk(6>-kYXeZ zhCJ^viIq2u89B#=FhhqAhX#J>btP!lp}B`kTv6zvXM_rmaS)U@xj@}Zt#*Wiy#v(F z_2A>t2(1EZphKH>$Z9vJT*^_F1|e@hhF?$LvJ3iE8-SIM&Bus``k0Q`P+Tx;aZI-d z@z=QxrX!*=`o9Bv=PK%R$QDXT)ZPE8*U_-%Nc_0-3)HGn6n(L55gVh&*iqB5_n#c* z3Z`)G5pq%p1Ctq!lSAn$DGDQGx_0TgqiurgrL#b(q810%=!NCu@5jAw-Ot@h4~?ME zt6{*E6F0GY!$$ml<_IpuUqwpF73g%)mInLWkR(j9Ju8IqhfLq1QJ+N2he0iwb8=~a zpd*wHP#XAnzZlC+At6iQK9g;De>w1xoMj9A7g6)Mkf81DU4-`86xF=yD63sJYt#&y zpcc^8Zv|Z;#f!=lj>&OY_1s;^NHYfc6Kxvag}2{-10A~m7b}=q2kRHD!`#(xK%dFH z1i;>P2%LPYW&)8e`C~dR!-0keEN7Yj&9hFZ+`m& z$HI<7qYY6^5BX@ogdFL30!fxyFxTdxCM<;{OrciHhav68@0^FC6UL;iPhgTBR26IVkTt*b5Qc)U*|G z5bxQml~)I9;0}W19i5Hgsa`kRI8db$- z*ol3&oacbh?>@)Y9Z#FCR=~~$eVUKJ3vVqKq+B%%CRH?&llAD| z^8sAEYOImMtWKApU&V7^Q>r?kR-6_&4jN6~;d_DA`r-SvYtemB#f8?gw#dU{X5gz` zT!mZ#xq;qlhDA}+xF&=}hG@3PNu(u2VT4RFAW1Mw!7@`%39KF3=6?Km=u^?rxmUSB zjrgm1@8P|__ao%`ex#=vi@oOoNx&T8cw;#Q;VJ-ZDHN#%(`F>KVUjQn`ZQfwhQ7#A zlA12>3hxtz8if%u zcc{J5jx1|gJSs$qQuhz+jvqe%65WTEZx&NwVBFwG_b$Qvr_L&Mb94PhOAVNWN~Weg znB*&omqP8A}COJ!jX7~cr z*m*8Li=QtaSf!;lwke}FZ?C*kn+vYq9}jlufZ@;2LE~op$u<-f`+f_@_!-j$p&9FD zJ9tclqt|1~c2xjNYo~YSQl9#famU*gXe#G zPYJfKEa0jecMhM5vlqV09n4K(%peUy(grLEm?NDeUulMrA_=%CBwQHe4JM)HCTTWA z4t7#&rbs)qd?i^+vj@qXf5T&}yw7vw`}_>~x%>_(a&VAjE``YbN?2}NLV5lr1@&(i zw_51jtS4p;ACIxmjH=LbsZ|N-qDA)aDB5?Z(QKh|Yy;=Of7@a!BeL}|NR7A)85x}E zD`20bL7a*a`xQ;3R6LaSWpD3@yZbD_dz+TRyPQI<)5QIqK5&{6o@xTGk=5Kj6~fvT zmrVOs)sBh62$|rGp{7Q+J`+T^R{BgKBm)H3>5sK9{SSR7(dSn=@Xd=`FlWUACHB_@ z-ZT~fp)HsXpG!HjMMxX4Bw%TR;44RK3jda-h|-X7Vc<=tNP?C`%fXPuDhZeb%~u|m z=kWPhzFHoaB8fOJLgu!FJVwY@33)C*gV(_}VL1R$_`Q5zUW>dA`MDJCo57{kYt$Zs zS*@F6${Ww1RzrTQ4Ta&!Ax~lTe$zUODrdOXU}z+7edR_*^cj$uE%e$yq#>v4qt|VaL)TglV@CN90oDeG@CwwA=T0G<5 zsMK*bZ8h7mL{SKtosb<+uBXSE$h0FXHIap2Y?rC{YWHUqUPPMEh+8y!&=c5j@O?QY z;zQd>C~bt!=f*Wh;*)isp?ybptNR|9jr-SzLsH!@>U&L-ZYNDG{kdsqwR;064DeQ30OXXiXh;EARmY%RZCK|BuUHTxzCm75pti% z?=>&*Jt^`#*e#^UV|fYN2{mYH)GQB3p9EK)p*@_$tbmTf+Vw_YLGSK(VAYeA(pg+t zu>AXP*_rAKq356Ll+)3t+^jlvMq<ZF^+eu5GGe#6+#mtXQh1LY#(eJG?8*PPTn!M z4=!Zv>Cpx~TMWUYFD*vPmM+SYZN&jsow;x*48N}Y5+Cf}hnTos$jqd|ZU(QB&O0h| z)Qm~S95gty=7}<*%Bmfec__fEpN#iJ`#Bu_+bh-j60`<{r>7z*IR;4y7m=xrf`NwPoRHVY!GZ$?0|9t_%*-X1kc@dwnJII{ zA!NS6n?UCbI}*d-7@jgt2+3KwK~9dY=+jVDtHy?6LlQFwaCSP*xHui9`GW0xXO}@3Ep5%H)xdS z^~!6sk#WU=_nwWK&xVbhjh)Yjah zx41}V?Nt^Sbm2&eoNGzOe4aam(1AzZAb-#Vz_wsXbbO_Mha}A(#aS&0l67S02ihlu zvtGvhk=XeeBzk_nxy=*;c`m=3N*e7c?+9T^G(VG`J$@&r+R|oR=44FRzwp8frcEQ3 zE?sKc$``ySiq!WxN>QbkbpcgbS$f2!T)|I2okOF*=BU@aTA58Z6BDyAWz0Mry|7VS zl=*(~f$}EPC@*g;37N-js2t$KVk4IwgN>e@kiwW$nl5NZ|1NfX{VV>yPK8c%LX|rl+&NjT3@{))dJeQ2c0C1r#+?3Bc_XpPNT-67 zB*`(deXw2dd=fB;nt#vFWFKb)1P685BG|4d{CmE#-^W3WsfF=yp^)DJx|RZ#4=pu3d(D zb*wSFxP_!dJ?`rDAogDP2Krm!G<<-&h0rKZt&84K%ZG16<$|RNgLXq{SEjR%p-&7Q zFx!<`+$gZx04yGP7iO(|uu>F{uP8h|_;Gx4faX}yFYT)-D~MDEXcJyRaty)rvOQ&LR-#znj?8^6`Ms5N(=qO;A1<9BrD5pHU(PZp$y}33N8Ej9Mc0)_M za&sYf3t_7x$xaYLtQ#MK0>e0n85-nkh`Nt~^i!5dD~1Rp-9FeGC+67y!4+qA=m5`hhi9Y{uD zuuU<T5UzpH+4t_l&7dutKHTZyd zHTTbQM^?r`B;A-PuFcG|BsV61FnmmAxzT1zEtDsfgze-HWLvQ$XmSzT4qv%1wQ7Rj zBh4QaNxT$!jPFx&TvJsdWWth^X}++G9c0=NSILk!O@VP03@-ZF42}I;V?^f;Xg{Ps z>UM6dEVb?_^dpwmCHXRbFkL*lYbUPZ@~(r}vhxq@kGzh^@V~_SyoY9RhjyuNgwP;Q zGle8$j(+A5&xT43HZIwwI4xyp9OIQ4X2~|iYJ+`+nA;S?o%{lOWAW%on7eYi*yqvP zA1p6BxcfAmxMYk&CR}Um5_g7^*7AozcNHlSlaZ-4I~Um}xdL;l9eP|zLF2*eu39f)d-p34`&BrOJE0*v4iYH)R;#IVW%>avV@}`XO+DZ zTs@k@MePqawF}%Go#5f5hPSgCsd^o*B&HxKEex8JOUTIJOeY8U(0OyEcT@&((@Y`B znCF!5UA3XKkZp=nP}&IDrYu9_?h(Risku$Lx!1<1mUrOY%`4y=z_)I1TsW10;p1i@ zI)Wt@jBp9s3Off{d&(P`NQ;<=^i&2=C}5wXbBsaK^g7DwXtdXoj7f%70#%Wa3E6?z z6WD>6iACoOiJ5VO)SB-SB8`3jB4>WCvKoc*`IKzsX5_Q95+69h=?|wwG*4U=!bZSR zSca-_N@649stGm%wiBAZqzQwus5D{FU%`}XlC-%kIXb$aQLSNEy<#c44zIWr{_?=) zH@0Eso3B8dO6AiC=b&$)awz}WG)a6WL?(YQj8Rrct5T-J@+M>w zsWre6k0T!+1j9-gV@R_B?M93pWPmWE*6C>_c}mSy604bf^?JRsDl=d6AY-1-hsw{V zds$ZRms28+!hG=jd>a{8ZSdLgdGlFvwnP7bY*U;KF~NX={A_nhJIc(|;QY1CxO2vA zyz}s9FxXw%r0Zo#0vMb71g%;Zlk$(UfLWymRsn6p)x z-coC!woE&q%(kJ1!-xz{KdC))Zq-wWG-t@awfq8J9EA^(WY2ImX_6o*vy;j~^L*&+ zynOI%6t{7A{7*r)32DNRDYepxOotz%FmjkMT-|D*dxJsvaP3Q|-_ke$W6)<&_ffzN7UN;^1_w^gS{ZW6zFQ>~ zr1I8~txd=hJV|;vWk?FAog`=4nQ7ACD?1mD(f&*isU578RWWu!^O1*oIEE%?LI-UwDlc*ET@?gF-^=$XdP6*zDIj837O$foUu}2 zvbGbiTyeV)vVnfI7ux%vJGiSi?|1xbXt%Uu>Vr{e+B>m31&$|K~!<3 zx>ksE;xWpJY)wU}$|^~>8zD>Zk0{dlN09_AHDgJ}mS4aJX-Ud_xO}BhbC#wF8xj9^ zAlnh!jHL;K4rJ-@V-7KAUS?8ua8Sd?uR9(YFaq;eKVI&OW?Bm=LKPX&V;T-!{1#d* z{niSooX}SzvmDvK%)g!BGDuDyec|Z!0PG!EX1Ju#AtQP|QWA}Y@daexq!W*}eTG`d z`Z2t~e>sAx5^h&QwuB`)OA?ln7kGgrWjo4&4GO~$Ftx09a z3`R1!cyxuM=Ttbju*7h2kcEucCvq>}PcoJj+~kTpG$(S9sPev?{{kV~V1u>5#wbk~ zG<`{JnYLtxTGEU$S_pj>W@2L2sE>aa%7MbBk<~5U& zv$G$X)f#|jAAKA{r+0!gX}ywysnXxRvj?-5+>f+01{x_KA+n+nbEa8Pon%O@l!Fsz z46=?eBT`uWpEh^is~lRhvvUxfyv7M)o&-A;Pst4fv~kZNJ!wmBGNyS#){T*2r*yLO zBn}K!9yUU@!G@B74Kug4%+N|kV#pOISPz3Fm4lExy;@;p^PZUZ>htK(J+M-)OmgaI z0+n6+JKI?rU#glgj0%&)WhRj?TbG0+4W)L~H3?xbt@~))zC=a4VrbEp2o;wZNi|Kf z>K=4D>fTbFBK9$oV9Mw;sICsO(=Aogiy6b%FWvnE_WXFxbKd7UpZ9$~=Xu|A&U^eS zYDyozYHP;nVTIcf=3+Ps@R91#itis{JhU1hnH3cx_>!!51r zDg25a7A=AEW$`=OTTJloQ}KposWr0fa;$45CMA7q5v|Ty4NxhIfmj==;?Yc`Zv}4* zam;Ds&^cxo02=yP)U^`HW<_^27TvmDZDAu*GQ7pN&6og=5exo;6MhodAj70mB84O2 zQ%TOX=Z_EhjXA4>b2_`ZWz9gX$`&Nu@2{6H#;4QDNmbp>3e&UBTI;B6q_{vHa zj!AL3l(R~X=+32($cjQeTF&^T72yvv!ATQmpVM%_lz+U&u@eC2#PsnPl0qiGU%TmZgFs)0c|CaS}%~SZo-qx3&hPxL(D$zW(dRSu|ysYr6g5mX}x{cW{q% zvDrLvZvH*)&KRsfykhcn`kD2b>YFyX|EBQ1N$aCY7;LqS#XerQRz;o4&3D|sdFHy- z8*XSe`$2hfZ8SFl>*3Xo`=>1ieKk{tt5~KD5Kkr7oU9U`&WbGsz~*`~5F{k8!%w?@ zvPi7)K4eK@Uixst6o_|wlc?a%hmu9_tU1;olVw{n-a8P?0z6Yk{>edM842_9|`?u1<|fytWJ9Y2)BLWSn3zM zvaj_c9?)r$;>uioQYaq)!|o-A9{gV6Ilih-AoK=z=TOVj)vzye7(Q(T{9%j4D^WkS zFWfv+`m*5-YU2|X26ZT z-7Vjgh4l9%RwK{fG`VovVR&7TF^}lvRaCM&>hrMll0^G8RZpXm;lfffn{~=Q*tIv1 zFfFz0~(LH^zBsmP^Ilah^gM)Na=#~vdnB~vyy3dLADW0VNm$cGLB z9B$%xRSGyv>?uEN0F{#&O!}s?XF((_SN;85+L8B8hHC<84c8_K=%N#!70*b~B$uH~ zM$N9HdVap_f&8v@mw-LyC&CV%fE}DZ+Tjhe%pMmsFMS!u&TLX-h}_#}pl}=3pE10r zyh=pc;&hE2Kk_z$j;sNa-FEuEcJtN%w*R6}7UeJdi$I+Ne6iHYdlt21&lg7#p+^d5 zZq22$c`^OWJ+B)x7mAb2oEr^O62OzXy`c0c>V_vag!4!^>P34BfB|nKxHl@iLX)J# zKqH4}MYu8PM)r7L<3kqJ3iK&t(C^&a`O$Cen*KhQbFqAh6<-oXRz&{DuVZ#zbEPVW2533|71B^(P#fh)7ac|d z$;OWGW7*pTMMSDX#A9Hw(Lxgcx&{U%rRUD|7l~&7heNP?$AM*=WR?2!0MaD;4l}t? z#AuLd?3Z$^wW3o;R^(OAUbkc3JDQ=eT2|TgoAfl42Ct4*R`Bp~xMgKgJObJm)yzVJ zq{1hk*+G0XtZQxu+owhIv{qn$uA1p>U9e{~dt>l4URohEC78aCWXEu^zqa|_E^pv` t(pU|f)rDl#3-`GN>bs`%|B2FC+|_^X-YOi;Yy1<`=)OTdx4oF${{Z%#kdy!b literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail1.png new file mode 100644 index 0000000000000000000000000000000000000000..2dcaeb92e3bf4650be65948ebacd9a7ae8bc24ed GIT binary patch literal 69118 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

  • ATKFj*pA9VSx9n&4rRut6B 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 literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail2.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail2.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0b1d4f59fa046156fb8911ba14cb73ccb60710 GIT binary patch literal 73351 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 BEpq?> literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle0.png new file mode 100644 index 0000000000000000000000000000000000000000..dde0adabb403485d9f92830f5ab95a4b4396ad83 GIT binary patch literal 68649 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 OK*OB3F|9W7i2WDz654kF literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle1.png new file mode 100644 index 0000000000000000000000000000000000000000..7295e95efe9c962cf5e5cee94ff928241b81765c GIT binary patch literal 69329 zcmV)@K!LxBP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D|D{PpK~#8N?41Q* z6h{}w|982#dq{|2!QI`xxRsWo#i3AIoVH&n6{tZ4D^lEx6|3Ox?h;5s+~ty-ee-s2 z?=BFzBzKn!&5usAvuAsIyZ?Ff=FJh(sdwRw@4hgdbbX3T<1c{|a^D)xSkW z_u`{%p)PC-btNmh`-J_%-%<)mUiW_~=1Hk&zxfD1B8jhVq5Z;NVVeqxwd9q*y06jY z)w;gCdeKo`D1tx>e--L&p$K)|*HF=g>cVq`*9hChtIz+>QYzXdk5bVt`RIzSAh1GR z_)CQZSSXgP&~tU4FVyKVE1jY%+`?y3A%wpLMY!nbudq#m`f4Gu6^dM4bobF~>3O

    8CJfgqHE01HJBS}KAVQxSw#5L@9f5@Bog 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%0DW8d%49(wA_m-Wzf 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 K%$b<;G5-Nz>y;7! literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai0.png new file mode 100644 index 0000000000000000000000000000000000000000..911378cbe91f2a6fbaa7d2ee1f8e71de3f7e2d75 GIT binary patch literal 76964 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

    g`m? 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 literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai1.png new file mode 100644 index 0000000000000000000000000000000000000000..f89568bca25c2a7bbef738d024c2f2f25ac398e0 GIT binary patch literal 75434 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%0DYz4H_ zUX)2~u}qA`we$k@oPo|@Bbu8z5_C0IK;NzIwMh$apT~DwRv{ym&v8O!Am8rQ6ECm) z9R3}h>Set)1p1A;jqi@urk=QYy9jC7vCLX6MpoV}9KUcAuK7lAZWqYquhBLsDPrt6 zx*OLb_Tyr@0#Q+ypg46Dg?H0Ym{SCanH3C7cms{9BIab5;r4;kxUqH(e);1MY`Cx) zB}KG$hZp!)x(~wBEB*&>?*~WJG@>E*2hDSI8ruuQr;fpxQKQkt$qPMgoY2k51)aS8 z5a1gGH~(N*IkZJ~t_ezt%QLikJNLz$FaO6z?%F>&4%Xo2V`{_6J@NSUulLz~&uKFm z#FUAQau|?-OsYiwM())l23F|k7J#Ft*U&COqAs{^_shzkj6I2RFyvu6$< z?7%kc-?<%ocC)s32eutOjNRdfaWDA{lnSQ&A``f}4#PWxM&gO@--WBw!_O;qtj4S# zu(g$-br%nG92J5dQwE{`v{9V+kDV|IJz59DTH%0Wq2+~jh6fEo?@7Z{d)k8*a=J3p zwzjU;9bf;3{a4hXljH@V0C?)1XyTQ6JQ7PTDT0{Y(_V@cT#CIxy96x=A(1C*p0>$P zqH%vbasMwvT@v*$g1d$km3!mNbS7f=sMDz(bfTt%b%a@)^4t-cM$g?JqdeKzU&Qx^_mU%V>@Pmr zptiK_?~7iJ)W7myGASz=7H6tnq@zpZ#!?Kjb7GcV!zV%OLu}k`oZ9{++UB)Yoz!OSW|b%fpYg*TCSZzpbsZNTZ1Yq9yrdh9>B9%s(2NBHG`ke+-1WhKl= z6`8}rvM*lj`y9UiY8jsUKd~$;x`R8%d4FYXp?K>cD>oQPgSh>?tQ*ivQ!kopREoOH zfS0FklZOdVI^sh&4M8zSSl(raXG4(iwo&wTQJ?HBUt2pWAp`}17< zvgloSyO0}G%!D8j8!v6aPYYi~O0w4Oc@D?U-QeL)5q{Mn=0?D@hJXr_(7aQxz^V9n z)Js_N^KbZQ^CuWI%3kB{r83r+XGWD@_a;(*xDU|2+mbU%>#)H4%GoSjj8#{6qaTYV zQSTRdihJjv2%Fe@YE2?rgraH4dMB%&3~Pbmcmb3yL%1BGZQAGRR`UrPOdA%W_88-4L>2ocM`h@n9-ul$H5z$ zv1-99NKe<=eGjieJ>g?h-fK$qeKEZKJk03w9A51G4Bj0)3kwHN!omR~v1IaW{Px{1 z_(yt@8fPTY;E4rpsIlqTd_1n=)B?4%B`b#GYcb#1URp)<+$f$o_l2Z2on3`4=b)~ZEo8WHfdB|n_4`6BC2Bkp_oA9j_eqG>e zT|Q%TCridYpK7O;^mx24+PIgyY%VA3u>8$KF!CM@M;Gm9{i}|myvz7?^GX!PR$UmG zC_DBmj@)FOyP||!C^ym53d80OQ9asp32bkUHCw;KprA>rIt+!_eswecTJU&u8<$}A_p>l?lp`GZr)m`v z`N))VooHn(y19G=3LSmma9`E{ zIVFy`4~kvA5K9*c|CqVd0tT+W+_tvqY*D^~A}Ox`g>`hTQfXWt12H59{Q1f*N`roW z(-8XXZeuXO(~J$u>L0h>P!f~(V#oHcP*fqKpFpWnj-z)jBR7-3`CL7Eq2GjQ+%UX3 z;O=FLpa1tCtXsj@l=puZ=4NvlS{oY~lg79L zav~6V=@TH zDLz~MKW5PnW=fzBN^iX8%tl2zpF>k_(AzZqPcEcfR=&tzG%mAbNY!WFmjZMWmFkSgk8Y`j#*-D38~Yvmu4zzSBb@Z(LzkNK&T5JDqbM@trbN z)T%t!Qahy9jxaV6mfR^28K<7yX>{bq=IHC_%SBr>CNwF%{qix~-uW&RvLYxiZAWNg zxf{^m(h6P2Yd4xon}l?;z?(13gVd7GuM`n`9HBpaQm2{@wSh8g_Oz9<8(xB<;uKu@ zr~adCO+eo-BPj|pRgr6JYirntXeLE@Rgh8TSjX_sL*K4Kblf4;9;cIJ#goXBPLjxz zRtn-?m4!}|nu5sF*h#~`>Vs4#^7KI~ioAN3I6pT6@nP!Fp@(81p{S9*YCm&EQ7j}y zg3qmPD5WHTv>2C1E>c2%pODfIXRlu#S{ad{yD?~XG3%IxjExEr%sEm8D zE2aguVc*A)b!zGOJt7L%c2z1i(O?XjE#zS74g*6kF2p%1^fYAZFbmyN#BAUz*_7Xh z%jgJC3j;W|@#40%fu#lSBCRc%%vN7}bf;>MgVcw_kVKwtRMJdAv;||iBD7D#6tenB zD9Gy9s;h>mO5_Rp@bm#licyP7!Jio|p&|M7SjIJL-N40!gF|vVF@-!|= zA|f)1MGuu24Etc?>c^tS zHBl}yTpgU@T!26ndq>eZcp1-~&>Qn&*c6g`3N>G?I459lfuWV5*Ket-avoLCdPMPs zdKM;H^{$0UO&XfQDzmUYI2;%MDfp`Kyb##EGs=1!+3sfI4IKHyOkxim7dGrge1cJs zIlEPdk9X1SkXFuzD{M_KtN>j}%l=s_L?tOv0?C;RGT7+Jk1}bKJNX_TW&b?E_n4iG zByXwui;d*@hj~)e>+E${@@Bt5Qv7*b-e}I*a9_B)0liu@m!cksvk9>U-rT!RnOh-M z$tej4IejaUk&Kp|Tf)V|xcZc8@82^;AE9E%&cdanTOD7c3jTTK)VUw*?Nzy=msFEWP~zui^C)=T4a4liY8Pd=452BE*2BKn~yxciYjPn^RLk~|%P((Tu(qp|z+ zF=+S+E8y%1RPR3!Wqg}RuM?6k!|T{)>3M!ptzmmpdQ#B?rQgK)4R@yG?J%kxYF4=A zH{NmOH1z6x_?HR*)wwN5N#-tIeBp*34eAz%I+Bw~wjrS09o zjwK`|7CH@sPsDxnDuaNI9i``m2_^%qEa)RY%_>t+^|Cc9kd>KBP*Uac0F^m8lB6v+ zT$w+q?q#nC)3{nj;aGmYNO3P3l7}1Yb=Xs}7n1HiS8weLyNRHq#t9N@(6DU<)blfv zvrZF&kf8n2^ZX*cML+oX8dW+sOTK>jR_b9H-hR#)->eB#4#r8^)U;!W+%#8uUQ{@9 z?vQjogqueL1hf<*mjdu}W~KotDYr&Bwn_1#hI;v7V3k0)m${YX$`(+*tiLqbUs^zc zG@w&^;{qvx;2Q}D+rkY{3J?B02BU0QV>*qn_?tMeXsh)6VIna$3x^ZQd&Ul?iH|e< zDinV11SV5sndS$-zw6Z zn;?0XI!}lsPc?52RY^=dg;Psbm|oowL;goA%!=5`yuR9i zL(y@04ljGW{v7;$+eyzk53n@oB((9?&m-gq+L$nGzIH3AlD|&?S`IP(?ffG7S};;A z0_@A1))?3#lKM)0-ok_5yp!;*f;q7A_1t-P^A=Y9~g~CA9rd83Z ztT9R;BQ*$Dj_xf``0s<@*s24FNi=$dIS0|KY=uJK8j<;F{B8y3S%qsCQt{*8%b`)z z?Jj|ALlu8h7?nAR+;YN|k0fyNCJCKH&IZllmpti89(`yfe6Qxflj8-+B+nBxryka7 z;;`YwsXIa#?*{G^Q?YSdczPQvYh2PLc%HC6-rf>z8#FcN+z3t2!ijx%4qxjxbi>q+ zbnO@yPbI|d#_5e;6nLkhd*SAeFOi&V3~%G;;jsp_P|m+#axx`0L^Nb$eip8J>`T%VWORqPxYdMrtrpVr!a^C*j4J1I9Us@={PE_82)b(C z&54CVj|NvL@{!C>e&lgkmGhC}m>v+m&)2^Rqr$X|rI$Znyqdsh!5c+tgVkr^MsjhC3H=&{Z<@ z{V8ZvOC}&a)}7mjtiwx8uL}p7psiST@v^89ystoDU^n!AZd|^HgapG<_uu3W_pCpF zn`a~Vl`{^bZ50W;ISTTPK=I;H| z^hyHBoCU+#VUjk*FZt0@>fX+ooMc!j%+eokb0kmp;)$^r;)$AFHYtfGaNxI9rdRhz z^=c02TggjYopEMtS41qFllhbRgVx;#ttuEhi?pOu2)TM5DS51~s!`hw&voq%S5KoV z&}3c2ZwI$QbIkg4z8AOy(aIgmML8HZ4`A-?Cu&tf^Io;3*ZIY@t6Chrc`FRl-#-u; zt&4v{?|UIfWrxa*hN5ES?xrKfiz_FO+C-wQ!bbI8UEu9!Txp!19*@+}Tj_WU1J&Et zMSVY`-#;_;G=ly;Xk5Vk5WvinyJH2#nASQp@b!_RehLHLUIiogxL6&2T>KrfGR$5A z5fem$7&AouQP(qn|#32`xIA zCt*W^w_?M&f1o|}U`j`~Afa zvG=SwOq_hj0%vk0S;fn~_}dAagil74BNM6iY2;A$Vh>${+>hjW!n_EcFfWRJdCoAJ zFYI#673^GU-qz~A=<>oCRQ5FzmsWilhr^jUF#pJCH&FD_Mwd-|!T}ukbuLo#Q1k3q zUi|Hl{&+z)#K9hk^rYJlTpL$8Y@18r9>gwcuPtZ z7`V{L%Q(-Y*G3`Ml&P^WQL%G>czPRS)1%_f;^0r~rRPPB%i9klDZ#j*kh@nS_;-3l zdR|aStKLO_NXsuc;k;zVZ+K^&;D%cu-?1@a{cmV2%KV#uRZTZR zmzoVsFS4-WS_n3LmiKuu80W*E=b=_5V`e`R>E6S8uu)X3;J>E|DPi4Ss+yY@5xU}i z{IK{V96Gy3{E)Gs1ymh~4+iu_zt;-3k1R76Y@Rz0QL)CDe~vmHtyKY;4NA_+&Gf1b zFs^nW99@cc4k0e(B2KR__%@Ta3KCZ}t}2uwnG86SqAm0YnA+W%qd|FNx(b~-6x;Xj zdnhiOe=naC9hWf?Uls4l2xwC9{U5lBwYs`}piW7G`tm`j5C4JeZC_yf50mlf!dLL^ z?r#tsy+sPkB&t>)jCcF>#@M+}Nw4z@Hlo!ZtrcZ>Oq8^-VpXcp87^I)m7bR*r1pLp z&FUIgXBHRq+MC$AYL&ErrL@7*tt{*ujFYd?=^Dh}Fu6Di2~1cvq@gK|g20}zFq}PE zxPRkzM2Dqge+-=jgbLlN1{5fK>ttx<90r#~zv^Nyf-kpeyOmhMs5;H^HP6!JY zMuD5xWb5r9XUZlMyKD~~){s2G3u3d8Ln%q=?42Zp#~j9%d7MDD4z0VENApUiCCfSK zSRa-E*SP$r)Xk_^ONYH1rRPP3z29#_T%s`|%F(3; zYB%XpAb-4%=$C2)q@P^!)3^4F@lGI64_s zwnm$Y%tToM7ajr|S3s)@Mwd;FJ_UcC34%t$=3g|pcHtN@(~Rpve9P2Eh3>tj=hlKj z4)nbT2rI}6bK>&VM7;j!qc|02o?B$iVGp`S80R4ArlGvQmz&0BVJ*qC*W$%-vVm%z zE*ox-B3-QBpvT#Wqu8~~`U%+1quZfzC8Odak#3BLfOB&GSEN$SPio%Ov{|?T=g)1z zvL!#?bC;Vc6@j1Dyo_bP{*CF~pF_i1BT>e$3p~8rN-EUNtCbXX>0YJ{`~&)zxZl)vmhnrhjJT`2;xQB%kNko^;@8>S#dQjm;pcFUk9qi!jV(bi= z4OW*~_#{si-LFk2bEMSOm=J83T{t1fw<9Z4k8M#x9GmKYs|w}e<7d5$XQHv1LMIl~ z|4v-Fnt)eFjKMz_%sH?~@SJSpa(*s)qO`wPG>y%}e&)=X_~3&NOfT;V5HLZdX!$;BIjd|t~t9n!~Payk3I(D5ugB(LDk~199OY|QZ^^N(n^8?p%)nUj8 z$IWmtsuC6ET5KE)r*ELsh~A>o=1rJR;woy@bwkHTd!s{-q3Bej5!#9&MyG%P^r%%A zJ?k_;@A?hVzjYgoe`Y+!zcd~_$Mr+gp7r73t}3u zvGB3;!Xx92K?{Y6zrWdrKlkiIRz`^ERD3Y8>j>2E-TJ;U?R>wyuQ5E5sl^M5hzOk^ z_$RR`cc>)&5zB-H3FGQ4u1utxhR6ASiE-1&$ggCiJf_Qr7fqSO8B=LctkGz2;KnhW zKE}YC`-3FeVaj8uQ^ly}v(ipuLs%#r)AK*kLp9&KauY$?#)?SS%g-kc;mfga-8bz5 z$-YT_VDQsT@$`=`;`yaBFlF(ZLaD!sr+%D<(I1UQ>mF65oEHzWfdSn!n--nIoT)Ek z-mx<{e`dKf940)x+u`Mo-4NgZCFyl(fKQ9ZP$kehHLp>p!{O#-sM__$vlC{)*{zZ3 zoq|J~eGSV(qj2IMV`yG!fXdzuu5QLfLOD4G7}P~G@8DnA8C|MYGrbaOJ3JAGmKT1+ z()A;UkQis&FV)k#A$&UwxG%vo!)T2v#?7}2DzwPbmoKaF^6+P{{=d?=p1u z${G0V{9byVU&Qx&5##IBftPP*>9soJ0v4P&hwmPL_o0M=-3#YWCSk$Y5Aey)3$WGCmb`{4&^MP+FK(@;B^Qf%gkN}Xf(0IK62Ab0lZKUiA9O+?;2f<1o~uFED{ zV~{pM$uSs5vNe4xpjz{LZxTYc45Mf0rYR^mPqSxp6sC=N8f%U(HXW5fImjFaBzWcw z=WMV%(OO~&p2)9~Ctb=h^PHIAP-ed{sTrv?YOD`BfaqxJ+*ZuV(Qfh+s9wbw53b3& zgjJWXz#*$(zQ)+0Gw@9JA%a*$O%O;)*pCHguHlCXALiPK<6$8wL5H87`3C=c<8{p5 zy9;N6mP4mDk{RJst~*|7-w}zUW}A+bF6g^YMcq30--ubSOM)u>*1mH&t-4~;#JO;E zE?9a989Gfcehv!3j$aO$j+AWJIoOL4v#G~Y8DQ^e45us#G#JtYHOd>KY`Ev@va8Vu zK4WE^v=!L;`378$W+F$jrvv)b2t=8?gig8$QfKTtCs-dO!)S(}>t(YyW9rK#M4BLdy4xh%4lRkfFM9(Orr88Dw#uHO8d*@F4 zb9fapQyFS&f}JyJ*BFN9hdhadkuyyPOCK^T)Wql-)#2iCpUjXsX-LmDx~^o{x9*Ck zp7{z6PR6}~3yS!d9a#9&Z&Cv<>Ck0oLu1Y%qJo{LoN~MH!I=56?L-G{ih8;kehgba zFT8Ndqlb4PJ;j*9!^N#W0-N6%rAGH?fWJ|_Kj>~>;gNdG9Qi-I^4*8H5}a%CBMX!V zn6iMrJ%&x*Z^2WELP7dP%5=`AQEt;^!(Na3Vwu!@7JlEc0ddy3=B1vw#|u+Xt+H{? zP%7P}XM^CBTJRX)%8$Q|+Es2XjgF7nh7We^!onxNDAKUHWKkkZ-(8It9+`|8fBlKY zdp9CMkc{Q_bWnMrUHcIj*Q7C$+m-xD*83r;&r4`qk1_xEu4<8a#NXPt=z>YlE_lGG zn;h)DvI9T8QgGp5D@c!ufkta2d1q%&ICvLe-F`mMa^lnQ^)a?fy*5IMSW1k$|3v!z zaOGGiHr^B((G;3o#jge$4eKdAC&&q$SgjK%M!N-E7$rkWezraoqk2!mcYA(Ba)Nma zKZ1qH9a5;k7%C|fysY3$Ji!wMA$dzR&mj%RaEzTa`)Fd44q?St+pJd3ExJ|3(@h(g zxAnVz<1m~ze<3|D2)HO`#GohPQ|{KpUuxn3y#LPz{BP)sxO&w3^vL%EFEKn^hhJa( z1&{T53e$gCfEEA#iTLR4;!TPHp-80l0H&hONyYKwhw$sUAY}bH1wQ*ZN-Vu#&iQUN zo1u)~ol4El{#JtTcy->rucILPabxF+&la4}47ym%*}M^_cb4o)*o>qEq2!I(*IZpZ z;2BV~3E|3Ba>kGbOeScY;k*)d3L8Gm<;Tu9xKMG|f?3r|YJn{pKes&_xgsg%_WAy)-jgwRgQj8)bk4Ymqv7#Fg&6(4I!!cAMP(u)|0LZc5rtL8L?v3N*gZEFs|l;JPKC&vS!8Fu3RC>Zp~NKU+j zQ=uWa5S4-&VSC}LcYvl+!E<)lGO}v4M5V}mIDeD*oo^Zo}ai5$J(hEgwbGF4ax%lq_h)CI9`$ zdK|vKSG>wW)5=ZJXXM}q3hT87J{3I>dmspxqUo~EL1Lx~{-H5wHLORzm3EqFKVLrk z9{vfU3tS_q_*XjhMaRc`Be0S&ocTe(-~aQy<#_Y`xmb2^6_S#Viw19W17@qu?m!Ye zXMA@HNB-3KxsFARCo6^9x z&9G<9aYQFw5cMe=;o1On(ZnLNmeDU*5U85=M7J_NxE`fJx*$|m)Eq+wk`gZB(9JmP z-g61|XJcU~R}XehPEuTbin!g0DMAs%h+1$~i+#%u;qb2;vFhig_-^G|tUh`GN3L#0 zW`-avi^V?9?hR4DY8SlLdkkhS`WSu3G(wF)6{=TNp{96j*);&Idk;cA$3P?}h??MoQ%`!M-fi8e@co zhj$&+>oDM+VS#>4+rTbNjfiNDu;szz-NC4hCe21-V%S0`%Z?5`hHy!CrO^wP}8LXsx`J= zjOfMrZT@BlK3cN`I<+xRRqeojnEu5~)T!fIP#q_M8wRbPyB+^~^Hco1a|NQrC?Us` zAy$Tkil|KRb8xB-f1$F=JGjHg-3w)0oZ;oDMpRZBE~R85NsKBoQbWY|@>nLX@`7LaHt1Z% zAAQ?*L%-KXqpY9ZeJgE(;P&+&|B0WrZpHbq{gU5U27UMqYP7+yM$M4W_XRHtI$b0jJ~ z%CAk2)?&xZIe35bFM{O5q=={IyL7-ie|>Lt)XT+7YK$2&5!b^vNUvQzn`7SCXE1K= z69p#t@S8epo3jL)jvd7Q;EU3N%DW*e+Z3^8)V#|1OOkjr^R*$6d-B4?^+;Pn>d-zIZy6TMA=JMmo|ZN!G3LSp2^A4`~Z7 zYmg>-l|c{p9lv7Zk$t!lc}jF71)YGkgNsKa zRIXGT!>ahAX`kWfGQP7E36S5SWN6ol8Q)>So;`?(-7RXtEuS+-1|4fPMysBakkQDP zgsr5b?8+JVWY0g+ng~nymhXY5o_N>l9QteC7>%g-&8Am(!qKG`W^^BnXMg+9>XD?a zg07n1r+kaoR{kJ~A0NN&`1RN2=+*P#?5oSpBIu$4A5VS`|D5?t95F~aon}7LALHgv zx^JE5sCZ1*sW^0%`zs6XQhDOZcEj=I)^GFeZenM3=2!v_e)Aiao;{1pkr$+ek9R=j zis8-2>t!!BSXG0_Uk-3`sOA18K0#=ZM7eo^lD^P z4iPG@vVM)R?w_5|>k_2N(irFJXzJ=IO{P8&RCdtRY=IhGhM>2X7c?4oBx;Tp;&PH+T(fbc z!J%7VKU7IvQhO)wz&O5D4egD`XU8>m#v z`d!o*m9uBnMJ$;yAMgLP4C{`sM|AvA)7;jb@bGAfS3X~grX7c)R(gi$U^tf{fxN_J z*d$GoI!}tvWs?b&W-VlLCy|o_d1vUhW-tmv$Yi6`rEyb2njEacFe$EVW56gyGdl)W zT+1PRe$UB_!XkNIBu_}bNL~O>+)krOKth@`dJP^5Z!hauuzEdjoZN5?*J6w@t%(V- zsOzSNV`EOj-rf-w0D_IPsx?KWjziGdKM;KbYNB$PYOr^&4LkShg2*dDWiQHHydEk1N zA8@mufZAo@d^rL8u3Q#%GZ~SI>F^DSM(bgH@>JwWLczZ_`U|Z6_gg^_#(Pw*d|%9- zIu+d?Yc9RM7kKT_F?wwHd_BJXXaVM~T7wt?@_grph@oJKUO|Y0#TXL%fUw) z|0a!#KWOZ5DhVU`lkmA=fK2rKUH-m&9``$!JW*IA&p*zS;jQMyvUlWNlx}@oY9eZ6 z_@H^;=2rRU`I*LTJ7USQ-Oy=;s?EtnSe8G!X=9LC`~J)1^8-!A>d2_m9?mTvL6uHJ z(WF%`w5?nVU8+jT;86*&LV0o$uY0rJ`235vQL`PlFD!iUx@$M9fFa`sqkN(- zE<_rTmcg}VI?dC$A^r z?ENydnH$9q7)J|j>-5Et@!h4k`zn=GXx6f+oaNt)!&JutcT9e?{7VO;4&;-W8-Tc^oJ_ck*$@;KjbCya`ozsYl> zn@2t$jxc1)>wNBt!X$ZuC&Uxv?WVD(veW6(a3jeP{fCSY!#?X;UfJ?aNIji~BUd;- zq7yeb6nam8RIA@b?I2VcDTx{?r+0vO*+R;fygapy%kO4;)KgP#9yHQ{1Gersa$SYX#&pIS0 z9+jeRUhCKvV?Uo_de=HIdg080a4dO!2GUc?pm~?7R%g)TP`pYtceLr>58mg)5aCo2 z32~e#)*)69W7&ud__VpT6uhKCUAZ1wM()Ll7_H=2_3>*gMsEY94%S+DA6|ov7cL?; z(zvjuS^dG7_U?PA+o8Vn zOoR?cZlohSGeinUK9}Z$8;O^&ddDH`JoOj!Iyr*P4i(Gy#YZpC!q~Ta=8A=9CW|W< zGO%&(I(+c%H<{|3_fEG2oBQ)q7!V;wLU72j@z9F%a{dtx&zGq4He9mKh zPgd_d35r=xCNaX08)9(52j7!C8H7q@2N$>UaCi5Iv$GEzoxB9ExEZ6K47uh57PAK1#u@4$uV+o!dDU7`ueNh~$$QLYKtbc{BSn};J=rPp#hP?5&lNkTX z1al-z_1eQRruSH+w(2LnE;9V~3ch8^ft(CDHHZE| z!v?+4W9m0nuMM!%>kzZ}IjlUiMas+1=$zS)O~Ck%Mo1lGNd|Kut$*)V%-paEaWVf$ z$I6!Pjc?w4AA_DUW`-V?_Y6`K_nVI91{Vc(tn~;czcCAahgJZyB&Ve4 zv1{>OtXsPcr^15~n-Pxe3?brj%!`$BL1kY7j&6P7;64a;j`!w`jL5#CE+j~z?7I*C zz+*2qyK7wt4T;B>&%A?gcIRqCRLeBx0%yu$k`5=17-Go4 z`v_q?ZYFnU=W^&;w?76nZv~%5ZQ)kIA0FlXpiW6a%C&3AiVTA~F%Fy0U%=7uGeT6J z5X7I0yGiN{Y2pN>5oT;ak&(eS%+i&ox#Al{<#D8;r`67Q$d}F3UoN$LZbp>96@x-uLpA`r?}xp22{Z za(60J>C4yWNIP8Bs;)v6F<5gEx1MStS&SIhi%Rxy_#UJ?+o8K}XFM_I2`RO5LGkO9 z1=yK>1{*i-6UsLdqkE1<*~bgEFRm@YBkTgwb}fQ;gYHOaV|~hjvVYIR7u(h$Gxemj zuHemXL-F#TAHlWcPE|;%?&{?XEPiz+emwcFbZvyMUr&57^#zQ6D}Vc+7By~!Wa0bi zFXQhU*$BCwd#wkgU7}B|k5Y zzI&29YZ)h4WrF7>7A=JFM9ri$q5TL9nDhoZ4Q?g5x$d=AgXePYWD-_>@EI1JJc5|$ zTpcIL{10KQ5KQ_*qL))4^IY#q^o2?C1b;{_0L~yY$1Eol9v3DJ)O^ae!n~*7!V@12 z<4dc+m8ZkIJ&AK+#*GUco$KPQzN3&h^iAn?VdLhv&tk)gnju|( zO#dB=cI-tJZ+En);3kHKcCZs4WZK*_&T2$O=b*o@n;@UB9+-T-8a)GxuHHoO%?C*Sj@h;nps$cXAMJug?W4_2;TiB?Um`;8r|PvMi9?_tjc^EQBlOr9ip z`pXzgPc_fu9FkMTlj8;n?mQ-Sl?sLv)~T#t@8 z6(5g}_H4tv;}`HpXe53*8-c$!Z$mAQ9E|>8#sd?)CR>l|+8BghGj4w2?OO-BsvV{0 z|25d@wYa+DJA{N9-56D>_Qiy;&y;9_k54e*iwX1a)c@Yc&QmLl1aIerhIK|@&Ks}U z9KmyO7GwASS$qc3$Bsjrt-^&%8qv0yEx;1@B6uN)oEpH8SMkyda(jL;DzZNw+vFJ>R=$ z?I_HNR~fvsH2z_p7z>Jw&X7u}Dq3-+BoCVIOxWTuBe zpRPqkhnAr633M@K!0ZCFWY&&#o+6Ep2UXh|y{%i1EI}5)a zJpjEX5-uK1@pg~icx>j#5*aSZsH^2OSK+x=Kf;FNOOc&r3^1TCyJy28c<;R#=>1s3 zVkLNvSUEw;d4j`hPh-z_Yp~+GrTA>&a{RS@8@2=;#Dxn7kq{Roh}M_}IWI6#oP%>C zIJ!RqC$FdA?DH0!JV(L7r5)@Xg&9J5XE1XGKpTEDx%6~TtC6$W) zjk@9G@7}p@ZVooUs&#zOdBh{A5R!pNgD(<8&k_!~)rFt`4&A8)-p8$WJajD+N);vHjz1zm&_+dqzvm(4}vR@ScwEey~v zOhQi;^br*g99$_#ec?(h{Aw{iU$6|zwrs%06aV07$X>+6UqEIW6PD3cEe+ChL1kZF zB5+5~A%fJOg^SPYaP$}sdzUt_bEqQPjpV&8H0U)apwHSbJ#SQ{2?mcHT%a~rzhxEl z9r-BA-E_tIBrVd@%-ePHt~0QNH-(&Lt_5GbyBHsQ_dhY3%pL9Xpr}yM6O}5pLeR<6 zh)&>o8R>5_YKN{G&KZ#CDWF+-?&`8BY@fUg{vhunCtMjnDo?^r7A6ldFue5y{JQg( ze8n{XdrXaI#y*MQ$c@r##^1jF$SB13ohrR9C>%3VuzB7KxEit+W&Aqh>z7`~@K<}> zdmMBdq>#z|;n?@>_gE1Yg-h2iz{jTwUTNDNJ>Gu>_01ze>#=Roe!TqU_XrDKFTHNv zbTm3VJ0CjNVveJG$ly+4XP3T(?Z?)Ld!j+3x+5{~^V#UoizC;f!@?&&!&keHQ(vQc z`6}q%ya8&}ssg{ja;RFrBK&KX6ROMpuEftFErSQL1$l;q=&PH9|?8V zHE|L5ajn`piO#9McxViJXJL+wg)p~HycHHS$zMa0X57%^@%G~}d&NSOqeJ5XuzU3t z{5rTI+X@sF$rEzV$D(E&DHjNEMrE8ZsT+53t%Q#rdlN7J^a5X61vZ$~-<`yZAH9sM zbYt{EVBipp8Z#Z4b-947VDMP+AwJ*si)fT-c&gnv%wG2uJPWv>hU)wDp6l56{ZCjQ zmjD+x75aMwpu>#!1xcGeWCeJGXAPZ>IlEU06`v@jRrp`O(b9(H|24S(`7-A3-wkc{ zb(Hb#f=|ay#JGY`JrlnofyCC;jUA` z#b6ItQMH}zT;Sy3BJQ6aTD=zM;xchEA`y|Pp~%j>Bz_^!wkTSRGXkpgLEB31=+&SN z8V~D@I_;`UzTNypX0iU!Z_c)&6&f#DDALFa;Yhe1hScb2sN>@h7Z-t(F$uVunuWy7 zRAgqvN@*q-j(UI4pI#RZ&TWJ;Z!65a9H!Wi6+0DrHAh4$yxDsqrvCOd{0f14xq5f& zpXV@R<|nw3cm|znbjHX5gVFh^{-_~X?P0jmQbb4mdjIiQbkMx{I4cmNP&jnqL?M_Dx)EGcKHq+g!12_$?;%~!3`3xECa9oqKgN?_~2NuO_@n}a!9 ze-gvR2&r-OZ!sLTCw*C<9PBQM5m-9+6+}nUW4Ny2!N7)g@mLg&{<<1B zW6z^fN`rU!;K6B5;O*6WN46?l_khL3EASDIHw_Ggz?Ya2lS`g z3xQ$p*Z}sfg4hMQtL&^;y8RH59^O-&Xo}>zlwh^Q7jpW(80BbAP_G>j+cd9 z7Zuy+L(dl^w?-48d|L^kY$=RF!q`*kGBzPQ`D5|t^7vhqD;yjviVCmbZ1tEz}!?aO$zM%3JgkDFSY8`Q|#z*5KBr7UyF(F46 zgN&#F(sKvrYWT3va6Iwjhf-{MX#wX-7L0!jZ?7?@Tql_`UX^j5Oy0yOM#j$5x0XxI z7d6QfWNz7Q!`dRdZ5|UQ)o>55I+)#m99~>zy&HnAj6ItpFysAqarQDBV-8&0o8tA} zLyoMufPHobw#=W3t5;V`M7rd|pD^T>|Et)rXGaRAzd8+9t{FGj@UPe(bjGG~-7^b>9T7$~&ye*yeDe>3mU4DI9e$v#0djK@d90+_8#yPD1BO(1+}AC_-pbe}pFGN9nnj zZzsIju_eZT{}FtPZa%bFK)zcz@gq!M_MYj8MCObeCHYyZc@E*s73E>vY5p<2FiITm zzCzy-PiDI?^Vsxe$Yy-Gav3fi&tnsayMS(w;WLI~ddJRiFGDX7kPx#If9_l_Z8c{N z^wB59(AJo_P9q-Iy#6Il9kpiispxR^nhvWko--1>KpF3LaP80R5dR%8wZ!+wPe=sM zCGw9oX@kcX6eYnM@Z+=Z;M+r6jRY^?RAxdk5IkWgRDTmVdW?g!?>lfU|2^C*{SA*Q zhu|KtM?BvK_lle0R&fp7Dl8X|tHtr{;{AW&QF)(uf1~J}mWuB!giF~^;q3hq96d*v z!WS9rR(c4YFlcV=GUnvuitC1GM29i}rF4OOH*n^3v}$PfG*BROffjEnC+a+faj2N< z1{Zal{N2ElpsR*Miw1n1Bl?2q#GBAvjz!NggREXa#L2gS_HE&G@;Z)0M2iNRjKt(? zuuDxxV7+$GyWD%s=6P{Hvi$rI5fKTUHUZc5ZU_n5iLkZDk!e>MRqFUX^huU=@Bfaa zhj&W5Vi7|c_JLD34t)L_U^wf(<)7nfs4+~oQSCu^ch1MCRum5^e+UAviH*#hi^I_Ctht1u6fV)qq~-r_iC^Gg?bTZ`+TQcnaq*z(h;-ArT8hy%RHt&{GV`qZ!zOvEdYbIQ zVNXOSGY3|7dVMyoBx~V&H509eTE966Lmex$?S|B&7jQN*MErObZpKBTT1q(FoAtYA z-gR}Y_NW(p0QP}Z5gVU_*vMVD72`B%X&i1GewC4TLe=JtCPQjhOwe1&;=bDABmMq|GxPF1jZ=PqPrNfBA(Q~KXHoZ;|=i=^nQrz=Nt**wgypMQ{lm?yxK;h30P zy>NDz=`{JC=!wr_&i(^f{Ut*{tw*guJ3RHt7wBA%DJJZso4@MR5x6dY*Z6_EfLrM$ zkDiCtjmP7~c1_T@`DiJUfeTfxU0#i^_Wp%;7XOCVM?H(5pZNxH(FKTD$OrZ>*^g84 z?2L_QQn@ZN0yuT?-$0q&i?Q_dA>`P#cNQjd_x4*vrfTs?%2PABPs{B#o+_NNKU%~gDweY67A6^D;yd1m{aKP(E0~L z)94X2bSZ<@Zdr&xpipz7AIiy)a?zX(yM`0-2815ii_DN5)NWt*fpgO2h20BQVe{Ez z(5jl;po;&e5(j<_iw-Y^Y z2K!Uaa!EHPBK8UrZzP~aiw^LsU|lQ}edhtyJP_zr58Do2ghqW++BWZenj5;Rqmfzr z{-Jl=nMmLG5w!I5K?5fhLe+lA%!m-RMr|hhBf%+1-FXNuesxi)h7artiGw(MzH7;H z?7J>HD19QF-RhuI=h4U(YQD5Xm1DrEg>T|QC>I~)pmN3jnEm;uXwal^eX3M#yVhLA zSD($o){|QWi6_9$p*;Gx=z|u+-auwe}5pL&%+Nr5%F_2rXmK;=U+yp1~oxqJqY5PoGBd?X|bLpGs(39=} zdPs7Lo8(FC@?eQw5@kEhjy+UJTm(`t+(d`Iz2N3yokN^HtH1{3Q8v3gb{;<^ktGu; zUC(q!2Yni{s^5Q?c!C>z+c$p%9em3n&|Za`*}hW#3NC`lNV|rAZ-(RO$xzrG3qkFk z?eDoEfVD`^0*)A;(k`Pg;pZ}GQMVDDHNqgr=I_0b<8s~od$7{Lkq`l2#LBx{kJcuA=F z5OGh!O%t&S(LV_E*(U_KzYbmc8tHyJc}@_5={<3;xtzv&N%XR!=ZP_nUJ4apw#uvV>Bu<~g7(Au!qHLclGq?Tr zgbUak8js*@r%F3}EI;(i#k*QE3V4z6_lDMX)NFxFq4I18GT1=0wLt7~1# zegH>LMvmpbJhd5rBQtfk>6OGI`-IVV!w@MddM+%WL!LR<3A>E!XryLc7o%^T=u}jw zT(v2Bb?S}=9j#BRVhf=6AU>l4PF%W zvZ^(OZ%VhFVd7-!`6zviiUPH#G%Yp}EgvpU6 zbYalv$)3cH%Aa|K>;#$Atl1Rfo|}a76$>$s$wPvpZ+RTwwhdQraywcHY&55Yaq^jK zk|dW+agsbCle{I-^G5KdaO*(M97}GJbLsAIJ9z`GhIO%e2u~MEmmxi{e{C?LlFy4H z2E-*?M`pGbO$<7r=<`>>a_k+EQMV&1S8t83nj469u7>z{rXbBmYQ|M;+Ite7@g8W{ zxnY5bo|}+Vuj2*#2p5DVX%HL72B8BtNePQTjnfDBp?btsc-3kyMFo`xxUHIv)h9NK zYfP8YMt}1DXK2@z`Rob@%)t2llkej514j@Yu~i(&krvLq*zFNyjTZIZm{sha$g1BB z9TLyuRGdy)yI{~zEb3tIQu^I!4+4WO0-DrcC2}{YDYOK++E;>W*-zl)IX>U+ncT=h zX8cDm81wVcRl`LkT<=d6Pge~&ge1rJ$SYj&NPiqTMIw4f2S;?P)d-`eJX&C3R-AAX z6cD^|7xrIe%4*3O!hgv4EDK&guUS*vBv0_fXfnymM9*Hho-oOumXQ{Mpfoplo{vY1 zK}>yP9k`)HpWy>=Y;y?0ldeFOqd{cMRm5be&@MR`nRTp>$CsfOBY~`jz0trY0D*=~ zTustJuZ@!kVE3tGXj-c;s@C?CNISpacj|ShiHfR9a8Aj_^;AbmK@$A^pqnRg@yH3( zjkyfhS}kC3dXR=vyzsbj4!{1rLfqRk;*PuEnNDNz-0We6w)iacTny$-eGA_nJ%Q9j zqwmtMd@sD%XE;&^zAU}A7KR2r&^qxn&WM39?}J_~1e3}h_RieDS-~yjK%aG3DEE0# zCw(D0L}tPjB3tDKr!r5%)%PP96P`U7^y(mFB$-q1k~207ql#zRU8;DxE2!ehE94VO zb#e*A4W&G=j*ew8uy%9w7}wuw;b==>bYIYhE&y&V9zoBvU>ppK7Q@mM zNp(kGPQlRegW+00{^ipBx-A3HX~;kX#M>bv)eUjtoanxx8d7K9z=_Zkxbp9DG>i|1 zL+zHxad-$TwF((wOW((_s~eS zs)I3c&=W}RI@b81e1Kam+STrY<|$`!HeO{S`s3n$XGl9B8F}Qti5z{RAoktRr2ipQ z`=`)lu95ujQnO}meUGtlDf^iyC(&jfaGO6F>XhH1$ujRL%P0~i{bwFt4y`%yNPjes z6KotD`Z5BAE88TWr>lD)9%;}4ZARQXyxNv=>2Mgf2c3pSE$wm3#zS{ELvDCLa#z_B z$;(798wsB`iZhO6V5#+|3qm~_tAYK$!Du(KyVX5#*|LtPQMUtPFWp3Nj8MjcFw;}7 z;)H0hnJE_$aCIZR&+kV3sa4pvdkeN5+kpc&f^jxck2H5R8eBPu?E2kBCB2P=#0hA` zaQ?>OeMrwR=6d!oS07_03@tFp%i#B$_ics_oqC~cSSBu|xg#@6)ZrYxpcFl_vqEt^ zyi3V|_u)18ZTBiM0*ZmXV-)9I66U9Unu&db7n{HNX ztPy1U6*S3TK_^JwpuH;IW0Mt7c}m;;x%vuncVjy(+!1GH{0DN*DY|3mgXW|w{hM@E zNNx&Y-8;)l9 zJj+%{p0Ff(5Oe&ff_gMs!1y$}Qj_Iyi=dGQ!7LTpGkCUBsEw zm(VIl2ZI=X+B)p?TKxUnXNZnty99dIAB8u+d+vdA_;Z4F@szokx9p57peCsp*x zWihbnU^JWj1+vRMczOcP%b;N&v`;#ZQ}G5P(QB^@RewebuVikS;sO=5HtknIxc>+> zy~Q|5EJhkCmAfd1f-dbhNU4+=S;Re5wP}lxo%o3$__gAiPaC6TOkk|Lqx%3jmw6s8 zzHf>0=p_Db;m;j$l#m|(z3G+27qY8{!v`u@`r^qUY#{Wu^WrHKxu*puQly&Z?b`rP zJ~au|8$jmfPKvTVQ@|B$(M>LtXMDj9Zq9?)2=?++vNSVxYBT;8| zW+aY9Cm~_qIdmA%6V9&ppE;qgw@MvfIA>IZP8W~Rm>h}734=}yId%Lq{PW_EI97$9 ze_Pl&l#`-p=oh~l8;r`)QSfNP)CsrXvwsP8p588f-_fNeo*Xn9&3l`d9Ty6C?ll_v zq06KF5UBHqA=3^K8BS(@Jr{nRxONHck|UARsHPZ`=nRlP=>_ zoK_G}YK`e4X0#0hfWDr}pn<2fy!Z-+L0DYQa$8`LKyf|T5f(r#3u zz8ffZQX~~l_Y>VN+RTlD%>R^Dp>pq3ZTb>H>KlZ5KPbLWm$&Q%5%tokj!^6);OsLU z&fe1mv3C@0hFn^7^-q(!1nSIVrdMWH4Tlkwvm`e9;*Aa2=&Iq0I?m=ZX1!9wgL7HZ~5rc_WXjQ*LR6$Iq>ysg*QHZ17*tl@BRAEww(RkvuesC&a zanU`qe)ek2{pm+6J8}f+$;QU-?$riU`%i>w)LX{kP+>#-rnYf!bWXXBld)8w?0Bm50U=9%1*QgRgN@bWqJ-0G;_U>_;s0oOT`bE_9Js&KR*~RI=p=UDICfKvTRR|(TP4xo#ts1L?0EcrdL@RBc?H{l z-Xn&mJbG`?Ezs-v{%ESJ0w-t5J!eMwfPQ$tXLr1?bT&r5JrFM~pN)5V^@OXZak)FU z;`?RiuW$)APWrgUhhcX->lOPYpn7=kZpL9;jY>xHw|GmD=oU zSbl`XWSelia1_Cjtbd}za;bs#kB)~&0flem^(4$2^*Y{Pw*mhgUN5d)h&e$`Hyhr@T@8UN;6u&V^ z`kqSKeB|N6pbZwHj9wWDF(JX<&H`*4q;mODLU}jOLW|@oE-)HTt0PUC z!QPMMLJlP<<=E;aS`s~P9w!mlQW#YZ2DPZB#+BOl1}o^K@1DhT4Qs)}`&P_$Ofp?^wh5QWAY`T+N#4h& z7AiO6{_gohmKyl;!;P5v%Ilc>?-^Xb#C?9V;Oy2I6WWc&fEVW?y=hm|r;8q`kG_wW zJNGjaJ?8?l;-?B#&(WPNz)7g^IuemP(O+J6j<7F<%@g)HT>L(fIsg*5v+sMtW{6Sl zD}wBY!`?-xbcb7!XT=Sz7=0LW%#DK_L2i(j@l*WqSYD9HU3!#OyOu4vzIYj$vR;dB)xIwxJXDGs zy(>tf8;%|mLs`}j0iggVG;NFV3tzb-4-JQNlRusgFRxofdM5fjJWp)HA#DmWQ;nqR z=Ftdsdh~oCb#Nm%0~_XTK?b`wE8*>58E$U3mgPG;+wMNFIcX8ln-WR|1o$Fi|6%F5 zHQ>;6!_TKNf7BcJWbI1)wPz2~82`>3@BxGH+Spg&@yu6H7efk&)RFJvr7rz%5xqf! z?D)5!N&QK@uwrAs!gH&(ik9vN$qBA)0do^kW&Rt?XGb)RU-c`_gXu(%OCM4?d z+pDi5;^ZN?Xjsv9^Kdx0mW7k6ahRW!l8v*w{y>ZvY%`@pUSK|- zGw1bKH2qI}IO=)4HuqC}vTHeludIPV9}OqB`WV$>0*1Zy9g;hYG<~ahkTzllUhMkF zEut6oLX+}?Ap2K@m|*o)@F38ptw(kiIZOiEJXg4q6Yk}zv4lkMMyOEEv*f1;i3^Q` z-oQbO8I*_QOPS=0a0+o>GYkNu*>v!X#X|`41+4@HD3Mnug;? zQ$<0T-VjKR%fQTU7eSrDR0pCE>?`1fK7CQE$=!#g&W^w%?MdLqA~Wb?pwZhQHp)E9 zkKR=)3bk)~kxyibTl3e8pW?cw77YguvwAO6&OwBQgdii;*kLg*dhZ&AmlmL~5#M_X zD*6~Zp^&Sau;O|umOTG4_U+5W{4%oRX9lyP`8lOJ;E~buq3h%F8itqQW zL}b_|L6`{=k#=Y_8m~U_0m@CC53T#dpXkgB8N=Vfv~B||h+b66tOLl59xqL3DkwPA zY33EK1UW%YUqGiciA^Fk>yU$lY%^VySj1kw44u|2AlSi?2U!-pIF^S^yK8O-X<8g1#dobzlWoJcT@xgB~Z0JzTn(z(w?#sgUFksG;vvKL>Eq`g% za;-4zy>XV^{2idnrt5@ZaCBypOu~S}N8<$Hu+QNnVofxtS+hV}1Zu^tSUGDQj@pHw zR+=Naj;i2!ZK~eI9gnwdCzY2<+^QSb*WvxmU*qw| zM&R+j<1o6 zws2NkK>Dz^1{p()5ObXkYQ=vmZrBiO##)@6S@{T269@pm9H zDVLk0#6c%Y;lPRgrdJYJE*#OwN?ww-C5hw-o-|LM7sBPcoWY|!;tDT@4J{SM?mm~Q zkBr%iS<7C*h>_j#?6C1z6m&u~I-_5h{@l?`8^ZU_OtW{OQcXYjdELsp5g%pDoJjci z)rN1Cil$fAgKmm73xjav`bN>^s!*>%mwY8l+BNr2+>9}2p+k!*<&fN-(Kfb=lt*5` zsHR<{?foR=q$4F|KQ2YALvZv)+>G6VgxDR>s;`LN)eUZ5Em5iRK+!o&!qlf`qsFu! zk=X4C80-sYiF{EYeb}3r)_rg;qK6?H*@^E#o%FeQVXmGEtN_y(aPL+V_=F*3GRa%x zsv&Z{9}#CS$AZ=6zxMey3|IOss&Ho`mm6r zvV-rW&+$U1k*E;RA1)qE1d+E8D!nbd{5rzBY*$pPIs}87KaT(Pdm66|9EUN}zk>JV zFOku(WNhx>d1@zOQ?J9rw=xe$UEDM>$PCvNUx?BCk79)l&ze?}#K;y$3?d|>ORaWwcZ z(~(=K)9_LJ`P(p8k0ea#ADV;N&V4o|jOnYW#g62>Y%aM>+qxnAWro zUikAv(>LyqeJf96+#By9G1lmMs#a|%hQ0hHG+reqG|Wz~gJW6(98(jJladHKbvkra z>mjTBgJ&vy*xAqTPgN;qO755S;L7eqo$awnXf%fYSOOc-~YQjj-tkQp-( z8L8&EFOnHY>{Rj`!ZPBHVvnSjmy%})4a3c-ez*z1OTwhFa=oe}apc@`c$UB*8}4#8 zYv>fr`uj)I5lQ&cWlaUkP;;*EB;o5zqLQ}+duHBrs(SigIQ7m+Svv2i>RB_$$lOeT zetfCl*3p?Iz?20o{X`F7B_}c$jkjywLGX?acF<>W)R;G#H57j@GXiVk!|>UGeVDm* zGv3|20y~5Llos*0I6FZvI^2tAQ*tT&yMeX&$TCi4l{lOWO2_(8 z^P(_<*T|8LWjLvHttFl03Eo5wOL$TAN6Ef=*@eRp8phW1xzytH2II)i%ew)}!$;Z| z)+&gxfS1eN9p*RB zCh*A?VT`IFp)st4lZh##CXPu&K~$s8 zz=@_;_Xqtwp3ZsKr{Lhr2-%Zsruzcy|HNbLR`GG6{~*Uj``33fVaE#LmO>* z)J}EArK<*fdGG{&eD7UsTWL-@bO-+VYCW#TFu=%&76Fx!-c%X(7bRR{L*Tn<9xly) z7QcM)EM~3#1UrI$M{LwCLF~yeZ73~+b&UkXhR0MKe+Xl%WHcBb(i~B)Y_<|uRxB6>TCiQq6RvFY_mD%<`z&kry!<{R@uYH3PrZced-htj zy4;p<@mvO02jyB#&Ff(dH93#h$PUe@WCcpPPyTM;1+fF8kDk7HZY9`B77K&qmuG5N`sF7JlX8@F zYd8*n?fD($xSdD|02c>-Gj1l{S~JUZM5=R~a9t&gqeMnwu+EX_OP!Lp1TT(_jg5+h zzzRY$U$2W>eKcs*D}QN5Mc3i%z@N(-hl4L*!yE5IBRPev1N&D$(G}IH4zz9x^bl2W zU{4jgwZHpZ!HvsFSRWQI5j?eh^A{|S}(xCzZ(kuef5`y@w-{*P%g!lgG{$b{xbIv_;&U|LBa~+d+k<@^YFxBve zwf_ERM3OO)vGqrpsM|%CV|2$N_JXcvp`~TRk0-P}I-sD-Y+(x3BdLf%CZwO1h4YA_ zHQ8_mG-MplJ4H0p3i$Ih;V-vFKH{SdAPzp6WPcy3WE~9JseuWINE_! zm-oVA4@HBU4`{SwHQB2BYF`Fkh1}FrzN>fn(U^a-jdR-0SeKs8>)LLtKh2e!7N^UP z9(!HpVPu%Aj?ZP^SUgHjJBn8}){<~F>wWxbRwAU)Z1IOmL5#oyJqMtZoT&sB?F&{P zWEkKM9CRbAx1p7r#})eUCu@L9*7jTFXy7lcHVF?g%N|iY$4Cj5)n|VhF!5F-+tCEJ z#Ry;5Y+wz$j+B02r}lz0N{YlK=za>8r}&z^gFdu{f#T^r2U~k~@|pTAY3`Hq$Ckt{ z_a)&`?%zxRN#t7Yx1A!p;32hq?;5k1IJq$vChhEz-84)Q0S{2tbi)AsW$8P{AC&fCcO>3iaKtqp~B*CdbeF)h%A>Am_Q^ z^5Xr|25QJW6py@REopCL1EhM-aDJuJfou3+kf-w!^wZbfmN(MBE%2W_jFIz6H0aL1srS!e7NXkJ3MRPF;FV)Wv6YaF)^$J|(O69Lo}gei4S@ zaq;|TdY~*4AHMN^^dh}-&*}Z)305J>j~~|XCg6(5{#PzBx{ZY&!$?m85N(Vdb~JCp zW*tlQBAH8+6K64DKgLUkWShGC~??lIjhdiQ{T91_dz9Ot03 ziFIvW+D28?dbme8W3Plnf*}VAg3<)<^0sV}Xu^v~K#O92BfOwxE?vGQ*{rBIOf>SY z??#Lse=_Cm-H##ZCMS%-$!H|HE+5?PZ?0Wd9qaVRrC7XN0rDjzzxBe+O zUvL#?snu6w&i&dBUnM~F&64;PrUJV4hwof<-f%k`;g;;e<4nQUZS|RZ@sWFSxMY&^ zdUa#@uUOO)Z|Hhk*70PXg{g1%=;Xt{`{D#d(h?(ofauo9d==k7vJV>*%P4 zd&@|?ViwtLt~6Fit33IrmIns7!yfRo?Ak(giZxa9Ga!b})o*fAihET$ix7#e!~P~R6XF3&&EeH)L-ru)-TnaTqdt&~}D zWI0*R9jUuFmZfAMlv5|1u2)_C0FEolH2*U-%Uy6Nmh#%jz%*x}jhkjQ=8CTsIkC;i zjuxOFp5Yuz{FTF*qfnlq8yG~!Sd@`CL$XYAqyaKjUa9T3_LaFM9NiM1-W@-2X2JRewNdaJtPq7M}9u? zs#Ej@2JG9nG9%ee0Wf(wztojvB1{Eun}eLdgFjRa*b53?(fgtZMs0%(Eq7an^A27H z@VTi>Ilj#nKH{?uov(!X%kwPwxSKOi=}3j)2G2YAXD`4D#KLuQ9mho%J6v%k6~ID8 zsZ;FJWD_H3_5AD)(DlfniVzs-kXY=3w&N%wN%F1GAXg2hE9c~D0zUbHU{5XQo%9(| z=U(l+joltUg?~|q_@u-QA3cxxQ?+(IL}Gk+i1uV-+LgTe)&1ehX+~dtaQ40@L1VFy zBKOzo_-bW`;4fI-brV88adhAVeMxo3iDPs%M28=t6mjl?g=V_Bs~} z%f7dL)==7`%as$6fb{%4&1Pt5_%h9Ez3*-UOUhJcyXF-6Yjke+T0dm2nj~r9ZRSRM z7X8}qZOPev?hMV+{j^oo8gB~Jl#r^U(0EsNCf{G^F>XF=jBZOwqwq$!{YnmytMUlG1E-9Mo46sx6&Ecg-b^JloK(Ube}?hEHCYLx>b znq}1D7=zK_MQI0$k)Qf1#{-RJ7oNZR5us8nLs(1H`^rJ*G8J-{CepzvLo$ZIbW$N` zv&Zt+b8_~7K}^B|vb3Lg_s{WDvK~{He8Qh#-OCWK7xHX=b@}mTOYO zlHZ$1h-r^0&*w&~NAnFlI@Isfx8EcjgZF)pWMh12$C+C4udN97v!SVvC)~ejAQyxGbU^6wIod?H$kk*FnXbT54S4%7^eX!@~O7j-)8z&^3EVIfz!HyoSfWr zgu8?gj~vyP#9H&y79WSKu+;MJbN@4b&Ie=WfkVnHRRIaq;Y>2d*(Gz9lhI7dzN>V=Xpe299%(y65-Xhb-YwYH2_LgGjuV{cq`UBg80_qi29Fm2HdCb%M zWfQK^Y$0h}3lFrr1T<|b=d8jy#qv{t+<{CfYEs{gZ0g5GQ+jR8E25>FRK6cJVo*vj z#i&u>f?6|XO8}i(B0aC@G4EaG&`tLI>$4jXc15s6v)G6|mG$BH(bE^|(grU@T1A69 zb{y7l`oPX%vyU{T8CImuC*Z;rVh1Y$0#(Xq#Nk;!9Nz@9XdYP)QELd=OYYN;J9g5{ z`-x?bkhVLReGrG_;M}WQ0_RZfi|_OA|FGZp^x_J;_{y>~swU=+gyV7(N=DGUz5An= zE$q1ca7-DPWfgr#EJ{h5k=KXvc*)Yw!S?6x?RMv#+?Tx0PGul4YHi1aPUr&ZAL1XE zmQB_WeBmGH4=F6?1U|A~-#Z|XmKJUcy-p#Sb#g?R9IUu4KdQFures)Z7XR#~p}e#I z@Pl7sa)&&u*n#BJd-Vm4L?Wt($!Z0#Y$Q|M!ML%?)(?D+z^ZOCKaB{|fr_QLoAQ z6VpNO2p3&@U$c{9m0#Xy@ho!7uxGs{2{-ZAWzS>v$JZOGlrMyCO)fsOd>b7r2)kdY zGvCNPIYgq|J6?S~T!tnQiMp27HgZAeNyqU|?9!L_W>@r2ChDe5hDd2j89#QkC*HiW zxHY0s9@Aze+7c3$Uy!$qPqX7{BLauKpnR0r!a2IIG%&wNp1aIq{C$Yh@M5y*V@N_V zoacP zl?WHf`F4L=%+{!tn{e2hOLOb%8O;;vQFEJzX$nZ}sjIBTj|}?&0lf?SvqgCKi zzr0+a<;E!|ZARVf_GWXZhUKmVV*2_`pgm2o*yo*Bnfb(31jV56Sj41<>%k6uG z5eOy!69lomR+yFeQmjK1)01`TK~IaGm088+pt)(T{uzcNjw1_D+_uY))>4_x??|B3 zbL`>shltJEB!lCT&Z9ER`@$R@`hE)cV0h1t?89m7ECq&Et>P&dC(PyA`%q4@#_ePK zg1ZgQ9-pN8$g{RfX`hY05qlyC5dNEeFy(sRX$Vu{qXkNbhP)5)AIjY3nQ`MS=R3=4 z{M3~t{Z%;Dav;;ZgRzUUh+%^wwOfe!F}nEdOd`x7);n%Aj`k&nx5Te!vG?ll1dVS@a^oOagjwY#pfc?R5mdbs%pO2P7_tA=}Z$F2IiA@}|G zGG6RFhqu(7(MTymRzzj@hqa5uruwnv*`7T2gwlxu(|5;vJlYjS1!XWs#7hP)M0uQJ z$$_jvaqpI8mP=!N3Pi+b-kM){etoU1IsYtuhq{WRDIn|#Ul#L&nSyAA#%syhH-?{E zeN8xp4?E-cZ;UoZPBs^?2LPx|L)Eujj+l6$7UMcsATj-%$Y{^ttz{; zKEm8fVHoV<<`x#94S1;NhTB^_uCpKp9mAVU73#Fz(puaaejLK0eqwQoN(TP5;j#AE zLffPg!xX7YpzqtHAZgKC!Jwo<51!Hk9+Kvd(ZcH}P1YF+meP}ZD-ta4Xj=<+f}2Ru zw66D0@oA&%K?gW)8YOR+BgdrTdOhxWUtg8Ki@C>V(LkCH&IR#k_OXyLH-DLS_fQpN zP1tm%gcU)KeFb67vlPsMIE-HHrjjFTALe9|2Xp7nNv8$Xz#hz?8>a}TZVbk?R5cGX z5M^SjjbzJ7DUwbaCKgi0kU>k}3bHAxFh4+Di-={o!eTT_^zxo>CQ~&wB~KWVw|v`t2X7Tt;qth7 zX_b_xn?FY^KqU7po0j@V2XwVIZ@QwT^z-m@8FXy9K|NDi(Mb>kG0crv+!z2!k2veh z>s8~7vxBt*uhSY;m4U}fSTl#KG-G&SFIHg(Kjd8R#V?C$J1t>dD?UbS3e}&>I+09h z|5XKxKc#%8dzere5gj36VAAIGJb9c45Z)@BnZ(;A^BJRw7EsGOvtJ_D>b)R8bj~>t zfHw5AzY#PrSL^A~YBl|829wqjYVIu_oSe)UEe{$mz@5b-LL?h%+2p-sYu`$2BL zthzVRro*eo$tL;A!6d=$laz)Kh?&EqX?%oDLbe-ES*u{I;a>K>xV)&`CYn*;!J%xQ zPu0WZVrEQ!=pSGD+eqY#Zi(zJ{X76*5g%3P^y6qpBscffQA_;TyTQn;#;~)i5rSAf zjG0L%tMaRuB1NhMQMeYDM6pm$(3`)}rLlq$CYLj6qaTJbs%TnQ~XQ?y)L zA}adid3t%xYZZhTxgME6y~!)t_8W`Q>+kNr5nT288rGV>ghr0`l!#CvZo`O*4nl(K zIY*+YSXSEGzBcpGvNluSCBIkSbXLOo9s^^^rCyN;iU8AC=RAMa#r{z;j~SmsgK{jx z8R|Bq1twR#U)1ex_ue-FY&ZILI+U!-kV<-vVp;?3QvqFYi;>5iZ_U&%b06CL)x*M0 z6WwiWeu%q(TAE>lIy>hrXR>HLAzu`hc6H{p?n9QIrbny?jU=(ZNG{f{h21&%isIF9 zzjPL{zs!YK7&*5PoJyXaT#TZ$u4Px@{IB&7^GfnFvf13Wela(rS9z>)Tvc;*ET!}| zDo@0lDf1eyZS-dI*tU&0$8`Fb8yc@CSO7I5fJ9pJ{z&J$ z?^^)H&Oog>Qla?!}2si6GGtX1?EBoN3?)Le3pN0{4pYl?=2V8sBCOqT3m^o|d! zENzkbMeilNiBLdG9(s9TPFmCx~wqHvBn%makR zn;ISF;PPlk+(!l+g8Oy-n?hn+>?E%uq@TJ?fon`#6>#tKy>9N@<&jvN_7Z#j#l2K@ zrD|8~8I6L*uZx^tF-raTh%>G3%#ZUiWNMiJvCxDzFFZA5TQM__>8=_7;b`qs6^AB( zz#C)4LG8if*O6uOOF-n#5QvupKfk@3^1`&xNAU9>Pnos=Se|lNObxtO-J7K_4Nr=l zFIW}`Q*$wV+WaT`*4Kg;4KZ|C9B~U*&ZZ7E00be zL&SF?s90E5OnOv3f*OE~2@$_ElF+v}fbaV_3UKjTNn6FKXbiX`7LWA*D%i`OqWBEO#M0Ojt%RC+SRVa>bj09Ix(%ZY z({qjpo_*5=XiZ6U!=BRPZ)R`nr~1mX;GfB)7{}%EdI6?%)nn+Bp>?7__wngZJc$Ue zrKOLuNZ;=SQJNVVSv>OnCz)@oB(${&xXF>R6NEoXp-)vygwyZTEzLE*78GX?(=5oi z(vH%pQ}HYY#^=G)nmc$F#i!%q(?F2OlGV=oFSTnsi#UczwY9ZxkND*8awt3M{%EHZ zdAIYu;#{LexhgBH6s3!Rme3!Ke)nd=)K71d-^6>z6UX0OTA~UZOfF(dRW?mR+wFN2 z?tY!Yz%d1F{v0GO!%9hK9@4KewN36V*WVO~$R4EaImE@o@bsEJ?BG0fZq3yl`S!Aa zC?NsY@izVQ_6Mt2{!GK?6Kh-F&1!DEwKGEEMe9;6YKJw6#37+UQu8k{>aP|>H+Dlm1c z6h`*eaq+n*d|yhm3c(cVS5^*3p)0b!)e>^svZp&CU}zMp)6#2(jXZBa z=x}P_xzF3^D=HkH_N7-T31txAyBc=wJr>qkdQa}qn7>~OmY?ymmRKp^84Wu2#J@M6 zBt!J4SSG2XTeee)O^jjvzxB#0%iO!Uuf@{SbCIPPMJ!yhW+{QJ-n}AK=T{~SR&Qsk zCy#cxf>i4CKvZx^W?#=Pq7^%2pfm_J%A{!;DpcveR|3#T%g*2o=vcuN>?QP*d1^zYFZV(> z67$n0G&t2bwH^GN6r~gRAf-qJ52e%Fuu0+>e%_31d)d4_q;7FP0clKy9M8JAg%G+( z=+T=0awtQ#2RNGq|I!=+z{VbVgeFcsB& zPI4K_p~)1;)V}dc2Nka*{VQ|D^Odnf7Q`_l75dBDBG*djvTO{Nu=>yKZKmq+L&hNk z-JlTb$sIFVy&Ah7xgs`jjjMyxz3e+n28RBZ_lJ+gsa{?OwE>C(hOp9J3CF1mb_Tkl zs!<-x@;W7hhL@S!RrIN8RSZrfx(?+1kNfp71Jk44v`=!<*p`o%42!Zl3C(u3*V>!a zHgti93PW6Lz`mi}j-XXu^~TqOv7pdICx}XcVS#3Wt##`UXk%E>5p`IU<2&4f54_LC zU_3%P=k7=H@boV=rYfV1X3PGxF6ps-RW+97k}So%U%9e(WpNof>kuMX?lXgQW_KCh zRm_Jc#;>2MyhG8^V2UaEHeL=-GKMohXaZ9Ot@wQNSFori_`WMkP``)xsLKfrJQuZO zNI{yGD1~Qgb_W`3W8ly*hWo%mR>)c+=`^q z-o-jrEZ@zjCRQS;xD9R&m|U?~Md0uZw!S0L9t{AXUF6rYEBRiDKw{TDoU8WwD{2>> zuj6ns#*dZA+60>>gl`1n=?~nzcQ(wt_ze$uhk0;HN&b6!eFyjb+p!lW?jn}R1}4KU zK3xaw7(?WC#;4{dfRKg)7dbPp4oOZ$niQ44y6rB$jJdCjy9!k#g{c)v_yJf0$2%tq zLKOn-M2-?GR=(K0lVJ>|_4bZr)?Dn6bUJ$KkpHw-fnI0Ex|JCHpD-YPfFI%p#qy~4 z(p_L<YGR;+eQ5ty9oZoma zC2|Ws3a<}q0}Y5jAg1BH5=PN|u2MMRgDV7@=pnD_()VS$eL4*)q}!NHIbEP|dD?d@ zM}C`X6!^q6xAacfzas`fi$8i|p>SrZmug)-=lmxz@MX#e`yTzS!FFfy(CUV z08Nd8&9AT> zv9?dB&sLxn{vbENOAXN=+62^9?38m}fcBeLK}{U?z7+P;@66<(x#+lLJSw@VLTnk_ zM&2;2A!y`%6Sv&3^=KS*PS4|f>9|!I=bde)b%080P(S8{4+k_~f#p_cQkeYZ2UiS$ zKg>&_?B9AA!nb=Ih6QkQ{`oe8LP4PCT#_XeF${qYH=nstPud07mG$Tz3%KTENd+=H z69ewMAe9>vKGFQ2n*Z`of)=Lme_EPcj zBwZ|WlDaWf`Tr*4<1mQd+ah3J`m} zAv3sxrv8D-9A)jHOaRwBN`UVo10}PurVzjJ#svGH4En!fH9w!2`!qq3 z7h^ERWou+8m*^F^ZBE6=^6~w% z0#*ya_0pF}NRtoBl1SX=vS#;Z=sMiS`gWNGqP3R>NK(=ZVsGJ&&gjn~Q}>ie@EB+B z_oLR7Ceva{P5n1n3{-Q?(r@-_&GkExJXZu~&7H(&)Rq?3_d(Af8PvlDvVhPVDK$9X zuM^MB9Z#uf0j7_Q4<1V2wf?w&jVGU0Fd}eJ)Jv5X@^cVL^7i#SBAMjCReK|bNM7&& zCXy*3v(6_RYiiyVPnEFY`;^H8oZ)Mdu|6wKr z{)O9$Psk~CC=+BGo{m*;?vYx_L>Pz^fh|zR|K2s;>fiYIiCcQgzKAWN4tSd*pY$go zEQxbZW>YIl^TDRloA=7 zT;G^wLm3HQSWr!dIl`&j`UA?{5~~LeDk%`v z(@Hk3xUFjro0(3cGfK@%1AI^}#DZo=xGq=ZO=KALGnDOYK2MMhg9OzjBj~(S{0D=D zJiUh~DtWJXa4H3aSfl0Tg&J%3oRlhbLMe@&%y2RK# zIeP7L^L@Z`#PN@o{0#4sPg`2i!x{{|YV!~K)2fK8g^NqY&9?y&O4wYNB8YI|Ei1Yh z{#K&$1uyT(e?nD26*yv2AcE9N|8~=h+IwK0zDv*BE-o~@#;uGe41TbU!O}M0vgCGd zL|7TWd7T~kLrVt`rgu!}8MHle$f9>zeIjdcN2)xP#tnk+>U;+TAV$2JZS$4YcgS-J&fzKBmd2Ro~O*1uJZmr2o%N==%QROzv^wxjUA=xrcppGz`@nRGs4g E2j`LGcmMzZ literal 0 HcmV?d00001 diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index dc89fa3a59..d11bfa05ba 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -6,9 +6,9 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Containers; +using osu.Framework.Bindables; using osu.Framework.Testing; +using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects; @@ -18,7 +18,6 @@ using osu.Game.Rulesets.Taiko.Objects; using osu.Game.Rulesets.Taiko.Objects.Drawables; using osu.Game.Rulesets.Taiko.UI; using osu.Game.Rulesets.UI.Scrolling; -using osu.Game.Skinning; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Taiko.Tests.Skinning @@ -38,35 +37,28 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning TimeRange = { Value = 5000 }, }; + [Cached(typeof(IBindable))] + private Bindable beatmap = new Bindable(); + private readonly List mascots = new List(); - private readonly List skinnables = new List(); private readonly List playfields = new List(); + private readonly List rulesets = new List(); [Test] public void TestStateTextures() { + AddStep("Set beatmap", () => setBeatmap()); + AddStep("Create mascot (idle)", () => - { - skinnables.Clear(); - SetContents(() => - { - var skinnable = getMascot(); - skinnables.Add(skinnable); - return skinnable; - }); - }); - - AddUntilStep("Wait for SkinnableDrawable", () => skinnables.Any(d => d.Drawable is DrawableTaikoMascot)); - - AddStep("Collect mascots", () => { mascots.Clear(); - foreach (var skinnable in skinnables) + SetContents(() => { - if (skinnable.Drawable is DrawableTaikoMascot mascot) - mascots.Add(mascot); - } + var mascot = new TestDrawableTaikoMascot(); + mascots.Add(mascot); + return mascot; + }); }); AddStep("Clear state", () => setState(TaikoMascotAnimationState.Clear)); @@ -76,59 +68,25 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("Fail state", () => setState(TaikoMascotAnimationState.Fail)); } - private void setState(TaikoMascotAnimationState state) - { - foreach (var mascot in mascots) - { - if (mascot == null) - continue; - - mascot.Dumb = true; - mascot.State = state; - } - } - - private SkinnableDrawable getMascot() => - new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => new Container(), confineMode: ConfineMode.ScaleToFit) - { - RelativePositionAxes = Axes.Both - }; - [Test] public void TestPlayfield() { - AddStep("Create playfield", () => + AddStep("Set beatmap", () => setBeatmap()); + + AddStep("Create ruleset", () => { - playfields.Clear(); + rulesets.Clear(); SetContents(() => { - var playfield = new TaikoPlayfield(new ControlPointInfo()) - { - Height = 0.4f, - Anchor = Anchor.BottomLeft, - Origin = Anchor.BottomLeft, - }; - - playfields.Add(playfield); - - return playfield; + var ruleset = new TaikoRuleset(); + var drawableRuleset = new DrawableTaikoRuleset(ruleset, beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); + rulesets.Add(drawableRuleset); + return drawableRuleset; }); }); - AddUntilStep("Wait for SkinnableDrawable", () => playfields.Any(p => p.ChildrenOfType().Any())); - - AddStep("Collect mascots", () => - { - mascots.Clear(); - - foreach (var playfield in playfields) - { - var mascot = playfield.ChildrenOfType().SingleOrDefault(); - - if (mascot != null) - mascots.Add(mascot); - } - }); + AddStep("Collect playfields", collectPlayfields); + AddStep("Collect mascots", collectMascots); AddStep("Create hit (miss)", () => { @@ -136,7 +94,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning addJudgement(playfield, HitResult.Miss); }); - AddAssert("Check if state is fail", () => mascots.Where(d => d != null).All(d => d.PlayfieldState.Value == TaikoMascotAnimationState.Fail)); + AddUntilStep("Wait for fail state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Fail)); AddStep("Create hit (great)", () => { @@ -144,12 +102,111 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning addJudgement(playfield, HitResult.Great); }); - AddAssert("Check if state is idle", () => mascots.Where(d => d != null).All(d => d.PlayfieldState.Value == TaikoMascotAnimationState.Idle)); + AddUntilStep("Wait for idle state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Idle)); + } + + [Test] + public void TestKiai() + { + AddStep("Set beatmap", () => setBeatmap(true)); + + AddUntilStep("Wait for beatmap to be loaded", () => beatmap.Value.Track.IsLoaded); + + AddStep("Create kiai ruleset", () => + { + beatmap.Value.Track.Start(); + + rulesets.Clear(); + SetContents(() => + { + var ruleset = new TaikoRuleset(); + var drawableRuleset = new DrawableTaikoRuleset(ruleset, beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); + rulesets.Add(drawableRuleset); + return drawableRuleset; + }); + }); + + AddStep("Collect playfields", collectPlayfields); + AddStep("Collect mascots", collectMascots); + + AddUntilStep("Wait for fail state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Fail)); + + AddStep("Create hit (great)", () => + { + foreach (var playfield in playfields) + addJudgement(playfield, HitResult.Great); + }); + + AddUntilStep("Wait for kiai state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Kiai)); + } + + private void setBeatmap(bool kiai = false) + { + var controlPointInfo = new ControlPointInfo(); + controlPointInfo.Add(0, new TimingControlPoint { BeatLength = 90 }); + + if (kiai) + controlPointInfo.Add(0, new EffectControlPoint { KiaiMode = true }); + + beatmap.Value = CreateWorkingBeatmap(new Beatmap + { + HitObjects = new List { new Hit { Type = HitType.Centre } }, + BeatmapInfo = new BeatmapInfo + { + BaseDifficulty = new BeatmapDifficulty(), + Metadata = new BeatmapMetadata + { + Artist = @"Unknown", + Title = @"Sample Beatmap", + AuthorString = @"Craftplacer", + }, + Ruleset = new TaikoRuleset().RulesetInfo + }, + ControlPointInfo = controlPointInfo + }); + } + + private void setState(TaikoMascotAnimationState state) + { + foreach (var mascot in mascots) + mascot?.ShowState(state); + } + + private void collectPlayfields() + { + playfields.Clear(); + foreach (var ruleset in rulesets) playfields.Add(ruleset.ChildrenOfType().Single()); + } + + private void collectMascots() + { + mascots.Clear(); + + foreach (var playfield in playfields) + { + var mascot = playfield.ChildrenOfType() + .SingleOrDefault(); + + if (mascot != null) mascots.Add(mascot); + } } private void addJudgement(TaikoPlayfield playfield, HitResult result) { playfield.OnNewResult(new DrawableRimHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); } + + private class TestDrawableTaikoMascot : DrawableTaikoMascot + { + public TestDrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) + : base(startingState) + { + } + + protected override TaikoMascotAnimationState GetFinalAnimationState(EffectControlPoint effectPoint, TaikoMascotAnimationState playfieldState) + { + return State; + } + } } } diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index f05c335456..2c94f5f1cb 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using osu.Framework.Allocation; using osu.Framework.Audio.Track; using osu.Framework.Bindables; @@ -11,68 +12,29 @@ using osu.Game.Graphics.Containers; namespace osu.Game.Rulesets.Taiko.UI { - public sealed class DrawableTaikoMascot : BeatSyncedContainer + public class DrawableTaikoMascot : BeatSyncedContainer { - private static TaikoMascotTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; + private TaikoMascotTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; private EffectControlPoint lastEffectControlPoint; - private TaikoMascotAnimationState state; public Bindable PlayfieldState; - ///

    - /// Determines if there should be no "state logic", intended for testing. - /// - public bool Dumb { get; set; } - - public TaikoMascotAnimationState State - { - get => state; - set - { - state = value; - - foreach (var child in InternalChildren) - child.Hide(); - - var drawable = getStateDrawable(State); - - drawable?.Show(); - } - } + public TaikoMascotAnimationState State { get; private set; } public DrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) { RelativeSizeAxes = Axes.Both; + PlayfieldState = new Bindable(); PlayfieldState.BindValueChanged(b => { if (lastEffectControlPoint != null) - State = getFinalAnimationState(lastEffectControlPoint, b.NewValue); + ShowState(GetFinalAnimationState(lastEffectControlPoint, b.NewValue)); }); State = startingState; } - private TaikoMascotTextureAnimation getStateDrawable(TaikoMascotAnimationState state) - { - return state switch - { - TaikoMascotAnimationState.Idle => idleDrawable, - TaikoMascotAnimationState.Clear => clearDrawable, - TaikoMascotAnimationState.Kiai => kiaiDrawable, - TaikoMascotAnimationState.Fail => failDrawable, - _ => null - }; - } - - private TaikoMascotAnimationState getFinalAnimationState(EffectControlPoint effectPoint, TaikoMascotAnimationState playfieldState) - { - if (playfieldState == TaikoMascotAnimationState.Fail) - return playfieldState; - - return effectPoint.KiaiMode ? TaikoMascotAnimationState.Kiai : TaikoMascotAnimationState.Idle; - } - [BackgroundDependencyLoader] private void load(TextureStore textures) { @@ -84,21 +46,60 @@ namespace osu.Game.Rulesets.Taiko.UI failDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Fail), }; - // making sure we have the correct sprite set + ShowState(State); + } + + public void ShowState(TaikoMascotAnimationState state) + { + foreach (var child in InternalChildren) + child.Hide(); + State = state; + + var drawable = getStateDrawable(State); + drawable.Show(); + } + + private TaikoMascotTextureAnimation getStateDrawable(TaikoMascotAnimationState state) + { + switch (state) + { + case TaikoMascotAnimationState.Idle: + return idleDrawable; + + case TaikoMascotAnimationState.Clear: + return clearDrawable; + + case TaikoMascotAnimationState.Kiai: + return kiaiDrawable; + + case TaikoMascotAnimationState.Fail: + return failDrawable; + + default: + throw new ArgumentException($"There's no case for animation state ${state} available", nameof(state)); + } + } + + protected virtual TaikoMascotAnimationState GetFinalAnimationState(EffectControlPoint effectPoint, TaikoMascotAnimationState playfieldState) + { + if (playfieldState == TaikoMascotAnimationState.Fail) + return playfieldState; + + return effectPoint.KiaiMode ? TaikoMascotAnimationState.Kiai : TaikoMascotAnimationState.Idle; } protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) { base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); - if (!Dumb) - State = getFinalAnimationState(lastEffectControlPoint = effectPoint, PlayfieldState.Value); + var state = GetFinalAnimationState(lastEffectControlPoint = effectPoint, PlayfieldState.Value); + ShowState(state); - if (State == TaikoMascotAnimationState.Clear) + if (state == TaikoMascotAnimationState.Clear) return; - var drawable = getStateDrawable(State); + var drawable = getStateDrawable(state); drawable.Move(); } } diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index 2c04d3e1dc..c8e97b9f8b 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Animations; @@ -39,7 +40,7 @@ namespace osu.Game.Rulesets.Taiko.UI { foreach (var textureIndex in clear_animation_sequence) { - var textureName = _getStateTextureName(textureIndex); + var textureName = getStateTextureName(textureIndex); Texture texture = skin.GetTexture(textureName); if (texture == null) @@ -52,7 +53,7 @@ namespace osu.Game.Rulesets.Taiko.UI { for (int i = 0; true; i++) { - var textureName = _getStateTextureName(i); + var textureName = getStateTextureName(i); Texture texture = skin.GetTexture(textureName); if (texture == null) @@ -63,10 +64,13 @@ namespace osu.Game.Rulesets.Taiko.UI } } - /// Advances the current frame by one. + /// + /// Advances the current frame by one. + /// public void Move() { - if (FrameCount == 0) // Frames are apparently broken + // Check whether there are frames before causing a crash. + if (FrameCount == 0) return; if (FrameCount <= currentFrame) @@ -77,18 +81,27 @@ namespace osu.Game.Rulesets.Taiko.UI currentFrame += 1; } - private string _getStateTextureName(int i) => $"pippidon{_getStateString(State)}{i}"; + private string getStateTextureName(int i) => $"pippidon{getStateString(State)}{i}"; - private string _getStateString(TaikoMascotAnimationState state) + private string getStateString(TaikoMascotAnimationState state) { - return state switch + switch (state) { - TaikoMascotAnimationState.Clear => "clear", - TaikoMascotAnimationState.Fail => "fail", - TaikoMascotAnimationState.Idle => "idle", - TaikoMascotAnimationState.Kiai => "kiai", - _ => null - }; + case TaikoMascotAnimationState.Clear: + return "clear"; + + case TaikoMascotAnimationState.Fail: + return "fail"; + + case TaikoMascotAnimationState.Idle: + return "idle"; + + case TaikoMascotAnimationState.Kiai: + return "kiai"; + + default: + throw new ArgumentException($"There's no case for animation state ${state} available", nameof(state)); + } } } } diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 6d9d263141..ebb3e0e786 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -282,15 +282,15 @@ namespace osu.Game.Rulesets.Taiko.UI mascot.PlayfieldState.Value = isFailing ? TaikoMascotAnimationState.Fail : TaikoMascotAnimationState.Idle; } } - } - internal class ProxyContainer : LifetimeManagementContainer - { - public new MarginPadding Padding + private class ProxyContainer : LifetimeManagementContainer { - set => base.Padding = value; - } + public new MarginPadding Padding + { + set => base.Padding = value; + } - public void Add(Drawable proxy) => AddInternal(proxy); + public void Add(Drawable proxy) => AddInternal(proxy); + } } } From d46643ec5270942bb0e590fb5c2febea0101ba02 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 02:10:12 +0200 Subject: [PATCH 034/213] Rework special case for strong hits --- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index ebb3e0e786..9a2cfad8a4 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -270,16 +270,12 @@ namespace osu.Game.Rulesets.Taiko.UI if (characterDrawable.Drawable is DrawableTaikoMascot mascot) { - var isFailing = result.Type == HitResult.Miss; + var miss = result.Type == HitResult.Miss; - // Only take combo in consideration when it's not a strong hit (it's always false) - if (!(judgedObject.HitObject is StrongHitObject)) - { - if (isFailing) - isFailing = result.Judgement.AffectsCombo; - } + if (miss && judgedObject.HitObject is StrongHitObject) + miss = result.Judgement.AffectsCombo; - mascot.PlayfieldState.Value = isFailing ? TaikoMascotAnimationState.Fail : TaikoMascotAnimationState.Idle; + mascot.PlayfieldState.Value = miss ? TaikoMascotAnimationState.Fail : TaikoMascotAnimationState.Idle; } } From ece6e2db5cca33bacff5301804a18cc6b9dd3eaa Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 13:12:31 +0200 Subject: [PATCH 035/213] Change removed class --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index d11bfa05ba..93b5803e87 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -193,7 +193,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning private void addJudgement(TaikoPlayfield playfield, HitResult result) { - playfield.OnNewResult(new DrawableRimHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); + playfield.OnNewResult(new DrawableHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); } private class TestDrawableTaikoMascot : DrawableTaikoMascot From c0493026500db4fe91dd727176c84c2fcfec383f Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 22:23:04 +0200 Subject: [PATCH 036/213] Update osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Bartłomiej Dach --- osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index c8e97b9f8b..be1864049a 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -100,7 +100,7 @@ namespace osu.Game.Rulesets.Taiko.UI return "kiai"; default: - throw new ArgumentException($"There's no case for animation state ${state} available", nameof(state)); + throw new ArgumentOutOfRangeException(nameof(state), $"There's no case for animation state {state} available"); } } } From 5caa4dedc2cd28b3bbd098a47a80c62349000b43 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 22:27:03 +0200 Subject: [PATCH 037/213] Update osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Bartłomiej Dach --- osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 2c94f5f1cb..a90bf11af5 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -77,7 +77,7 @@ namespace osu.Game.Rulesets.Taiko.UI return failDrawable; default: - throw new ArgumentException($"There's no case for animation state ${state} available", nameof(state)); + throw new ArgumentOutOfRangeException(nameof(state), $"There's no animation available for state {state}"); } } From 0972442b3a6bbc64845d7a79b926454310c014ef Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 23:17:19 +0200 Subject: [PATCH 038/213] Use test scene beatmap bindable --- .../.idea/projectSettingsUpdater.xml | 2 +- .../Skinning/TestSceneDrawableTaikoMascot.cs | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml index 4bb9f4d2a0..7515e76054 100644 --- a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml +++ b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 93b5803e87..3a78ad76a6 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -37,13 +37,18 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning TimeRange = { Value = 5000 }, }; - [Cached(typeof(IBindable))] - private Bindable beatmap = new Bindable(); + private Bindable workingBeatmap; private readonly List mascots = new List(); private readonly List playfields = new List(); private readonly List rulesets = new List(); + [BackgroundDependencyLoader] + private void load(Bindable beatmap) + { + workingBeatmap = beatmap; + } + [Test] public void TestStateTextures() { @@ -79,7 +84,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning SetContents(() => { var ruleset = new TaikoRuleset(); - var drawableRuleset = new DrawableTaikoRuleset(ruleset, beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); + var drawableRuleset = new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); rulesets.Add(drawableRuleset); return drawableRuleset; }); @@ -110,17 +115,17 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { AddStep("Set beatmap", () => setBeatmap(true)); - AddUntilStep("Wait for beatmap to be loaded", () => beatmap.Value.Track.IsLoaded); + AddUntilStep("Wait for beatmap to be loaded", () => workingBeatmap.Value.Track.IsLoaded); AddStep("Create kiai ruleset", () => { - beatmap.Value.Track.Start(); + workingBeatmap.Value.Track.Start(); rulesets.Clear(); SetContents(() => { var ruleset = new TaikoRuleset(); - var drawableRuleset = new DrawableTaikoRuleset(ruleset, beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); + var drawableRuleset = new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); rulesets.Add(drawableRuleset); return drawableRuleset; }); @@ -148,7 +153,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning if (kiai) controlPointInfo.Add(0, new EffectControlPoint { KiaiMode = true }); - beatmap.Value = CreateWorkingBeatmap(new Beatmap + workingBeatmap.Value = CreateWorkingBeatmap(new Beatmap { HitObjects = new List { new Hit { Type = HitType.Centre } }, BeatmapInfo = new BeatmapInfo From c8ee941952c9e9de3c55dae188e40037f1a2366f Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 23:17:33 +0200 Subject: [PATCH 039/213] Fix formatting --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 3a78ad76a6..a0ab3e5c25 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -180,7 +180,8 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning private void collectPlayfields() { playfields.Clear(); - foreach (var ruleset in rulesets) playfields.Add(ruleset.ChildrenOfType().Single()); + foreach (var ruleset in rulesets) + playfields.Add(ruleset.ChildrenOfType().Single()); } private void collectMascots() From 9b3c1e41267e5e6f59effceddcb361f17df54490 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 23:17:52 +0200 Subject: [PATCH 040/213] Remove unused bindables --- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 020df5e9e4..d94503fa67 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -3,7 +3,6 @@ using System.Linq; using osu.Framework.Allocation; -using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Beatmaps.ControlPoints; @@ -44,8 +43,6 @@ namespace osu.Game.Rulesets.Taiko.UI private SkinnableDrawable mascotDrawable; - private Bindable frameTime = new Bindable(100); - public TaikoPlayfield(ControlPointInfo controlPoints) { this.controlPoints = controlPoints; From 834eeb6d9862fdd1f0badc6125b1ae5a0007d70e Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 23:18:26 +0200 Subject: [PATCH 041/213] Reduce duplicate texture retrieval code --- .../UI/TaikoMascotTextureAnimation.cs | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index c8e97b9f8b..6fc8df66ae 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -5,7 +5,6 @@ using System; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Animations; -using osu.Framework.Graphics.Textures; using osu.Game.Skinning; namespace osu.Game.Rulesets.Taiko.UI @@ -40,30 +39,33 @@ namespace osu.Game.Rulesets.Taiko.UI { foreach (var textureIndex in clear_animation_sequence) { - var textureName = getStateTextureName(textureIndex); - Texture texture = skin.GetTexture(textureName); - - if (texture == null) + if (!addFrame(skin, textureIndex)) break; - - AddFrame(texture); } } else { for (int i = 0; true; i++) { - var textureName = getStateTextureName(i); - Texture texture = skin.GetTexture(textureName); - - if (texture == null) + if (!addFrame(skin, i)) break; - - AddFrame(texture); } } } + private bool addFrame(ISkinSource skin, int textureIndex) + { + var textureName = getStateTextureName(textureIndex); + var texture = skin.GetTexture(textureName); + + if (texture == null) + return false; + + AddFrame(texture); + + return true; + } + /// /// Advances the current frame by one. /// From 96660b2cca73a642f07cb35e0dd8e5bfd22cb89a Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 23:18:40 +0200 Subject: [PATCH 042/213] Flip frame count check --- osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs index 6fc8df66ae..6ceb5cd08e 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs @@ -75,7 +75,7 @@ namespace osu.Game.Rulesets.Taiko.UI if (FrameCount == 0) return; - if (FrameCount <= currentFrame) + if (currentFrame >= FrameCount) currentFrame = 0; GotoFrame(currentFrame); From 74d36cad784f2c1c3f3ca94f6eca84745d4b50f0 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 27 Apr 2020 23:19:18 +0200 Subject: [PATCH 043/213] Change state variables --- .../UI/DrawableTaikoMascot.cs | 27 +++++++++++-------- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 2c94f5f1cb..e66a045881 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -4,7 +4,6 @@ using System; using osu.Framework.Allocation; using osu.Framework.Audio.Track; -using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Textures; using osu.Game.Beatmaps.ControlPoints; @@ -16,8 +15,7 @@ namespace osu.Game.Rulesets.Taiko.UI { private TaikoMascotTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; private EffectControlPoint lastEffectControlPoint; - - public Bindable PlayfieldState; + private TaikoMascotAnimationState playfieldState; public TaikoMascotAnimationState State { get; private set; } @@ -25,13 +23,6 @@ namespace osu.Game.Rulesets.Taiko.UI { RelativeSizeAxes = Axes.Both; - PlayfieldState = new Bindable(); - PlayfieldState.BindValueChanged(b => - { - if (lastEffectControlPoint != null) - ShowState(GetFinalAnimationState(lastEffectControlPoint, b.NewValue)); - }); - State = startingState; } @@ -60,6 +51,20 @@ namespace osu.Game.Rulesets.Taiko.UI drawable.Show(); } + /// + /// Sets the playfield state used for determining the final state. + /// + /// + /// If you're looking to change the state manually, please look at . + /// + public void SetPlayfieldState(TaikoMascotAnimationState state) + { + playfieldState = state; + + if (lastEffectControlPoint != null) + ShowState(GetFinalAnimationState(lastEffectControlPoint, playfieldState)); + } + private TaikoMascotTextureAnimation getStateDrawable(TaikoMascotAnimationState state) { switch (state) @@ -93,7 +98,7 @@ namespace osu.Game.Rulesets.Taiko.UI { base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); - var state = GetFinalAnimationState(lastEffectControlPoint = effectPoint, PlayfieldState.Value); + var state = GetFinalAnimationState(lastEffectControlPoint = effectPoint, playfieldState); ShowState(state); if (state == TaikoMascotAnimationState.Clear) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index d94503fa67..41879f173e 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -220,7 +220,7 @@ namespace osu.Game.Rulesets.Taiko.UI if (miss && judgedObject.HitObject is StrongHitObject) miss = result.Judgement.AffectsCombo; - mascot.PlayfieldState.Value = miss ? TaikoMascotAnimationState.Fail : TaikoMascotAnimationState.Idle; + mascot.SetPlayfieldState(miss ? TaikoMascotAnimationState.Fail : TaikoMascotAnimationState.Idle); } } From 902326e7ac175923a5a1dbcc40adcbdb218f8f29 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Tue, 28 Apr 2020 22:24:19 +0200 Subject: [PATCH 044/213] Slight refactoring --- .idea/.idea.osu.Desktop/.idea/discord.xml | 9 ++++ .../Skinning/TestSceneDrawableTaikoMascot.cs | 41 +++++++------------ 2 files changed, 24 insertions(+), 26 deletions(-) create mode 100644 .idea/.idea.osu.Desktop/.idea/discord.xml diff --git a/.idea/.idea.osu.Desktop/.idea/discord.xml b/.idea/.idea.osu.Desktop/.idea/discord.xml new file mode 100644 index 0000000000..59b11d1d39 --- /dev/null +++ b/.idea/.idea.osu.Desktop/.idea/discord.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index a0ab3e5c25..41d7156e7e 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -93,21 +93,11 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("Collect playfields", collectPlayfields); AddStep("Collect mascots", collectMascots); - AddStep("Create hit (miss)", () => - { - foreach (var playfield in playfields) - addJudgement(playfield, HitResult.Miss); - }); + AddStep("Create hit (great)", () => addJudgement(HitResult.Miss)); + AddUntilStep("Wait for idle state", () => checkForState(TaikoMascotAnimationState.Fail)); - AddUntilStep("Wait for fail state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Fail)); - - AddStep("Create hit (great)", () => - { - foreach (var playfield in playfields) - addJudgement(playfield, HitResult.Great); - }); - - AddUntilStep("Wait for idle state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Idle)); + AddStep("Create hit (great)", () => addJudgement(HitResult.Great)); + AddUntilStep("Wait for idle state", () => checkForState(TaikoMascotAnimationState.Idle)); } [Test] @@ -134,15 +124,10 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("Collect playfields", collectPlayfields); AddStep("Collect mascots", collectMascots); - AddUntilStep("Wait for fail state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Fail)); + AddUntilStep("Wait for idle state", () => checkForState(TaikoMascotAnimationState.Fail)); - AddStep("Create hit (great)", () => - { - foreach (var playfield in playfields) - addJudgement(playfield, HitResult.Great); - }); - - AddUntilStep("Wait for kiai state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Kiai)); + AddStep("Create hit (great)", () => addJudgement(HitResult.Great)); + AddUntilStep("Wait for idle state", () => checkForState(TaikoMascotAnimationState.Kiai)); } private void setBeatmap(bool kiai = false) @@ -190,18 +175,22 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning foreach (var playfield in playfields) { - var mascot = playfield.ChildrenOfType() + var mascot = playfield.ChildrenOfType() .SingleOrDefault(); - if (mascot != null) mascots.Add(mascot); + if (mascot != null) + mascots.Add(mascot); } } - private void addJudgement(TaikoPlayfield playfield, HitResult result) + private void addJudgement(HitResult result) { - playfield.OnNewResult(new DrawableHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); + foreach (var playfield in playfields) + playfield.OnNewResult(new DrawableHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); } + private bool checkForState(TaikoMascotAnimationState state) => mascots.All(d => d.State == state); + private class TestDrawableTaikoMascot : DrawableTaikoMascot { public TestDrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) From 0d285ac0f40e8343eb4462389c9366177bd409b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Tue, 28 Apr 2020 23:17:52 +0200 Subject: [PATCH 045/213] Revert unrelated change to Rider configuration --- .idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml index 7515e76054..4bb9f4d2a0 100644 --- a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml +++ b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml @@ -1,6 +1,6 @@ - \ No newline at end of file From 24216b6600106282f68565b85677dd260ef186c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Tue, 28 Apr 2020 23:22:50 +0200 Subject: [PATCH 046/213] Remove unnecessary lists --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 50 ++----------------- 1 file changed, 5 insertions(+), 45 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index a0ab3e5c25..ae7dc71cc9 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -39,9 +39,8 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning private Bindable workingBeatmap; - private readonly List mascots = new List(); - private readonly List playfields = new List(); - private readonly List rulesets = new List(); + private IEnumerable mascots => this.ChildrenOfType(); + private IEnumerable playfields => this.ChildrenOfType(); [BackgroundDependencyLoader] private void load(Bindable beatmap) @@ -56,14 +55,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("Create mascot (idle)", () => { - mascots.Clear(); - - SetContents(() => - { - var mascot = new TestDrawableTaikoMascot(); - mascots.Add(mascot); - return mascot; - }); + SetContents(() => new TestDrawableTaikoMascot()); }); AddStep("Clear state", () => setState(TaikoMascotAnimationState.Clear)); @@ -80,19 +72,13 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("Create ruleset", () => { - rulesets.Clear(); SetContents(() => { var ruleset = new TaikoRuleset(); - var drawableRuleset = new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); - rulesets.Add(drawableRuleset); - return drawableRuleset; + return new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); }); }); - AddStep("Collect playfields", collectPlayfields); - AddStep("Collect mascots", collectMascots); - AddStep("Create hit (miss)", () => { foreach (var playfield in playfields) @@ -121,19 +107,13 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { workingBeatmap.Value.Track.Start(); - rulesets.Clear(); SetContents(() => { var ruleset = new TaikoRuleset(); - var drawableRuleset = new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); - rulesets.Add(drawableRuleset); - return drawableRuleset; + return new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); }); }); - AddStep("Collect playfields", collectPlayfields); - AddStep("Collect mascots", collectMascots); - AddUntilStep("Wait for fail state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Fail)); AddStep("Create hit (great)", () => @@ -177,26 +157,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning mascot?.ShowState(state); } - private void collectPlayfields() - { - playfields.Clear(); - foreach (var ruleset in rulesets) - playfields.Add(ruleset.ChildrenOfType().Single()); - } - - private void collectMascots() - { - mascots.Clear(); - - foreach (var playfield in playfields) - { - var mascot = playfield.ChildrenOfType() - .SingleOrDefault(); - - if (mascot != null) mascots.Add(mascot); - } - } - private void addJudgement(TaikoPlayfield playfield, HitResult result) { playfield.OnNewResult(new DrawableHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); From 15bbedca8796a4c91975592ae6005d211195449b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Tue, 28 Apr 2020 23:24:21 +0200 Subject: [PATCH 047/213] Remove unnecessary beatmap field --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index ae7dc71cc9..8f45fec3f9 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -6,7 +6,6 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; -using osu.Framework.Bindables; using osu.Framework.Testing; using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; @@ -37,17 +36,9 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning TimeRange = { Value = 5000 }, }; - private Bindable workingBeatmap; - private IEnumerable mascots => this.ChildrenOfType(); private IEnumerable playfields => this.ChildrenOfType(); - [BackgroundDependencyLoader] - private void load(Bindable beatmap) - { - workingBeatmap = beatmap; - } - [Test] public void TestStateTextures() { @@ -75,7 +66,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning SetContents(() => { var ruleset = new TaikoRuleset(); - return new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); + return new DrawableTaikoRuleset(ruleset, Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); }); }); @@ -101,16 +92,16 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { AddStep("Set beatmap", () => setBeatmap(true)); - AddUntilStep("Wait for beatmap to be loaded", () => workingBeatmap.Value.Track.IsLoaded); + AddUntilStep("Wait for beatmap to be loaded", () => Beatmap.Value.Track.IsLoaded); AddStep("Create kiai ruleset", () => { - workingBeatmap.Value.Track.Start(); + Beatmap.Value.Track.Start(); SetContents(() => { var ruleset = new TaikoRuleset(); - return new DrawableTaikoRuleset(ruleset, workingBeatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); + return new DrawableTaikoRuleset(ruleset, Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); }); }); @@ -133,7 +124,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning if (kiai) controlPointInfo.Add(0, new EffectControlPoint { KiaiMode = true }); - workingBeatmap.Value = CreateWorkingBeatmap(new Beatmap + Beatmap.Value = CreateWorkingBeatmap(new Beatmap { HitObjects = new List { new Hit { Type = HitType.Centre } }, BeatmapInfo = new BeatmapInfo From e7e529ab99944f62bbc31f711295519950426b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Tue, 28 Apr 2020 23:26:10 +0200 Subject: [PATCH 048/213] Remove unnecessary null checks --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 8f45fec3f9..83bf64eb46 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -76,7 +76,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning addJudgement(playfield, HitResult.Miss); }); - AddUntilStep("Wait for fail state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Fail)); + AddUntilStep("Wait for fail state", () => mascots.All(d => d.State == TaikoMascotAnimationState.Fail)); AddStep("Create hit (great)", () => { @@ -84,7 +84,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning addJudgement(playfield, HitResult.Great); }); - AddUntilStep("Wait for idle state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Idle)); + AddUntilStep("Wait for idle state", () => mascots.All(d => d.State == TaikoMascotAnimationState.Idle)); } [Test] @@ -105,7 +105,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); }); - AddUntilStep("Wait for fail state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Fail)); + AddUntilStep("Wait for fail state", () => mascots.All(d => d.State == TaikoMascotAnimationState.Fail)); AddStep("Create hit (great)", () => { @@ -113,7 +113,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning addJudgement(playfield, HitResult.Great); }); - AddUntilStep("Wait for kiai state", () => mascots.Where(d => d != null).All(d => d.State == TaikoMascotAnimationState.Kiai)); + AddUntilStep("Wait for kiai state", () => mascots.All(d => d.State == TaikoMascotAnimationState.Kiai)); } private void setBeatmap(bool kiai = false) From d7b072dd6e90138a6607deff4c9943c019733cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 29 Apr 2020 00:00:01 +0200 Subject: [PATCH 049/213] Fix post-merge test regression --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 83bf64eb46..4eeeb52e2f 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -14,7 +14,6 @@ using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Taiko.Judgements; using osu.Game.Rulesets.Taiko.Objects; -using osu.Game.Rulesets.Taiko.Objects.Drawables; using osu.Game.Rulesets.Taiko.UI; using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Tests.Visual; @@ -150,7 +149,10 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning private void addJudgement(TaikoPlayfield playfield, HitResult result) { - playfield.OnNewResult(new DrawableHit(new Hit()), new JudgementResult(new HitObject(), new TaikoJudgement()) { Type = result }); + var hit = new DrawableTestHit(new Hit(), result); + Add(hit); + + playfield.OnNewResult(hit, new JudgementResult(hit.HitObject, new TaikoJudgement()) { Type = result }); } private class TestDrawableTaikoMascot : DrawableTaikoMascot From 4a101ca7151cbb1bc75bb0ce5143cc863e7aa265 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Wed, 29 Apr 2020 10:46:32 +0200 Subject: [PATCH 050/213] Revert project config file change --- .idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml index 4bb9f4d2a0..7515e76054 100644 --- a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml +++ b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml @@ -1,6 +1,6 @@ - \ No newline at end of file From 511f7aeb28084553d2d60fb035aa4c296f856df8 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Wed, 29 Apr 2020 10:55:39 +0200 Subject: [PATCH 051/213] Remove rider plugin config --- .idea/.idea.osu.Desktop/.idea/discord.xml | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 .idea/.idea.osu.Desktop/.idea/discord.xml diff --git a/.idea/.idea.osu.Desktop/.idea/discord.xml b/.idea/.idea.osu.Desktop/.idea/discord.xml deleted file mode 100644 index 59b11d1d39..0000000000 --- a/.idea/.idea.osu.Desktop/.idea/discord.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file From 43e768240f8a1dcba8179efef6dcd09c8f150934 Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Wed, 29 Apr 2020 10:57:07 +0200 Subject: [PATCH 052/213] Revert "Revert project config file change" This reverts commit 4a101ca7151cbb1bc75bb0ce5143cc863e7aa265. --- .idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml index 7515e76054..4bb9f4d2a0 100644 --- a/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml +++ b/.idea/.idea.osu.Desktop/.idea/projectSettingsUpdater.xml @@ -1,6 +1,6 @@ - \ No newline at end of file From 6e2ed0c4f3f4389e32e84d548262b5037daa015e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 29 Apr 2020 20:28:46 +0200 Subject: [PATCH 053/213] Refactor mascot to only contain state transitions --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 47 ++++---- .../UI/DrawableTaikoMascot.cs | 109 +++++++----------- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 8 +- 3 files changed, 67 insertions(+), 97 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 2966c90b5e..f37c723a36 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; +using osu.Framework.Bindables; using osu.Framework.Testing; using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; @@ -41,26 +42,25 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning [Test] public void TestStateTextures() { - AddStep("Set beatmap", () => setBeatmap()); + AddStep("set beatmap", () => setBeatmap()); - AddStep("Create mascot (idle)", () => + AddStep("create mascot", () => { SetContents(() => new TestDrawableTaikoMascot()); }); - AddStep("Clear state", () => setState(TaikoMascotAnimationState.Clear)); - - AddStep("Kiai state", () => setState(TaikoMascotAnimationState.Kiai)); - - AddStep("Fail state", () => setState(TaikoMascotAnimationState.Fail)); + AddStep("clear state", () => setState(TaikoMascotAnimationState.Clear)); + AddStep("kiai state", () => setState(TaikoMascotAnimationState.Kiai)); + AddStep("fail state", () => setState(TaikoMascotAnimationState.Fail)); + AddStep("idle state", () => setState(TaikoMascotAnimationState.Idle)); } [Test] public void TestPlayfield() { - AddStep("Set beatmap", () => setBeatmap()); + AddStep("set beatmap", () => setBeatmap()); - AddStep("Create ruleset", () => + AddStep("create drawable ruleset", () => { SetContents(() => { @@ -69,21 +69,21 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); }); - AddStep("Create hit (great)", () => addJudgement(HitResult.Miss)); - AddUntilStep("Wait for idle state", () => checkForState(TaikoMascotAnimationState.Fail)); + AddStep("new judgement (miss)", () => addJudgement(HitResult.Miss)); + AddUntilStep("wait for fail state", () => assertState(TaikoMascotAnimationState.Fail)); - AddStep("Create hit (great)", () => addJudgement(HitResult.Great)); - AddUntilStep("Wait for idle state", () => checkForState(TaikoMascotAnimationState.Idle)); + AddStep("new judgement (great)", () => addJudgement(HitResult.Great)); + AddUntilStep("wait for idle state", () => assertState(TaikoMascotAnimationState.Idle)); } [Test] public void TestKiai() { - AddStep("Set beatmap", () => setBeatmap(true)); + AddStep("set beatmap", () => setBeatmap(true)); - AddUntilStep("Wait for beatmap to be loaded", () => Beatmap.Value.Track.IsLoaded); + AddUntilStep("wait for beatmap to be loaded", () => Beatmap.Value.Track.IsLoaded); - AddStep("Create kiai ruleset", () => + AddStep("create drawable ruleset", () => { Beatmap.Value.Track.Start(); @@ -94,10 +94,10 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); }); - AddUntilStep("Wait for idle state", () => checkForState(TaikoMascotAnimationState.Fail)); + AddUntilStep("wait for fail state", () => assertState(TaikoMascotAnimationState.Fail)); - AddStep("Create hit (great)", () => addJudgement(HitResult.Great)); - AddUntilStep("Wait for kiai state", () => checkForState(TaikoMascotAnimationState.Kiai)); + AddStep("new judgement (great)", () => addJudgement(HitResult.Great)); + AddUntilStep("wait for kiai state", () => assertState(TaikoMascotAnimationState.Kiai)); } private void setBeatmap(bool kiai = false) @@ -129,7 +129,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning private void setState(TaikoMascotAnimationState state) { foreach (var mascot in mascots) - mascot?.ShowState(state); + mascot.State.Value = state; } private void addJudgement(HitResult result) @@ -143,7 +143,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning } } - private bool checkForState(TaikoMascotAnimationState state) => mascots.All(d => d.State == state); + private bool assertState(TaikoMascotAnimationState state) => mascots.All(d => d.State.Value == state); private class TestDrawableTaikoMascot : DrawableTaikoMascot { @@ -152,10 +152,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { } - protected override TaikoMascotAnimationState GetFinalAnimationState(EffectControlPoint effectPoint, TaikoMascotAnimationState playfieldState) - { - return State; - } + public new Bindable State => base.State; } } } diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 7c4dfe2da7..be744de5f4 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -1,29 +1,36 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; +using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Audio.Track; +using osu.Framework.Bindables; +using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Textures; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics.Containers; +using osu.Game.Rulesets.Judgements; +using osu.Game.Rulesets.Scoring; namespace osu.Game.Rulesets.Taiko.UI { public class DrawableTaikoMascot : BeatSyncedContainer { - private TaikoMascotTextureAnimation idleDrawable, clearDrawable, kiaiDrawable, failDrawable; - private EffectControlPoint lastEffectControlPoint; - private TaikoMascotAnimationState playfieldState; + protected Bindable State { get; } - public TaikoMascotAnimationState State { get; private set; } + private readonly Dictionary animations; + private Drawable currentAnimation; + + private bool lastHitMissed; + private bool kiaiMode; public DrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) { RelativeSizeAxes = Axes.Both; - State = startingState; + State = new Bindable(startingState); + animations = new Dictionary(); } [BackgroundDependencyLoader] @@ -31,81 +38,53 @@ namespace osu.Game.Rulesets.Taiko.UI { InternalChildren = new[] { - idleDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Idle), - clearDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Clear), - kiaiDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Kiai), - failDrawable = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Fail), + animations[TaikoMascotAnimationState.Idle] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Idle), + animations[TaikoMascotAnimationState.Clear] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Clear), + animations[TaikoMascotAnimationState.Kiai] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Kiai), + animations[TaikoMascotAnimationState.Fail] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Fail), }; - ShowState(State); + updateState(); } - public void ShowState(TaikoMascotAnimationState state) + protected override void LoadComplete() { - foreach (var child in InternalChildren) - child.Hide(); + base.LoadComplete(); - State = state; - - var drawable = getStateDrawable(State); - drawable.Show(); + animations.Values.ForEach(animation => animation.Hide()); + State.BindValueChanged(mascotStateChanged, true); } - /// - /// Sets the playfield state used for determining the final state. - /// - /// - /// If you're looking to change the state manually, please look at . - /// - public void SetPlayfieldState(TaikoMascotAnimationState state) + public void OnNewResult(JudgementResult result) { - playfieldState = state; - - if (lastEffectControlPoint != null) - ShowState(GetFinalAnimationState(lastEffectControlPoint, playfieldState)); - } - - private TaikoMascotTextureAnimation getStateDrawable(TaikoMascotAnimationState state) - { - switch (state) - { - case TaikoMascotAnimationState.Idle: - return idleDrawable; - - case TaikoMascotAnimationState.Clear: - return clearDrawable; - - case TaikoMascotAnimationState.Kiai: - return kiaiDrawable; - - case TaikoMascotAnimationState.Fail: - return failDrawable; - - default: - throw new ArgumentOutOfRangeException(nameof(state), $"There's no animation available for state {state}"); - } - } - - protected virtual TaikoMascotAnimationState GetFinalAnimationState(EffectControlPoint effectPoint, TaikoMascotAnimationState playfieldState) - { - if (playfieldState == TaikoMascotAnimationState.Fail) - return playfieldState; - - return effectPoint.KiaiMode ? TaikoMascotAnimationState.Kiai : TaikoMascotAnimationState.Idle; + lastHitMissed = result.Type == HitResult.Miss && result.Judgement.AffectsCombo; + updateState(); } protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) { - base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); + kiaiMode = effectPoint.KiaiMode; + updateState(); + } - var state = GetFinalAnimationState(lastEffectControlPoint = effectPoint, playfieldState); - ShowState(state); + private void updateState() + { + State.Value = getNextState(); + } - if (state == TaikoMascotAnimationState.Clear) - return; + private TaikoMascotAnimationState getNextState() + { + if (lastHitMissed) + return TaikoMascotAnimationState.Fail; - var drawable = getStateDrawable(state); - drawable.Move(); + return kiaiMode ? TaikoMascotAnimationState.Kiai : TaikoMascotAnimationState.Idle; + } + + private void mascotStateChanged(ValueChangedEvent state) + { + currentAnimation?.Hide(); + currentAnimation = animations[state.NewValue]; + currentAnimation.Show(); } } } diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index c6e867a5d9..084a11d523 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -15,7 +15,6 @@ using osu.Game.Rulesets.Taiko.Objects.Drawables; using osu.Game.Rulesets.Taiko.Judgements; using osu.Game.Rulesets.Taiko.Objects; using osu.Game.Skinning; -using osu.Game.Rulesets.Scoring; namespace osu.Game.Rulesets.Taiko.UI { @@ -216,12 +215,7 @@ namespace osu.Game.Rulesets.Taiko.UI if (mascotDrawable.Drawable is DrawableTaikoMascot mascot) { - var miss = result.Type == HitResult.Miss; - - if (miss && judgedObject.HitObject is StrongHitObject) - miss = result.Judgement.AffectsCombo; - - mascot.SetPlayfieldState(miss ? TaikoMascotAnimationState.Fail : TaikoMascotAnimationState.Idle); + mascot.OnNewResult(result); } } From e81d33dcec78ce816fc823214ea99a0e524c69da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 29 Apr 2020 21:27:02 +0200 Subject: [PATCH 054/213] Refactor mascot animations to split logic paths --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 35 ++---- .../UI/DrawableTaikoMascot.cs | 19 +-- .../UI/TaikoMascotAnimation.cs | 116 ++++++++++++++++++ .../UI/TaikoMascotTextureAnimation.cs | 109 ---------------- 4 files changed, 133 insertions(+), 146 deletions(-) create mode 100644 osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs delete mode 100644 osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index f37c723a36..28065c401c 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -6,7 +6,6 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; -using osu.Framework.Bindables; using osu.Framework.Testing; using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; @@ -27,6 +26,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] { typeof(DrawableTaikoMascot), + typeof(TaikoMascotAnimation) }).ToList(); [Cached(typeof(IScrollingInfo))] @@ -36,23 +36,18 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning TimeRange = { Value = 5000 }, }; - private IEnumerable mascots => this.ChildrenOfType(); + private IEnumerable mascots => this.ChildrenOfType(); private IEnumerable playfields => this.ChildrenOfType(); [Test] - public void TestStateTextures() + public void TestStateAnimations() { AddStep("set beatmap", () => setBeatmap()); - AddStep("create mascot", () => - { - SetContents(() => new TestDrawableTaikoMascot()); - }); - - AddStep("clear state", () => setState(TaikoMascotAnimationState.Clear)); - AddStep("kiai state", () => setState(TaikoMascotAnimationState.Kiai)); - AddStep("fail state", () => setState(TaikoMascotAnimationState.Fail)); - AddStep("idle state", () => setState(TaikoMascotAnimationState.Idle)); + AddStep("clear state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Clear))); + AddStep("idle state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Idle))); + AddStep("kiai state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Kiai))); + AddStep("fail state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Fail))); } [Test] @@ -126,12 +121,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); } - private void setState(TaikoMascotAnimationState state) - { - foreach (var mascot in mascots) - mascot.State.Value = state; - } - private void addJudgement(HitResult result) { foreach (var playfield in playfields) @@ -144,15 +133,5 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning } private bool assertState(TaikoMascotAnimationState state) => mascots.All(d => d.State.Value == state); - - private class TestDrawableTaikoMascot : DrawableTaikoMascot - { - public TestDrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) - : base(startingState) - { - } - - public new Bindable State => base.State; - } } } diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index be744de5f4..bfc1d958c2 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -17,9 +17,10 @@ namespace osu.Game.Rulesets.Taiko.UI { public class DrawableTaikoMascot : BeatSyncedContainer { - protected Bindable State { get; } + public IBindable State => state; - private readonly Dictionary animations; + private readonly Bindable state; + private readonly Dictionary animations; private Drawable currentAnimation; private bool lastHitMissed; @@ -29,8 +30,8 @@ namespace osu.Game.Rulesets.Taiko.UI { RelativeSizeAxes = Axes.Both; - State = new Bindable(startingState); - animations = new Dictionary(); + state = new Bindable(startingState); + animations = new Dictionary(); } [BackgroundDependencyLoader] @@ -38,10 +39,10 @@ namespace osu.Game.Rulesets.Taiko.UI { InternalChildren = new[] { - animations[TaikoMascotAnimationState.Idle] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Idle), - animations[TaikoMascotAnimationState.Clear] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Clear), - animations[TaikoMascotAnimationState.Kiai] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Kiai), - animations[TaikoMascotAnimationState.Fail] = new TaikoMascotTextureAnimation(TaikoMascotAnimationState.Fail), + animations[TaikoMascotAnimationState.Idle] = new TaikoMascotAnimation(TaikoMascotAnimationState.Idle), + animations[TaikoMascotAnimationState.Clear] = new TaikoMascotAnimation(TaikoMascotAnimationState.Clear), + animations[TaikoMascotAnimationState.Kiai] = new TaikoMascotAnimation(TaikoMascotAnimationState.Kiai), + animations[TaikoMascotAnimationState.Fail] = new TaikoMascotAnimation(TaikoMascotAnimationState.Fail), }; updateState(); @@ -69,7 +70,7 @@ namespace osu.Game.Rulesets.Taiko.UI private void updateState() { - State.Value = getNextState(); + state.Value = getNextState(); } private TaikoMascotAnimationState getNextState() diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs new file mode 100644 index 0000000000..1e289c1a74 --- /dev/null +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -0,0 +1,116 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System; +using osu.Framework.Allocation; +using osu.Framework.Audio.Track; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Animations; +using osu.Framework.Graphics.Textures; +using osu.Game.Beatmaps.ControlPoints; +using osu.Game.Graphics.Containers; +using osu.Game.Skinning; + +namespace osu.Game.Rulesets.Taiko.UI +{ + public sealed class TaikoMascotAnimation : BeatSyncedContainer + { + private readonly TextureAnimation textureAnimation; + + private int currentFrame; + + public TaikoMascotAnimation(TaikoMascotAnimationState state) + { + InternalChild = textureAnimation = createTextureAnimation(state).With(animation => + { + animation.Origin = animation.Anchor = Anchor.BottomLeft; + RelativeSizeAxes = Axes.Both; + }); + + RelativeSizeAxes = Axes.Both; + Origin = Anchor = Anchor.BottomLeft; + } + + protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) + { + // assume that if the animation is playing on its own, it's independent from the beat and doesn't need to be touched. + if (textureAnimation.FrameCount == 0 || textureAnimation.IsPlaying) + return; + + textureAnimation.GotoFrame(currentFrame); + currentFrame = (currentFrame + 1) % textureAnimation.FrameCount; + } + + private static TextureAnimation createTextureAnimation(TaikoMascotAnimationState state) + { + switch (state) + { + case TaikoMascotAnimationState.Clear: + return new ClearMascotTextureAnimation(); + + case TaikoMascotAnimationState.Idle: + case TaikoMascotAnimationState.Kiai: + case TaikoMascotAnimationState.Fail: + return new ManualMascotTextureAnimation(state); + + default: + throw new ArgumentOutOfRangeException(nameof(state), $"Mascot animations for state {state} are not supported"); + } + } + + private class ManualMascotTextureAnimation : TextureAnimation + { + private readonly TaikoMascotAnimationState state; + + public ManualMascotTextureAnimation(TaikoMascotAnimationState state) + { + this.state = state; + + IsPlaying = false; + } + + [BackgroundDependencyLoader] + private void load(ISkinSource skin) + { + for (int frameIndex = 0; true; frameIndex++) + { + var texture = getAnimationFrame(skin, state, frameIndex); + + if (texture == null) + break; + + AddFrame(texture); + } + } + } + + private class ClearMascotTextureAnimation : TextureAnimation + { + private const float clear_animation_speed = 1000 / 10f; + + private static readonly int[] clear_animation_sequence = { 0, 1, 2, 3, 4, 5, 6, 5, 6, 5, 4, 3, 2, 1, 0 }; + + public ClearMascotTextureAnimation() + { + DefaultFrameLength = clear_animation_speed; + } + + [BackgroundDependencyLoader] + private void load(ISkinSource skin) + { + foreach (var frameIndex in clear_animation_sequence) + { + var texture = getAnimationFrame(skin, TaikoMascotAnimationState.Clear, frameIndex); + + if (texture == null) + continue; + + AddFrame(texture); + } + } + } + + private static Texture getAnimationFrame(ISkinSource skin, TaikoMascotAnimationState state, int frameIndex) + => skin.GetTexture($"pippidon{state.ToString().ToLower()}{frameIndex}"); + } +} diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs deleted file mode 100644 index 080d30c3f2..0000000000 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotTextureAnimation.cs +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. -// See the LICENCE file in the repository root for full licence text. - -using System; -using osu.Framework.Allocation; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Animations; -using osu.Game.Skinning; - -namespace osu.Game.Rulesets.Taiko.UI -{ - public sealed class TaikoMascotTextureAnimation : TextureAnimation - { - private const float clear_animation_speed = 1000 / 10f; - private static readonly int[] clear_animation_sequence = { 0, 1, 2, 3, 4, 5, 6, 5, 6, 5, 4, 3, 2, 1, 0 }; - private int currentFrame; - - public TaikoMascotAnimationState State { get; } - - public TaikoMascotTextureAnimation(TaikoMascotAnimationState state) - : base(true) - { - State = state; - - // We're animating on beat if it's not the clear animation - if (state == TaikoMascotAnimationState.Clear) - DefaultFrameLength = clear_animation_speed; - else - this.Stop(); - - Origin = Anchor.BottomLeft; - Anchor = Anchor.BottomLeft; - } - - [BackgroundDependencyLoader] - private void load(ISkinSource skin) - { - if (State == TaikoMascotAnimationState.Clear) - { - foreach (var textureIndex in clear_animation_sequence) - { - if (!addFrame(skin, textureIndex)) - break; - } - } - else - { - for (int i = 0; true; i++) - { - if (!addFrame(skin, i)) - break; - } - } - } - - private bool addFrame(ISkinSource skin, int textureIndex) - { - var textureName = getStateTextureName(textureIndex); - var texture = skin.GetTexture(textureName); - - if (texture == null) - return false; - - AddFrame(texture); - - return true; - } - - /// - /// Advances the current frame by one. - /// - public void Move() - { - // Check whether there are frames before causing a crash. - if (FrameCount == 0) - return; - - if (currentFrame >= FrameCount) - currentFrame = 0; - - GotoFrame(currentFrame); - - currentFrame += 1; - } - - private string getStateTextureName(int i) => $"pippidon{getStateString(State)}{i}"; - - private string getStateString(TaikoMascotAnimationState state) - { - switch (state) - { - case TaikoMascotAnimationState.Clear: - return "clear"; - - case TaikoMascotAnimationState.Fail: - return "fail"; - - case TaikoMascotAnimationState.Idle: - return "idle"; - - case TaikoMascotAnimationState.Kiai: - return "kiai"; - - default: - throw new ArgumentOutOfRangeException(nameof(state), $"There's no case for animation state {state} available"); - } - } - } -} From 9d6720e7e6b11f327b56c6135c46bd6711f5580b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 29 Apr 2020 21:30:13 +0200 Subject: [PATCH 055/213] Scope up parameter --- osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs index 1e289c1a74..b9af8f0106 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -110,7 +110,7 @@ namespace osu.Game.Rulesets.Taiko.UI } } - private static Texture getAnimationFrame(ISkinSource skin, TaikoMascotAnimationState state, int frameIndex) + private static Texture getAnimationFrame(ISkin skin, TaikoMascotAnimationState state, int frameIndex) => skin.GetTexture($"pippidon{state.ToString().ToLower()}{frameIndex}"); } } From 47b040b7d8888283497858e4be2734bc2a6c5341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 29 Apr 2020 21:42:28 +0200 Subject: [PATCH 056/213] Cover strong hit miss exemption in tests --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 28065c401c..81ea9c0755 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -64,11 +64,14 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); }); - AddStep("new judgement (miss)", () => addJudgement(HitResult.Miss)); - AddUntilStep("wait for fail state", () => assertState(TaikoMascotAnimationState.Fail)); + AddStep("miss result for normal hit", () => addJudgement(HitResult.Miss, new TaikoJudgement())); + AddUntilStep("state is fail", () => assertState(TaikoMascotAnimationState.Fail)); - AddStep("new judgement (great)", () => addJudgement(HitResult.Great)); - AddUntilStep("wait for idle state", () => assertState(TaikoMascotAnimationState.Idle)); + AddStep("great result for normal hit", () => addJudgement(HitResult.Great, new TaikoJudgement())); + AddUntilStep("state is idle", () => assertState(TaikoMascotAnimationState.Idle)); + + AddStep("miss result for strong hit", () => addJudgement(HitResult.Miss, new TaikoStrongJudgement())); + AddAssert("state remains idle", () => assertState(TaikoMascotAnimationState.Idle)); } [Test] @@ -89,10 +92,10 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); }); - AddUntilStep("wait for fail state", () => assertState(TaikoMascotAnimationState.Fail)); + AddUntilStep("state is fail", () => assertState(TaikoMascotAnimationState.Fail)); - AddStep("new judgement (great)", () => addJudgement(HitResult.Great)); - AddUntilStep("wait for kiai state", () => assertState(TaikoMascotAnimationState.Kiai)); + AddStep("great result for normal hit", () => addJudgement(HitResult.Great, new TaikoJudgement())); + AddUntilStep("state is kiai", () => assertState(TaikoMascotAnimationState.Kiai)); } private void setBeatmap(bool kiai = false) @@ -121,14 +124,14 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); } - private void addJudgement(HitResult result) + private void addJudgement(HitResult result, Judgement judgement) { foreach (var playfield in playfields) { var hit = new DrawableTestHit(new Hit(), result); Add(hit); - playfield.OnNewResult(hit, new JudgementResult(hit.HitObject, new TaikoJudgement()) { Type = result }); + playfield.OnNewResult(hit, new JudgementResult(hit.HitObject, judgement) { Type = result }); } } From 0d917ca339fbc6783587913a7190eab9733add91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 29 Apr 2020 21:52:09 +0200 Subject: [PATCH 057/213] Ensure correct behaviour for clear animation --- osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs index b9af8f0106..ee1389147d 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -103,7 +103,8 @@ namespace osu.Game.Rulesets.Taiko.UI var texture = getAnimationFrame(skin, TaikoMascotAnimationState.Clear, frameIndex); if (texture == null) - continue; + // as per https://osu.ppy.sh/help/wiki/Skinning/osu!taiko#pippidon + break; AddFrame(texture); } From b0e97793b6bea128746817734051055dcb484dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 30 Apr 2020 00:14:27 +0200 Subject: [PATCH 058/213] Implement transitions into and from clear state --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 40 ++++++++++++++++--- .../UI/DrawableTaikoMascot.cs | 16 ++++---- .../UI/TaikoMascotAnimation.cs | 10 +++++ 3 files changed, 53 insertions(+), 13 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 81ea9c0755..0018899769 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -6,6 +6,8 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; +using osu.Framework.Bindables; +using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Testing; using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; @@ -50,6 +52,31 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("fail state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Fail))); } + [Test] + public void TestClearStateTransition() + { + AddStep("set beatmap", () => setBeatmap()); + + // the bindables need to be independent for each content cell to prevent interference, + // as if some of the skins don't implement the animation they'll immediately revert to the previous state from the clear state. + var states = new List>(); + + AddStep("create mascot", () => SetContents(() => + { + var state = new Bindable(TaikoMascotAnimationState.Clear); + states.Add(state); + return new DrawableTaikoMascot { State = { BindTarget = state } }; + })); + + AddStep("set clear state", () => states.ForEach(state => state.Value = TaikoMascotAnimationState.Clear)); + AddStep("miss", () => mascots.ForEach(mascot => mascot.OnNewResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss }))); + AddAssert("skins with animations remain in clear state", () => mascots.Any(mascot => mascot.State.Value == TaikoMascotAnimationState.Clear)); + AddUntilStep("state reverts to fail", () => someMascotsIn(TaikoMascotAnimationState.Fail)); + + AddStep("set clear state again", () => states.ForEach(state => state.Value = TaikoMascotAnimationState.Clear)); + AddAssert("skins with animations change to clear", () => someMascotsIn(TaikoMascotAnimationState.Clear)); + } + [Test] public void TestPlayfield() { @@ -65,13 +92,13 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); AddStep("miss result for normal hit", () => addJudgement(HitResult.Miss, new TaikoJudgement())); - AddUntilStep("state is fail", () => assertState(TaikoMascotAnimationState.Fail)); + AddUntilStep("state is fail", () => allMascotsIn(TaikoMascotAnimationState.Fail)); AddStep("great result for normal hit", () => addJudgement(HitResult.Great, new TaikoJudgement())); - AddUntilStep("state is idle", () => assertState(TaikoMascotAnimationState.Idle)); + AddUntilStep("state is idle", () => allMascotsIn(TaikoMascotAnimationState.Idle)); AddStep("miss result for strong hit", () => addJudgement(HitResult.Miss, new TaikoStrongJudgement())); - AddAssert("state remains idle", () => assertState(TaikoMascotAnimationState.Idle)); + AddAssert("state remains idle", () => allMascotsIn(TaikoMascotAnimationState.Idle)); } [Test] @@ -92,10 +119,10 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning }); }); - AddUntilStep("state is fail", () => assertState(TaikoMascotAnimationState.Fail)); + AddUntilStep("state is fail", () => allMascotsIn(TaikoMascotAnimationState.Fail)); AddStep("great result for normal hit", () => addJudgement(HitResult.Great, new TaikoJudgement())); - AddUntilStep("state is kiai", () => assertState(TaikoMascotAnimationState.Kiai)); + AddUntilStep("state is kiai", () => allMascotsIn(TaikoMascotAnimationState.Kiai)); } private void setBeatmap(bool kiai = false) @@ -135,6 +162,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning } } - private bool assertState(TaikoMascotAnimationState state) => mascots.All(d => d.State.Value == state); + private bool allMascotsIn(TaikoMascotAnimationState state) => mascots.All(d => d.State.Value == state); + private bool someMascotsIn(TaikoMascotAnimationState state) => mascots.Any(d => d.State.Value == state); } } diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index bfc1d958c2..f4bc841c15 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -21,7 +21,7 @@ namespace osu.Game.Rulesets.Taiko.UI private readonly Bindable state; private readonly Dictionary animations; - private Drawable currentAnimation; + private TaikoMascotAnimation currentAnimation; private bool lastHitMissed; private bool kiaiMode; @@ -44,8 +44,6 @@ namespace osu.Game.Rulesets.Taiko.UI animations[TaikoMascotAnimationState.Kiai] = new TaikoMascotAnimation(TaikoMascotAnimationState.Kiai), animations[TaikoMascotAnimationState.Fail] = new TaikoMascotAnimation(TaikoMascotAnimationState.Fail), }; - - updateState(); } protected override void LoadComplete() @@ -53,28 +51,32 @@ namespace osu.Game.Rulesets.Taiko.UI base.LoadComplete(); animations.Values.ForEach(animation => animation.Hide()); - State.BindValueChanged(mascotStateChanged, true); + state.BindValueChanged(mascotStateChanged, true); } public void OnNewResult(JudgementResult result) { lastHitMissed = result.Type == HitResult.Miss && result.Judgement.AffectsCombo; - updateState(); } protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) { kiaiMode = effectPoint.KiaiMode; - updateState(); } - private void updateState() + protected override void Update() { + base.Update(); state.Value = getNextState(); } private TaikoMascotAnimationState getNextState() { + // don't change state if current animation is playing + // (used for clear state - others are manually animated on new beats) + if (currentAnimation != null && !currentAnimation.Completed) + return state.Value; + if (lastHitMissed) return TaikoMascotAnimationState.Fail; diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs index ee1389147d..165e00cc73 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -29,6 +29,15 @@ namespace osu.Game.Rulesets.Taiko.UI RelativeSizeAxes = Axes.Both; Origin = Anchor = Anchor.BottomLeft; + AlwaysPresent = true; + } + + public bool Completed => !textureAnimation.IsPlaying || textureAnimation.PlaybackPosition >= textureAnimation.Duration; + + public override void Show() + { + base.Show(); + textureAnimation.Seek(0); } protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) @@ -93,6 +102,7 @@ namespace osu.Game.Rulesets.Taiko.UI public ClearMascotTextureAnimation() { DefaultFrameLength = clear_animation_speed; + Loop = false; } [BackgroundDependencyLoader] From 99677ac17149bff748d96954bae2e8ab0fe6bafe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 30 Apr 2020 21:41:57 +0200 Subject: [PATCH 059/213] Expand test coverage of state transitions --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 123 ++++++++++++------ 1 file changed, 86 insertions(+), 37 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 0018899769..cdd2a38e19 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Humanizer; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -16,6 +17,7 @@ using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Taiko.Judgements; using osu.Game.Rulesets.Taiko.Objects; +using osu.Game.Rulesets.Taiko.Scoring; using osu.Game.Rulesets.Taiko.UI; using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Tests.Visual; @@ -38,9 +40,17 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning TimeRange = { Value = 5000 }, }; + private TaikoScoreProcessor scoreProcessor; + private IEnumerable mascots => this.ChildrenOfType(); private IEnumerable playfields => this.ChildrenOfType(); + [SetUp] + public void SetUp() + { + scoreProcessor = new TaikoScoreProcessor(); + } + [Test] public void TestStateAnimations() { @@ -78,51 +88,63 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning } [Test] - public void TestPlayfield() + public void TestIdleState() { AddStep("set beatmap", () => setBeatmap()); - AddStep("create drawable ruleset", () => - { - SetContents(() => - { - var ruleset = new TaikoRuleset(); - return new DrawableTaikoRuleset(ruleset, Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); - }); - }); + createDrawableRuleset(); - AddStep("miss result for normal hit", () => addJudgement(HitResult.Miss, new TaikoJudgement())); - AddUntilStep("state is fail", () => allMascotsIn(TaikoMascotAnimationState.Fail)); - - AddStep("great result for normal hit", () => addJudgement(HitResult.Great, new TaikoJudgement())); - AddUntilStep("state is idle", () => allMascotsIn(TaikoMascotAnimationState.Idle)); - - AddStep("miss result for strong hit", () => addJudgement(HitResult.Miss, new TaikoStrongJudgement())); - AddAssert("state remains idle", () => allMascotsIn(TaikoMascotAnimationState.Idle)); + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Great }, TaikoMascotAnimationState.Idle); + assertStateAfterResult(new JudgementResult(new StrongHitObject(), new TaikoStrongJudgement()) { Type = HitResult.Miss }, TaikoMascotAnimationState.Idle); } [Test] - public void TestKiai() + public void TestKiaiState() { AddStep("set beatmap", () => setBeatmap(true)); - AddUntilStep("wait for beatmap to be loaded", () => Beatmap.Value.Track.IsLoaded); + createDrawableRuleset(); - AddStep("create drawable ruleset", () => - { - Beatmap.Value.Track.Start(); + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Good }, TaikoMascotAnimationState.Kiai); + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoStrongJudgement()) { Type = HitResult.Miss }, TaikoMascotAnimationState.Kiai); + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss }, TaikoMascotAnimationState.Fail); + } - SetContents(() => - { - var ruleset = new TaikoRuleset(); - return new DrawableTaikoRuleset(ruleset, Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); - }); - }); + [Test] + public void TestMissState() + { + AddStep("set beatmap", () => setBeatmap()); - AddUntilStep("state is fail", () => allMascotsIn(TaikoMascotAnimationState.Fail)); + createDrawableRuleset(); - AddStep("great result for normal hit", () => addJudgement(HitResult.Great, new TaikoJudgement())); - AddUntilStep("state is kiai", () => allMascotsIn(TaikoMascotAnimationState.Kiai)); + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Great }, TaikoMascotAnimationState.Idle); + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss }, TaikoMascotAnimationState.Fail); + assertStateAfterResult(new JudgementResult(new DrumRoll(), new TaikoDrumRollJudgement()) { Type = HitResult.Great }, TaikoMascotAnimationState.Fail); + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Good }, TaikoMascotAnimationState.Idle); + } + + [TestCase(true)] + [TestCase(false)] + public void TestClearStateOnComboMilestone(bool kiai) + { + AddStep("set beatmap", () => setBeatmap(kiai)); + + createDrawableRuleset(); + + AddRepeatStep("reach 49 combo", () => applyNewResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Great }), 49); + + assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Good }, TaikoMascotAnimationState.Clear); + } + + [TestCase(true)] + [TestCase(false)] + public void TestClearStateOnClearedSwell(bool kiai) + { + AddStep("set beatmap", () => setBeatmap(kiai)); + + createDrawableRuleset(); + + assertStateAfterResult(new JudgementResult(new Swell(), new TaikoSwellJudgement()) { Type = HitResult.Great }, TaikoMascotAnimationState.Clear); } private void setBeatmap(bool kiai = false) @@ -141,24 +163,51 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning BaseDifficulty = new BeatmapDifficulty(), Metadata = new BeatmapMetadata { - Artist = @"Unknown", - Title = @"Sample Beatmap", - AuthorString = @"Craftplacer", + Artist = "Unknown", + Title = "Sample Beatmap", + AuthorString = "Craftplacer", }, Ruleset = new TaikoRuleset().RulesetInfo }, ControlPointInfo = controlPointInfo }); + + scoreProcessor.ApplyBeatmap(Beatmap.Value.Beatmap); } - private void addJudgement(HitResult result, Judgement judgement) + private void createDrawableRuleset() + { + AddUntilStep("wait for beatmap to be loaded", () => Beatmap.Value.Track.IsLoaded); + + AddStep("create drawable ruleset", () => + { + Beatmap.Value.Track.Start(); + + SetContents(() => + { + var ruleset = new TaikoRuleset(); + return new DrawableTaikoRuleset(ruleset, Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo)); + }); + }); + } + + private void assertStateAfterResult(JudgementResult judgementResult, TaikoMascotAnimationState expectedState) + { + AddStep($"{judgementResult.Type.ToString().ToLower()} result for {judgementResult.Judgement.GetType().Name.Humanize(LetterCasing.LowerCase)}", + () => applyNewResult(judgementResult)); + + AddAssert($"state is {expectedState.ToString().ToLower()}", () => allMascotsIn(expectedState)); + } + + private void applyNewResult(JudgementResult judgementResult) { foreach (var playfield in playfields) { - var hit = new DrawableTestHit(new Hit(), result); + var hit = new DrawableTestHit(new Hit(), judgementResult.Type); Add(hit); - playfield.OnNewResult(hit, new JudgementResult(hit.HitObject, judgement) { Type = result }); + playfield.OnNewResult(hit, judgementResult); + scoreProcessor.ApplyResult(judgementResult); } } From 22fde8d2a0e7ac158358af6839f91c528853d07e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 30 Apr 2020 21:58:05 +0200 Subject: [PATCH 060/213] Implement partial clear transition logic --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 3 ++- .../UI/DrawableTaikoMascot.cs | 25 ++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index cdd2a38e19..f74de47425 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -201,13 +201,14 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning private void applyNewResult(JudgementResult judgementResult) { + scoreProcessor.ApplyResult(judgementResult); + foreach (var playfield in playfields) { var hit = new DrawableTestHit(new Hit(), judgementResult.Type); Add(hit); playfield.OnNewResult(hit, judgementResult); - scoreProcessor.ApplyResult(judgementResult); } } diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index f4bc841c15..2df0cae2e3 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -11,7 +11,7 @@ using osu.Framework.Graphics.Textures; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics.Containers; using osu.Game.Rulesets.Judgements; -using osu.Game.Rulesets.Scoring; +using osu.Game.Rulesets.Taiko.Judgements; namespace osu.Game.Rulesets.Taiko.UI { @@ -23,7 +23,7 @@ namespace osu.Game.Rulesets.Taiko.UI private readonly Dictionary animations; private TaikoMascotAnimation currentAnimation; - private bool lastHitMissed; + private bool lastObjectHit; private bool kiaiMode; public DrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) @@ -56,7 +56,18 @@ namespace osu.Game.Rulesets.Taiko.UI public void OnNewResult(JudgementResult result) { - lastHitMissed = result.Type == HitResult.Miss && result.Judgement.AffectsCombo; + // TODO: missing support for clear/fail state transition at end of beatmap gameplay + + if (triggerComboClear(result) || triggerSwellClear(result)) + { + state.Value = TaikoMascotAnimationState.Clear; + return; + } + + if (!result.Judgement.AffectsCombo) + return; + + lastObjectHit = result.IsHit; } protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) @@ -77,7 +88,7 @@ namespace osu.Game.Rulesets.Taiko.UI if (currentAnimation != null && !currentAnimation.Completed) return state.Value; - if (lastHitMissed) + if (!lastObjectHit) return TaikoMascotAnimationState.Fail; return kiaiMode ? TaikoMascotAnimationState.Kiai : TaikoMascotAnimationState.Idle; @@ -89,5 +100,11 @@ namespace osu.Game.Rulesets.Taiko.UI currentAnimation = animations[state.NewValue]; currentAnimation.Show(); } + + private bool triggerComboClear(JudgementResult judgementResult) + => (judgementResult.ComboAtJudgement + 1) % 50 == 0 && judgementResult.Judgement.AffectsCombo && judgementResult.IsHit; + + private bool triggerSwellClear(JudgementResult judgementResult) + => judgementResult.Judgement is TaikoSwellJudgement && judgementResult.IsHit; } } From 5cfc05e12afe54aca75b6c92ba91e3d0ad35a277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 30 Apr 2020 22:03:39 +0200 Subject: [PATCH 061/213] Ensure correct initial state --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 8 ++++++++ osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index f74de47425..e23f63e245 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -62,6 +62,14 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("fail state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Fail))); } + [Test] + public void TestInitialState() + { + AddStep("create mascot", () => SetContents(() => new DrawableTaikoMascot())); + + AddAssert("mascot initially idle", () => allMascotsIn(TaikoMascotAnimationState.Idle)); + } + [Test] public void TestClearStateTransition() { diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 2df0cae2e3..1b7d011d8a 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -23,7 +23,7 @@ namespace osu.Game.Rulesets.Taiko.UI private readonly Dictionary animations; private TaikoMascotAnimation currentAnimation; - private bool lastObjectHit; + private bool lastObjectHit = true; private bool kiaiMode; public DrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) From db4c8b2ba59c6a59ab4a19eec2d548f28022242e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 30 Apr 2020 22:16:25 +0200 Subject: [PATCH 062/213] Fix transition out of clear state --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 7 ++++--- osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index e23f63e245..aee057602a 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -144,15 +144,16 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning assertStateAfterResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Good }, TaikoMascotAnimationState.Clear); } - [TestCase(true)] - [TestCase(false)] - public void TestClearStateOnClearedSwell(bool kiai) + [TestCase(true, TaikoMascotAnimationState.Kiai)] + [TestCase(false, TaikoMascotAnimationState.Idle)] + public void TestClearStateOnClearedSwell(bool kiai, TaikoMascotAnimationState expectedStateAfterClear) { AddStep("set beatmap", () => setBeatmap(kiai)); createDrawableRuleset(); assertStateAfterResult(new JudgementResult(new Swell(), new TaikoSwellJudgement()) { Type = HitResult.Great }, TaikoMascotAnimationState.Clear); + AddUntilStep($"state reverts to {expectedStateAfterClear.ToString().ToLower()}", () => allMascotsIn(expectedStateAfterClear)); } private void setBeatmap(bool kiai = false) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 1b7d011d8a..089f5c87a2 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -61,7 +61,8 @@ namespace osu.Game.Rulesets.Taiko.UI if (triggerComboClear(result) || triggerSwellClear(result)) { state.Value = TaikoMascotAnimationState.Clear; - return; + // never play fail immediately after clear. + lastObjectHit = true; } if (!result.Judgement.AffectsCombo) From f5526890cc3ffe85b45861fc3f46c1d24df8db05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 30 Apr 2020 22:51:22 +0200 Subject: [PATCH 063/213] Add comment about animation presence --- osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs index 165e00cc73..452272211d 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -24,11 +24,12 @@ namespace osu.Game.Rulesets.Taiko.UI InternalChild = textureAnimation = createTextureAnimation(state).With(animation => { animation.Origin = animation.Anchor = Anchor.BottomLeft; - RelativeSizeAxes = Axes.Both; }); RelativeSizeAxes = Axes.Both; Origin = Anchor = Anchor.BottomLeft; + + // needs to be always present to prevent the animation clock consuming time spent when not present. AlwaysPresent = true; } From 1e7b10320f8ba2cd7148f2734f216495f38846d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Fri, 1 May 2020 00:19:12 +0200 Subject: [PATCH 064/213] Adjust mascot positioning in playfield layout --- osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs | 2 +- .../UI/TaikoMascotAnimation.cs | 2 ++ osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 15 +++++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 089f5c87a2..eb885872c5 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -28,7 +28,7 @@ namespace osu.Game.Rulesets.Taiko.UI public DrawableTaikoMascot(TaikoMascotAnimationState startingState = TaikoMascotAnimationState.Idle) { - RelativeSizeAxes = Axes.Both; + Origin = Anchor = Anchor.BottomLeft; state = new Bindable(startingState); animations = new Dictionary(); diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs index 452272211d..0bf6bc7d49 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -10,6 +10,7 @@ using osu.Framework.Graphics.Textures; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics.Containers; using osu.Game.Skinning; +using osuTK; namespace osu.Game.Rulesets.Taiko.UI { @@ -24,6 +25,7 @@ namespace osu.Game.Rulesets.Taiko.UI InternalChild = textureAnimation = createTextureAnimation(state).With(animation => { animation.Origin = animation.Anchor = Anchor.BottomLeft; + animation.Scale = new Vector2(0.6f); }); RelativeSizeAxes = Axes.Both; diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 084a11d523..2edc697d66 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -130,18 +130,21 @@ namespace osu.Game.Rulesets.Taiko.UI }, } }, + mascotDrawable = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => Empty()) + { + Origin = Anchor.BottomLeft, + Anchor = Anchor.TopLeft, + RelativePositionAxes = Axes.None, + RelativeSizeAxes = Axes.None, + X = 15, + Y = 45 + }, topLevelHitContainer = new ProxyContainer { Name = "Top level hit objects", RelativeSizeAxes = Axes.Both, }, drumRollHitContainer.CreateProxy(), - mascotDrawable = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => new Container(), confineMode: ConfineMode.ScaleToFit) - { - Origin = Anchor.BottomLeft, - Anchor = Anchor.TopLeft, - RelativePositionAxes = Axes.None - } }; } From 05183c6e6fb1683bd6fa94021c7e69c2572cb8e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Fri, 1 May 2020 00:24:39 +0200 Subject: [PATCH 065/213] Final test touch-ups --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index aee057602a..492f628482 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -9,6 +9,7 @@ using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Extensions.IEnumerableExtensions; +using osu.Framework.Graphics; using osu.Framework.Testing; using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; @@ -65,7 +66,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning [Test] public void TestInitialState() { - AddStep("create mascot", () => SetContents(() => new DrawableTaikoMascot())); + AddStep("create mascot", () => SetContents(() => new DrawableTaikoMascot { RelativeSizeAxes = Axes.Both })); AddAssert("mascot initially idle", () => allMascotsIn(TaikoMascotAnimationState.Idle)); } @@ -83,13 +84,13 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { var state = new Bindable(TaikoMascotAnimationState.Clear); states.Add(state); - return new DrawableTaikoMascot { State = { BindTarget = state } }; + return new DrawableTaikoMascot { State = { BindTarget = state }, RelativeSizeAxes = Axes.Both }; })); AddStep("set clear state", () => states.ForEach(state => state.Value = TaikoMascotAnimationState.Clear)); AddStep("miss", () => mascots.ForEach(mascot => mascot.OnNewResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss }))); - AddAssert("skins with animations remain in clear state", () => mascots.Any(mascot => mascot.State.Value == TaikoMascotAnimationState.Clear)); - AddUntilStep("state reverts to fail", () => someMascotsIn(TaikoMascotAnimationState.Fail)); + AddAssert("skins with animations remain in clear state", () => someMascotsIn(TaikoMascotAnimationState.Clear)); + AddUntilStep("state reverts to fail", () => allMascotsIn(TaikoMascotAnimationState.Fail)); AddStep("set clear state again", () => states.ForEach(state => state.Value = TaikoMascotAnimationState.Clear)); AddAssert("skins with animations change to clear", () => someMascotsIn(TaikoMascotAnimationState.Clear)); From d021e213b216b994c343184d400c5aa7bfa25fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Fri, 1 May 2020 00:29:03 +0200 Subject: [PATCH 066/213] Reword comment --- osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index eb885872c5..9328b607e6 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -61,7 +61,7 @@ namespace osu.Game.Rulesets.Taiko.UI if (triggerComboClear(result) || triggerSwellClear(result)) { state.Value = TaikoMascotAnimationState.Clear; - // never play fail immediately after clear. + // always consider a clear equivalent to a hit to avoid clear -> miss transitions lastObjectHit = true; } From ed83ac188e20c2b9e6e00de7083b90e1974dc9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 6 May 2020 23:25:25 +0200 Subject: [PATCH 067/213] Remove special case for moving catcher sprite --- .../TestSceneHyperDashColouring.cs | 12 +----------- osu.Game.Rulesets.Catch/UI/Catcher.cs | 17 +---------------- 2 files changed, 2 insertions(+), 27 deletions(-) diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs index 589bafe400..1e708cce4b 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDashColouring.cs @@ -128,17 +128,7 @@ namespace osu.Game.Rulesets.Catch.Tests catcherArea.MovableCatcher.SetHyperDashState(2); }); - AddUntilStep("catcher colour is correct", () => - { - var expected = expectedCatcherColour; - - if (expected == Catcher.DEFAULT_HYPER_DASH_COLOUR) - // The expected colour for Catcher.Colour is another colour - // for the default skin, assert with that instead. - expected = Catcher.DEFAULT_CATCHER_HYPER_DASH_COLOUR; - - return catcherArea.MovableCatcher.Colour == expected; - }); + AddUntilStep("catcher colour is correct", () => catcherArea.MovableCatcher.Colour == expectedCatcherColour); AddAssert("catcher trails colours are correct", () => trails.HyperDashTrailsColour == expectedCatcherColour); AddAssert("catcher end-glow colours are correct", () => trails.EndGlowSpritesColour == (expectedEndGlowColour ?? expectedCatcherColour)); diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 2022cffb40..520cfeee70 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -28,15 +28,6 @@ namespace osu.Game.Rulesets.Catch.UI ///
  • public static readonly Color4 DEFAULT_HYPER_DASH_COLOUR = Color4.Red; - /// - /// The default hyper-dash colour used directly for this - /// 's . - /// - /// - /// This colour is only used when no skin overrides . - /// - public static readonly Color4 DEFAULT_CATCHER_HYPER_DASH_COLOUR = Color4.OrangeRed; - /// /// The duration between transitioning to hyper-dash state. /// @@ -288,13 +279,7 @@ namespace osu.Game.Rulesets.Catch.UI { if (hyperDashing) { - // special behaviour for catcher colour if no skin overrides. - var catcherColour = - hyperDashColour == DEFAULT_HYPER_DASH_COLOUR - ? DEFAULT_CATCHER_HYPER_DASH_COLOUR - : hyperDashColour; - - this.FadeColour(catcherColour, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); + this.FadeColour(hyperDashColour, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); this.FadeTo(0.2f, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); } else From 52d1e2b5f889dd193aad2c10b0f3b40f87e24f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 6 May 2020 23:27:01 +0200 Subject: [PATCH 068/213] Improve xmldoc --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 520cfeee70..40c7d6a9b5 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -24,7 +24,8 @@ namespace osu.Game.Rulesets.Catch.UI public class Catcher : SkinReloadableDrawable, IKeyBindingHandler { /// - /// The default colour used for all hyper-dashing components. (catcher drawables and fruit) + /// The default colour used to tint hyper-dash fruit, along with the moving catcher, its trail + /// and end glow/after-image during a hyper-dash. /// public static readonly Color4 DEFAULT_HYPER_DASH_COLOUR = Color4.Red; From 25f73c0b9f30d2c3dc129d02f0bd8a61e738374c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 6 May 2020 23:40:36 +0200 Subject: [PATCH 069/213] Add [NotNull] annotation --- osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs b/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs index afbfac9a51..64fb4b2196 100644 --- a/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs +++ b/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs @@ -2,6 +2,7 @@ // See the LICENCE file in the repository root for full licence text. using System; +using JetBrains.Annotations; using osu.Framework.Graphics; using osu.Framework.Graphics.Animations; using osu.Framework.Graphics.Containers; @@ -73,7 +74,7 @@ namespace osu.Game.Rulesets.Catch.UI } } - public CatcherTrailDisplay(Catcher catcher) + public CatcherTrailDisplay([NotNull] Catcher catcher) { this.catcher = catcher ?? throw new ArgumentNullException(nameof(catcher)); From b44a70ef9ab7240d3a9a285654996889e8e67910 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Thu, 7 May 2020 01:46:37 +0300 Subject: [PATCH 070/213] Let the catcher be responsible for stopping the trails --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 2 +- osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 40c7d6a9b5..558555af96 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -74,7 +74,7 @@ namespace osu.Game.Rulesets.Catch.UI dashing = value; - trails.DisplayTrail |= dashing; + trails.DisplayTrail = value || HyperDashing; } } diff --git a/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs b/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs index 64fb4b2196..bab3cb748b 100644 --- a/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs +++ b/osu.Game.Rulesets.Catch/UI/CatcherTrailDisplay.cs @@ -103,11 +103,8 @@ namespace osu.Game.Rulesets.Catch.UI private void displayTrail() { - if (!catcher.Dashing && !catcher.HyperDashing) - { - DisplayTrail = false; + if (!DisplayTrail) return; - } var sprite = createTrailSprite(catcher.HyperDashing ? hyperDashTrails : dashTrails); From 754afb9c0bbd5d049352c455ec1122de69a9a9fa Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 6 May 2020 18:31:17 +0900 Subject: [PATCH 071/213] Expose ContextFactory to allow for connection flushing --- osu.Game/OsuGameBase.cs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs index d9f9e2de42..d0c06df8ea 100644 --- a/osu.Game/OsuGameBase.cs +++ b/osu.Game/OsuGameBase.cs @@ -121,7 +121,7 @@ namespace osu.Game protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent) => dependencies = new DependencyContainer(base.CreateChildDependencies(parent)); - private DatabaseContextFactory contextFactory; + protected DatabaseContextFactory ContextFactory; protected override UserInputManager CreateUserInputManager() => new OsuUserInputManager(); @@ -130,7 +130,7 @@ namespace osu.Game { Resources.AddStore(new DllResourceStore(OsuResources.ResourceAssembly)); - dependencies.Cache(contextFactory = new DatabaseContextFactory(Storage)); + dependencies.Cache(ContextFactory = new DatabaseContextFactory(Storage)); dependencies.CacheAs(Storage); @@ -161,7 +161,7 @@ namespace osu.Game runMigrations(); - dependencies.Cache(SkinManager = new SkinManager(Storage, contextFactory, Host, Audio, new NamespacedResourceStore(Resources, "Skins/Legacy"))); + dependencies.Cache(SkinManager = new SkinManager(Storage, ContextFactory, Host, Audio, new NamespacedResourceStore(Resources, "Skins/Legacy"))); dependencies.CacheAs(SkinManager); if (API == null) API = new APIAccess(LocalConfig); @@ -170,12 +170,12 @@ namespace osu.Game var defaultBeatmap = new DummyWorkingBeatmap(Audio, Textures); - dependencies.Cache(RulesetStore = new RulesetStore(contextFactory, Storage)); - dependencies.Cache(FileStore = new FileStore(contextFactory, Storage)); + dependencies.Cache(RulesetStore = new RulesetStore(ContextFactory, Storage)); + dependencies.Cache(FileStore = new FileStore(ContextFactory, Storage)); // ordering is important here to ensure foreign keys rules are not broken in ModelStore.Cleanup() - dependencies.Cache(ScoreManager = new ScoreManager(RulesetStore, () => BeatmapManager, Storage, API, contextFactory, Host)); - dependencies.Cache(BeatmapManager = new BeatmapManager(Storage, contextFactory, RulesetStore, API, Audio, Host, defaultBeatmap)); + dependencies.Cache(ScoreManager = new ScoreManager(RulesetStore, () => BeatmapManager, Storage, API, ContextFactory, Host)); + dependencies.Cache(BeatmapManager = new BeatmapManager(Storage, ContextFactory, RulesetStore, API, Audio, Host, defaultBeatmap)); // this should likely be moved to ArchiveModelManager when another case appers where it is necessary // to have inter-dependent model managers. this could be obtained with an IHasForeign interface to @@ -189,8 +189,8 @@ namespace osu.Game BeatmapManager.ItemRemoved += i => ScoreManager.Delete(getBeatmapScores(i), true); BeatmapManager.ItemAdded += i => ScoreManager.Undelete(getBeatmapScores(i), true); - dependencies.Cache(KeyBindingStore = new KeyBindingStore(contextFactory, RulesetStore)); - dependencies.Cache(SettingsStore = new SettingsStore(contextFactory)); + dependencies.Cache(KeyBindingStore = new KeyBindingStore(ContextFactory, RulesetStore)); + dependencies.Cache(SettingsStore = new SettingsStore(ContextFactory)); dependencies.Cache(RulesetConfigCache = new RulesetConfigCache(SettingsStore)); dependencies.Cache(new SessionStatics()); dependencies.Cache(new OsuColour()); @@ -279,7 +279,7 @@ namespace osu.Game { try { - using (var db = contextFactory.GetForWrite(false)) + using (var db = ContextFactory.GetForWrite(false)) db.Context.Migrate(); } catch (Exception e) @@ -288,12 +288,12 @@ namespace osu.Game // if we failed, let's delete the database and start fresh. // todo: we probably want a better (non-destructive) migrations/recovery process at a later point than this. - contextFactory.ResetDatabase(); + ContextFactory.ResetDatabase(); Logger.Log("Database purged successfully.", LoggingTarget.Database); // only run once more, then hard bail. - using (var db = contextFactory.GetForWrite(false)) + using (var db = ContextFactory.GetForWrite(false)) db.Context.Migrate(); } } From 49a03f1c06ca6824fc8e131ddd1e8f845c4ea1f2 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 6 May 2020 18:31:36 +0900 Subject: [PATCH 072/213] Add basic blocking migration, move not copy --- osu.Game/IO/OsuStorage.cs | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index ee42c491d1..f6cac2f4f1 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -1,6 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; +using System.IO; using osu.Framework.Logging; using osu.Framework.Platform; using osu.Game.Configuration; @@ -9,10 +11,15 @@ namespace osu.Game.IO { public class OsuStorage : WrappedStorage { + private readonly GameHost host; + private readonly StorageConfigManager storageConfig; + public OsuStorage(GameHost host) : base(host.Storage, string.Empty) { - var storageConfig = new StorageConfigManager(host.Storage); + this.host = host; + + storageConfig = new StorageConfigManager(host.Storage); var customStoragePath = storageConfig.Get(StorageConfig.FullPath); @@ -22,5 +29,34 @@ namespace osu.Game.IO Logger.Storage = UnderlyingStorage.GetStorageForDirectory("logs"); } } + + public void Migrate(string newLocation) + { + string oldLocation = GetFullPath("."); + + // ensure the new location has no files present, else hard abort + if (Directory.Exists(newLocation)) + { + if (Directory.GetFiles(newLocation).Length > 0) + throw new InvalidOperationException("Migration destination already has files present"); + + Directory.Delete(newLocation, true); + } + + Directory.Move(oldLocation, newLocation); + + Directory.CreateDirectory(newLocation); + // temporary + Directory.CreateDirectory(oldLocation); + + // move back exceptions for now + Directory.Move(Path.Combine(newLocation, "cache"), Path.Combine(oldLocation, "cache")); + File.Move(Path.Combine(newLocation, "framework.ini"), Path.Combine(oldLocation, "framework.ini")); + + ChangeTargetStorage(host.GetStorage(newLocation)); + + storageConfig.Set(StorageConfig.FullPath, newLocation); + storageConfig.Save(); + } } } From 7a2020fd4561e461ef7700a5178d7b05a8c23b6b Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 7 May 2020 19:00:59 +0900 Subject: [PATCH 073/213] User copy operation instead of move --- osu.Game/IO/OsuStorage.cs | 63 ++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index f6cac2f4f1..955aae7b68 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -3,6 +3,7 @@ using System; using System.IO; +using System.Linq; using osu.Framework.Logging; using osu.Framework.Platform; using osu.Game.Configuration; @@ -14,6 +15,14 @@ namespace osu.Game.IO private readonly GameHost host; private readonly StorageConfigManager storageConfig; + internal static readonly string[] IGNORE_DIRECTORIES = { "cache" }; + + internal static readonly string[] IGNORE_FILES = + { + "framework.ini", + "storage.ini" + }; + public OsuStorage(GameHost host) : base(host.Storage, string.Empty) { @@ -43,20 +52,58 @@ namespace osu.Game.IO Directory.Delete(newLocation, true); } - Directory.Move(oldLocation, newLocation); + var source = new DirectoryInfo(oldLocation); + var destination = new DirectoryInfo(newLocation); - Directory.CreateDirectory(newLocation); - // temporary - Directory.CreateDirectory(oldLocation); - - // move back exceptions for now - Directory.Move(Path.Combine(newLocation, "cache"), Path.Combine(oldLocation, "cache")); - File.Move(Path.Combine(newLocation, "framework.ini"), Path.Combine(oldLocation, "framework.ini")); + copyRecursive(source, destination); ChangeTargetStorage(host.GetStorage(newLocation)); storageConfig.Set(StorageConfig.FullPath, newLocation); storageConfig.Save(); + + deleteRecursive(source); + } + + private static void deleteRecursive(DirectoryInfo target, bool topLevelExcludes = true) + { + foreach (System.IO.FileInfo fi in target.GetFiles()) + { + if (IGNORE_FILES.Contains(fi.Name)) + continue; + + fi.Delete(); + } + + foreach (DirectoryInfo dir in target.GetDirectories()) + { + if (IGNORE_DIRECTORIES.Contains(dir.Name)) + continue; + + dir.Delete(true); + } + } + + private static void copyRecursive(DirectoryInfo source, DirectoryInfo destination, bool topLevelExcludes = true) + { + // based off example code https://docs.microsoft.com/en-us/dotnet/api/system.io.directoryinfo + Directory.CreateDirectory(destination.FullName); + + foreach (System.IO.FileInfo fi in source.GetFiles()) + { + if (IGNORE_FILES.Contains(fi.Name)) + continue; + + fi.CopyTo(Path.Combine(destination.FullName, fi.Name), true); + } + + foreach (DirectoryInfo dir in source.GetDirectories()) + { + if (IGNORE_DIRECTORIES.Contains(dir.Name)) + continue; + + copyRecursive(dir, destination.CreateSubdirectory(dir.Name), false); + } } } } From 5e65bda8d8ba49b5213fcf163861bdee4ebddb6c Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 7 May 2020 19:01:19 +0900 Subject: [PATCH 074/213] Add test coverage --- .../NonVisual/CustomDataDirectoryTest.cs | 60 ++++++++++++++++++- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index d741bc5de1..7f08fad5be 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -7,14 +7,23 @@ using System.Threading; using System.Threading.Tasks; using NUnit.Framework; using osu.Framework.Allocation; +using osu.Framework.Configuration; using osu.Framework.Platform; using osu.Game.Configuration; +using osu.Game.IO; namespace osu.Game.Tests.NonVisual { [TestFixture] public class CustomDataDirectoryTest { + [SetUp] + public void SetUp() + { + if (Directory.Exists(customPath)) + Directory.Delete(customPath, true); + } + [Test] public void TestDefaultDirectory() { @@ -36,6 +45,8 @@ namespace osu.Game.Tests.NonVisual } } + private string customPath => Path.Combine(Environment.CurrentDirectory, "custom-path"); + [Test] public void TestCustomDirectory() { @@ -49,7 +60,7 @@ namespace osu.Game.Tests.NonVisual storage.DeleteDirectory(string.Empty); using (var storageConfig = new StorageConfigManager(storage)) - storageConfig.Set(StorageConfig.FullPath, Path.Combine(Environment.CurrentDirectory, "custom-path")); + storageConfig.Set(StorageConfig.FullPath, customPath); try { @@ -58,7 +69,52 @@ namespace osu.Game.Tests.NonVisual // switch to DI'd storage storage = osu.Dependencies.Get(); - Assert.That(storage.GetFullPath("."), Is.EqualTo(Path.Combine(Environment.CurrentDirectory, "custom-path"))); + Assert.That(storage.GetFullPath("."), Is.EqualTo(customPath)); + } + finally + { + host.Exit(); + } + } + } + + [Test] + public void TestMigration() + { + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigration))) + { + try + { + var osu = loadOsu(host); + var storage = osu.Dependencies.Get(); + + // ensure we perform a save + host.Dependencies.Get().Save(); + + // ensure we "use" cache + host.Storage.GetStorageForDirectory("cache"); + + string defaultStorageLocation = Path.Combine(Environment.CurrentDirectory, "headless", nameof(TestMigration)); + + Assert.That(storage.GetFullPath("."), Is.EqualTo(defaultStorageLocation)); + + (storage as OsuStorage)?.Migrate(customPath); + + Assert.That(storage.GetFullPath("."), Is.EqualTo(customPath)); + + foreach (var file in OsuStorage.IGNORE_FILES) + { + Assert.That(host.Storage.Exists(file), Is.True); + Assert.That(storage.Exists(file), Is.False); + } + + foreach (var dir in OsuStorage.IGNORE_DIRECTORIES) + { + Assert.That(host.Storage.ExistsDirectory(dir), Is.True); + Assert.That(storage.ExistsDirectory(dir), Is.False); + } + + Assert.That(new StreamReader(host.Storage.GetStream("storage.ini")).ReadToEnd().Contains($"FullPath = {customPath}")); } finally { From 74cbe9306c6403c4bb7e99303306b1be194666c3 Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Sat, 9 May 2020 16:39:46 +0800 Subject: [PATCH 075/213] Use strongly-typed JsonConerter. --- .../Serialization/Converters/TypedListConverter.cs | 12 ++++-------- .../Serialization/Converters/Vector2Converter.cs | 14 +++++--------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/osu.Game/IO/Serialization/Converters/TypedListConverter.cs b/osu.Game/IO/Serialization/Converters/TypedListConverter.cs index 64f1ebeb1a..25fe335047 100644 --- a/osu.Game/IO/Serialization/Converters/TypedListConverter.cs +++ b/osu.Game/IO/Serialization/Converters/TypedListConverter.cs @@ -14,7 +14,7 @@ namespace osu.Game.IO.Serialization.Converters /// reconstruct the objects with their original types. ///
    /// The type of objects contained in the this attribute is attached to. - public class TypedListConverter : JsonConverter + public class TypedListConverter : JsonConverter> { private readonly bool requiresTypeVersion; @@ -36,9 +36,7 @@ namespace osu.Game.IO.Serialization.Converters this.requiresTypeVersion = requiresTypeVersion; } - public override bool CanConvert(Type objectType) => objectType == typeof(List); - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + public override List ReadJson(JsonReader reader, Type objectType, List existingValue, bool hasExistingValue, JsonSerializer serializer) { var list = new List(); @@ -59,14 +57,12 @@ namespace osu.Game.IO.Serialization.Converters return list; } - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + public override void WriteJson(JsonWriter writer, List value, JsonSerializer serializer) { - var list = (IEnumerable)value; - var lookupTable = new List(); var objects = new List(); - foreach (var item in list) + foreach (var item in value) { var type = item.GetType(); var assemblyName = type.Assembly.GetName(); diff --git a/osu.Game/IO/Serialization/Converters/Vector2Converter.cs b/osu.Game/IO/Serialization/Converters/Vector2Converter.cs index bf5edeef94..46447b607b 100644 --- a/osu.Game/IO/Serialization/Converters/Vector2Converter.cs +++ b/osu.Game/IO/Serialization/Converters/Vector2Converter.cs @@ -11,26 +11,22 @@ namespace osu.Game.IO.Serialization.Converters /// /// A type of that serializes only the X and Y coordinates of a . /// - public class Vector2Converter : JsonConverter + public class Vector2Converter : JsonConverter { - public override bool CanConvert(Type objectType) => objectType == typeof(Vector2); - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + public override Vector2 ReadJson(JsonReader reader, Type objectType, Vector2 existingValue, bool hasExistingValue, JsonSerializer serializer) { var obj = JObject.Load(reader); return new Vector2((float)obj["x"], (float)obj["y"]); } - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + public override void WriteJson(JsonWriter writer, Vector2 value, JsonSerializer serializer) { - var vector = (Vector2)value; - writer.WriteStartObject(); writer.WritePropertyName("x"); - writer.WriteValue(vector.X); + writer.WriteValue(value.X); writer.WritePropertyName("y"); - writer.WriteValue(vector.Y); + writer.WriteValue(value.Y); writer.WriteEndObject(); } From 80a193a61608397d3a0b01e6e115445d2e26783b Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Sat, 9 May 2020 17:34:40 +0800 Subject: [PATCH 076/213] Use IEnumerable for TypedListConverter. --- .../IO/Serialization/Converters/TypedListConverter.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/osu.Game/IO/Serialization/Converters/TypedListConverter.cs b/osu.Game/IO/Serialization/Converters/TypedListConverter.cs index 25fe335047..ec0036dae2 100644 --- a/osu.Game/IO/Serialization/Converters/TypedListConverter.cs +++ b/osu.Game/IO/Serialization/Converters/TypedListConverter.cs @@ -9,12 +9,12 @@ using Newtonsoft.Json.Linq; namespace osu.Game.IO.Serialization.Converters { /// - /// A type of that serializes a alongside + /// A type of that serializes an alongside /// a lookup table for the types contained. The lookup table is used in deserialization to /// reconstruct the objects with their original types. /// - /// The type of objects contained in the this attribute is attached to. - public class TypedListConverter : JsonConverter> + /// The type of objects contained in the this attribute is attached to. + public class TypedListConverter : JsonConverter> { private readonly bool requiresTypeVersion; @@ -36,7 +36,7 @@ namespace osu.Game.IO.Serialization.Converters this.requiresTypeVersion = requiresTypeVersion; } - public override List ReadJson(JsonReader reader, Type objectType, List existingValue, bool hasExistingValue, JsonSerializer serializer) + public override IEnumerable ReadJson(JsonReader reader, Type objectType, IEnumerable existingValue, bool hasExistingValue, JsonSerializer serializer) { var list = new List(); @@ -57,7 +57,7 @@ namespace osu.Game.IO.Serialization.Converters return list; } - public override void WriteJson(JsonWriter writer, List value, JsonSerializer serializer) + public override void WriteJson(JsonWriter writer, IEnumerable value, JsonSerializer serializer) { var lookupTable = new List(); var objects = new List(); From bbebd26efb46b2091a53a966c08faca896b20e15 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 9 May 2020 20:13:31 +0900 Subject: [PATCH 077/213] Use DirectoryInfo in more places --- osu.Game/IO/OsuStorage.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 955aae7b68..e178cb0a02 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -41,20 +41,18 @@ namespace osu.Game.IO public void Migrate(string newLocation) { - string oldLocation = GetFullPath("."); + var source = new DirectoryInfo(GetFullPath(".")); + var destination = new DirectoryInfo(newLocation); // ensure the new location has no files present, else hard abort - if (Directory.Exists(newLocation)) + if (destination.Exists) { - if (Directory.GetFiles(newLocation).Length > 0) + if (destination.GetFiles().Length > 0) throw new InvalidOperationException("Migration destination already has files present"); - Directory.Delete(newLocation, true); + deleteRecursive(destination); } - var source = new DirectoryInfo(oldLocation); - var destination = new DirectoryInfo(newLocation); - copyRecursive(source, destination); ChangeTargetStorage(host.GetStorage(newLocation)); From 5dda94187e54d3980507872f69947330a5bfc62d Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 9 May 2020 20:13:37 +0900 Subject: [PATCH 078/213] Add more edge case testing --- .../NonVisual/CustomDataDirectoryTest.cs | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index 7f08fad5be..8688ecd078 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -123,6 +123,56 @@ namespace osu.Game.Tests.NonVisual } } + [Test] + public void TestMigrationBetweenTwoTargets() + { + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationBetweenTwoTargets))) + { + try + { + var osu = loadOsu(host); + var storage = osu.Dependencies.Get(); + + string customPath2 = $"{customPath}-2"; + + const string database_filename = "client.db"; + + Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath)); + Assert.That(File.Exists(Path.Combine(customPath, database_filename))); + + Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath2)); + Assert.That(File.Exists(Path.Combine(customPath2, database_filename))); + + Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath)); + Assert.That(File.Exists(Path.Combine(customPath, database_filename))); + } + finally + { + host.Exit(); + } + } + } + + [Test] + public void TestMigrationToSameTargetFails() + { + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToSameTargetFails))) + { + try + { + var osu = loadOsu(host); + var storage = osu.Dependencies.Get(); + + Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath)); + Assert.Throws(() => (storage as OsuStorage)?.Migrate(customPath)); + } + finally + { + host.Exit(); + } + } + } + private OsuGameBase loadOsu(GameHost host) { var osu = new OsuGameBase(); From 738c6da594f8a0838e33c7c0d8a73d3f79ef510a Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Sun, 10 May 2020 13:39:20 +0900 Subject: [PATCH 079/213] Implement midi keybindings --- osu.Game/Overlays/KeyBinding/KeyBindingRow.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs b/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs index 58ca2143f9..01d5991d3e 100644 --- a/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs +++ b/osu.Game/Overlays/KeyBinding/KeyBindingRow.cs @@ -250,6 +250,28 @@ namespace osu.Game.Overlays.KeyBinding finalise(); } + protected override bool OnMidiDown(MidiDownEvent e) + { + if (!HasFocus) + return false; + + bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState)); + finalise(); + + return true; + } + + protected override void OnMidiUp(MidiUpEvent e) + { + if (!HasFocus) + { + base.OnMidiUp(e); + return; + } + + finalise(); + } + private void clear() { bindTarget.UpdateKeyCombination(InputKey.None); From 5bab53b04ce53325aab9991f2b811034580ef957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Sun, 10 May 2020 17:05:30 +0200 Subject: [PATCH 080/213] Centralise trail visibility state management --- osu.Game.Rulesets.Catch/UI/Catcher.cs | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/osu.Game.Rulesets.Catch/UI/Catcher.cs b/osu.Game.Rulesets.Catch/UI/Catcher.cs index 558555af96..9cce46d730 100644 --- a/osu.Game.Rulesets.Catch/UI/Catcher.cs +++ b/osu.Game.Rulesets.Catch/UI/Catcher.cs @@ -74,7 +74,7 @@ namespace osu.Game.Rulesets.Catch.UI dashing = value; - trails.DisplayTrail = value || HyperDashing; + updateTrailVisibility(); } } @@ -255,10 +255,7 @@ namespace osu.Game.Rulesets.Catch.UI hyperDashDirection = 0; if (wasHyperDashing) - { - updateCatcherColour(false); - trails.DisplayTrail &= Dashing; - } + runHyperDashStateTransition(false); } else { @@ -268,16 +265,18 @@ namespace osu.Game.Rulesets.Catch.UI if (!wasHyperDashing) { - updateCatcherColour(true); - - trails.DisplayTrail = true; trails.DisplayEndGlow(); + runHyperDashStateTransition(true); } } } - private void updateCatcherColour(bool hyperDashing) + private void runHyperDashStateTransition(bool hyperDashing) { + trails.HyperDashTrailsColour = hyperDashColour; + trails.EndGlowSpritesColour = hyperDashEndGlowColour; + updateTrailVisibility(); + if (hyperDashing) { this.FadeColour(hyperDashColour, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); @@ -288,11 +287,10 @@ namespace osu.Game.Rulesets.Catch.UI this.FadeColour(Color4.White, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); this.FadeTo(1f, HYPER_DASH_TRANSITION_DURATION, Easing.OutQuint); } - - trails.HyperDashTrailsColour = hyperDashColour; - trails.EndGlowSpritesColour = hyperDashEndGlowColour; } + private void updateTrailVisibility() => trails.DisplayTrail = Dashing || HyperDashing; + public bool OnPressed(CatchAction action) { switch (action) @@ -393,7 +391,7 @@ namespace osu.Game.Rulesets.Catch.UI skin.GetConfig(CatchSkinColour.HyperDashAfterImage)?.Value ?? hyperDashColour; - updateCatcherColour(HyperDashing); + runHyperDashStateTransition(HyperDashing); } protected override void Update() From b4d790c076904a1bd24bd086fae7d159ccd06614 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 12:53:54 +0900 Subject: [PATCH 081/213] Fix taiko sample mapping for strong hits --- .../Beatmaps/TaikoBeatmapConverter.cs | 30 +++++++++++++++++-- .../Objects/Drawables/DrawableHit.cs | 8 +++++ .../Drawables/DrawableTaikoHitObject.cs | 4 +-- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs b/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs index caf645d5a2..822931396a 100644 --- a/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs +++ b/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs @@ -167,13 +167,39 @@ namespace osu.Game.Rulesets.Taiko.Beatmaps default: { - bool isRim = samples.Any(s => s.Name == HitSampleInfo.HIT_CLAP || s.Name == HitSampleInfo.HIT_WHISTLE); + bool isRimDefinition(HitSampleInfo s) => s.Name == HitSampleInfo.HIT_CLAP || s.Name == HitSampleInfo.HIT_WHISTLE; + + bool isRim = samples.Any(isRimDefinition); + + if (isRim) + { + // consume then remove the rim definition sample types. + var updatedSamples = samples.Where(s => !isRimDefinition(s)).ToList(); + + // strong + rim always maps to whistle. + if (strong) + { + for (var i = 0; i < updatedSamples.Count; i++) + { + var s = samples[i]; + + if (s.Name != HitSampleInfo.HIT_FINISH) + continue; + + var sClone = s.Clone(); + sClone.Name = HitSampleInfo.HIT_WHISTLE; + updatedSamples[i] = sClone; + } + } + + samples = updatedSamples; + } yield return new Hit { StartTime = obj.StartTime, Type = isRim ? HitType.Rim : HitType.Centre, - Samples = obj.Samples, + Samples = samples, IsStrong = strong }; diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs index d2671eadda..d4dc3316e7 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs @@ -2,9 +2,11 @@ // See the LICENCE file in the repository root for full licence text. using System; +using System.Collections.Generic; using System.Diagnostics; using System.Linq; using osu.Framework.Graphics; +using osu.Game.Audio; using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Taiko.Objects.Drawables.Pieces; @@ -47,6 +49,12 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables ? new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.CentreHit), _ => new CentreHitCirclePiece(), confineMode: ConfineMode.ScaleToFit) : new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.RimHit), _ => new RimHitCirclePiece(), confineMode: ConfineMode.ScaleToFit); + protected override IEnumerable GetSamples() + { + // normal and claps are always handled by the drum (see DrumSampleMapping). + return HitObject.Samples.Where(s => s.Name != HitSampleInfo.HIT_NORMAL && s.Name != HitSampleInfo.HIT_CLAP); + } + protected override void CheckForResult(bool userTriggered, double timeOffset) { Debug.Assert(HitObject.HitWindows != null); diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs index 1be04f1760..90daf3950c 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs @@ -165,8 +165,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables return base.CreateNestedHitObject(hitObject); } - // Normal and clap samples are handled by the drum - protected override IEnumerable GetSamples() => HitObject.Samples.Where(s => s.Name != HitSampleInfo.HIT_NORMAL && s.Name != HitSampleInfo.HIT_CLAP); + // Most osu!taiko hitsounds are managed by the drum (see DrumSampleMapping). + protected override IEnumerable GetSamples() => Enumerable.Empty(); protected abstract SkinnableDrawable CreateMainPiece(); From f1959338446a0c98345330e61d6beb8ca8deed6c Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Mon, 11 May 2020 13:03:59 +0900 Subject: [PATCH 082/213] Fix hardrock potentially taking a long time to load --- osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs b/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs index cf6677a55d..e0577dd464 100644 --- a/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs +++ b/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs @@ -28,8 +28,11 @@ namespace osu.Game.Rulesets.Osu.Mods slider.NestedHitObjects.OfType().ForEach(h => h.Position = new Vector2(h.Position.X, OsuPlayfield.BASE_SIZE.Y - h.Position.Y)); slider.NestedHitObjects.OfType().ForEach(h => h.Position = new Vector2(h.Position.X, OsuPlayfield.BASE_SIZE.Y - h.Position.Y)); - foreach (var point in slider.Path.ControlPoints) + var controlPoints = slider.Path.ControlPoints.Select(p => new PathControlPoint(p.Position.Value, p.Type.Value)).ToArray(); + foreach (var point in controlPoints) point.Position.Value = new Vector2(point.Position.Value.X, -point.Position.Value.Y); + + slider.Path = new SliderPath(controlPoints, slider.Path.ExpectedDistance.Value); } } } From 43342c57b885f3baabf0fc73212d1adf679677da Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Mon, 11 May 2020 07:13:06 +0200 Subject: [PATCH 083/213] Fix switch case ... caused by a poor merge --- osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs index f0d0ce05b5..1096b8db00 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs @@ -91,6 +91,8 @@ namespace osu.Game.Rulesets.Taiko.Skinning if (GetTexture("taiko-slider") != null) return new LegacyTaikoScroller(); + return null; + case TaikoSkinComponents.TaikoDon: if (GetTexture("pippidonclear0") != null) return new DrawableTaikoMascot(); From 77041bdbb571a738da0c22f10948059642502bb2 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 16:19:47 +0900 Subject: [PATCH 084/213] Move implementation to DrawableHit to avoid "breaking" legacy encoding --- .../Beatmaps/TaikoBeatmapConverter.cs | 24 ----------------- .../Objects/Drawables/DrawableHit.cs | 27 ++++++++++++++++++- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs b/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs index 822931396a..d324441285 100644 --- a/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs +++ b/osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs @@ -171,30 +171,6 @@ namespace osu.Game.Rulesets.Taiko.Beatmaps bool isRim = samples.Any(isRimDefinition); - if (isRim) - { - // consume then remove the rim definition sample types. - var updatedSamples = samples.Where(s => !isRimDefinition(s)).ToList(); - - // strong + rim always maps to whistle. - if (strong) - { - for (var i = 0; i < updatedSamples.Count; i++) - { - var s = samples[i]; - - if (s.Name != HitSampleInfo.HIT_FINISH) - continue; - - var sClone = s.Clone(); - sClone.Name = HitSampleInfo.HIT_WHISTLE; - updatedSamples[i] = sClone; - } - } - - samples = updatedSamples; - } - yield return new Hit { StartTime = obj.StartTime, diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs index d4dc3316e7..d332f90cd4 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs @@ -52,7 +52,32 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables protected override IEnumerable GetSamples() { // normal and claps are always handled by the drum (see DrumSampleMapping). - return HitObject.Samples.Where(s => s.Name != HitSampleInfo.HIT_NORMAL && s.Name != HitSampleInfo.HIT_CLAP); + var samples = HitObject.Samples.Where(s => s.Name != HitSampleInfo.HIT_NORMAL && s.Name != HitSampleInfo.HIT_CLAP); + + if (HitObject.Type == HitType.Rim && HitObject.IsStrong) + { + // strong + rim always maps to whistle. + // TODO: this should really be in the legacy decoder, but can't be because legacy encoding parity would be broken. + // when we add a taiko editor, this is probably not going to play nice. + + var corrected = samples.ToList(); + + for (var i = 0; i < corrected.Count; i++) + { + var s = corrected[i]; + + if (s.Name != HitSampleInfo.HIT_FINISH) + continue; + + var sClone = s.Clone(); + sClone.Name = HitSampleInfo.HIT_WHISTLE; + corrected[i] = sClone; + } + + return corrected; + } + + return samples; } protected override void CheckForResult(bool userTriggered, double timeOffset) From 93440874db8d92e300d0e62508e5cf44e343f4bb Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 16:30:54 +0900 Subject: [PATCH 085/213] Refactor beatmap encoder test to be a bit easier to understand --- .../Formats/LegacyBeatmapEncoderTest.cs | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs index bcc873b0b7..64efe08929 100644 --- a/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs +++ b/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs @@ -28,14 +28,15 @@ namespace osu.Game.Tests.Beatmaps.Formats private static IEnumerable allBeatmaps => TestResources.GetStore().GetAvailableResources().Where(res => res.EndsWith(".osu")); [TestCaseSource(nameof(allBeatmaps))] - public void TestBeatmap(string name) + public void TestEncodeDecodeStability(string name) { - var decoded = decode(name, out var encoded); + var decoded = decodeFromLegacy(TestResources.GetStore().GetStream(name)); + var decodedAfterEncode = decodeFromLegacy(encodeToLegacy(decoded)); sort(decoded); - sort(encoded); + sort(decodedAfterEncode); - Assert.That(encoded.Serialize(), Is.EqualTo(decoded.Serialize())); + Assert.That(decodedAfterEncode.Serialize(), Is.EqualTo(decoded.Serialize())); } private void sort(IBeatmap beatmap) @@ -48,27 +49,22 @@ namespace osu.Game.Tests.Beatmaps.Formats } } - private IBeatmap decode(string filename, out IBeatmap encoded) + private IBeatmap decodeFromLegacy(Stream stream) { - using (var stream = TestResources.GetStore().GetStream(filename)) - using (var sr = new LineBufferedReader(stream)) - { - var legacyDecoded = convert(new LegacyBeatmapDecoder { ApplyOffsets = false }.Decode(sr)); + using (var reader = new LineBufferedReader(stream)) + return convert(new LegacyBeatmapDecoder { ApplyOffsets = false }.Decode(reader)); + } - using (var ms = new MemoryStream()) - using (var sw = new StreamWriter(ms)) - using (var sr2 = new LineBufferedReader(ms, true)) - { - new LegacyBeatmapEncoder(legacyDecoded).Encode(sw); + private Stream encodeToLegacy(IBeatmap beatmap) + { + var stream = new MemoryStream(); - sw.Flush(); - ms.Position = 0; + using (var writer = new StreamWriter(stream, leaveOpen: true)) + new LegacyBeatmapEncoder(beatmap).Encode(writer); - encoded = convert(new LegacyBeatmapDecoder { ApplyOffsets = false }.Decode(sr2)); + stream.Position = 0; - return legacyDecoded; - } - } + return stream; } private IBeatmap convert(IBeatmap beatmap) From 7f7d5e6617a127de2729e01b53b7c7b34608dfc1 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 16:37:08 +0900 Subject: [PATCH 086/213] Fix apparently required argument --- osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs index 64efe08929..b1782f7f08 100644 --- a/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs +++ b/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs @@ -6,6 +6,7 @@ using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Text; using NUnit.Framework; using osu.Framework.Audio.Track; using osu.Framework.Graphics.Textures; @@ -59,7 +60,7 @@ namespace osu.Game.Tests.Beatmaps.Formats { var stream = new MemoryStream(); - using (var writer = new StreamWriter(stream, leaveOpen: true)) + using (var writer = new StreamWriter(stream, Encoding.UTF8, leaveOpen: true)) new LegacyBeatmapEncoder(beatmap).Encode(writer); stream.Position = 0; From b9e5009dd5066fb3976725592b04c63812a622c1 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 17:09:34 +0900 Subject: [PATCH 087/213] Update framework --- osu.Android.props | 2 +- osu.Game/osu.Game.csproj | 2 +- osu.iOS.props | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/osu.Android.props b/osu.Android.props index a406cdf08a..69f897128c 100644 --- a/osu.Android.props +++ b/osu.Android.props @@ -52,6 +52,6 @@ - + diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index 5ccfaaac9e..c6dba8da13 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -24,7 +24,7 @@ - + diff --git a/osu.iOS.props b/osu.iOS.props index dc83d937f7..f78fd2e4ff 100644 --- a/osu.iOS.props +++ b/osu.iOS.props @@ -70,7 +70,7 @@ - + @@ -80,7 +80,7 @@ - + From ca6e6f7496f5468df67644e47c6b1c01bd0b82c6 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Mon, 11 May 2020 17:26:11 +0900 Subject: [PATCH 088/213] Add required parameter for android build --- osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs index b1782f7f08..30331e98d2 100644 --- a/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs +++ b/osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapEncoderTest.cs @@ -60,7 +60,7 @@ namespace osu.Game.Tests.Beatmaps.Formats { var stream = new MemoryStream(); - using (var writer = new StreamWriter(stream, Encoding.UTF8, leaveOpen: true)) + using (var writer = new StreamWriter(stream, Encoding.UTF8, 1024, true)) new LegacyBeatmapEncoder(beatmap).Encode(writer); stream.Position = 0; From 6c350db0973c74f0294cc975c2c2b3aa26bf17a1 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 21:37:07 +0900 Subject: [PATCH 089/213] Add connection flushing support --- .../NonVisual/CustomDataDirectoryTest.cs | 14 ++++++-------- osu.Game/Database/DatabaseContextFactory.cs | 8 ++++++++ osu.Game/OsuGameBase.cs | 8 ++++++++ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index 4bce5056ce..ed83ff358c 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -137,7 +137,7 @@ namespace osu.Game.Tests.NonVisual Assert.That(storage.GetFullPath("."), Is.EqualTo(defaultStorageLocation)); - (storage as OsuStorage)?.Migrate(customPath); + osu.Migrate(customPath); Assert.That(storage.GetFullPath("."), Is.EqualTo(customPath)); @@ -170,19 +170,18 @@ namespace osu.Game.Tests.NonVisual try { var osu = loadOsu(host); - var storage = osu.Dependencies.Get(); string customPath2 = $"{customPath}-2"; const string database_filename = "client.db"; - Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath)); + Assert.DoesNotThrow(() => osu.Migrate(customPath)); Assert.That(File.Exists(Path.Combine(customPath, database_filename))); - Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath2)); + Assert.DoesNotThrow(() => osu.Migrate(customPath2)); Assert.That(File.Exists(Path.Combine(customPath2, database_filename))); - Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath)); + Assert.DoesNotThrow(() => osu.Migrate(customPath)); Assert.That(File.Exists(Path.Combine(customPath, database_filename))); } finally @@ -200,10 +199,9 @@ namespace osu.Game.Tests.NonVisual try { var osu = loadOsu(host); - var storage = osu.Dependencies.Get(); - Assert.DoesNotThrow(() => (storage as OsuStorage)?.Migrate(customPath)); - Assert.Throws(() => (storage as OsuStorage)?.Migrate(customPath)); + Assert.DoesNotThrow(() => osu.Migrate(customPath)); + Assert.Throws(() => osu.Migrate(customPath)); } finally { diff --git a/osu.Game/Database/DatabaseContextFactory.cs b/osu.Game/Database/DatabaseContextFactory.cs index 1ed5fb3268..1cceb59b11 100644 --- a/osu.Game/Database/DatabaseContextFactory.cs +++ b/osu.Game/Database/DatabaseContextFactory.cs @@ -160,5 +160,13 @@ namespace osu.Game.Database } } } + + public void FlushConnections() + { + foreach (var context in threadContexts.Values) + context.Dispose(); + + recycleThreadContexts(); + } } } diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs index 8fbde67afe..6282f5cb8b 100644 --- a/osu.Game/OsuGameBase.cs +++ b/osu.Game/OsuGameBase.cs @@ -328,6 +328,8 @@ namespace osu.Game { base.Dispose(isDisposing); RulesetStore?.Dispose(); + + ContextFactory.FlushConnections(); } private class OsuUserInputManager : UserInputManager @@ -355,5 +357,11 @@ namespace osu.Game public override bool ChangeFocusOnClick => false; } } + + public void Migrate(string path) + { + ContextFactory.FlushConnections(); + (Storage as OsuStorage)?.Migrate(path); + } } } From a11be07bb122b3e1c186cfc418d31a48a1f8869d Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 21:38:27 +0900 Subject: [PATCH 090/213] Move log storage location after migration complete --- osu.Game/IO/OsuStorage.cs | 9 ++++++--- osu.Game/IO/WrappedStorage.cs | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index e178cb0a02..7e1c676324 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -33,10 +33,13 @@ namespace osu.Game.IO var customStoragePath = storageConfig.Get(StorageConfig.FullPath); if (!string.IsNullOrEmpty(customStoragePath)) - { ChangeTargetStorage(host.GetStorage(customStoragePath)); - Logger.Storage = UnderlyingStorage.GetStorageForDirectory("logs"); - } + } + + protected override void ChangeTargetStorage(Storage newStorage) + { + base.ChangeTargetStorage(newStorage); + Logger.Storage = UnderlyingStorage.GetStorageForDirectory("logs"); } public void Migrate(string newLocation) diff --git a/osu.Game/IO/WrappedStorage.cs b/osu.Game/IO/WrappedStorage.cs index cc59e2cc28..646faba9eb 100644 --- a/osu.Game/IO/WrappedStorage.cs +++ b/osu.Game/IO/WrappedStorage.cs @@ -27,7 +27,7 @@ namespace osu.Game.IO protected virtual string MutatePath(string path) => !string.IsNullOrEmpty(subPath) ? Path.Combine(subPath, path) : path; - protected void ChangeTargetStorage(Storage newStorage) + protected virtual void ChangeTargetStorage(Storage newStorage) { UnderlyingStorage = newStorage; } From 984f27c107ed817ee677a4642e995c594b8805db Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 11 May 2020 21:38:41 +0900 Subject: [PATCH 091/213] Add simple retry logic on file copy failure (may be in use) --- osu.Game/IO/OsuStorage.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 7e1c676324..7c0b90e208 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -4,6 +4,7 @@ using System; using System.IO; using System.Linq; +using System.Threading; using osu.Framework.Logging; using osu.Framework.Platform; using osu.Game.Configuration; @@ -95,7 +96,20 @@ namespace osu.Game.IO if (IGNORE_FILES.Contains(fi.Name)) continue; - fi.CopyTo(Path.Combine(destination.FullName, fi.Name), true); + int tries = 5; + + while (tries-- > 0) + { + try + { + fi.CopyTo(Path.Combine(destination.FullName, fi.Name), true); + break; + } + catch (Exception) + { + Thread.Sleep(50); + } + } } foreach (DirectoryInfo dir in source.GetDirectories()) From 35e7cee458f66391d6bb7e705a34fdfeb2bb65a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Tue, 12 May 2020 03:18:47 +0900 Subject: [PATCH 092/213] Squash commits from private fork Temporary comments left to-remove later --- .../Online/API/Requests/ResponseWithCursor.cs | 9 ++ .../API/Requests/SearchBeatmapSetsRequest.cs | 27 +++++- .../API/Requests/SearchBeatmapSetsResponse.cs | 2 +- .../BeatmapListingFilterControl.cs | 57 +++++++---- .../BeatmapListing/BeatmapListingPager.cs | 92 ++++++++++++++++++ osu.Game/Overlays/BeatmapListingOverlay.cs | 94 ++++++++++++++----- 6 files changed, 236 insertions(+), 45 deletions(-) create mode 100644 osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs diff --git a/osu.Game/Online/API/Requests/ResponseWithCursor.cs b/osu.Game/Online/API/Requests/ResponseWithCursor.cs index e38e73dd01..51e88ca52b 100644 --- a/osu.Game/Online/API/Requests/ResponseWithCursor.cs +++ b/osu.Game/Online/API/Requests/ResponseWithCursor.cs @@ -13,4 +13,13 @@ namespace osu.Game.Online.API.Requests [JsonProperty("cursor")] public dynamic CursorJson; } + + public abstract class ResponseWithCursor : ResponseWithCursor where T : class + { + /// + /// Cursor deserialized into T class type (cannot implicitly convert type to object using raw Cursor) + /// + [JsonProperty("cursor")] + public T Cursor; + } } diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs index 047496b473..fb2cc66dd8 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs @@ -5,11 +5,21 @@ using osu.Framework.IO.Network; using osu.Game.Overlays; using osu.Game.Overlays.BeatmapListing; using osu.Game.Rulesets; +using Newtonsoft.Json; namespace osu.Game.Online.API.Requests { public class SearchBeatmapSetsRequest : APIRequest { + public class Cursor + { + [JsonProperty("approved_date")] + public string ApprovedDate; + + [JsonProperty("_id")] + public string Id; + } + public SearchCategory SearchCategory { get; set; } public SortCriteria SortCriteria { get; set; } @@ -22,17 +32,20 @@ namespace osu.Game.Online.API.Requests private readonly string query; private readonly RulesetInfo ruleset; + private readonly Cursor cursor; private string directionString => SortDirection == SortDirection.Descending ? @"desc" : @"asc"; - public SearchBeatmapSetsRequest(string query, RulesetInfo ruleset) + public SearchBeatmapSetsRequest(string query, RulesetInfo ruleset, Cursor cursor = null, + SearchCategory searchCategory = SearchCategory.Any, SortCriteria sortCriteria = SortCriteria.Ranked, SortDirection sortDirection = SortDirection.Descending) { this.query = string.IsNullOrEmpty(query) ? string.Empty : System.Uri.EscapeDataString(query); this.ruleset = ruleset; + this.cursor = cursor; - SearchCategory = SearchCategory.Any; - SortCriteria = SortCriteria.Ranked; - SortDirection = SortDirection.Descending; + SearchCategory = searchCategory; + SortCriteria = sortCriteria; + SortDirection = sortDirection; Genre = SearchGenre.Any; Language = SearchLanguage.Any; } @@ -55,6 +68,12 @@ namespace osu.Game.Online.API.Requests req.AddParameter("sort", $"{SortCriteria.ToString().ToLowerInvariant()}_{directionString}"); + if (cursor != null) + { + req.AddParameter("cursor[_id]", cursor.Id); + req.AddParameter("cursor[approved_date]", cursor.ApprovedDate); + } + return req; } diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs index 3c4fb11ed1..2adf7004e8 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs @@ -7,7 +7,7 @@ using osu.Game.Online.API.Requests.Responses; namespace osu.Game.Online.API.Requests { - public class SearchBeatmapSetsResponse : ResponseWithCursor + public class SearchBeatmapSetsResponse : ResponseWithCursor { [JsonProperty("beatmapsets")] public IEnumerable BeatmapSets; diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs index 4dd60c7113..c3e8505ddc 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Linq; using osu.Framework.Allocation; using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Graphics; @@ -13,7 +12,6 @@ using osu.Framework.Graphics.Shapes; using osu.Framework.Threading; using osu.Game.Beatmaps; using osu.Game.Online.API; -using osu.Game.Online.API.Requests; using osu.Game.Rulesets; using osuTK; using osuTK.Graphics; @@ -24,6 +22,8 @@ namespace osu.Game.Overlays.BeatmapListing { public Action> SearchFinished; public Action SearchStarted; + /// List of currently displayed beatmap entries + private List currentBeatmaps; [Resolved] private IAPIProvider api { get; set; } @@ -35,7 +35,7 @@ namespace osu.Game.Overlays.BeatmapListing private readonly BeatmapListingSortTabControl sortControl; private readonly Box sortControlBackground; - private SearchBeatmapSetsRequest getSetsRequest; + private BeatmapListingPager beatmapListingPager; public BeatmapListingFilterControl() { @@ -115,12 +115,13 @@ namespace osu.Game.Overlays.BeatmapListing } private ScheduledDelegate queryChangedDebounce; + private ScheduledDelegate queryPagingDebounce; private void queueUpdateSearch(bool queryTextChanged = false) { SearchStarted?.Invoke(); - getSetsRequest?.Cancel(); + beatmapListingPager?.Reset(); queryChangedDebounce?.Cancel(); queryChangedDebounce = Scheduler.AddDelayed(updateSearch, queryTextChanged ? 500 : 100); @@ -128,37 +129,55 @@ namespace osu.Game.Overlays.BeatmapListing private void updateSearch() { - getSetsRequest = new SearchBeatmapSetsRequest(searchControl.Query.Value, searchControl.Ruleset.Value) - { - SearchCategory = searchControl.Category.Value, - SortCriteria = sortControl.Current.Value, - SortDirection = sortControl.SortDirection.Value, - Genre = searchControl.Genre.Value, - Language = searchControl.Language.Value - }; + beatmapListingPager = new BeatmapListingPager( + api, + rulesets, + searchControl.Query.Value, + searchControl.Ruleset.Value, + searchControl.Category.Value, + sortControl.Current.Value, + sortControl.SortDirection.Value + ); - getSetsRequest.Success += response => Schedule(() => onSearchFinished(response)); + queryPagingDebounce?.Cancel(); + queryPagingDebounce = null; + beatmapListingPager.PageFetched += onSearchFinished; - api.Queue(getSetsRequest); + AddPageToResult(); } - private void onSearchFinished(SearchBeatmapSetsResponse response) + private void onSearchFinished(List beatmaps) { - var beatmaps = response.BeatmapSets.Select(r => r.ToBeatmapSet(rulesets)).ToList(); - - searchControl.BeatmapSet = response.Total == 0 ? null : beatmaps.First(); + queryPagingDebounce = Scheduler.AddDelayed(() => queryPagingDebounce = null, 1000); + if (currentBeatmaps == null || !beatmapListingPager.IsPastFirstPage) + currentBeatmaps = beatmaps; + else + currentBeatmaps.AddRange(beatmaps); + SearchFinished?.Invoke(beatmaps); } protected override void Dispose(bool isDisposing) { - getSetsRequest?.Cancel(); + beatmapListingPager?.Reset(); queryChangedDebounce?.Cancel(); + queryPagingDebounce?.Cancel(); base.Dispose(isDisposing); } public void TakeFocus() => searchControl.TakeFocus(); + + /// Request next 50 matches if available + public void AddPageToResult() + { + if (beatmapListingPager == null || !beatmapListingPager.CanFetchNextPage) + return; + if (queryPagingDebounce != null) + return; + + beatmapListingPager.FetchNextPage(); + } } } diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs new file mode 100644 index 0000000000..66faf8df7a --- /dev/null +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs @@ -0,0 +1,92 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.Collections.Generic; +using System.Linq; +using osu.Game.Beatmaps; +using osu.Game.Online.API; +using osu.Game.Online.API.Requests; +using osu.Game.Rulesets; + +namespace osu.Game.Overlays.BeatmapListing +{ + public class BeatmapListingPager + { + private readonly IAPIProvider api; + private readonly RulesetStore rulesets; + private readonly string query; + private readonly RulesetInfo ruleset; + private readonly SearchCategory searchCategory; + private readonly SortCriteria sortCriteria; + private readonly SortDirection sortDirection; + + public event PageFetchHandler PageFetched; + private SearchBeatmapSetsRequest getSetsRequest; + private SearchBeatmapSetsResponse lastResponse; + + /// Reports end of results + private bool isLastPageFetched = false; + /// Job in process lock flag + private bool isFetching => getSetsRequest != null; + /// Whether beatmaps should be appended or replaced + public bool IsPastFirstPage { get; private set; } = false; + /// call FetchNextPage() safe-check + public bool CanFetchNextPage => !isLastPageFetched && !isFetching; + + public BeatmapListingPager(IAPIProvider api, RulesetStore rulesets, string query, RulesetInfo ruleset, SearchCategory searchCategory = SearchCategory.Any, SortCriteria sortCriteria = SortCriteria.Ranked, SortDirection sortDirection = SortDirection.Descending) + { + this.api = api; + this.rulesets = rulesets; + this.query = query; + this.ruleset = ruleset; + this.searchCategory = searchCategory; + this.sortCriteria = sortCriteria; + this.sortDirection = sortDirection; + } + + public void FetchNextPage() + { + if (isFetching) + return; + + if (lastResponse != null) + IsPastFirstPage = true; + + getSetsRequest = new SearchBeatmapSetsRequest( + query, + ruleset, + lastResponse?.Cursor, + searchCategory, + sortCriteria, + sortDirection); + + getSetsRequest.Success += response => + { + var sets = response.BeatmapSets.Select(responseJson => responseJson.ToBeatmapSet(rulesets)).ToList(); + + if (sets.Count == 0) + isLastPageFetched = true; + + lastResponse = response; + getSetsRequest = null; + + PageFetched?.Invoke(sets); + }; + + api.Queue(getSetsRequest); + } + + public void Reset() + { + isLastPageFetched = false; + IsPastFirstPage = false; + + lastResponse = null; + + getSetsRequest?.Cancel(); + getSetsRequest = null; + } + + public delegate void PageFetchHandler(List sets); + } +} diff --git a/osu.Game/Overlays/BeatmapListingOverlay.cs b/osu.Game/Overlays/BeatmapListingOverlay.cs index f680f7c67b..c495c8d21b 100644 --- a/osu.Game/Overlays/BeatmapListingOverlay.cs +++ b/osu.Game/Overlays/BeatmapListingOverlay.cs @@ -30,13 +30,21 @@ namespace osu.Game.Overlays private Drawable currentContent; private LoadingLayer loadingLayer; private Container panelTarget; + private FillFlowContainer foundContent; + private NotFoundDrawable notFoundContent; + + private OverlayScrollContainer resultScrollContainer; + /// Scroll distance threshold from results tail, higher means sooner + private const int pagination_scroll_distance = 500; + /// This is paging event flag + private bool shouldAddNextPage => resultScrollContainer.ScrollableExtent > 0 && resultScrollContainer.IsScrolledToEnd(pagination_scroll_distance); public BeatmapListingOverlay() : base(OverlayColourScheme.Blue) { } - private BeatmapListingFilterControl filterControl; + private BeatmapListingFilterControl filterControl;//actual search settings [BackgroundDependencyLoader] private void load() @@ -48,7 +56,7 @@ namespace osu.Game.Overlays RelativeSizeAxes = Axes.Both, Colour = ColourProvider.Background6 }, - new OverlayScrollContainer + resultScrollContainer = new OverlayScrollContainer { RelativeSizeAxes = Axes.Both, ScrollbarVisible = false, @@ -80,9 +88,14 @@ namespace osu.Game.Overlays { AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, - Padding = new MarginPadding { Horizontal = 20 } - }, - loadingLayer = new LoadingLayer(panelTarget) + Padding = new MarginPadding { Horizontal = 20 }, + Children = new Drawable[] + { + foundContent = new FillFlowContainer(), + notFoundContent = new NotFoundDrawable(), + loadingLayer = new LoadingLayer(panelTarget) + } + } } }, } @@ -112,27 +125,52 @@ namespace osu.Game.Overlays private void onSearchFinished(List beatmaps) { + //No matches case if (!beatmaps.Any()) { - LoadComponentAsync(new NotFoundDrawable(), addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); + LoadComponentAsync(notFoundContent, addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); return; } - var newPanels = new FillFlowContainer + //New query case + if (!shouldAddNextPage) { - RelativeSizeAxes = Axes.X, - AutoSizeAxes = Axes.Y, - Spacing = new Vector2(10), - Alpha = 0, - Margin = new MarginPadding { Vertical = 15 }, - ChildrenEnumerable = beatmaps.Select(b => new GridBeatmapPanel(b) + //Spawn new child + var newPanels = new FillFlowContainer { - Anchor = Anchor.TopCentre, - Origin = Anchor.TopCentre, - }) - }; + RelativeSizeAxes = Axes.X, + AutoSizeAxes = Axes.Y, + Spacing = new Vector2(10), + Alpha = 0, + Margin = new MarginPadding { Vertical = 15 }, + ChildrenEnumerable = beatmaps.Select(b => new GridBeatmapPanel(b) + { + Anchor = Anchor.TopCentre, + Origin = Anchor.TopCentre, + }) + }; - LoadComponentAsync(newPanels, addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); + foundContent = newPanels; + LoadComponentAsync(foundContent, addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); + } + + //Pagination case + else + { + + beatmaps.ForEach(x => + { + LoadComponentAsync(new GridBeatmapPanel(x) + { + Anchor = Anchor.TopCentre, + Origin = Anchor.TopCentre, + }, loaded => + { + foundContent.Add(loaded); + loaded.FadeIn(200, Easing.OutQuint); + }); + }); + } } private void addContentToPlaceholder(Drawable content) @@ -149,13 +187,18 @@ namespace osu.Game.Overlays // If the auto-size computation is delayed until fade out completes, the background remain high for too long making the resulting transition to the smaller height look weird. // At the same time, if the last content's height is bypassed immediately, there is a period where the new content is at Alpha = 0 when the auto-sized height will be 0. // To resolve both of these issues, the bypass is delayed until a point when the content transitions (fade-in and fade-out) overlap and it looks good to do so. - lastContent.Delay(25).Schedule(() => lastContent.BypassAutoSizeAxes = Axes.Y); + lastContent.Delay(25).Schedule(() => lastContent.BypassAutoSizeAxes = Axes.Y) + .Then().Schedule(() => panelTarget.Remove(lastContent)); } - panelTarget.Add(currentContent = content); - currentContent.FadeIn(200, Easing.OutQuint); + if (!content.IsAlive) + panelTarget.Add(content); + content.FadeIn(200, Easing.OutQuint); + + currentContent = content; } + protected override void Dispose(bool isDisposing) { cancellationToken?.Cancel(); @@ -203,5 +246,14 @@ namespace osu.Game.Overlays }); } } + + protected override void Update() + { + base.Update(); + + if (shouldAddNextPage) + filterControl.AddPageToResult(); + + } } } From e5821ff2b28df51ed81585d6f2825b688fce5d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Mon, 11 May 2020 22:53:05 +0200 Subject: [PATCH 093/213] Integrate GameplayBeatmap changes --- .../Skinning/TestSceneDrawableTaikoMascot.cs | 23 ++++++------- .../UI/DrawableTaikoMascot.cs | 32 +++++++++++++------ osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 9 +----- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index 492f628482..bd3b360577 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -7,7 +7,6 @@ using System.Linq; using Humanizer; using NUnit.Framework; using osu.Framework.Allocation; -using osu.Framework.Bindables; using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Graphics; using osu.Framework.Testing; @@ -76,23 +75,14 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { AddStep("set beatmap", () => setBeatmap()); - // the bindables need to be independent for each content cell to prevent interference, - // as if some of the skins don't implement the animation they'll immediately revert to the previous state from the clear state. - var states = new List>(); + AddStep("create mascot", () => SetContents(() => new DrawableTaikoMascot { RelativeSizeAxes = Axes.Both })); - AddStep("create mascot", () => SetContents(() => - { - var state = new Bindable(TaikoMascotAnimationState.Clear); - states.Add(state); - return new DrawableTaikoMascot { State = { BindTarget = state }, RelativeSizeAxes = Axes.Both }; - })); - - AddStep("set clear state", () => states.ForEach(state => state.Value = TaikoMascotAnimationState.Clear)); - AddStep("miss", () => mascots.ForEach(mascot => mascot.OnNewResult(new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss }))); + AddStep("set clear state", () => mascots.ForEach(mascot => mascot.State.Value = TaikoMascotAnimationState.Clear)); + AddStep("miss", () => mascots.ForEach(mascot => mascot.LastResult.Value = new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss })); AddAssert("skins with animations remain in clear state", () => someMascotsIn(TaikoMascotAnimationState.Clear)); AddUntilStep("state reverts to fail", () => allMascotsIn(TaikoMascotAnimationState.Fail)); - AddStep("set clear state again", () => states.ForEach(state => state.Value = TaikoMascotAnimationState.Clear)); + AddStep("set clear state again", () => mascots.ForEach(mascot => mascot.State.Value = TaikoMascotAnimationState.Clear)); AddAssert("skins with animations change to clear", () => someMascotsIn(TaikoMascotAnimationState.Clear)); } @@ -220,6 +210,11 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning playfield.OnNewResult(hit, judgementResult); } + + foreach (var mascot in mascots) + { + mascot.LastResult.Value = judgementResult; + } } private bool allMascotsIn(TaikoMascotAnimationState state) => mascots.All(d => d.State.Value == state); diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 9328b607e6..105baa84cc 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -12,14 +12,15 @@ using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics.Containers; using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Taiko.Judgements; +using osu.Game.Screens.Play; namespace osu.Game.Rulesets.Taiko.UI { public class DrawableTaikoMascot : BeatSyncedContainer { - public IBindable State => state; + public readonly Bindable State; + public readonly Bindable LastResult; - private readonly Bindable state; private readonly Dictionary animations; private TaikoMascotAnimation currentAnimation; @@ -30,12 +31,14 @@ namespace osu.Game.Rulesets.Taiko.UI { Origin = Anchor = Anchor.BottomLeft; - state = new Bindable(startingState); + State = new Bindable(startingState); + LastResult = new Bindable(); + animations = new Dictionary(); } - [BackgroundDependencyLoader] - private void load(TextureStore textures) + [BackgroundDependencyLoader(true)] + private void load(TextureStore textures, GameplayBeatmap gameplayBeatmap) { InternalChildren = new[] { @@ -44,6 +47,9 @@ namespace osu.Game.Rulesets.Taiko.UI animations[TaikoMascotAnimationState.Kiai] = new TaikoMascotAnimation(TaikoMascotAnimationState.Kiai), animations[TaikoMascotAnimationState.Fail] = new TaikoMascotAnimation(TaikoMascotAnimationState.Fail), }; + + if (gameplayBeatmap != null) + ((IBindable)LastResult).BindTo(gameplayBeatmap.LastJudgementResult); } protected override void LoadComplete() @@ -51,16 +57,22 @@ namespace osu.Game.Rulesets.Taiko.UI base.LoadComplete(); animations.Values.ForEach(animation => animation.Hide()); - state.BindValueChanged(mascotStateChanged, true); + + State.BindValueChanged(mascotStateChanged, true); + LastResult.BindValueChanged(onNewResult); } - public void OnNewResult(JudgementResult result) + private void onNewResult(ValueChangedEvent resultChangedEvent) { + var result = resultChangedEvent.NewValue; + if (result == null) + return; + // TODO: missing support for clear/fail state transition at end of beatmap gameplay if (triggerComboClear(result) || triggerSwellClear(result)) { - state.Value = TaikoMascotAnimationState.Clear; + State.Value = TaikoMascotAnimationState.Clear; // always consider a clear equivalent to a hit to avoid clear -> miss transitions lastObjectHit = true; } @@ -79,7 +91,7 @@ namespace osu.Game.Rulesets.Taiko.UI protected override void Update() { base.Update(); - state.Value = getNextState(); + State.Value = getNextState(); } private TaikoMascotAnimationState getNextState() @@ -87,7 +99,7 @@ namespace osu.Game.Rulesets.Taiko.UI // don't change state if current animation is playing // (used for clear state - others are manually animated on new beats) if (currentAnimation != null && !currentAnimation.Completed) - return state.Value; + return State.Value; if (!lastObjectHit) return TaikoMascotAnimationState.Fail; diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 0fe0d6165b..21676510ad 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -40,8 +40,6 @@ namespace osu.Game.Rulesets.Taiko.UI private Container hitTargetOffsetContent; - private SkinnableDrawable mascotDrawable; - public TaikoPlayfield(ControlPointInfo controlPoints) { this.controlPoints = controlPoints; @@ -127,7 +125,7 @@ namespace osu.Game.Rulesets.Taiko.UI }, } }, - mascotDrawable = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => Empty()) + new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => Empty()) { Origin = Anchor.BottomLeft, Anchor = Anchor.TopLeft, @@ -212,11 +210,6 @@ namespace osu.Game.Rulesets.Taiko.UI addExplosion(judgedObject, type); break; } - - if (mascotDrawable.Drawable is DrawableTaikoMascot mascot) - { - mascot.OnNewResult(result); - } } private void addDrumRollHit(DrawableDrumRollTick drawableTick) => From bf719f98d5c664a0282b4bd186070dfa0fed0ccc Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 11:08:30 +0900 Subject: [PATCH 094/213] Fix beatmap skins providing fallback version lookup, preceding user skins --- osu.Game.Tests/Skins/TestSceneSkinConfigurationLookup.cs | 6 +++--- osu.Game/Skinning/LegacyBeatmapSkin.cs | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/osu.Game.Tests/Skins/TestSceneSkinConfigurationLookup.cs b/osu.Game.Tests/Skins/TestSceneSkinConfigurationLookup.cs index 685decf097..8deed75a56 100644 --- a/osu.Game.Tests/Skins/TestSceneSkinConfigurationLookup.cs +++ b/osu.Game.Tests/Skins/TestSceneSkinConfigurationLookup.cs @@ -152,11 +152,12 @@ namespace osu.Game.Tests.Skins } [Test] - public void TestSetBeatmapVersionNoFallback() + public void TestSetBeatmapVersionFallsBackToUserSkin() { + // completely ignoring beatmap versions for simplicity. AddStep("Set user skin version 2.3", () => userSource.Configuration.LegacyVersion = 2.3m); AddStep("Set beatmap skin version null", () => beatmapSource.Configuration.LegacyVersion = 1.7m); - AddAssert("Check legacy version lookup", () => requester.GetConfig(LegacySkinConfiguration.LegacySetting.Version)?.Value == 1.7m); + AddAssert("Check legacy version lookup", () => requester.GetConfig(LegacySkinConfiguration.LegacySetting.Version)?.Value == 2.3m); } [Test] @@ -172,7 +173,6 @@ namespace osu.Game.Tests.Skins public void TestIniWithNoVersionFallsBackTo1() { AddStep("Parse skin with no version", () => userSource.Configuration = new LegacySkinDecoder().Decode(new LineBufferedReader(new MemoryStream()))); - AddStep("Set beatmap skin version null", () => beatmapSource.Configuration.LegacyVersion = null); AddAssert("Check legacy version lookup", () => requester.GetConfig(LegacySkinConfiguration.LegacySetting.Version)?.Value == 1.0m); } diff --git a/osu.Game/Skinning/LegacyBeatmapSkin.cs b/osu.Game/Skinning/LegacyBeatmapSkin.cs index 21533e58cd..87bca856a3 100644 --- a/osu.Game/Skinning/LegacyBeatmapSkin.cs +++ b/osu.Game/Skinning/LegacyBeatmapSkin.cs @@ -27,9 +27,11 @@ namespace osu.Game.Skinning switch (lookup) { case LegacySkinConfiguration.LegacySetting s when s == LegacySkinConfiguration.LegacySetting.Version: - if (Configuration.LegacyVersion is decimal version) - return SkinUtils.As(new Bindable(version)); + // For lookup simplicity, ignore beatmap-level versioning completely. + // If it is decided that we need this due to beatmaps somehow using it, the default (1.0 specified in LegacySkinDecoder.CreateTemplateObject) + // needs to be removed else it will cause incorrect skin behaviours. This is due to the config lookup having no context of which skin + // it should be returning the version for. return null; } From a5c1b461f6985d4c369a8f57336de16f4e07c662 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 11:14:51 +0900 Subject: [PATCH 095/213] Fix null reference in difficulty recommender --- osu.Game/Screens/Select/DifficultyRecommender.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Screens/Select/DifficultyRecommender.cs b/osu.Game/Screens/Select/DifficultyRecommender.cs index 20cdca858a..0dd3341a93 100644 --- a/osu.Game/Screens/Select/DifficultyRecommender.cs +++ b/osu.Game/Screens/Select/DifficultyRecommender.cs @@ -86,7 +86,7 @@ namespace osu.Game.Screens.Select { base.Dispose(isDisposing); - api.Unregister(this); + api?.Unregister(this); } } } From 3b1680583e2ff39976485b1991355daa7c9ec13e Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 11:31:08 +0900 Subject: [PATCH 096/213] Fix taiko scroller not following gameplay time --- osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs index 1ecdb839fb..4cf1af3b8f 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs @@ -17,6 +17,9 @@ namespace osu.Game.Rulesets.Taiko.Skinning { public class LegacyTaikoScroller : CompositeDrawable { + [Resolved(canBeNull: true)] + private GameplayClock gameplayClock { get; set; } + public LegacyTaikoScroller() { RelativeSizeAxes = Axes.Both; @@ -63,7 +66,7 @@ namespace osu.Game.Rulesets.Taiko.Skinning foreach (var sprite in InternalChildren) { // add the x coordinates and perform re-layout on all sprites as spacing may change with gameplay scale. - sprite.X = additiveX ??= sprite.X - (float)Time.Elapsed * 0.1f; + sprite.X = additiveX ??= sprite.X - (float)(gameplayClock ?? Clock).ElapsedFrameTime * 0.1f; additiveX += sprite.DrawWidth - 1; From e9804bf11be0c535540bde81c09909ba2ecdb132 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 11:55:12 +0900 Subject: [PATCH 097/213] Update resources --- osu.Android.props | 2 +- osu.Game/osu.Game.csproj | 2 +- osu.iOS.props | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/osu.Android.props b/osu.Android.props index 69f897128c..650ebde54d 100644 --- a/osu.Android.props +++ b/osu.Android.props @@ -51,7 +51,7 @@ - + diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index c6dba8da13..ee6206e166 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -25,7 +25,7 @@ - + diff --git a/osu.iOS.props b/osu.iOS.props index f78fd2e4ff..cbf8600c62 100644 --- a/osu.iOS.props +++ b/osu.iOS.props @@ -71,7 +71,7 @@ - + From e4a23b3e7d7eb065578f48c2d53e7981e37c6a59 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 12:39:04 +0900 Subject: [PATCH 098/213] Fix ignored excluding more than top level --- osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs | 10 ++++++++++ osu.Game/IO/OsuStorage.cs | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index ed83ff358c..ef2b20de64 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -133,6 +133,9 @@ namespace osu.Game.Tests.NonVisual // ensure we "use" cache host.Storage.GetStorageForDirectory("cache"); + // for testing nested files are not ignored (only top level) + host.Storage.GetStorageForDirectory("test-nested").GetStorageForDirectory("cache"); + string defaultStorageLocation = Path.Combine(Environment.CurrentDirectory, "headless", nameof(TestMigration)); Assert.That(storage.GetFullPath("."), Is.EqualTo(defaultStorageLocation)); @@ -141,6 +144,13 @@ namespace osu.Game.Tests.NonVisual Assert.That(storage.GetFullPath("."), Is.EqualTo(customPath)); + // ensure cache was not moved + Assert.That(host.Storage.ExistsDirectory("cache")); + + // ensure nested cache was moved + Assert.That(!host.Storage.ExistsDirectory(Path.Combine("test-nested", "cache"))); + Assert.That(storage.ExistsDirectory(Path.Combine("test-nested", "cache"))); + foreach (var file in OsuStorage.IGNORE_FILES) { Assert.That(host.Storage.Exists(file), Is.True); diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 7c0b90e208..6dc25e871c 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -71,7 +71,7 @@ namespace osu.Game.IO { foreach (System.IO.FileInfo fi in target.GetFiles()) { - if (IGNORE_FILES.Contains(fi.Name)) + if (topLevelExcludes && IGNORE_FILES.Contains(fi.Name)) continue; fi.Delete(); @@ -79,7 +79,7 @@ namespace osu.Game.IO foreach (DirectoryInfo dir in target.GetDirectories()) { - if (IGNORE_DIRECTORIES.Contains(dir.Name)) + if (topLevelExcludes && IGNORE_DIRECTORIES.Contains(dir.Name)) continue; dir.Delete(true); @@ -93,7 +93,7 @@ namespace osu.Game.IO foreach (System.IO.FileInfo fi in source.GetFiles()) { - if (IGNORE_FILES.Contains(fi.Name)) + if (topLevelExcludes && IGNORE_FILES.Contains(fi.Name)) continue; int tries = 5; @@ -114,7 +114,7 @@ namespace osu.Game.IO foreach (DirectoryInfo dir in source.GetDirectories()) { - if (IGNORE_DIRECTORIES.Contains(dir.Name)) + if (topLevelExcludes && IGNORE_DIRECTORIES.Contains(dir.Name)) continue; copyRecursive(dir, destination.CreateSubdirectory(dir.Name), false); From 75a40578e85690ae62bf089ae77ad06519b4ef08 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 12:39:52 +0900 Subject: [PATCH 099/213] Revert ContextFactory to private --- osu.Game/OsuGameBase.cs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs index 6282f5cb8b..11a3834c71 100644 --- a/osu.Game/OsuGameBase.cs +++ b/osu.Game/OsuGameBase.cs @@ -121,7 +121,7 @@ namespace osu.Game protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent) => dependencies = new DependencyContainer(base.CreateChildDependencies(parent)); - protected DatabaseContextFactory ContextFactory; + private DatabaseContextFactory contextFactory; protected override UserInputManager CreateUserInputManager() => new OsuUserInputManager(); @@ -130,7 +130,7 @@ namespace osu.Game { Resources.AddStore(new DllResourceStore(OsuResources.ResourceAssembly)); - dependencies.Cache(ContextFactory = new DatabaseContextFactory(Storage)); + dependencies.Cache(contextFactory = new DatabaseContextFactory(Storage)); dependencies.CacheAs(Storage); @@ -161,7 +161,7 @@ namespace osu.Game runMigrations(); - dependencies.Cache(SkinManager = new SkinManager(Storage, ContextFactory, Host, Audio, new NamespacedResourceStore(Resources, "Skins/Legacy"))); + dependencies.Cache(SkinManager = new SkinManager(Storage, contextFactory, Host, Audio, new NamespacedResourceStore(Resources, "Skins/Legacy"))); dependencies.CacheAs(SkinManager); if (API == null) API = new APIAccess(LocalConfig); @@ -170,12 +170,12 @@ namespace osu.Game var defaultBeatmap = new DummyWorkingBeatmap(Audio, Textures); - dependencies.Cache(RulesetStore = new RulesetStore(ContextFactory, Storage)); - dependencies.Cache(FileStore = new FileStore(ContextFactory, Storage)); + dependencies.Cache(RulesetStore = new RulesetStore(contextFactory, Storage)); + dependencies.Cache(FileStore = new FileStore(contextFactory, Storage)); // ordering is important here to ensure foreign keys rules are not broken in ModelStore.Cleanup() - dependencies.Cache(ScoreManager = new ScoreManager(RulesetStore, () => BeatmapManager, Storage, API, ContextFactory, Host)); - dependencies.Cache(BeatmapManager = new BeatmapManager(Storage, ContextFactory, RulesetStore, API, Audio, Host, defaultBeatmap)); + dependencies.Cache(ScoreManager = new ScoreManager(RulesetStore, () => BeatmapManager, Storage, API, contextFactory, Host)); + dependencies.Cache(BeatmapManager = new BeatmapManager(Storage, contextFactory, RulesetStore, API, Audio, Host, defaultBeatmap)); // this should likely be moved to ArchiveModelManager when another case appers where it is necessary // to have inter-dependent model managers. this could be obtained with an IHasForeign interface to @@ -189,8 +189,8 @@ namespace osu.Game BeatmapManager.ItemRemoved += i => ScoreManager.Delete(getBeatmapScores(i), true); BeatmapManager.ItemAdded += i => ScoreManager.Undelete(getBeatmapScores(i), true); - dependencies.Cache(KeyBindingStore = new KeyBindingStore(ContextFactory, RulesetStore)); - dependencies.Cache(SettingsStore = new SettingsStore(ContextFactory)); + dependencies.Cache(KeyBindingStore = new KeyBindingStore(contextFactory, RulesetStore)); + dependencies.Cache(SettingsStore = new SettingsStore(contextFactory)); dependencies.Cache(RulesetConfigCache = new RulesetConfigCache(SettingsStore)); dependencies.Cache(new SessionStatics()); dependencies.Cache(new OsuColour()); @@ -279,7 +279,7 @@ namespace osu.Game { try { - using (var db = ContextFactory.GetForWrite(false)) + using (var db = contextFactory.GetForWrite(false)) db.Context.Migrate(); } catch (Exception e) @@ -288,12 +288,12 @@ namespace osu.Game // if we failed, let's delete the database and start fresh. // todo: we probably want a better (non-destructive) migrations/recovery process at a later point than this. - ContextFactory.ResetDatabase(); + contextFactory.ResetDatabase(); Logger.Log("Database purged successfully.", LoggingTarget.Database); // only run once more, then hard bail. - using (var db = ContextFactory.GetForWrite(false)) + using (var db = contextFactory.GetForWrite(false)) db.Context.Migrate(); } } @@ -329,7 +329,7 @@ namespace osu.Game base.Dispose(isDisposing); RulesetStore?.Dispose(); - ContextFactory.FlushConnections(); + contextFactory.FlushConnections(); } private class OsuUserInputManager : UserInputManager @@ -360,7 +360,7 @@ namespace osu.Game public void Migrate(string path) { - ContextFactory.FlushConnections(); + contextFactory.FlushConnections(); (Storage as OsuStorage)?.Migrate(path); } } From a86c7f478c8b251ceec760ce860fa21658505dee Mon Sep 17 00:00:00 2001 From: Craftplacer Date: Tue, 12 May 2020 05:49:35 +0200 Subject: [PATCH 100/213] Initial commit --- osu.Game/OsuGame.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index 3caffb6db5..6e202b6315 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -91,7 +91,7 @@ namespace osu.Game protected BackButton BackButton; - protected SettingsPanel Settings; + protected SettingsOverlay Settings; private VolumeOverlay volume; private OsuLogo osuLogo; @@ -767,11 +767,17 @@ namespace osu.Game private Task asyncLoadStream; + /// + /// Schedules loading the provided in a single file. + /// + /// The component to load. + /// The method to invoke for adding the component. + /// Whether to cache the component as type into the game dependencies before any scheduling. private T loadComponentSingleFile(T d, Action add, bool cache = false) where T : Drawable { if (cache) - dependencies.Cache(d); + dependencies.CacheAs(d); if (d is OverlayContainer overlay) overlays.Add(overlay); From 949e17cc0e8f4666d87b9be541b5c31b3e5686a4 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 15:23:47 +0900 Subject: [PATCH 101/213] Rework scroller to support backwards playback --- .../Skinning/TestSceneTaikoScroller.cs | 20 ++++++- .../Skinning/LegacyTaikoScroller.cs | 52 +++++++++++-------- .../UI/DrawableTaikoRuleset.cs | 2 +- 3 files changed, 50 insertions(+), 24 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs index e26f410b71..9a2ada7f72 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs @@ -3,6 +3,7 @@ using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Testing; +using osu.Framework.Timing; using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Taiko.Skinning; @@ -12,11 +13,28 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { public class TestSceneTaikoScroller : TaikoSkinnableTestScene { + private readonly ManualClock clock = new ManualClock(); + + private bool reversed; + public TestSceneTaikoScroller() { - AddStep("Load scroller", () => SetContents(() => new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()))); + AddStep("Load scroller", () => SetContents(() => + new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()) + { + Clock = new FramedClock(clock) + })); AddToggleStep("Toggle passing", passing => this.ChildrenOfType().ForEach(s => s.LastResult.Value = new JudgementResult(null, new Judgement()) { Type = passing ? HitResult.Perfect : HitResult.Miss })); + + AddToggleStep("toggle playback direction", reversed => this.reversed = reversed); + } + + protected override void Update() + { + base.Update(); + + clock.CurrentTime += (reversed ? -1 : 1) * Clock.ElapsedFrameTime; } } } diff --git a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs index 4cf1af3b8f..b3a325ea68 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs @@ -17,9 +17,6 @@ namespace osu.Game.Rulesets.Taiko.Skinning { public class LegacyTaikoScroller : CompositeDrawable { - [Resolved(canBeNull: true)] - private GameplayClock gameplayClock { get; set; } - public LegacyTaikoScroller() { RelativeSizeAxes = Axes.Both; @@ -59,31 +56,42 @@ namespace osu.Game.Rulesets.Taiko.Skinning { base.Update(); - while (true) + bool wideEnough() => + InternalChildren.Any() + && InternalChildren.First().ScreenSpaceDrawQuad.Width * InternalChildren.Count >= ScreenSpaceDrawQuad.Width * 2; + + // store X before checking wide enough so if we perform layout there is no positional discrepancy. + float currentX = (InternalChildren?.FirstOrDefault()?.X ?? 0) - (float)Clock.ElapsedFrameTime * 0.1f; + + // ensure we have enough sprites + if (!wideEnough()) { - float? additiveX = null; + ClearInternal(); - foreach (var sprite in InternalChildren) - { - // add the x coordinates and perform re-layout on all sprites as spacing may change with gameplay scale. - sprite.X = additiveX ??= sprite.X - (float)(gameplayClock ?? Clock).ElapsedFrameTime * 0.1f; + while (!wideEnough()) + AddInternal(new ScrollerSprite { Passing = passing }); + } - additiveX += sprite.DrawWidth - 1; + var first = InternalChildren.First(); + var last = InternalChildren.Last(); - if (sprite.X + sprite.DrawWidth < 0) - sprite.Expire(); - } + foreach (var sprite in InternalChildren) + { + // add the x coordinates and perform re-layout on all sprites as spacing may change with gameplay scale. + sprite.X = currentX; + currentX += sprite.DrawWidth - 1; + } - var last = InternalChildren.LastOrDefault(); + if (first.ScreenSpaceDrawQuad.TopLeft.X >= ScreenSpaceDrawQuad.TopLeft.X) + { + foreach (var internalChild in InternalChildren) + internalChild.X -= first.DrawWidth; + } - // only break from this loop once we have saturated horizontal space completely. - if (last != null && last.ScreenSpaceDrawQuad.TopRight.X >= ScreenSpaceDrawQuad.TopRight.X) - break; - - AddInternal(new ScrollerSprite - { - Passing = passing - }); + if (last.ScreenSpaceDrawQuad.TopRight.X <= ScreenSpaceDrawQuad.TopRight.X) + { + foreach (var internalChild in InternalChildren) + internalChild.X += first.DrawWidth; } } diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs index c0a6c4582c..21d595a97a 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs @@ -42,7 +42,7 @@ namespace osu.Game.Rulesets.Taiko.UI { new BarLineGenerator(Beatmap).BarLines.ForEach(bar => Playfield.Add(bar.Major ? new DrawableBarLineMajor(bar) : new DrawableBarLine(bar))); - AddInternal(scroller = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()) + FrameStableComponents.Add(scroller = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()) { RelativeSizeAxes = Axes.X, Depth = float.MaxValue From c7d8793c1d96bd817d36ad1ae918ab4c6048fa33 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 15:44:14 +0900 Subject: [PATCH 102/213] Remove unnecessary overlap --- osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs index b3a325ea68..28114ac74f 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs @@ -79,7 +79,7 @@ namespace osu.Game.Rulesets.Taiko.Skinning { // add the x coordinates and perform re-layout on all sprites as spacing may change with gameplay scale. sprite.X = currentX; - currentX += sprite.DrawWidth - 1; + currentX += sprite.DrawWidth; } if (first.ScreenSpaceDrawQuad.TopLeft.X >= ScreenSpaceDrawQuad.TopLeft.X) From c04f2b0840ded76704dc37210273285d2bf8200a Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 15:51:59 +0900 Subject: [PATCH 103/213] Reposition taiko playfield to be closer to the top of the screen --- .../UI/TaikoPlayfieldAdjustmentContainer.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfieldAdjustmentContainer.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfieldAdjustmentContainer.cs index 980f5ea340..1041456020 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfieldAdjustmentContainer.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfieldAdjustmentContainer.cs @@ -13,18 +13,16 @@ namespace osu.Game.Rulesets.Taiko.UI private const float default_relative_height = TaikoPlayfield.DEFAULT_HEIGHT / 768; private const float default_aspect = 16f / 9f; - public TaikoPlayfieldAdjustmentContainer() - { - Anchor = Anchor.CentreLeft; - Origin = Anchor.CentreLeft; - } - protected override void Update() { base.Update(); float aspectAdjust = Math.Clamp(Parent.ChildSize.X / Parent.ChildSize.Y, 0.4f, 4) / default_aspect; Size = new Vector2(1, default_relative_height * aspectAdjust); + + // Position the taiko playfield exactly one playfield from the top of the screen. + RelativePositionAxes = Axes.Y; + Y = Size.Y; } } } From e28e89213f07767c12b2eed7d0a5b3063a5ef82b Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 16:58:47 +0900 Subject: [PATCH 104/213] Fix incorrect spawning when scale adjustments are applied to child sprites --- .../Skinning/TestSceneTaikoScroller.cs | 3 ++- osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs | 9 ++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs index 9a2ada7f72..39e6bc2d6d 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs @@ -22,7 +22,8 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning AddStep("Load scroller", () => SetContents(() => new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()) { - Clock = new FramedClock(clock) + Clock = new FramedClock(clock), + Height = 0.4f, })); AddToggleStep("Toggle passing", passing => this.ChildrenOfType().ForEach(s => s.LastResult.Value = new JudgementResult(null, new Judgement()) { Type = passing ? HitResult.Perfect : HitResult.Miss })); diff --git a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs index 28114ac74f..3ec6be8a6c 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs @@ -64,13 +64,8 @@ namespace osu.Game.Rulesets.Taiko.Skinning float currentX = (InternalChildren?.FirstOrDefault()?.X ?? 0) - (float)Clock.ElapsedFrameTime * 0.1f; // ensure we have enough sprites - if (!wideEnough()) - { - ClearInternal(); - - while (!wideEnough()) - AddInternal(new ScrollerSprite { Passing = passing }); - } + while (!wideEnough()) + AddInternal(new ScrollerSprite { Passing = passing }); var first = InternalChildren.First(); var last = InternalChildren.Last(); From de50b725d59be235c0be5ccee68d20f648c0c045 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 20:08:35 +0900 Subject: [PATCH 105/213] Fix mod failure checks executing actual game logic --- osu.Game.Rulesets.Osu/Mods/OsuModAutopilot.cs | 3 ++- osu.Game.Tests/Visual/Gameplay/TestSceneReplay.cs | 3 ++- osu.Game/Rulesets/Mods/IApplicableFailOverride.cs | 5 +++-- osu.Game/Rulesets/Mods/ModAutoplay.cs | 3 ++- osu.Game/Rulesets/Mods/ModBlockFail.cs | 2 +- osu.Game/Rulesets/Mods/ModEasy.cs | 13 +++++-------- osu.Game/Rulesets/Mods/ModSuddenDeath.cs | 3 ++- osu.Game/Screens/Play/Player.cs | 4 ++-- osu.Game/Screens/Play/ReplayPlayer.cs | 2 +- osu.Game/Tests/Visual/ModPerfectTestScene.cs | 2 +- osu.Game/Tests/Visual/ModTestScene.cs | 6 ++++-- 11 files changed, 25 insertions(+), 21 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModAutopilot.cs b/osu.Game.Rulesets.Osu/Mods/OsuModAutopilot.cs index fe46876050..d75f4c70d7 100644 --- a/osu.Game.Rulesets.Osu/Mods/OsuModAutopilot.cs +++ b/osu.Game.Rulesets.Osu/Mods/OsuModAutopilot.cs @@ -24,7 +24,8 @@ namespace osu.Game.Rulesets.Osu.Mods public override double ScoreMultiplier => 1; public override Type[] IncompatibleMods => new[] { typeof(OsuModSpunOut), typeof(ModRelax), typeof(ModSuddenDeath), typeof(ModNoFail), typeof(ModAutoplay) }; - public bool AllowFail => false; + public bool PerformFail() => false; + public bool RestartOnFail => false; private OsuInputManager inputManager; diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneReplay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneReplay.cs index e82722e7a2..1908988739 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneReplay.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneReplay.cs @@ -33,7 +33,8 @@ namespace osu.Game.Tests.Visual.Gameplay { public new ScoreProcessor ScoreProcessor => base.ScoreProcessor; public new HUDOverlay HUDOverlay => base.HUDOverlay; - public new bool AllowFail => base.AllowFail; + + public bool AllowFail => base.CheckModsAllowFailure(); protected override bool PauseOnFocusLost => false; diff --git a/osu.Game/Rulesets/Mods/IApplicableFailOverride.cs b/osu.Game/Rulesets/Mods/IApplicableFailOverride.cs index 120bfc9a23..8c99d739cb 100644 --- a/osu.Game/Rulesets/Mods/IApplicableFailOverride.cs +++ b/osu.Game/Rulesets/Mods/IApplicableFailOverride.cs @@ -11,10 +11,11 @@ namespace osu.Game.Rulesets.Mods /// /// Whether we should allow failing at the current point in time. /// - bool AllowFail { get; } + /// Whether the fail should be allowed to proceed. Return false to block. + bool PerformFail(); /// - /// Whether we want to restart on fail. Only used if is true. + /// Whether we want to restart on fail. Only used if returns true. /// bool RestartOnFail { get; } } diff --git a/osu.Game/Rulesets/Mods/ModAutoplay.cs b/osu.Game/Rulesets/Mods/ModAutoplay.cs index e51b8b6457..945dd444be 100644 --- a/osu.Game/Rulesets/Mods/ModAutoplay.cs +++ b/osu.Game/Rulesets/Mods/ModAutoplay.cs @@ -27,7 +27,8 @@ namespace osu.Game.Rulesets.Mods public override string Description => "Watch a perfect automated play through the song."; public override double ScoreMultiplier => 1; - public bool AllowFail => false; + public bool PerformFail() => false; + public bool RestartOnFail => false; public override Type[] IncompatibleMods => new[] { typeof(ModRelax), typeof(ModSuddenDeath), typeof(ModNoFail) }; diff --git a/osu.Game/Rulesets/Mods/ModBlockFail.cs b/osu.Game/Rulesets/Mods/ModBlockFail.cs index 7d7ecfa416..1fde5abad4 100644 --- a/osu.Game/Rulesets/Mods/ModBlockFail.cs +++ b/osu.Game/Rulesets/Mods/ModBlockFail.cs @@ -14,7 +14,7 @@ namespace osu.Game.Rulesets.Mods /// /// We never fail, 'yo. /// - public bool AllowFail => false; + public bool PerformFail() => false; public bool RestartOnFail => false; diff --git a/osu.Game/Rulesets/Mods/ModEasy.cs b/osu.Game/Rulesets/Mods/ModEasy.cs index c1c4124b98..7cf9656810 100644 --- a/osu.Game/Rulesets/Mods/ModEasy.cs +++ b/osu.Game/Rulesets/Mods/ModEasy.cs @@ -48,17 +48,14 @@ namespace osu.Game.Rulesets.Mods retries = Retries.Value; } - public bool AllowFail + public bool PerformFail() { - get - { - if (retries == 0) return true; + if (retries == 0) return true; - health.Value = health.MaxValue; - retries--; + health.Value = health.MaxValue; + retries--; - return false; - } + return false; } public bool RestartOnFail => false; diff --git a/osu.Game/Rulesets/Mods/ModSuddenDeath.cs b/osu.Game/Rulesets/Mods/ModSuddenDeath.cs index 8799431f1d..df10262845 100644 --- a/osu.Game/Rulesets/Mods/ModSuddenDeath.cs +++ b/osu.Game/Rulesets/Mods/ModSuddenDeath.cs @@ -20,7 +20,8 @@ namespace osu.Game.Rulesets.Mods public override bool Ranked => true; public override Type[] IncompatibleMods => new[] { typeof(ModNoFail), typeof(ModRelax), typeof(ModAutoplay) }; - public bool AllowFail => true; + public bool PerformFail() => true; + public bool RestartOnFail => true; public void ApplyToHealthProcessor(HealthProcessor healthProcessor) diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index a2735c8c55..1ec3a69b24 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -105,7 +105,7 @@ namespace osu.Game.Screens.Play /// Whether failing should be allowed. /// By default, this checks whether all selected mods allow failing. /// - protected virtual bool AllowFail => Mods.Value.OfType().All(m => m.AllowFail); + protected virtual bool CheckModsAllowFailure() => Mods.Value.OfType().All(m => m.PerformFail()); private readonly bool allowPause; private readonly bool showResults; @@ -485,7 +485,7 @@ namespace osu.Game.Screens.Play private bool onFail() { - if (!AllowFail) + if (!CheckModsAllowFailure()) return false; HasFailed = true; diff --git a/osu.Game/Screens/Play/ReplayPlayer.cs b/osu.Game/Screens/Play/ReplayPlayer.cs index 0d2ddb7b01..f0c76163f1 100644 --- a/osu.Game/Screens/Play/ReplayPlayer.cs +++ b/osu.Game/Screens/Play/ReplayPlayer.cs @@ -12,7 +12,7 @@ namespace osu.Game.Screens.Play private readonly Score score; // Disallow replays from failing. (see https://github.com/ppy/osu/issues/6108) - protected override bool AllowFail => false; + protected override bool CheckModsAllowFailure() => false; public ReplayPlayer(Score score, bool allowPause = true, bool showResults = true) : base(allowPause, showResults) diff --git a/osu.Game/Tests/Visual/ModPerfectTestScene.cs b/osu.Game/Tests/Visual/ModPerfectTestScene.cs index 5948283428..c16352bead 100644 --- a/osu.Game/Tests/Visual/ModPerfectTestScene.cs +++ b/osu.Game/Tests/Visual/ModPerfectTestScene.cs @@ -41,7 +41,7 @@ namespace osu.Game.Tests.Visual { } - protected override bool AllowFail => true; + protected override bool CheckModsAllowFailure() => false; public bool CheckFailed(bool failed) { diff --git a/osu.Game/Tests/Visual/ModTestScene.cs b/osu.Game/Tests/Visual/ModTestScene.cs index 8b41fb5075..b5b3084097 100644 --- a/osu.Game/Tests/Visual/ModTestScene.cs +++ b/osu.Game/Tests/Visual/ModTestScene.cs @@ -64,12 +64,14 @@ namespace osu.Game.Tests.Visual protected class ModTestPlayer : TestPlayer { - protected override bool AllowFail { get; } + private readonly bool allowFail; + + protected override bool CheckModsAllowFailure() => allowFail; public ModTestPlayer(bool allowFail) : base(false, false) { - AllowFail = allowFail; + this.allowFail = allowFail; } } From 44319c1b719c64468de0594e22c48c357c3c62ac Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 20:26:34 +0900 Subject: [PATCH 106/213] Commit missed change --- osu.Game/Tests/Visual/ModPerfectTestScene.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Tests/Visual/ModPerfectTestScene.cs b/osu.Game/Tests/Visual/ModPerfectTestScene.cs index c16352bead..95a62bbf65 100644 --- a/osu.Game/Tests/Visual/ModPerfectTestScene.cs +++ b/osu.Game/Tests/Visual/ModPerfectTestScene.cs @@ -41,7 +41,7 @@ namespace osu.Game.Tests.Visual { } - protected override bool CheckModsAllowFailure() => false; + protected override bool CheckModsAllowFailure() => true; public bool CheckFailed(bool failed) { From f07d95ac59e77eb1fbfeaae58ece62b26828de46 Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Tue, 12 May 2020 21:49:55 +0800 Subject: [PATCH 107/213] Use IReadOnlyList for TypedListConverter. --- .../IO/Serialization/Converters/TypedListConverter.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/osu.Game/IO/Serialization/Converters/TypedListConverter.cs b/osu.Game/IO/Serialization/Converters/TypedListConverter.cs index ec0036dae2..f98fa05821 100644 --- a/osu.Game/IO/Serialization/Converters/TypedListConverter.cs +++ b/osu.Game/IO/Serialization/Converters/TypedListConverter.cs @@ -9,12 +9,12 @@ using Newtonsoft.Json.Linq; namespace osu.Game.IO.Serialization.Converters { /// - /// A type of that serializes an alongside + /// A type of that serializes an alongside /// a lookup table for the types contained. The lookup table is used in deserialization to /// reconstruct the objects with their original types. /// - /// The type of objects contained in the this attribute is attached to. - public class TypedListConverter : JsonConverter> + /// The type of objects contained in the this attribute is attached to. + public class TypedListConverter : JsonConverter> { private readonly bool requiresTypeVersion; @@ -36,7 +36,7 @@ namespace osu.Game.IO.Serialization.Converters this.requiresTypeVersion = requiresTypeVersion; } - public override IEnumerable ReadJson(JsonReader reader, Type objectType, IEnumerable existingValue, bool hasExistingValue, JsonSerializer serializer) + public override IReadOnlyList ReadJson(JsonReader reader, Type objectType, IReadOnlyList existingValue, bool hasExistingValue, JsonSerializer serializer) { var list = new List(); @@ -57,7 +57,7 @@ namespace osu.Game.IO.Serialization.Converters return list; } - public override void WriteJson(JsonWriter writer, IEnumerable value, JsonSerializer serializer) + public override void WriteJson(JsonWriter writer, IReadOnlyList value, JsonSerializer serializer) { var lookupTable = new List(); var objects = new List(); From 0c60b10757b1d605cb1d15c20c510a3b9a63ddbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Wed, 13 May 2020 01:14:11 +0900 Subject: [PATCH 108/213] Fix code factor issues > ran "dotnet format --check", shouldn't return whitespace errors anymore --- .../Overlays/BeatmapListing/BeatmapListingFilterControl.cs | 2 +- osu.Game/Overlays/BeatmapListingOverlay.cs | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs index c3e8505ddc..3f06bc20ed 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs @@ -154,7 +154,7 @@ namespace osu.Game.Overlays.BeatmapListing currentBeatmaps = beatmaps; else currentBeatmaps.AddRange(beatmaps); - + SearchFinished?.Invoke(beatmaps); } diff --git a/osu.Game/Overlays/BeatmapListingOverlay.cs b/osu.Game/Overlays/BeatmapListingOverlay.cs index c495c8d21b..115fe02999 100644 --- a/osu.Game/Overlays/BeatmapListingOverlay.cs +++ b/osu.Game/Overlays/BeatmapListingOverlay.cs @@ -44,7 +44,7 @@ namespace osu.Game.Overlays { } - private BeatmapListingFilterControl filterControl;//actual search settings + private BeatmapListingFilterControl filterControl; [BackgroundDependencyLoader] private void load() @@ -157,7 +157,6 @@ namespace osu.Game.Overlays //Pagination case else { - beatmaps.ForEach(x => { LoadComponentAsync(new GridBeatmapPanel(x) @@ -198,7 +197,6 @@ namespace osu.Game.Overlays currentContent = content; } - protected override void Dispose(bool isDisposing) { cancellationToken?.Cancel(); @@ -253,7 +251,6 @@ namespace osu.Game.Overlays if (shouldAddNextPage) filterControl.AddPageToResult(); - } } } From 82190a07b82f439c8e221c2420ca9b61e7d7e944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Wed, 13 May 2020 02:01:38 +0900 Subject: [PATCH 109/213] Remove temporary comments > Removes unnecessary xmldoc comments --- osu.Game/Online/API/Requests/ResponseWithCursor.cs | 3 --- .../Overlays/BeatmapListing/BeatmapListingFilterControl.cs | 2 -- osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs | 4 ---- osu.Game/Overlays/BeatmapListingOverlay.cs | 2 -- 4 files changed, 11 deletions(-) diff --git a/osu.Game/Online/API/Requests/ResponseWithCursor.cs b/osu.Game/Online/API/Requests/ResponseWithCursor.cs index 51e88ca52b..b0fe9eea28 100644 --- a/osu.Game/Online/API/Requests/ResponseWithCursor.cs +++ b/osu.Game/Online/API/Requests/ResponseWithCursor.cs @@ -16,9 +16,6 @@ namespace osu.Game.Online.API.Requests public abstract class ResponseWithCursor : ResponseWithCursor where T : class { - /// - /// Cursor deserialized into T class type (cannot implicitly convert type to object using raw Cursor) - /// [JsonProperty("cursor")] public T Cursor; } diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs index 3f06bc20ed..ac5ad96f7c 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs @@ -22,7 +22,6 @@ namespace osu.Game.Overlays.BeatmapListing { public Action> SearchFinished; public Action SearchStarted; - /// List of currently displayed beatmap entries private List currentBeatmaps; [Resolved] @@ -169,7 +168,6 @@ namespace osu.Game.Overlays.BeatmapListing public void TakeFocus() => searchControl.TakeFocus(); - /// Request next 50 matches if available public void AddPageToResult() { if (beatmapListingPager == null || !beatmapListingPager.CanFetchNextPage) diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs index 66faf8df7a..4c8902d314 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs @@ -24,13 +24,9 @@ namespace osu.Game.Overlays.BeatmapListing private SearchBeatmapSetsRequest getSetsRequest; private SearchBeatmapSetsResponse lastResponse; - /// Reports end of results private bool isLastPageFetched = false; - /// Job in process lock flag private bool isFetching => getSetsRequest != null; - /// Whether beatmaps should be appended or replaced public bool IsPastFirstPage { get; private set; } = false; - /// call FetchNextPage() safe-check public bool CanFetchNextPage => !isLastPageFetched && !isFetching; public BeatmapListingPager(IAPIProvider api, RulesetStore rulesets, string query, RulesetInfo ruleset, SearchCategory searchCategory = SearchCategory.Any, SortCriteria sortCriteria = SortCriteria.Ranked, SortDirection sortDirection = SortDirection.Descending) diff --git a/osu.Game/Overlays/BeatmapListingOverlay.cs b/osu.Game/Overlays/BeatmapListingOverlay.cs index 115fe02999..ba92181ac5 100644 --- a/osu.Game/Overlays/BeatmapListingOverlay.cs +++ b/osu.Game/Overlays/BeatmapListingOverlay.cs @@ -34,9 +34,7 @@ namespace osu.Game.Overlays private NotFoundDrawable notFoundContent; private OverlayScrollContainer resultScrollContainer; - /// Scroll distance threshold from results tail, higher means sooner private const int pagination_scroll_distance = 500; - /// This is paging event flag private bool shouldAddNextPage => resultScrollContainer.ScrollableExtent > 0 && resultScrollContainer.IsScrolledToEnd(pagination_scroll_distance); public BeatmapListingOverlay() From e321494f15c182beec3e8c911341968cbfa73417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Wed, 13 May 2020 02:15:24 +0900 Subject: [PATCH 110/213] Fix sort-by handling > Add other cursor fields for paging different sortings > Sorted as they show in GUI code-wise for more readability for now --- .../API/Requests/SearchBeatmapSetsRequest.cs | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs index fb2cc66dd8..2987d554af 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs @@ -13,8 +13,29 @@ namespace osu.Game.Online.API.Requests { public class Cursor { + [JsonProperty("title.raw")] + public string Title; + + [JsonProperty("artist.raw")] + public string Artist; + + [JsonProperty("beatmaps.difficultyrating")] + public string Difficulty; + [JsonProperty("approved_date")] - public string ApprovedDate; + public string Ranked; + + [JsonProperty("rating")] + public string Rating; + + [JsonProperty("play_count")] + public string Plays; + + [JsonProperty("favourite_count")] + public string Favourites; + + [JsonProperty("_score")] + public string Relevance; [JsonProperty("_id")] public string Id; @@ -70,8 +91,24 @@ namespace osu.Game.Online.API.Requests if (cursor != null) { + if (cursor.Title != null) + req.AddParameter("cursor[title.raw]", cursor.Title); + if (cursor.Artist != null) + req.AddParameter("cursor[artist.raw]", cursor.Artist); + if (cursor.Difficulty != null) + req.AddParameter("cursor[beatmaps.difficultyrating]", cursor.Difficulty); + if (cursor.Ranked != null) + req.AddParameter("cursor[approved_date]", cursor.Ranked); + if (cursor.Rating != null) + req.AddParameter("cursor[rating]", cursor.Rating); + if (cursor.Plays != null) + req.AddParameter("cursor[play_count]", cursor.Plays); + if (cursor.Favourites != null) + req.AddParameter("cursor[favourite_count]", cursor.Favourites); + if (cursor.Relevance != null) + req.AddParameter("cursor[_score]", cursor.Relevance); + req.AddParameter("cursor[_id]", cursor.Id); - req.AddParameter("cursor[approved_date]", cursor.ApprovedDate); } return req; From 942cc48e99ac41a480c48faa9270534d31225e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Tue, 12 May 2020 20:26:11 +0200 Subject: [PATCH 111/213] Improve mascot scaling --- .../UI/TaikoMascotAnimation.cs | 2 +- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs index 0bf6bc7d49..01cf88a87e 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -25,7 +25,7 @@ namespace osu.Game.Rulesets.Taiko.UI InternalChild = textureAnimation = createTextureAnimation(state).With(animation => { animation.Origin = animation.Anchor = Anchor.BottomLeft; - animation.Scale = new Vector2(0.6f); + animation.Scale = new Vector2(0.51f); // close enough to stable }); RelativeSizeAxes = Axes.Both; diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 21676510ad..5940ee8b69 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -5,6 +5,7 @@ using System.Linq; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; +using osu.Framework.Layout; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics; using osu.Game.Rulesets.Objects.Drawables; @@ -15,6 +16,7 @@ using osu.Game.Rulesets.Taiko.Objects.Drawables; using osu.Game.Rulesets.Taiko.Judgements; using osu.Game.Rulesets.Taiko.Objects; using osu.Game.Skinning; +using osuTK; namespace osu.Game.Rulesets.Taiko.UI { @@ -32,6 +34,7 @@ namespace osu.Game.Rulesets.Taiko.UI private JudgementContainer judgementContainer; private ScrollingHitObjectContainer drumRollHitContainer; internal Drawable HitTarget; + private SkinnableDrawable mascot; private ProxyContainer topLevelHitContainer; private ProxyContainer barlineContainer; @@ -40,9 +43,14 @@ namespace osu.Game.Rulesets.Taiko.UI private Container hitTargetOffsetContent; + private readonly LayoutValue playfieldScaleLayout = new LayoutValue(Invalidation.DrawSize); + private float playfieldScale => playfieldScaleLayout.IsValid ? playfieldScaleLayout.Value : playfieldScaleLayout.Value = DrawHeight / DEFAULT_HEIGHT; + public TaikoPlayfield(ControlPointInfo controlPoints) { this.controlPoints = controlPoints; + + AddLayout(playfieldScaleLayout); } [BackgroundDependencyLoader] @@ -125,14 +133,13 @@ namespace osu.Game.Rulesets.Taiko.UI }, } }, - new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => Empty()) + mascot = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => Empty()) { Origin = Anchor.BottomLeft, Anchor = Anchor.TopLeft, - RelativePositionAxes = Axes.None, + RelativePositionAxes = Axes.Y, RelativeSizeAxes = Axes.None, - X = 15, - Y = 45 + Y = 0.2f }, topLevelHitContainer = new ProxyContainer { @@ -151,6 +158,8 @@ namespace osu.Game.Rulesets.Taiko.UI // This is basically allowing for correct alignment as relative pieces move around them. rightArea.Padding = new MarginPadding { Left = leftArea.DrawWidth }; hitTargetOffsetContent.Padding = new MarginPadding { Left = HitTarget.DrawWidth / 2 }; + + mascot.Scale = new Vector2(playfieldScale); } public override void Add(DrawableHitObject h) From cabf3a89b1e79edcd452900477a684ad4f5b3bd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Wed, 13 May 2020 03:44:57 +0900 Subject: [PATCH 112/213] More robust cursor parsing solution > Change cursor request to return last response's entire cursor structure --- .../API/Requests/SearchBeatmapSetsRequest.cs | 54 +++---------------- 1 file changed, 8 insertions(+), 46 deletions(-) diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs index 2987d554af..e1df7fe6d3 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs @@ -2,10 +2,13 @@ // See the LICENCE file in the repository root for full licence text. using osu.Framework.IO.Network; +using osu.Framework.Extensions.IEnumerableExtensions; using osu.Game.Overlays; using osu.Game.Overlays.BeatmapListing; using osu.Game.Rulesets; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System.Collections.Generic; namespace osu.Game.Online.API.Requests { @@ -13,32 +16,8 @@ namespace osu.Game.Online.API.Requests { public class Cursor { - [JsonProperty("title.raw")] - public string Title; - - [JsonProperty("artist.raw")] - public string Artist; - - [JsonProperty("beatmaps.difficultyrating")] - public string Difficulty; - - [JsonProperty("approved_date")] - public string Ranked; - - [JsonProperty("rating")] - public string Rating; - - [JsonProperty("play_count")] - public string Plays; - - [JsonProperty("favourite_count")] - public string Favourites; - - [JsonProperty("_score")] - public string Relevance; - - [JsonProperty("_id")] - public string Id; + [JsonExtensionData] + public IDictionary Properties; } public SearchCategory SearchCategory { get; set; } @@ -89,27 +68,10 @@ namespace osu.Game.Online.API.Requests req.AddParameter("sort", $"{SortCriteria.ToString().ToLowerInvariant()}_{directionString}"); - if (cursor != null) + cursor?.Properties.ForEach(x => { - if (cursor.Title != null) - req.AddParameter("cursor[title.raw]", cursor.Title); - if (cursor.Artist != null) - req.AddParameter("cursor[artist.raw]", cursor.Artist); - if (cursor.Difficulty != null) - req.AddParameter("cursor[beatmaps.difficultyrating]", cursor.Difficulty); - if (cursor.Ranked != null) - req.AddParameter("cursor[approved_date]", cursor.Ranked); - if (cursor.Rating != null) - req.AddParameter("cursor[rating]", cursor.Rating); - if (cursor.Plays != null) - req.AddParameter("cursor[play_count]", cursor.Plays); - if (cursor.Favourites != null) - req.AddParameter("cursor[favourite_count]", cursor.Favourites); - if (cursor.Relevance != null) - req.AddParameter("cursor[_score]", cursor.Relevance); - - req.AddParameter("cursor[_id]", cursor.Id); - } + req.AddParameter("cursor[" + x.Key + "]", x.Value?.ToString()); + }); return req; } From 5962dedd35947eab90642aef09a6dee8547e3ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Wed, 13 May 2020 05:04:39 +0900 Subject: [PATCH 113/213] Reimplement cursor as part of WebRequest extensions > Added WebRequestExtensions > Moved Cursor request logic from SearchBeatmapSetsRequest --- osu.Game/Extensions/WebRequestExtensions.cs | 25 +++++++++++++++++++ .../API/Requests/SearchBeatmapSetsRequest.cs | 16 ++---------- .../API/Requests/SearchBeatmapSetsResponse.cs | 3 ++- 3 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 osu.Game/Extensions/WebRequestExtensions.cs diff --git a/osu.Game/Extensions/WebRequestExtensions.cs b/osu.Game/Extensions/WebRequestExtensions.cs new file mode 100644 index 0000000000..c8e3c564a5 --- /dev/null +++ b/osu.Game/Extensions/WebRequestExtensions.cs @@ -0,0 +1,25 @@ +using osu.Framework.IO.Network; +using osu.Framework.Extensions.IEnumerableExtensions; +using System.Collections.Generic; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace osu.Game.Extensions +{ + public class Cursor + { + [JsonExtensionData] + public IDictionary Properties; + } + + public static class WebRequestExtensions + { + public static void AddCursor(this WebRequest webRequest, Cursor cursor) + { + cursor?.Properties.ForEach(x => + { + webRequest.AddParameter("cursor[" + x.Key + "]", x.Value.ToString()); + }); + } + } +} diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs index e1df7fe6d3..a49cb70c37 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs @@ -2,24 +2,15 @@ // See the LICENCE file in the repository root for full licence text. using osu.Framework.IO.Network; -using osu.Framework.Extensions.IEnumerableExtensions; +using osu.Game.Extensions; using osu.Game.Overlays; using osu.Game.Overlays.BeatmapListing; using osu.Game.Rulesets; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System.Collections.Generic; namespace osu.Game.Online.API.Requests { public class SearchBeatmapSetsRequest : APIRequest { - public class Cursor - { - [JsonExtensionData] - public IDictionary Properties; - } - public SearchCategory SearchCategory { get; set; } public SortCriteria SortCriteria { get; set; } @@ -68,10 +59,7 @@ namespace osu.Game.Online.API.Requests req.AddParameter("sort", $"{SortCriteria.ToString().ToLowerInvariant()}_{directionString}"); - cursor?.Properties.ForEach(x => - { - req.AddParameter("cursor[" + x.Key + "]", x.Value?.ToString()); - }); + req.AddCursor(cursor); return req; } diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs index 2adf7004e8..a4d2c0e871 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs @@ -3,11 +3,12 @@ using System.Collections.Generic; using Newtonsoft.Json; +using osu.Game.Extensions; using osu.Game.Online.API.Requests.Responses; namespace osu.Game.Online.API.Requests { - public class SearchBeatmapSetsResponse : ResponseWithCursor + public class SearchBeatmapSetsResponse : ResponseWithCursor { [JsonProperty("beatmapsets")] public IEnumerable BeatmapSets; From 7874045b1f82e34dac1df8eb8d849f25a878ab97 Mon Sep 17 00:00:00 2001 From: Lucas A Date: Tue, 12 May 2020 21:12:48 +0200 Subject: [PATCH 114/213] Allow disabling SkipOverlay through AllowGameplayOverlays. --- osu.Game/Screens/Play/Player.cs | 6 +++++- osu.Game/Screens/Play/SkipOverlay.cs | 7 +++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index a2735c8c55..b24cef8eae 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -83,6 +83,8 @@ namespace osu.Game.Screens.Play private BreakTracker breakTracker; + private SkipOverlay skipOverlay; + protected ScoreProcessor ScoreProcessor { get; private set; } protected HealthProcessor HealthProcessor { get; private set; } @@ -189,6 +191,8 @@ namespace osu.Game.Screens.Play HUDOverlay.ShowHud.Value = false; HUDOverlay.ShowHud.Disabled = true; BreakOverlay.Hide(); + skipOverlay.Disabled = true; + skipOverlay.Hide(); } DrawableRuleset.HasReplayLoaded.BindValueChanged(_ => updatePauseOnFocusLostState(), true); @@ -290,7 +294,7 @@ namespace osu.Game.Screens.Play Anchor = Anchor.Centre, Origin = Anchor.Centre }, - new SkipOverlay(DrawableRuleset.GameplayStartTime) + skipOverlay = new SkipOverlay(DrawableRuleset.GameplayStartTime) { RequestSkip = GameplayClockContainer.Skip }, diff --git a/osu.Game/Screens/Play/SkipOverlay.cs b/osu.Game/Screens/Play/SkipOverlay.cs index ac7e509c2c..757dcd21ed 100644 --- a/osu.Game/Screens/Play/SkipOverlay.cs +++ b/osu.Game/Screens/Play/SkipOverlay.cs @@ -39,6 +39,8 @@ namespace osu.Game.Screens.Play [Resolved] private GameplayClock gameplayClock { get; set; } + public bool Disabled { get; set; } + public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => true; /// public bool IsPlaying => current?.Track.IsRunning ?? false; - private void handleBeatmapAdded(BeatmapSetInfo set) => Schedule(() => + private void beatmapAdded(ValueChangedEvent> weakSet) { - if (!beatmapSets.Contains(set)) - beatmapSets.Add(set); - }); + if (weakSet.NewValue.TryGetTarget(out var set)) + { + Schedule(() => + { + if (!beatmapSets.Contains(set)) + beatmapSets.Add(set); + }); + } + } - private void handleBeatmapRemoved(BeatmapSetInfo set) => Schedule(() => + private void beatmapRemoved(ValueChangedEvent> weakSet) { - beatmapSets.RemoveAll(s => s.ID == set.ID); - }); + if (weakSet.NewValue.TryGetTarget(out var set)) + { + Schedule(() => + { + beatmapSets.RemoveAll(s => s.ID == set.ID); + }); + } + } private ScheduledDelegate seekDelegate; @@ -299,17 +316,6 @@ namespace osu.Game.Overlays } } - protected override void Dispose(bool isDisposing) - { - base.Dispose(isDisposing); - - if (beatmaps != null) - { - beatmaps.ItemAdded -= handleBeatmapAdded; - beatmaps.ItemRemoved -= handleBeatmapRemoved; - } - } - public bool OnPressed(GlobalAction action) { if (beatmap.Disabled) diff --git a/osu.Game/Overlays/Settings/Sections/SkinSection.cs b/osu.Game/Overlays/Settings/Sections/SkinSection.cs index 75c8db1612..94080f5592 100644 --- a/osu.Game/Overlays/Settings/Sections/SkinSection.cs +++ b/osu.Game/Overlays/Settings/Sections/SkinSection.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using System.Linq; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -30,6 +31,9 @@ namespace osu.Game.Overlays.Settings.Sections [Resolved] private SkinManager skins { get; set; } + private IBindable> managerAdded; + private IBindable> managerRemoved; + [BackgroundDependencyLoader] private void load(OsuConfigManager config) { @@ -66,8 +70,11 @@ namespace osu.Game.Overlays.Settings.Sections }, }; - skins.ItemAdded += itemAdded; - skins.ItemRemoved += itemRemoved; + managerAdded = skins.ItemAdded.GetBoundCopy(); + managerAdded.BindValueChanged(itemAdded); + + managerRemoved = skins.ItemRemoved.GetBoundCopy(); + managerRemoved.BindValueChanged(itemRemoved); config.BindWith(OsuSetting.Skin, configBindable); @@ -82,19 +89,16 @@ namespace osu.Game.Overlays.Settings.Sections dropdownBindable.BindValueChanged(skin => configBindable.Value = skin.NewValue.ID); } - private void itemRemoved(SkinInfo s) => Schedule(() => skinDropdown.Items = skinDropdown.Items.Where(i => i.ID != s.ID).ToArray()); - - private void itemAdded(SkinInfo s) => Schedule(() => skinDropdown.Items = skinDropdown.Items.Append(s).ToArray()); - - protected override void Dispose(bool isDisposing) + private void itemAdded(ValueChangedEvent> weakItem) { - base.Dispose(isDisposing); + if (weakItem.NewValue.TryGetTarget(out var item)) + Schedule(() => skinDropdown.Items = skinDropdown.Items.Append(item).ToArray()); + } - if (skins != null) - { - skins.ItemAdded -= itemAdded; - skins.ItemRemoved -= itemRemoved; - } + private void itemRemoved(ValueChangedEvent> weakItem) + { + if (weakItem.NewValue.TryGetTarget(out var item)) + Schedule(() => skinDropdown.Items = skinDropdown.Items.Where(i => i.ID != item.ID).ToArray()); } private class SizeSlider : OsuSliderBar diff --git a/osu.Game/Screens/Multi/Match/Components/ReadyButton.cs b/osu.Game/Screens/Multi/Match/Components/ReadyButton.cs index 8f484d3672..4420b2d58a 100644 --- a/osu.Game/Screens/Multi/Match/Components/ReadyButton.cs +++ b/osu.Game/Screens/Multi/Match/Components/ReadyButton.cs @@ -32,11 +32,16 @@ namespace osu.Game.Screens.Multi.Match.Components Text = "Start"; } + private IBindable> managerAdded; + private IBindable> managerRemoved; + [BackgroundDependencyLoader] private void load(OsuColour colours) { - beatmaps.ItemAdded += beatmapAdded; - beatmaps.ItemRemoved += beatmapRemoved; + managerAdded = beatmaps.ItemAdded.GetBoundCopy(); + managerAdded.BindValueChanged(beatmapAdded); + managerRemoved = beatmaps.ItemRemoved.GetBoundCopy(); + managerRemoved.BindValueChanged(beatmapRemoved); SelectedItem.BindValueChanged(item => updateSelectedItem(item.NewValue), true); @@ -56,24 +61,30 @@ namespace osu.Game.Screens.Multi.Match.Components hasBeatmap = beatmaps.QueryBeatmap(b => b.OnlineBeatmapID == beatmapId) != null; } - private void beatmapAdded(BeatmapSetInfo model) + private void beatmapAdded(ValueChangedEvent> weakSet) { - int? beatmapId = SelectedItem.Value?.Beatmap.Value?.OnlineBeatmapID; - if (beatmapId == null) - return; + if (weakSet.NewValue.TryGetTarget(out var set)) + { + int? beatmapId = SelectedItem.Value?.Beatmap.Value?.OnlineBeatmapID; + if (beatmapId == null) + return; - if (model.Beatmaps.Any(b => b.OnlineBeatmapID == beatmapId)) - Schedule(() => hasBeatmap = true); + if (set.Beatmaps.Any(b => b.OnlineBeatmapID == beatmapId)) + Schedule(() => hasBeatmap = true); + } } - private void beatmapRemoved(BeatmapSetInfo model) + private void beatmapRemoved(ValueChangedEvent> weakSet) { - int? beatmapId = SelectedItem.Value?.Beatmap.Value?.OnlineBeatmapID; - if (beatmapId == null) - return; + if (weakSet.NewValue.TryGetTarget(out var set)) + { + int? beatmapId = SelectedItem.Value?.Beatmap.Value?.OnlineBeatmapID; + if (beatmapId == null) + return; - if (model.Beatmaps.Any(b => b.OnlineBeatmapID == beatmapId)) - Schedule(() => hasBeatmap = false); + if (set.Beatmaps.Any(b => b.OnlineBeatmapID == beatmapId)) + Schedule(() => hasBeatmap = false); + } } protected override void Update() @@ -95,16 +106,5 @@ namespace osu.Game.Screens.Multi.Match.Components Enabled.Value = hasBeatmap && hasEnoughTime; } - - protected override void Dispose(bool isDisposing) - { - base.Dispose(isDisposing); - - if (beatmaps != null) - { - beatmaps.ItemAdded -= beatmapAdded; - beatmaps.ItemRemoved -= beatmapRemoved; - } - } } } diff --git a/osu.Game/Screens/Multi/Match/MatchSubScreen.cs b/osu.Game/Screens/Multi/Match/MatchSubScreen.cs index eef53126c0..caa547ac72 100644 --- a/osu.Game/Screens/Multi/Match/MatchSubScreen.cs +++ b/osu.Game/Screens/Multi/Match/MatchSubScreen.cs @@ -50,6 +50,8 @@ namespace osu.Game.Screens.Multi.Match private LeaderboardChatDisplay leaderboardChatDisplay; private MatchSettingsOverlay settingsOverlay; + private IBindable> managerAdded; + public MatchSubScreen(Room room) { Title = room.RoomID.Value == null ? "New room" : room.Name.Value; @@ -181,7 +183,8 @@ namespace osu.Game.Screens.Multi.Match SelectedItem.BindValueChanged(_ => Scheduler.AddOnce(selectedItemChanged)); SelectedItem.Value = playlist.FirstOrDefault(); - beatmapManager.ItemAdded += beatmapAdded; + managerAdded = beatmapManager.ItemAdded.GetBoundCopy(); + managerAdded.BindValueChanged(beatmapAdded); } public override bool OnExiting(IScreen next) @@ -214,13 +217,16 @@ namespace osu.Game.Screens.Multi.Match Beatmap.Value = beatmapManager.GetWorkingBeatmap(localBeatmap); } - private void beatmapAdded(BeatmapSetInfo model) => Schedule(() => + private void beatmapAdded(ValueChangedEvent> weakSet) { - if (Beatmap.Value != beatmapManager.DefaultBeatmap) - return; + Schedule(() => + { + if (Beatmap.Value != beatmapManager.DefaultBeatmap) + return; - updateWorkingBeatmap(); - }); + updateWorkingBeatmap(); + }); + } private void onStart() { @@ -235,13 +241,5 @@ namespace osu.Game.Screens.Multi.Match break; } } - - protected override void Dispose(bool isDisposing) - { - base.Dispose(isDisposing); - - if (beatmapManager != null) - beatmapManager.ItemAdded -= beatmapAdded; - } } } diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs b/osu.Game/Screens/Select/BeatmapCarousel.cs index 96b779cd20..f23e1b1ef2 100644 --- a/osu.Game/Screens/Select/BeatmapCarousel.cs +++ b/osu.Game/Screens/Select/BeatmapCarousel.cs @@ -131,6 +131,11 @@ namespace osu.Game.Screens.Select private CarouselRoot root; + private IBindable> itemAdded; + private IBindable> itemRemoved; + private IBindable> itemHidden; + private IBindable> itemRestored; + public BeatmapCarousel() { root = new CarouselRoot(this); @@ -161,10 +166,14 @@ namespace osu.Game.Screens.Select RightClickScrollingEnabled.ValueChanged += enabled => scroll.RightMouseScrollbar = enabled.NewValue; RightClickScrollingEnabled.TriggerChange(); - beatmaps.ItemAdded += beatmapAdded; - beatmaps.ItemRemoved += beatmapRemoved; - beatmaps.BeatmapHidden += beatmapHidden; - beatmaps.BeatmapRestored += beatmapRestored; + itemAdded = beatmaps.ItemAdded.GetBoundCopy(); + itemAdded.BindValueChanged(beatmapAdded); + itemRemoved = beatmaps.ItemRemoved.GetBoundCopy(); + itemRemoved.BindValueChanged(beatmapRemoved); + itemHidden = beatmaps.BeatmapHidden.GetBoundCopy(); + itemHidden.BindValueChanged(beatmapHidden); + itemRestored = beatmaps.BeatmapRestored.GetBoundCopy(); + itemRestored.BindValueChanged(beatmapRestored); loadBeatmapSets(GetLoadableBeatmaps()); } @@ -562,26 +571,34 @@ namespace osu.Game.Screens.Select { base.Dispose(isDisposing); - if (beatmaps != null) - { - beatmaps.ItemAdded -= beatmapAdded; - beatmaps.ItemRemoved -= beatmapRemoved; - beatmaps.BeatmapHidden -= beatmapHidden; - beatmaps.BeatmapRestored -= beatmapRestored; - } - // aggressively dispose "off-screen" items to reduce GC pressure. foreach (var i in Items) i.Dispose(); } - private void beatmapRemoved(BeatmapSetInfo item) => RemoveBeatmapSet(item); + private void beatmapRemoved(ValueChangedEvent> weakItem) + { + if (weakItem.NewValue.TryGetTarget(out var item)) + RemoveBeatmapSet(item); + } - private void beatmapAdded(BeatmapSetInfo item) => UpdateBeatmapSet(item); + private void beatmapAdded(ValueChangedEvent> weakItem) + { + if (weakItem.NewValue.TryGetTarget(out var item)) + UpdateBeatmapSet(item); + } - private void beatmapRestored(BeatmapInfo b) => UpdateBeatmapSet(beatmaps.QueryBeatmapSet(s => s.ID == b.BeatmapSetInfoID)); + private void beatmapRestored(ValueChangedEvent> weakItem) + { + if (weakItem.NewValue.TryGetTarget(out var b)) + UpdateBeatmapSet(beatmaps.QueryBeatmapSet(s => s.ID == b.BeatmapSetInfoID)); + } - private void beatmapHidden(BeatmapInfo b) => UpdateBeatmapSet(beatmaps.QueryBeatmapSet(s => s.ID == b.BeatmapSetInfoID)); + private void beatmapHidden(ValueChangedEvent> weakItem) + { + if (weakItem.NewValue.TryGetTarget(out var b)) + UpdateBeatmapSet(beatmaps.QueryBeatmapSet(s => s.ID == b.BeatmapSetInfoID)); + } private CarouselBeatmapSet createCarouselSet(BeatmapSetInfo beatmapSet) { diff --git a/osu.Game/Screens/Select/Carousel/TopLocalRank.cs b/osu.Game/Screens/Select/Carousel/TopLocalRank.cs index e981550c84..aed25787b0 100644 --- a/osu.Game/Screens/Select/Carousel/TopLocalRank.cs +++ b/osu.Game/Screens/Select/Carousel/TopLocalRank.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using System.Linq; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -27,6 +28,9 @@ namespace osu.Game.Screens.Select.Carousel [Resolved] private IAPIProvider api { get; set; } + private IBindable> itemAdded; + private IBindable> itemRemoved; + public TopLocalRank(BeatmapInfo beatmap) : base(null) { @@ -36,17 +40,24 @@ namespace osu.Game.Screens.Select.Carousel [BackgroundDependencyLoader] private void load() { - scores.ItemAdded += scoreChanged; - scores.ItemRemoved += scoreChanged; + itemAdded = scores.ItemAdded.GetBoundCopy(); + itemAdded.BindValueChanged(scoreChanged); + + itemRemoved = scores.ItemRemoved.GetBoundCopy(); + itemRemoved.BindValueChanged(scoreChanged); + ruleset.ValueChanged += _ => fetchAndLoadTopScore(); fetchAndLoadTopScore(); } - private void scoreChanged(ScoreInfo score) + private void scoreChanged(ValueChangedEvent> weakScore) { - if (score.BeatmapInfoID == beatmap.ID) - fetchAndLoadTopScore(); + if (weakScore.NewValue.TryGetTarget(out var score)) + { + if (score.BeatmapInfoID == beatmap.ID) + fetchAndLoadTopScore(); + } } private ScheduledDelegate scheduledRankUpdate; @@ -75,16 +86,5 @@ namespace osu.Game.Screens.Select.Carousel .OrderByDescending(s => s.TotalScore) .FirstOrDefault(); } - - protected override void Dispose(bool isDisposing) - { - base.Dispose(isDisposing); - - if (scores != null) - { - scores.ItemAdded -= scoreChanged; - scores.ItemRemoved -= scoreChanged; - } - } } } diff --git a/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs b/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs index e36493c82f..8e85eb4eb2 100644 --- a/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs +++ b/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs @@ -60,6 +60,8 @@ namespace osu.Game.Screens.Select.Leaderboards private UserTopScoreContainer topScoreContainer; + private IBindable> itemRemoved; + /// /// Whether to apply the game's currently selected mods as a filter when retrieving scores. /// @@ -104,7 +106,8 @@ namespace osu.Game.Screens.Select.Leaderboards ScoreSelected = s => ScoreSelected?.Invoke(s) }); - scoreManager.ItemRemoved += onScoreRemoved; + itemRemoved = scoreManager.ItemRemoved.GetBoundCopy(); + itemRemoved.BindValueChanged(onScoreRemoved); } protected override void Reset() @@ -113,7 +116,7 @@ namespace osu.Game.Screens.Select.Leaderboards TopScore = null; } - private void onScoreRemoved(ScoreInfo score) => Schedule(RefreshScores); + private void onScoreRemoved(ValueChangedEvent> score) => Schedule(RefreshScores); protected override bool IsOnlineScope => Scope != BeatmapLeaderboardScope.Local; @@ -190,13 +193,5 @@ namespace osu.Game.Screens.Select.Leaderboards { Action = () => ScoreSelected?.Invoke(model) }; - - protected override void Dispose(bool isDisposing) - { - base.Dispose(isDisposing); - - if (scoreManager != null) - scoreManager.ItemRemoved -= onScoreRemoved; - } } } diff --git a/osu.Game/Skinning/SkinManager.cs b/osu.Game/Skinning/SkinManager.cs index 3d469ab6e1..d65c74ef62 100644 --- a/osu.Game/Skinning/SkinManager.cs +++ b/osu.Game/Skinning/SkinManager.cs @@ -43,12 +43,15 @@ namespace osu.Game.Skinning this.audio = audio; this.legacyDefaultResources = legacyDefaultResources; - ItemRemoved += removedInfo => + ItemRemoved.BindValueChanged(weakRemovedInfo => { - // check the removed skin is not the current user choice. if it is, switch back to default. - if (removedInfo.ID == CurrentSkinInfo.Value.ID) - CurrentSkinInfo.Value = SkinInfo.Default; - }; + if (weakRemovedInfo.NewValue.TryGetTarget(out var removedInfo)) + { + // check the removed skin is not the current user choice. if it is, switch back to default. + if (removedInfo.ID == CurrentSkinInfo.Value.ID) + CurrentSkinInfo.Value = SkinInfo.Default; + } + }); CurrentSkinInfo.ValueChanged += skin => CurrentSkin.Value = GetSkin(skin.NewValue); CurrentSkin.ValueChanged += skin => From db4e3047ddf02cb09a7603c68a0ab854e1cfe6b2 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 19 May 2020 23:28:13 +0900 Subject: [PATCH 197/213] Add test for final sample output --- .../TestSceneSampleOutput.cs | 47 +++++++++++++++++++ .../Objects/Drawables/DrawableHit.cs | 2 +- .../Drawables/DrawableTaikoHitObject.cs | 2 +- .../Objects/Drawables/DrawableHitObject.cs | 2 +- .../Tests/Beatmaps/BeatmapConversionTest.cs | 11 +++-- 5 files changed, 58 insertions(+), 6 deletions(-) create mode 100644 osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs diff --git a/osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs b/osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs new file mode 100644 index 0000000000..564ab91291 --- /dev/null +++ b/osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs @@ -0,0 +1,47 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.Linq; +using osu.Game.Audio; +using osu.Game.Beatmaps; +using osu.Game.Rulesets.Taiko.Objects.Drawables; +using osu.Game.Tests.Visual; + +namespace osu.Game.Rulesets.Taiko.Tests +{ + /// + /// Taiko has some interesting rules for legacy mappings. + /// + public class TestSceneSampleOutput : PlayerTestScene + { + public TestSceneSampleOutput() + : base(new TaikoRuleset()) + { + } + + public override void SetUpSteps() + { + base.SetUpSteps(); + AddAssert("has correct samples", () => + { + var names = Player.DrawableRuleset.Playfield.AllHitObjects.OfType().Select(h => string.Join(',', h.GetSamples().Select(s => s.Name))); + + var expected = new[] + { + string.Empty, + string.Empty, + string.Empty, + string.Empty, + HitSampleInfo.HIT_FINISH, + HitSampleInfo.HIT_WHISTLE, + HitSampleInfo.HIT_WHISTLE, + HitSampleInfo.HIT_WHISTLE, + }; + + return names.SequenceEqual(expected); + }); + } + + protected override IBeatmap CreateBeatmap(RulesetInfo ruleset) => new TaikoBeatmapConversionTest().GetBeatmap("sample-to-type-conversions"); + } +} diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs index 1e1f9ae09b..81b969eaf3 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs @@ -49,7 +49,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables ? new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.CentreHit), _ => new CentreHitCirclePiece(), confineMode: ConfineMode.ScaleToFit) : new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.RimHit), _ => new RimHitCirclePiece(), confineMode: ConfineMode.ScaleToFit); - protected override IEnumerable GetSamples() + public override IEnumerable GetSamples() { // normal and claps are always handled by the drum (see DrumSampleMapping). // in addition, whistles are excluded as they are an alternative rim marker. diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs index 90daf3950c..3ab09d4cbe 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableTaikoHitObject.cs @@ -166,7 +166,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables } // Most osu!taiko hitsounds are managed by the drum (see DrumSampleMapping). - protected override IEnumerable GetSamples() => Enumerable.Empty(); + public override IEnumerable GetSamples() => Enumerable.Empty(); protected abstract SkinnableDrawable CreateMainPiece(); diff --git a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs index ba6571fe1a..33ea02c22f 100644 --- a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs +++ b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs @@ -36,7 +36,7 @@ namespace osu.Game.Rulesets.Objects.Drawables protected SkinnableSound Samples { get; private set; } - protected virtual IEnumerable GetSamples() => HitObject.Samples; + public virtual IEnumerable GetSamples() => HitObject.Samples; private readonly Lazy> nestedHitObjects = new Lazy>(); public IReadOnlyList NestedHitObjects => nestedHitObjects.IsValueCreated ? nestedHitObjects.Value : (IReadOnlyList)Array.Empty(); diff --git a/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs b/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs index b60add6e3b..06e82394ec 100644 --- a/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs +++ b/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs @@ -99,7 +99,7 @@ namespace osu.Game.Tests.Beatmaps private ConvertResult convert(string name, Mod[] mods) { - var beatmap = getBeatmap(name); + var beatmap = GetBeatmap(name); var rulesetInstance = CreateRuleset(); beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.RulesetID == rulesetInstance.RulesetInfo.ID ? rulesetInstance.RulesetInfo : new RulesetInfo(); @@ -143,14 +143,19 @@ namespace osu.Game.Tests.Beatmaps } } - private IBeatmap getBeatmap(string name) + public IBeatmap GetBeatmap(string name) { using (var resStream = openResource($"{resource_namespace}.{name}.osu")) using (var stream = new LineBufferedReader(resStream)) { var decoder = Decoder.GetDecoder(stream); ((LegacyBeatmapDecoder)decoder).ApplyOffsets = false; - return decoder.Decode(stream); + var beatmap = decoder.Decode(stream); + + // not sure but seems to be required. + beatmap.BeatmapInfo.Ruleset = CreateRuleset().RulesetInfo; + + return beatmap; } } From e21178570484780c8467f47529ea407a6fd5e24c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Mon, 18 May 2020 21:01:13 +0200 Subject: [PATCH 198/213] Add overlay layer to storyboard definition --- osu.Game/Storyboards/Storyboard.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/osu.Game/Storyboards/Storyboard.cs b/osu.Game/Storyboards/Storyboard.cs index d13c874ee2..b0fb583d62 100644 --- a/osu.Game/Storyboards/Storyboard.cs +++ b/osu.Game/Storyboards/Storyboard.cs @@ -19,19 +19,26 @@ namespace osu.Game.Storyboards public double FirstEventTime => Layers.Min(l => l.Elements.FirstOrDefault()?.StartTime ?? 0); + /// + /// Depth of the currently front-most storyboard layer, excluding the overlay layer. + /// + private int minimumLayerDepth; + public Storyboard() { layers.Add("Video", new StoryboardLayer("Video", 4, false)); layers.Add("Background", new StoryboardLayer("Background", 3)); layers.Add("Fail", new StoryboardLayer("Fail", 2) { VisibleWhenPassing = false, }); layers.Add("Pass", new StoryboardLayer("Pass", 1) { VisibleWhenFailing = false, }); - layers.Add("Foreground", new StoryboardLayer("Foreground", 0)); + layers.Add("Foreground", new StoryboardLayer("Foreground", minimumLayerDepth = 0)); + + layers.Add("Overlay", new StoryboardLayer("Overlay", int.MinValue)); } public StoryboardLayer GetLayer(string name) { if (!layers.TryGetValue(name, out var layer)) - layers[name] = layer = new StoryboardLayer(name, layers.Values.Min(l => l.Depth) - 1); + layers[name] = layer = new StoryboardLayer(name, --minimumLayerDepth); return layer; } From 6e27247cdf7bc46b4317cbb98f3dfb5b20c769a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Mon, 18 May 2020 22:10:02 +0200 Subject: [PATCH 199/213] Adjust storyboard decoder test in line with changes --- .../Beatmaps/Formats/LegacyStoryboardDecoderTest.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/osu.Game.Tests/Beatmaps/Formats/LegacyStoryboardDecoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/LegacyStoryboardDecoderTest.cs index 2fdeadca02..9ebedb3c80 100644 --- a/osu.Game.Tests/Beatmaps/Formats/LegacyStoryboardDecoderTest.cs +++ b/osu.Game.Tests/Beatmaps/Formats/LegacyStoryboardDecoderTest.cs @@ -26,7 +26,7 @@ namespace osu.Game.Tests.Beatmaps.Formats var storyboard = decoder.Decode(stream); Assert.IsTrue(storyboard.HasDrawable); - Assert.AreEqual(5, storyboard.Layers.Count()); + Assert.AreEqual(6, storyboard.Layers.Count()); StoryboardLayer background = storyboard.Layers.FirstOrDefault(l => l.Depth == 3); Assert.IsNotNull(background); @@ -56,6 +56,13 @@ namespace osu.Game.Tests.Beatmaps.Formats Assert.IsTrue(foreground.VisibleWhenPassing); Assert.AreEqual("Foreground", foreground.Name); + StoryboardLayer overlay = storyboard.Layers.FirstOrDefault(l => l.Depth == int.MinValue); + Assert.IsNotNull(overlay); + Assert.IsEmpty(overlay.Elements); + Assert.IsTrue(overlay.VisibleWhenFailing); + Assert.IsTrue(overlay.VisibleWhenPassing); + Assert.AreEqual("Overlay", overlay.Name); + int spriteCount = background.Elements.Count(x => x.GetType() == typeof(StoryboardSprite)); int animationCount = background.Elements.Count(x => x.GetType() == typeof(StoryboardAnimation)); int sampleCount = background.Elements.Count(x => x.GetType() == typeof(StoryboardSampleInfo)); From 2398f2e537e8375b63f0de39b637751c1cbaca96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Mon, 18 May 2020 21:12:14 +0200 Subject: [PATCH 200/213] Expose drawable overlay layer --- osu.Game/Storyboards/Drawables/DrawableStoryboard.cs | 3 +++ osu.Game/Storyboards/StoryboardLayer.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/osu.Game/Storyboards/Drawables/DrawableStoryboard.cs b/osu.Game/Storyboards/Drawables/DrawableStoryboard.cs index c4d796e30b..ec461fa095 100644 --- a/osu.Game/Storyboards/Drawables/DrawableStoryboard.cs +++ b/osu.Game/Storyboards/Drawables/DrawableStoryboard.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System.Linq; using System.Threading; using osuTK; using osu.Framework.Allocation; @@ -72,6 +73,8 @@ namespace osu.Game.Storyboards.Drawables } } + public DrawableStoryboardLayer OverlayLayer => Children.Single(layer => layer.Name == "Overlay"); + private void updateLayerVisibility() { foreach (var layer in Children) diff --git a/osu.Game/Storyboards/StoryboardLayer.cs b/osu.Game/Storyboards/StoryboardLayer.cs index 142bc60deb..1cde7cf67a 100644 --- a/osu.Game/Storyboards/StoryboardLayer.cs +++ b/osu.Game/Storyboards/StoryboardLayer.cs @@ -33,6 +33,6 @@ namespace osu.Game.Storyboards } public DrawableStoryboardLayer CreateDrawable() - => new DrawableStoryboardLayer(this) { Depth = Depth, }; + => new DrawableStoryboardLayer(this) { Depth = Depth, Name = Name }; } } From ce4301c5b8a5a36dafb4dac54d04c4eb49920b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Tue, 19 May 2020 19:47:01 +0200 Subject: [PATCH 201/213] Add overlay layer to player by proxying --- osu.Game/Screens/Play/DimmableStoryboard.cs | 15 +++++++++++++-- osu.Game/Screens/Play/Player.cs | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Play/DimmableStoryboard.cs b/osu.Game/Screens/Play/DimmableStoryboard.cs index eabdee95fb..74c84f648c 100644 --- a/osu.Game/Screens/Play/DimmableStoryboard.cs +++ b/osu.Game/Screens/Play/DimmableStoryboard.cs @@ -2,6 +2,7 @@ // See the LICENCE file in the repository root for full licence text. using osu.Framework.Allocation; +using osu.Framework.Graphics.Containers; using osu.Game.Graphics.Containers; using osu.Game.Storyboards; using osu.Game.Storyboards.Drawables; @@ -13,6 +14,8 @@ namespace osu.Game.Screens.Play /// public class DimmableStoryboard : UserDimContainer { + public Container OverlayLayerContainer; + private readonly Storyboard storyboard; private DrawableStoryboard drawableStoryboard; @@ -24,6 +27,8 @@ namespace osu.Game.Screens.Play [BackgroundDependencyLoader] private void load() { + Add(OverlayLayerContainer = new Container()); + initializeStoryboard(false); } @@ -46,9 +51,15 @@ namespace osu.Game.Screens.Play drawableStoryboard = storyboard.CreateDrawable(); if (async) - LoadComponentAsync(drawableStoryboard, Add); + LoadComponentAsync(drawableStoryboard, onStoryboardCreated); else - Add(drawableStoryboard); + onStoryboardCreated(drawableStoryboard); + } + + private void onStoryboardCreated(DrawableStoryboard storyboard) + { + Add(storyboard); + OverlayLayerContainer.Add(storyboard.OverlayLayer.CreateProxy()); } } } diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index 1ec3a69b24..77da038ab3 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -264,6 +264,7 @@ namespace osu.Game.Screens.Play { target.AddRange(new[] { + DimmableStoryboard.OverlayLayerContainer.CreateProxy(), BreakOverlay = new BreakOverlay(working.Beatmap.BeatmapInfo.LetterboxInBreaks, ScoreProcessor) { Clock = DrawableRuleset.FrameStableClock, From 963806474148d80ddc706e0f47f8bf5d8a22e6a9 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 20 May 2020 10:06:23 +0900 Subject: [PATCH 202/213] Tidy up ruleset assignment code --- osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs b/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs index 06e82394ec..6ada632850 100644 --- a/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs +++ b/osu.Game/Tests/Beatmaps/BeatmapConversionTest.cs @@ -101,9 +101,6 @@ namespace osu.Game.Tests.Beatmaps { var beatmap = GetBeatmap(name); - var rulesetInstance = CreateRuleset(); - beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.RulesetID == rulesetInstance.RulesetInfo.ID ? rulesetInstance.RulesetInfo : new RulesetInfo(); - var converterResult = new Dictionary>(); var working = new ConversionWorkingBeatmap(beatmap) @@ -115,7 +112,7 @@ namespace osu.Game.Tests.Beatmaps } }; - working.GetPlayableBeatmap(rulesetInstance.RulesetInfo, mods); + working.GetPlayableBeatmap(CreateRuleset().RulesetInfo, mods); return new ConvertResult { @@ -152,8 +149,8 @@ namespace osu.Game.Tests.Beatmaps ((LegacyBeatmapDecoder)decoder).ApplyOffsets = false; var beatmap = decoder.Decode(stream); - // not sure but seems to be required. - beatmap.BeatmapInfo.Ruleset = CreateRuleset().RulesetInfo; + var rulesetInstance = CreateRuleset(); + beatmap.BeatmapInfo.Ruleset = beatmap.BeatmapInfo.RulesetID == rulesetInstance.RulesetInfo.ID ? rulesetInstance.RulesetInfo : new RulesetInfo(); return beatmap; } From 76080368e900f2b866f46235eebff0f7bda19a6d Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 20 May 2020 10:14:08 +0900 Subject: [PATCH 203/213] Mark test as headless --- osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs b/osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs index 564ab91291..d541aa8de8 100644 --- a/osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs +++ b/osu.Game.Rulesets.Taiko.Tests/TestSceneSampleOutput.cs @@ -2,6 +2,7 @@ // See the LICENCE file in the repository root for full licence text. using System.Linq; +using osu.Framework.Testing; using osu.Game.Audio; using osu.Game.Beatmaps; using osu.Game.Rulesets.Taiko.Objects.Drawables; @@ -12,6 +13,7 @@ namespace osu.Game.Rulesets.Taiko.Tests /// /// Taiko has some interesting rules for legacy mappings. /// + [HeadlessTest] public class TestSceneSampleOutput : PlayerTestScene { public TestSceneSampleOutput() From 85088c9b3baa96ece3ad5a1404585eeb23e5c8bb Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Wed, 20 May 2020 15:08:33 +0900 Subject: [PATCH 204/213] Privatise setter --- osu.Game/Screens/Play/DimmableStoryboard.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Screens/Play/DimmableStoryboard.cs b/osu.Game/Screens/Play/DimmableStoryboard.cs index 74c84f648c..58eb95b7c6 100644 --- a/osu.Game/Screens/Play/DimmableStoryboard.cs +++ b/osu.Game/Screens/Play/DimmableStoryboard.cs @@ -14,7 +14,7 @@ namespace osu.Game.Screens.Play /// public class DimmableStoryboard : UserDimContainer { - public Container OverlayLayerContainer; + public Container OverlayLayerContainer { get; private set; } private readonly Storyboard storyboard; private DrawableStoryboard drawableStoryboard; From c2697d39070d73ffbb2b7894a57088a85df2e127 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 20 May 2020 20:49:01 +0900 Subject: [PATCH 205/213] Use DrawableSample in SkinnableSound class --- .../Objects/Drawables/DrawableHitObject.cs | 11 ++- osu.Game/Skinning/SkinnableSound.cs | 72 +++++++------------ 2 files changed, 32 insertions(+), 51 deletions(-) diff --git a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs index 33ea02c22f..c32d4e441e 100644 --- a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs +++ b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs @@ -11,7 +11,6 @@ using osu.Framework.Extensions.TypeExtensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Primitives; using osu.Framework.Threading; -using osu.Framework.Audio; using osu.Game.Audio; using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects.Types; @@ -96,8 +95,6 @@ namespace osu.Game.Rulesets.Objects.Drawables /// protected virtual float SamplePlaybackPosition => 0.5f; - private readonly BindableDouble balanceAdjust = new BindableDouble(); - private BindableList samplesBindable; private Bindable startTimeBindable; private Bindable userPositionalHitSounds; @@ -173,7 +170,6 @@ namespace osu.Game.Rulesets.Objects.Drawables } Samples = new SkinnableSound(samples.Select(s => HitObject.SampleControlPoint.ApplyTo(s))); - Samples.AddAdjustment(AdjustableProperty.Balance, balanceAdjust); AddInternal(Samples); } @@ -360,8 +356,11 @@ namespace osu.Game.Rulesets.Objects.Drawables { const float balance_adjust_amount = 0.4f; - balanceAdjust.Value = balance_adjust_amount * (userPositionalHitSounds.Value ? SamplePlaybackPosition - 0.5f : 0); - Samples?.Play(); + if (Samples != null) + { + Samples.Balance.Value = balance_adjust_amount * (userPositionalHitSounds.Value ? SamplePlaybackPosition - 0.5f : 0); + Samples.Play(); + } } protected override void Update() diff --git a/osu.Game/Skinning/SkinnableSound.cs b/osu.Game/Skinning/SkinnableSound.cs index a78c04ecd4..30320c89a6 100644 --- a/osu.Game/Skinning/SkinnableSound.cs +++ b/osu.Game/Skinning/SkinnableSound.cs @@ -4,11 +4,11 @@ using System.Collections.Generic; using System.Linq; using osu.Framework.Allocation; -using osu.Framework.Audio; -using osu.Framework.Audio.Sample; using osu.Framework.Audio.Track; using osu.Framework.Bindables; using osu.Framework.Extensions.IEnumerableExtensions; +using osu.Framework.Graphics.Audio; +using osu.Framework.Graphics.Containers; using osu.Game.Audio; namespace osu.Game.Skinning @@ -17,25 +17,32 @@ namespace osu.Game.Skinning { private readonly ISampleInfo[] hitSamples; - private List<(AdjustableProperty property, BindableDouble bindable)> adjustments; - - private SampleChannel[] channels; - [Resolved] private ISampleStore samples { get; set; } + public SkinnableSound(ISampleInfo hitSamples) + : this(new[] { hitSamples }) + { + } + public SkinnableSound(IEnumerable hitSamples) { this.hitSamples = hitSamples.ToArray(); - } - - public SkinnableSound(ISampleInfo hitSamples) - { - this.hitSamples = new[] { hitSamples }; + InternalChild = samplesContainer = new AudioContainer(); } private bool looping; + private readonly AudioContainer samplesContainer; + + public BindableNumber Volume => samplesContainer.Volume; + + public BindableNumber Balance => samplesContainer.Balance; + + public BindableNumber Frequency => samplesContainer.Frequency; + + public BindableNumber Tempo => samplesContainer.Tempo; + public bool Looping { get => looping; @@ -45,33 +52,23 @@ namespace osu.Game.Skinning looping = value; - channels?.ForEach(c => c.Looping = looping); + samplesContainer.ForEach(c => c.Looping = looping); } } - public void Play() => channels?.ForEach(c => c.Play()); - - public void Stop() => channels?.ForEach(c => c.Stop()); - - public void AddAdjustment(AdjustableProperty type, BindableDouble adjustBindable) + public void Play() => samplesContainer.ForEach(c => { - if (adjustments == null) adjustments = new List<(AdjustableProperty, BindableDouble)>(); + if (c.AggregateVolume.Value > 0) + c.Play(); + }); - adjustments.Add((type, adjustBindable)); - channels?.ForEach(c => c.AddAdjustment(type, adjustBindable)); - } - - public void RemoveAdjustment(AdjustableProperty type, BindableDouble adjustBindable) - { - adjustments?.Remove((type, adjustBindable)); - channels?.ForEach(c => c.RemoveAdjustment(type, adjustBindable)); - } + public void Stop() => samplesContainer.ForEach(c => c.Stop()); public override bool IsPresent => Scheduler.HasPendingTasks; protected override void SkinChanged(ISkinSource skin, bool allowFallback) { - channels = hitSamples.Select(s => + var channels = hitSamples.Select(s => { var ch = skin.GetSample(s); @@ -88,27 +85,12 @@ namespace osu.Game.Skinning { ch.Looping = looping; ch.Volume.Value = s.Volume / 100.0; - - if (adjustments != null) - { - foreach (var (property, bindable) in adjustments) - ch.AddAdjustment(property, bindable); - } } return ch; - }).Where(c => c != null).ToArray(); - } + }).Where(c => c != null); - protected override void Dispose(bool isDisposing) - { - base.Dispose(isDisposing); - - if (channels != null) - { - foreach (var c in channels) - c.Dispose(); - } + samplesContainer.ChildrenEnumerable = channels.Select(c => new DrawableSample(c)); } } } From b5a7023312d72670a155b6435354cccd817aa748 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 20 May 2020 21:46:52 +0900 Subject: [PATCH 206/213] Seek to start time after placement, not end --- osu.Game/Rulesets/Edit/HitObjectComposer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Rulesets/Edit/HitObjectComposer.cs b/osu.Game/Rulesets/Edit/HitObjectComposer.cs index 883288d6d7..10dffc6aa8 100644 --- a/osu.Game/Rulesets/Edit/HitObjectComposer.cs +++ b/osu.Game/Rulesets/Edit/HitObjectComposer.cs @@ -257,7 +257,7 @@ namespace osu.Game.Rulesets.Edit { EditorBeatmap.Add(hitObject); - adjustableClock.Seek(hitObject.GetEndTime()); + adjustableClock.Seek(hitObject.StartTime); } showGridFor(Enumerable.Empty()); From e09a1bf546d7bdd12cdd5670c2d0b2398c8242a8 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 20 May 2020 21:50:52 +0900 Subject: [PATCH 207/213] Only seek forwards if not already beyond the placed object --- osu.Game/Rulesets/Edit/HitObjectComposer.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game/Rulesets/Edit/HitObjectComposer.cs b/osu.Game/Rulesets/Edit/HitObjectComposer.cs index 10dffc6aa8..67216b019d 100644 --- a/osu.Game/Rulesets/Edit/HitObjectComposer.cs +++ b/osu.Game/Rulesets/Edit/HitObjectComposer.cs @@ -257,7 +257,8 @@ namespace osu.Game.Rulesets.Edit { EditorBeatmap.Add(hitObject); - adjustableClock.Seek(hitObject.StartTime); + if (adjustableClock.CurrentTime < hitObject.StartTime) + adjustableClock.Seek(hitObject.StartTime); } showGridFor(Enumerable.Empty()); From ce223a2bd84c6362fd1f78aa6bef4feadc8bacb8 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 21 May 2020 10:58:30 +0900 Subject: [PATCH 208/213] Silence hit sounds while seeking --- .../Objects/Drawables/DrawableHitObject.cs | 6 ++++- .../Rulesets/UI/FrameStabilityContainer.cs | 22 +++++++++++++++---- osu.Game/Screens/Play/GameplayClock.cs | 5 +++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs index c32d4e441e..d594909cda 100644 --- a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs +++ b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs @@ -17,6 +17,7 @@ using osu.Game.Rulesets.Objects.Types; using osu.Game.Rulesets.Scoring; using osu.Game.Skinning; using osu.Game.Configuration; +using osu.Game.Screens.Play; using osuTK.Graphics; namespace osu.Game.Rulesets.Objects.Drawables @@ -348,6 +349,9 @@ namespace osu.Game.Rulesets.Objects.Drawables { } + [Resolved(canBeNull: true)] + private GameplayClock gameplayClock { get; set; } + /// /// Plays all the hit sounds for this . /// This is invoked automatically when this is hit. @@ -356,7 +360,7 @@ namespace osu.Game.Rulesets.Objects.Drawables { const float balance_adjust_amount = 0.4f; - if (Samples != null) + if (Samples != null && gameplayClock?.IsSeeking != true) { Samples.Balance.Value = balance_adjust_amount * (userPositionalHitSounds.Value ? SamplePlaybackPosition - 0.5f : 0); Samples.Play(); diff --git a/osu.Game/Rulesets/UI/FrameStabilityContainer.cs b/osu.Game/Rulesets/UI/FrameStabilityContainer.cs index 3ba28aad45..bc9401a095 100644 --- a/osu.Game/Rulesets/UI/FrameStabilityContainer.cs +++ b/osu.Game/Rulesets/UI/FrameStabilityContainer.cs @@ -29,14 +29,16 @@ namespace osu.Game.Rulesets.UI /// internal bool FrameStablePlayback = true; - [Cached] - public GameplayClock GameplayClock { get; } + public GameplayClock GameplayClock => stabilityGameplayClock; + + [Cached(typeof(GameplayClock))] + private readonly StabilityGameplayClock stabilityGameplayClock; public FrameStabilityContainer(double gameplayStartTime = double.MinValue) { RelativeSizeAxes = Axes.Both; - GameplayClock = new GameplayClock(framedClock = new FramedClock(manualClock = new ManualClock())); + stabilityGameplayClock = new StabilityGameplayClock(framedClock = new FramedClock(manualClock = new ManualClock())); this.gameplayStartTime = gameplayStartTime; } @@ -57,7 +59,7 @@ namespace osu.Game.Rulesets.UI { if (clock != null) { - parentGameplayClock = clock; + stabilityGameplayClock.ParentGameplayClock = parentGameplayClock = clock; GameplayClock.IsPaused.BindTo(clock.IsPaused); } } @@ -187,5 +189,17 @@ namespace osu.Game.Rulesets.UI } public ReplayInputHandler ReplayInputHandler { get; set; } + + private class StabilityGameplayClock : GameplayClock + { + public IFrameBasedClock ParentGameplayClock; + + public StabilityGameplayClock(FramedClock underlyingClock) + : base(underlyingClock) + { + } + + public override bool IsSeeking => ParentGameplayClock != null && Math.Abs(CurrentTime - ParentGameplayClock.CurrentTime) > 200; + } } } diff --git a/osu.Game/Screens/Play/GameplayClock.cs b/osu.Game/Screens/Play/GameplayClock.cs index d5f75f6ad1..4f2cf5005c 100644 --- a/osu.Game/Screens/Play/GameplayClock.cs +++ b/osu.Game/Screens/Play/GameplayClock.cs @@ -31,6 +31,11 @@ namespace osu.Game.Screens.Play public bool IsRunning => underlyingClock.IsRunning; + /// + /// Whether an ongoing seek operation is active. + /// + public virtual bool IsSeeking => false; + public void ProcessFrame() { // we do not want to process the underlying clock. From c0e68f98540303aa02932718d1d96f2bf8a94c20 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 21 May 2020 10:59:30 +0900 Subject: [PATCH 209/213] Also support taiko drum --- osu.Game.Rulesets.Taiko/UI/InputDrum.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/InputDrum.cs b/osu.Game.Rulesets.Taiko/UI/InputDrum.cs index 38026517d9..06ccd45cb8 100644 --- a/osu.Game.Rulesets.Taiko/UI/InputDrum.cs +++ b/osu.Game.Rulesets.Taiko/UI/InputDrum.cs @@ -12,6 +12,7 @@ using osu.Framework.Input.Bindings; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics; using osu.Game.Rulesets.Taiko.Audio; +using osu.Game.Screens.Play; using osu.Game.Skinning; namespace osu.Game.Rulesets.Taiko.UI @@ -145,6 +146,9 @@ namespace osu.Game.Rulesets.Taiko.UI centreHit.Colour = colours.Pink; } + [Resolved(canBeNull: true)] + private GameplayClock gameplayClock { get; set; } + public bool OnPressed(TaikoAction action) { Drawable target = null; @@ -157,14 +161,16 @@ namespace osu.Game.Rulesets.Taiko.UI target = centreHit; back = centre; - drumSample.Centre?.Play(); + if (gameplayClock?.IsSeeking != true) + drumSample.Centre?.Play(); } else if (action == RimAction) { target = rimHit; back = rim; - drumSample.Rim?.Play(); + if (gameplayClock?.IsSeeking != true) + drumSample.Rim?.Play(); } if (target != null) From 8702a1b5a57ba9a70657b244eaec33797727caf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 21 May 2020 20:10:51 +0200 Subject: [PATCH 210/213] Fix test scene regression --- .../Visual/Gameplay/TestSceneScrollingHitObjects.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs index 0d15e495e3..20b040dbc3 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs @@ -16,6 +16,7 @@ using osu.Game.Configuration; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Drawables; +using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Timing; using osu.Game.Rulesets.UI.Scrolling; using osuTK; @@ -221,7 +222,7 @@ namespace osu.Game.Tests.Visual.Gameplay private class TestDrawableControlPoint : DrawableHitObject { public TestDrawableControlPoint(ScrollingDirection direction, double time) - : base(new HitObject { StartTime = time }) + : base(new HitObject { StartTime = time, HitWindows = HitWindows.Empty }) { Origin = Anchor.Centre; @@ -252,7 +253,7 @@ namespace osu.Game.Tests.Visual.Gameplay private class TestDrawableHitObject : DrawableHitObject { public TestDrawableHitObject(double time) - : base(new HitObject { StartTime = time }) + : base(new HitObject { StartTime = time, HitWindows = HitWindows.Empty }) { Origin = Anchor.Custom; OriginPosition = new Vector2(75 / 4.0f); From 24d898c87031a62b21c98812e0ff2939392f7d5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 21 May 2020 21:35:12 +0200 Subject: [PATCH 211/213] Demonstrate failure case in visual test scene --- .../Gameplay/TestSceneScrollingHitObjects.cs | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs index 20b040dbc3..2f15e549f7 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs @@ -78,19 +78,18 @@ namespace osu.Game.Tests.Visual.Gameplay } }; - setUpHitObjects(); + hitObjectSpawnDelegate?.Cancel(); }); - private void setUpHitObjects() + private void setUpHitObjects() => AddStep("set up hit objects", () => { scrollContainers.ForEach(c => c.ControlPoints.Add(new MultiplierControlPoint(0))); for (int i = spawn_rate / 2; i <= time_range; i += spawn_rate) addHitObject(Time.Current + i); - hitObjectSpawnDelegate?.Cancel(); hitObjectSpawnDelegate = Scheduler.AddDelayed(() => addHitObject(Time.Current + time_range), spawn_rate, true); - } + }); private IList testControlPoints => new List { @@ -102,6 +101,8 @@ namespace osu.Game.Tests.Visual.Gameplay [Test] public void TestScrollAlgorithms() { + setUpHitObjects(); + AddStep("constant scroll", () => setScrollAlgorithm(ScrollVisualisationMethod.Constant)); AddStep("overlapping scroll", () => setScrollAlgorithm(ScrollVisualisationMethod.Overlapping)); AddStep("sequential scroll", () => setScrollAlgorithm(ScrollVisualisationMethod.Sequential)); @@ -114,6 +115,8 @@ namespace osu.Game.Tests.Visual.Gameplay [Test] public void TestConstantScrollLifetime() { + setUpHitObjects(); + AddStep("set constant scroll", () => setScrollAlgorithm(ScrollVisualisationMethod.Constant)); // scroll container time range must be less than the rate of spawning hitobjects // otherwise the hitobjects will spawn already partly visible on screen and look wrong @@ -123,14 +126,40 @@ namespace osu.Game.Tests.Visual.Gameplay [Test] public void TestSequentialScrollLifetime() { + setUpHitObjects(); + AddStep("set sequential scroll", () => setScrollAlgorithm(ScrollVisualisationMethod.Sequential)); AddStep("set time range", () => scrollContainers.ForEach(c => c.TimeRange = time_range / 2.0)); AddStep("add control points", () => addControlPoints(testControlPoints, Time.Current)); } + [Test] + public void TestSlowSequentialScroll() + { + AddStep("set sequential scroll", () => setScrollAlgorithm(ScrollVisualisationMethod.Sequential)); + AddStep("set time range", () => scrollContainers.ForEach(c => c.TimeRange = time_range)); + AddStep("add control points", () => addControlPoints( + new List + { + new MultiplierControlPoint { Velocity = 0.1 } + }, + Time.Current + time_range)); + + // All of the hit objects added below should be immediately visible on screen + AddStep("add hit objects", () => + { + for (int i = 0; i < 20; ++i) + { + addHitObject(Time.Current + time_range * (2 + 0.1 * i)); + } + }); + } + [Test] public void TestOverlappingScrollLifetime() { + setUpHitObjects(); + AddStep("set overlapping scroll", () => setScrollAlgorithm(ScrollVisualisationMethod.Overlapping)); AddStep("set time range", () => scrollContainers.ForEach(c => c.TimeRange = time_range / 2.0)); AddStep("add control points", () => addControlPoints(testControlPoints, Time.Current)); From 4299bd05b4ca268e192a4f4d469f69bed4c6415b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 21 May 2020 21:39:15 +0200 Subject: [PATCH 212/213] Add test cases for sequential scroll algorithm --- .../ScrollAlgorithms/SequentialScrollTest.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/osu.Game.Tests/ScrollAlgorithms/SequentialScrollTest.cs b/osu.Game.Tests/ScrollAlgorithms/SequentialScrollTest.cs index 1f0c069f8d..bd578dcbc4 100644 --- a/osu.Game.Tests/ScrollAlgorithms/SequentialScrollTest.cs +++ b/osu.Game.Tests/ScrollAlgorithms/SequentialScrollTest.cs @@ -29,8 +29,22 @@ namespace osu.Game.Tests.ScrollAlgorithms [Test] public void TestDisplayStartTime() { - // Sequential scroll algorithm approximates the start time - // This should be fixed in the future + // easy cases - time range adjusted for velocity fits within control point duration + Assert.AreEqual(2500, algorithm.GetDisplayStartTime(5000, 0, 2500, 1)); // 5000 - (2500 / 1) + Assert.AreEqual(13750, algorithm.GetDisplayStartTime(15000, 0, 2500, 1)); // 15000 - (2500 / 2) + Assert.AreEqual(20000, algorithm.GetDisplayStartTime(25000, 0, 2500, 1)); // 25000 - (2500 / 0.5) + + // hard case - time range adjusted for velocity exceeds control point duration + + // 1st multiplier point takes 10000 / 2500 = 4 scroll lengths + // 2nd multiplier point takes 10000 / (2500 / 2) = 8 scroll lengths + // 3rd multiplier point takes 2500 / (2500 * 2) = 0.5 scroll lengths up to hitobject start + + // absolute position of the hitobject = 1000 * (4 + 8 + 0.5) = 12500 + // minus one scroll length allowance = 12500 - 1000 = 11500 = 11.5 [scroll lengths] + // therefore the start time lies within the second multiplier point (because 11.5 < 4 + 8) + // its exact time position is = 10000 + 7.5 * (2500 / 2) = 19375 + Assert.AreEqual(19375, algorithm.GetDisplayStartTime(22500, 0, 2500, 1000)); } [Test] From 6f388b731ee97aedebc375370b429539cf8946d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 21 May 2020 21:41:56 +0200 Subject: [PATCH 213/213] Fix display start time in sequential scroll algorithm --- .../UI/Scrolling/Algorithms/SequentialScrollAlgorithm.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/osu.Game/Rulesets/UI/Scrolling/Algorithms/SequentialScrollAlgorithm.cs b/osu.Game/Rulesets/UI/Scrolling/Algorithms/SequentialScrollAlgorithm.cs index 41f9ebdb82..0052c877f6 100644 --- a/osu.Game/Rulesets/UI/Scrolling/Algorithms/SequentialScrollAlgorithm.cs +++ b/osu.Game/Rulesets/UI/Scrolling/Algorithms/SequentialScrollAlgorithm.cs @@ -22,8 +22,7 @@ namespace osu.Game.Rulesets.UI.Scrolling.Algorithms public double GetDisplayStartTime(double originTime, float offset, double timeRange, float scrollLength) { - double adjustedTime = TimeAt(-offset, originTime, timeRange, scrollLength); - return adjustedTime - timeRange - 1000; + return TimeAt(-(scrollLength + offset), originTime, timeRange, scrollLength); } public float GetLength(double startTime, double endTime, double timeRange, float scrollLength) @@ -105,7 +107,8 @@ namespace osu.Game.Screens.Play button.Action = () => RequestSkip?.Invoke(); displayTime = gameplayClock.CurrentTime; - Show(); + if (!Disabled) + Show(); } protected override void PopIn() => this.FadeIn(fade_time); @@ -121,7 +124,7 @@ namespace osu.Game.Screens.Play remainingTimeBox.Width = (float)Interpolation.Lerp(remainingTimeBox.Width, progress, Math.Clamp(Time.Elapsed / 40, 0, 1)); button.Enabled.Value = progress > 0; - State.Value = progress > 0 ? Visibility.Visible : Visibility.Hidden; + State.Value = progress > 0 && !Disabled ? Visibility.Visible : Visibility.Hidden; } protected override bool OnMouseMove(MouseMoveEvent e) From bbf4c687a8b155499cf50634ce545888f3ee0770 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 11:09:17 +0900 Subject: [PATCH 115/213] Improve xmldoc --- osu.Game/OsuGame.cs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index 6e202b6315..7ecd7851d7 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -768,18 +768,19 @@ namespace osu.Game private Task asyncLoadStream; /// - /// Schedules loading the provided in a single file. + /// Queues loading the provided component in sequential fashion. + /// This operation is limited to a single thread to avoid saturating all cores. /// - /// The component to load. - /// The method to invoke for adding the component. + /// The component to load. + /// An action to invoke on load completion (generally to add the component to the hierarchy). /// Whether to cache the component as type into the game dependencies before any scheduling. - private T loadComponentSingleFile(T d, Action add, bool cache = false) + private T loadComponentSingleFile(T component, Action loadCompleteAction, bool cache = false) where T : Drawable { if (cache) - dependencies.CacheAs(d); + dependencies.CacheAs(component); - if (d is OverlayContainer overlay) + if (component is OverlayContainer overlay) overlays.Add(overlay); // schedule is here to ensure that all component loads are done after LoadComplete is run (and thus all dependencies are cached). @@ -797,12 +798,12 @@ namespace osu.Game try { - Logger.Log($"Loading {d}...", level: LogLevel.Debug); + Logger.Log($"Loading {component}...", level: LogLevel.Debug); // Since this is running in a separate thread, it is possible for OsuGame to be disposed after LoadComponentAsync has been called // throwing an exception. To avoid this, the call is scheduled on the update thread, which does not run if IsDisposed = true Task task = null; - var del = new ScheduledDelegate(() => task = LoadComponentAsync(d, add)); + var del = new ScheduledDelegate(() => task = LoadComponentAsync(component, loadCompleteAction)); Scheduler.Add(del); // The delegate won't complete if OsuGame has been disposed in the meantime @@ -817,7 +818,7 @@ namespace osu.Game await task; - Logger.Log($"Loaded {d}!", level: LogLevel.Debug); + Logger.Log($"Loaded {component}!", level: LogLevel.Debug); } catch (OperationCanceledException) { @@ -825,7 +826,7 @@ namespace osu.Game }); }); - return d; + return component; } protected override bool OnScroll(ScrollEvent e) From 78f1b230e924b7065d629919f7b2ac0c42dcdc47 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Wed, 13 May 2020 14:43:50 +0900 Subject: [PATCH 116/213] Disable right-click placement in the mania editor --- .../Edit/Blueprints/HoldNotePlacementBlueprint.cs | 4 ++++ .../Edit/Blueprints/ManiaPlacementBlueprint.cs | 4 ++++ .../Edit/Blueprints/NotePlacementBlueprint.cs | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/osu.Game.Rulesets.Mania/Edit/Blueprints/HoldNotePlacementBlueprint.cs b/osu.Game.Rulesets.Mania/Edit/Blueprints/HoldNotePlacementBlueprint.cs index b3dd392202..c63e30e98a 100644 --- a/osu.Game.Rulesets.Mania/Edit/Blueprints/HoldNotePlacementBlueprint.cs +++ b/osu.Game.Rulesets.Mania/Edit/Blueprints/HoldNotePlacementBlueprint.cs @@ -7,6 +7,7 @@ using osu.Framework.Input.Events; using osu.Game.Rulesets.Mania.Edit.Blueprints.Components; using osu.Game.Rulesets.Mania.Objects; using osuTK; +using osuTK.Input; namespace osu.Game.Rulesets.Mania.Edit.Blueprints { @@ -49,6 +50,9 @@ namespace osu.Game.Rulesets.Mania.Edit.Blueprints protected override void OnMouseUp(MouseUpEvent e) { + if (e.Button != MouseButton.Left) + return; + base.OnMouseUp(e); EndPlacement(true); } diff --git a/osu.Game.Rulesets.Mania/Edit/Blueprints/ManiaPlacementBlueprint.cs b/osu.Game.Rulesets.Mania/Edit/Blueprints/ManiaPlacementBlueprint.cs index 400abb6380..3fb03d642f 100644 --- a/osu.Game.Rulesets.Mania/Edit/Blueprints/ManiaPlacementBlueprint.cs +++ b/osu.Game.Rulesets.Mania/Edit/Blueprints/ManiaPlacementBlueprint.cs @@ -11,6 +11,7 @@ using osu.Game.Rulesets.Mania.Objects.Drawables.Pieces; using osu.Game.Rulesets.Mania.UI; using osu.Game.Rulesets.UI.Scrolling; using osuTK; +using osuTK.Input; namespace osu.Game.Rulesets.Mania.Edit.Blueprints { @@ -46,6 +47,9 @@ namespace osu.Game.Rulesets.Mania.Edit.Blueprints protected override bool OnMouseDown(MouseDownEvent e) { + if (e.Button != MouseButton.Left) + return false; + if (Column == null) return base.OnMouseDown(e); diff --git a/osu.Game.Rulesets.Mania/Edit/Blueprints/NotePlacementBlueprint.cs b/osu.Game.Rulesets.Mania/Edit/Blueprints/NotePlacementBlueprint.cs index 2b7b383dbe..a4c0791253 100644 --- a/osu.Game.Rulesets.Mania/Edit/Blueprints/NotePlacementBlueprint.cs +++ b/osu.Game.Rulesets.Mania/Edit/Blueprints/NotePlacementBlueprint.cs @@ -5,6 +5,7 @@ using osu.Framework.Graphics; using osu.Framework.Input.Events; using osu.Game.Rulesets.Mania.Edit.Blueprints.Components; using osu.Game.Rulesets.Mania.Objects; +using osuTK.Input; namespace osu.Game.Rulesets.Mania.Edit.Blueprints { @@ -30,6 +31,9 @@ namespace osu.Game.Rulesets.Mania.Edit.Blueprints protected override bool OnMouseDown(MouseDownEvent e) { + if (e.Button != MouseButton.Left) + return false; + base.OnMouseDown(e); // Place the note immediately. From 8500f8fe767c4f7362cf4c6c38685de270cdf77a Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 May 2020 18:12:58 +0900 Subject: [PATCH 117/213] Add basic implementation --- .../Settings/TestSceneDirectorySelector.cs | 195 ++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs diff --git a/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs b/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs new file mode 100644 index 0000000000..416d978c69 --- /dev/null +++ b/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs @@ -0,0 +1,195 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.IO; +using System.Linq; +using osu.Framework.Allocation; +using osu.Framework.Bindables; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Sprites; +using osu.Framework.Platform; +using osu.Game.Graphics; +using osu.Game.Graphics.Containers; +using osu.Game.Graphics.Sprites; +using osu.Game.Graphics.UserInterface; +using osuTK; + +namespace osu.Game.Tests.Visual.Settings +{ + public class TestSceneDirectorySelector : OsuTestScene + { + [BackgroundDependencyLoader] + private void load(GameHost host) + { + Add(new DirectorySelector { RelativeSizeAxes = Axes.Both }); + } + } + + public class DirectorySelector : CompositeDrawable + { + private Storage root; + private FillFlowContainer directoryFlow; + private CurrentDirectoryDisplay current; + + [Resolved] + private GameHost host { get; set; } + + private readonly Bindable currentDirectory = new Bindable(); + + public DirectorySelector(Storage root = null) + { + this.root = root; + } + + protected override void LoadComplete() + { + base.LoadComplete(); + + Padding = new MarginPadding(10); + + if (root == null) + root = host.GetStorage("/Users/"); + + InternalChildren = new Drawable[] + { + new FillFlowContainer + { + RelativeSizeAxes = Axes.Both, + Direction = FillDirection.Vertical, + Children = new Drawable[] + { + current = new CurrentDirectoryDisplay + { + CurrentDirectory = { BindTarget = currentDirectory }, + RelativeSizeAxes = Axes.X, + Height = 50, + }, + new OsuScrollContainer + { + RelativeSizeAxes = Axes.Both, + Child = directoryFlow = new FillFlowContainer + { + AutoSizeAxes = Axes.Y, + RelativeSizeAxes = Axes.X, + Direction = FillDirection.Vertical, + } + } + } + }, + }; + + currentDirectory.BindValueChanged(updateDisplay); + currentDirectory.Value = root.GetFullPath(string.Empty); + } + + private void updateDisplay(ValueChangedEvent directory) + { + root = host.GetStorage(directory.NewValue); + + directoryFlow.Clear(); + + directoryFlow.Add(new ParentDirectoryRow(getParentPath()) { CurrentDirectory = { BindTarget = currentDirectory }, }); + + foreach (var dir in root.GetDirectories(string.Empty)) + directoryFlow.Add(new DirectoryRow(dir, root.GetFullPath(dir)) { CurrentDirectory = { BindTarget = currentDirectory }, }); + } + + private string getParentPath() => Path.GetFullPath(Path.Combine(root.GetFullPath(string.Empty), "..")); + + public class CurrentDirectoryDisplay : CompositeDrawable + { + public readonly Bindable CurrentDirectory = new Bindable(); + + public CurrentDirectoryDisplay() + { + FillFlowContainer flow; + + InternalChildren = new Drawable[] + { + flow = new FillFlowContainer + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + RelativeSizeAxes = Axes.X, + Spacing = new Vector2(10), + Height = 20, + Direction = FillDirection.Horizontal, + }, + }; + + CurrentDirectory.BindValueChanged(dir => + { + flow.Clear(); + + flow.Add(new OsuSpriteText { Text = "Current Directory: " }); + + var pieces = dir.NewValue.Split(Path.DirectorySeparatorChar); + + pieces[0] = "/"; + + for (int i = 0; i < pieces.Length; i++) + { + flow.Add(new DirectoryRow(pieces[i], Path.Combine(pieces.Take(i + 1).ToArray())) + { + CurrentDirectory = { BindTarget = CurrentDirectory }, + RelativeSizeAxes = Axes.Y, + Size = new Vector2(100, 1) + }); + } + }); + } + } + + private class ParentDirectoryRow : DirectoryRow + { + public override IconUsage Icon => FontAwesome.Solid.Folder; + + public ParentDirectoryRow(string fullPath) + : base("..", fullPath) + { + } + } + + private class DirectoryRow : OsuButton + { + private readonly string fullPath; + + public readonly Bindable CurrentDirectory = new Bindable(); + + public DirectoryRow(string display, string fullPath) + { + this.fullPath = fullPath; + + RelativeSizeAxes = Axes.X; + Height = 20; + + BackgroundColour = OsuColour.Gray(0.1f); + + AddRange(new Drawable[] + { + new SpriteIcon + { + Icon = Icon, + Size = new Vector2(20) + }, + new OsuSpriteText + { + X = 25, + Text = display, + Font = OsuFont.Default.With(size: 20) + } + }); + + Action = PerformDirectoryTraversal; + } + + protected virtual void PerformDirectoryTraversal() + { + CurrentDirectory.Value = fullPath; + } + + public virtual IconUsage Icon => FontAwesome.Regular.Folder; + } + } +} From 2c83417c41e29be9a5e474df65a7806dbf747577 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 18:08:43 +0900 Subject: [PATCH 118/213] Switch to using DirectoryInfo/DriveInfo --- .../Settings/TestSceneDirectorySelector.cs | 122 +++++++++--------- 1 file changed, 64 insertions(+), 58 deletions(-) diff --git a/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs b/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs index 416d978c69..beb5353115 100644 --- a/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs +++ b/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using System.IO; using System.Linq; using osu.Framework.Allocation; @@ -8,11 +9,11 @@ using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; +using osu.Framework.Input.Events; using osu.Framework.Platform; using osu.Game.Graphics; using osu.Game.Graphics.Containers; using osu.Game.Graphics.Sprites; -using osu.Game.Graphics.UserInterface; using osuTK; namespace osu.Game.Tests.Visual.Settings @@ -28,18 +29,17 @@ namespace osu.Game.Tests.Visual.Settings public class DirectorySelector : CompositeDrawable { - private Storage root; private FillFlowContainer directoryFlow; - private CurrentDirectoryDisplay current; [Resolved] private GameHost host { get; set; } - private readonly Bindable currentDirectory = new Bindable(); + [Cached] + private readonly Bindable currentDirectory = new Bindable(); - public DirectorySelector(Storage root = null) + public DirectorySelector(string initialPath = null) { - this.root = root; + currentDirectory.Value = new DirectoryInfo(initialPath ??= Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); } protected override void LoadComplete() @@ -48,9 +48,6 @@ namespace osu.Game.Tests.Visual.Settings Padding = new MarginPadding(10); - if (root == null) - root = host.GetStorage("/Users/"); - InternalChildren = new Drawable[] { new FillFlowContainer @@ -59,9 +56,8 @@ namespace osu.Game.Tests.Visual.Settings Direction = FillDirection.Vertical, Children = new Drawable[] { - current = new CurrentDirectoryDisplay + new CurrentDirectoryDisplay { - CurrentDirectory = { BindTarget = currentDirectory }, RelativeSizeAxes = Axes.X, Height = 50, }, @@ -79,29 +75,39 @@ namespace osu.Game.Tests.Visual.Settings }, }; - currentDirectory.BindValueChanged(updateDisplay); - currentDirectory.Value = root.GetFullPath(string.Empty); + currentDirectory.BindValueChanged(updateDisplay, true); } - private void updateDisplay(ValueChangedEvent directory) + private void updateDisplay(ValueChangedEvent directory) { - root = host.GetStorage(directory.NewValue); - directoryFlow.Clear(); - directoryFlow.Add(new ParentDirectoryRow(getParentPath()) { CurrentDirectory = { BindTarget = currentDirectory }, }); + if (directory.NewValue == null) + { + // var drives = DriveInfo.GetDrives(); + // + // foreach (var drive in drives) + // directoryFlow.Add(new DirectoryRow(drive.RootDirectory)); + } + else + { + directoryFlow.Add(new ParentDirectoryRow(currentDirectory.Value.Parent)); - foreach (var dir in root.GetDirectories(string.Empty)) - directoryFlow.Add(new DirectoryRow(dir, root.GetFullPath(dir)) { CurrentDirectory = { BindTarget = currentDirectory }, }); + foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) + { + if ((dir.Attributes & FileAttributes.Hidden) == 0) + directoryFlow.Add(new DirectoryRow(dir)); + } + } } - private string getParentPath() => Path.GetFullPath(Path.Combine(root.GetFullPath(string.Empty), "..")); - public class CurrentDirectoryDisplay : CompositeDrawable { - public readonly Bindable CurrentDirectory = new Bindable(); + [Resolved] + private Bindable currentDirectory { get; set; } - public CurrentDirectoryDisplay() + [BackgroundDependencyLoader] + private void load() { FillFlowContainer flow; @@ -118,26 +124,26 @@ namespace osu.Game.Tests.Visual.Settings }, }; - CurrentDirectory.BindValueChanged(dir => + currentDirectory.BindValueChanged(dir => { flow.Clear(); - flow.Add(new OsuSpriteText { Text = "Current Directory: " }); - - var pieces = dir.NewValue.Split(Path.DirectorySeparatorChar); - - pieces[0] = "/"; - - for (int i = 0; i < pieces.Length; i++) + flow.Add(new OsuSpriteText { - flow.Add(new DirectoryRow(pieces[i], Path.Combine(pieces.Take(i + 1).ToArray())) - { - CurrentDirectory = { BindTarget = CurrentDirectory }, - RelativeSizeAxes = Axes.Y, - Size = new Vector2(100, 1) - }); + Text = "Current Directory: ", + Font = OsuFont.Default.With(size: DirectoryRow.HEIGHT), + }); + + flow.Add(new DirectoryRow(null, "Computer")); + + DirectoryInfo traverse = dir.NewValue; + + while (traverse != null) + { + flow.Add(new DirectoryRow(traverse)); + traverse = traverse.Parent; } - }); + }, true); } } @@ -145,48 +151,48 @@ namespace osu.Game.Tests.Visual.Settings { public override IconUsage Icon => FontAwesome.Solid.Folder; - public ParentDirectoryRow(string fullPath) - : base("..", fullPath) + public ParentDirectoryRow(DirectoryInfo directory) + : base(directory, "..") { } } - private class DirectoryRow : OsuButton + private class DirectoryRow : CompositeDrawable { - private readonly string fullPath; + public const float HEIGHT = 20; - public readonly Bindable CurrentDirectory = new Bindable(); + private readonly DirectoryInfo directory; - public DirectoryRow(string display, string fullPath) + [Resolved] + private Bindable currentDirectory { get; set; } + + public DirectoryRow(DirectoryInfo directory, string display = null) { - this.fullPath = fullPath; + this.directory = directory; - RelativeSizeAxes = Axes.X; - Height = 20; + AutoSizeAxes = Axes.X; + Height = HEIGHT; - BackgroundColour = OsuColour.Gray(0.1f); - - AddRange(new Drawable[] + AddRangeInternal(new Drawable[] { new SpriteIcon { Icon = Icon, - Size = new Vector2(20) + Size = new Vector2(HEIGHT) }, new OsuSpriteText { - X = 25, - Text = display, - Font = OsuFont.Default.With(size: 20) + X = HEIGHT + 5, + Text = display ?? directory.Name, + Font = OsuFont.Default.With(size: HEIGHT) } }); - - Action = PerformDirectoryTraversal; } - protected virtual void PerformDirectoryTraversal() + protected override bool OnClick(ClickEvent e) { - CurrentDirectory.Value = fullPath; + currentDirectory.Value = directory; + return true; } public virtual IconUsage Icon => FontAwesome.Regular.Folder; From 49e4fc6cba39028b5be157b975a26ae85e2e2161 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 18:37:14 +0900 Subject: [PATCH 119/213] Move to better namespace --- .../Settings/TestSceneDirectorySelector.cs | 184 +----------- .../UserInterfaceV2/DirectorySelector.cs | 261 ++++++++++++++++++ 2 files changed, 262 insertions(+), 183 deletions(-) create mode 100644 osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs diff --git a/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs b/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs index beb5353115..0cd0f13b5f 100644 --- a/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs +++ b/osu.Game.Tests/Visual/Settings/TestSceneDirectorySelector.cs @@ -1,20 +1,10 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.IO; -using System.Linq; using osu.Framework.Allocation; -using osu.Framework.Bindables; using osu.Framework.Graphics; -using osu.Framework.Graphics.Containers; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Input.Events; using osu.Framework.Platform; -using osu.Game.Graphics; -using osu.Game.Graphics.Containers; -using osu.Game.Graphics.Sprites; -using osuTK; +using osu.Game.Graphics.UserInterfaceV2; namespace osu.Game.Tests.Visual.Settings { @@ -26,176 +16,4 @@ namespace osu.Game.Tests.Visual.Settings Add(new DirectorySelector { RelativeSizeAxes = Axes.Both }); } } - - public class DirectorySelector : CompositeDrawable - { - private FillFlowContainer directoryFlow; - - [Resolved] - private GameHost host { get; set; } - - [Cached] - private readonly Bindable currentDirectory = new Bindable(); - - public DirectorySelector(string initialPath = null) - { - currentDirectory.Value = new DirectoryInfo(initialPath ??= Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); - } - - protected override void LoadComplete() - { - base.LoadComplete(); - - Padding = new MarginPadding(10); - - InternalChildren = new Drawable[] - { - new FillFlowContainer - { - RelativeSizeAxes = Axes.Both, - Direction = FillDirection.Vertical, - Children = new Drawable[] - { - new CurrentDirectoryDisplay - { - RelativeSizeAxes = Axes.X, - Height = 50, - }, - new OsuScrollContainer - { - RelativeSizeAxes = Axes.Both, - Child = directoryFlow = new FillFlowContainer - { - AutoSizeAxes = Axes.Y, - RelativeSizeAxes = Axes.X, - Direction = FillDirection.Vertical, - } - } - } - }, - }; - - currentDirectory.BindValueChanged(updateDisplay, true); - } - - private void updateDisplay(ValueChangedEvent directory) - { - directoryFlow.Clear(); - - if (directory.NewValue == null) - { - // var drives = DriveInfo.GetDrives(); - // - // foreach (var drive in drives) - // directoryFlow.Add(new DirectoryRow(drive.RootDirectory)); - } - else - { - directoryFlow.Add(new ParentDirectoryRow(currentDirectory.Value.Parent)); - - foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) - { - if ((dir.Attributes & FileAttributes.Hidden) == 0) - directoryFlow.Add(new DirectoryRow(dir)); - } - } - } - - public class CurrentDirectoryDisplay : CompositeDrawable - { - [Resolved] - private Bindable currentDirectory { get; set; } - - [BackgroundDependencyLoader] - private void load() - { - FillFlowContainer flow; - - InternalChildren = new Drawable[] - { - flow = new FillFlowContainer - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - RelativeSizeAxes = Axes.X, - Spacing = new Vector2(10), - Height = 20, - Direction = FillDirection.Horizontal, - }, - }; - - currentDirectory.BindValueChanged(dir => - { - flow.Clear(); - - flow.Add(new OsuSpriteText - { - Text = "Current Directory: ", - Font = OsuFont.Default.With(size: DirectoryRow.HEIGHT), - }); - - flow.Add(new DirectoryRow(null, "Computer")); - - DirectoryInfo traverse = dir.NewValue; - - while (traverse != null) - { - flow.Add(new DirectoryRow(traverse)); - traverse = traverse.Parent; - } - }, true); - } - } - - private class ParentDirectoryRow : DirectoryRow - { - public override IconUsage Icon => FontAwesome.Solid.Folder; - - public ParentDirectoryRow(DirectoryInfo directory) - : base(directory, "..") - { - } - } - - private class DirectoryRow : CompositeDrawable - { - public const float HEIGHT = 20; - - private readonly DirectoryInfo directory; - - [Resolved] - private Bindable currentDirectory { get; set; } - - public DirectoryRow(DirectoryInfo directory, string display = null) - { - this.directory = directory; - - AutoSizeAxes = Axes.X; - Height = HEIGHT; - - AddRangeInternal(new Drawable[] - { - new SpriteIcon - { - Icon = Icon, - Size = new Vector2(HEIGHT) - }, - new OsuSpriteText - { - X = HEIGHT + 5, - Text = display ?? directory.Name, - Font = OsuFont.Default.With(size: HEIGHT) - } - }); - } - - protected override bool OnClick(ClickEvent e) - { - currentDirectory.Value = directory; - return true; - } - - public virtual IconUsage Icon => FontAwesome.Regular.Folder; - } - } } diff --git a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs new file mode 100644 index 0000000000..5dcaacf0a4 --- /dev/null +++ b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs @@ -0,0 +1,261 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using osu.Framework.Allocation; +using osu.Framework.Bindables; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Shapes; +using osu.Framework.Graphics.Sprites; +using osu.Framework.Input.Events; +using osu.Framework.Platform; +using osu.Game.Graphics.Containers; +using osu.Game.Graphics.Sprites; +using osuTK; + +namespace osu.Game.Graphics.UserInterfaceV2 +{ + public class DirectorySelector : CompositeDrawable + { + private FillFlowContainer directoryFlow; + + [Resolved] + private GameHost host { get; set; } + + [Cached] + private readonly Bindable currentDirectory = new Bindable(); + + public DirectorySelector(string initialPath = null) + { + currentDirectory.Value = new DirectoryInfo(initialPath ??= Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); + } + + protected override void LoadComplete() + { + base.LoadComplete(); + + Padding = new MarginPadding(10); + + InternalChildren = new Drawable[] + { + new FillFlowContainer + { + RelativeSizeAxes = Axes.Both, + Direction = FillDirection.Vertical, + Children = new Drawable[] + { + new CurrentDirectoryDisplay + { + RelativeSizeAxes = Axes.X, + Height = 50, + }, + new OsuScrollContainer + { + RelativeSizeAxes = Axes.Both, + Child = directoryFlow = new FillFlowContainer + { + AutoSizeAxes = Axes.Y, + RelativeSizeAxes = Axes.X, + Direction = FillDirection.Vertical, + Spacing = new Vector2(2), + } + } + } + }, + }; + + currentDirectory.BindValueChanged(updateDisplay, true); + } + + private void updateDisplay(ValueChangedEvent directory) + { + directoryFlow.Clear(); + + if (directory.NewValue == null) + { + var drives = DriveInfo.GetDrives(); + + foreach (var drive in drives) + directoryFlow.Add(new DirectoryRow(drive.RootDirectory)); + } + else + { + directoryFlow.Add(new ParentDirectoryRow(currentDirectory.Value.Parent)); + + foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) + { + if ((dir.Attributes & FileAttributes.Hidden) == 0) + directoryFlow.Add(new DirectoryRow(dir)); + } + } + } + + public class CurrentDirectoryDisplay : CompositeDrawable + { + [Resolved] + private Bindable currentDirectory { get; set; } + + [BackgroundDependencyLoader] + private void load() + { + FillFlowContainer flow; + + InternalChildren = new Drawable[] + { + flow = new FillFlowContainer + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + RelativeSizeAxes = Axes.X, + Spacing = new Vector2(5), + Height = DirectoryRow.HEIGHT, + Direction = FillDirection.Horizontal, + }, + }; + + currentDirectory.BindValueChanged(dir => + { + flow.Clear(); + + flow.Add(new OsuSpriteText + { + Text = "Current Directory: ", + Font = OsuFont.Default.With(size: DirectoryRow.HEIGHT), + }); + + flow.Add(new ComputerRow()); + + List traversalRows = new List(); + + DirectoryInfo traverse = dir.NewValue; + + while (traverse != null) + { + traversalRows.Insert(0, new CurrentDisplayRow(traverse)); + traverse = traverse.Parent; + } + + flow.AddRange(traversalRows); + }, true); + } + + private class ComputerRow : CurrentDisplayRow + { + public override IconUsage? Icon => null; + + public ComputerRow() + : base(null, "Computer") + { + } + } + + private class CurrentDisplayRow : DirectoryRow + { + public CurrentDisplayRow(DirectoryInfo directory, string displayName = null) + : base(directory, displayName) + { + } + + [BackgroundDependencyLoader] + private void load() + { + Flow.Add(new SpriteIcon + { + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, + Icon = FontAwesome.Solid.ChevronRight, + Size = new Vector2(FONT_SIZE / 2) + }); + } + } + } + + private class ParentDirectoryRow : DirectoryRow + { + public override IconUsage? Icon => FontAwesome.Solid.Folder; + + public ParentDirectoryRow(DirectoryInfo directory) + : base(directory, "..") + { + } + } + + private class DirectoryRow : CompositeDrawable + { + public const float HEIGHT = 20; + + protected const float FONT_SIZE = 16; + + private readonly DirectoryInfo directory; + private readonly string displayName; + + protected FillFlowContainer Flow; + + [Resolved] + private Bindable currentDirectory { get; set; } + + public DirectoryRow(DirectoryInfo directory, string displayName = null) + { + this.directory = directory; + this.displayName = displayName; + } + + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { + AutoSizeAxes = Axes.Both; + + Masking = true; + CornerRadius = 5; + + InternalChildren = new Drawable[] + { + new Box + { + Colour = colours.GreySeafoamDarker, + RelativeSizeAxes = Axes.Both, + }, + Flow = new FillFlowContainer + { + AutoSizeAxes = Axes.X, + Height = 20, + Margin = new MarginPadding { Vertical = 2, Horizontal = 5 }, + Direction = FillDirection.Horizontal, + Spacing = new Vector2(5), + } + }; + + if (Icon.HasValue) + { + Flow.Add(new SpriteIcon + { + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, + Icon = Icon.Value, + Size = new Vector2(FONT_SIZE) + }); + } + + Flow.Add(new OsuSpriteText + { + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, + Text = displayName ?? directory.Name, + Font = OsuFont.Default.With(size: FONT_SIZE) + }); + } + + protected override bool OnClick(ClickEvent e) + { + currentDirectory.Value = directory; + return true; + } + + public virtual IconUsage? Icon => FontAwesome.Regular.Folder; + } + } +} From 246812e0b1b550c0bebb63739ad67a4b45f0f124 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 18:42:20 +0900 Subject: [PATCH 120/213] Change breadcrumb display icons to match design --- .../UserInterfaceV2/DirectorySelector.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs index 5dcaacf0a4..1cd4ab6f01 100644 --- a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs +++ b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs @@ -145,7 +145,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 private class ComputerRow : CurrentDisplayRow { - public override IconUsage? Icon => null; + protected override IconUsage? Icon => null; public ComputerRow() : base(null, "Computer") @@ -171,12 +171,14 @@ namespace osu.Game.Graphics.UserInterfaceV2 Size = new Vector2(FONT_SIZE / 2) }); } + + protected override IconUsage? Icon => Directory.Name.Contains("/") ? base.Icon : null; } } private class ParentDirectoryRow : DirectoryRow { - public override IconUsage? Icon => FontAwesome.Solid.Folder; + protected override IconUsage? Icon => FontAwesome.Solid.Folder; public ParentDirectoryRow(DirectoryInfo directory) : base(directory, "..") @@ -190,7 +192,8 @@ namespace osu.Game.Graphics.UserInterfaceV2 protected const float FONT_SIZE = 16; - private readonly DirectoryInfo directory; + protected readonly DirectoryInfo Directory; + private readonly string displayName; protected FillFlowContainer Flow; @@ -200,7 +203,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 public DirectoryRow(DirectoryInfo directory, string displayName = null) { - this.directory = directory; + Directory = directory; this.displayName = displayName; } @@ -244,18 +247,18 @@ namespace osu.Game.Graphics.UserInterfaceV2 { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, - Text = displayName ?? directory.Name, + Text = displayName ?? Directory.Name, Font = OsuFont.Default.With(size: FONT_SIZE) }); } protected override bool OnClick(ClickEvent e) { - currentDirectory.Value = directory; + currentDirectory.Value = Directory; return true; } - public virtual IconUsage? Icon => FontAwesome.Regular.Folder; + protected virtual IconUsage? Icon => Directory.Name.Contains("/") ? FontAwesome.Solid.Database : FontAwesome.Regular.Folder; } } } From e9e03d038d780f13d62a3b29e9c6243148f10ebc Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 18:52:10 +0900 Subject: [PATCH 121/213] Tidy up naming and structure --- .../UserInterfaceV2/DirectorySelector.cs | 87 +++++++++---------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs index 1cd4ab6f01..427b9a1eff 100644 --- a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs +++ b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs @@ -34,10 +34,9 @@ namespace osu.Game.Graphics.UserInterfaceV2 currentDirectory.Value = new DirectoryInfo(initialPath ??= Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); } - protected override void LoadComplete() + [BackgroundDependencyLoader] + private void load() { - base.LoadComplete(); - Padding = new MarginPadding(10); InternalChildren = new Drawable[] @@ -80,30 +79,30 @@ namespace osu.Game.Graphics.UserInterfaceV2 var drives = DriveInfo.GetDrives(); foreach (var drive in drives) - directoryFlow.Add(new DirectoryRow(drive.RootDirectory)); + directoryFlow.Add(new DirectoryPiece(drive.RootDirectory)); } else { - directoryFlow.Add(new ParentDirectoryRow(currentDirectory.Value.Parent)); + directoryFlow.Add(new ParentDirectoryPiece(currentDirectory.Value.Parent)); foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) { if ((dir.Attributes & FileAttributes.Hidden) == 0) - directoryFlow.Add(new DirectoryRow(dir)); + directoryFlow.Add(new DirectoryPiece(dir)); } } } - public class CurrentDirectoryDisplay : CompositeDrawable + private class CurrentDirectoryDisplay : CompositeDrawable { [Resolved] private Bindable currentDirectory { get; set; } + private FillFlowContainer flow; + [BackgroundDependencyLoader] private void load() { - FillFlowContainer flow; - InternalChildren = new Drawable[] { flow = new FillFlowContainer @@ -112,50 +111,48 @@ namespace osu.Game.Graphics.UserInterfaceV2 Origin = Anchor.Centre, RelativeSizeAxes = Axes.X, Spacing = new Vector2(5), - Height = DirectoryRow.HEIGHT, + Height = DirectoryPiece.HEIGHT, Direction = FillDirection.Horizontal, }, }; - currentDirectory.BindValueChanged(dir => - { - flow.Clear(); - - flow.Add(new OsuSpriteText - { - Text = "Current Directory: ", - Font = OsuFont.Default.With(size: DirectoryRow.HEIGHT), - }); - - flow.Add(new ComputerRow()); - - List traversalRows = new List(); - - DirectoryInfo traverse = dir.NewValue; - - while (traverse != null) - { - traversalRows.Insert(0, new CurrentDisplayRow(traverse)); - traverse = traverse.Parent; - } - - flow.AddRange(traversalRows); - }, true); + currentDirectory.BindValueChanged(updateDisplay, true); } - private class ComputerRow : CurrentDisplayRow + private void updateDisplay(ValueChangedEvent dir) + { + flow.Clear(); + + List pathPieces = new List(); + + DirectoryInfo ptr = dir.NewValue; + + while (ptr != null) + { + pathPieces.Insert(0, new CurrentDisplayPiece(ptr)); + ptr = ptr.Parent; + } + + flow.ChildrenEnumerable = new Drawable[] + { + new OsuSpriteText { Text = "Current Directory: ", Font = OsuFont.Default.With(size: DirectoryPiece.HEIGHT), }, + new ComputerPiece(), + }.Concat(pathPieces); + } + + private class ComputerPiece : CurrentDisplayPiece { protected override IconUsage? Icon => null; - public ComputerRow() + public ComputerPiece() : base(null, "Computer") { } } - private class CurrentDisplayRow : DirectoryRow + private class CurrentDisplayPiece : DirectoryPiece { - public CurrentDisplayRow(DirectoryInfo directory, string displayName = null) + public CurrentDisplayPiece(DirectoryInfo directory, string displayName = null) : base(directory, displayName) { } @@ -172,21 +169,21 @@ namespace osu.Game.Graphics.UserInterfaceV2 }); } - protected override IconUsage? Icon => Directory.Name.Contains("/") ? base.Icon : null; + protected override IconUsage? Icon => Directory.Name.Contains(Path.DirectorySeparatorChar) ? base.Icon : null; } } - private class ParentDirectoryRow : DirectoryRow + private class ParentDirectoryPiece : DirectoryPiece { protected override IconUsage? Icon => FontAwesome.Solid.Folder; - public ParentDirectoryRow(DirectoryInfo directory) + public ParentDirectoryPiece(DirectoryInfo directory) : base(directory, "..") { } } - private class DirectoryRow : CompositeDrawable + private class DirectoryPiece : CompositeDrawable { public const float HEIGHT = 20; @@ -201,7 +198,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 [Resolved] private Bindable currentDirectory { get; set; } - public DirectoryRow(DirectoryInfo directory, string displayName = null) + public DirectoryPiece(DirectoryInfo directory, string displayName = null) { Directory = directory; this.displayName = displayName; @@ -258,7 +255,9 @@ namespace osu.Game.Graphics.UserInterfaceV2 return true; } - protected virtual IconUsage? Icon => Directory.Name.Contains("/") ? FontAwesome.Solid.Database : FontAwesome.Regular.Folder; + protected virtual IconUsage? Icon => Directory.Name.Contains(Path.DirectorySeparatorChar) + ? FontAwesome.Solid.Database + : FontAwesome.Regular.Folder; } } } From c048d9b6ae215eb0923ba39d060e5ae1adb0ace7 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 18:55:06 +0900 Subject: [PATCH 122/213] Fix incorrect assignment --- osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs index 427b9a1eff..59de931df5 100644 --- a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs +++ b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs @@ -31,7 +31,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 public DirectorySelector(string initialPath = null) { - currentDirectory.Value = new DirectoryInfo(initialPath ??= Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); + currentDirectory.Value = new DirectoryInfo(initialPath ?? Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); } [BackgroundDependencyLoader] From 00efeb7cc6db07eac414dab21366b041fa46f6ba Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 19:19:58 +0900 Subject: [PATCH 123/213] Fix spawning too many sprites due to not yet populated sizing --- .../Skinning/LegacyTaikoScroller.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs index 3ec6be8a6c..03813e0a99 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs @@ -17,6 +17,8 @@ namespace osu.Game.Rulesets.Taiko.Skinning { public class LegacyTaikoScroller : CompositeDrawable { + public Bindable LastResult = new Bindable(); + public LegacyTaikoScroller() { RelativeSizeAxes = Axes.Both; @@ -50,21 +52,16 @@ namespace osu.Game.Rulesets.Taiko.Skinning }, true); } - public Bindable LastResult = new Bindable(); - protected override void Update() { base.Update(); - bool wideEnough() => - InternalChildren.Any() - && InternalChildren.First().ScreenSpaceDrawQuad.Width * InternalChildren.Count >= ScreenSpaceDrawQuad.Width * 2; - // store X before checking wide enough so if we perform layout there is no positional discrepancy. float currentX = (InternalChildren?.FirstOrDefault()?.X ?? 0) - (float)Clock.ElapsedFrameTime * 0.1f; // ensure we have enough sprites - while (!wideEnough()) + if (!InternalChildren.Any() + || InternalChildren.First().ScreenSpaceDrawQuad.Width * InternalChildren.Count < ScreenSpaceDrawQuad.Width * 2) AddInternal(new ScrollerSprite { Passing = passing }); var first = InternalChildren.First(); From 49e616b7e561ab940a2fa10f294af179f2b39e91 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 20:19:14 +0900 Subject: [PATCH 124/213] Also check for directory presence before migrating --- osu.Game/IO/OsuStorage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 6dc25e871c..b060add03b 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -51,7 +51,7 @@ namespace osu.Game.IO // ensure the new location has no files present, else hard abort if (destination.Exists) { - if (destination.GetFiles().Length > 0) + if (destination.GetFiles().Length > 0 || destination.GetDirectories().Length > 0) throw new InvalidOperationException("Migration destination already has files present"); deleteRecursive(destination); From ad1d050fb437673f35380f8751c7a3f7cc68c7e9 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 20:29:15 +0900 Subject: [PATCH 125/213] Throw exception on copy timeout --- osu.Game/IO/OsuStorage.cs | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index b060add03b..71b01ce479 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -96,20 +96,7 @@ namespace osu.Game.IO if (topLevelExcludes && IGNORE_FILES.Contains(fi.Name)) continue; - int tries = 5; - - while (tries-- > 0) - { - try - { - fi.CopyTo(Path.Combine(destination.FullName, fi.Name), true); - break; - } - catch (Exception) - { - Thread.Sleep(50); - } - } + attemptCopy(fi, Path.Combine(destination.FullName, fi.Name)); } foreach (DirectoryInfo dir in source.GetDirectories()) @@ -120,5 +107,26 @@ namespace osu.Game.IO copyRecursive(dir, destination.CreateSubdirectory(dir.Name), false); } } + + private static void attemptCopy(System.IO.FileInfo fileInfo, string destination) + { + int tries = 5; + + while (true) + { + try + { + fileInfo.CopyTo(destination, true); + return; + } + catch (Exception) + { + if (tries-- == 0) + throw; + } + + Thread.Sleep(50); + } + } } } From 1ac9c7c15a88fe24132084b93c2d619cfb46b2da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Thu, 14 May 2020 00:04:31 +0900 Subject: [PATCH 126/213] Add license header to WebRequestExtensions --- osu.Game/Extensions/WebRequestExtensions.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/osu.Game/Extensions/WebRequestExtensions.cs b/osu.Game/Extensions/WebRequestExtensions.cs index c8e3c564a5..f92f707d30 100644 --- a/osu.Game/Extensions/WebRequestExtensions.cs +++ b/osu.Game/Extensions/WebRequestExtensions.cs @@ -1,4 +1,7 @@ -using osu.Framework.IO.Network; +// 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.IO.Network; using osu.Framework.Extensions.IEnumerableExtensions; using System.Collections.Generic; using Newtonsoft.Json; From 0933217389f9b08c4d64815b31fa352cd8a4ce16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 13 May 2020 18:53:47 +0200 Subject: [PATCH 127/213] Simplify mascot scaling --- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 5940ee8b69..ded1fc0933 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -5,7 +5,6 @@ using System.Linq; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; -using osu.Framework.Layout; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics; using osu.Game.Rulesets.Objects.Drawables; @@ -43,14 +42,9 @@ namespace osu.Game.Rulesets.Taiko.UI private Container hitTargetOffsetContent; - private readonly LayoutValue playfieldScaleLayout = new LayoutValue(Invalidation.DrawSize); - private float playfieldScale => playfieldScaleLayout.IsValid ? playfieldScaleLayout.Value : playfieldScaleLayout.Value = DrawHeight / DEFAULT_HEIGHT; - public TaikoPlayfield(ControlPointInfo controlPoints) { this.controlPoints = controlPoints; - - AddLayout(playfieldScaleLayout); } [BackgroundDependencyLoader] @@ -159,7 +153,7 @@ namespace osu.Game.Rulesets.Taiko.UI rightArea.Padding = new MarginPadding { Left = leftArea.DrawWidth }; hitTargetOffsetContent.Padding = new MarginPadding { Left = HitTarget.DrawWidth / 2 }; - mascot.Scale = new Vector2(playfieldScale); + mascot.Scale = new Vector2(DrawHeight / DEFAULT_HEIGHT); } public override void Add(DrawableHitObject h) From 43450b54853712698da7909e31568a5ecd6b4566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8C=E7=A9=BA=E7=99=BD=E3=80=8D?= <「空白」> Date: Thu, 14 May 2020 01:57:03 +0900 Subject: [PATCH 128/213] Resolve remaining InspectCode issues > CI should now pass build test --- osu.Game/Extensions/WebRequestExtensions.cs | 2 ++ .../Online/API/Requests/SearchBeatmapSetsRequest.cs | 13 ++++++------- .../Overlays/BeatmapListing/BeatmapListingPager.cs | 4 ++-- osu.Game/Overlays/BeatmapListingOverlay.cs | 3 +-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/osu.Game/Extensions/WebRequestExtensions.cs b/osu.Game/Extensions/WebRequestExtensions.cs index f92f707d30..80c8b147bf 100644 --- a/osu.Game/Extensions/WebRequestExtensions.cs +++ b/osu.Game/Extensions/WebRequestExtensions.cs @@ -6,11 +6,13 @@ using osu.Framework.Extensions.IEnumerableExtensions; using System.Collections.Generic; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using JetBrains.Annotations; namespace osu.Game.Extensions { public class Cursor { + [UsedImplicitly] [JsonExtensionData] public IDictionary Properties; } diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs index a49cb70c37..0c3272c7de 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs @@ -11,15 +11,15 @@ namespace osu.Game.Online.API.Requests { public class SearchBeatmapSetsRequest : APIRequest { - public SearchCategory SearchCategory { get; set; } + public SearchCategory SearchCategory { get; } - public SortCriteria SortCriteria { get; set; } + public SortCriteria SortCriteria { get; } - public SortDirection SortDirection { get; set; } + public SortDirection SortDirection { get; } - public SearchGenre Genre { get; set; } + public SearchGenre Genre { get; } - public SearchLanguage Language { get; set; } + public SearchLanguage Language { get; } private readonly string query; private readonly RulesetInfo ruleset; @@ -27,8 +27,7 @@ namespace osu.Game.Online.API.Requests private string directionString => SortDirection == SortDirection.Descending ? @"desc" : @"asc"; - public SearchBeatmapSetsRequest(string query, RulesetInfo ruleset, Cursor cursor = null, - SearchCategory searchCategory = SearchCategory.Any, SortCriteria sortCriteria = SortCriteria.Ranked, SortDirection sortDirection = SortDirection.Descending) + public SearchBeatmapSetsRequest(string query, RulesetInfo ruleset, Cursor cursor = null, SearchCategory searchCategory = SearchCategory.Any, SortCriteria sortCriteria = SortCriteria.Ranked, SortDirection sortDirection = SortDirection.Descending) { this.query = string.IsNullOrEmpty(query) ? string.Empty : System.Uri.EscapeDataString(query); this.ruleset = ruleset; diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs index 4c8902d314..f55e37ebc7 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs @@ -24,9 +24,9 @@ namespace osu.Game.Overlays.BeatmapListing private SearchBeatmapSetsRequest getSetsRequest; private SearchBeatmapSetsResponse lastResponse; - private bool isLastPageFetched = false; + private bool isLastPageFetched; private bool isFetching => getSetsRequest != null; - public bool IsPastFirstPage { get; private set; } = false; + public bool IsPastFirstPage { get; private set; } public bool CanFetchNextPage => !isLastPageFetched && !isFetching; public BeatmapListingPager(IAPIProvider api, RulesetStore rulesets, string query, RulesetInfo ruleset, SearchCategory searchCategory = SearchCategory.Any, SortCriteria sortCriteria = SortCriteria.Ranked, SortDirection sortDirection = SortDirection.Descending) diff --git a/osu.Game/Overlays/BeatmapListingOverlay.cs b/osu.Game/Overlays/BeatmapListingOverlay.cs index ba92181ac5..e26f084ea4 100644 --- a/osu.Game/Overlays/BeatmapListingOverlay.cs +++ b/osu.Game/Overlays/BeatmapListingOverlay.cs @@ -184,8 +184,7 @@ namespace osu.Game.Overlays // If the auto-size computation is delayed until fade out completes, the background remain high for too long making the resulting transition to the smaller height look weird. // At the same time, if the last content's height is bypassed immediately, there is a period where the new content is at Alpha = 0 when the auto-sized height will be 0. // To resolve both of these issues, the bypass is delayed until a point when the content transitions (fade-in and fade-out) overlap and it looks good to do so. - lastContent.Delay(25).Schedule(() => lastContent.BypassAutoSizeAxes = Axes.Y) - .Then().Schedule(() => panelTarget.Remove(lastContent)); + lastContent.Delay(25).Schedule(() => lastContent.BypassAutoSizeAxes = Axes.Y).Then().Schedule(() => panelTarget.Remove(lastContent)); } if (!content.IsAlive) From 9ba1a8af885b2334822506ee5d789ca19fff9902 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 09:44:21 +0900 Subject: [PATCH 129/213] Fix mascot getting stuck in clear state on rewind --- osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs | 6 +++--- osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs index 105baa84cc..407ab30e12 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoMascot.cs @@ -96,9 +96,9 @@ namespace osu.Game.Rulesets.Taiko.UI private TaikoMascotAnimationState getNextState() { - // don't change state if current animation is playing - // (used for clear state - others are manually animated on new beats) - if (currentAnimation != null && !currentAnimation.Completed) + // don't change state if current animation is still playing (and we haven't rewound before it). + // used for clear state - others are manually animated on new beats. + if (currentAnimation?.Completed == false && currentAnimation.DisplayTime <= Time.Current) return State.Value; if (!lastObjectHit) diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs index 01cf88a87e..cce2be7758 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoMascotAnimation.cs @@ -20,6 +20,8 @@ namespace osu.Game.Rulesets.Taiko.UI private int currentFrame; + public double DisplayTime; + public TaikoMascotAnimation(TaikoMascotAnimationState state) { InternalChild = textureAnimation = createTextureAnimation(state).With(animation => @@ -40,6 +42,7 @@ namespace osu.Game.Rulesets.Taiko.UI public override void Show() { base.Show(); + DisplayTime = Time.Current; textureAnimation.Seek(0); } From 76af6f25f1ccd0e0f2e6697ed7fdc8d5546ebc15 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 09:56:30 +0900 Subject: [PATCH 130/213] Remove pointless test resources --- .../Resources/old-skin/pippidonclear0.png | Bin 72589 -> 0 bytes .../Resources/old-skin/pippidonclear1.png | Bin 40613 -> 0 bytes .../Resources/old-skin/pippidonclear2.png | Bin 73308 -> 0 bytes .../Resources/old-skin/pippidonclear3.png | Bin 34541 -> 0 bytes .../Resources/old-skin/pippidonclear4.png | Bin 71177 -> 0 bytes .../Resources/old-skin/pippidonclear5.png | Bin 77056 -> 0 bytes .../Resources/old-skin/pippidonclear6.png | Bin 78392 -> 0 bytes .../Resources/old-skin/pippidonclear7.png | Bin 77056 -> 0 bytes .../Resources/old-skin/pippidonclear8.png | Bin 71177 -> 0 bytes .../Resources/old-skin/pippidonfail0.png | Bin 67970 -> 0 bytes .../Resources/old-skin/pippidonfail1.png | Bin 69118 -> 0 bytes .../Resources/old-skin/pippidonfail2.png | Bin 73351 -> 0 bytes .../Resources/old-skin/pippidonidle0.png | Bin 68649 -> 0 bytes .../Resources/old-skin/pippidonidle1.png | Bin 69329 -> 0 bytes .../Resources/old-skin/pippidonkiai0.png | Bin 76964 -> 0 bytes .../Resources/old-skin/pippidonkiai1.png | Bin 75434 -> 0 bytes 16 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear0.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear1.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear2.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear3.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear4.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear5.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear6.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear7.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear8.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail0.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail1.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail2.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle0.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle1.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai0.png delete mode 100644 osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai1.png diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear0.png deleted file mode 100644 index a5f4d03e2a61075513c85f24ab39280c31f591d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72589 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�F*Q&jpbtTl0ro%YGC`VnPkLo4Qt@L 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 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear1.png deleted file mode 100644 index b239cc561c5cfccc67f04badfa8ab1b54ef6852f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40613 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�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 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear3.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear3.png deleted file mode 100644 index 31e0b91e9fdcb82988b6b8d7b2505a38fdf70358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34541 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%0Dr63wml-6F*tONlh7MSGocvsq)+w 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 L&GqVZUE=-^HyYM< diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear5.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear5.png deleted file mode 100644 index 417af6c61166c727b9ab50cdd14a498c68744e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77056 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 NziqdsJ&+yE=yzftZ#5;QXZo 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 S-AwW`#1E{fu22Os|L{NMEB7e? diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear6.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear6.png deleted file mode 100644 index 5cec7a105d569aa2f9d4b37f709496b29eb96e2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78392 zcmXVXWl$W?*L8xs!{V@u1b0jD#Vu%HgD)D~6I^$3cXtTxB)BZ@8axCG?tuWoUVhL2 z{V>(lT~jsFGxwZ6_w?-ujrR(;Sd>_=UcJIqQk2zt_3Cxn%TAp2o*U zsGcNx0P*FPb}9On_V#wb7Z%Q0tsSQV&XP~q1CiQm%Gji9tf!}^c$h(q{eFMC`5POT zQB)9)4_EC!bCwwy`Twl9`p0Z-ZAp<+P$<|Q5VFAECMJy`@HxM4>8tBS<(@F4pCzb~jkk#v@a)Qq_w z{6~4y>-UE{L$9f`IVJ#Hr0^F|GXhrJ_h;E6$y?(zt&sejmZmk{{NgEuQdZT)>}ksF9NA2k%I6CxPF44YttK<%hc?jjSl zrS{n1P|!`rrO=T!;qUBA)$P z850F-7FB|pfKnJ&M!Z<^z3j{fob^&hmj1#ug?03wdTg&pJC*ERD5;ls5@YO()mgIe zgozSSl?J3SFb9mn!{VtkZ#-Z-B;ZQ!NM80;{KEGdVikq}9qMbxm6 zSy!+i{qM1o&b*1_EeXy^!15LhV1Xyr1(BAnq9E{r62v5%sN;;hE#HfKP!qom_Jw(3 z0}nb#3JGEwA})Mp`)QIU3*sZW3Z@&11xN2y3!0TS-wvE8m4NaH^oxC&JsrGaSQ&}e zLsr3_kEC`);Z#esKzz6u;iW1DW|%In zFt4NQd|6{PIR#cZ%S~!A7zt=I?RUTi>n~9J0BlnBic6uol|T)?fp0YL`VbAj1u{~b z03(T{#tDMX=7tS!yPti+sH z3%=NRYgZ%e5rmXQHwrl)`E?`KnPAQS7wwap=Dn;=QtL@RAE!zrZs z>UKWJ!o|ae+NAR-B2mK?bA+KdI-U}oEcHmmLl_xSUrtkHkJU56Bs@OB@%z4j?1teT zktVb^93udpuR$j(8!x<$wa$Q*68Hy9i>+Curq3U#qOJ65!|z|2Ps;ycd?h4Gy&j^- z!APXf#sv3eh6Nd(44T{8GCPRaG+VV=mu=67M;A9#q6%|4GOxA7VgN_PhzcRR?nSIC z7Ya^>6t70bOPaxUu$z=(gpZ0!GH+ujc-`6Qay`?)yLX}Bm0`}B=K2gZsra9sdQ+vP zmbZQDKQU{(vNsZ@P+i!FWij4i0On~}jp=B#y~J%he8_c zoOY&KDY0NRx}LIaOhTXHf7m|hoq(f&^~eQR3c+PF{%o>GXxo&6!bQ!6CO3M@1rWX& zuzOETR2Fe{x+wS*d#2f}jK=yiyL>&^OWmfLClss&9j~e*XcP95cwG*Gv>|?UV%d7N z7AnVP4{Mi#D*oEPvc|V7yCqI~Wjsyb0{4S)x_;iKpk8W1p{g;F4W#Si#_YN8znA*5 zObYB!#~PV7lD7=h#p#Z%X|`ac(M}(-UK?11;8{Y@>P-;i&&65>gQ<_)p-7+k19NgTP)sbIcd#F){T15Lw25K za;;u$%Gox1!fnd5pZfU`X(fEc!3Fpe&f~*kL>$G%$j&Up?6P69+#-arIVcxgke7D~ z_!-UTZ)AmW`^PvDk~|MZJ1plQAx5-NM98a9k)^(!Zr4Y5e{iK|6Xe99svtsp_1#mS zZ}m;>VDO27%byXbtSpb0D)#Sx+JquN7==}bp1Td(>t_pM)&Ia;8HC>kMl;+eal~k% zy;a_P3m3rfkGu2}tM$#h?2J%izPKSAt>p5I{WatOUzWi+PX%bnVFY{*r6)r@t2b+5 z%~=TFV%DxAmlM@h45iYNXQWtnGctpw<`D@OHT3+M6=z~2vk%iuvd;flx#nH3l^6*K zUJ!o28jec!gsA@N1LNx4|JL5>C-<__;X@;LVKVdUu7~3-sGZj^< zjYN9+aD-CLe+FJnuq-RPcWa35aw#Mh92CW?%D;9Z$U|LMunL($vP?Cx0d~U9`6Iv_ z6F+&)&gu3=t6qzdM<_AGTj)+Lg?a^y4>FuRW;POeo_OKwVn8`Ub#Z=LFp@J(=N0=T z{Req_4O$C01_^i*NiQ6h^~$7NjSUe^+cm3KLx9t50wjlL-wHCm_7{gsssJhcC(ktf z!-~6zUV_*kkAt&{@3_r3j#OsaY?)d1;;iv67)bH6sv(*nZWDLwQHunH2%DHM9d|(? z{1OK-)=X{1u^O^4K@A=M%1W~_dq*%%{ZH^oqMdd|Qvk$tE-{m6$hy-IPX+$uz=o1k ze4qH=3*v0_RYGtKha&~0`DU0%;Ifdr$ye{>Y+9v-(fqc3r_Meo{&t8L!j=gZz!+szLM8kM&H1#bC?v3byKdK5$gta4c;MN}kylkD*HsZ2-A?k` z-VY5|@K?R8{E}30AAR(W&>p;gdOfCLL(K-&fK3ABug=9VcRT-&XJpTzA28&A#QOLo zT<&t8;4EaJvq})ck`ydVh2;U<_mp%<+w6nP%$a0d2LWo7S>C<#YlK$2pMwdiO>NBZ zQkJwIWP%B3?~pV%;|RXuB`Gqqy(6;qKuYTbQ&)W#VV148NM0eYn2ltY2Nqw+^7%fM zb!aF-XW01>x2iK{z$nEjZJS!}^k#3GLml;i{=&cv%c!n<npy~%#vhx@-Jnc{Vu1sJ5kL2RU#_99()NRDKI#BChpEY@SV{@elUq9d}W zVwo)j5vQv)e1LTXgq07?Hhuu<369_UP}%CKbiaHPopXa{FY@Lm zVH9+}c~Hcn2+w1+!EE z3gCz{&8lo+DI#9M#!$GW@zPt*-icm{lH-XDn{5mqJG=gjj}b9*c=f5V;q^q4>ocS? ze;vaczDQ@^8v8+qcGf*Tt&?_H{DR0Lv$S32r}p3oODgb(3c_*4E~T|yn_SqvSbxdM zpZc41ITW;Pc?-tIWa7Xq(&`jWaQcVALzj|QNvGugAvKj8)%jv+zE9*md;Ge}ipaoY zd}eX$(@8m=FYBM1&ido{(LVL69`KQM9~%Y_-@028JyQbhY1}?wjN}zR8{a_wo2IyQ zng+=c%-;^K_$gz5P>n?glN1c)=Hj}xRxnpmoF}Rg&qi0 zWj;*|ITsgJN3KLnI2RX}ZP(t-rFEyr4L>h0p&2^Wed4+MHTWm>w{!QAkZG|G1iB6H zwq`{<9sRCFN~a!44%1Nv9BhI`dJq1-Pnlsc@lUQ^Aha4dVq69*;mv~&{QOK&Q_ogI zzjpZ$5X%U6k*!Uakv7)FQ8qf(@(n~PVGC2_@v@2QIPc?`zv>Q-_XpqFD^LAeO6}uu zeVo^+hR(dn^%*KOdi*TnmZjuJWz&cz>>Vi}7;W{+R}Ml7A2*?aGF2S@$dQ8>Nup-8 zqZ5*D#%+W{P-JC6ELt(~`{XdWazZlVC~_NJEQ6)W0|3q4Ex=_ATUsXXW-CyYX6ZGNB4 zygtwIxpE#vZVU8%Px^)2sFo8pPYM!`x*ii4I;5f6*p3>Cclj8UQUjQAM zyvKsh=Zyfyk9{hy|Ko8*To!x)fLTu1zYxO0NHXxQpgkx`FJT4TbfV#IOdR;*xYVkq z&VwZsjQ3WPKfn<}Rvt0UcYSrb%NL6QKUsEY@qI#>6bnG>&i4tAAX4_A-kvNkR}2u_ z>gRNEuYu<>MfFynnx?nc+bJC~JdAkQ-`WvzNl1jB^H8$r$BVH%W3@8FKB}l1mF}v_ zm!6rpBvBCg#@?-6Qv8-H6pbEz9{@}g9Um#DCyO?T#zTHP#c3XLkye|9KNRf8FKAut z(=&;s0?#G|FU;VczL9!CR-eWOvYh6cQ5y_Ap+0i#O;s@c^MeXTHQ9j4HJYfROoM6_ z)Y1Uw?a80~3TwO__K%pozq3GtiJ@^%&_6q9u{F8y%Gz9z$Ufzk*+IcbOI;IZSSnn( zzZlVvOCP8dke21}2@RW-m4MK5HC8Bg- z5QC{>o^OXxREb|IQ+qp~8O~2uB7C!0&u=vuEA;Hp&H!No*2Q+J?1?vlR?JGdQ5!My zJNB+4p%VE75k#U&sw{2NUQFcbV4xQZ3;~jl{rn;L!bwoj;;0`N?;DebkbwzrSb?~+5EgI;XF&G@Tq>nZ-)n*uszLs3x4~RHng`LI7Lgvq`R?( zVYOdB%TUja{XSCXvp&HNxoX{|EFqqq<{onY>b6e(O;blSYe4v%9|DD=Q;Jn zSW%M@DydmbGak&Iy~GTo-PF6y0}Y%Xk;(Gw-qnQJX%1Oh=)1Kh8>44M_0Ru+W#%oh z7UbpGrh5<~uN*^-p*c#f)L5S8$sqDQr0_?7fKX7PJ=SYlpnM zJ5Nmq)?i5*(34^-YPv@>T)Xk}bUaURr4NJehe`>KqX1T+R}%;B7<{l_rFpzJ{f@WY z7LCT7EfEQ-B*GLSj~4XCVocMuPQjavBYVlZf_bZvU=gw)X}^QkoK@5$JO_F_Iq1`Gow(wph2XG)P_qBz|Hjh!M3bQH+T0%{Q&v(Qo98B#GDnmJ76k zx|4|VR?%z+l>)=329^b{SM!cn62&w+ya`LsDglN8BqmFrPBc(|DyIbLRr~YY6eCpz zl$j$4{p^|EuZhMbsXuOHo z^LRglK?R{hc`}7tQvo5W7{tWd=>|KYjRs02BPY@S-fykaT+%PBkj@C5hP#agVWb&q zWW~2@(Lu))On!jxjBiib4{ck=)+rOkwuQ}24 z3EVA2!#yZ)P9DUw*?G)`wn3wN!1u@GVbyzofgmwyAqruEZ?Vw%k2Z8gDm?lQ?@%}X zjG@QNBEE554J{DNeh9xZ6z2Ma`7PHt4{E2M7|A5**q?9W1CnQvL}CQ2qYN4=9*=LB z@1_eG@x7$dw4Oz*Yqz9hFj?@Wh9bCLOcCV!LH6yGT&l^RT*9$Gv)8L3gZ<<{zF7?2dRw*lLF&}f*zm>+sbo7s+27nDis*ef19cM3$Zopo z1X*v5{>iiGv~afRIiW=<=QIU;vIQN^2+Eomhp4IhIiE~=_1AGRW7gHNg#aI|dP;aw zPNL(|r!~ZW@=-@kWrL@WPy~4y(*_s&gN=c98!JB`^J@O%(94jN2a9} zIv;115RQ=1NhYlM6^$56TgSlnq8E~9OZ|tunhMbe$Z*~JmT43ct*u_Y*X)d%dgz4& zoN`};DfCUYl7%i-p+*h`*2;DMBuFD) zzQ#T=P2YR#bo;vTJ+*8P`(SeOix2P)$MLf=j{FEng{#;3r^elEvwkSn=1Ri9FivtY z(!BSZ`>9ny*k6&S>*N?Z{_g!wk>bmE1LLSg`I|vRo2JH$A4O3ga=g z*==&>Ne~t0mH_V~$Nri2!C={FH5yY(ZF1d($-0Jy;Ft{7HI5JG4FYm_cEsuB90QSf zf#21reN8Hyw@YiM`6$wNDb;DpqQy5(H7Kvgbc5{1)CnzzB<~)bMgDPHRo&wf_5x6q z+VV|)h7Ql23a3++OijGq`uBRR?N(UGuq)==Gcq|F*ZwhJt&@+GGg|+Xgm;&nr zBOg;;AZI6W_c!FQQc)pJD2iKUBFk@091lBTY0rtzX6D}fu4dE}p>y51gXMPAMz41! zSF!TGQ(#mg=+bQMKmBKdN{G;nO=TlOhJ5;Kvg&w}78dg_4CKbyDA(j?uNH}_ec4Q|*ma36QwVCP(z8CAc}AUG%)P6Q zVo{;jo&H~e@aW%cb?_bts?SrM zGzh+>=)O6DnVA8Hi%GCrNx*P~+@^jJDmZbPwtx3YZf%Jl-^Xz+q3QVwje*!lWK~ag zY)fuaw_6n4q5MgLu&Uh#iTQLndOv(M@dsa_{~M8SImLGZj|^*5fbZYb23J%R2x!V3 zgjjk9>)FusIB>&+wE38N#cu6*$g-E<=NjId!4l}9D&ZhKBK+$*?YHWEUe6A+9pe~huG zoVY#iw|GqJ$QCwwv@+};Ld|`odFWFf|>}&9O)tc zntXJ+{(F#J6eEI>%u3GHop-L65{nmVSnpCkRsVZDn1gUwJvxv+UuI%m#PdXbg5p5G zAzy1`-dr?y`el9)4M!q68zPul$$nc`3q8pqpqj+iP?bivO98u_XnmgW?`KPm^-7LW z_rs`k!;vYDLeYccaj3|(sYzS9LZV^%M^c$}-vO7iN!EUO@syP|-w)p@I##9@edPva zEL6$=jz6P?IXMwh)$Vk~n>uP^$yCe-tK2JP#F}oInL8iVN<&wWn^no3^jP1Nmk4oHYusr6}e5dcPLcBx~#@nb_EX;KtZ zk!9-@Z_JcSI$R3wa@-)Trea7)%|_b%V#nFGTdP(%rp7tqnEYIY16^J=ci$mjY*d2B z#rP`=$qkzc*WRfPyQ2`ZljIjEX zC~5MBHjI4*7cW^DPo=i_+VNMlA~mussINyF6Qk3ERJEAB{GJIBYJrP-lp)!z*|iz? zFMc-|n4sZib`0YTd^?*~!zJWz5y{AzJPGb1nbi%~N-Ja{!&b508J)oqKlG0a(*9C( zIs8i^5`tKq8tTX}v0yU;x{9(hS?O-RZ+sWy zQuu24h@&T}H7X}OlR4KYnJ=#28zNU}Z@z;fVRL#9f|T$dRBzZ=>|*m0O!xJ7DU-TF zS#LbBNG50d!8)Jxh+|__3+IAgf7JKU@%7q_d0~XdAbj34Y$pOb=%9uoiNMUk`W9C& z8GAO9bbGcwDJFd6?-edPwmgz{*a@|AzFEQ~`HUrB+xu0NA$0|YmCPe%OVg?9thq4L z-=`x^D6#y=hr8|}5z6hnmY>e0N9Uj0N?3tIExkN@nP zZXS^G+;wFBVQkYQ*qg4T31p;XvuQdmZ#j^E-||H6RKWL@gpmJ8Mqj&h*KvQoob{KL z&Cd8)xEAeIhss7XaPBsZz z-{1nT*J+JUoFp)OF?X+C!2flX71U;~$55=97ne)w^mv6P6muH$xcDq(i1TwH1Dko* zD}f!qRrF6_4fozZDwePQ{CcsXu^)@Zx&H(cGk|` zVM1TF2Z4)#6k!{F67YG-4wy4L7s)?Hch0$v8%`;HWE0!KHQxVTd)Y{Z3+0A`2)ouu zsI{1wr5KTgpz24@Tp`+Kjy#GYi!dwUp-FUOY_Yw)W+aKwNjI~#%mK(@HT8W_3)}j0 zM%HJ(VF*i}Q(q_DIU@03Jg{rd|P zVlsC!{x42aJ0%X8{2AzEAAC$Tn&s;n3VXSOj$n4B83b)Z`^HusiF+i$oBG9eVa0t@ zExU|qc7(nN%g_zvv9KJg)=PSA(tP=nmahFF(*lMQ zXMNTxyi%WNVGR%oVt$?)Z<18wySv`QlApjzv_Z)Er1{mmoQr`(m-KEIK7`DA71EUI zu)`ikqd+DwkCKPo5Lc!<9SJ?`mf}qMwF0kQAC~Nz-xzEH2X9YEve0iC%`9fxoFV8a zv>ik$R7&9{u35lPaL!-DX}jT`;i9HBlC+RnA3?LSP{W)oLTlMKyRKOgHW#P|N8u#I zj(drCk6x-CyUDD4v7Yfutu0o8MGqqr<-lCII7WJj9eu6(I(NBKG0vIqp9662T=Cd^ zpGA=l|Ay*M`4!Vn-P0baa|XQ=lFs_08u9S?+br(rc-<98^s}E3+UHoEQOn!Tm8gM$ zDe$cu^9M`XX(mYhjj9g!ihjef;096wVvt^7k!G9Q&}5CZ{CFl&lSHDLZh5j^pyID> z`P)G~Sj9Uo#v{}W9&;p)=T@hhpujYYJ9bos$FdF?#_9Yex6?cvRD741 zg8*$KCR;W0QOqBf>8lKnp^hUbs@TTt2i}CsJ7y4;;>&NISZZ!o1uP#;n&HmxQ53$; z=B4ypTS9HHzh~o4SAe-6rrkIwt4@*!Ctq1` zG1q7kVZ-gT^+N{Pi03aFrV>f-&VrM^Vsng_-770famWg_lB0DD`?CB3sBeahfr!xn z%LKJW@xl#V9Mx+HZ=CFKDt^+LT-~GIg>iwUV%|GBbd+(wSl2EAlLYqN4H8ELQGxXl z8phS0l?`|tS$IPm%9c>a34LjB%-oIec7Nn%2A5@D2iV|>%>=#F$}o|rWip+o?^-cQ zkhk}fpfItUddsq<0cV@@#8JhOtuONOPN8JHhNpOnCsy9Z&46|~c>L{}s#+mM4HL;i zDP)yIY6L-ZVg5&Y|KcZ7{tXF?G@@3Uhh%B=_vBjdl9z{eDu@g*4*C!37{QE~*$Gd$cRnw|{kZ67_IwLcwL~_TWy94V5$xk-#QbPV*aG?@`I@Eyd z&0vCO5mYgTGL*+sxMt3W65fcEi5 zLM36F&PfQ+&tE=cQ)NT1J8r$PO9D28-PM;{x!S;3Pe4Yd%j2R%15$V5al4TXIegUU zVCihS{6;|JOf>dv5XNKj7dS3f#|EJ=(XGU1w{xhF08mzw#{RK#$S~_vv~5jLMpaN? z7XheiEGGOW+@S*g#hU0fh*#qpL8lXuh;A!J&_oo2C&Hw?|J9PK+W=)FzMez<7;+Q2 zov3gso|*pPX5lY#?}Cc$S9G2!tM5ryYfgt7`oZax8Q>J9m9AoxL3m}p!hrm6LKX_c zc5hOSNV6Ace%5(t965~aSD}Bscf@_1%g@vX@B7`$W}bBop9*V@4V!xH-oV))yyg1Ph$ zQa2H^0z*x~6C)0g&y3K$wJHod;_chQP!6o53Zsh;tqpZ9$=bWSj>K$F{ZWHyLw3~vb(*z(Thd=<5bF`t{>|X7LuL9Jg*bD+vf) zmE4$*f_D-->HFnZu0*f6^>CQ2t_Y-AXr}7VuLxx=8pwDT9F1=aZQdv?&jlW(utHZx zrBH(q`8VxZt!p84*xh04;gP;K8a>C&SD#-%=kST2T`q3?!K?%Jt=@5lVJzFG#CaWA z&m2MD*~(-newc5U@pOW+<}JgV_9tNg4RCQIM=($X2V+qbtl6cuLDjof|2&jPtFPh;fDklu6)6 zsHQZ8--G8=>=$FsktOPxOcS);fh*ArsL{W^ph>Gcffa|JJCm!B;}k$ISv#f$%WF-`^(>i z#au_0HMu^2tPJF1<#7^0%1dU&U@&iemouS~mMsx^Zs$|7J&u(0&!phP!7Ptp^8(w7 zucbO~mwZIC>*KOR2VSDY=w*xZ8vamc-ltebo}75M5(e1xr8ZR@mGJuxr0t=&G~-5$ z+bbS^Syta-I3fq$k1&dKAw@e<;<67JeUecXENwJa8Q!(p%^$J1F(SepbC;PTR58`- zq?osQNH_opr^X_h6$}IwD3Hk(ET@}%ovv;jQL%JBp_rpnCeh)i*hwsf9!qH$66)9q z5HK&JB)yVnE_D|27>t@;^gK|3lY~clMp}0zuzai#QXMB2;2N(pr6T@PV88YkS6X&S zCPHV4aRFjk17J!P8O7;0FK3kF7&AYp&ut) zH5K8hSbC^GcryWvB>HSPJ2P5PCh;&=UPbjpC6eOrfhBNKj;hE4|JDL>o;@Bc+|2mh z3=^fGzL@}*bN|7N5i^V9zzWoM)Bc-)qR+K-P&OZzYc#IFhndscDraekr)^_sLjm%8 zkK@em1k^^`c6Fy>Pxyev*a@A-p>gGTg<3@Jg@ZHE=0Tr%OUECReyf_qJPQUElG{H^ zgtGGSGEE{N*hv$`=GQ0=q00EEnvz0`0M=sgC4D(dh6(lP4{Z!{4n`nnIgg^cR)Ns= z@%pPiNt!UTkbuyYos(sS1KdHvf+b&zFrEu1+sR@l$VWYdo034Y;2eyG7#P; z0Be2@X>YgB>F6&)vI-hDg|sDBpoL)ou*op}ZK_Qa3#k@RI$p;;OQ}IR{uBe+)~(2< zwNfCDl2B&q=!i_U3aV?a4PA4bfLdxR`AV6GK1*@XiZ4Z@whQ;!47nc|dWTLtMnOCt zYe?eNrt0cgLtcAyN$s7b_JI6Hjf7@jt6ru^?>#UV1n6_&AkGa9tyJZ7 z4NaAmdB3m_p^w08xQK8Xdz0zKyN&Hirr*^!bHf{QnWk%O)kvxgs9M>{;3cj3+u@(= z^S)6Zz0dAx{yJ0;n=oOHXF#dbN*UZ<{EO`O3_BWhq&{XV_3N*7=pG6RvO?ovFK1&w+BRK=CJo_E{R5PV{p7T zbkSCmN8Q|4zZ`Al;hZ!w`7_LgNFagSnH82rCuolb9Y$2SB_v|-yXL%52?B@5l7kf!&e@m(Qq*U&-<2DK*YKSX zYfM-2`rAul@IPn5OY;`sm0?UeN;{BD1gT^>S{%T3&D$YT&)+Oz0Ch9-yRfTdJ9hh} z8bR9ow=zYv__zu; z0nWr>v|{}+K8qWFcgXDrT(w)raC!JCRjchaI1X83C4FO;_VqFwF$syUk>1eyY>)mO zV}X?6thudrZ=MYA=RekOWx*k>0R^*%@O<^;9mKr0t~T2#kHcqgc_zT=%1c5}T1X<5 zsFRL5_-(mKM??XRnt-V|uwKB?<;0KExcC%0__LyC<=t;ajRt8YPgwd^TO1{~NrEZZ zdG3Z+j8-zxuY@@mX)e`t{4vk`EMTl3q-b)Gblh?;_ak(8)v}_Fq%lw(m=tvXHH}1<^tCU@afWeu5Y)>H*!?{~R^7i$>A8c?$?LK-2vlsF}>i8{I#N&5lo$-#BLMd76^mnrlYgi4^7O>e+$@ie;ZG0!w z?NV&dZ#NZ7whr-)WnW3+M#{wcqFXZj-k5DiSiX=+eVw=K%NYSqoE{z()gwIZc+Fw> zjr<~N>3rq%54o%?Swt%vhrfj(oJ>uuJpE(O_&kp8x8J<}!`%CK4jwL5cN*#}hDAJU zkI~L*Vga=ej!`BeL|=?0`z~4cleV;S_2C-h8iLo0_m5hr+q~3&jr3wx58p7 z@i%5e8P2;NPli>)aP{KZ&(Q>4H8zz*{0#%bGvsN!Z;7&(!rGBp~p~#XyV1r?qm@NCPqiJDs3! zA7Wcc-Vn8|&;)a~^Xf|Mv!NKA6I~rTLDydA_JeC}$(3koQi4=+1S=PH?knj~@Q72p zZ&>3OA=^nsUF`Osw1glbk?J3y4?EaOfmhj_r4aV$w0$CMbM`8AVCyvMV4z0+p6&?F=vcKU)kavjTQ3|WK*itFV7ZM9y)W#R6-*SrXKTImR|NRus>mXWa zm{-$Me+F_q{zqd+_iy7aNjqG72z@9<^*CX!nb}*n3gdoIX4c^$#)upceEKHcNj+^)+&!ZnV6oN;ekmljw0cwKQAlbZ{vDt_V3 zlq@~z4|K`HR*8uWLTT$t#eg32BJ(f;@IpYX9h+f_aXSbT*+qR#{mn*PuDM8xrmyVL z6s9=4Z#*fND+X3-#16^0IPSb;O!9&wyo?`aAJK8re+d4-%1sU6MKAhxCguFfdM{kE zr4#tVKA zoxzBUB#RP7($w4xkHC|2x8N}|56;)^CbL_>VKX<7<|AQG$0+0#Y$gD4d`@A_j#1N` zUPiTyN`b9ZqK%7VQ;wTOw=|%;32{bqzY}Qa{eJCTaN=It6Vsy+=fbYnQsL4)?qupV`wje~dBkq}~Xb&Zjct*IHxu4ot|= zXo*Dpn56mr^H_t|$)!K_F#pDE$oi;jaE)O#KQ;mRSFYJywzw0k*q=ekGu!5+VtnJF z-<)F?LlZup*IRWEii=b4*aEKXM&`EWL*%i<3#0To?5lkAq9aC7TkFvCi=wS&g_{PNOW`(VmPpl)Ol(qOWh zoZOGdg;LLX>tb-fnp1B^O#-h=c>@7Y+sZw;-(NNp<^SDY@qbbWkR$)ag~e+$6@vlk za1Uu6ZVlWInKyEfi&1Bh`qzJiYx|GV!iryACfAs3{aMaaepa+a?Aefqy3+;c?0pX( zqXTkg2MMl#PPO}PK>V>deF!JpHyo}i$YrW)7e;#*&J~j=UH1DRW)6~d(XU&-sDwA~ zw*bnJnv+- zKFf`P`fVfa+awYF@Bsd8asb}CbaznE#no>-mxOVi`g?Wq2GjiA%30a~)s^rkNk7&q zO9vIdwoZS5t3C$uU6q}eU1&PjY^LFD92*x8Qzv8*b#T;MpVa|29XXST)jODYdU}1~ zRV0MrIBnpjyVgT$0v)($-kOS)9RSgs@8K1Qw+3YE6HqeSOS({;Bz~0jw;wXXd3t)Y z=0&e}r!T708~?5Ge|LedOT8ZB zqyAYXQUQtlW6xk0$8l9Q)EbKRhTXhHpR#uZfpQ2T1;Ia16Pq*UDlotlhCl*BXtfN5 zgya

    3s~@flweDA35(#PV^FB#0ww8-D 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

    qC|Je@A{CPaWgAH#&us)?C)p`xW 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Ɛ$)7cJ87~{#3|_#o2xOh1UuK?bBmXyMpDjq6-3zT?WMe9&2jV@xa8^EsbHy zdl6^hx6-&8qE#u`q61vqt0>R4Nq)Go$B==U$1p6l?&G`I;1#EU-je=&|r1vn!!= zlQ^hUL$gip`cl;=5t2h_b$e~f;F`DIJ#6b?6Ex}614?7*)Kn!QEfAE3`&)1p=`63+NQ(%@}w+G>B=SG&&j-GaPj_uW zc!)kTO+Y(G?}Q~0n9aZmdhA@QGw}=NMl57lA}*@uVvJ>_itfdo_;@5G8i!#XNv)O@ z(5|@f>+SS)7-EE>WnzG}2)t`rF4n=ZEPQKoh32f`S6DdnOT@=)Ug|21A8gOhqQh9C-Je`YTQom73jy~Za|ME4< zE$U%&ndMgHOjR~hl5WHCUj8l~bw6#M>;tzV`htqKMoiLqT>i(fmdj%dCkH;+x+5Ij zYAV}t(I;_b1MQ%7;TTWndUcH#D{-Ni&<&*LqGm`aBqiKN zz%k1%HkOp|ZTB>M%bGG!&Yd=u!p|+?3H*9`TwRO8yQXP1y@$acx9;1ONQl#Cy>XIS zyY|DZ8n@?XdA1k`?-HgSe^BHRoIIPg$Hx#zjr#S?#$A$d^G@ERo?1#wi{9u~qpCP| zR+#>5WinD@@W;Ak2s18i_xRFwd|&vMsG;9TPr<57SCkAZYva|h1&Vs=u_t{eAc~&&&+a9j&CNJ#Dy{wm*&TFc*9D)+1_46%kjWc(TV9O6# zFNa*%saU}tT`QO>Uj#<@iJrLit$vmEjZwvzj+KsouHVAlpu8E_I=A-*R$jPZ%=m0s zzBcOiX{(=gFFY1&EbK=CTQ%cPO!?p|Y&pFViHVsKZ1{&+`k2C^E?vx_02&v*X1zH6 z{|VU@7fvKm`bcSMsW=vF*`PitSsbWSrXgHC^jTb-t$+MC>(tFk(V09KFHa}9SukXB z{!%KgMViE|O&KpZ=25?-wvP{--AxM|`6(r8vZi9)QYhkX8g~hdEtncl=EOJZguyk- z3azx#h^iIgVrvV2`&o1x@~C@lBXCf=x=&f7SF6+B#l5S>exKD~#G#jODcITT=c(O` zx`DmlT0c9DV=Z$(n1{IN!^$>8egnJrR~GlO)~x%uSRLjLn}PQ?Y{Z!hYmt z2^aA@Di$@3UdALB-1_?Fcs3c1@|8@hCE5~Kf)3%Am%mnesgE;7E7ydJo9NP$j70cf zHrBwhDn2dyqKGjxb_GYzAF^mYr|htQ?FIaEmCK;(ZFoc9`e;9)yRxvKHD=wP+2x0+ z1190qJ$n&wa|3i{olyZh%bdr;+-G&7B$bE4Lfa>WC5L2n>UfLt;H!iBR03mkHzp$uN8(>^;YV)*&3_` zH|M|s?D<2V0rXv1!1oWC zVcjr#EHV^k1uPX8rXy2aSYq1fYQ)F*A@HL9qOgP_!p*MTX#k3qY;M?-j?L#!<$C#J zJB{fo)alaUkcGI!ieGXw)Ho*;B|SXhSgomH%lc%LsH%vbN@_M%nDlXXHD;SBi(*~Z zugF)>q;+`}HLK|7Ti6=W;d}AXH;WM!#>@8cq+%U!6lcD$fq>wEJQ;1~a^?M-v@lkk zhzQ+_l}nZ($x4TI<;>;S=Wi0L_SHI|&(zL_t(+4Wpv5NxX5h77mcsA)-{RiUM_9Be z#xG90#uQ^_5Kx)fYg2`V9?Rn$Tg?Y7aXNXB&BcXEuXr!1sS!979Bgq2f<2M8BU++W zIkhJw&SvCEc<##G`V{72u@qs%b-XklL0AM36l*G$RMts&Qf8lFZ8AKIXA&0=m#h;G zR9wY-9h^*4k&}b+b|pefNh(~VWu!-9+fjY`VNS6#`x!b-1`^^Q?HOprO&FDA z5|?sCO_?`&LcnRHn@w*n>8`KYWC`x#yE!$i+{ke%YO;mq7K??VDH=%8s|)*ZyGHQ z+;biaJr+4h(#lvWF0|Gh)aMCc-na2G4h^}5lPfJBci{kC(-)sbrLy`-VB}JWAKWhJ zGevTOz1h!56?a(3HC`_dM<;$ws`8WcR48VpDZdZFF6=Ur&Eg0?o|bpbJW7^=laon| zq7p4jpvVtc)UsilVes;{&B6VoxHFi!W(~G1+H2VJ_(0?AVm2tDVHYcxV-$~~(R2OL zsVbMw(EpKBxA$S;OY@XWubi;sw^R7#kd$x@!8eUFTrHwr19uFqTFyB8SDSDF0S8tp&vSyilbhk0aIX>*5q|5@ zX_@Td*|F%Efs{Nhnv@zBBt%$$j5qb$sv4@L`DYrVFt0>tJ@r^oSO#SN6 zI9UFh@{{O@J$QBY_c*f6`Xy2d5?;ePv&*(*ky1+7Ij>+k@UZby;Zd}uvdyUkUu{~2 zgFCXHU=k9Vjv2GQRm7h-xzxq1d0)cYv?992?Emu^2DO`jsVkP^>h-nad+9y<3^>8D z=tQ`b`VAUKeQmNdoqpjl1FE+||BD_AZ!9S+R>abN0uMY-08a+QWN0J1D~9 zf{esLT&T^SeI6yf)lwoE*x~P=<0X)bxtPQyDKQc;fsanvRcaNbnSOe3+@r&2xgsMS zTkZrab1;ZU(S~S0Vu3y3^3b~Ff}nd_FlE|@ zICE0pOMVhlL2J;#bI)9lMM!>X17iU=(h8$${_ zkaC>G%2+BcJn%dT9CzVh1zkzS%5i|qFCr2rcCv7&<+SNl8GTsO!SEF#!;eGruVpjW z@5kG$lASgw1WDnKt^ra^+&uPX-Mo;PysH_KeryfS2Qjp(r*5f=sMEnz?Kn%s_jGqR z-5^PM6ej1J+dpratHYyddW)n`TmMafBxE#}D z)nHCO`grT(4^ir9wdx=uoTLe{pK0fJv&`vt$B+9eDJ?Yah? zYxcs6UyROj`hd#a^8t9j@7w4y{5AY~@;K)+=}Q237IOm z?!u)Um6i8lSIYq1;;4v6Pf{!@dSy))g)ys|O5 zJtKqBbdwO8i=r(N(d9)vTc@JUhR2xYbokm|m^^ke_G}I;^n?6CR|14VHwdN18C9xP zM%4wdLQ&e=#_9HF6T=ztYwWWr@RoK@v}cevuZ+M4Cdp=^}q1!Q!gPZ^5GEx zj?Jw2`Vc<-XDw0^^=tB%Ez=FJ&UzoEEXbz`x^@q<2EL0*U6MwI|Cmh*OCFI^aiQnJS*^<1O-i^9|J#?8NlV$Gn|(PjEZrJc=DyZP>D$vL(&0&U9S5`{?i*!(x?7n97z1LT2?0Yz>Fr)6t}s?S{vch3fp*VbYY>ux;6eY+tXo z#Px%xh4-Q_y6E8O3y;#?O2y>7hM~77>O150*WZLsnWyzTg%`5(@+u7M@FH$p{cpkv zo$X&f_y^Nwzl*4FeeE~*qRsGD-`;4^{?SX3Uq2s#@txj6^N!Esv+X}3=hqOzyyq2u{a&IP{v@S7$*;{m)N`J%`9sYn10! zBUOjBTYpAmh(6VlUdyPuRZ+iDHry70E-f9gv8FmmUhdgBW%&!kW1U;|ftR=KhR0|} z0)jVV!i*VM{@ErZXE7(r7NHmL_qGGdpgM7OErpV-e34IZ%;xD~wJ__&3GnvrqU>V_ z>iCVnFlfL;EFLo(CyqoRT69BC9*f6^gFeFR-+zF_czp$O3d^LX_0fC!2<2Y9AI?qs zd(jcJt2Y77J9NXJM;9U{YM&xvDqQ~9!F{msR{j>=%4o6Y(f370hN*)lpdDl5*{5C0 zez-)ECE2l5RCk^XW>=`8F=IF7X4q{US&{wuDo?-A0hP>3(jO1telCHH}r#+qnfbAfTd z-LrTb3~W^aPfebV;`(}+3KUHL+d8~H?R9Xfg108Ug32|rKS3l$suvz!T`hgVBfsM1GS(<3io&;RhH#i&`WU7_+|PV5a90%ItFDJ|a&xu{y8GG2A(f!lulSn*o@-}ipT<~>#zjm<_ z;!_Ye|A1zL(Pu*TS8$|IA6LeY^onioSOV^DmaVc`kfb}hqGhj%@G6nB^>NbEbQn>s z1m5T~3LR??7apdmqI6!sLaq7((Y|d7cxcn%R<0_(nK%or8w^9UM)mRS zfPS&uXw>qcfq<5WX&p}v3>_WwH?06$yHt5J>!n{KsUWFP$rWGxGaGYXpN7fpTch8A z?&v?TANuz1h;C2UK&=`YgoJ9a{d5AxO@9u*?wN%c?JK6X@U>Q~tUocvWen?=cxT9(V_lSyaU>SGfq@nEWz4i!y|x=kDEq z@a@X^h&{bATUT7%sZIE5>3g^rvemGMa|62I``>1xbPhun`?dz*Ubub`lyHHlg!)e! zwrrocp08kFeQ|8FX&9JJ9+5@|Sx-#!-e~{MQcP$!2F`BQFO=EDw=$YPVcTO_BuN~S zcgB8#_;@ZoA`Yv)7y8w%4xdLST;&_=K=ql}22+3j0d4H`-sZg!4GtZN!^VwAad`hq zga&REf|7YwKj){|yR?E+vA5vrvr!1jayS;9WSm)V4boDLD&Df7=(FY!GrioK=v8S+p?mENP z!|5`jF+LdaoD%0(iHg{bFPDFY&GRNAKGZar{vdR5u?YC<6MX*1hlr0g)kpIx+73T2 znvJ@REU$oU4#OYceEf+JS{`CyNHitUyIKvUo>yVQ=h=@?r-~tE)nd|d;l4q3{%-qc zKfts>FTJsAS{OMuzTIF89OMQ@?Uc*;lM+BQzQ{?tvLs`3<84 zcW%Vu_o+)Tsn-O2b?BrJlp{EDz#u3o_mzp!IK$qx1Ds2I0=Kd|;9PPZ96ScW&ak?s zb;&?_n$b1o!K1LSLrg=(razz(t78Ab2OlU;KK$@Q<N$)37 zYxvtpb2UvEEexbPyP}?FQCzqY2yK$(b*P+*)Ii<3t&!%Exu~eNQav;&TN(Co3Ah^( zA;gzXbk1p5p#xs|czmYJC0isgBm;v641`W+s)W(I?$daFMn9{pFP~i~cF|F(*thH; zw#-|N4?p=8pD+3qYY+d8Yr)5m5O)I^Y4;Dxy9z;hN}SvAaQ2!32e%%=JER{| z^Q@-;^C)m)-G{Tj#)Uh~^fC@5S&W@SQ8cgE9bf&r0F4^v?uHrO=2dJwYbuBHOtVoa z{^C5tR^h{a?JRt=^G~E|GsV6iN=ctC7&~M#;-7eM#btW6aqB<8inG^{5Tg$hWfvxM zeBS?MO#Jy}!yeltG6v|;dLk~~Hf2#dI9I~&KWs;@f%!APh4oTzUx~u$b$bwU`2vpJ zy^GTki3p9ni=;SlzZq6_{SS6-LQvYm!L<|YU0RFnTrAd-L(-CuAS!@$#uPYSOasF( z1M`!aR+_sWisXUhBrHZdO!cSrRYPNp9T{U`8*kjiwQG+a?|2Z@w+SD-4p)yR%J!K% z{_xtdP^w|s-3%40^;Ng7kF*p`?zp>m42sz5^mK| zzP8UJlUA||L$Ms!;pE4Fz%=Y!?T25d{(|W}-o(?*$D-SS33%zd*_ggzA=aH-f!qG; zkraFKzrteYA-t0Aa4zw+KIB#W6D0&z5W+&zbzH&N2)z_F1zCo~@{pW(E`)Dp@*{^5 zIdaD}f+vW^$tDgiuD)3C($^UM#Za-CJy_iC`KR8%>XVC=?KX`Dqw)B8NOQJqP?+n& zEc|Jvu{W!+_ra2{mt*jF%a<|cO?K);JpP)!6#tw&iqJ&SJBz}FB0G1udDcSl zqQ2->!56(>oP-YjDk}n+8*W}pK);^jaVzK_!yce{?Llbzdd`Y^+7d1icd_C78MyAB z^;j4y?@sSC0TJD&81_7z65GGWcK_2jc4CK;Qf>(x41c%FD7>-yqg>9bnQ z7&irnlx2GF^Q7%uQLI=ClyLEci-VJB4sdaFgqxESJYAjP;pzfUPdB)`xglM=uCsGQ zs-1%ngE%C_#UeQ|0m;cpNKVlrIW+|_$;pUMNk*bB8QSzDq^2eyEj3=W7|V{S@K7Aw zItme?hr&>HKGdSIkfiW8kq~9PpV(vhPBa<_&O~KsEc-oSNtWbPTnMioP7AIm8pmAP ziZ)y{C5AQT$#M8@#}7G5!QHt&03%*}4vBFm;p|Z#?{w~m(B7{bUd@`AA6~;B$Nn(h zknZlyas1>~lrNXP;IvNoXZON{?|dWxH`cAj?a%-?YV6=(uYsGR9g27qM~fH6pkZqt zMQw8n|K8XRFX8Xge~Qmz$BJG{UA)tE5JG!RQ??5`MUSk*cWV|SF6xkB&x7HB{d+xL zMdZNu40|4p=cyeyc6=rFoZM-VG4%26fnOJVh1OlNHyJN4;jI{#0PI_K80WVCgQcgh zA~cMt{kGY;R!XqAwo<$ldzW^?h!l)xk`?iR{e+k*6#^J>VRkFmRp-L}qQ|IAr_kSQ z604FMabZY}Q_eXHkvW4*w_@;GaWTr4?}R@VFGbs@vw!pIM6d1nr>0=->0iWF1{&8J zgeNC_t<1!?1gF>t>|FRdF8GNapW()=S78V?9a@s>fm_4j%9Gyix6gi!4>tddv=mc@ zTEj*|(Baunl)7Dy3+{i;#GJi<8P~XZ7(<$lLCJ~V8n&{=%~&oohqm zB${I#Xq=ybohEy=@(O~O+by9>QIZQNE{rd-dM0a3F*||>nc*>smC22`@E@?NQc^V5 zQQ<%d<6x|z@8IaGt_beTNu!! zrQ-Vcld$!i5Pwq{^#9PZ+AuVJXOUscGCcjy;q;Dq*l}#PGGFRJlqlT^KY#HVIt;Sj zJcAXM9aO+VQqkpKCYIg|Ybz|c z2VTMIrJut8_6EbA|I)bfP_%sa2g8=-c-*;!gX`zu;F-U~)_wD3#3lQDtC9G6%iKq% zsArcL(J?-GJ_BL5BM^5t0C)XwBPci+;gJ!Dj1ECmLKLEsqLGlI7m@$e&Uye04ca@^ z6JA1P*f~@bk6bUOl6cO0pb#4R0w7&?6_Nh^4O`0C3VSOw2uvwuh=2pBQe5(YoXm4E zhbM)B1$KiN4r9=Xo{N$alps!J)d)K@>TTg%6*E|##nrwnHXpnIoi+&3aY=Y8Jp##f z^(DS7A)!`Vw2nB96ZevkrVCf*L|h5Igq`cJqDI;Js8lNli*{QP>iX*U{=^%<{(-QN z?S{Q3BEqiXc!&;>SC6A{;88eultxN18<~!sOLRp_qD4kLPTq-xj>h%@G%Vi~UM;yO zRrW|J>W!-9YT(kTt4P*nE-zA~cq_d6(#xpX)Kus+x9~hJ9{ny}|MqLF`Rh|`-Ln{n z&#uLVn>%qc_#lF#&LS#a|6TMm#UC+#EIbL$R%iJW=i=|e(PJ>|UE9Ilxq%Rtio(-i zU#&`xiyUvsBdl?i^5ig2oUzM$qA{++*d}75FJRM^ z<48`*SxB?na}Ck6I&%f=l=%_AUkifA*}eJ~EhK5kER1T}1kUb;`b+64xO`_FhQB-o zi{JhmDFt+C(KGvf+7i6>`*K8tK5P}wbR@-{!R0G|;j_?lkXwD<*PF z?kBgNi;C*Ka5RIB<1b3kAyQWim7-lxuXFZmLNQY3TeT5ZuRjc3N{|q%yD00Rh5Hjd z#EX{cBFlz2)$V{+aeg>2zDG*3eh^ukdT=@ZbapX({-O(X7IY#t~4e8GriAadMj#WDQ6VISgSAF-OLA|y}1!L73plVNZwIvGyIUKS$KQ+O&Z^)uBq41MM( zJS}+$+L)!#X^oX3IDpRyWDJMVg=D8#4(8_()-b2E2y{1DMu8`cdE|^|D&9+I@O~UV zll@A`D$UxKLjQ*C#4~ZzWh7wprQ0aJO+SO*QaDE@Y4{wx-nKow%XBsD6<;vr29_TB z8KWmn#_QduVe^ki^3;=IcF>;XNAPU77cgVvAEKvgs-Da>UnY+F5nFctj5j~-iT!7n zVata7=+fW?xVkk};_rIWkr;atC$6r+XB!q^^{3;Z`F#f5?&-_c6gF7irCINn;p>|@ z-09#{T6i?sD|q=JQgx<`tLEjaqxpHEK3Rs%!Sb1{{NFt4YS47$-!oSBJmTZ8;i&&< zTs(6Q#jhNNueT3UymDUCtRP4!=7W}q$FUp!%Gen3C{hnCYc)h-wdTrpPH;T64@ZwN zIY>NrtBL7@N1|a@>z1cyXXN9Lm*Q5azG$hFTWz?Bzm=lZr;}%h4v}LK=D6gOTU_YT zAuVZ_IB@Z>v(H^=8!l~}6ggi!DjLH7LB$R*dmWk9K9*P)Yl{m*VI0h7bw$P= z_^64E2}H#VdvqMm@?+V@%S(gwn`zj0LEOL@$q0*zMoV27QX6Eq+Afe(=?OHb-3X;3 z)bNunp6;oyWcafxz`Z$7e` zfT}yG!nx)+idOh=OgZH;EEf*m!KT@NV)kdhVAg^^@b86nNJ-+gt;fZq0mii+g1Kwv zqG1bfxKf($gF?gK|74%$7(RM1>bllMREPt@buPkyg(w2aaFRAD09QlK;`mA7eVsar zYOZcbEnCI#DYlQcazj)Nyo&RIm&H~pe9JdMo!YISEmu?jh8(cxhYt`M!_Na6RC)>@ z{PYf-ova&nVu_UR|5`52g+AQcx_U?S>N^pqFI^DVR;aj0V#P(`ri8>K4<{q_E>h!u zg*M`S(V26FgGXPnH+O=Zp}UO4C}Y_idM-yqV`z*^yRvup@H}`)uE}jGvI_q(M_-vO z#LD(D@v}8{;@AlTpTR>Q%zSzp zZUp(mKl&bGlLCdObxZ8MFV-eLuV#f#nDOFxbequjfuiy#;zfV!*rrR^vg9YMx^^8A zq5J>yH@E^|rBbahpzkOoH8+I}Mun-1n0VuUZFoFs45JCVoD=R5|`Go((Z=$Sa6$JrMT){DAK_%`;4h z)xfF5hj4JUen_rxlPbKFeMpV}3u)Tp;xIYGsn|P8wPb6M8ovh7!7~k8%0NEj=`0Pw z9tTqt^&tRBo?tC;Aq;^rBt~DB-A%6R%e$F^Q0F zo>vBZdo=5hs^h;$x_!>GitL0KIPLrmtNz`B;HYy*Pcy7np9kd~`F*#s;;ZlR=Y>m%jyfoe96M+x>>VqjYr}!4{NnqDJ+_T|@O3QydMXCB zDh;>(mRH2SpCg}+!>OBVl;_nd^~2Wfi&5Iwx^tWU{mTy{CQm{_ETb)U=<>u6RDZ=Z zFDGuv+gNsNg)%XcV`eTTzEUa#|G%SnDGBSLi{B_V^pzCsotwb1*c;F|<}7snAheMm zA}+$XqAkNqUIw)?yil!0 z&a!o?HY$tT+b`f;;02|p7!aeu(`k`NsF{n^8SOMktJ(;)x(r79#+^|;#Tf~9zR=ng zL#j@=2oEbIo*jgnU%YgC3~kT~)1DuT39~1lM9JJ|cyTU}Z{=d>GNKE5ckB$!jdb|M zI3YPXP#hn9ry(Of2G@g*;O5>VsP|NVA@f$8IhY6NJd5K=4;K{E6hUJ3?9Y!Po+q|p z-QH!QqYx!duQ#T(e;S=e!PS6m%C>v478uaw86=lC&H8tJqCH%1 zUB>P3>!KHziqxdtN_gyHsn?G;DZ)$n7rN-#NQwCd=_#zfk_0>Zif}GI6OKh+63?wW z?<^%|A#^Fm1qbP=Ff7K@F~-7WrdS?hP0xkUd*O6^jwsW6;b<)DjVUAV&d#0~(q<5r zY+4KlC%!fN?B8}z$?ggb(cjb+tMtX-{x2c1PRjb5GNilMn@nZDGjm7 zS|ldKLz^5egojmQiS1l%qi#rl61;o4P0ojZ*iTuROtmqyOQ!-b7>-A$w>u19M8 zCh_w*XVHM@yg3z}00)l&Vk2j^;L&6t_D&0=Xq8lcy7M#`n?++<9|u0^GG%u2C051S z;=&K%2m-qxTyyw83yGEVX@@z32VumwFL5(Rd^7w@e6aZ^q^AanzvznIO?#o@^9zvf zkj=r1Y@$ik!Z|ub^m{_!m=FQ`gfM6lBax99gA4I@5R#$6`3tuZA0>>s_+H%`jKb{I zU!t7os9NRdW`nrsB+MN775+SPK>vLNo}R5R^4rWMW*#@(uAapF1+PGxa6ugOBADLg zIlQy>GsCOa;q0Cp7&G-FTw^JGLFuwjW7L3&h;R5{@2J#V}w_k{jyM&l93vKm^(d@nx^On z|BoxJaRxT4B6Eg*HfFm@a)PzRV9r^p(!GNQu|VbP((2*2})s5=HsJz z?b@MJ?E#qg_m?Q2O<`fLI8b=<0l6Id@hs+w8pWMZrc7DG9-vC8$3Gl%Y3na~VG)$_ zX@#y6jVlmZ1umww;_ErM;jgb($7F%A4eC5pSV&l}*D1n zmHAk|hcQl;Cf0W$Qd4pE>M<;PV-7cSgl~CgygXzmJiPQ}JQ$i-a_%xbPd%)RO5Wpe zc@2)Ax~qttSJAeZv0yfQvRMX6;34G+Vkd5sl&Ft|(f&!IKBhyA?V=GZfZ|_UgHC$R8hV+>M0jqsn%%67A9a>G2k2E7I#t z8}JpzG-;$PTdkstStvy23-Qc$BQzSv8gMH58eB^M3HNgQ;p($ah{m^K->Y!&940)G zNs4$ldoL8PtrcQ&K(uXQ-}^#P=&j|CpqP`EV(4V(p{P(?=(*4~$#7UckQd@Y*fZdX zCNONu~ zUMnvSPTr1vT0)vO)4KVzL-%_wk~}7_#D$VUFNJpt2Uj?KnHd`FPAJ}sRvU?BXHH|| z7y7vfIlP4ji5J;T{g~FFkV^#SX7kw(|qd%UE?g94U!c;O5yBFHL(3WwW_x zjaphe}ZeUrYG#w-I3Or#vs1z5@YmwrTPvn)j5S~Euu@`zT>`Ln`o**jx z7~c5tPlVq!OHs@wPYtY#u^opQ!(%ZK`>=8UKX45*Rzl5N_AJGX>j%W&cgJ&$+o0=^ z%#*-^!o&|3(#m-e4`S8K)%bbsB5XKu9gSTbFlf$nrQ}OaIkfI9mfZ}6HsQRo%@9n_ zcHMJ48L=>+(Iw&U^Jfi)A871b9(`Z$r996qY2qsW^`&pH=$NUBLq*^2XffeaWLQ|4 z`$0tanu?bOPezeqri?LWI3Y`w(=OV*m`9NNZi@Ep0 zu@`zT>_Kob5=CG*;C4H33nmSELwR#faB>7b`1LiktT{G|*mnLGgtpM4X{zdi{6K;g7hm}tm3(_Cp*)53WTZrWAR4nD zW$CM&z`=Y&3NoQ-Va0ZK?-;7*3pq76l5CKd;zHO%;2lEmg|lMmPB1jaI@rqD*Xfe6 z`NDQAos#p(eI9PW*FSv@-_nK}S{ZTJbZ!r{zfIR~=Mib!en7~*{fgH#wsl)HZ~osw z{MJqFP{Oe^e!3QfH|Nj7i0-4YWZZk0JNiW&%n*k`oPjEpGSIzpE41jDyEWanE!mGh zF8Lc4tYUbm73%kXL3#eTVwaJQO=nJubFOy{eM>xnejf~1p68bBOZVf`4I2>_tY0#M z3(id#JPGj?tyfu@pVfQD59n6!S=ebzGt^TP{zh`>^TJSOTI@<<0cl!&QilQB8Hx+T zVloXmAIWQR;YsAlWRHOsk0ls5_QExNX$=&CNlFU9yQ`Pu(%wviaM_|xLoa+faU9%> zvZR?%wbT&&eEeTH|Fb~Zwl?%yR$RU&eqjR2c(*~1w@czL!J{}%%{jm*LN5sS(BQ4!thLi9b1OPXm3<;k>mq;QCsXm zP-N8J0*6_7_j90yH82!QkdhpTLkB}KVst+^Ips|AYPGC}^rQYb6c7xqm%`doX96P7 zvP?Ck`BXH#%R1Qq{W*4C_(%L2Crs`#0s|(rdguVMqa)C?Un{h4+8n;Yu?Vp9Mrg=+ z-1R?<>o=1Slu{faJO332!5bComsM(pWta8e?8N+kR_M#T3rdyhgr*ZdQx-~loQc@6 z1gCC^V<+$^(iC%ln**;BxvSgecRmX5zVSW|U)&@vR;@V4o*3SI2%LxKttV_>voTsU z>;V6>H;|CT%J3vZcrRCw8vnPrz8s-(rugJ_pRn+vj9W!7RVPqVNI2htGn>s99o4JKb?io2YrO=*RwZP#1j0!uU-Xh0#k9t-_n%8$d)aUQlzA^{kX!A*seQ_ zw(9#WEz8$Ih03{0w+;@{;p3Oy#-8)r#K$IyPj*1ZTD?(h+^2?jF{ zNf|#fk`b@WkWUJJ25HIqiLsLZ!jM=RvoK6hrOiDTDJ=O!et9m$+B=Yp81qd0W)6prt_ zjB3@}3Pb5;(dVxHaw~q=xdEwKea)Df<-4N7_*qmLW&3f(^Yp*id3cSodZos}2k%XK z9rd29Ya#{t=?{ za9eav47W~34AK&}3V}HwPOm#Ojx6E#c%SF&kQ)C7k`wivECG9IRAR0H&YOcLm7QEk zK9HYRCGQS;DeOgX?hD;iT7Q z85aYu;lieUh~*Gu7SLDS zYO_zsJsm!KW*U~A-eF8RE?>F_x=ou?V3SXEO*>%d2S1@-!)M{(oH@mv<1yNZ8A!U< zU#aJXbPFz){{vE!j~kvT(5^6A!h<6-#qyc_?(&#tkEwHCxGLOo(Tu+Ay^tLk|J+Lm z)K@Oa5p9Mv!{;xKMA`DD`3`4puf@gL(+pcV!*Sno1P5_3JD^_a8fe%c_wz^GT!6Mu z6~Xl1Uc%pdf5)=b`%$51KZ{nVT=&HW?D3~g>+hMerJ5qP{RrjxRJS4C(py{17Cq}*`A_T zk~!BsBQ+Q)F>{a@+zYyx@5HvcZ1?{k9B)a_{QJ4VOfinL&|}FIFO%dg`7JKA1U$h! z(HzjHt4f!Z>B%e+YaDF2aQiQe?KMSNi$14xf2k`z9Xb%DeD!PXbCTVjOTXd5+;^4j zobcDNQ^r)^c1;@Q$ZL5R{H*dmK)0vt(6f_Wmf2&RIlg=UM#M(yOX_p2_JQ?lKh_f_ zRXhSNBQWNg@|@*up6b;zN9&+nIu(K0lV2CYaulg4ycB^l-cRG1*S>!VaIPD|#zpZ_mgs*JaoDk0NL;b6Y%xv*0!#U&pp zh+wT69^(n8bTB=cR)UN8&`K)dG0w2vbAAb?KJzJJ8A!_^13wsu_q%n5m$$woI!mJL zJ+}yFzt7nK?X6H#n&X0vf8e%X!KH|F#!$DNFm8=*_& zbSb8LS4Eokd%vIxaa1* zfay=Qfv1;#4Hyc{fs=D^a`9|sJ3AEjG|fXuPCkdGPxi&so-=Xda%_&X+;Ymf(_4|0 zWD++=Cug|cJe22^32cE&0lZA~2D4fTUlhw`ozH#i{P6MnA7I__e~qCq?~+|GYSM>D zC}X`c{dqx5^IoVk{&OLSx1miDf|9CJI%Dj$>%?;kO;U0qbSWW7iCc-Jkg-U**B82& z1yD-mKc=K6W*To{kBiX}c1`7YO97Cd*<$y@6U|1GtTw_6qLyf!te{CtOU8wpXW)_E zQW)}bIhq4Pn)Gc0yCauzEJWOZ+F&6t>9`ws5SqXY_%^eA4gMMpp2Wq&`;exr=OM0G z-94PTeFCf3o`&|QKPonBjH1Qzr^I-CSTPh$4#K4{d!!0Ok`Q|x2XEhno!@EHwoA*j zp8Mkj#q-3$b%+S#a2+s27~3w-Snj!O{pA!s{dNuxo?})RFE^k>$xayi!n=sCWZTOR zYZIdpaA^;Id8f(!At1H;#d}J*ODH%@@u&DOl{r1-tWtqFUAtQ;?x?XZ4LglKWxueK zk$MLyu|J!aec_1he$hCt%bS(qG2@Gpyr&?=Mdd*P!*Chza*k+dbh;QEJ97%4jHh>yLd%msPA|1i{T&;H1x;f1zt-adS^a1qX4 z*&xmvJG8QGnmz1&FzbWS z5k^T=`y$B)Y*Ad)3xEQ{B2LOMtyX&v2M?V>y(fmCY86LCEV7G6V~6H_IwS7j8Jr2z zB3&1uh(l1wQDj_?McLM!4DWn2>7K<=r|VEu7oFaKXmNM*h7~dL3?T4X!8ND}>T^yb4(YQlfB%Zv4^P;z}FP9<& zChR2Au7so9lZN7#7U25ClW6etaCGpg3eRL01SUBkH6;WcfZ5f zcW#d|dD7LrGNw)&{m4+{`ThQw^}@TDcVG`9L-*=;+IgaN&A#X|bvBYqme=pIK~f`w zu=<@AIK2A@!yW~CE9{Z47LBD%C@dU=;@}a(K}_@Kg-xNMN5fg_EZ3m+F3f~R4V|Tk z>ox%C$$OzoSb>bx>*D%xgvNn4n(b#FCP#cOeuFXdhhB<0e#?wh#y%hafk+#}R>Xy< z9*in5>Na~{qALXrOZ3Ml-^8h1*U_YXf0QXLu6yx9c5(G|Myp<3kbe9MPKVnmg1|o) z9B~G^3xO!#E_=lZQ_5C{SF4_QvT6gQ1SKLUMs%1m(vXmF13M4DIS@C$B1If z%u{u|g{s5-l6=J0#6@l90z-F};=+6&4R3((*ekfS{~j7V*#o}WT=h}K$;AO}hjxS0 zsXI6xmX4HUcKR}KFX}v^PFzOyw%w3n!P@BN=t`79xwgGfDj*8iLn$!HNKW<_0&@)& z-0PrL<1#rKFUl^y72MHxR1Z{0uYwboqmhurdn`j4^uHK%4gP+2@T3sHP(6A$?_h_`@-nfH|l+#E}{0Awq%f$1O zLfG$#&XPUs?CB8Y!$tiFQWG{KF?P3MOR*bVi<-ZY$BV~?5fJW|tbwQ!IjmgA-cTdLG~WF&~X{vAhO<{?9Kj#>{^wuAOehY1B)^5r^F{{7Fik;sm3yBeTkCvGG(QFJFSKlfNSy{@x;8aY1_Cu^awGL@I zeb1e+oXAtPnxJvtDOO#dBtNj%CSv7>V-OmmU(cRUG~7LkEAt$5x9Fdc`oMgLSRor z^l*!@3fYj86J({9?ygLqDjX_ePzSMc5@HoyM zIgTbJ$|Iv}_KP99)NO_u(eXHcN7w^l8OoP^k(8RT^^+%faIMNcI(EPHe#jBIG$7_nl(P(x%+4C}bFwJU?#rzcu z(5No=p(I7X+k-_oHYm{>L#U_A)4<`ksa)U$IqjA^bwT0aSruN{<>M8z!2Wz&N5w^)dMV z&xL51%LvcWo&FdpA2cxN&K!gq*+tnbvh zcr?I>hV|k8%$G=YrHv^Zcpl#Zw~$LnPl*#(j0UM*6_Hx0krL|5?zze@94_rgxDfbX zj%-kR{${A&$}!P6P{c76iVEEsdKmOL_z%?gnR_eQLA}|jxNHv!pP35{A1OAf=&&)0 zz*5b8FF%8y`OvFYBhH0`aMv{&(HzUd-l>|n{;R;wsfzNb5uL8=icUsq2qJFj%Q^{o zOqkU0y=YwLn4(NErV!`!I7xDWEsG1Gb$F1#(1Uq^z>LPcKNg{BE+afQuEgNw5wGKb zpAeV~j)@BFil9@So~So|7IdDB7G#ZE@HO1o@D(;*_Cr!!roq_?EIls<&coW67JJ_Zmfl_Y=JnT6$Gz*myxuaMZ^6 zGra#)0pd*EMxxQv;XRwBccVfN$4)eR2QMKym0<7aD?FZ3;uDIC{i4|$njJNbAInM5 zmyr-E?nOiC9s$FD%-3c}j0cyZ%;QFHMv6-TU~7xBL;wIX97#k$RO{kGvL!H$s*S=o zzb{6s#@v&0BEnNKbLbmber6X^wY=APg*u{Mm0svEEz$#F^W^yVS@FA-7VZv1c)W-tE)TEhZM6qpfB zJEG{AIfW)fX6ty|JcE>jKjF9Y=WzEf=k^&JRVZ-)sAfqGS%oT*?%G0`==O zg`-yqL;ra=NEU7ZCpy8=9?z&)4Udy{~+#PRcLtsQ5@KKAF6^wu`w5%`@I~BjoP@)dzX`JZ6hTV=@9miFCyoLQE-$<0jElSj2^7OJJ&%8-(wcEknB&;*Q|I z%ps}b(%tyo9!y`b7DYiekdMcM#u+9WsuAq>7IWz7~qL?|+3YanU$_bPv)~dA|T-JHCx? z)=jr~evD3h-uhJ`IJ@dSwCp+@Jtysb_dA>K7jRK6u?Zqp?Y$~UTYD?DcTqu&($=WG zY9t6Tx==gzXpJhdirAZ?rBx(mRqZW!)6e&M|BCm`FS)N=x$gUU&bZG$$JJi;K_%HL zO(>0DvK>9|pm96YHJMr3>6>y;kPQpzoArsJVywqcbuZ;JsnPi}R*&+lU0V<8rq`@Y zedHN71xP@jg|O(RkD2+2!+buu6CbztRmHs^xeBMk5QU1xj8JH+)rgi3GqJnaLLm~E z=l2b4Cd+2KB(Jg$vr>Mp$t5)U9am(^rH_Qb;W%kpZ__tDF-5n84e;tg1vcW+$^v&` zxH|v!AEPE-e$PjBS>x7E=5K|aoSj1#8=2UCBhCy1wuG(fICG!OGT)zQl=NXlBf>89}Gnx5sjGmY&fbA!EN zbn19GqD@Iim--bf(n_yX!@^>q3k%;;)91v!GNpha$ zEz8|Is9o51u8fmES%^Tz4C8{ppUM~HH=~bvv^WY_wMT%ti7QO1tf*XgHEo`@dwzry zx;l{i;G7V+(zJ{#%2tV2ii{v@UnFK=ubzYonvcccJIVCbV9rOZeb+IMIIFB^oCHlw zYGFQ2+=tvI?&h7rsq1CuQ@!7Z;kwLRhkhqbiWFXohCmpX0^wh4*Cee{=n@8mCW zenYGH@s+mtcs!}aRa2aKTKxY7+E55pXk?J4BX+mx$qwo4ZJJcCDE6 z>9r??Wo6NY0IDni-Sw0YqS8R7&nD)#Idw!N$#r1NtXQg1J4fimD^jyZ^=?|S0P6O* ztcL<8rY1gBer%f7)(Ihd;S2R2DfI&@3D%#+ulp{0AE9~e%Dj9o!+VE<)R#9LL| zV*BY=sMkybIN<#&(DVnT)ei)=_AhlH)|li@DdQLyA2H&TqluE=n#T&vQ8-w9VpH-* z`=9vF1ycDdszdP3D_ik1n)gZU3Q#vX??BIFlYJXj6Eq&kp4=Z9(b4ewoE{X+C}O*z zA?UtILBl2c4*EShT3w1LAgo2Zpg?BC3vou~x9XCTHk~R(fRT&8YLB9C#*jMC2XW|? zkO}k@FD?#3nxjb~br`KdvgF)DE$97}}VVV!hq-Xb{e!nd=S zOrd52D>H`~l(A7tmYkOP{8u%sHbm`XEIf#rNk!Np(x|w!PxW;{v+X4zp|AN zov0#fLg=X!2d0@Z{o^G(BR;&${PUfP#7A@aZbypAZTnU@!&`k?hxHzgv(54;_mX`~ zyyvCaTju|yJb&bwpmjCe{b4cZn2M@e=IFi1Eiuh=!+Hy}&$|=KiHy$fKd+X=H(Yc- zdr@6|7_n8ES2&&0ZFVn5%XEp^)N4-QwGu;BmmQ|rTz($x74^1i4_~f0Qkk%P4sjzm?_R)HR^3#ycuFAJT=?-B| z=%qBrJjBmNl*%3bb)xPbLEY>!y1?`?*X;2WNJ%UB@+#h0ow_xE5WoK@xhG}&u+vR! zp|_l!JuM@(Tn9@w{3qFgqRT;F(^+&gV#0bO=dDoi-`)KAM=qwEHRh^x|~+W z(XyJo;!K9~PFzYlpKQ?R&+b(Wo!^-`ICG5WDkYS`$G3YUruy);lqEEg@{2UXcWRi* zZ7*8MkDVlT3|mU2e;>1XyTr}_vY{XZ311(d=nGb2H%WXYfb`eS~*Fbz!7Go+C`Tg8cnTSwTk4ssgxGAr~OSpAcL!L`I7K~F6anq6c~E!c$OOyKmlF_Y?&))_ zmlUu;;UI<4>-c{BcI}`FMZ{%#>Z>rO$3uag-DlG>CzXx3hnJndy9p1rk0QDK0!LYI z8qKJ*@Mhd5W^!WrLgrxoLrXhPHdR7_rP0rMMe!Uj?rvZs^QEP8jjYlg06nob96;b! zp$;~(AL1;^NUn8g$OWZMWh%nx0@zbtW9To{-UkDy-N^lN0JH~IOsHbv487j#*R&kt zKlzzVeH>@rMn%$wmmbnD%r2}i59TQAnO;}fTjckU$Y{rX5Iy%P8bpdXe^>wMN8 z|Do?&jGya|Z(PxbI`3S5Gt0nF=MscDY-_H2UPvxgUHL<2TAZ9dJqhyJwR_wgygWP`al_mwhKqs~ z&?Ep}=s&up2D7&0)G)dFU_tDJCHV^5yCf*7$qXuiR0s%R)q7<-2(&f|R5=h`J1)C~^#+?tfn$;5b*xMDu$p zAgJL`U-rsHLZ_Z zR`fSS-px~I28M_bq#G1lGXKL5+`{gplS9M=9y>Pu6w6)wrPt)<=O+A<*L8B|SgvS{p_CY?$)X{yJA9U&3W9>U9Fu)f^*)6ifdO_B9o9PsTviTdY)z*u> zIeP4j*Ncsf*L#f3&DC($0H*svW&3k``aWquc|am&CuT5 zIqC+@wJXk>T-Ki+a&DF~{}ltby*Idwt9jb&z2}KF5RJ|cQ<`3 zZ96O+Ms{kqH?uz_551m)9jFP#fYXuVHT2z@IYal2gY3PprjzydQ0~o0=$TX zMQ33Yi&Y~r(GQw*%lBX7V?Qn@)$m!QbDD|njcPLj)5tw|qa9Pd8%}6^QkKN_m{Y4z zp{xBvJT*DOW2nfb{G;{BsQC-_tD?H650d}3$8nL}P|xZ%Za*SP(tTh!EZY`jKdyoM+&LN_d?u~rXu9~${y%&q;?W_Z6=lZP ztxwY)V=^y_<)6tiRTa30{hGVIr!!IJ&B#940y=Wc5mNqIHl8}}EnS(EXJ!JS-SZPr zlD~YQDG2|3#M`pygxb+~L4%Pb?1ML<-P;|DzlcqpD z7+-paEOj@0fiZp1R`4?mI`}8U#0X#l@Rm;LUR`aif-YF0M?%TxC8 zLr>C=JD>DYl|07|_n4umV%{G7PI_KysIid#fjh)ZPnYzE9GJ4bMUh&) zEm0X>;CC?g0i~UOy-~k!k>kY;HMKx*L2)q2F7TCcOset1Cj^&%-8u`?&`s-d?OD74Goh7CvGj_S1OV4#P z-)9H$x>9N`JF)PMCxf||1BX^NQ;o~E5#m^QEro2is%}81gl<2^LapFs*<-6I9i(0X z5a{=x@FACwT*a!#jM9UYm}zVLHe>uuPMS@uIdWQ!iE~z8{5hlUZIx$S88mi*o_tjJ zkzJlEXp5GX2z)NEI5yVagZ|*BHTHc*za$CK>?l+d7_C%NPH~=0?icap9MapOJ|RZ#t8erM(tY zb~a=*gP)0r=imcQ>Fw037gyWvL0P%tI5+OUeI`A6-iroy?v^w>BdZjaroql z+-L5~4*@Hp7CKFhpp|G`=>e%ly>j@QP zdlebL`)V>e|Lz!*alE?zpfLyzhe;#ap*4ov1s~nD_5a{)Z(M+tQE5yLTIU6ai-VDm zNrsc|`tx6teFTciv4ZN1QiOi`scB}xdd@0pg`RX#itc);aBkGo z>^BrUuw-?uwe_y!(8g)m&sPba@4C#~=7CfpSIRLnf{Dsut%nse}>=|bJ+P|AqTV{b8K65K$7x~_U`Dn$yvK93K>d^|nl@onKhCe$=- ziD=l${hbO+vd?$rbXG#<2b)^kV+~zgAiV)xNR-73!Ki2;>y5}QRu%w&%D{Ik!NhuFY7=4AOw&;&)oW8vdl5rHlhT`Q#kyFz zB1;nrbpMrUqFLBY4Y4$_yxiK`rgL7Wdf`%a)2fybww#{P=*)2YYi27yZM24nK}a3@ zVCX5F5B2nj7H2)i62QmW<5a_eRV^dr{qWF}$Y;y)1! zxNmnt`l%k;i!}!ISz)4Gj3#W6C7>Ww8x`U+cf6HDCZeP*(B_AygA@^dy$<8g)mHEZBUARn}u(^_j1Ke6sjGrQpFHYj5t+ZCNm?ke+#W^6$a7 z?}mhQp6fALgTag=qsfW4cBfx_5#`bfEkZn`P;m$zR&91?V|#I}PMhybc4A^B{atQI z)%XoE+s~@U9%G%2tv|_>81?fTr;B_wvRf*L&v8-snSpAwPky`uRi7=f4*_VnPRh1F z4bLm`Vh24^c|;-1bzm(ln%#PWbmw@PU$CY!TodR$lJV8wTzlukPEvh6q*87oX6yvl zrt-FZwqf-& zU^EVGrxFtF$o~jT2+JceFP;)Bm*#_MKDR6@1COK`;lV%7{_wP(_t;(6IW6!?5R&%9 zF}~Pdymqs&dxh)jXF2GXC*qclzr2Z7aEHEJY{1T--Xl(fg&6c}4}qhoUvs zLxRVkSWY6yOHsP%oL~H2Jy8>hQm@m4(B7~7G|*(kc@J|XX8q8dLaV2hk(4UfceAn{ z#trk}U^y;g?>qM6qLlqJMJd*sP_mZ%OXHW|w@jC_fj97=tCn+)As*V?zB8SmIllRmIX_caQN+9l25qzFWMB{b)^ZTWlA?#b1e|m%4koC3s16% zj1;FP%V8u(WX~|UNfDaeA>SbHp7b&eP|27OJ*hA~%eay?H8mJ5r0cb!)bJG1KXV+x zZ78=v_&E4yL{ttNRVh@3{|krf6q+{q>VA{4Eh9**CVy&P)tdmBxgdXC<$PEFPdc6| zt*SF=7WQIp(qv9J^GyB-=!xxtKeEpFTYr$VauPBb<_9aNT}CB(lox9gR z%NRk0MhLQ8-!dK-hj7;~0xA4A6S?@?7(!$=uPf?GVp2v<&iXwTtR<2#&VPa}tSOZ4 zlyFy0SBZ!M-8>!(yi!+<2$6)SReZ39aob((>d10GNEteJz)AKKn3PGb-9x&6AmuR&# zSw($%t&q+6t0zFT-os@4H)CwZOlMyysM*pzF`cy)gzN~~y&SHx>M9kWAuGx2w=^o6y=->;UCp8Rmx-}hP-1JPPcn_iiT zZs_sq1>-sDMNMCFum)1!O@8i0o8d5aZj~H{FD! zT4$bta@VK0Kb$wH|MvYj9v?X}#4pOvQ2LFKnD6IC5~}bbJW{m6qIQ&W5|CH)G$$Dv z>?frVJS;4Fuz_(Q?SVT`50PY~7+ow7^Yct+`lWmd$k8z8-(e-3epp`5$?Pr=>_HhK6`&~in7dT35;vyiPfU~Q)aAanW$}ov!js% zmV}6(!eq>=;lFziY=tGM<4}wvWtTaBXnGpOEb~MA2&^oOLi~Jprps6fH#UQ6;)ONJ zhQ(d_Vt>&g`N=0vehDxp{7rj=$L7lR#4@Ur^?7GRXFb$P%9fEFv$P+k`x1S^~>>m=1n0X+M6OfExY$_hYh~>t5WJCpF6n+4d`AFNYnLtL!f6plAfJ} z<@fj%N}#O{Q^mAC#1RI~_9o%R{PsqOJ7SS<9T;AN%3J zfuE6GpuGqFsl#JAscqCv$57Se@p7@Z?_WERVA~ag6FTF1iRy0t;3hqaNg$JScvxt3 zuvFo7o-_Fq=&Qb*-@TAgyU`B!H*pa5mn368lAfJQ0?k}zDx5DBZnn|{(nVPCwL0`B z^t#Yn1~>}A=QI9yq)InDG6s*Gmqn4D_alA${3>I6+kUeCpsrm8PW+5mwV0!v^O`AC z^??;=jXJ{`m}GmV5?-B(h*x|^(=JyIfy=bGab{;Ct;ZJzS$8jU@uI;`ClZ624Y@JU z{YtT&b5jEl*V48lA(_};x9FHRZRXY~%+meZOlS#ayhet`M&?*2dQBBoOe zRBK^0LadfE3fS$jg#u(E$4okrSXxWOMnLG6AAxwgJ_TprXPxtxQ<-zy(U)(!Yv{Ap@U(Qy)RpPd4bMM}3~C$G*m& zyZRbq6or3DAgLnrXvh!w858bD#8XMcG+~5qjLy%K`+Hi5y;+iQlPczsk@;h=XWWmdI}tGx9PYfg??FFRlOcnfp6$8$%z<2?npfduVIsfI$^w_{;;W14ydzE> zV`2^hhzY}FjzP0sYjgC@#|uN1B+UlwUNd!1-_wEsD5X+uHk^O=f+lYH`K$l-KIM^w zT!UPPP>BEe_(DS|(K0$zW=k~8J$81>vif7qVkY(?ThEYTWqXMV8E2`w^L#(FtS?6? ze8ukP&!2_w(&@qm{Z59C%B`(lsM}>md1*2~@Nd;ZCTcpxEXQHS`^#Z6&aCzBwXf9e z0BhINw{kX(OU>voA>KR>$S<{JnlL38g4zMDM4cXA48-F#ff`gGXR*Vk919*^gZc+e8%Z&GfK zI#2ZTUCdTN-e|j}Ax|)cd{NvYNNT4{be2lA;t?f8tLN8*Mv{tk)H*SNnbmZ*XZ< z7Fd6Nf{^$b$D@nl70>KmQMpGXiKl7b@#rH-k9GGjROHya1KD?VyJPs<81~Q4Xi|7H z@0Zp{^G_q@Nl_sV+zUFeh)t0ffYDK|9SI$4l@F;?LD6BxGvSRikB=0Qd|i=17Vsef`XxnOuA_Im(_f8IJwwJGDs6!qD-xI+ z;xu*q@BZrUA(%K4rzzj-M%3KCkL&qdCOg;?qVDXbm_$H5IjO$Y1J_Q!k@0&xJEm(O z8{koH8*9Ie9DT0da8${Z2leeyoAB!@AfJD{I#sq{#4dcI`u76+>)!kaM^*W=Ky zbGT>W*ysQ9aEJ2WGc`o3Gqa2~;^x?$MM!caxpqmaN^PLJ@rLTrW{A`KNra~advc|8 zUEVas=vJ2W^U!f^Dh8%fjj*6>Sf#gmRFy+@n(-S0Jl6TioQdiVbn?VkUC245%D;Ch z1p`u<*vd4FMfv#;DaXdTiGJ$Z_zE;ozVGu-J`h>n!rGl;CP`jGl-Km&K2@M~l9|*i z=R$zP{Y$Epdp)sz*?1=o7rhC@Qb(KgImBJY`*+_=#CV8Sn66hU zQPhC1P51Ab@JJp>*2};j+PzShUvhRH=ASId537kA`|M)C|d9e_gtfEHxMz5UV8)ZM=ublkwPcOZ30$PN+Sd4Xn zgtkA9>2fvt9s6ZCm)p_S>`*BN^j4AgKylP-b?>raWctF&`zV*&^hK{SCGI6db#b)y ztQl{bHIW^tXh=}(-``m2PG~RfwcSH}z$O@GG<4K>?{~UlbL)Qq7%#(#YG1cq`xV9= zStHcFfL*vGiKi|+nvraeJe4Ij6+=cbI2cvk9q~-yWI^hyQ8j7u244%7kc4@f?2={9D)bG@u%EhzHP+(!6ZKcriWT(PD>hw}-I8-LaT7 zP1uhkt_#+I1iR@O3L4B^F4ZoFR3fPv!PWu`Fy6B(IcT;IhXa4yYW7giQ(X_-yvW+S zE>C{xy1U|gF(RF$$kD;I;q^bR1ea@=cO>mTS*8j+~(g0Gnma- zSmjPlc&95N{FLR@>yuAF_iM-Ty;FiARD==orw!A@1L+u0xrq~@35iWf&r@=-?Uj;# zlY+W>hFzH5ZC+)0vojejmr8dM^ez~`yCUZTyq}=y^zh%cdaVq{hUlI-R}_Blv}kI| zTjSU%M6o0WkKLh{h&cBY;N6n(a*jo0V+S6g!R^soHd)-EXK|3xEKOPDe9q6S#jNTt z9go|i14*GT2WH@t&kw6A8bj}cEikF z4n5aQjgJy~6YfFqK+}ixtm=GKAyORFZa1(D6T*AQj&)O~+RYhJ1I``Nk9K2`StCo$ z{=3QsIqk+l@N=3_=99;l^naV(H)`KHBx;&c5H)=sNCTvqntj5!=H|$Obx((Y;Cye< zcR~EB#N$c9)2CsYDQ`}JAq+Mx#|#i=X@L5TpAbUWW`Q7D(@HXJ4x z;RZO_O}b zOA)ZvD=rea*`ci$C0FEhC~k%-MQNyvAP7DdBQ4aQ#t)CkW$azLx6V8U1YG)y8F{9{ z5yi01_`u!y-Uk%aGf7jBCGI7ri1tEsEt9&M%LYgwrCP6Ai?`Nib1TdKnZ?$_v~&W7s@uvXU9Lj8bt`PQZh^qNYs?L9j5P;gz& z^)}eQBIzr>stKB?u;L^`!u6&m)!ZwyjqxGv)4q3!LJZtlA`emc&Lxay{XSZTzju_P zg<~_D@F+wgI5_V?$XQm%Np6 z?`)eEKlF$N-~XE#p#%WZmGt_)TtvIW1-!bJsy~(+MeQ=9*78f-$uuj)-Au~&e1n`}~^UKKpc`O$2>X_G_&8$qQUR2wfAo>9ib(o?1N3empN^P?zFl_ z(`s4Sv1PHs-JXSMRf*AttcZhp-J;@B|s>sYRe^H0@Va6nU`E&KT56%0}S0F6x!}CvsqO?(Mt^n$rr#kW4W7<;Ew8`E9A7V?hP@Sy$^QtSz zZ$`dLuoJh-0K(4NZ9-@Od;LImGg@^?J0*7C*D#^P74eH3AeI!UVnnYM)0Y`N${-nX z8yJ?$q#VM|HM>4N#qy!dU6GP-yebs)b5$s(FBa98s@}Pz#Q=k*W%?f&PW6(F28)N$ zeZm6veLmm)zixToc48KFxuk745ntYR9W!PDJ^}EoP`)JhA6$GTD7DE^3%|buHP=?A z6KhZQe;L){2eqy*{7OD};rt>|JB@3|cS15=8wPtS3D)r6x%82KsfYx!(H>2{#`%XIOJ|*U{O@oZFMDTFm=)yx4>4;Jq|R4jj~FlX34-59J*?MmX+IGEKx@+S74;LVl8{k6TWWj|+vwx)a| zVns6Vkh|mCpiv>u#)C7VNJ!EMGN4w+^U`PLzFc2#(T%^80_1$^AUNaqMF70^&thac zokG9aP<+=nOR;DDX}5JJV}Gs;g~sY2$Gcitm=8e{EzV|bjE8Bc^XX$fsx$ikz}LY0 zFOlUanQd}S5rh~3t+~D5ltu5#z0z|TE|^)rs>+%Fx_i}aw0!rN@WHiGTbbf0dsbMK zI%eV_?gV-FJJ!znGH=nuTnPvOG0ghgC$?J(b6ECg$tAM1&${uese$Ey=77NFXk z)~-jUHWSdru~ZwQiHx@H<5zJ26x`T=0>$;|?Y9K&YPhqQ_&w|{b26p(@Zyz;HNX5z zAgdm%>l?AcuFcus(T17LRl>ylJ{wn)5lzm-Bn+ed_d#WbidAG;u+;lqY1*%o`miHb zvqYP)SGj;b%PDyKi83;^wM&4U7*`^0#6oPB#ce9Q{|F$3E>R zAQzKRT~0PqQKPt?Qi)fWBEl0u(Pt_Q30rOelP;aRfDB9*|3?P)cIM`_#%*lK_#fsb zCR*!6z4i`}%EEDG3SuqCY{_Ybi%JWu?-u;eWd~#-CbC+%pOgWRKg6R{Y?;~QnBSrL zTdbY@{@ZQO+>U5G5-r?>Vx{l|P2MzJac!a{P5iD(2D1M9!J1P5x0wFtF(57~`FgbeEi8#)$p62=|GO{{BO}o5uWgN5$S4x75kGobhMFJM H9i#sbzl81d diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear7.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear7.png deleted file mode 100644 index 417af6c61166c727b9ab50cdd14a498c68744e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77056 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 NziqdsJ&+yE=yzftZ#5;QXZo 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 S-AwW`#1E{fu22Os|L{NMEB7e? diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear8.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonclear8.png deleted file mode 100644 index de64264914cc8330093550eab1f0ffaa01e91be9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71177 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%0Dr63wml-6F*tONlh7MSGocvsq)+w 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 L&GqVZUE=-^HyYM< diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail0.png deleted file mode 100644 index a25325815275dfe5e34358f3509f93fa273ba40f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67970 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 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail1.png deleted file mode 100644 index 2dcaeb92e3bf4650be65948ebacd9a7ae8bc24ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69118 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

  • ATKFj*pA9VSx9n&4rRut6B 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 diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail2.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonfail2.png deleted file mode 100644 index 0f0b1d4f59fa046156fb8911ba14cb73ccb60710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73351 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 BEpq?> diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle0.png deleted file mode 100644 index dde0adabb403485d9f92830f5ab95a4b4396ad83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68649 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 OK*OB3F|9W7i2WDz654kF diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonidle1.png deleted file mode 100644 index 7295e95efe9c962cf5e5cee94ff928241b81765c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69329 zcmV)@K!LxBP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D|D{PpK~#8N?41Q* z6h{}w|982#dq{|2!QI`xxRsWo#i3AIoVH&n6{tZ4D^lEx6|3Ox?h;5s+~ty-ee-s2 z?=BFzBzKn!&5usAvuAsIyZ?Ff=FJh(sdwRw@4hgdbbX3T<1c{|a^D)xSkW z_u`{%p)PC-btNmh`-J_%-%<)mUiW_~=1Hk&zxfD1B8jhVq5Z;NVVeqxwd9q*y06jY z)w;gCdeKo`D1tx>e--L&p$K)|*HF=g>cVq`*9hChtIz+>QYzXdk5bVt`RIzSAh1GR z_)CQZSSXgP&~tU4FVyKVE1jY%+`?y3A%wpLMY!nbudq#m`f4Gu6^dM4bobF~>3O

    8CJfgqHE01HJBS}KAVQxSw#5L@9f5@Bog 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%0DW8d%49(wA_m-Wzf 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 K%$b<;G5-Nz>y;7! diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai0.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai0.png deleted file mode 100644 index 911378cbe91f2a6fbaa7d2ee1f8e71de3f7e2d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76964 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

    g`m? zl&_V$nw17ahvBu{JgzE z{PX3*=PZA1>*W5WYm1PXQnt0zG}852`o@M0{`jxB>y`VEb7okHRs<_&6mqy=N?OZ8WkO5@ zPd}YEP7x*%*lJYz?M6d3I+=Yj;HohdUL=Nn{F-;bzCGJ;GU<>wsc$9cl zZMPC*NEF%!3M)Jqd;?o&uu{p@ z>6nvi#UqzLgZJjXBJ>t(ZX|d$89riIiCZjlQ4&KC%(>E9AaPtUp(O>bdJqJela4oo z%VbopBwQy%P7{M67r!2gMRH2nZhUEU?%Nb&LnGlAWXoH`rR+z2TBUC`rtx5^2+;|{mf6&tt|~M$l+eJQ*ZBx59U6Or5k_3ti^Ni+oJhG7UI{X zzv0If-{Rp}FJsE1V-XTkIV*=DrQPe3@%FV3;+4OCb&vyFED!572JI$31w+XBl>ya7 zw#4L^7Vr;tZSU$4-Nzs*rViSQloVs$p4r&;{iDt`?h*k}og7_F^~JGB+k5U6_Z%~< zY&zc-($TPsXwlPA?wXd7fz7}EEpOK(P9879@5h)kOoOL)M_k{g1zL8hyn)2?-@c{I z&~pW{W5KFqTsr7R%vk#&ETW$_TZgJWACwT6g3a67HC0FMqb4njS`ZFe8cO`Zm z|5MCQN2G|qj=Ou!6rzv=7eUZ-pfP;Gk^@m0f*^RJ6fc4&kjWc1u98DYuZ_oF8`dND z+&cIS47|K2CWM{t<8$c5X88a8xx8H+X#0)Dz0)2JU9U&x4<74fkPFnxa_-n{=& ztoyaqMf-Hzh+6<2*VRv1E> zU_@9uL^QP%bvei>F(dD)S8zk`?sc+`f+VqE?|f|h{$X+3ru{TcTcTIQX>GqHB^4>j z<$J@dwWlY+UCAmFZfwYC-XRp@n=>5iF2-yQmL;Sjw|X|)892T#1B()4rLn}W15=s? zqT>+P7lkta)1j5{bV6MVDUk<~lg+qm?8A8Oo5zrsd&Yhjy!f=*W(grVFg8ukfs^%u z_8b&cHV2`AaTX;PK`1fx%jf#}prP<#cT7m=5u!NK$#WTqb!1F{e&ibK%5 z?+93Ys+S2gHfxWId^}(hGdD$;@+H<{6cxl`Uy2n+#pKUiyiT~7{%F<1)(gKXpk+lu z$j#JYgms7GU^b?r&>D&XokpO2 z*XrlUIA3Nz@h)a<+a}&S9o>74!Nnu4LrnLITeNrzN0e((qQb>@bkVHk^;q=%X54z) zJy>(_cUUcsF-2ma@@ET(|Aa7EMnjhdFQX%jl3eiQKvb0=c!?N0U=)_?A~=g|$!dKn zn&ewCbm|0nxsU*gKy|-wZr!gv(*ItLUFqVgi9u6Xl!P9712nzud4y`f(7Y2mH0y*; zhHMRL)ek+fvrbRAa2o8#QuF4Cu56I?9~j#Mo;k_#NZP8jQbN82|I%A z02nSx$pGTxOxQMW3)cVm7v@d>6W@LJCqDUc5&l^DAC~M{i}kUqk&$^od{)_IyU{Th z!L3Oy+8x*leTP9P(Nrxd-xy%^@@T{y==I7G{>Oua1?bOjF^BHuoUGW zDdRXzefu+N3kDobPk=W`qQ@Ax`8L7!BYT7=oFLZ%6qar8~i76IVuZ!Yb<= zc=a4Hs0$fxwEEpD=O6RQ^d49b$1;zeLWT*UNh~9R&0CJe^tZmmglVq1j{nZwf%kr% zjxAf*TGxu8&|$dynQx$rJiCgdst8^BDSp_z32AAYrR(f~n=dq;;X;Do=@9@gH$Qj^ zrOoqVEwPHfR`It){xzBPFj)#mhu!?q67pXL?f#y#2f5xv^7_G38l#KWN9_Sn%H;Vv=)H zsX8#?#C4k3V={){^daVd_Yk(n+IA0P&#3m(P$f|Ehwkra!#;DZKsPLSf0Lpl|={ao4yT(dXKW?aw$9tWM&Z z6G~->DLWTf{>fkXbl&gSePo`Pw+xHtvvwPy6cYJy8UH?`{440+49VOOq~u-;AztK}3zGYb(i=ra2= zst4_xGyjXeL3!ZXkarOowzW-$qb(l=$oWJrcypMYXr9JE4o`gkD;&>O^e zG9-$LlOhIpwhULXY_c@CmLf2;4_Zg{!=>W${x{?@Tr=rfJp0z`=-p%h_Qe*VK$j?V zULgwdj$-erB%Dmm!jP;3FmxP@68B1Kp+*9arrnT#^0@HAPWLz>nzy+e1^G$h+~;F( z%T_RSpCFGLnzctiaV#$1U7V+?ZB1J_7!jKh4>uuwn)qUC!a;d`>1`g-MI!t}E_zR_ zTq8m%HCEYB!TE{5)<)!2$k4B$DYoo809|oB@-4pT7StKthqREBzAD(bU@u;sy#$5% zyM*`98@G4rfFTdweU|d4Cl(cE3n#Gvz*XCoJJN0W_Y~f`|2cfJ^j9P#F>>V4^CSl< zf40qF0+IufAthQY&g8&Jt&)QiszVS2okNlWvwMu&aceR65~~>*o=wm>sz2Iyx3%{! z4;&=H9sA(azKuANNK!ZAWPu)ILL;DWVJkhX37CQ+VC^|c#=}O2`ynW#6|yZ+Lira9 zrO&VL;@EKag2p2Tz5(qK7}yn^1R+fAeJO6c@_)GZiHGs%b2nk?-4ik3$|2}BygiyU z^+N9v9dPZnQ=r{dj6>N5xqBJo>?DfKNjV5f+=UpwNSK;5jAnN=3A2AN`W2^POMI%G zlx^tPr7tYjC=?eQLU2S!gj{rbC9S@7Z;U87iM=`Q&yBYp zPLzGADvM$rb!zNjcSF+(01?&>jK~44uU*7BQ&B5!XvvPqDfao3M;rptDfl9p*yB_=!MIB zjKDQhrs2uAp2B^PPsM~=Mx*zb&S=rvUrwU3x_|lydSKkNG3X=S^XO46GV;>}C+Wm* z%|dMIQJgrLj$ygSVdz9}qM8BU1_oWbix75vn@~8+2il0(-Lnm%n+75^`GC-%UC^n| zXjnZ@2bzmJ4Z+Bq{n(Y|c2=^#c3?zGass@4qJ>gqDU>2Ti<&GWttl|^?shyKYmUXjD&}IMJ`jD|4Mm4;ww2bdf@Q4>-&ueU z|M>?7;g$OZ^}~GwMxy7{p$G}qhQ>nn8ul<3?pMMLBcg=!c8!JP> z7JjG=^a|M1pS{Z!a!{(2SZm3AgA#gDQ3k3*5Im_AYBExQ82XZp8ETSVM7%i|J(>+d z`yLg05gZt;hxbL+nibfYm?bWB5wZ)iFx*%KbN902lr;gXmoN0Ky2H?Y3{vu8#`i}cfyIICs8DRCtaIVdPWUhYvbE=>r}^pGS` zUH+!gL?z6`cBoL0-u7CBhO|1{yG0jlU$+%G`A4AFrNA#khY?dJRB98YeOuD-^2c8y z@zg)!EP7&G_o0~j${Xp5oq4)h#o#4_wuk7u^= zpt=N6+KXU>k_$|F2_b19wx|Rh!-t^zMM~Gy^3kSOOBnv!j!h{BSt`oKch*cTnhmdB zr^m{ITcPIe`yR`;q(I~0iz|DN!JsR++@o?}iR`)Jw)8sM^k|9+*G)oHoF4o0{ZLfE zmeXeB=O4xHq|A+UPZY?!USVCXmy?NfGQe=3vpI!O+M*`&kJ7A>LgUUth3 zZMQKPU2qHs3j=H|*Xs#J{VA+HdJL!jJC4@FYOR_pxO{H?W7E9d2Rp3b`LX5wF3h-2{tm zZ+D(4wo6uW4r~p?{cLz#^%`76bqRt{rUyxaqlTfTHbS@yth-(es-o0FTs-AU8F#G+ zG6XYX2u^O?jzdYdgmrR3GWr#2;nrh>?MZcju+=|cWkNC%6INnUryh9pyXPz2ZsXr| zCD^qw3%&Z3zv$1~+YNm#AB;|Z&5@p}$EmCw8DcZ)PGNgW7DCewAjY=|O!ghW8a0Fl z3~AmChEqvM&2sK{WI%Xi2L$yyw;`bIG71+LC*Wvtpj`A=m$0>_w`pgtkvNcY7~5AJ zL70DUx%#-a_O52RCk+g)Ag0C5H34k>Qd^|KG0xxOCq9$OVlN*z1Q&Q=^?}2}GEYN7 zW)XsprDNdLW6!x@joNqBti5>r>#qfwv#L~s@jb@l){ovt=eF)HdtT|8z}z?HVb+(Q z;)hM!u;IW8=!%YrpKLe&-2&kie77KmH=*&Sr>%jpa49TCX+ZEvBnWO3%9x>&kXBI% z)C55&Y)qn1LQPB#@rp^6dMY;w5vSZS^r}+fgLA+yz!L%P&9LK07IJcg60z!WAfpf? zo5Y+IqpmIFZ2B52wys4`SZ~}u{%Z8Sq;l0%2Za$c|AiNkbK)X!Ta-}TX&8o!^Ae{IL_uy{l)&2H8~K^AOb?3DuJoNSBR%gh{@Z*AnjI(L-MlB7 zMEllA_^~|D!=Mr`O&a0iFE{3==Mf-|`-{g(B2@My5-MfBhIx-bA$%S~TA|`~3~MzB zxAiyTd+|M4b;Z@;OsI!+=z#cDI}n?`Uyx%S_T+gW{75GHOdfoe_e8Q<@ZsNh;mdE3 znrdtG7ZW`Z&%g2}1`i7#^{KY#u)zTdD3TaNsL;sSQTu;m%RwMs#^2x52# z8lQpU{%OWB6wDJuCijyjK`;kF7nR-v7s1)zK!vNQ34(BjLK1W!`Il?x-7OX!j*83E zv)u@^=_E#+3ux1$88kajVZ*6HaD4(-K_?_>(Yw!Jn0@J-)E+|D&&I4RJH(*ej|p7| zXmt3Hbi4+avZ!3W~M1kdeD*OZ1P7hB3PQ zUCgu{24jdm6N!3%P)U=RNE{re%;nMgXH}3w1SAi79wZf#1U&>kPazO`1ErNc!9()(zRiWf zlmMMJUK%d@3j+`lpNk%s_Om@vfDQ3xJ^n3TTd)WT35&&%5(I?~$IG|ghpYatZ@J`2 zVmY1&EPiJ`zWwwg{IG5{DS8f^BJ3MXbI`q@AP#=1#klyo$+E9XMc`oVJa!Kk_y{`fnkcMt8&=ciw?EJ#F1FT?Hpn&r5ovU#m_iNXWs7 zY+C|bR~&~e$vNnndI(;<$JOdNs0*0FqR~IPC632sqF5*bD}pdGDpV3cMPS+NKuZx) z_1?(Iu6>g5@EtA7ay|UU!A%n`ya|R*>?_|&bSNk|hPAN=uzcxWln9R^s6%h~1$xz3 zBD+4px!9^}Q@IvoeQY)if*@FmzB$PX!@A94!iQq_f-RW+>1X(4<8GuSEf=pUksEA1 zH*N}Udh14bpRLO!xC`al_GX=YTfnGvVdPo=c?(g4t}9AS#KPB#6?XCXxip$s7smBiZ=~PSRk|WY@wZoLoW8 zdSmy_cw`6*ngb>wCkMl|IWTu0Wq(%9B4E#I{JwfAjM@Z@>M#nAefFrd#+<>0KL=Os z#wO!#oLIUPCS5Z`v}-2!D_-=(`}lD4P88(r!L%OzaK~F`uNHL`F&!c?aKvyF?LUk| znYP7Slzr)$m|!h}w)1fNGaE0sFmPaaICMrUG+qJd;ctb$yKDQC>st3hKQ}Y73?9hL zJTAsZ4F=;&LE|$B?q0Um>>97G@bnuGtLZpOEKVh{!iXs-Jcc#L_G8(yJt$ng9_a`3 z5Yed}eEdCYJ^WOg;CJslygMS&HCTU?6==!O3WIH1ng#3kpTMd^NAd5T&BE*6EuS9{ zG6;_in}BJbJ|UCs3g~^46b>ITVaYpx;EQ*@#^0gAIewBM3$2kT!MZ&C@Oil}LVa5m#e3bY%-g|LLl-DJ$gp$rqcHtBu*4!#<1#y3Vh<))(r1kU2jrU>DrR}5z zdI1Y&7lOlWKP^qXXVR^tXkN}c_}(aLfFrV=Acx>uaDQJ`)7Dt9w?O7WpMY1g4K9bjC>aF*&&FcP!PqYgjlRTmWsuT)*@x; zI%FNnM@WZu@D*g?YDdzB1cuEzkLZDj3=Os>6hSXM304~BW*tUe_F7!&#n9$_X}=}iJ0__)D7Y+MC5S4ZrbA55B%y?wcu|Uj-zqk zdymT4ZE4V&ifJm8b@av1ZCZgf2|8>^PQw2DJnY-ELYx5|hV&YQ$KQWauAZ(gLYf96 zL~!h}^dy{0yC7~g3KOg&xCZ8UV4qFO@JX&n57Jz;EGark;o)1lsiK?kDmue6@LE9>O$1S}1FiFC8)dvcTPV-X2?wy^U;-A*Ux$Px z>yWlP1A4b$L^Kb9MhuZsHb{d7^A#P2_C#xsHgGR8BFzvcCPaXk6QO7tGZ+I0^u{$Y z-OzmUO-SFo4(onehUuUDhIc>x1v3}@f`4|+L0sleXtgI`wXm?r4tF0x2IJus`ZT;k z9+qV6=2psecL7cW!8p@aA2dt%GD!{^ujY7o@EiNHs*fKY{s}KH znv1;5HRAjA!c$k=f$Y(@+aFay_+};|?XNd5d&f?g4CihyUKO}|_keE`?nqf4%rI+L zO0gI=%j&zb;RY|?jtGxzk5<9{7#bOj7R}lqX5awypE3ZUA?_~Ei@FBef)op5KQRS} zJ!ZkFnQvo3jX#7 zstPNzV!PXK%SCbA!+47j4hHV^pq9B-6171Pd@~Mj`i1Nj!8H+FVa63u44O-m+CQKz z-niy|JoNn|yz3IyEj)sIpM4D{6WR1ju#HbUJUnaybT_;s?^hRpK6wQ)vsYqF_i1?h zx9`x^#fsWv#|>Eg%*$Az&Bm53TVXcDVdSvu@#I~PVAz%2t6kB;Jt(n9q?SLw42ouoYMg zdy$(s&3;ej9=;aBJOry4nA|uW$5P=EYJ(sMz9FlZ7@&z3!aYS9X1Y~Kln^;8n#GL9 zcQ3z=@pla3-3q}P=|5gyj3>VT3i;XV2pEOx*`ve2y&iqzIA zwp_URz}v4a0s>LZO;dqE0arKh0r9w@woVEdyr4@2J9D9m(hSVI|H2Y7Ya zEaAS|7D_dV8jsuVdI3dkE8hx3f#t`CF@3`i=p?N3N2cA2Yaba{VR)%59NKssD?k4U zN36+cYmLP9U%rRtRnaMS(1LsSniuijs_(>%D?)V4WtjHZr!a&zwLe3}xe&hmQ~b1J z8xrGLlV7nys|Y?3pF`v8+G5XhqXbsN0pVqC6wcsbDJ2$e@9qlR1VIHuqX~njR|vcW zS@`()!`s^n?j>&U60G3m?gnqc48FWA*uqzck90fSVYLbo)6y!QYcLz3wFrS3TJajK z7-%}39tM3ejK+Mhpu}PpI@Ri$(d{4u&n|)px(ZV0B5t=6kJOxpP!Wn!Z-c&wX$Kk8 zS|wzm5SCTN3*o*G=ZJNwI2US@Ao!*v31*s@N#^!&3=p!$mAlVL^{esl!7W3s$Gfw? zkS)Jm0XI>9_3B6Q!4+_?IyIx?b^c24>%hZ&q&;lOhkp`;Ntfw?2Rg zxAnC@Sb3O)Wo8u0o$Z~ggO!U?aPJe3A~j{Hn1r6Vci0`!-2Q?6Q56*-WYat>+_VG- z4=)i~ta>46uaHOK8F-WZUd^GzoCT}th!l$?jU$3I%HFcJz9EUgGe!_q3*pTQ@oZZ! zWKb6J5=Ovml8fX>1T%#&Cdh_;Tun_yK_^N@B~Tj+<($C_LZSJlTpW@Hvr%l%D%*k| z$;g2F?h_b#&1J$ms+g>}dbv&i5je8p7!op%3MR55BR>w2NoiHyh0b4a*vX_s~as{(j@V)R3eMsECPF5UgdCTKd>6cr&sO~jqgJ^6;%jwjdpTaZ|2|xP zk83%Sn#P*NCvo4?&mr;TB6k(WhV#!5GNuKSm@Ssco1#er6#Dwq^b3#~CB|^ksc^l#{S0W3M_vNZ&Z*kjC zcm>gL*EAP@X%y9}PN;EM^jnd8>Nfj5S>pPM5LPg8dr_`tbXusQ!d29^2SGS{5zc{N z#spacOOL``uT4j+!4E-)^U-G#t70ogo6eyK%@4%dgUK-H6UC=!u`e|f!%HkMb#(1L zoMG-V6hjJAu`?wHR&xfja*ts1!5oBTd7}HMs_!IL6>!Droaf%fl07SgGAM#iKo49w z`QAEfR(QU_>>q-_UYBB2aWW1U2SHavu z=g~u0^8;kLC_NAl|0%-CzedPZd7BIR8w@2_f)FA2 zzU##muac(1?lPnuGzYS=>13L0L&2U!`%;T=aR66ZvlUe3VCgD$+E48 zjm<~k@j~>xR7|Kk@}$?yIe_>7`Wrb}tkMGpw;hepYaWxgRa6Zn?jA67AB*8W?kF&L zAw4Hm96Z-rg|c9Rr~l(!z!u|8V;S>_eO`}EF8@h8pWyqPeqVDnLN4vQ$<69HtSt6_hp)a`els}ZWzLi z%&A|PcvAF@ib|j^34-9ob0!JpK3SidT#`g;+7V=A>(L>)E1Gv;0<3&cVRs!p3RznY z;y{XUKT5PHE;@mnJR`a{Z6&*gRu-1-7vth$K@!;|vR#5npNvgOInZuAhVG+BBOtK$ zT#3b>{Ect6?m8Teg z7*c!$BTcvrsHi>~7kj6e|*ioKDa z8;cT4J`SZNA#VE#G>`6yRvld10LfL%dFDsVK9-1-Qyk;MGiosg(Ko8ArfU-nL&kI; zfg##-94-ogUdyd+ZP00p5fau0*}|ih-GqgA>KW*0=b)kiK%e^wOa@2M0bRWfLX-qG zyCZiW3v zbA<@i zw6cOMDe-_L2ip@1Wl9N&TXt3aBrF zP@s^55^mycvOcr1k|ZqVV(d!IK)}INbh~t%TqIW>sHfZZXo~QnKx~gIMq$A*88$eW zUWC4R$Kl2n*;UwyP2Zvmx(9@y#9$EKNs{=c#YoRSg6)TM5t^w%w~^H^gH1i0jLqxU z;!tvt+>nKlx4lU^3~JUE<|sN>Dry^s7M;<$*GODcl!CokCRj`yj%R|4!`!{NoJU1{ z!>n5iT|Qf>NRS|u1T`lR7sxUHK;u(I6;R&<;p|25;wraUn#LI@w<|T93a~vj9l@~% zbQwDYJ{6IKP}Cg;wna#?30qHUp(~CDd(ZF9GGJK#ahQ5kZ65_w)7EI)wl|`4({MCB zTUadx$j?8D%_oWwcr-_NIsL2EZ8JDJ1Thg^P!M+r2W3T8F^q;p95@n>!4XYi5=5b* z_CasLz58giOWTY6slsz8)wY`}o6p`GLPdQ*pZl3Grfhqf3$S8|1i^R{^AGAC5Y{W<6G(h4C5g)oVvtbdRXs;C+o0znWY2oi-t5Q>l_7;a+XK#)WZHlK_` zz)>xFj2~7ZNpSb8cB2NscXt9dr{qb3U?s|~EI|_HJm@+Ov_G?waC3)SuhAIcABg>l zxl)0XfL0%jNAJFup=HaUYV85htW5|ycI=P1Jt;Vud732l#b;uKw;K$ttGA7*3fExq z4M4}>C>)DR6-EHBgB`+iq%w2&h_N3~Q5BGAO$Fb=koyAMG|l8n@XElf+W=iY8@5W& zQ($EWTRbc4AJp(tHPKKAf^a4YUTlRVXbI44W*L*6Bog3vumC+Lj;N3%e7u3SqejBI z?I?DnoL)$`Kg)s^OylOuEo^l1R$ONH;C??fTiCsG?S3YSIEj#hBT8A`up|>=Y_dVo8CA zzw3Kvt8j(|rlR@KXFdt5VY6)d=N%?U!mV-zB>J4UVKT5-NrD9~3@>rADCMncc&VCb zNCZJB;UJ9wR-i)gm_)uEWsoBJ{{g5a&Hju52etEUChg^cS9l>dmT$ zOcr{FJtNzwSC$;C=2Ixlc*}lI>WY7baKm;oh8kX~Av8pSI2TEr=}AbENP_p?bo8Dy zxoM{A zkqE2AZgk}#vZ*(E4;_nyO(zj2!%ZeZZYOax(~2R!p0c`1MeRe=dkh8^=U{hgj?6m| z7X3Cs5Iw+s5mcNDR#AVL97-NTqnG*E8!FVrtluBR>Ez_n+~IPkNuw1 z5&sEM!b{5PX*Il5O*AxuAWD-2$)Pk!Fv9Q7U9Yw#rNU!(3i?bQTP{hkvMIcY7h;-p z!{I||NXz6t<|QaBj75^p3qvyw$W^uSiIqU`)<3Xp|7Mxr(0Db+6F1#~zGK=~dmn0N zL`Hg|+u%!(u`Lm?*}_1w>QP*H9Emwr^a~8GQokt`l}AbUkr-joVOLVV%w=)>nDwjd zT~*aCyUwthj>1$p6Z))|Vb;zU_i2;`!ZY}0K@4xf!*87Mz}P&YDzKtB<5}U&$-OpSwGd_Xv|7DXLuiNuL6qf5C}hEK6U}A^No-F}f!p>Z^qVrST#{hOC#rQAnwmqf zD^82N+#~XMZuT+kFYrO%)J^bc*;ghfT}ABLUvMyiW0QMqkHDP|+=`ZMYJL$_R1*)h z?LQvc-6wH4BU!lXTIA=&A~)ZJE}i|c9({i-+(Q>Q@~>FthvrwZ&X<}JcP=GrWi zu!gy#ZZ#LfG**=8rAK8ho&#gvhr(m{0aoLF@qi9)n&$8dz7IYTugYeJZf@1vX3?x& z0d3v_`#q^6n5kx|8LOA*-l^fG8bU)Q2tpwVUTBg7Edpmxg8jf5!x*!Q~#<7tS_qJxQWwzsBhW17wTyZT&p08g^+#?j_)3ZKB zWJLKH;tb)G&VTd`ytZZ|3bMJkNGXU(=jq)Xe*R6-wM{dOZ`Kx>Q=UbM(<*HLSx?~o z|NaycA_xA#1MtChx8SCaZ>_WqDJ}t$gs7gu$l5@_ z?p640{`W{qULx+<^bz-F_Kx^ShMj5~y0oi>lD73Al3ixGVUX`A@f{e2t=T!v>OZR~ zRuBMXAI!RK;-HNP&V-xz9>d`oc#9wfZX8*&um~c~P2`sL5;Pn+dAa2xcMIalpa-E6 zL=B-a5Cl;kNpKf=+U$}fyu8D3UB9dF;?G~9UEA^#0r5$|_xIm}Z?^1*zG$!gXxZ=! z?vGo0^@QfecVPAOg-=d07JT&#;^J(sZqIJl;Fn*&K)a5WZwQzwhIEp!efDoi!fp39 z7uUo7z&SudS-heIyS{h@pKe?vx6o|SWFjtq=TG}H8ZSK7Ex_-~enWQdeppPl7Tcx4 z7Thu6{V{3aaCl6<2UbnZSf*8h@8RuOw%~IdJib_{Mtj)XEeJjl?^QVg>ncozvt&4@ zG~6^z;Sq2-JpHB!qn!20;0e+GMOGii&+_v-a5Hm&ng90${!Gci!95i#S8m*M-|)#WPkRkvv!BA-YiPkI zNQL$Mn5*#UpC7=hlDeu$3+&vQj}4zbFYiCU@C*63A|$7Y?|$zqc>BL!#3W7^lQIJL zeSf+OX=6n4^cS&s_n+q^hSDezmpn3j1a28T2$l)=!R%W@rDK&uz^TJn`{(=Ea%h?O zQfwYdXy6s{h_Iv`)^4r9V%QB+{+IIa*>Ja2S$TF69!7gH+x>;2&ld)Uu>9?ROUy## z{?`1PkJ4>L%7nX*c;CK42FaWPy{5W=#js0w53~m*NCHf9{2_$9$1zq+7E?C|szEg5 z97JjGqEncIpm6&rB{#v65=RLvm)^%`9Keq4rx0Ekh)#pspVcFYdp@uEZ5zH=u@;99 z2@ln_T>lJQ-0M*cYuy<~^UOkNWytMJkLUYiNLUE|I)ddj?!R@k;a@S-BnG zEaD^AEjosIU%i6G@rAhVikr}7a2xxhz^Fw7NKK zIeq|HhYw+3;R)#54-|^9{P1E;!x$Wib{+a4Fe?>t8G^Y>*g&)d7X4;ng&&eiw7QAe zbHUvsS}xerc=wjS+bS3H$?6_~5;3gPg$HmD7TtOw|B3Ik5mv)ad5o1sC6;6%+2X0i zLP{ClZh?YW+CbygOYURs;WrVUK{vxY^l5Q>viQuN!g~m_Ke_gy&w3FiBb&5J@XIo` z$K*8EKJbUDom*=djmd*h;Ot3obh6(8YYe$<=`}){2yxi)kxfV9-XWuL|JTnVEKDPb zB0CrO`?g8J*@zwyV)Irw+`9{jKWB)l>IRrtH0M@|Vk ze0AD`_U z5#8JuzTSdN#Y4;+ZTR*t?Ap8n^G~EBEoHs9Xs0*$@$&7AQ5}1u*SNc(?K;4IwC>t{$jPV%potp{1sUMH5ELa4o<(;}kcsbHJAUTjJeh{)l2)nnkx=|&F8b)Iz z2!f+p$w@Ha*-Qu*1F-z{G9ijLA>r*4hE6R;V``s1=sNx?%>Q8qmK|CJqmFIkZD5Y! zimn~dvq=ktcJ2?q)}7G0ZyWRxv@`#uS$Jm7Ur0$LnE>HU$00k7eZc^qfZlj@+(g{> z%X8v9%0mv21agEyOiv*=(AM^YFpJ^+>%(7SVd8GA*|-G*TMxqLbH7E$w)|P;gY)C( z*H+=luU~<#&=yu`(sVp-z5fjq$M9!2F8IxQ79XyjE0kEOB)VSRuE47g+=sC@_dn}= zD&TqDzvdX0d@&P0?m3F|3=)MB+Hpr{#3=kKU0Ys!M3}#W4Q<6n@;b9me9* z#Oh1@T0bLgt5476#tLtD7TeosaXeiFjm1H(*YW4e_*u7;Ot5RH`}2!$l5 z0l2LjvvG{iFwQed$WS3?%tRk=AMsoHGN&=*?u{-TC*%GhLow;KyAUqksr2bcO19v- z$#-Dy(Yf{`r_r(V)%fVuS1@W)Yx|MYC=_1%&v(Cx)d}$!(Y6x?-+eQ}A_K7ar8ls{ zD+?=D#iB>Mc6j*SmvGtjtz{KcMTiqq;en}lV%;HzUd7kfMB}M(H=*#_m*xG&gn&J( zF=OtR$VmBH-f!A`0zSO;CQNyDio9PDNEAm8=41BrZ{gRYaY##EEiSDshR({a5#5Gh z;Gn4}>_1T+t1Gx$Oz`^sNlf3l55@W0>_=^I_v!-g@VA7O&N>SfuE4C@jJ%{f?DwSi zz;f2_gfREO@>a!rI6F?PqFSifWNo;hE6F?r2L?MgGPB9SvQNlzAuKPVwr~Vi^@h@` z@7>V5?POuGK7?r>-GvC@i337t0QjgKMI##>l!&&#aCbP&JWlU?`ScAp6!Q1d-)Ug zdyNc-=OH&cUfyJq{oY<(T_y*D;leIGg7NIUck$63w_sfV%i-Z|yA~GXDg3v49)4c( zGs5S-0yk^j=?<&L6NVcoE|8&R!D7vz@VjPceSkvK~gAZ3Q?Jxs!%m3X4zWOKTefvaNa;?VG)XHR+A6lc&nt zl?Bh=w^Oq@G%ecUCV!`nUJNJC|J;>IOku{=$}&R1_8@ zNW(;@*PRw^4vI2ffIjmHlvtI}n2NGsEcg|=V%mKYH1-%yVp5ugDV*~(5P96$@>5Ym zXzT<*aA0tN&^=%YOu7&zu-KP{+K0`%Y@PI+5E4ELuRZVx23_0)J{7Ed&de@BTrS7q zndsRn9DVS8z?g>tMB-uzu})Y~5ZAZ{H~FJ7krmt`$L6JbmyP z4kU0r5P!56CUx$H+~JLP1O3B!R;k2^c0pliGq`%4QDfSM;+gp$2yfzcbZvi?UKoA564r2&hIKw_HBnny=Ok8mgow2Od z)2BV2n{*{6{@);3AyW}@#5=|3+sZE$FrljRbVux;bW$qDz{|Sei@(3dN4GwXL0zXH zzaSGYFaI5{JbV{^y7Mh;-gU3a&AIsLz!AA}nrPDWVzj;NL3z8eLU5%6(SCl_ z+OAarLv`1_G!-*`{1`V6yiTrNktoq&-?91lW!~3_`1^C)u^L3swxu}v`K|c$_qXu# z`k#@T$>JIZ$bwX4T&O}X*T#whdR;P#)9!^a?@Mt{)pO1;a=ZsYuj7cgj zH5fVIan*aMC7dq=L2!_8hEYfsyiePn(S0VdC1`nH(_;*7`QQ%tRj{`;p%;{sAA1aW zdNzza4X&Eqx^+2z-uMr8|Hmj+#R%{NZhilH{4nctygX(sCSKGRu^C19DJ~XE-hT$M zbezk8QA~l&UrxvIleQ`jmfGIdyC;fTvK>|9g~p*K0S^xoOiuT!i*EhG@$RC}@YePB zBP?=^{iqcwNlWm_s$~fL{c*UPl=T8tgNLpF-izMHzb{^nH@~?Pb2k5itc){~()>mA zZ0W(Wq1*-`bQhRJB4Nm1Y%&{BnDrHO>9@=NN-D$z)@^~lV6pw41kH&}LKtGA_rMj? zGze8ztwo$q1VQlku)LL70d_BAi&M7akU=1gy9TYAU4jQbeN8HBSCEnhXm`yiX#!`0Ej;!A7JnW)~pt^hyoJLp(p z+^zL+=%+j>Z#QaKPY=H|y$MDqkD?|J6ad`u>7DrKzI)NO)fM81?ep@p*W=?&8&UM@ zBk;*~EWC0V?7@`r)jgQ;{1m)7`&sNeu@nX!3uzqSV4x?}Ba&#)aKw*VG_g$FHjsd}Q#0`PyJt(;c)qAJ|G$ewc5?2&F z13y&Z3?fs}E5gNbJWc{oT5Iriits*P!v%CvLb!-7T8LZ|;TPBuPhEX2dh~QXshgBy z#q7h!z!n8%p~RYvg+gIGb?t+QKUTSfV`zvwZg}+yJhR{vytwcyv@fIbk)^UbzMYPQ zBpOd#chL(|hEIgW+eL?ZRc~%rKT&N>Dwp^~qIFj>m`3KY^Ydu9O}mVJJR; znOoQ4_@bBLcgRs+e@=Mkq#$I`yIA+e4fyceM=*24cSuj8u6O7sDk}<=7we%JGa?bt zV_>|AUISNFGEBnqOnxXAdU0bChbA=Wb5WG>67-pmiLvDfuUt?t7JLU?F;9yG&nd&i z^umSyeaHg1H)@4&V=Te}jCPfHBy zITBra@bcCycrDuXY>FP82OwcjDo$q65H$(XFFR&@uV=S#3I48XK}{9#WTm zi3Q7l$I=~tATezRj0Wl`2NYtUWy>%Uy#{W5Ne#y$2`V){#ut%17#g9%qmrYS!N*vp ztu!=pr#E5LABR=@7c`zt;qF=WEpZzg*fL$4`8+HZ2WK)|%tb#ur%b>x2B##aRf4Ex z)aODueyFp@K(n6OfkGnSeI6$X@Oc~z94s6;jO)@p=LDnhK4X!5ExiVk1N$0WD?}EN zwrV*JzkUA$29M#xt|3PlaJP-S2P+QDgu%#gXW8KS^YZkPeYYzu$$_PUAgHg!;PQyVu;HW8!>a@l8ljLq{E%Icg5{?Q1R)$jQQlr@ z7?c7Ja4afb0TZWG_KY<#VZ}G6BI7va_~i3BhH22y5aJk*6v6??E&yyid8H5v<~j4P$*2;n(qvQJqQch&__QS+!Tg5U>o zqR^J7)lct$9a=eII6)X9qI%_Hd=8(h5QKB3k|MOm_!tR-U0&IjiESVGdO6uXxZy24 zJoD)aOH!Tj_g@*f`L3zR%h>{}t;C3flA?Tn!ZDc%Z!d3n`L@Tv)&p_#_;DEf@YQG% z>0apy9acupnXkoDkKTZ+?3HlWG{d7KCqjSIC-!GFegwqr!AI}k0h7TNPPl9Eop@>9 zC)Fm_ijbUa!JD@{g}HepNgLeXDTcv zhG^B&L!c+XxDdx9W8@sGBoU=(g5cOuj3SO#wu)gF0Iu+(t1v{!U?Ga}BK6HMH_p~^qF?R89FKU=nJw}HdbB8`DEJVuT$dI-G!j8Rcp zkr+7sl+ckv3{+qw1!rP#2FDA>HH{yR2vQ=OOmYs;n_yF|tA+3}$H}1a;TbRm-eFIP zIotSiP|mREw?LbIuk(55Tw`*dIUIIJV2vL=GkRk@uPW*Qb)ADKO%6;X({kd3VBF+3 zA#B4*%S!Pa6q2CuK825QLiHBXR|s` z^X5k=C_3uwJz@ptw*}Qyv^UE*u9d_Xa$*!IY`Yqh&9KL;=c{Mv3uc4q^{hD z%rq04c5Vf4Z~4@-u=@b8ZDRqx{^L!UjY)F1y1ROGNB%(SjPnO2!mZNoUV)S>TT?q@ zNg#UrM56a-Mq6qZB!Xn#b+jP0bVj~FwUUMpY5(0@~jSwcA>GJRx z^9yuA_+pL?hCcXwzRqC=p9B0bK1cZsYDSU^t!BOt6(YTAj%_(m_`S@A!zj_OfX1s6 z+&$Q%vhjm0-gO!GLa(=l`~-MT`1^UjIp4V0RV9adKwWzfw1((fGo++6*P}LI!x}c& zJIloP3y2n$lP`2S9gK!-F>yJU&Vn)_If(e){0wP%T|4RqeD&uHgoannDxLn^5rf%^#3|&&YAKrcWFne(XL%JYv-R?6CcaBIv~C)OF;Tt<^$A08 zcoc$LwuEP7bL6JxAulZlKdo4Zqe%U%H-QD2;2@ciWge6r>bp(VuJ z7nOZyR1;CRHXTAUgkD5KCxG-OHK7KO-bJbu5$Q@OQUU=f(yJg4ihy*a3P|r&K`Bx~ z4TyB42*MZNyWV?$fBCUj)~uD8GiUFd*=Nu5JiGIEzs`Qodgy23#F59e znws%j77gJS$)b-R^73F+N*+>VXy@q6!6{9w+2~H0=wJn2*M>Wpn__9C{jP;yRPSW1 z$M{ApOVZ9R0^?W{PU2-JVkw`<@~qL>tV8*3BTZa7i* z<-o4t{7FS2OPLO`fW9wTcQTwd?7NaL@vjLD{VuT!MMc#wb>l$mFZWr53m^1OD>JFj z!}+J29gMBm&r05NalOi^onj_el5w!IiJuk8kGch@+cMWSoUSR!tYgYsMf0jVieYvN zX|c#}bZoVe;^pNXaJuW~X;7GK_hi-_`Qp+d`U|3ax=kSXItSdP48jk`C!;!o!C)jl z;w^XNrz$tOaTS5MB(c_H>5U3JniHFztKC@uvHha}g@RqFi|0F(YA3qiX&PXA!GTy8 zg#S*n_+lSKDz%CvUkExGUaaEOZ=`d7rm$RxXJBxWUgHC$EWVtwtR9nDVRA1}u(#^8 z_NiJjH)2IBV-ZEVwKq-uIoY#kDbBe3sN1@oX`zzw9hO;N!F ziadg-`wq`eGPhPRrGyw?_wcx zJH)umR9ZFQuV3~Q)gRDv)GgK@XStAr$+Ztj znDmb4@)Ws;AYLImNQ&-LoIP>>{RZSK9&21fYx6+AlnBf0D=!f_W$bccCh%<2@x!^n zAPy#l$uU-y_yy~q*Cr$VLk6}kNDLk-Q?LWoP2c-&PzYrR^dZ zi@)I{ZXLk#Yx~mm)&t?bA9PI7Lf#?zq?*M~<~!TXH%qu^+F>K`zJ~)FGF?ztD~03Y zhpeDn`P0A2Laz8eKB+?6mZGz;oUF~}SCOJF-L_@?k-kVQDze)JQoO3mK{@KGz=heN zC)bB^+UzSG{yvS$kCq|mh`c~>PW>Q+F6WV*|Ay5ja)AAhl8=9{Rrp4WUEZ)94H7zs za0SFC#$W+G5bqNefM?t~56h8p|MLLb_Gl)>ru8O~XYvEHBUk%t(uwn-AO6;HR@(?25NbjmBY#LJc+*~{U&G;^Y^+mZ^RKAhEvypql8 z_0E;1^@TxpmgQJ9#8k;@8?Stg@AXzbSMGY^6RZy@TZuIA7O>}i+cDu7 zHk;u1*E%#kt_N#8|K*Bb=YlD}7kfg)zf3fEhl&cj*oOcIC#mg|Md&Y~> zD3-(Q#;(X07I(yRT}W}bK-U%ix1uKE-gY{VOmy7M_okIZT+J}l) zO!0vEm2$|+8IJrQd(KnFmK9|8I(#JDjH*}1iOMP@h@75)UJ13Kbr6%<-oTF*SmsUU zzhu@6fe=|G2aEJvj>*!&9K)xxlK6L(;PKpyOwz!EC4|h)xy|1OaebiqMY4du{n7rt zJj`4(gt>f##xv8l& zzGu8;zjqXCyCP0vT4N;I0Su~$K;mBc3q1tM5`V(sCKajKv^`zvqR)>+xbxss>W6MAVdubIgBbU43@RG+A;SfPD~0 zP5gCgb#pVCRC6gd6B|k$dealwg?40E44hA&W5yn8%Q4_m=2VlOcu6`sB&N}*TIBYD ztxR4Jienp`gr`MBE|%n4M#=mPYfC=J1c=DTB@`E*C3&@jXmia^dFcvM4v&vP><)q# zk&1vfo`jaKYzrATyzcs0Y5e5AxVpGvwsI&T5bQ^I++DIV4JlKe;e{S5>rq=N#^;MS z^qn!Dldq~oM{9EI-#b!nZ`?2*jJo*-eVKQ7)t^>kWKTcVD(Pft$F#Ys!#BxmUKLQSbie(>*MTT zeH+pgYEQxZ)oZKG-y^o09l0yU-K`$9B?t0Fm4n)ynI>L$KUt%g^Fxfvzw=AI`Swi0 zYdkG{Ncf2w945vj%bq((Fo}j8UXPxP?rM4_jpSmj^2iiG}mGy-<-MCHyJ@eTU*Vc5{mi3Ua8+SJ+PSG(fahkw$TK>Dzj-CMpo!*5)Yr+?S0U`_5c<3Hg1*K+ zq8FqM-B;#I(ej<4zjB{X?GkkAuO!?mN|G>8ys-u(Pz0u$IGFr0aiF9U7aFP+sEP4e zCd*r|?>Yy|;_n!G1&c9Hhz))Ubt;jDN2)=eSp`t7q&jxZ=NOpTe*~_HgGc6)?B<4h zr|&Fx%XABF>mBXMO6@W@?~&7$Dx=eYwAYH2lpFWGwc)###CQfE0+N!{g=ME{g=P#3Qt$+4YCI>F1g7dvOGsW zU6aM_yWU&`%m>k)y3CS#PT=FCLH}Uq&bP^d=gXf5Ml6 zL9|;LqNd+@T?WCUaEyZk739VTzZCSE7`%+gFtqF;k^`4eef_(s;?xx1zvok{$L348 z9I(sf*H(5TDE#s!Gpu4CLG)B$H2nklji&g8HrZp_0d+aVjv{|7y1F}6+uICd0vhp- zmB>vrPMZ}dY&Q!Kx#3B>iUp3?5|V%IW-& zyXFc*vD<%C^9(GT6I!X_{EaeADHB4ie(ke|A0Cq7WPVi0noWKqhqL&&sTh32Pfg~P zisN&mj$)#N|@I;r{n(YLS6KQU4UO?_MNi&ONi)g5A-I1FmnkvG)+Tzy&O*ke$(J#d07R^>izDsMQ zRcId5KRl99xZ6~BblS#b1NQ&MVz@1l55(?yV%rG;dIGG@%g}6F?d8>YS{&5mFS>~g z85?3k-sLMRgM-VycoN3twEq6y!b`kXW-+_P*LQhfm(Qi9`0xi{A!+Yt>pH2T0250hBEDNtF!AU|J zCia3c-QnPE5#$1maMA{bYRKA6Awohbj5~p1^rFYz_Gv2bYDVJhxonIrHDI!%cxYZ54ECz^@$n%zt^w7ExQtYkaU#|NCU($bV_hS62UbeV z1R%1n(}QNwU54@oq1(ThkwebwK$bwUeO7PzkgKy-3UcRnDYNEE7QmvPZ!+{fdu1d# zy9pUr2tDty+<-=8uk(Rhu1xh#+gg^S#&5aHzR87@`(jtT0&Ibi$^-;G#l)s77gy8FS~{i8K_uHhkAHX*)PK)iPBa>8!`h(vCP|QwDl14m(;Ha#`qm-IRF9w(POI!9*)LM{*!~U+VS=?S7-* z*7Wp^Q42=Xv82$F5&U2LCNr)u4D*=xzucN;S_T`|B3)CHY*C^( zje?0?;U@^K8Xa}$A5H!TQY3#WOYOc_feyx+6<8U1sa=gdqoDfKUSZ}5C2iXE?`AW> z>LD2{pPzS?RoPFRo01_T%*{k-aFkNA*FI{wKdA!6Bz;fSaST~vnRC%r^)gySbn!qW zJMCWkxHWlVrW6j+dC!ECQbv?_T$GkkAD$Jjp7lbArtWI!E+a`6=JU;RIO6=MnTF;2 zN{C5-$RyTG%frp?4@|RtQGDooL&)?Z^)Vp9sM2)6}?lqb(e*C zBcn*_jk)cs^oVpb8DX}j^Q|qp20zTb8Fm?K397xIWAq=@m@MtpI!h*wAvgC@e5SdV zvI+E8F!S63_qTc}TykCn-YUL5UIx=VW`^h`S%XJT)eWvpT$?u2zdHRofo3)wALeC+Y(-f+?z=JB^CC;TIHGnv zCnx)-C6r+v3?~Q>8^*n{8&CGJ5B5eL;>KWdMY%54H<&@AJ5>KN->K$n2kYW`pwN%Q zoJ!EAq@=ficG*3-G3#?0A%^JVO{)8n>vMj~8L1@kf~jw@IX%8Q5eWg(pgUA@TPt(Y zk+aBsCDbx`j{C7U2-VKJ8Rn}dz-Vr!EzzzHGJ@&c|DREF2qUe+9M%OQ4*h=FWQA7J zdTJG@kJR^-i`cxWd;FF#&ck5&=)AJAbT(ph4~gu` z$o#BQyQN($%vIFe|9;>%7w#q18w`xqVRH- zi!AO*!*_fq8n*RDzu_HXlcuCXNkh@=UciVbt;D#sCX`2CB&?MvP)Juc6!PQ~aDP=r z9DU3ufZL$4=aU&8Q)?T&oi%%?EyFpJQNNC7K*CNM>8SlkNMobK`&v?AD)qJdG}UUd zi#y&Vd@xJ4_g=#kZdi(5WBfKmq=599K(GmSXe*7NFwDdmF zxBqSju{g;aroh$`#z|9#k;~E)7mtWMHpWE(8{(i8v6+#Fsag!DLbybZ;OAqoCwYM3 z5Kai<{3WK5`|_}3v(e;>tihv^gg%wkFawg@$Zu|H_EA+04Ped|b-INn#iEf|8zMzg z@+ygR4mUo7vb%w@0Ly+aB+{8XYrUPhfHj;!^H za?vt}f1{Y}tbd&xAnQ_ZS0kP=SYHEzM>I3PEyQ-Wli6zaV1vpxriT6vfiOIekd$~B znqdnxi^I3tr(RK^VPcLQIt1}9;Hm|3g{JS5R86ZS=&QpWqa8IYG5v>q+F)*KrZ-k& z3vG<>n0RMv3%kzFZu4{X{4Jqd9ITGQPsNU63#lo8*bo4fRZLpv_|}b5n_ZJi{XGyfzoO%eC&tb8_tQ+Fbzv{tnKDo zx=+e~z#8}$zziuVO6sG~6g%onl&u#Y>ko=cjm;lh*!@{uYvV;bQOa-2s~8oKb|0H8 zoAsdSkvzqwbjU09926638@2t*0q6j7pn;|R4$M?n|4%kbo11D`Cu#A9ldriyEm5%) zL~M9y(;G2x8!rW&Fwk^c3dg=3K>60cjlpeo;aW?vohyG$`GHsA6l4!`+`Jw}Z}m(& zEkzP8#w0#tlnuKK`?>d_Oxn#CC{SHy)WlyZeqOYcnnC)QkP3|DD;b_bi6;EgrJ9Pc>oL@GUo)|X=zS@54I5I*j*1uZhXP$%WZP9!WFw?ZW*%&- z*De~t%{*z=T12l>&oBpxjMhn&OHYrP`Xn7a7VuM$^##UYGJ41d)WR8u7BCmnaKaYw zx~JW7PSGX(uT3w^#)m{)oNA&@|Ara@0p)6gUXa@0IW*yHGlL&BeDUxybH$cQ;@e$BHGE>^r_G;t*2B9TJ5+pk95c< zElM38J;!x&>XycElimMiV*a<{--P3N`xuu)1jQ{`h0_JAPHr9i?dRJT6Fcm?O_CCO z2+T|$bX@~dOSl1`NG=?#`+N6Mk8d@CM%V0Q%?q6&DScf3((ckWRPyy*>`%~Q8ULIj z5DH#ofFZ#=1GzZt3+bv4PbxV*7WN#M#VUXzPmp|?QpWZ-&|n2m_Si-$K8Iear)ys& z?D=0d_+b2hs)2a5($Jqsu4!*E>$;t4{x$a{xirDr5FEZ-g7wP=I zu4}@IEG?!Fq-Y#i@cErWzZCCs;9%b}Z8MGX$~pS4&EE)c&1STI*OT{3K4EW0X4I8` zle&n&1OiGJp=%if8X7+Xg|46fA;zkU-U6A2o$gTAy2a#0)F0bcIT#rV&orUBz2c2N z48@G^C;htS=WEgnBF}eUioHDWQBM9dn7lNvHRPbfOnRXR_t1^_z^?YUdp^#9VZwV* zZm`k94eU$kgS89qI*OySgHFdE zokDu$%3gcDE+QcWsmYsX)Jbf)KS+{9FLF#~gtdccPBnJaYY!6t&APw+)^V$rPMepJ znuiCAYop7x4TwMh_r?d}M)U#-oS@BF$V`13v^)|s9{GD&_2lUIq=rlG%a`ez32#?V z{2QfO0*xZB_P&Eb3z?WV>`5>nCEq0L}ERI>H1B2 zUr;vvMXV)Y(ZbGH2hy^5*OC+trUe6Oc|${G{?Rx)snnw2Pc8h^w$B&C{Pmf;*sdjVN>eEwy*CnP!N$|-NjuTUbSI9XdGyW_#!o=ke=BPZzV9V*m?WCxZqgiwj;n>Bd7B<$ z`rcoj3n>J5SS*Hr0fn7=eTPGQikb=Gk^R_>LqE2 z=ZktN$|UZxYdXgWo5*^;`u5l50u^HGC+EqlQ}3|%n#PupMLU;B4z~3SEXsy{G6Ljm zq)0~p4fYsBL|O}STl-)U<%yGzYC=h%yoyJ^ct~#8eQ(M?3SHl)9m&yjW2c1Tm?ehp zil6aFxH?mal=ImMg~fQGZ-fAMqiqqEQ&+9D0iY@FXdGGGOUJ1b{ z5cKLCRm_5=o+kc%O*F_qSiJ_F+BO=jjCDi*VfB%IKDC3rLN3HAGt(qmRT#M8@U3wy0EQOOw3tvj2oUeztefPayNqwvY< zdsr#3ZH{Rsac{%~6KS;U#+r^~q zP(GQBsoD+!FSl9qeo-i;fXlS#IaR|?IWx$T9iz3htrA35f+#NAW3e<%!irHlKJ)?0$yTvUpVKd>!Pf=)8POGm-fYJ4fxjH+C;6KS<+1Adr$9Zl#cG>~;fHf74YZ zeHQ#e-d7oWtb%k{VUkV*Fn-n5k_Ru|-L<-UH8{W*yi&GJ)6()#htl;sIduF-uM9UG zi>+wyI=NG(X9_2nnP#yMuIt@NdU{wrN!=N6BH+8v5FW$+ zQ%|!wQwz=yQNaBsO~U9qUe|e2m{FuQ5Hg~w%JGj+h=ZdtfCRWT$YPL+`+O8J423v7 z|FHbhVBS!D;!gMxi!{ZmgDi+}eU?&C%mi&Bd?fet7Y=)wg_(;1_J~az54nPABZrRG z)_>6HC$thyPKHwDy-DLb+aDWT@?VL*8=k+H`r z{fj^qC*6`Ug!q!9nT(;gg!i}^`3iY9I8w}Pi(;ZSL3XIhtRl^q5}}k28+A)fnv5Ky ztv4n!HxVN>dQe$Bkvl*b7&yi#@XTH7g0k7msg6xB@G;Bhxq48if+FpA4TO_rLEWEq zPjAf7gDV<9g6RZ}6SUN7`9q<`7Xt+{;$ZNe{J=XBf?x~?uO1~EL6zo<-CTbCxu+dpP(soFk+}v2(HIY=Bnp=&MJ5|Y{uxGF6Op-?( zwy5oXH$Lo-6S3>5dbOv?qNL?|d)-cP-hNGX$}}r`@Q6hw&48AIy@k=mA54g{=8KFXlH6yZ+PtT(6tkN;>G~V~+mkizy%ghQFc)*Gt87B~B5tI4XV(qYh4x zfEvuprxHE(RM#R?c#ohY7b}w}If`)9D32`~9FCRExc`_pQVo1UW3$}d@*E?Dc(yuA z2JqlF{9d1&>pnm`yM!W^$By(w3U3s03L055Y zm=8rdC~&z5zr;r@vjIeH@Lgo2HfjgeAcoNnGw%M;v8=AHKW4{1ZM z@481{(MOvonfxWZZks2b)_=J_FU#s|8T`UrIGu;vMv6A{S-(qBUUy9YpP+Z-Aagl< zL*HYd1*LI0)D(zu2H|@Oo_}NZzKL**AR%(p8q@Rx^%N7H&?wx8b4nH}+qC@(yk7B7 zR4Ka1ry}A@pkLo>v+eu!E)-hf6bMBUb%}oUhrI+C!gMIJzv6v3oioEN-vO@fL}(aF z5QA4d;zE`pSCIj0Q9^QiR{*0Yr?~$(w95rRJpLZrv}8(4{KT&`v$|Mbxj>u=vAupo z-fqJ697Oy=7ne+=>5V!4x0Q zDW@_SwjruR<}dqXqB|hpFD0UAzY${aZ+>y6ABDHYHNqJ~1G`VZMkYi|;@>^~m&ATy z+S9J9?7b9=&zgzO!)AwXSc=*gqi#Yvy6PG~%~pkHtECWhj%$&VM zy(V=dG2mhX`&~~a>-hW^VSJ84!Yu3;mCc9NznOTkE|N=gB_=IJsT zACCX^B)Tgb_h=X8gQnO4gczs28>ODA{Gnv)U40m}_M!T*m}{48e9HkuEzbPn@Ed*D zPDDF_-T6YQ>}OXc>SFe8Wq_sDL!3Glcq!o4*X59dUb(HlUOT3^3&L~8Q#9LUWX1!2 z%(bENFTGd5nKc*z>3fie5op$$uREdp*OFfcu*u7tC_|FPQ%#KucJO}OyI)=P%jJmR zmuhob1RykG*gdMC#Teaf_h|0rb|>M`Tmwl(!mr+mc%dgw_fVg=BRPm45W9qr zNd&QK8(Czl8DSPkQlh>J#{YuVpa=LW{yp9zaOS=m4r~F!JOFq|_q7vs0GvL45P+q5 zggCwb(CVF@b1_H~NI%AfqMH+p*%NDlrhhffdd8gf$UrN6nP50#@&#{{)t8O`tWr4B zl7tgCVTFo|Ks}Lv-?muN`L+77R`6Fd7^bcSQwT1x)mQpNZ(6#b@tiosApHx2CRe*$ra99m|8TODHu?pQ$~CjY+o vTjG9*BBzI#qycbO`*%n^`~UM0KIRtxDZ8^8BJNK-9_|BI*Hf#8*&+WQZYi|A diff --git a/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai1.png b/osu.Game.Rulesets.Taiko.Tests/Resources/old-skin/pippidonkiai1.png deleted file mode 100644 index f89568bca25c2a7bbef738d024c2f2f25ac398e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75434 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%0DYz4H_ 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 E2j`LGcmMzZ From 134a94e86d9ca21565b9a537860e2abef1d6556b Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 10:02:47 +0900 Subject: [PATCH 131/213] Rename enum members (no idea what a TaikoDon is) --- .../Skinning/TestSceneTaikoScroller.cs | 2 +- .../Skinning/TaikoLegacySkinTransformer.cs | 4 ++-- osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs | 4 ++-- osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs | 2 +- osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs index e26f410b71..520961d3ce 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs @@ -14,7 +14,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { public TestSceneTaikoScroller() { - AddStep("Load scroller", () => SetContents(() => new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()))); + AddStep("Load scroller", () => SetContents(() => new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.Scroller), _ => Empty()))); AddToggleStep("Toggle passing", passing => this.ChildrenOfType().ForEach(s => s.LastResult.Value = new JudgementResult(null, new Judgement()) { Type = passing ? HitResult.Perfect : HitResult.Miss })); } diff --git a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs index 1096b8db00..6e9a37eb93 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/TaikoLegacySkinTransformer.cs @@ -87,13 +87,13 @@ namespace osu.Game.Rulesets.Taiko.Skinning return null; - case TaikoSkinComponents.TaikoScroller: + case TaikoSkinComponents.Scroller: if (GetTexture("taiko-slider") != null) return new LegacyTaikoScroller(); return null; - case TaikoSkinComponents.TaikoDon: + case TaikoSkinComponents.Mascot: if (GetTexture("pippidonclear0") != null) return new DrawableTaikoMascot(); diff --git a/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs b/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs index edad36f7d6..ac4fb51661 100644 --- a/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs +++ b/osu.Game.Rulesets.Taiko/TaikoSkinComponents.cs @@ -18,7 +18,7 @@ namespace osu.Game.Rulesets.Taiko TaikoExplosionMiss, TaikoExplosionGood, TaikoExplosionGreat, - TaikoScroller, - TaikoDon, + Scroller, + Mascot, } } diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs index c0a6c4582c..9b37af1111 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoRuleset.cs @@ -42,7 +42,7 @@ namespace osu.Game.Rulesets.Taiko.UI { new BarLineGenerator(Beatmap).BarLines.ForEach(bar => Playfield.Add(bar.Major ? new DrawableBarLineMajor(bar) : new DrawableBarLine(bar))); - AddInternal(scroller = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()) + AddInternal(scroller = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.Scroller), _ => Empty()) { RelativeSizeAxes = Axes.X, Depth = float.MaxValue diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index ded1fc0933..dabdfe6f44 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -127,7 +127,7 @@ namespace osu.Game.Rulesets.Taiko.UI }, } }, - mascot = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoDon), _ => Empty()) + mascot = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.Mascot), _ => Empty()) { Origin = Anchor.BottomLeft, Anchor = Anchor.TopLeft, From 149cb93e8cb314a87c7a0f7a97293ebac98372cf Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 13:18:37 +0900 Subject: [PATCH 132/213] Add very basic error handling when a directory cannot be enumerated --- .../UserInterfaceV2/DirectorySelector.cs | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs index 59de931df5..ee428c0047 100644 --- a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs +++ b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs @@ -16,6 +16,7 @@ using osu.Framework.Platform; using osu.Game.Graphics.Containers; using osu.Game.Graphics.Sprites; using osuTK; +using osuTK.Graphics; namespace osu.Game.Graphics.UserInterfaceV2 { @@ -74,22 +75,31 @@ namespace osu.Game.Graphics.UserInterfaceV2 { directoryFlow.Clear(); - if (directory.NewValue == null) + try { - var drives = DriveInfo.GetDrives(); - - foreach (var drive in drives) - directoryFlow.Add(new DirectoryPiece(drive.RootDirectory)); - } - else - { - directoryFlow.Add(new ParentDirectoryPiece(currentDirectory.Value.Parent)); - - foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) + if (directory.NewValue == null) { - if ((dir.Attributes & FileAttributes.Hidden) == 0) - directoryFlow.Add(new DirectoryPiece(dir)); + var drives = DriveInfo.GetDrives(); + + foreach (var drive in drives) + directoryFlow.Add(new DirectoryPiece(drive.RootDirectory)); } + else + { + directoryFlow.Add(new ParentDirectoryPiece(currentDirectory.Value.Parent)); + + foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) + { + if ((dir.Attributes & FileAttributes.Hidden) == 0) + directoryFlow.Add(new DirectoryPiece(dir)); + } + } + } + catch (Exception) + { + currentDirectory.Value = directory.OldValue; + + this.FlashColour(Color4.Red, 300); } } From ff6642190f0d6e85cdff7eb3b2998fef0f9fb974 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Thu, 14 May 2020 07:26:47 +0300 Subject: [PATCH 133/213] Update colour retrieval logic --- .../CatchSkinColourDecodingTest.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs b/osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs index 57228210d6..7deeec527f 100644 --- a/osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs +++ b/osu.Game.Rulesets.Catch.Tests/CatchSkinColourDecodingTest.cs @@ -19,9 +19,9 @@ namespace osu.Game.Rulesets.Catch.Tests var rawSkin = new TestLegacySkin(new SkinInfo { Name = "special-skin" }, store); var skin = new CatchLegacySkinTransformer(rawSkin); - Assert.AreEqual(new Color4(232, 185, 35, 255), skin.GetHyperDashCatcherColour()?.Value); - Assert.AreEqual(new Color4(232, 74, 35, 255), skin.GetHyperDashCatcherAfterImageColour()?.Value); - Assert.AreEqual(new Color4(0, 255, 255, 255), skin.GetHyperDashFruitColour()?.Value); + Assert.AreEqual(new Color4(232, 185, 35, 255), skin.GetConfig(CatchSkinColour.HyperDash)?.Value); + Assert.AreEqual(new Color4(232, 74, 35, 255), skin.GetConfig(CatchSkinColour.HyperDashAfterImage)?.Value); + Assert.AreEqual(new Color4(0, 255, 255, 255), skin.GetConfig(CatchSkinColour.HyperDashFruit)?.Value); } private class TestLegacySkin : LegacySkin From 5e09a1b33485663dbb69fa53b44b12861849831c Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 14:23:12 +0900 Subject: [PATCH 134/213] Use Action rather than custom handler --- osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs index f55e37ebc7..dc9f30cab3 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using System.Collections.Generic; using System.Linq; using osu.Game.Beatmaps; @@ -20,7 +21,8 @@ namespace osu.Game.Overlays.BeatmapListing private readonly SortCriteria sortCriteria; private readonly SortDirection sortDirection; - public event PageFetchHandler PageFetched; + public event Action> PageFetched; + private SearchBeatmapSetsRequest getSetsRequest; private SearchBeatmapSetsResponse lastResponse; @@ -82,7 +84,5 @@ namespace osu.Game.Overlays.BeatmapListing getSetsRequest?.Cancel(); getSetsRequest = null; } - - public delegate void PageFetchHandler(List sets); } } From fa3373e5f306e0f64afeccefa9977c02584b2f5c Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 14:24:43 +0900 Subject: [PATCH 135/213] Reorder file and change naming slightly --- .../BeatmapListingFilterControl.cs | 30 +++++++++---------- osu.Game/Overlays/BeatmapListingOverlay.cs | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs index ac5ad96f7c..92822794b7 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs @@ -36,6 +36,9 @@ namespace osu.Game.Overlays.BeatmapListing private BeatmapListingPager beatmapListingPager; + private ScheduledDelegate queryChangedDebounce; + private ScheduledDelegate queryPagingDebounce; + public BeatmapListingFilterControl() { RelativeSizeAxes = Axes.X; @@ -113,8 +116,17 @@ namespace osu.Game.Overlays.BeatmapListing sortDirection.BindValueChanged(_ => queueUpdateSearch()); } - private ScheduledDelegate queryChangedDebounce; - private ScheduledDelegate queryPagingDebounce; + public void TakeFocus() => searchControl.TakeFocus(); + + public void ShowMore() + { + if (beatmapListingPager == null || !beatmapListingPager.CanFetchNextPage) + return; + if (queryPagingDebounce != null) + return; + + beatmapListingPager.FetchNextPage(); + } private void queueUpdateSearch(bool queryTextChanged = false) { @@ -142,7 +154,7 @@ namespace osu.Game.Overlays.BeatmapListing queryPagingDebounce = null; beatmapListingPager.PageFetched += onSearchFinished; - AddPageToResult(); + ShowMore(); } private void onSearchFinished(List beatmaps) @@ -165,17 +177,5 @@ namespace osu.Game.Overlays.BeatmapListing base.Dispose(isDisposing); } - - public void TakeFocus() => searchControl.TakeFocus(); - - public void AddPageToResult() - { - if (beatmapListingPager == null || !beatmapListingPager.CanFetchNextPage) - return; - if (queryPagingDebounce != null) - return; - - beatmapListingPager.FetchNextPage(); - } } } diff --git a/osu.Game/Overlays/BeatmapListingOverlay.cs b/osu.Game/Overlays/BeatmapListingOverlay.cs index e26f084ea4..4aa754491c 100644 --- a/osu.Game/Overlays/BeatmapListingOverlay.cs +++ b/osu.Game/Overlays/BeatmapListingOverlay.cs @@ -247,7 +247,7 @@ namespace osu.Game.Overlays base.Update(); if (shouldAddNextPage) - filterControl.AddPageToResult(); + filterControl.ShowMore(); } } } From 04c99735264be3cd769bc085d7958727c6b83bda Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 14:33:31 +0900 Subject: [PATCH 136/213] Clean up cancellation logic --- .../BeatmapListingFilterControl.cs | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs index 92822794b7..3df4d5d588 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs @@ -122,6 +122,7 @@ namespace osu.Game.Overlays.BeatmapListing { if (beatmapListingPager == null || !beatmapListingPager.CanFetchNextPage) return; + if (queryPagingDebounce != null) return; @@ -132,14 +133,15 @@ namespace osu.Game.Overlays.BeatmapListing { SearchStarted?.Invoke(); - beatmapListingPager?.Reset(); + cancelSearch(); - queryChangedDebounce?.Cancel(); queryChangedDebounce = Scheduler.AddDelayed(updateSearch, queryTextChanged ? 500 : 100); } private void updateSearch() { + cancelSearch(); + beatmapListingPager = new BeatmapListingPager( api, rulesets, @@ -150,13 +152,20 @@ namespace osu.Game.Overlays.BeatmapListing sortControl.SortDirection.Value ); - queryPagingDebounce?.Cancel(); - queryPagingDebounce = null; beatmapListingPager.PageFetched += onSearchFinished; ShowMore(); } + private void cancelSearch() + { + beatmapListingPager?.Reset(); + queryChangedDebounce?.Cancel(); + + queryPagingDebounce?.Cancel(); + queryPagingDebounce = null; + } + private void onSearchFinished(List beatmaps) { queryPagingDebounce = Scheduler.AddDelayed(() => queryPagingDebounce = null, 1000); @@ -171,9 +180,7 @@ namespace osu.Game.Overlays.BeatmapListing protected override void Dispose(bool isDisposing) { - beatmapListingPager?.Reset(); - queryChangedDebounce?.Cancel(); - queryPagingDebounce?.Cancel(); + cancelSearch(); base.Dispose(isDisposing); } From c836c9319bb0b6d28fa378e4412b9d4fc7d47e71 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 15:35:11 +0900 Subject: [PATCH 137/213] Combine pagination logic into BeatmapListingFilterControl --- .../BeatmapListingFilterControl.cs | 118 +++++++++++------- .../BeatmapListing/BeatmapListingPager.cs | 88 ------------- osu.Game/Overlays/BeatmapListingOverlay.cs | 69 +++++----- 3 files changed, 111 insertions(+), 164 deletions(-) delete mode 100644 osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs index 3df4d5d588..41c99d5d03 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingFilterControl.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Linq; using osu.Framework.Allocation; using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Graphics; @@ -12,6 +13,7 @@ using osu.Framework.Graphics.Shapes; using osu.Framework.Threading; using osu.Game.Beatmaps; using osu.Game.Online.API; +using osu.Game.Online.API.Requests; using osu.Game.Rulesets; using osuTK; using osuTK.Graphics; @@ -20,9 +22,34 @@ namespace osu.Game.Overlays.BeatmapListing { public class BeatmapListingFilterControl : CompositeDrawable { + ///

    + /// Fired when a search finishes. Contains only new items in the case of pagination. + /// public Action> SearchFinished; + + /// + /// Fired when search criteria change. + /// public Action SearchStarted; - private List currentBeatmaps; + + /// + /// True when pagination has reached the end of available results. + /// + private bool noMoreResults; + + /// + /// The current page fetched of results (zero index). + /// + public int CurrentPage { get; private set; } + + private readonly BeatmapListingSearchControl searchControl; + private readonly BeatmapListingSortTabControl sortControl; + private readonly Box sortControlBackground; + + private ScheduledDelegate queryChangedDebounce; + + private SearchBeatmapSetsRequest getSetsRequest; + private SearchBeatmapSetsResponse lastResponse; [Resolved] private IAPIProvider api { get; set; } @@ -30,19 +57,11 @@ namespace osu.Game.Overlays.BeatmapListing [Resolved] private RulesetStore rulesets { get; set; } - private readonly BeatmapListingSearchControl searchControl; - private readonly BeatmapListingSortTabControl sortControl; - private readonly Box sortControlBackground; - - private BeatmapListingPager beatmapListingPager; - - private ScheduledDelegate queryChangedDebounce; - private ScheduledDelegate queryPagingDebounce; - public BeatmapListingFilterControl() { RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; + InternalChild = new FillFlowContainer { RelativeSizeAxes = Axes.X, @@ -118,69 +137,80 @@ namespace osu.Game.Overlays.BeatmapListing public void TakeFocus() => searchControl.TakeFocus(); - public void ShowMore() + /// + /// Fetch the next page of results. May result in a no-op if a fetch is already in progress, or if there are no results left. + /// + public void FetchNextPage() { - if (beatmapListingPager == null || !beatmapListingPager.CanFetchNextPage) + // there may be no results left. + if (noMoreResults) return; - if (queryPagingDebounce != null) + // there may already be an active request. + if (getSetsRequest != null) return; - beatmapListingPager.FetchNextPage(); + if (lastResponse != null) + CurrentPage++; + + performRequest(); } private void queueUpdateSearch(bool queryTextChanged = false) { SearchStarted?.Invoke(); - cancelSearch(); + resetSearch(); - queryChangedDebounce = Scheduler.AddDelayed(updateSearch, queryTextChanged ? 500 : 100); + queryChangedDebounce = Scheduler.AddDelayed(() => + { + resetSearch(); + FetchNextPage(); + }, queryTextChanged ? 500 : 100); } - private void updateSearch() + private void performRequest() { - cancelSearch(); - - beatmapListingPager = new BeatmapListingPager( - api, - rulesets, + getSetsRequest = new SearchBeatmapSetsRequest( searchControl.Query.Value, searchControl.Ruleset.Value, + lastResponse?.Cursor, searchControl.Category.Value, sortControl.Current.Value, - sortControl.SortDirection.Value - ); + sortControl.SortDirection.Value); - beatmapListingPager.PageFetched += onSearchFinished; + getSetsRequest.Success += response => + { + var sets = response.BeatmapSets.Select(responseJson => responseJson.ToBeatmapSet(rulesets)).ToList(); - ShowMore(); + if (sets.Count == 0) + noMoreResults = true; + + lastResponse = response; + getSetsRequest = null; + + SearchFinished?.Invoke(sets); + }; + + api.Queue(getSetsRequest); } - private void cancelSearch() + private void resetSearch() { - beatmapListingPager?.Reset(); + noMoreResults = false; + CurrentPage = 0; + + lastResponse = null; + + getSetsRequest?.Cancel(); + getSetsRequest = null; + queryChangedDebounce?.Cancel(); - - queryPagingDebounce?.Cancel(); - queryPagingDebounce = null; - } - - private void onSearchFinished(List beatmaps) - { - queryPagingDebounce = Scheduler.AddDelayed(() => queryPagingDebounce = null, 1000); - - if (currentBeatmaps == null || !beatmapListingPager.IsPastFirstPage) - currentBeatmaps = beatmaps; - else - currentBeatmaps.AddRange(beatmaps); - - SearchFinished?.Invoke(beatmaps); } protected override void Dispose(bool isDisposing) { - cancelSearch(); + resetSearch(); base.Dispose(isDisposing); } diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs deleted file mode 100644 index dc9f30cab3..0000000000 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingPager.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. -// See the LICENCE file in the repository root for full licence text. - -using System; -using System.Collections.Generic; -using System.Linq; -using osu.Game.Beatmaps; -using osu.Game.Online.API; -using osu.Game.Online.API.Requests; -using osu.Game.Rulesets; - -namespace osu.Game.Overlays.BeatmapListing -{ - public class BeatmapListingPager - { - private readonly IAPIProvider api; - private readonly RulesetStore rulesets; - private readonly string query; - private readonly RulesetInfo ruleset; - private readonly SearchCategory searchCategory; - private readonly SortCriteria sortCriteria; - private readonly SortDirection sortDirection; - - public event Action> PageFetched; - - private SearchBeatmapSetsRequest getSetsRequest; - private SearchBeatmapSetsResponse lastResponse; - - private bool isLastPageFetched; - private bool isFetching => getSetsRequest != null; - public bool IsPastFirstPage { get; private set; } - public bool CanFetchNextPage => !isLastPageFetched && !isFetching; - - public BeatmapListingPager(IAPIProvider api, RulesetStore rulesets, string query, RulesetInfo ruleset, SearchCategory searchCategory = SearchCategory.Any, SortCriteria sortCriteria = SortCriteria.Ranked, SortDirection sortDirection = SortDirection.Descending) - { - this.api = api; - this.rulesets = rulesets; - this.query = query; - this.ruleset = ruleset; - this.searchCategory = searchCategory; - this.sortCriteria = sortCriteria; - this.sortDirection = sortDirection; - } - - public void FetchNextPage() - { - if (isFetching) - return; - - if (lastResponse != null) - IsPastFirstPage = true; - - getSetsRequest = new SearchBeatmapSetsRequest( - query, - ruleset, - lastResponse?.Cursor, - searchCategory, - sortCriteria, - sortDirection); - - getSetsRequest.Success += response => - { - var sets = response.BeatmapSets.Select(responseJson => responseJson.ToBeatmapSet(rulesets)).ToList(); - - if (sets.Count == 0) - isLastPageFetched = true; - - lastResponse = response; - getSetsRequest = null; - - PageFetched?.Invoke(sets); - }; - - api.Queue(getSetsRequest); - } - - public void Reset() - { - isLastPageFetched = false; - IsPastFirstPage = false; - - lastResponse = null; - - getSetsRequest?.Cancel(); - getSetsRequest = null; - } - } -} diff --git a/osu.Game/Overlays/BeatmapListingOverlay.cs b/osu.Game/Overlays/BeatmapListingOverlay.cs index 4aa754491c..225a8a0578 100644 --- a/osu.Game/Overlays/BeatmapListingOverlay.cs +++ b/osu.Game/Overlays/BeatmapListingOverlay.cs @@ -4,7 +4,9 @@ using System.Collections.Generic; using System.Linq; using System.Threading; +using System.Threading.Tasks; using osu.Framework.Allocation; +using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; @@ -34,8 +36,6 @@ namespace osu.Game.Overlays private NotFoundDrawable notFoundContent; private OverlayScrollContainer resultScrollContainer; - private const int pagination_scroll_distance = 500; - private bool shouldAddNextPage => resultScrollContainer.ScrollableExtent > 0 && resultScrollContainer.IsScrolledToEnd(pagination_scroll_distance); public BeatmapListingOverlay() : base(OverlayColourScheme.Blue) @@ -121,51 +121,45 @@ namespace osu.Game.Overlays loadingLayer.Show(); } + private Task panelLoadDelegate; + private void onSearchFinished(List beatmaps) { - //No matches case - if (!beatmaps.Any()) + var newPanels = beatmaps.Select(b => new GridBeatmapPanel(b) { - LoadComponentAsync(notFoundContent, addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); - return; - } + Anchor = Anchor.TopCentre, + Origin = Anchor.TopCentre, + }); - //New query case - if (!shouldAddNextPage) + if (filterControl.CurrentPage == 0) { - //Spawn new child - var newPanels = new FillFlowContainer + //No matches case + if (!newPanels.Any()) + { + LoadComponentAsync(notFoundContent, addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); + return; + } + + // spawn new children with the contained so we only clear old content at the last moment. + var content = new FillFlowContainer { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Spacing = new Vector2(10), Alpha = 0, Margin = new MarginPadding { Vertical = 15 }, - ChildrenEnumerable = beatmaps.Select(b => new GridBeatmapPanel(b) - { - Anchor = Anchor.TopCentre, - Origin = Anchor.TopCentre, - }) + ChildrenEnumerable = newPanels }; - foundContent = newPanels; - LoadComponentAsync(foundContent, addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); + panelLoadDelegate = LoadComponentAsync(foundContent = content, addContentToPlaceholder, (cancellationToken = new CancellationTokenSource()).Token); } - - //Pagination case else { - beatmaps.ForEach(x => + panelLoadDelegate = LoadComponentsAsync(newPanels, loaded => { - LoadComponentAsync(new GridBeatmapPanel(x) - { - Anchor = Anchor.TopCentre, - Origin = Anchor.TopCentre, - }, loaded => - { - foundContent.Add(loaded); - loaded.FadeIn(200, Easing.OutQuint); - }); + lastFetchDisplayedTime = Time.Current; + foundContent.AddRange(loaded); + loaded.ForEach(p => p.FadeIn(200, Easing.OutQuint)); }); } } @@ -173,6 +167,7 @@ namespace osu.Game.Overlays private void addContentToPlaceholder(Drawable content) { loadingLayer.Hide(); + lastFetchDisplayedTime = Time.Current; var lastContent = currentContent; @@ -242,12 +237,22 @@ namespace osu.Game.Overlays } } + private const double time_between_fetches = 500; + + private double lastFetchDisplayedTime; + protected override void Update() { base.Update(); - if (shouldAddNextPage) - filterControl.ShowMore(); + const int pagination_scroll_distance = 500; + + bool shouldShowMore = panelLoadDelegate?.IsCompleted != false + && Time.Current - lastFetchDisplayedTime > time_between_fetches + && (resultScrollContainer.ScrollableExtent > 0 && resultScrollContainer.IsScrolledToEnd(pagination_scroll_distance)); + + if (shouldShowMore) + filterControl.FetchNextPage(); } } } From facde2c8e17edd2804dfee0921f29caafcd04648 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 16:01:07 +0900 Subject: [PATCH 138/213] Remove unnecessary generic specification on cursor --- osu.Game/Extensions/WebRequestExtensions.cs | 15 ++++---------- osu.Game/Online/API/Requests/Cursor.cs | 20 +++++++++++++++++++ .../Online/API/Requests/ResponseWithCursor.cs | 11 +--------- .../API/Requests/SearchBeatmapSetsResponse.cs | 3 +-- 4 files changed, 26 insertions(+), 23 deletions(-) create mode 100644 osu.Game/Online/API/Requests/Cursor.cs diff --git a/osu.Game/Extensions/WebRequestExtensions.cs b/osu.Game/Extensions/WebRequestExtensions.cs index 80c8b147bf..b940c7498b 100644 --- a/osu.Game/Extensions/WebRequestExtensions.cs +++ b/osu.Game/Extensions/WebRequestExtensions.cs @@ -3,22 +3,15 @@ using osu.Framework.IO.Network; using osu.Framework.Extensions.IEnumerableExtensions; -using System.Collections.Generic; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using JetBrains.Annotations; +using osu.Game.Online.API.Requests; namespace osu.Game.Extensions { - public class Cursor - { - [UsedImplicitly] - [JsonExtensionData] - public IDictionary Properties; - } - public static class WebRequestExtensions { + /// + /// Add a pagination cursor to the web request in the format required by osu-web. + /// public static void AddCursor(this WebRequest webRequest, Cursor cursor) { cursor?.Properties.ForEach(x => diff --git a/osu.Game/Online/API/Requests/Cursor.cs b/osu.Game/Online/API/Requests/Cursor.cs new file mode 100644 index 0000000000..f21445ca32 --- /dev/null +++ b/osu.Game/Online/API/Requests/Cursor.cs @@ -0,0 +1,20 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.Collections.Generic; +using JetBrains.Annotations; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace osu.Game.Online.API.Requests +{ + /// + /// A collection of parameters which should be passed to the search endpoint to fetch the next page. + /// + public class Cursor + { + [UsedImplicitly] + [JsonExtensionData] + public IDictionary Properties; + } +} diff --git a/osu.Game/Online/API/Requests/ResponseWithCursor.cs b/osu.Game/Online/API/Requests/ResponseWithCursor.cs index b0fe9eea28..d52e999722 100644 --- a/osu.Game/Online/API/Requests/ResponseWithCursor.cs +++ b/osu.Game/Online/API/Requests/ResponseWithCursor.cs @@ -7,16 +7,7 @@ namespace osu.Game.Online.API.Requests { public abstract class ResponseWithCursor { - /// - /// A collection of parameters which should be passed to the search endpoint to fetch the next page. - /// [JsonProperty("cursor")] - public dynamic CursorJson; - } - - public abstract class ResponseWithCursor : ResponseWithCursor where T : class - { - [JsonProperty("cursor")] - public T Cursor; + public Cursor Cursor; } } diff --git a/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs b/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs index a4d2c0e871..3c4fb11ed1 100644 --- a/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs +++ b/osu.Game/Online/API/Requests/SearchBeatmapSetsResponse.cs @@ -3,12 +3,11 @@ using System.Collections.Generic; using Newtonsoft.Json; -using osu.Game.Extensions; using osu.Game.Online.API.Requests.Responses; namespace osu.Game.Online.API.Requests { - public class SearchBeatmapSetsResponse : ResponseWithCursor + public class SearchBeatmapSetsResponse : ResponseWithCursor { [JsonProperty("beatmapsets")] public IEnumerable BeatmapSets; From 6bb06e9d611aeb9255c28a5936f59c0cdc2559f1 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 22:57:31 +0900 Subject: [PATCH 139/213] Expose CurrentDirectory bindable for consumption --- .../Graphics/UserInterfaceV2/DirectorySelector.cs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs index ee428c0047..6ea026ad3d 100644 --- a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs +++ b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs @@ -28,11 +28,11 @@ namespace osu.Game.Graphics.UserInterfaceV2 private GameHost host { get; set; } [Cached] - private readonly Bindable currentDirectory = new Bindable(); + public readonly Bindable CurrentDirectory = new Bindable(); public DirectorySelector(string initialPath = null) { - currentDirectory.Value = new DirectoryInfo(initialPath ?? Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); + CurrentDirectory.Value = new DirectoryInfo(initialPath ?? Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)); } [BackgroundDependencyLoader] @@ -68,7 +68,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 }, }; - currentDirectory.BindValueChanged(updateDisplay, true); + CurrentDirectory.BindValueChanged(updateDisplay, true); } private void updateDisplay(ValueChangedEvent directory) @@ -86,9 +86,9 @@ namespace osu.Game.Graphics.UserInterfaceV2 } else { - directoryFlow.Add(new ParentDirectoryPiece(currentDirectory.Value.Parent)); + directoryFlow.Add(new ParentDirectoryPiece(CurrentDirectory.Value.Parent)); - foreach (var dir in currentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) + foreach (var dir in CurrentDirectory.Value.GetDirectories().OrderBy(d => d.Name)) { if ((dir.Attributes & FileAttributes.Hidden) == 0) directoryFlow.Add(new DirectoryPiece(dir)); @@ -97,8 +97,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 } catch (Exception) { - currentDirectory.Value = directory.OldValue; - + CurrentDirectory.Value = directory.OldValue; this.FlashColour(Color4.Red, 300); } } From cb0b25ac55c7db5e6b1cc4a941971676690388ee Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 22:57:41 +0900 Subject: [PATCH 140/213] Throw better exceptions from OsuStorage --- osu.Game/IO/OsuStorage.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 71b01ce479..8109631ef9 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -48,11 +48,14 @@ namespace osu.Game.IO var source = new DirectoryInfo(GetFullPath(".")); var destination = new DirectoryInfo(newLocation); + if (source.FullName == destination.FullName) + throw new ArgumentException("Destination provided is already the current location", nameof(newLocation)); + // ensure the new location has no files present, else hard abort if (destination.Exists) { if (destination.GetFiles().Length > 0 || destination.GetDirectories().Length > 0) - throw new InvalidOperationException("Migration destination already has files present"); + throw new ArgumentException("Destination provided already has files or directories present", nameof(newLocation)); deleteRecursive(destination); } From 0b73063a89ba56edc8fe0d364fe105375fd63c3f Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 22:58:05 +0900 Subject: [PATCH 141/213] Add basic (working) migration UI --- .../Sections/Maintenance/GeneralSettings.cs | 9 +- .../Maintenance/MigrationRunScreen.cs | 88 +++++++++++++++++++ .../Maintenance/MigrationSelectScreen.cs | 57 ++++++++++++ 3 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs create mode 100644 osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs index 832673703b..8bdeadae5c 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Threading.Tasks; using osu.Framework.Allocation; using osu.Framework.Graphics; +using osu.Framework.Screens; using osu.Game.Beatmaps; using osu.Game.Graphics.UserInterface; using osu.Game.Scoring; @@ -26,8 +27,14 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance private TriangleButton undeleteButton; [BackgroundDependencyLoader] - private void load(BeatmapManager beatmaps, ScoreManager scores, SkinManager skins, DialogOverlay dialogOverlay) + private void load(BeatmapManager beatmaps, ScoreManager scores, SkinManager skins, DialogOverlay dialogOverlay, OsuGame game) { + Add(importBeatmapsButton = new SettingsButton + { + Text = "Migrate storage to new location", + Action = () => game.PerformFromScreen(menu => menu.Push(new MigrationSelectScreen())) + }); + if (beatmaps.SupportsImportFromStable) { Add(importBeatmapsButton = new SettingsButton diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs new file mode 100644 index 0000000000..76f01dc4b9 --- /dev/null +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs @@ -0,0 +1,88 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.IO; +using System.Threading.Tasks; +using osu.Framework.Allocation; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Logging; +using osu.Framework.Screens; +using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; +using osu.Game.Graphics.UserInterface; +using osu.Game.Screens; + +namespace osu.Game.Overlays.Settings.Sections.Maintenance +{ + public class MigrationRunScreen : OsuScreen + { + private readonly DirectoryInfo destination; + + [Resolved] + private OsuGame game { get; set; } + + public override bool AllowBackButton => false; + + public override bool AllowExternalScreenChange => false; + + public override bool DisallowExternalBeatmapRulesetChanges => true; + + private Task migrationTask; + + public MigrationRunScreen(DirectoryInfo destination) + { + this.destination = destination; + } + + protected override void LoadComplete() + { + base.LoadComplete(); + + InternalChildren = new Drawable[] + { + new FillFlowContainer + { + AutoSizeAxes = Axes.Both, + Direction = FillDirection.Vertical, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Children = new Drawable[] + { + new OsuSpriteText + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Text = "Migration in progress", + Font = OsuFont.Default.With(size: 48) + }, + new LoadingSpinner(true) + { + State = { Value = Visibility.Visible } + } + } + }, + }; + + Beatmap.Value = Beatmap.Default; + + migrationTask = Task.Run(() => game.Migrate(destination.FullName)) + .ContinueWith(t => + { + if (t.IsFaulted) + Logger.Log($"Error during migration: {t.Exception?.Message}", level: LogLevel.Error); + + Schedule(this.Exit); + }); + } + + public override bool OnExiting(IScreen next) + { + // block until migration is finished + if (migrationTask?.IsCompleted == false) + return true; + + return base.OnExiting(next); + } + } +} diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs new file mode 100644 index 0000000000..d1c2f6d6ee --- /dev/null +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs @@ -0,0 +1,57 @@ +// 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.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Screens; +using osu.Game.Graphics.UserInterface; +using osu.Game.Graphics.UserInterfaceV2; +using osu.Game.Screens; + +namespace osu.Game.Overlays.Settings.Sections.Maintenance +{ + public class MigrationSelectScreen : OsuScreen + { + private DirectorySelector directorySelector; + + [BackgroundDependencyLoader] + private void load() + { + InternalChild = new GridContainer + { + RelativeSizeAxes = Axes.Both, + RowDimensions = new[] + { + new Dimension(GridSizeMode.Relative, 0.8f), + new Dimension(), + }, + Content = new[] + { + new Drawable[] { directorySelector = new DirectorySelector { RelativeSizeAxes = Axes.Both } }, + new Drawable[] + { + new OsuButton + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Width = 300, + Text = "Start", + Action = start + }, + } + } + }; + } + + private void start() + { + var target = directorySelector.CurrentDirectory.Value; + if (target.GetDirectories().Length > 0 || target.GetFiles().Length > 0) + target = target.CreateSubdirectory("osu-lazer"); + + ValidForResume = false; + this.Push(new MigrationRunScreen(target)); + } + } +} From 06f507496a0d4bb8865d226ea9af6d220a5ab4fb Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 23:02:28 +0900 Subject: [PATCH 142/213] Delete migration source if no files exist after completion --- osu.Game/IO/OsuStorage.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 8109631ef9..443f4fdb69 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -87,6 +87,9 @@ namespace osu.Game.IO dir.Delete(true); } + + if (target.GetFiles().Length == 0 && target.GetDirectories().Length == 0) + target.Delete(); } private static void copyRecursive(DirectoryInfo source, DirectoryInfo destination, bool topLevelExcludes = true) From d04079f6ab7911b5d7f8fd633019993137b0fc65 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 17:40:30 +0900 Subject: [PATCH 143/213] Fix directory selector not masking properly --- .../UserInterfaceV2/DirectorySelector.cs | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs index 6ea026ad3d..ae34281bfb 100644 --- a/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs +++ b/osu.Game/Graphics/UserInterfaceV2/DirectorySelector.cs @@ -40,19 +40,25 @@ namespace osu.Game.Graphics.UserInterfaceV2 { Padding = new MarginPadding(10); - InternalChildren = new Drawable[] + InternalChild = new GridContainer { - new FillFlowContainer + RelativeSizeAxes = Axes.Both, + RowDimensions = new[] { - RelativeSizeAxes = Axes.Both, - Direction = FillDirection.Vertical, - Children = new Drawable[] + new Dimension(GridSizeMode.Absolute, 50), + new Dimension(), + }, + Content = new[] + { + new Drawable[] { new CurrentDirectoryDisplay { - RelativeSizeAxes = Axes.X, - Height = 50, + RelativeSizeAxes = Axes.Both, }, + }, + new Drawable[] + { new OsuScrollContainer { RelativeSizeAxes = Axes.Both, @@ -65,7 +71,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 } } } - }, + } }; CurrentDirectory.BindValueChanged(updateDisplay, true); From 4e4a779d6827d76323702fad328c451c3e3fb000 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 17:40:43 +0900 Subject: [PATCH 144/213] Improve overall UI --- .../Sections/General/UpdateSettings.cs | 10 +- .../Sections/Maintenance/GeneralSettings.cs | 7 -- .../Maintenance/MigrationRunScreen.cs | 29 ++++- .../Maintenance/MigrationSelectScreen.cs | 105 +++++++++++++++--- 4 files changed, 123 insertions(+), 28 deletions(-) diff --git a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs index 188c9c05ef..b5d07ee7b1 100644 --- a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs @@ -4,7 +4,9 @@ using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Platform; +using osu.Framework.Screens; using osu.Game.Configuration; +using osu.Game.Overlays.Settings.Sections.Maintenance; namespace osu.Game.Overlays.Settings.Sections.General { @@ -13,7 +15,7 @@ namespace osu.Game.Overlays.Settings.Sections.General protected override string Header => "Updates"; [BackgroundDependencyLoader] - private void load(Storage storage, OsuConfigManager config) + private void load(Storage storage, OsuConfigManager config, OsuGame game) { Add(new SettingsEnumDropdown { @@ -28,6 +30,12 @@ namespace osu.Game.Overlays.Settings.Sections.General Text = "Open osu! folder", Action = storage.OpenInNativeExplorer, }); + + Add(new SettingsButton + { + Text = "Change folder location...", + Action = () => game.PerformFromScreen(menu => menu.Push(new MigrationSelectScreen())) + }); } } } diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs index 8bdeadae5c..1dd079a8ab 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs @@ -5,7 +5,6 @@ using System.Linq; using System.Threading.Tasks; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Screens; using osu.Game.Beatmaps; using osu.Game.Graphics.UserInterface; using osu.Game.Scoring; @@ -29,12 +28,6 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance [BackgroundDependencyLoader] private void load(BeatmapManager beatmaps, ScoreManager scores, SkinManager skins, DialogOverlay dialogOverlay, OsuGame game) { - Add(importBeatmapsButton = new SettingsButton - { - Text = "Migrate storage to new location", - Action = () => game.PerformFromScreen(menu => menu.Push(new MigrationSelectScreen())) - }); - if (beatmaps.SupportsImportFromStable) { Add(importBeatmapsButton = new SettingsButton diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs index 76f01dc4b9..b29cd0d630 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs @@ -12,6 +12,7 @@ using osu.Game.Graphics; using osu.Game.Graphics.Sprites; using osu.Game.Graphics.UserInterface; using osu.Game.Screens; +using osuTK; namespace osu.Game.Overlays.Settings.Sections.Maintenance { @@ -28,6 +29,8 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance public override bool DisallowExternalBeatmapRulesetChanges => true; + public override bool HideOverlaysOnEnter => true; + private Task migrationTask; public MigrationRunScreen(DirectoryInfo destination) @@ -47,6 +50,7 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance Direction = FillDirection.Vertical, Anchor = Anchor.Centre, Origin = Anchor.Centre, + Spacing = new Vector2(10), Children = new Drawable[] { new OsuSpriteText @@ -54,12 +58,26 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance Anchor = Anchor.Centre, Origin = Anchor.Centre, Text = "Migration in progress", - Font = OsuFont.Default.With(size: 48) + Font = OsuFont.Default.With(size: 40) + }, + new OsuSpriteText + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Text = "This could take a few minutes depending on the speed of your disk(s).", + Font = OsuFont.Default.With(size: 30) }, new LoadingSpinner(true) { State = { Value = Visibility.Visible } - } + }, + new OsuSpriteText + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Text = "Please avoid interacting with the game!", + Font = OsuFont.Default.With(size: 30) + }, } }, }; @@ -76,6 +94,13 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance }); } + public override void OnEntering(IScreen last) + { + base.OnEntering(last); + + this.FadeOut().Delay(250).Then().FadeIn(250); + } + public override bool OnExiting(IScreen next) { // block until migration is finished diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs index d1c2f6d6ee..c1aa7f095c 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs @@ -1,13 +1,21 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; +using System.IO; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Shapes; +using osu.Framework.Logging; +using osu.Framework.Platform; using osu.Framework.Screens; +using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterfaceV2; using osu.Game.Screens; +using osuTK; namespace osu.Game.Overlays.Settings.Sections.Maintenance { @@ -15,40 +23,101 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance { private DirectorySelector directorySelector; + public override bool AllowExternalScreenChange => false; + + public override bool DisallowExternalBeatmapRulesetChanges => true; + + public override bool HideOverlaysOnEnter => true; + [BackgroundDependencyLoader] - private void load() + private void load(OsuGame game, Storage storage, OsuColour colours) { - InternalChild = new GridContainer + game.Toolbar.Hide(); + + // begin selection in the parent directory of the current storage location + var initialPath = new DirectoryInfo(storage.GetFullPath(string.Empty)).Parent?.FullName; + + InternalChild = new Container { + Masking = true, + CornerRadius = 10, RelativeSizeAxes = Axes.Both, - RowDimensions = new[] + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Size = new Vector2(0.5f, 0.8f), + Children = new Drawable[] { - new Dimension(GridSizeMode.Relative, 0.8f), - new Dimension(), - }, - Content = new[] - { - new Drawable[] { directorySelector = new DirectorySelector { RelativeSizeAxes = Axes.Both } }, - new Drawable[] + new Box { - new OsuButton + Colour = colours.GreySeafoamDark, + RelativeSizeAxes = Axes.Both, + }, + new GridContainer + { + RelativeSizeAxes = Axes.Both, + RowDimensions = new[] { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - Width = 300, - Text = "Start", - Action = start + new Dimension(), + new Dimension(GridSizeMode.Relative, 0.8f), + new Dimension(), }, + Content = new[] + { + new Drawable[] + { + new OsuSpriteText + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Text = "Please select a new location", + Font = OsuFont.Default.With(size: 40) + }, + }, + new Drawable[] + { + directorySelector = new DirectorySelector(initialPath) + { + RelativeSizeAxes = Axes.Both, + } + }, + new Drawable[] + { + new TriangleButton + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Width = 300, + Text = "Begin folder migration", + Action = start + }, + } + } } } }; } + public override void OnSuspending(IScreen next) + { + base.OnSuspending(next); + + this.FadeOut(250); + } + private void start() { var target = directorySelector.CurrentDirectory.Value; - if (target.GetDirectories().Length > 0 || target.GetFiles().Length > 0) - target = target.CreateSubdirectory("osu-lazer"); + + try + { + if (target.GetDirectories().Length > 0 || target.GetFiles().Length > 0) + target = target.CreateSubdirectory("osu-lazer"); + } + catch (Exception e) + { + Logger.Log($"Error during migration: {e?.Message}", level: LogLevel.Error); + return; + } ValidForResume = false; this.Push(new MigrationRunScreen(target)); From a5826116479b547084fa2d3d0fab0211ab83089a Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 19:05:35 +0900 Subject: [PATCH 145/213] Add test coverage --- .../Settings/TestSceneMigrationScreens.cs | 36 +++++++++++++++++++ .../Maintenance/MigrationRunScreen.cs | 6 ++-- .../Maintenance/MigrationSelectScreen.cs | 10 +++--- 3 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 osu.Game.Tests/Visual/Settings/TestSceneMigrationScreens.cs diff --git a/osu.Game.Tests/Visual/Settings/TestSceneMigrationScreens.cs b/osu.Game.Tests/Visual/Settings/TestSceneMigrationScreens.cs new file mode 100644 index 0000000000..2883e54385 --- /dev/null +++ b/osu.Game.Tests/Visual/Settings/TestSceneMigrationScreens.cs @@ -0,0 +1,36 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.IO; +using System.Threading; +using osu.Framework.Screens; +using osu.Game.Overlays.Settings.Sections.Maintenance; + +namespace osu.Game.Tests.Visual.Settings +{ + public class TestSceneMigrationScreens : ScreenTestScene + { + public TestSceneMigrationScreens() + { + AddStep("Push screen", () => Stack.Push(new TestMigrationSelectScreen())); + } + + private class TestMigrationSelectScreen : MigrationSelectScreen + { + protected override void BeginMigration(DirectoryInfo target) => this.Push(new TestMigrationRunScreen()); + + private class TestMigrationRunScreen : MigrationRunScreen + { + protected override void PerformMigration() + { + Thread.Sleep(3000); + } + + public TestMigrationRunScreen() + : base(null) + { + } + } + } + } +} diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs index b29cd0d630..b0b61554eb 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationRunScreen.cs @@ -20,7 +20,7 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance { private readonly DirectoryInfo destination; - [Resolved] + [Resolved(canBeNull: true)] private OsuGame game { get; set; } public override bool AllowBackButton => false; @@ -84,7 +84,7 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance Beatmap.Value = Beatmap.Default; - migrationTask = Task.Run(() => game.Migrate(destination.FullName)) + migrationTask = Task.Run(PerformMigration) .ContinueWith(t => { if (t.IsFaulted) @@ -94,6 +94,8 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance }); } + protected virtual void PerformMigration() => game?.Migrate(destination.FullName); + public override void OnEntering(IScreen last) { base.OnEntering(last); diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs index c1aa7f095c..79d842a617 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/MigrationSelectScreen.cs @@ -29,10 +29,10 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance public override bool HideOverlaysOnEnter => true; - [BackgroundDependencyLoader] + [BackgroundDependencyLoader(true)] private void load(OsuGame game, Storage storage, OsuColour colours) { - game.Toolbar.Hide(); + game?.Toolbar.Hide(); // begin selection in the parent directory of the current storage location var initialPath = new DirectoryInfo(storage.GetFullPath(string.Empty)).Parent?.FullName; @@ -115,12 +115,14 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance } catch (Exception e) { - Logger.Log($"Error during migration: {e?.Message}", level: LogLevel.Error); + Logger.Log($"Error during migration: {e.Message}", level: LogLevel.Error); return; } ValidForResume = false; - this.Push(new MigrationRunScreen(target)); + BeginMigration(target); } + + protected virtual void BeginMigration(DirectoryInfo target) => this.Push(new MigrationRunScreen(target)); } } From f3b1c32a85050ace4ad7f410913ea3665312e3de Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 20:18:57 +0900 Subject: [PATCH 146/213] Update test logic for new exception type --- osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index ef2b20de64..7a20bd364b 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -211,7 +211,7 @@ namespace osu.Game.Tests.NonVisual var osu = loadOsu(host); Assert.DoesNotThrow(() => osu.Migrate(customPath)); - Assert.Throws(() => osu.Migrate(customPath)); + Assert.Throws(() => osu.Migrate(customPath)); } finally { From 42f446faa9a8d19a0a49d970b8139e7bf28cf4c1 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 21:10:04 +0900 Subject: [PATCH 147/213] Fix remaining test failure --- osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs index b5d07ee7b1..95a1868392 100644 --- a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs @@ -14,7 +14,7 @@ namespace osu.Game.Overlays.Settings.Sections.General { protected override string Header => "Updates"; - [BackgroundDependencyLoader] + [BackgroundDependencyLoader(true)] private void load(Storage storage, OsuConfigManager config, OsuGame game) { Add(new SettingsEnumDropdown @@ -34,7 +34,7 @@ namespace osu.Game.Overlays.Settings.Sections.General Add(new SettingsButton { Text = "Change folder location...", - Action = () => game.PerformFromScreen(menu => menu.Push(new MigrationSelectScreen())) + Action = () => game?.PerformFromScreen(menu => menu.Push(new MigrationSelectScreen())) }); } } From e390d70b707c97909404b8f596dc2908a66605b4 Mon Sep 17 00:00:00 2001 From: Fukashi13 <48766178+Fukashi13@users.noreply.github.com> Date: Thu, 14 May 2020 14:33:12 +0200 Subject: [PATCH 148/213] bestMatch changes on entering section with screen top border --- osu.Game/Graphics/Containers/SectionsContainer.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/osu.Game/Graphics/Containers/SectionsContainer.cs b/osu.Game/Graphics/Containers/SectionsContainer.cs index a3125614aa..8b866c8d21 100644 --- a/osu.Game/Graphics/Containers/SectionsContainer.cs +++ b/osu.Game/Graphics/Containers/SectionsContainer.cs @@ -189,15 +189,15 @@ namespace osu.Game.Graphics.Containers headerBackgroundContainer.Height = (ExpandableHeader?.LayoutSize.Y ?? 0) + (FixedHeader?.LayoutSize.Y ?? 0); headerBackgroundContainer.Y = ExpandableHeader?.Y ?? 0; - T bestMatch = null; - float minDiff = float.MaxValue; + T bestMatch = Children.FirstOrDefault(); + float minDiff = float.MinValue; float scrollOffset = FixedHeader?.LayoutSize.Y ?? 0; foreach (var section in Children) { - float diff = Math.Abs(scrollContainer.GetChildPosInContent(section) - currentScroll - scrollOffset); + float diff = scrollContainer.GetChildPosInContent(section) - currentScroll - scrollOffset; - if (diff < minDiff) + if ((minDiff < diff) & (diff < 0)) { minDiff = diff; bestMatch = section; From 155e918ca3063b4c03146144cc3b8f9a035d5566 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 21:40:26 +0900 Subject: [PATCH 149/213] Remove unused parameter --- .../Overlays/Settings/Sections/Maintenance/GeneralSettings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs b/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs index 1dd079a8ab..832673703b 100644 --- a/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/Maintenance/GeneralSettings.cs @@ -26,7 +26,7 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance private TriangleButton undeleteButton; [BackgroundDependencyLoader] - private void load(BeatmapManager beatmaps, ScoreManager scores, SkinManager skins, DialogOverlay dialogOverlay, OsuGame game) + private void load(BeatmapManager beatmaps, ScoreManager scores, SkinManager skins, DialogOverlay dialogOverlay) { if (beatmaps.SupportsImportFromStable) { From ef8375b442d78dea8737ef91b6bb5b3ecbf6e7ee Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 22:42:42 +0900 Subject: [PATCH 150/213] Add protection against migrating to a nested folder --- .../NonVisual/CustomDataDirectoryTest.cs | 24 +++++++++++++++++++ osu.Game/IO/OsuStorage.cs | 6 +++++ 2 files changed, 30 insertions(+) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index ef2b20de64..433067ffdd 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -220,6 +220,30 @@ namespace osu.Game.Tests.NonVisual } } + [Test] + public void TestMigrationToNestedTargetFails() + { + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToSameTargetFails))) + { + try + { + var osu = loadOsu(host); + + Assert.DoesNotThrow(() => osu.Migrate(customPath)); + + string subFolder = Path.Combine(customPath, "sub"); + + Directory.CreateDirectory(subFolder); + + Assert.Throws(() => osu.Migrate(subFolder)); + } + finally + { + host.Exit(); + } + } + } + private OsuGameBase loadOsu(GameHost host) { var osu = new OsuGameBase(); diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 71b01ce479..7c0af16a63 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -48,6 +48,12 @@ namespace osu.Game.IO var source = new DirectoryInfo(GetFullPath(".")); var destination = new DirectoryInfo(newLocation); + if (source.FullName == destination.FullName) + throw new ArgumentException("Destination provided is already the current location", nameof(newLocation)); + + if (destination.FullName.Contains(source.FullName)) + throw new ArgumentException("Destination provided is inside the source", nameof(newLocation)); + // ensure the new location has no files present, else hard abort if (destination.Exists) { From 827d75b152f17af984b9823dc4322a185fdaaa55 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 22:44:27 +0900 Subject: [PATCH 151/213] Revert "Add protection against migrating to a nested folder" This reverts commit ef8375b442d78dea8737ef91b6bb5b3ecbf6e7ee. --- .../NonVisual/CustomDataDirectoryTest.cs | 24 ------------------- osu.Game/IO/OsuStorage.cs | 6 ----- 2 files changed, 30 deletions(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index 433067ffdd..ef2b20de64 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -220,30 +220,6 @@ namespace osu.Game.Tests.NonVisual } } - [Test] - public void TestMigrationToNestedTargetFails() - { - using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToSameTargetFails))) - { - try - { - var osu = loadOsu(host); - - Assert.DoesNotThrow(() => osu.Migrate(customPath)); - - string subFolder = Path.Combine(customPath, "sub"); - - Directory.CreateDirectory(subFolder); - - Assert.Throws(() => osu.Migrate(subFolder)); - } - finally - { - host.Exit(); - } - } - } - private OsuGameBase loadOsu(GameHost host) { var osu = new OsuGameBase(); diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 7c0af16a63..71b01ce479 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -48,12 +48,6 @@ namespace osu.Game.IO var source = new DirectoryInfo(GetFullPath(".")); var destination = new DirectoryInfo(newLocation); - if (source.FullName == destination.FullName) - throw new ArgumentException("Destination provided is already the current location", nameof(newLocation)); - - if (destination.FullName.Contains(source.FullName)) - throw new ArgumentException("Destination provided is inside the source", nameof(newLocation)); - // ensure the new location has no files present, else hard abort if (destination.Exists) { From 364aa5aa129af4dbf996d4942b2f4884b6d53dbd Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 22:42:42 +0900 Subject: [PATCH 152/213] Add protection against migrating to a nested folder --- .../NonVisual/CustomDataDirectoryTest.cs | 24 +++++++++++++++++++ osu.Game/IO/OsuStorage.cs | 3 +++ 2 files changed, 27 insertions(+) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index 7a20bd364b..e8f052cdeb 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -220,6 +220,30 @@ namespace osu.Game.Tests.NonVisual } } + [Test] + public void TestMigrationToNestedTargetFails() + { + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToSameTargetFails))) + { + try + { + var osu = loadOsu(host); + + Assert.DoesNotThrow(() => osu.Migrate(customPath)); + + string subFolder = Path.Combine(customPath, "sub"); + + Directory.CreateDirectory(subFolder); + + Assert.Throws(() => osu.Migrate(subFolder)); + } + finally + { + host.Exit(); + } + } + } + private OsuGameBase loadOsu(GameHost host) { var osu = new OsuGameBase(); diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 443f4fdb69..e3888c0c28 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -51,6 +51,9 @@ namespace osu.Game.IO if (source.FullName == destination.FullName) throw new ArgumentException("Destination provided is already the current location", nameof(newLocation)); + if (destination.FullName.Contains(source.FullName)) + throw new ArgumentException("Destination provided is inside the source", nameof(newLocation)); + // ensure the new location has no files present, else hard abort if (destination.Exists) { From 6ec55eb400a480dbf475565fdf48589b7e0ea50d Mon Sep 17 00:00:00 2001 From: Shivam Date: Thu, 14 May 2020 21:51:39 +0200 Subject: [PATCH 153/213] Give mappool scene its own video --- osu.Game.Tournament/Screens/MapPool/MapPoolScreen.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Tournament/Screens/MapPool/MapPoolScreen.cs b/osu.Game.Tournament/Screens/MapPool/MapPoolScreen.cs index b4c6d589d7..2c4fed8d86 100644 --- a/osu.Game.Tournament/Screens/MapPool/MapPoolScreen.cs +++ b/osu.Game.Tournament/Screens/MapPool/MapPoolScreen.cs @@ -42,7 +42,7 @@ namespace osu.Game.Tournament.Screens.MapPool { InternalChildren = new Drawable[] { - new TourneyVideo("gameplay") + new TourneyVideo("mappool") { Loop = true, RelativeSizeAxes = Axes.Both, From 1768beb690a9733f3ebf966c6576b8006c011984 Mon Sep 17 00:00:00 2001 From: Shivam Date: Thu, 14 May 2020 21:52:10 +0200 Subject: [PATCH 154/213] Rename class SeeingEditorScreen to SeedingEditorScreen --- .../Screens/Editors/SeedingEditorScreen.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs index 46bb7b83e3..52f761e50a 100644 --- a/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs @@ -19,7 +19,7 @@ using osuTK; namespace osu.Game.Tournament.Screens.Editors { - public class SeedingEditorScreen : TournamentEditorScreen + public class SeedingEditorScreen : TournamentEditorScreen { private readonly TournamentTeam team; @@ -30,14 +30,14 @@ namespace osu.Game.Tournament.Screens.Editors this.team = team; } - public class SeeingResultRow : CompositeDrawable, IModelBacked + public class SeedingResultRow : CompositeDrawable, IModelBacked { public SeedingResult Model { get; } [Resolved] private LadderInfo ladderInfo { get; set; } - public SeeingResultRow(TournamentTeam team, SeedingResult round) + public SeedingResultRow(TournamentTeam team, SeedingResult round) { Model = round; @@ -281,6 +281,6 @@ namespace osu.Game.Tournament.Screens.Editors } } - protected override SeeingResultRow CreateDrawable(SeedingResult model) => new SeeingResultRow(team, model); + protected override SeedingResultRow CreateDrawable(SeedingResult model) => new SeedingResultRow(team, model); } } From 097fcfd9ad35832a190a9bee0f7bfd14f33aa146 Mon Sep 17 00:00:00 2001 From: Fukashi13 <48766178+Fukashi13@users.noreply.github.com> Date: Fri, 15 May 2020 00:06:58 +0200 Subject: [PATCH 155/213] Update osu.Game/Graphics/Containers/SectionsContainer.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartłomiej Dach --- osu.Game/Graphics/Containers/SectionsContainer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Graphics/Containers/SectionsContainer.cs b/osu.Game/Graphics/Containers/SectionsContainer.cs index 8b866c8d21..5192a7ddea 100644 --- a/osu.Game/Graphics/Containers/SectionsContainer.cs +++ b/osu.Game/Graphics/Containers/SectionsContainer.cs @@ -197,7 +197,7 @@ namespace osu.Game.Graphics.Containers { float diff = scrollContainer.GetChildPosInContent(section) - currentScroll - scrollOffset; - if ((minDiff < diff) & (diff < 0)) + if (minDiff < diff && diff < 0) { minDiff = diff; bestMatch = section; From 25bbb02999481de9adecaa38f51e3e6293018bcd Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2020 22:57:41 +0900 Subject: [PATCH 156/213] Throw better exceptions from OsuStorage --- osu.Game/IO/OsuStorage.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 71b01ce479..8109631ef9 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -48,11 +48,14 @@ namespace osu.Game.IO var source = new DirectoryInfo(GetFullPath(".")); var destination = new DirectoryInfo(newLocation); + if (source.FullName == destination.FullName) + throw new ArgumentException("Destination provided is already the current location", nameof(newLocation)); + // ensure the new location has no files present, else hard abort if (destination.Exists) { if (destination.GetFiles().Length > 0 || destination.GetDirectories().Length > 0) - throw new InvalidOperationException("Migration destination already has files present"); + throw new ArgumentException("Destination provided already has files or directories present", nameof(newLocation)); deleteRecursive(destination); } From 19f117ae53fe3058ed251bd687a7cb8266e75cf8 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 20:18:57 +0900 Subject: [PATCH 157/213] Update test logic for new exception type --- osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index ef2b20de64..7a20bd364b 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -211,7 +211,7 @@ namespace osu.Game.Tests.NonVisual var osu = loadOsu(host); Assert.DoesNotThrow(() => osu.Migrate(customPath)); - Assert.Throws(() => osu.Migrate(customPath)); + Assert.Throws(() => osu.Migrate(customPath)); } finally { From 0690d81bbb1bc7ee969b7e07050a565138b5b5c0 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 14 May 2020 22:42:42 +0900 Subject: [PATCH 158/213] Add protection against migrating to a nested folder --- .../NonVisual/CustomDataDirectoryTest.cs | 48 +++++++++++++++++++ osu.Game/IO/OsuStorage.cs | 9 +++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index 7a20bd364b..2a98a6dbc6 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -220,6 +220,54 @@ namespace osu.Game.Tests.NonVisual } } + [Test] + public void TestMigrationToNestedTargetFails() + { + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToSameTargetFails))) + { + try + { + var osu = loadOsu(host); + + Assert.DoesNotThrow(() => osu.Migrate(customPath)); + + string subFolder = Path.Combine(customPath, "sub"); + + Directory.CreateDirectory(subFolder); + + Assert.Throws(() => osu.Migrate(subFolder)); + } + finally + { + host.Exit(); + } + } + } + + [Test] + public void TestMigrationToSeeminglyNestedTarget() + { + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToSeeminglyNestedTarget))) + { + try + { + var osu = loadOsu(host); + + Assert.DoesNotThrow(() => osu.Migrate(customPath)); + + string subFolder = customPath + "sub"; + + Directory.CreateDirectory(subFolder); + + osu.Migrate(subFolder); + } + finally + { + host.Exit(); + } + } + } + private OsuGameBase loadOsu(GameHost host) { var osu = new OsuGameBase(); diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 8109631ef9..ac28a05375 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -48,9 +48,16 @@ namespace osu.Game.IO var source = new DirectoryInfo(GetFullPath(".")); var destination = new DirectoryInfo(newLocation); - if (source.FullName == destination.FullName) + // using Uri is the easiest way to check equality and contains (https://stackoverflow.com/a/7710620) + var sourceUri = new Uri(source.FullName + Path.DirectorySeparatorChar); + var destinationUri = new Uri(destination.FullName + Path.DirectorySeparatorChar); + + if (sourceUri == destinationUri) throw new ArgumentException("Destination provided is already the current location", nameof(newLocation)); + if (sourceUri.IsBaseOf(destinationUri)) + throw new ArgumentException("Destination provided is inside the source", nameof(newLocation)); + // ensure the new location has no files present, else hard abort if (destination.Exists) { From 7641507c90f770bab9e096dad63132001cc532d5 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 15 May 2020 10:45:57 +0900 Subject: [PATCH 159/213] Ensure test directories are deleted before subsequent run --- osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index 2a98a6dbc6..d69bf94ee2 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -233,6 +233,9 @@ namespace osu.Game.Tests.NonVisual string subFolder = Path.Combine(customPath, "sub"); + if (Directory.Exists(subFolder)) + Directory.Delete(subFolder, true); + Directory.CreateDirectory(subFolder); Assert.Throws(() => osu.Migrate(subFolder)); @@ -255,11 +258,14 @@ namespace osu.Game.Tests.NonVisual Assert.DoesNotThrow(() => osu.Migrate(customPath)); - string subFolder = customPath + "sub"; + string seeminglySubFolder = customPath + "sub"; - Directory.CreateDirectory(subFolder); + if (Directory.Exists(seeminglySubFolder)) + Directory.Delete(seeminglySubFolder, true); - osu.Migrate(subFolder); + Directory.CreateDirectory(seeminglySubFolder); + + osu.Migrate(seeminglySubFolder); } finally { From 94cf99bf978305b7f45eb0bfb1323c34e3525bb5 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 15 May 2020 12:21:02 +0900 Subject: [PATCH 160/213] Fix mute button falling off the screen when UI scaling is used --- osu.Game/Overlays/VolumeOverlay.cs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/osu.Game/Overlays/VolumeOverlay.cs b/osu.Game/Overlays/VolumeOverlay.cs index 676d2c941a..eb639431ae 100644 --- a/osu.Game/Overlays/VolumeOverlay.cs +++ b/osu.Game/Overlays/VolumeOverlay.cs @@ -46,6 +46,13 @@ namespace osu.Game.Overlays Width = 300, Colour = ColourInfo.GradientHorizontal(Color4.Black.Opacity(0.75f), Color4.Black.Opacity(0)) }, + muteButton = new MuteButton + { + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft, + Margin = new MarginPadding(10), + Current = { BindTarget = IsMuted } + }, new FillFlowContainer { Direction = FillDirection.Vertical, @@ -56,19 +63,11 @@ namespace osu.Game.Overlays Margin = new MarginPadding { Left = offset }, Children = new Drawable[] { - volumeMeterEffect = new VolumeMeter("EFFECTS", 125, colours.BlueDarker) - { - Margin = new MarginPadding { Top = 100 + MuteButton.HEIGHT } // to counter the mute button and re-center the volume meters - }, + volumeMeterEffect = new VolumeMeter("EFFECTS", 125, colours.BlueDarker), volumeMeterMaster = new VolumeMeter("MASTER", 150, colours.PinkDarker), volumeMeterMusic = new VolumeMeter("MUSIC", 125, colours.BlueDarker), - muteButton = new MuteButton - { - Margin = new MarginPadding { Top = 100 }, - Current = { BindTarget = IsMuted } - } } - }, + } }); volumeMeterMaster.Bindable.BindTo(audio.Volume); From aea192080a51f014d79da5caad8ce70507d65a74 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 15 May 2020 13:02:46 +0900 Subject: [PATCH 161/213] Fix incorrect storage name --- osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs index d69bf94ee2..743c924bbd 100644 --- a/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs +++ b/osu.Game.Tests/NonVisual/CustomDataDirectoryTest.cs @@ -223,7 +223,7 @@ namespace osu.Game.Tests.NonVisual [Test] public void TestMigrationToNestedTargetFails() { - using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToSameTargetFails))) + using (HeadlessGameHost host = new CleanRunHeadlessGameHost(nameof(TestMigrationToNestedTargetFails))) { try { From 6ca102bc3fb44d751986c3daa141825d8ed094ec Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 15 May 2020 13:19:03 +0900 Subject: [PATCH 162/213] Attempt delete operations more than once --- osu.Game/IO/OsuStorage.cs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/osu.Game/IO/OsuStorage.cs b/osu.Game/IO/OsuStorage.cs index 5393cbf7ae..499bcb4063 100644 --- a/osu.Game/IO/OsuStorage.cs +++ b/osu.Game/IO/OsuStorage.cs @@ -84,7 +84,7 @@ namespace osu.Game.IO if (topLevelExcludes && IGNORE_FILES.Contains(fi.Name)) continue; - fi.Delete(); + attemptOperation(() => fi.Delete()); } foreach (DirectoryInfo dir in target.GetDirectories()) @@ -92,11 +92,11 @@ namespace osu.Game.IO if (topLevelExcludes && IGNORE_DIRECTORIES.Contains(dir.Name)) continue; - dir.Delete(true); + attemptOperation(() => dir.Delete(true)); } if (target.GetFiles().Length == 0 && target.GetDirectories().Length == 0) - target.Delete(); + attemptOperation(target.Delete); } private static void copyRecursive(DirectoryInfo source, DirectoryInfo destination, bool topLevelExcludes = true) @@ -109,7 +109,7 @@ namespace osu.Game.IO if (topLevelExcludes && IGNORE_FILES.Contains(fi.Name)) continue; - attemptCopy(fi, Path.Combine(destination.FullName, fi.Name)); + attemptOperation(() => fi.CopyTo(Path.Combine(destination.FullName, fi.Name), true)); } foreach (DirectoryInfo dir in source.GetDirectories()) @@ -121,24 +121,27 @@ namespace osu.Game.IO } } - private static void attemptCopy(System.IO.FileInfo fileInfo, string destination) + /// + /// Attempt an IO operation multiple times and only throw if none of the attempts succeed. + /// + /// The action to perform. + /// The number of attempts (250ms wait between each). + private static void attemptOperation(Action action, int attempts = 10) { - int tries = 5; - while (true) { try { - fileInfo.CopyTo(destination, true); + action(); return; } catch (Exception) { - if (tries-- == 0) + if (attempts-- == 0) throw; } - Thread.Sleep(50); + Thread.Sleep(250); } } } From aec2520ef41155ea14e7bdf0c68fce4a45c7e3e1 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 15 May 2020 17:31:06 +0900 Subject: [PATCH 163/213] Avoid disabling a host-level bindable from osu! code --- .../Settings/Sections/Input/MouseSettings.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs index e7f2f21465..65fc07d1d9 100644 --- a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs @@ -17,12 +17,20 @@ namespace osu.Game.Overlays.Settings.Sections.Input protected override string Header => "Mouse"; private readonly BindableBool rawInputToggle = new BindableBool(); + private Bindable sensitivityBindable = new BindableDouble(); private Bindable ignoredInputHandler; private SensitivitySetting sensitivity; [BackgroundDependencyLoader] private void load(OsuConfigManager osuConfig, FrameworkConfigManager config) { + var configSensitivity = config.GetBindable(FrameworkSetting.CursorSensitivity); + + // use local bindable to avoid changing enabled state of game host's bindable. + sensitivityBindable = configSensitivity.GetUnboundCopy(); + configSensitivity.BindValueChanged(val => sensitivityBindable.Value = val.NewValue); + sensitivityBindable.BindValueChanged(val => configSensitivity.Value = val.NewValue); + Children = new Drawable[] { new SettingsCheckbox @@ -33,7 +41,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input sensitivity = new SensitivitySetting { LabelText = "Cursor sensitivity", - Bindable = config.GetBindable(FrameworkSetting.CursorSensitivity) + Bindable = sensitivityBindable }, new SettingsCheckbox { @@ -60,7 +68,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input if (RuntimeInfo.OS != RuntimeInfo.Platform.Windows) { rawInputToggle.Disabled = true; - sensitivity.Bindable.Disabled = true; + sensitivityBindable.Disabled = true; } else { From 9b6525bb03a09323b38ec1e2296d63ce1a73a5d8 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 15 May 2020 18:44:47 +0900 Subject: [PATCH 164/213] Fix applied platform/user offsets being incorrect when rate adjust mods are active --- osu.Game/Screens/Play/GameplayClockContainer.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Play/GameplayClockContainer.cs b/osu.Game/Screens/Play/GameplayClockContainer.cs index 591e969ad8..2f85d6ad1e 100644 --- a/osu.Game/Screens/Play/GameplayClockContainer.cs +++ b/osu.Game/Screens/Play/GameplayClockContainer.cs @@ -78,10 +78,10 @@ namespace osu.Game.Screens.Play // Lazer's audio timings in general doesn't match stable. This is the result of user testing, albeit limited. // This only seems to be required on windows. We need to eventually figure out why, with a bit of luck. - platformOffsetClock = new FramedOffsetClock(adjustableClock) { Offset = RuntimeInfo.OS == RuntimeInfo.Platform.Windows ? 15 : 0 }; + platformOffsetClock = new HardwareCorrectionOffsetClock(adjustableClock) { Offset = RuntimeInfo.OS == RuntimeInfo.Platform.Windows ? 15 : 0 }; // the final usable gameplay clock with user-set offsets applied. - userOffsetClock = new FramedOffsetClock(platformOffsetClock); + userOffsetClock = new HardwareCorrectionOffsetClock(platformOffsetClock); // the clock to be exposed via DI to children. GameplayClock = new GameplayClock(userOffsetClock); @@ -248,5 +248,16 @@ namespace osu.Game.Screens.Play speedAdjustmentsApplied = false; } } + + private class HardwareCorrectionOffsetClock : FramedOffsetClock + { + // we always want to apply the same real-time offset, so it should be adjusted by the playback rate to achieve this. + public override double CurrentTime => SourceTime + Offset * Rate; + + public HardwareCorrectionOffsetClock(IClock source, bool processSource = true) + : base(source, processSource) + { + } + } } } From c55eb8335135359ee20ee7a3900392b35981b6da Mon Sep 17 00:00:00 2001 From: Fukashi13 <48766178+Fukashi13@users.noreply.github.com> Date: Fri, 15 May 2020 14:03:45 +0200 Subject: [PATCH 165/213] last section gets selected when scrolling to bottom of list --- .../Graphics/Containers/SectionsContainer.cs | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/osu.Game/Graphics/Containers/SectionsContainer.cs b/osu.Game/Graphics/Containers/SectionsContainer.cs index 5192a7ddea..b9ed9b90fc 100644 --- a/osu.Game/Graphics/Containers/SectionsContainer.cs +++ b/osu.Game/Graphics/Containers/SectionsContainer.cs @@ -189,23 +189,18 @@ namespace osu.Game.Graphics.Containers headerBackgroundContainer.Height = (ExpandableHeader?.LayoutSize.Y ?? 0) + (FixedHeader?.LayoutSize.Y ?? 0); headerBackgroundContainer.Y = ExpandableHeader?.Y ?? 0; - T bestMatch = Children.FirstOrDefault(); - float minDiff = float.MinValue; float scrollOffset = FixedHeader?.LayoutSize.Y ?? 0; + Func diff = section => scrollContainer.GetChildPosInContent(section) - currentScroll - scrollOffset; - foreach (var section in Children) + if (scrollContainer.IsScrolledToEnd()) { - float diff = scrollContainer.GetChildPosInContent(section) - currentScroll - scrollOffset; - - if (minDiff < diff && diff < 0) - { - minDiff = diff; - bestMatch = section; - } + SelectedSection.Value = Children.LastOrDefault(); + } + else + { + SelectedSection.Value = Children.TakeWhile(section => diff(section) <= 0).LastOrDefault() + ?? Children.FirstOrDefault(); } - - if (bestMatch != null) - SelectedSection.Value = bestMatch; } } From 6416ace70d07f8a5d67bfd469ee93e73f1af5266 Mon Sep 17 00:00:00 2001 From: Fukashi13 <48766178+Fukashi13@users.noreply.github.com> Date: Fri, 15 May 2020 14:31:05 +0200 Subject: [PATCH 166/213] fixed indent --- osu.Game/Graphics/Containers/SectionsContainer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Graphics/Containers/SectionsContainer.cs b/osu.Game/Graphics/Containers/SectionsContainer.cs index b9ed9b90fc..d739f56828 100644 --- a/osu.Game/Graphics/Containers/SectionsContainer.cs +++ b/osu.Game/Graphics/Containers/SectionsContainer.cs @@ -199,7 +199,7 @@ namespace osu.Game.Graphics.Containers else { SelectedSection.Value = Children.TakeWhile(section => diff(section) <= 0).LastOrDefault() - ?? Children.FirstOrDefault(); + ?? Children.FirstOrDefault(); } } } From 4096463d02d8ac096f6e4c7d1d23d89b9575e0c9 Mon Sep 17 00:00:00 2001 From: Lucas A Date: Fri, 15 May 2020 19:43:01 +0200 Subject: [PATCH 167/213] Move SkipOverlay internal alpha manipulation to a nested container and adjust visual tests. --- .../Visual/Gameplay/TestSceneSkipOverlay.cs | 30 ++++++++++++------- osu.Game/Screens/Play/Player.cs | 1 - osu.Game/Screens/Play/SkipOverlay.cs | 27 +++++++++-------- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs index 6a0f86fe53..7c4ae4fc52 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs @@ -2,9 +2,9 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Osu; using osu.Game.Screens.Play; @@ -16,7 +16,7 @@ namespace osu.Game.Tests.Visual.Gameplay [TestFixture] public class TestSceneSkipOverlay : OsuManualInputManagerTestScene { - private SkipOverlay skip; + private TestSkipOverlay skip; private int requestCount; private double increment; @@ -37,7 +37,7 @@ namespace osu.Game.Tests.Visual.Gameplay RelativeSizeAxes = Axes.Both, Children = new Drawable[] { - skip = new SkipOverlay(skip_time) + skip = new TestSkipOverlay(skip_time) { RequestSkip = () => { @@ -56,19 +56,19 @@ namespace osu.Game.Tests.Visual.Gameplay public void TestFadeOnIdle() { AddStep("move mouse", () => InputManager.MoveMouseTo(Vector2.Zero)); - AddUntilStep("fully visible", () => skip.Children.First().Alpha == 1); - AddUntilStep("wait for fade", () => skip.Children.First().Alpha < 1); + AddUntilStep("fully visible", () => skip.OverlayContents.Alpha == 1); + AddUntilStep("wait for fade", () => skip.OverlayContents.Alpha < 1); AddStep("move mouse", () => InputManager.MoveMouseTo(skip.ScreenSpaceDrawQuad.Centre)); - AddUntilStep("fully visible", () => skip.Children.First().Alpha == 1); - AddUntilStep("wait for fade", () => skip.Children.First().Alpha < 1); + AddUntilStep("fully visible", () => skip.OverlayContents.Alpha == 1); + AddUntilStep("wait for fade", () => skip.OverlayContents.Alpha < 1); } [Test] public void TestClickableAfterFade() { AddStep("move mouse", () => InputManager.MoveMouseTo(skip.ScreenSpaceDrawQuad.Centre)); - AddUntilStep("wait for fade", () => skip.Children.First().Alpha == 0); + AddUntilStep("wait for fade", () => skip.OverlayContents.Alpha == 0); AddStep("click", () => InputManager.Click(MouseButton.Left)); checkRequestCount(1); } @@ -105,13 +105,23 @@ namespace osu.Game.Tests.Visual.Gameplay { AddStep("move mouse", () => InputManager.MoveMouseTo(skip.ScreenSpaceDrawQuad.Centre)); AddStep("button down", () => InputManager.PressButton(MouseButton.Left)); - AddUntilStep("wait for overlay disappear", () => !skip.IsPresent); - AddAssert("ensure button didn't disappear", () => skip.Children.First().Alpha > 0); + AddUntilStep("wait for overlay disappear", () => !skip.Child.IsPresent); + AddAssert("ensure button didn't disappear", () => skip.OverlayContents.Alpha > 0); AddStep("button up", () => InputManager.ReleaseButton(MouseButton.Left)); checkRequestCount(0); } private void checkRequestCount(int expected) => AddAssert($"request count is {expected}", () => requestCount == expected); + + private class TestSkipOverlay : SkipOverlay + { + public TestSkipOverlay(double startTime) + : base(startTime) + { + } + + public Drawable OverlayContents => (Child as Container).Child; + } } } diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index b24cef8eae..02c7b671a3 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -191,7 +191,6 @@ namespace osu.Game.Screens.Play HUDOverlay.ShowHud.Value = false; HUDOverlay.ShowHud.Disabled = true; BreakOverlay.Hide(); - skipOverlay.Disabled = true; skipOverlay.Hide(); } diff --git a/osu.Game/Screens/Play/SkipOverlay.cs b/osu.Game/Screens/Play/SkipOverlay.cs index 757dcd21ed..fec35df4e3 100644 --- a/osu.Game/Screens/Play/SkipOverlay.cs +++ b/osu.Game/Screens/Play/SkipOverlay.cs @@ -24,13 +24,14 @@ using osu.Game.Input.Bindings; namespace osu.Game.Screens.Play { - public class SkipOverlay : VisibilityContainer, IKeyBindingHandler + public class SkipOverlay : Container, IKeyBindingHandler { private readonly double startTime; public Action RequestSkip; private Button button; + private ButtonContainer buttonContainer; private Box remainingTimeBox; private FadeContainer fadeContainer; @@ -39,8 +40,6 @@ namespace osu.Game.Screens.Play [Resolved] private GameplayClock gameplayClock { get; set; } - public bool Disabled { get; set; } - public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => true; /// @@ -63,9 +62,10 @@ namespace osu.Game.Screens.Play [BackgroundDependencyLoader(true)] private void load(OsuColour colours) { - Children = new Drawable[] + Child = buttonContainer = new ButtonContainer { - fadeContainer = new FadeContainer + RelativeSizeAxes = Axes.Both, + Child = fadeContainer = new FadeContainer { RelativeSizeAxes = Axes.Both, Children = new Drawable[] @@ -106,15 +106,8 @@ namespace osu.Game.Screens.Play button.Action = () => RequestSkip?.Invoke(); displayTime = gameplayClock.CurrentTime; - - if (!Disabled) - Show(); } - protected override void PopIn() => this.FadeIn(fade_time); - - protected override void PopOut() => this.FadeOut(fade_time); - protected override void Update() { base.Update(); @@ -124,13 +117,14 @@ namespace osu.Game.Screens.Play remainingTimeBox.Width = (float)Interpolation.Lerp(remainingTimeBox.Width, progress, Math.Clamp(Time.Elapsed / 40, 0, 1)); button.Enabled.Value = progress > 0; - State.Value = progress > 0 && !Disabled ? Visibility.Visible : Visibility.Hidden; + buttonContainer.State.Value = progress > 0 ? Visibility.Visible : Visibility.Hidden; } protected override bool OnMouseMove(MouseMoveEvent e) { if (!e.HasAnyButtonPressed) fadeContainer.Show(); + return base.OnMouseMove(e); } @@ -217,6 +211,13 @@ namespace osu.Game.Screens.Play public override void Show() => State = Visibility.Visible; } + private class ButtonContainer : VisibilityContainer + { + protected override void PopIn() => this.FadeIn(fade_time); + + protected override void PopOut() => this.FadeOut(fade_time); + } + private class Button : OsuClickableContainer { private Color4 colourNormal; From ed9d6f28297c2801e1e6ad87bb81205e8d66c5e0 Mon Sep 17 00:00:00 2001 From: Lucas A Date: Fri, 15 May 2020 22:58:15 +0200 Subject: [PATCH 168/213] Fix CI inspection. --- osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs index 7c4ae4fc52..e093542d1e 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs @@ -121,7 +121,7 @@ namespace osu.Game.Tests.Visual.Gameplay { } - public Drawable OverlayContents => (Child as Container).Child; + public Drawable OverlayContents => (Child as Container)?.Child; } } } From c47f02c3b72cd1f499817cd133a34dfbf9777c55 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 16 May 2020 08:24:02 +0900 Subject: [PATCH 169/213] Update second instance of disabling bindable --- osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs index 65fc07d1d9..f139a704bc 100644 --- a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs @@ -86,7 +86,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input { bool raw = !handler.NewValue.Contains("Raw"); rawInputToggle.Value = raw; - sensitivity.Bindable.Disabled = !raw; + sensitivityBindable.Disabled = !raw; }; ignoredInputHandler.TriggerChange(); From c931bae70ec13b10f45c89ad67d223c635046186 Mon Sep 17 00:00:00 2001 From: Shivam Date: Sat, 16 May 2020 03:07:27 +0200 Subject: [PATCH 170/213] Add back button to TournamentScreen and the inputhandler for it --- .../Screens/Editors/TournamentEditorScreen.cs | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs index 8e5df72cc8..11cb072c6b 100644 --- a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs @@ -9,6 +9,9 @@ using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; +using osu.Game.Graphics.UserInterface; +using osu.Game.Input.Bindings; +using osu.Framework.Input.Bindings; using osu.Game.Graphics; using osu.Game.Graphics.Containers; using osu.Game.Overlays.Settings; @@ -17,7 +20,7 @@ using osuTK; namespace osu.Game.Tournament.Screens.Editors { - public abstract class TournamentEditorScreen : TournamentScreen, IProvideVideo + public abstract class TournamentEditorScreen : TournamentScreen, IProvideVideo, IKeyBindingHandler where TDrawable : Drawable, IModelBacked where TModel : class, new() { @@ -25,8 +28,19 @@ namespace osu.Game.Tournament.Screens.Editors private FillFlowContainer flow; + [Resolved(canBeNull: true)] + private TournamentSceneManager sceneManager { get; set; } + protected ControlPanel ControlPanel; + protected virtual bool IsSubScreen => false; + + protected virtual System.Type ParentScreen { get; set; } + + private BackButton backButton; + + private System.Action backAction => () => sceneManager?.SetScreen(ParentScreen); + [BackgroundDependencyLoader] private void load() { @@ -70,6 +84,19 @@ namespace osu.Game.Tournament.Screens.Editors } }); + if (IsSubScreen) + { + BackButton.Receptor receptor = new BackButton.Receptor(); + backButton = new BackButton(receptor) + { + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft, + Action = () => { backAction.Invoke(); } + }; + AddInternal(backButton); + backButton.Show(); + } + Storage.CollectionChanged += (_, args) => { switch (args.Action) @@ -88,6 +115,22 @@ namespace osu.Game.Tournament.Screens.Editors flow.Add(CreateDrawable(model)); } + public bool OnPressed(GlobalAction action) + { + switch (action) + { + case GlobalAction.Back: + backAction.Invoke(); + return true; + } + + return false; + } + + public void OnReleased(GlobalAction action) + { + } + protected abstract TDrawable CreateDrawable(TModel model); } } From bf6ce390ff39d6db4c82897daf561af332491502 Mon Sep 17 00:00:00 2001 From: Shivam Date: Sat, 16 May 2020 03:07:51 +0200 Subject: [PATCH 171/213] Add sub screen implementation to SeedingEditorScreen --- osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs index 52f761e50a..0f980ec9a3 100644 --- a/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs @@ -25,6 +25,13 @@ namespace osu.Game.Tournament.Screens.Editors protected override BindableList Storage => team.SeedingResults; + [Resolved(canBeNull: true)] + private TournamentSceneManager sceneManager { get; set; } + + protected override bool IsSubScreen => true; + + protected override System.Type ParentScreen => typeof(TeamEditorScreen); + public SeedingEditorScreen(TournamentTeam team) { this.team = team; From 9d3df14179b740231e25bbb45f1d7b51e94b5840 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 16 May 2020 11:03:27 +0900 Subject: [PATCH 172/213] Remove unused variable --- osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs index f139a704bc..d27ab63fb7 100644 --- a/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs +++ b/osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs @@ -19,7 +19,6 @@ namespace osu.Game.Overlays.Settings.Sections.Input private readonly BindableBool rawInputToggle = new BindableBool(); private Bindable sensitivityBindable = new BindableDouble(); private Bindable ignoredInputHandler; - private SensitivitySetting sensitivity; [BackgroundDependencyLoader] private void load(OsuConfigManager osuConfig, FrameworkConfigManager config) @@ -38,7 +37,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input LabelText = "Raw input", Bindable = rawInputToggle }, - sensitivity = new SensitivitySetting + new SensitivitySetting { LabelText = "Cursor sensitivity", Bindable = sensitivityBindable From b1243d6a8787a71701898de661a91fd457a827b7 Mon Sep 17 00:00:00 2001 From: Shivam Date: Sat, 16 May 2020 04:05:01 +0200 Subject: [PATCH 173/213] Add padding to so the back button is not in the way --- .../Screens/Editors/TournamentEditorScreen.cs | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs index 11cb072c6b..bca0814d3a 100644 --- a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs @@ -44,6 +44,18 @@ namespace osu.Game.Tournament.Screens.Editors [BackgroundDependencyLoader] private void load() { + BackButton.Receptor receptor = new BackButton.Receptor(); + backButton = new BackButton(receptor) + { + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft, + Action = () => + { + if (IsSubScreen) + backAction.Invoke(); + } + }; + AddRangeInternal(new Drawable[] { new Box @@ -56,6 +68,7 @@ namespace osu.Game.Tournament.Screens.Editors RelativeSizeAxes = Axes.Both, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, + Padding = new MarginPadding { Bottom = backButton.Height }, Child = flow = new FillFlowContainer { Direction = FillDirection.Vertical, @@ -64,6 +77,7 @@ namespace osu.Game.Tournament.Screens.Editors Spacing = new Vector2(20) }, }, + backButton, ControlPanel = new ControlPanel { Children = new Drawable[] @@ -85,17 +99,7 @@ namespace osu.Game.Tournament.Screens.Editors }); if (IsSubScreen) - { - BackButton.Receptor receptor = new BackButton.Receptor(); - backButton = new BackButton(receptor) - { - Anchor = Anchor.BottomLeft, - Origin = Anchor.BottomLeft, - Action = () => { backAction.Invoke(); } - }; - AddInternal(backButton); backButton.Show(); - } Storage.CollectionChanged += (_, args) => { From 648999a2de9e9cfc0bc25e804337c8d6f2d6cf30 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Sat, 16 May 2020 18:17:12 +0900 Subject: [PATCH 174/213] Remove all RequiredTypes usages --- .../CatchSkinnableTestScene.cs | 9 ------- .../TestSceneBananaShower.cs | 15 ----------- .../TestSceneCatcher.cs | 9 ------- .../TestSceneDrawableHitObjects.cs | 10 ------- .../TestSceneDrawableHitObjectsHidden.cs | 5 ---- .../TestSceneFruitObjects.cs | 19 -------------- .../TestSceneHyperDash.cs | 6 ----- .../Skinning/ManiaSkinnableTestScene.cs | 10 ------- .../Skinning/TestSceneDrawableJudgement.cs | 7 ----- .../Skinning/TestSceneHitExplosion.cs | 9 ------- .../Skinning/TestSceneKeyArea.cs | 9 ------- .../Skinning/TestSceneStageBackground.cs | 10 ------- .../Skinning/TestSceneStageForeground.cs | 9 ------- .../TestSceneColumn.cs | 10 ------- .../TestSceneManiaHitObjectComposer.cs | 7 ----- .../TestSceneNotes.cs | 8 ------ .../OsuSkinnableTestScene.cs | 9 ------- .../TestSceneDrawableJudgement.cs | 7 ----- .../TestSceneGameplayCursor.cs | 14 ---------- .../TestSceneHitCircle.cs | 7 ----- .../TestSceneHitCircleHidden.cs | 5 ---- .../TestSceneOsuDistanceSnapGrid.cs | 7 ----- .../TestScenePathControlPointVisualiser.cs | 10 ------- .../TestSceneResumeOverlay.cs | 7 ----- .../TestSceneSlider.cs | 18 ------------- .../TestSceneSliderHidden.cs | 5 ---- .../TestSceneSliderInput.cs | 14 ---------- .../TestSceneSliderSelectionBlueprint.cs | 12 --------- .../TestSceneSpinner.cs | 10 ------- .../TestSceneSpinnerHidden.cs | 5 ---- .../TestSceneSpinnerSelectionBlueprint.cs | 9 ------- .../TestSceneSpinnerSpunOut.cs | 11 -------- .../Skinning/TaikoSkinnableTestScene.cs | 9 ------- .../Skinning/TestSceneDrawableBarLine.cs | 11 -------- .../Skinning/TestSceneDrawableDrumRoll.cs | 11 -------- .../Skinning/TestSceneDrawableHit.cs | 11 -------- .../Skinning/TestSceneDrawableTaikoMascot.cs | 7 ----- .../Skinning/TestSceneHitExplosion.cs | 11 -------- .../Skinning/TestSceneInputDrum.cs | 10 ------- .../Skinning/TestSceneTaikoPlayfield.cs | 11 -------- .../Background/TestSceneUserDimBackgrounds.cs | 11 -------- .../Editing/TestSceneBeatDivisorControl.cs | 2 -- .../TestSceneEditorComposeRadioButtons.cs | 4 --- .../Visual/Editing/TestSceneEditorMenuBar.cs | 4 --- .../Editing/TestSceneEditorSummaryTimeline.cs | 4 --- .../Editing/TestSceneHitObjectComposer.cs | 18 ------------- .../TestSceneTimelineBlueprintContainer.cs | 7 ----- .../Visual/Editing/TestSceneTimingScreen.cs | 14 ---------- .../Visual/Editing/TimelineTestScene.cs | 10 ------- .../Visual/Gameplay/TestSceneBreakTracker.cs | 6 ----- .../Visual/Gameplay/TestSceneFailAnimation.cs | 8 ------ .../Gameplay/TestSceneGameplayMenuOverlay.cs | 3 --- .../Visual/Gameplay/TestSceneHitErrorMeter.cs | 9 ------- .../Visual/Gameplay/TestSceneKeyCounter.cs | 9 ------- .../Visual/Gameplay/TestSceneMedalOverlay.cs | 9 ------- .../TestSceneNightcoreBeatContainer.cs | 7 ----- .../Gameplay/TestSceneReplayDownloadButton.cs | 7 ----- .../Gameplay/TestSceneScrollingHitObjects.cs | 3 --- .../Visual/Gameplay/TestSceneSongProgress.cs | 6 ----- osu.Game.Tests/Visual/Menus/IntroTestScene.cs | 9 ------- .../Visual/Menus/TestSceneToolbar.cs | 10 ------- .../TestSceneDrawableRoomPlaylist.cs | 7 ----- .../Multiplayer/TestSceneLoungeRoomInfo.cs | 6 ----- .../TestSceneLoungeRoomsContainer.cs | 7 ----- .../Multiplayer/TestSceneMatchHeader.cs | 7 ----- .../TestSceneMatchLeaderboardChatDisplay.cs | 7 ----- .../TestSceneMatchSettingsOverlay.cs | 6 ----- .../Multiplayer/TestSceneMatchSongSelect.cs | 6 ----- .../Multiplayer/TestSceneMatchSubScreen.cs | 10 ------- .../Multiplayer/TestSceneMultiScreen.cs | 11 -------- .../TestSceneOverlinedParticipants.cs | 9 ------- .../Visual/Multiplayer/TestSceneRoomStatus.cs | 9 ------- .../Online/TestSceneAccountCreationOverlay.cs | 13 ---------- .../Online/TestSceneBeatmapListingOverlay.cs | 9 ------- .../Online/TestSceneBeatmapRulesetSelector.cs | 7 ----- .../Online/TestSceneBeatmapSetOverlay.cs | 26 ------------------- .../TestSceneBeatmapSetOverlayDetails.cs | 6 ----- .../TestSceneBeatmapSetOverlaySuccessRate.cs | 7 ----- .../Online/TestSceneChangelogOverlay.cs | 12 --------- .../Online/TestSceneChannelTabControl.cs | 6 ----- .../Online/TestSceneChatLineTruncation.cs | 10 ------- .../Visual/Online/TestSceneChatLink.cs | 12 --------- .../Visual/Online/TestSceneChatOverlay.cs | 13 ---------- .../Online/TestSceneCommentsContainer.cs | 15 ----------- .../Visual/Online/TestSceneCommentsHeader.cs | 9 ------- .../Visual/Online/TestSceneCommentsPage.cs | 6 ----- .../Online/TestSceneDashboardOverlay.cs | 11 -------- .../Online/TestSceneDirectDownloadButton.cs | 7 ----- .../Visual/Online/TestSceneDirectPanel.cs | 8 ------ .../Online/TestSceneExternalLinkButton.cs | 4 --- .../Visual/Online/TestSceneFriendDisplay.cs | 7 ----- .../Online/TestSceneHistoricalSection.cs | 10 ------- .../Visual/Online/TestSceneKudosuHistory.cs | 5 ---- .../Online/TestSceneLeaderboardModSelector.cs | 7 ----- .../TestSceneLeaderboardScopeSelector.cs | 7 ----- .../Online/TestSceneProfileCounterPill.cs | 7 ----- .../Online/TestSceneProfileRulesetSelector.cs | 8 ------ .../Visual/Online/TestSceneRankGraph.cs | 9 ------- .../Online/TestSceneRankingsCountryFilter.cs | 8 ------ .../Visual/Online/TestSceneRankingsHeader.cs | 9 ------- .../Visual/Online/TestSceneRankingsOverlay.cs | 15 ----------- .../TestSceneRankingsSpotlightSelector.cs | 5 ---- .../Visual/Online/TestSceneRankingsTables.cs | 12 --------- .../Visual/Online/TestSceneScoresContainer.cs | 10 ------- .../Visual/Online/TestSceneShowMoreButton.cs | 7 ----- .../Visual/Online/TestSceneSocialOverlay.cs | 11 -------- .../Online/TestSceneSpotlightsLayout.cs | 8 ------ .../Online/TestSceneTotalCommentsCounter.cs | 7 ----- .../Visual/Online/TestSceneUserPanel.cs | 8 ------ .../Online/TestSceneUserProfileHeader.cs | 16 ------------ .../Online/TestSceneUserProfileOverlay.cs | 13 ---------- .../TestSceneUserProfilePreviousUsernames.cs | 6 ----- .../TestSceneUserProfileRecentSection.cs | 10 ------- .../Online/TestSceneUserProfileScores.cs | 9 ------- .../Visual/Online/TestSceneUserRanks.cs | 10 ------- .../Visual/Online/TestSceneVotePill.cs | 7 ----- .../Visual/Ranking/TestSceneAccuracyCircle.cs | 10 ------- .../TestSceneExpandedPanelMiddleContent.cs | 15 ----------- .../Visual/Ranking/TestSceneResultsScreen.cs | 8 ------ .../Visual/Ranking/TestSceneScorePanel.cs | 8 ------ .../Settings/TestSceneKeyBindingPanel.cs | 13 ---------- .../Visual/Settings/TestSceneSettingsPanel.cs | 9 ------- .../SongSelect/TestSceneBeatmapCarousel.cs | 15 ----------- .../SongSelect/TestSceneBeatmapLeaderboard.cs | 11 -------- .../SongSelect/TestScenePlaySongSelect.cs | 18 ------------- osu.Game.Tests/Visual/TestSceneOsuGame.cs | 5 ---- .../UserInterface/TestSceneBackButton.cs | 7 ----- .../TestSceneBeatSyncedContainer.cs | 5 ---- .../TestSceneBeatmapListingSearchControl.cs | 7 ----- .../TestSceneBeatmapListingSortTabControl.cs | 7 ----- .../TestSceneBeatmapSearchFilter.cs | 8 ------ .../UserInterface/TestSceneButtonSystem.cs | 8 ------ .../UserInterface/TestSceneCommentEditor.cs | 8 ------ .../TestSceneDeleteLocalScore.cs | 12 --------- .../TestSceneFooterButtonMods.cs | 6 ----- .../TestSceneFriendsOnlineStatusControl.cs | 10 ------- .../TestSceneHoldToConfirmOverlay.cs | 9 ------- .../TestSceneLabelledSwitchButton.cs | 8 ------ .../UserInterface/TestSceneLabelledTextBox.cs | 7 ----- .../UserInterface/TestSceneLoadingLayer.cs | 4 --- .../TestSceneLogoTrackingContainer.cs | 14 ---------- .../TestSceneModSelectOverlay.cs | 16 ------------ .../TestSceneNotificationOverlay.cs | 11 -------- .../UserInterface/TestSceneNumberBox.cs | 7 ----- .../Visual/UserInterface/TestSceneOsuMenu.cs | 8 ------ .../UserInterface/TestSceneOverlayHeader.cs | 14 ---------- .../TestSceneOverlayHeaderBackground.cs | 7 ----- .../TestSceneOverlayRulesetSelector.cs | 8 ------ .../TestSceneOverlayScrollContainer.cs | 7 ----- .../UserInterface/TestScenePlaylistOverlay.cs | 7 ----- .../UserInterface/TestScenePopupDialog.cs | 11 -------- .../TestSceneStatefulMenuItem.cs | 9 ------- .../UserInterface/TestSceneToggleMenuItem.cs | 9 ------- .../TestSceneToolbarRulesetSelector.cs | 8 ------ .../UserInterface/TestSceneUserListToolbar.cs | 10 ------- .../UserInterface/TestSceneVolumePieces.cs | 4 --- .../TestSceneDrawableTournamentMatch.cs | 9 ------- .../TestSceneDrawableTournamentTeam.cs | 13 ---------- .../Components/TestSceneMatchHeader.cs | 9 ------- .../Components/TestSceneRoundDisplay.cs | 8 ------ .../Screens/TestSceneGameplayScreen.cs | 15 ----------- osu.Game/Tests/Visual/EditorTestScene.cs | 4 --- osu.Game/Tests/Visual/ModTestScene.cs | 5 ---- 163 files changed, 1471 deletions(-) diff --git a/osu.Game.Rulesets.Catch.Tests/CatchSkinnableTestScene.cs b/osu.Game.Rulesets.Catch.Tests/CatchSkinnableTestScene.cs index 0c46b078b5..378772fea3 100644 --- a/osu.Game.Rulesets.Catch.Tests/CatchSkinnableTestScene.cs +++ b/osu.Game.Rulesets.Catch.Tests/CatchSkinnableTestScene.cs @@ -1,21 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using osu.Game.Rulesets.Catch.Skinning; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Catch.Tests { public abstract class CatchSkinnableTestScene : SkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CatchRuleset), - typeof(CatchLegacySkinTransformer), - }; - protected override Ruleset CreateRulesetForSkinProvider() => new CatchRuleset(); } } diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneBananaShower.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneBananaShower.cs index 024c4cefb0..27a2d5bd0a 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneBananaShower.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneBananaShower.cs @@ -1,13 +1,9 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Game.Beatmaps; using osu.Game.Rulesets.Catch.Objects; -using osu.Game.Rulesets.Catch.Objects.Drawables; -using osu.Game.Rulesets.Catch.UI; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Catch.Tests @@ -15,17 +11,6 @@ namespace osu.Game.Rulesets.Catch.Tests [TestFixture] public class TestSceneBananaShower : PlayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BananaShower), - typeof(Banana), - typeof(DrawableBananaShower), - typeof(DrawableBanana), - - typeof(CatchRuleset), - typeof(DrawableCatchRuleset), - }; - public TestSceneBananaShower() : base(new CatchRuleset()) { diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs index 3a3e664690..6eeda2c731 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs @@ -4,9 +4,6 @@ using NUnit.Framework; using osu.Framework.Allocation; using osu.Game.Rulesets.Catch.UI; -using System; -using System.Collections.Generic; -using System.Linq; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -15,12 +12,6 @@ namespace osu.Game.Rulesets.Catch.Tests [TestFixture] public class TestSceneCatcher : CatchSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(CatcherArea), - typeof(CatcherSprite) - }).ToList(); - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjects.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjects.cs index df5494aab0..a7094c00be 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjects.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjects.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -22,15 +21,6 @@ namespace osu.Game.Rulesets.Catch.Tests { public class TestSceneDrawableHitObjects : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Catcher), - typeof(DrawableCatchRuleset), - typeof(DrawableFruit), - typeof(DrawableJuiceStream), - typeof(DrawableBanana) - }; - private DrawableCatchRuleset drawableRuleset; private double playfieldTime => drawableRuleset.Playfield.Time.Current; diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjectsHidden.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjectsHidden.cs index 8c3dfef39c..62fe5dca2c 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjectsHidden.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneDrawableHitObjectsHidden.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Game.Rulesets.Catch.Mods; @@ -11,8 +8,6 @@ namespace osu.Game.Rulesets.Catch.Tests { public class TestSceneDrawableHitObjectsHidden : TestSceneDrawableHitObjects { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] { typeof(CatchModHidden) }).ToList(); - [SetUp] public void SetUp() => Schedule(() => { diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneFruitObjects.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneFruitObjects.cs index cd674bb754..c07e4fdad3 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneFruitObjects.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneFruitObjects.cs @@ -2,13 +2,10 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Rulesets.Catch.Objects; using osu.Game.Rulesets.Catch.Objects.Drawables; -using osu.Game.Rulesets.Catch.Objects.Drawables.Pieces; using osuTK; namespace osu.Game.Rulesets.Catch.Tests @@ -16,22 +13,6 @@ namespace osu.Game.Rulesets.Catch.Tests [TestFixture] public class TestSceneFruitObjects : CatchSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(CatchHitObject), - typeof(Fruit), - typeof(FruitPiece), - typeof(Droplet), - typeof(Banana), - typeof(BananaShower), - typeof(DrawableCatchHitObject), - typeof(DrawableFruit), - typeof(DrawableDroplet), - typeof(DrawableBanana), - typeof(DrawableBananaShower), - typeof(Pulp), - }).ToList(); - protected override void LoadComplete() { base.LoadComplete(); diff --git a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDash.cs b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDash.cs index 49ff9df4d7..0a142a52f8 100644 --- a/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDash.cs +++ b/osu.Game.Rulesets.Catch.Tests/TestSceneHyperDash.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Testing; @@ -18,11 +17,6 @@ namespace osu.Game.Rulesets.Catch.Tests [TestFixture] public class TestSceneHyperDash : PlayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CatcherArea), - }; - public TestSceneHyperDash() : base(new CatchRuleset()) { diff --git a/osu.Game.Rulesets.Mania.Tests/Skinning/ManiaSkinnableTestScene.cs b/osu.Game.Rulesets.Mania.Tests/Skinning/ManiaSkinnableTestScene.cs index a3c1d518c5..1d84a2dfcb 100644 --- a/osu.Game.Rulesets.Mania.Tests/Skinning/ManiaSkinnableTestScene.cs +++ b/osu.Game.Rulesets.Mania.Tests/Skinning/ManiaSkinnableTestScene.cs @@ -1,15 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Shapes; -using osu.Game.Rulesets.Mania.Skinning; using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Rulesets.UI.Scrolling.Algorithms; using osu.Game.Tests.Visual; @@ -27,13 +24,6 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning [Cached(Type = typeof(IScrollingInfo))] private readonly TestScrollingInfo scrollingInfo = new TestScrollingInfo(); - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ManiaRuleset), - typeof(ManiaLegacySkinTransformer), - typeof(ManiaSettingsSubsection) - }; - protected override Ruleset CreateRulesetForSkinProvider() => new ManiaRuleset(); protected ManiaSkinnableTestScene() diff --git a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneDrawableJudgement.cs b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneDrawableJudgement.cs index 6ab8a68176..497b80950a 100644 --- a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneDrawableJudgement.cs +++ b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneDrawableJudgement.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using osu.Framework.Extensions; using osu.Framework.Graphics; @@ -15,12 +14,6 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning { public class TestSceneDrawableJudgement : ManiaSkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableJudgement), - typeof(DrawableManiaJudgement) - }; - public TestSceneDrawableJudgement() { foreach (HitResult result in Enum.GetValues(typeof(HitResult)).OfType().Skip(1)) diff --git a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneHitExplosion.cs b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneHitExplosion.cs index 5f046574ba..a692c0b697 100644 --- a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneHitExplosion.cs +++ b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneHitExplosion.cs @@ -1,15 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; -using osu.Game.Rulesets.Mania.Objects.Drawables; using osu.Game.Rulesets.Mania.Objects.Drawables.Pieces; using osu.Game.Rulesets.Mania.UI; using osu.Game.Skinning; @@ -21,12 +18,6 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning [TestFixture] public class TestSceneHitExplosion : ManiaSkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableNote), - typeof(DrawableManiaHitObject), - }; - public TestSceneHitExplosion() { int runcount = 0; diff --git a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneKeyArea.cs b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneKeyArea.cs index c8f901285a..7e80419944 100644 --- a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneKeyArea.cs +++ b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneKeyArea.cs @@ -1,12 +1,9 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; -using osu.Game.Rulesets.Mania.Skinning; using osu.Game.Rulesets.Mania.UI.Components; using osu.Game.Skinning; using osuTK; @@ -15,12 +12,6 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning { public class TestSceneKeyArea : ManiaSkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DefaultKeyArea), - typeof(LegacyKeyArea) - }; - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageBackground.cs b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageBackground.cs index a8fc68188a..87c84cf89c 100644 --- a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageBackground.cs +++ b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageBackground.cs @@ -1,12 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Game.Rulesets.Mania.Skinning; using osu.Game.Rulesets.Mania.UI.Components; using osu.Game.Skinning; @@ -14,12 +10,6 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning { public class TestSceneStageBackground : ManiaSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(DefaultStageBackground), - typeof(LegacyStageBackground), - }).ToList(); - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageForeground.cs b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageForeground.cs index d436445b59..4e99068ed5 100644 --- a/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageForeground.cs +++ b/osu.Game.Rulesets.Mania.Tests/Skinning/TestSceneStageForeground.cs @@ -1,23 +1,14 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Game.Rulesets.Mania.Skinning; using osu.Game.Skinning; namespace osu.Game.Rulesets.Mania.Tests.Skinning { public class TestSceneStageForeground : ManiaSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(LegacyStageForeground), - }).ToList(); - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Mania.Tests/TestSceneColumn.cs b/osu.Game.Rulesets.Mania.Tests/TestSceneColumn.cs index 5e06002f41..d9b1ad22fa 100644 --- a/osu.Game.Rulesets.Mania.Tests/TestSceneColumn.cs +++ b/osu.Game.Rulesets.Mania.Tests/TestSceneColumn.cs @@ -12,7 +12,6 @@ using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Mania.Objects; using osu.Game.Rulesets.Mania.Objects.Drawables; using osu.Game.Rulesets.Mania.UI; -using osu.Game.Rulesets.Mania.UI.Components; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Tests.Visual; @@ -24,15 +23,6 @@ namespace osu.Game.Rulesets.Mania.Tests [TestFixture] public class TestSceneColumn : ManiaInputTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Column), - typeof(ColumnBackground), - typeof(ColumnHitObjectArea), - typeof(DefaultKeyArea), - typeof(DefaultHitTarget) - }; - [Cached(typeof(IReadOnlyList))] private IReadOnlyList mods { get; set; } = Array.Empty(); diff --git a/osu.Game.Rulesets.Mania.Tests/TestSceneManiaHitObjectComposer.cs b/osu.Game.Rulesets.Mania.Tests/TestSceneManiaHitObjectComposer.cs index 48159c817d..6274bb1005 100644 --- a/osu.Game.Rulesets.Mania.Tests/TestSceneManiaHitObjectComposer.cs +++ b/osu.Game.Rulesets.Mania.Tests/TestSceneManiaHitObjectComposer.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -29,11 +27,6 @@ namespace osu.Game.Rulesets.Mania.Tests { public class TestSceneManiaHitObjectComposer : EditorClockTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ManiaBlueprintContainer) - }; - private TestComposer composer; [SetUp] diff --git a/osu.Game.Rulesets.Mania.Tests/TestSceneNotes.cs b/osu.Game.Rulesets.Mania.Tests/TestSceneNotes.cs index 8dae5e6d84..ea6a1e2e6a 100644 --- a/osu.Game.Rulesets.Mania.Tests/TestSceneNotes.cs +++ b/osu.Game.Rulesets.Mania.Tests/TestSceneNotes.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -30,12 +28,6 @@ namespace osu.Game.Rulesets.Mania.Tests [TestFixture] public class TestSceneNotes : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableNote), - typeof(DrawableHoldNote) - }; - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Osu.Tests/OsuSkinnableTestScene.cs b/osu.Game.Rulesets.Osu.Tests/OsuSkinnableTestScene.cs index 90ebbd9f04..a0a38fc47b 100644 --- a/osu.Game.Rulesets.Osu.Tests/OsuSkinnableTestScene.cs +++ b/osu.Game.Rulesets.Osu.Tests/OsuSkinnableTestScene.cs @@ -1,21 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using osu.Game.Rulesets.Osu.Skinning; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Osu.Tests { public abstract class OsuSkinnableTestScene : SkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OsuRuleset), - typeof(OsuLegacySkinTransformer), - }; - protected override Ruleset CreateRulesetForSkinProvider() => new OsuRuleset(); } } diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneDrawableJudgement.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneDrawableJudgement.cs index f867630df6..c81edf4e07 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneDrawableJudgement.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneDrawableJudgement.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using osu.Framework.Extensions; using osu.Framework.Graphics; @@ -15,12 +14,6 @@ namespace osu.Game.Rulesets.Osu.Tests { public class TestSceneDrawableJudgement : OsuSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(DrawableJudgement), - typeof(DrawableOsuJudgement) - }).ToList(); - public TestSceneDrawableJudgement() { foreach (HitResult result in Enum.GetValues(typeof(HitResult)).OfType().Skip(1)) diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneGameplayCursor.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneGameplayCursor.cs index 22dacc6f5e..38c2bb9b95 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneGameplayCursor.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneGameplayCursor.cs @@ -2,16 +2,12 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Testing.Input; using osu.Game.Configuration; -using osu.Game.Rulesets.Osu.Skinning; using osu.Game.Rulesets.Osu.UI.Cursor; -using osu.Game.Rulesets.UI; using osu.Game.Screens.Play; using osuTK; @@ -20,16 +16,6 @@ namespace osu.Game.Rulesets.Osu.Tests [TestFixture] public class TestSceneGameplayCursor : OsuSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(GameplayCursorContainer), - typeof(OsuCursorContainer), - typeof(OsuCursor), - typeof(LegacyCursor), - typeof(LegacyCursorTrail), - typeof(CursorTrail) - }).ToList(); - [Cached] private GameplayBeatmap gameplayBeatmap; diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircle.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircle.cs index e117729f01..37df0d6e37 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircle.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircle.cs @@ -8,8 +8,6 @@ using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Osu.Objects; using osu.Game.Rulesets.Osu.Objects.Drawables; using osuTK; -using System.Collections.Generic; -using System; using osu.Game.Rulesets.Mods; using System.Linq; using NUnit.Framework; @@ -20,11 +18,6 @@ namespace osu.Game.Rulesets.Osu.Tests [TestFixture] public class TestSceneHitCircle : OsuSkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableHitCircle) - }; - private int depthIndex; public TestSceneHitCircle() diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircleHidden.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircleHidden.cs index 21ebce8c23..45125204b6 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircleHidden.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneHitCircleHidden.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Game.Rulesets.Osu.Mods; @@ -12,8 +9,6 @@ namespace osu.Game.Rulesets.Osu.Tests [TestFixture] public class TestSceneHitCircleHidden : TestSceneHitCircle { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] { typeof(OsuModHidden) }).ToList(); - [SetUp] public void SetUp() => Schedule(() => { diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneOsuDistanceSnapGrid.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneOsuDistanceSnapGrid.cs index 0ae49790cd..c182aa5d63 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneOsuDistanceSnapGrid.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneOsuDistanceSnapGrid.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -16,7 +15,6 @@ using osu.Game.Rulesets.Osu.Beatmaps; using osu.Game.Rulesets.Osu.Edit; using osu.Game.Rulesets.Osu.Objects; using osu.Game.Screens.Edit; -using osu.Game.Screens.Edit.Compose.Components; using osu.Game.Tests.Visual; using osuTK; using osuTK.Graphics; @@ -28,11 +26,6 @@ namespace osu.Game.Rulesets.Osu.Tests private const double beat_length = 100; private static readonly Vector2 grid_position = new Vector2(512, 384); - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CircularDistanceSnapGrid) - }; - [Cached(typeof(EditorBeatmap))] private readonly EditorBeatmap editorBeatmap; diff --git a/osu.Game.Rulesets.Osu.Tests/TestScenePathControlPointVisualiser.cs b/osu.Game.Rulesets.Osu.Tests/TestScenePathControlPointVisualiser.cs index cbe14ff4d2..21fa283b6d 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestScenePathControlPointVisualiser.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestScenePathControlPointVisualiser.cs @@ -1,10 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; -using Humanizer; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Beatmaps; @@ -19,13 +16,6 @@ namespace osu.Game.Rulesets.Osu.Tests { public class TestScenePathControlPointVisualiser : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(StringHumanizeExtensions), - typeof(PathControlPointPiece), - typeof(PathControlPointConnectionPiece) - }; - private Slider slider; private PathControlPointVisualiser visualiser; diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneResumeOverlay.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneResumeOverlay.cs index f4809b0c9b..a7967c407a 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneResumeOverlay.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneResumeOverlay.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Cursor; @@ -14,11 +12,6 @@ namespace osu.Game.Rulesets.Osu.Tests { public class TestSceneResumeOverlay : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OsuResumeOverlay), - }; - public TestSceneResumeOverlay() { ManualOsuInputManager osuInputManager; diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSlider.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSlider.cs index eb6130c8a6..a9404f665a 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSlider.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSlider.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -21,29 +20,12 @@ using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Objects.Types; -using osu.Game.Rulesets.Osu.Objects.Drawables.Pieces; namespace osu.Game.Rulesets.Osu.Tests { [TestFixture] public class TestSceneSlider : OsuSkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Slider), - typeof(SliderTick), - typeof(SliderTailCircle), - typeof(SliderBall), - typeof(SliderBody), - typeof(SnakingSliderBody), - typeof(DrawableSlider), - typeof(DrawableSliderTick), - typeof(DrawableSliderTail), - typeof(DrawableSliderHead), - typeof(DrawableSliderRepeat), - typeof(DrawableOsuHitObject) - }; - private Container content; protected override Container Content diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSliderHidden.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSliderHidden.cs index d0ee1bddb5..b2bd727c6a 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSliderHidden.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSliderHidden.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Game.Rulesets.Osu.Mods; @@ -12,8 +9,6 @@ namespace osu.Game.Rulesets.Osu.Tests [TestFixture] public class TestSceneSliderHidden : TestSceneSlider { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] { typeof(OsuModHidden) }).ToList(); - [SetUp] public void SetUp() => Schedule(() => { diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSliderInput.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSliderInput.cs index b0c2e56c3e..b543b6fa94 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSliderInput.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSliderInput.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -13,8 +12,6 @@ using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Types; using osu.Game.Rulesets.Osu.Objects; -using osu.Game.Rulesets.Osu.Objects.Drawables; -using osu.Game.Rulesets.Osu.Objects.Drawables.Pieces; using osu.Game.Rulesets.Osu.Replays; using osu.Game.Rulesets.Replays; using osu.Game.Rulesets.Scoring; @@ -27,17 +24,6 @@ namespace osu.Game.Rulesets.Osu.Tests { public class TestSceneSliderInput : RateAdjustedBeatmapTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SliderBall), - typeof(DrawableSlider), - typeof(DrawableSliderTick), - typeof(DrawableSliderRepeat), - typeof(DrawableOsuHitObject), - typeof(DrawableSliderHead), - typeof(DrawableSliderTail), - }; - private const double time_before_slider = 250; private const double time_slider_start = 1500; private const double time_during_slide_1 = 2500; diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSliderSelectionBlueprint.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSliderSelectionBlueprint.cs index 5dd2bd18a8..d5be538d94 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSliderSelectionBlueprint.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSliderSelectionBlueprint.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Utils; using osu.Game.Beatmaps; @@ -22,16 +20,6 @@ namespace osu.Game.Rulesets.Osu.Tests { public class TestSceneSliderSelectionBlueprint : SelectionBlueprintTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SliderSelectionBlueprint), - typeof(SliderCircleSelectionBlueprint), - typeof(SliderBodyPiece), - typeof(SliderCircle), - typeof(PathControlPointVisualiser), - typeof(PathControlPointPiece) - }; - private Slider slider; private DrawableSlider drawableObject; private TestSliderBlueprint blueprint; diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinner.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinner.cs index f53b64c729..65bed071cd 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinner.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinner.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; @@ -12,7 +10,6 @@ using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Osu.Objects; using osu.Game.Rulesets.Osu.Objects.Drawables; -using osu.Game.Rulesets.Osu.Objects.Drawables.Pieces; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Osu.Tests @@ -20,13 +17,6 @@ namespace osu.Game.Rulesets.Osu.Tests [TestFixture] public class TestSceneSpinner : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SpinnerDisc), - typeof(DrawableSpinner), - typeof(DrawableOsuHitObject) - }; - private readonly Container content; protected override Container Content => content; diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerHidden.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerHidden.cs index dd863deed2..91b6a05fe3 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerHidden.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerHidden.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Game.Rulesets.Osu.Mods; @@ -12,8 +9,6 @@ namespace osu.Game.Rulesets.Osu.Tests [TestFixture] public class TestSceneSpinnerHidden : TestSceneSpinner { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] { typeof(OsuModHidden) }).ToList(); - [SetUp] public void SetUp() => Schedule(() => { diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSelectionBlueprint.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSelectionBlueprint.cs index d777ca3610..011463ab14 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSelectionBlueprint.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSelectionBlueprint.cs @@ -1,14 +1,11 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Osu.Edit.Blueprints.Spinners; -using osu.Game.Rulesets.Osu.Edit.Blueprints.Spinners.Components; using osu.Game.Rulesets.Osu.Objects; using osu.Game.Rulesets.Osu.Objects.Drawables; using osu.Game.Tests.Visual; @@ -18,12 +15,6 @@ namespace osu.Game.Rulesets.Osu.Tests { public class TestSceneSpinnerSelectionBlueprint : SelectionBlueprintTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SpinnerSelectionBlueprint), - typeof(SpinnerPiece) - }; - public TestSceneSpinnerSelectionBlueprint() { var spinner = new Spinner diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSpunOut.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSpunOut.cs index e406f9ddff..d1210db6b1 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSpunOut.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerSpunOut.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; @@ -12,7 +10,6 @@ using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Osu.Mods; using osu.Game.Rulesets.Osu.Objects; using osu.Game.Rulesets.Osu.Objects.Drawables; -using osu.Game.Rulesets.Osu.Objects.Drawables.Pieces; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Osu.Tests @@ -20,14 +17,6 @@ namespace osu.Game.Rulesets.Osu.Tests [TestFixture] public class TestSceneSpinnerSpunOut : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SpinnerDisc), - typeof(DrawableSpinner), - typeof(DrawableOsuHitObject), - typeof(OsuModSpunOut) - }; - [SetUp] public void SetUp() => Schedule(() => { diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TaikoSkinnableTestScene.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TaikoSkinnableTestScene.cs index 161154b1a7..69250a14e1 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TaikoSkinnableTestScene.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TaikoSkinnableTestScene.cs @@ -1,21 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using osu.Game.Rulesets.Taiko.Skinning; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Taiko.Tests.Skinning { public abstract class TaikoSkinnableTestScene : SkinnableTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TaikoRuleset), - typeof(TaikoLegacySkinTransformer), - }; - protected override Ruleset CreateRulesetForSkinProvider() => new TaikoRuleset(); } } diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableBarLine.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableBarLine.cs index 70493aa69a..f6aec20d53 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableBarLine.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableBarLine.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -12,7 +9,6 @@ using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Taiko.Objects; using osu.Game.Rulesets.Taiko.Objects.Drawables; -using osu.Game.Rulesets.Taiko.Skinning; using osu.Game.Rulesets.Taiko.UI; using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Tests.Visual; @@ -22,13 +18,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning [TestFixture] public class TestSceneDrawableBarLine : TaikoSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(DrawableBarLine), - typeof(LegacyBarLine), - typeof(BarLine), - }).ToList(); - [Cached(typeof(IScrollingInfo))] private ScrollingTestContainer.TestScrollingInfo info = new ScrollingTestContainer.TestScrollingInfo { diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableDrumRoll.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableDrumRoll.cs index 554894bf68..44646e5fc9 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableDrumRoll.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableDrumRoll.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -11,7 +8,6 @@ using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Taiko.Objects; using osu.Game.Rulesets.Taiko.Objects.Drawables; -using osu.Game.Rulesets.Taiko.Skinning; using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Tests.Visual; @@ -20,13 +16,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning [TestFixture] public class TestSceneDrawableDrumRoll : TaikoSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(DrawableDrumRoll), - typeof(DrawableDrumRollTick), - typeof(LegacyDrumRoll), - }).ToList(); - [Cached(typeof(IScrollingInfo))] private ScrollingTestContainer.TestScrollingInfo info = new ScrollingTestContainer.TestScrollingInfo { diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableHit.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableHit.cs index 6a3c98a514..9930d97d31 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableHit.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableHit.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -11,20 +8,12 @@ using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Taiko.Objects; using osu.Game.Rulesets.Taiko.Objects.Drawables; -using osu.Game.Rulesets.Taiko.Skinning; namespace osu.Game.Rulesets.Taiko.Tests.Skinning { [TestFixture] public class TestSceneDrawableHit : TaikoSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(DrawableHit), - typeof(LegacyHit), - typeof(LegacyCirclePiece), - }).ToList(); - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs index bd3b360577..d200c44a02 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneDrawableTaikoMascot.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using Humanizer; @@ -27,12 +26,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning [TestFixture] public class TestSceneDrawableTaikoMascot : TaikoSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(DrawableTaikoMascot), - typeof(TaikoMascotAnimation) - }).ToList(); - [Cached(typeof(IScrollingInfo))] private ScrollingTestContainer.TestScrollingInfo info = new ScrollingTestContainer.TestScrollingInfo { diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneHitExplosion.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneHitExplosion.cs index 791c438c94..2b5efec7f9 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneHitExplosion.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneHitExplosion.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -11,7 +8,6 @@ using osu.Framework.Graphics.Containers; using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Taiko.Objects; using osu.Game.Rulesets.Taiko.Objects.Drawables; -using osu.Game.Rulesets.Taiko.Skinning; using osu.Game.Rulesets.Taiko.UI; namespace osu.Game.Rulesets.Taiko.Tests.Skinning @@ -19,13 +15,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning [TestFixture] public class TestSceneHitExplosion : TaikoSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(HitExplosion), - typeof(LegacyHitExplosion), - typeof(DefaultHitExplosion), - }).ToList(); - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneInputDrum.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneInputDrum.cs index 412027ca61..fa6c9da174 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneInputDrum.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneInputDrum.cs @@ -1,15 +1,11 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Beatmaps.ControlPoints; -using osu.Game.Rulesets.Taiko.Skinning; using osu.Game.Rulesets.Taiko.UI; using osuTK; @@ -18,12 +14,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning [TestFixture] public class TestSceneInputDrum : TaikoSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(InputDrum), - typeof(LegacyInputDrum), - }).ToList(); - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoPlayfield.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoPlayfield.cs index e02ad53ed8..7b7e2c43d1 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoPlayfield.cs @@ -2,15 +2,12 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; -using System.Linq; using osu.Framework.Allocation; using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Graphics; using osu.Framework.Testing; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Rulesets.Taiko.Beatmaps; -using osu.Game.Rulesets.Taiko.Skinning; using osu.Game.Rulesets.Taiko.UI; using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Tests.Visual; @@ -19,14 +16,6 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning { public class TestSceneTaikoPlayfield : TaikoSkinnableTestScene { - public override IReadOnlyList RequiredTypes => base.RequiredTypes.Concat(new[] - { - typeof(TaikoHitTarget), - typeof(TaikoLegacyHitTarget), - typeof(PlayfieldBackgroundRight), - typeof(LegacyTaikoScroller), - }).ToList(); - [Cached(typeof(IScrollingInfo))] private ScrollingTestContainer.TestScrollingInfo info = new ScrollingTestContainer.TestScrollingInfo { diff --git a/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs b/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs index f97aa48f11..76d0c7a50f 100644 --- a/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs +++ b/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using System.Threading; using NUnit.Framework; @@ -39,15 +37,6 @@ namespace osu.Game.Tests.Visual.Background [TestFixture] public class TestSceneUserDimBackgrounds : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ScreenWithBeatmapBackground), - typeof(PlayerLoader), - typeof(Player), - typeof(UserDimContainer), - typeof(OsuScreen) - }; - private DummySongSelect songSelect; private TestPlayerLoader playerLoader; private LoadBlockingTestPlayer player; diff --git a/osu.Game.Tests/Visual/Editing/TestSceneBeatDivisorControl.cs b/osu.Game.Tests/Visual/Editing/TestSceneBeatDivisorControl.cs index f6e69fd8bf..6cf5e6a987 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneBeatDivisorControl.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneBeatDivisorControl.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; @@ -18,7 +17,6 @@ namespace osu.Game.Tests.Visual.Editing { public class TestSceneBeatDivisorControl : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(BindableBeatDivisor) }; private BeatDivisorControl beatDivisorControl; private BindableBeatDivisor bindableBeatDivisor; diff --git a/osu.Game.Tests/Visual/Editing/TestSceneEditorComposeRadioButtons.cs b/osu.Game.Tests/Visual/Editing/TestSceneEditorComposeRadioButtons.cs index 2deeaef1f6..e4d7e025a8 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneEditorComposeRadioButtons.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneEditorComposeRadioButtons.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Screens.Edit.Components.RadioButtons; @@ -12,8 +10,6 @@ namespace osu.Game.Tests.Visual.Editing [TestFixture] public class TestSceneEditorComposeRadioButtons : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(DrawableRadioButton) }; - public TestSceneEditorComposeRadioButtons() { RadioButtonCollection collection; diff --git a/osu.Game.Tests/Visual/Editing/TestSceneEditorMenuBar.cs b/osu.Game.Tests/Visual/Editing/TestSceneEditorMenuBar.cs index 2cbdacb61c..3cb44d9ae8 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneEditorMenuBar.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneEditorMenuBar.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -15,8 +13,6 @@ namespace osu.Game.Tests.Visual.Editing [TestFixture] public class TestSceneEditorMenuBar : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(EditorMenuBar), typeof(ScreenSelectionTabControl) }; - public TestSceneEditorMenuBar() { Add(new Container diff --git a/osu.Game.Tests/Visual/Editing/TestSceneEditorSummaryTimeline.cs b/osu.Game.Tests/Visual/Editing/TestSceneEditorSummaryTimeline.cs index c92423545d..3adc1bd425 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneEditorSummaryTimeline.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneEditorSummaryTimeline.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -15,8 +13,6 @@ namespace osu.Game.Tests.Visual.Editing [TestFixture] public class TestSceneEditorSummaryTimeline : EditorClockTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(SummaryTimeline) }; - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Tests/Visual/Editing/TestSceneHitObjectComposer.cs b/osu.Game.Tests/Visual/Editing/TestSceneHitObjectComposer.cs index ddaca26220..7ca24346aa 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneHitObjectComposer.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneHitObjectComposer.cs @@ -1,9 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; -using JetBrains.Annotations; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Timing; @@ -13,11 +11,8 @@ using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Types; using osu.Game.Rulesets.Osu; using osu.Game.Rulesets.Osu.Edit; -using osu.Game.Rulesets.Osu.Edit.Blueprints.HitCircles; -using osu.Game.Rulesets.Osu.Edit.Blueprints.HitCircles.Components; using osu.Game.Rulesets.Osu.Objects; using osu.Game.Screens.Edit; -using osu.Game.Screens.Edit.Compose.Components; using osuTK; namespace osu.Game.Tests.Visual.Editing @@ -25,19 +20,6 @@ namespace osu.Game.Tests.Visual.Editing [TestFixture] public class TestSceneHitObjectComposer : EditorClockTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SelectionHandler), - typeof(DragBox), - typeof(HitObjectComposer), - typeof(OsuHitObjectComposer), - typeof(BlueprintContainer), - typeof(NotNullAttribute), - typeof(HitCirclePiece), - typeof(HitCircleSelectionBlueprint), - typeof(HitCirclePlacementBlueprint), - }; - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game.Tests/Visual/Editing/TestSceneTimelineBlueprintContainer.cs b/osu.Game.Tests/Visual/Editing/TestSceneTimelineBlueprintContainer.cs index 5ab2f49b4a..e931be044c 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneTimelineBlueprintContainer.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneTimelineBlueprintContainer.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Screens.Edit.Compose.Components.Timeline; @@ -12,11 +10,6 @@ namespace osu.Game.Tests.Visual.Editing [TestFixture] public class TestSceneTimelineBlueprintContainer : TimelineTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TimelineHitObjectBlueprint), - }; - public override Drawable CreateTestComponent() => new TimelineBlueprintContainer(); protected override void LoadComplete() diff --git a/osu.Game.Tests/Visual/Editing/TestSceneTimingScreen.cs b/osu.Game.Tests/Visual/Editing/TestSceneTimingScreen.cs index a6dbe9571e..2a7f9389d1 100644 --- a/osu.Game.Tests/Visual/Editing/TestSceneTimingScreen.cs +++ b/osu.Game.Tests/Visual/Editing/TestSceneTimingScreen.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Game.Rulesets.Osu.Beatmaps; @@ -14,18 +12,6 @@ namespace osu.Game.Tests.Visual.Editing [TestFixture] public class TestSceneTimingScreen : EditorClockTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ControlPointTable), - typeof(ControlPointSettings), - typeof(Section<>), - typeof(TimingSection), - typeof(EffectSection), - typeof(SampleSection), - typeof(DifficultySection), - typeof(RowAttribute) - }; - [Cached(typeof(EditorBeatmap))] private readonly EditorBeatmap editorBeatmap; diff --git a/osu.Game.Tests/Visual/Editing/TimelineTestScene.cs b/osu.Game.Tests/Visual/Editing/TimelineTestScene.cs index 56b2860e96..01ef7e6170 100644 --- a/osu.Game.Tests/Visual/Editing/TimelineTestScene.cs +++ b/osu.Game.Tests/Visual/Editing/TimelineTestScene.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Audio; using osu.Framework.Bindables; @@ -22,14 +20,6 @@ namespace osu.Game.Tests.Visual.Editing { public abstract class TimelineTestScene : EditorClockTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TimelineArea), - typeof(Timeline), - typeof(TimelineButton), - typeof(CentreMarker) - }; - protected TimelineArea TimelineArea { get; private set; } [BackgroundDependencyLoader] diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneBreakTracker.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneBreakTracker.cs index a6f996c30d..be17721b88 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneBreakTracker.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneBreakTracker.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -15,11 +14,6 @@ namespace osu.Game.Tests.Visual.Gameplay [TestFixture] public class TestSceneBreakTracker : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BreakOverlay), - }; - private readonly BreakOverlay breakOverlay; private readonly TestBreakTracker breakTracker; diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneFailAnimation.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneFailAnimation.cs index de257c9e53..85aaf20a19 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneFailAnimation.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneFailAnimation.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using osu.Framework.Graphics.Containers; using osu.Game.Rulesets; using osu.Game.Rulesets.Mods; @@ -18,13 +17,6 @@ namespace osu.Game.Tests.Visual.Gameplay return new FailPlayer(); } - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TestSceneAllRulesetPlayers), - typeof(TestPlayer), - typeof(Player), - }; - protected override void AddCheckSteps() { AddUntilStep("wait for fail", () => Player.HasFailed); diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneGameplayMenuOverlay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneGameplayMenuOverlay.cs index ea3e0c2293..e8b8c7c8e9 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneGameplayMenuOverlay.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneGameplayMenuOverlay.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -20,8 +19,6 @@ namespace osu.Game.Tests.Visual.Gameplay [Description("player pause/fail screens")] public class TestSceneGameplayMenuOverlay : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(FailOverlay), typeof(PauseOverlay) }; - private FailOverlay failOverlay; private PauseOverlay pauseOverlay; diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneHitErrorMeter.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneHitErrorMeter.cs index 1527cba6fc..253b8d9c55 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneHitErrorMeter.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneHitErrorMeter.cs @@ -2,8 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using NUnit.Framework; -using System; -using System.Collections.Generic; using osu.Game.Rulesets.Judgements; using osu.Framework.Utils; using osu.Framework.Graphics; @@ -22,13 +20,6 @@ namespace osu.Game.Tests.Visual.Gameplay { public class TestSceneHitErrorMeter : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(HitErrorMeter), - typeof(BarHitErrorMeter), - typeof(ColourHitErrorMeter) - }; - private BarHitErrorMeter barMeter; private BarHitErrorMeter barMeter2; private ColourHitErrorMeter colourMeter; diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneKeyCounter.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneKeyCounter.cs index 593dcd245c..d7a3f80256 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneKeyCounter.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneKeyCounter.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; @@ -15,13 +13,6 @@ namespace osu.Game.Tests.Visual.Gameplay [TestFixture] public class TestSceneKeyCounter : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(KeyCounterKeyboard), - typeof(KeyCounterMouse), - typeof(KeyCounterDisplay) - }; - public TestSceneKeyCounter() { KeyCounterKeyboard testCounter; diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneMedalOverlay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneMedalOverlay.cs index 41722b430e..0ada3cf05f 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneMedalOverlay.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneMedalOverlay.cs @@ -1,11 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Game.Overlays; -using osu.Game.Overlays.MedalSplash; using osu.Game.Users; namespace osu.Game.Tests.Visual.Gameplay @@ -13,12 +10,6 @@ namespace osu.Game.Tests.Visual.Gameplay [TestFixture] public class TestSceneMedalOverlay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(MedalOverlay), - typeof(DrawableMedal), - }; - public TestSceneMedalOverlay() { AddStep(@"display", () => diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneNightcoreBeatContainer.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneNightcoreBeatContainer.cs index 3473b03eaf..951ee1489d 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneNightcoreBeatContainer.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneNightcoreBeatContainer.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using osu.Framework.Extensions.IEnumerableExtensions; using osu.Game.Beatmaps.Timing; @@ -15,11 +13,6 @@ namespace osu.Game.Tests.Visual.Gameplay { public class TestSceneNightcoreBeatContainer : TestSceneBeatSyncedContainer { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ModNightcore<>) - }; - protected override void LoadComplete() { base.LoadComplete(); diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs index c9561a70fa..a35437a286 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs @@ -7,8 +7,6 @@ using osu.Game.Online; using osu.Game.Online.API.Requests.Responses; using osu.Game.Scoring; using osu.Game.Users; -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Game.Rulesets; using osu.Game.Screens.Ranking; @@ -21,11 +19,6 @@ namespace osu.Game.Tests.Visual.Gameplay [Resolved] private RulesetStore rulesets { get; set; } - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ReplayDownloadButton) - }; - private TestReplayDownloadButton downloadButton; public TestSceneReplayDownloadButton() diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs index d03716db2e..0d15e495e3 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneScrollingHitObjects.cs @@ -17,7 +17,6 @@ using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Timing; -using osu.Game.Rulesets.UI; using osu.Game.Rulesets.UI.Scrolling; using osuTK; using osuTK.Graphics; @@ -27,8 +26,6 @@ namespace osu.Game.Tests.Visual.Gameplay [TestFixture] public class TestSceneScrollingHitObjects : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(Playfield) }; - [Cached(typeof(IReadOnlyList))] private IReadOnlyList mods { get; set; } = Array.Empty(); diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneSongProgress.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneSongProgress.cs index b9b13d7bd8..733e8f4290 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneSongProgress.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneSongProgress.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; @@ -20,11 +19,6 @@ namespace osu.Game.Tests.Visual.Gameplay [TestFixture] public class TestSceneSongProgress : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SongProgressBar), - }; - private SongProgress progress; private TestSongProgressGraph graph; private readonly Container progressContainer; diff --git a/osu.Game.Tests/Visual/Menus/IntroTestScene.cs b/osu.Game.Tests/Visual/Menus/IntroTestScene.cs index 33811f9529..2d2f1a1618 100644 --- a/osu.Game.Tests/Visual/Menus/IntroTestScene.cs +++ b/osu.Game.Tests/Visual/Menus/IntroTestScene.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -18,13 +16,6 @@ namespace osu.Game.Tests.Visual.Menus [TestFixture] public abstract class IntroTestScene : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(StartupScreen), - typeof(IntroScreen), - typeof(IntroTestScene), - }; - [Cached] private OsuLogo logo; diff --git a/osu.Game.Tests/Visual/Menus/TestSceneToolbar.cs b/osu.Game.Tests/Visual/Menus/TestSceneToolbar.cs index 8fbbc8ebd8..b4985cad9f 100644 --- a/osu.Game.Tests/Visual/Menus/TestSceneToolbar.cs +++ b/osu.Game.Tests/Visual/Menus/TestSceneToolbar.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -17,14 +15,6 @@ namespace osu.Game.Tests.Visual.Menus [TestFixture] public class TestSceneToolbar : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ToolbarButton), - typeof(ToolbarRulesetSelector), - typeof(ToolbarRulesetTabButton), - typeof(ToolbarNotificationButton), - }; - private Toolbar toolbar; [Resolved] diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneDrawableRoomPlaylist.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneDrawableRoomPlaylist.cs index 713ba13439..5ef4dd6773 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneDrawableRoomPlaylist.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneDrawableRoomPlaylist.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -22,12 +21,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneDrawableRoomPlaylist : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableRoomPlaylist), - typeof(DrawableRoomPlaylistItem) - }; - private TestPlaylist playlist; [Test] diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomInfo.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomInfo.cs index 1e1bc9725c..8b74eb5f27 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomInfo.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomInfo.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Online.Multiplayer; @@ -14,11 +13,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneLoungeRoomInfo : MultiplayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(RoomInfo) - }; - [SetUp] public void Setup() => Schedule(() => { diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomsContainer.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomsContainer.cs index b5d946d049..77b41c89b0 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomsContainer.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneLoungeRoomsContainer.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -23,12 +22,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneLoungeRoomsContainer : MultiplayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(RoomsContainer), - typeof(DrawableRoom) - }; - [Cached(Type = typeof(IRoomManager))] private TestRoomManager roomManager = new TestRoomManager(); diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchHeader.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchHeader.cs index cf40995fc0..38eb3181bf 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchHeader.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchHeader.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Game.Beatmaps; using osu.Game.Online.Multiplayer; using osu.Game.Rulesets.Osu; @@ -14,11 +12,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneMatchHeader : MultiplayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Header) - }; - public TestSceneMatchHeader() { Room.Playlist.Add(new PlaylistItem diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchLeaderboardChatDisplay.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchLeaderboardChatDisplay.cs index e46386b263..72bbc11cd0 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchLeaderboardChatDisplay.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchLeaderboardChatDisplay.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Screens.Multi.Match.Components; @@ -12,11 +10,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneMatchLeaderboardChatDisplay : MultiplayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(LeaderboardChatDisplay) - }; - protected override bool UseOnlineAPI => true; public TestSceneMatchLeaderboardChatDisplay() diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs index 047e9d860d..d2e8c22c39 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -18,11 +17,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneMatchSettingsOverlay : MultiplayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(MatchSettingsOverlay) - }; - [Cached(Type = typeof(IRoomManager))] private TestRoomManager roomManager = new TestRoomManager(); diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSongSelect.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSongSelect.cs index 2c6f34d8a6..5cff2d7d05 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSongSelect.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSongSelect.cs @@ -23,12 +23,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneMatchSongSelect : MultiplayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(MatchSongSelect), - typeof(MatchBeatmapDetailArea), - }; - [Resolved] private BeatmapManager beatmapManager { get; set; } diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSubScreen.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSubScreen.cs index 7f79e306ad..d678d5a814 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSubScreen.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSubScreen.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -20,7 +19,6 @@ using osu.Game.Screens.Multi.Match.Components; using osu.Game.Tests.Beatmaps; using osu.Game.Users; using osuTK.Input; -using Header = osu.Game.Screens.Multi.Match.Components.Header; namespace osu.Game.Tests.Visual.Multiplayer { @@ -28,14 +26,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Screens.Multi.Multiplayer), - typeof(MatchSubScreen), - typeof(Header), - typeof(Footer) - }; - [Cached(typeof(IRoomManager))] private readonly TestRoomManager roomManager = new TestRoomManager(); diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiScreen.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiScreen.cs index dfe61a4dda..61859c9da3 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiScreen.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiScreen.cs @@ -1,11 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; -using osu.Game.Screens.Multi.Lounge; -using osu.Game.Screens.Multi.Lounge.Components; namespace osu.Game.Tests.Visual.Multiplayer { @@ -14,13 +10,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Screens.Multi.Multiplayer), - typeof(LoungeSubScreen), - typeof(FilterControl) - }; - public TestSceneMultiScreen() { Screens.Multi.Multiplayer multi = new Screens.Multi.Multiplayer(); diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneOverlinedParticipants.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneOverlinedParticipants.cs index 1fc258a225..7ea3bba23f 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneOverlinedParticipants.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneOverlinedParticipants.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Screens.Multi.Components; @@ -12,13 +10,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneOverlinedParticipants : MultiplayerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OverlinedParticipants), - typeof(OverlinedDisplay), - typeof(ParticipantsList) - }; - protected override bool UseOnlineAPI => true; public TestSceneOverlinedParticipants() diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneRoomStatus.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneRoomStatus.cs index 74d1645f6d..1925e0ef4f 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneRoomStatus.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneRoomStatus.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Online.Multiplayer; @@ -13,13 +11,6 @@ namespace osu.Game.Tests.Visual.Multiplayer { public class TestSceneRoomStatus : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(RoomStatusEnded), - typeof(RoomStatusOpen), - typeof(RoomStatusPlaying) - }; - public TestSceneRoomStatus() { Child = new FillFlowContainer diff --git a/osu.Game.Tests/Visual/Online/TestSceneAccountCreationOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneAccountCreationOverlay.cs index a53a818065..6c8ec917ba 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneAccountCreationOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneAccountCreationOverlay.cs @@ -1,30 +1,17 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Overlays; -using osu.Game.Overlays.AccountCreation; using osu.Game.Users; namespace osu.Game.Tests.Visual.Online { public class TestSceneAccountCreationOverlay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ErrorTextFlowContainer), - typeof(AccountCreationBackground), - typeof(ScreenEntry), - typeof(ScreenWarning), - typeof(ScreenWelcome), - typeof(AccountCreationScreen), - }; - private readonly Container userPanelArea; private Bindable localUser; diff --git a/osu.Game.Tests/Visual/Online/TestSceneBeatmapListingOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneBeatmapListingOverlay.cs index 64d1a9ddcd..6cb1687d1f 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneBeatmapListingOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneBeatmapListingOverlay.cs @@ -1,22 +1,13 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Game.Overlays; using NUnit.Framework; -using osu.Game.Overlays.BeatmapListing; namespace osu.Game.Tests.Visual.Online { public class TestSceneBeatmapListingOverlay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BeatmapListingOverlay), - typeof(BeatmapListingFilterControl) - }; - protected override bool UseOnlineAPI => true; private readonly BeatmapListingOverlay overlay; diff --git a/osu.Game.Tests/Visual/Online/TestSceneBeatmapRulesetSelector.cs b/osu.Game.Tests/Visual/Online/TestSceneBeatmapRulesetSelector.cs index 8b077c8de3..eb34187cd6 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneBeatmapRulesetSelector.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneBeatmapRulesetSelector.cs @@ -8,7 +8,6 @@ using osu.Game.Beatmaps; using osu.Game.Overlays; using osu.Game.Overlays.BeatmapSet; using osu.Game.Rulesets; -using System; using System.Collections.Generic; using System.Linq; @@ -16,12 +15,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneBeatmapRulesetSelector : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BeatmapRulesetSelector), - typeof(BeatmapRulesetTabItem), - }; - [Cached] private OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlay.cs index 5ca2c9868f..c5d1fd6887 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlay.cs @@ -6,8 +6,6 @@ using osu.Framework.Allocation; using osu.Game.Beatmaps; using osu.Game.Overlays; using osu.Game.Overlays.BeatmapSet; -using osu.Game.Overlays.BeatmapSet.Buttons; -using osu.Game.Overlays.BeatmapSet.Scores; using osu.Game.Rulesets; using osu.Game.Users; using System; @@ -21,30 +19,6 @@ namespace osu.Game.Tests.Visual.Online { private readonly TestBeatmapSetOverlay overlay; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Header), - typeof(ScoreTable), - typeof(ScoreTableRowBackground), - typeof(DrawableTopScore), - typeof(ScoresContainer), - typeof(AuthorInfo), - typeof(BasicStats), - typeof(BeatmapPicker), - typeof(Details), - typeof(HeaderDownloadButton), - typeof(FavouriteButton), - typeof(Header), - typeof(HeaderButton), - typeof(Info), - typeof(PreviewButton), - typeof(SuccessRate), - typeof(BeatmapAvailability), - typeof(BeatmapRulesetSelector), - typeof(BeatmapRulesetTabItem), - typeof(NotSupporterPlaceholder) - }; - protected override bool UseOnlineAPI => true; public TestSceneBeatmapSetOverlay() diff --git a/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlayDetails.cs b/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlayDetails.cs index dea1e710b5..f7099b0615 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlayDetails.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlayDetails.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -17,11 +16,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneBeatmapSetOverlayDetails : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Details) - }; - private RatingsExposingDetails details; [Cached] diff --git a/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlaySuccessRate.cs b/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlaySuccessRate.cs index 03003daf81..4cb22bf1fe 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlaySuccessRate.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneBeatmapSetOverlaySuccessRate.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -21,11 +19,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneBeatmapSetOverlaySuccessRate : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Details) - }; - private GraphExposingSuccessRate successRate; [Cached] diff --git a/osu.Game.Tests/Visual/Online/TestSceneChangelogOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneChangelogOverlay.cs index 22d20f7098..02f6de2269 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneChangelogOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneChangelogOverlay.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using NUnit.Framework; using osu.Game.Online.API.Requests.Responses; @@ -15,17 +14,6 @@ namespace osu.Game.Tests.Visual.Online { private TestChangelogOverlay changelog; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ChangelogUpdateStreamControl), - typeof(ChangelogUpdateStreamItem), - typeof(ChangelogHeader), - typeof(ChangelogContent), - typeof(ChangelogListing), - typeof(ChangelogSingleBuild), - typeof(ChangelogBuild), - }; - protected override bool UseOnlineAPI => true; [SetUp] diff --git a/osu.Game.Tests/Visual/Online/TestSceneChannelTabControl.cs b/osu.Game.Tests/Visual/Online/TestSceneChannelTabControl.cs index 1fb3f4ba45..73e1fc9b35 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneChannelTabControl.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneChannelTabControl.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using osu.Framework.Extensions.Color4Extensions; @@ -21,11 +20,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneChannelTabControl : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ChannelTabControl), - }; - private readonly TestTabControl channelTabControl; public TestSceneChannelTabControl() diff --git a/osu.Game.Tests/Visual/Online/TestSceneChatLineTruncation.cs b/osu.Game.Tests/Visual/Online/TestSceneChatLineTruncation.cs index 4773e84a5e..8408b7dd60 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneChatLineTruncation.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneChatLineTruncation.cs @@ -2,12 +2,10 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; -using osu.Game.Graphics.Containers; using osu.Game.Online.Chat; using osu.Game.Overlays.Chat; using osu.Game.Users; @@ -19,14 +17,6 @@ namespace osu.Game.Tests.Visual.Online { private readonly TestChatLineContainer textContainer; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ChatLine), - typeof(Message), - typeof(LinkFlowContainer), - typeof(MessageFormatter) - }; - public TestSceneChatLineTruncation() { Add(textContainer = new TestChatLineContainer diff --git a/osu.Game.Tests/Visual/Online/TestSceneChatLink.cs b/osu.Game.Tests/Visual/Online/TestSceneChatLink.cs index 7a257a1603..9e69530a77 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneChatLink.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneChatLink.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -11,7 +10,6 @@ using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Graphics; -using osu.Game.Graphics.Containers; using osu.Game.Online.Chat; using osu.Game.Overlays; using osu.Game.Overlays.Chat; @@ -27,16 +25,6 @@ namespace osu.Game.Tests.Visual.Online private readonly DialogOverlay dialogOverlay; private Color4 linkColour; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ChatLine), - typeof(Message), - typeof(LinkFlowContainer), - typeof(DummyEchoMessage), - typeof(LocalEchoMessage), - typeof(MessageFormatter) - }; - public TestSceneChatLink() { Add(dialogOverlay = new DialogOverlay { Depth = float.MinValue }); diff --git a/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs index 14924dda21..05b33e4386 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -14,7 +13,6 @@ using osu.Framework.Testing; using osu.Game.Graphics.UserInterface; using osu.Game.Online.Chat; using osu.Game.Overlays; -using osu.Game.Overlays.Chat; using osu.Game.Overlays.Chat.Selection; using osu.Game.Overlays.Chat.Tabs; using osu.Game.Users; @@ -24,17 +22,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneChatOverlay : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ChatLine), - typeof(DrawableChannel), - typeof(ChannelSelectorTabItem), - typeof(ChannelTabControl), - typeof(ChannelTabItem), - typeof(PrivateChannelTabItem), - typeof(TabCloseButton) - }; - private TestChatOverlay chatOverlay; private ChannelManager channelManager; diff --git a/osu.Game.Tests/Visual/Online/TestSceneCommentsContainer.cs b/osu.Game.Tests/Visual/Online/TestSceneCommentsContainer.cs index ece280659c..42e6b9087c 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneCommentsContainer.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneCommentsContainer.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Game.Online.API.Requests; using osu.Framework.Graphics.Containers; @@ -18,19 +16,6 @@ namespace osu.Game.Tests.Visual.Online [TestFixture] public class TestSceneCommentsContainer : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CommentsContainer), - typeof(CommentsHeader), - typeof(DrawableComment), - typeof(HeaderButton), - typeof(OverlaySortTabControl<>), - typeof(ShowChildrenButton), - typeof(DeletedCommentsCounter), - typeof(VotePill), - typeof(CommentsPage), - }; - protected override bool UseOnlineAPI => true; [Cached] diff --git a/osu.Game.Tests/Visual/Online/TestSceneCommentsHeader.cs b/osu.Game.Tests/Visual/Online/TestSceneCommentsHeader.cs index c688d600a3..03eac5d85b 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneCommentsHeader.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneCommentsHeader.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -14,13 +12,6 @@ namespace osu.Game.Tests.Visual.Online [TestFixture] public class TestSceneCommentsHeader : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CommentsHeader), - typeof(HeaderButton), - typeof(OverlaySortTabControl<>), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/Online/TestSceneCommentsPage.cs b/osu.Game.Tests/Visual/Online/TestSceneCommentsPage.cs index a28a0107a1..7fdf0708e0 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneCommentsPage.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneCommentsPage.cs @@ -20,12 +20,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneCommentsPage : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableComment), - typeof(CommentsPage), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Purple); diff --git a/osu.Game.Tests/Visual/Online/TestSceneDashboardOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneDashboardOverlay.cs index df95f24686..960d3fa248 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneDashboardOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneDashboardOverlay.cs @@ -1,24 +1,13 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Game.Overlays; -using osu.Game.Overlays.Dashboard; -using osu.Game.Overlays.Dashboard.Friends; namespace osu.Game.Tests.Visual.Online { public class TestSceneDashboardOverlay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DashboardOverlay), - typeof(DashboardOverlayHeader), - typeof(FriendDisplay) - }; - protected override bool UseOnlineAPI => true; private readonly DashboardOverlay overlay; diff --git a/osu.Game.Tests/Visual/Online/TestSceneDirectDownloadButton.cs b/osu.Game.Tests/Visual/Online/TestSceneDirectDownloadButton.cs index 9fe873cb6a..684ce10820 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneDirectDownloadButton.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneDirectDownloadButton.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -18,11 +16,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneDirectDownloadButton : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BeatmapPanelDownloadButton) - }; - private TestDownloadButton downloadButton; [Resolved] diff --git a/osu.Game.Tests/Visual/Online/TestSceneDirectPanel.cs b/osu.Game.Tests/Visual/Online/TestSceneDirectPanel.cs index d6ed654bac..74ece5da05 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneDirectPanel.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneDirectPanel.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -18,13 +17,6 @@ namespace osu.Game.Tests.Visual.Online [Cached(typeof(IPreviewTrackOwner))] public class TestSceneDirectPanel : OsuTestScene, IPreviewTrackOwner { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(GridBeatmapPanel), - typeof(ListBeatmapPanel), - typeof(IconPill) - }; - private BeatmapSetInfo getUndownloadableBeatmapSet() => new BeatmapSetInfo { OnlineBeatmapSetID = 123, diff --git a/osu.Game.Tests/Visual/Online/TestSceneExternalLinkButton.cs b/osu.Game.Tests/Visual/Online/TestSceneExternalLinkButton.cs index 637b577021..31bb276cd4 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneExternalLinkButton.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneExternalLinkButton.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Game.Graphics.UserInterface; using osuTK; @@ -10,8 +8,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneExternalLinkButton : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(ExternalLinkButton) }; - public TestSceneExternalLinkButton() { Child = new ExternalLinkButton("https://osu.ppy.sh/home") diff --git a/osu.Game.Tests/Visual/Online/TestSceneFriendDisplay.cs b/osu.Game.Tests/Visual/Online/TestSceneFriendDisplay.cs index 0b5ff1c960..72033fc121 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneFriendDisplay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneFriendDisplay.cs @@ -16,13 +16,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneFriendDisplay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(FriendDisplay), - typeof(FriendOnlineStreamControl), - typeof(UserListToolbar) - }; - protected override bool UseOnlineAPI => true; [Cached] diff --git a/osu.Game.Tests/Visual/Online/TestSceneHistoricalSection.cs b/osu.Game.Tests/Visual/Online/TestSceneHistoricalSection.cs index d098ea8b16..3ecca85ef1 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneHistoricalSection.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneHistoricalSection.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -11,7 +9,6 @@ using osu.Game.Graphics; using osu.Game.Graphics.Containers; using osu.Game.Overlays; using osu.Game.Overlays.Profile.Sections; -using osu.Game.Overlays.Profile.Sections.Historical; using osu.Game.Users; namespace osu.Game.Tests.Visual.Online @@ -21,13 +18,6 @@ namespace osu.Game.Tests.Visual.Online { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(HistoricalSection), - typeof(PaginatedMostPlayedBeatmapContainer), - typeof(DrawableMostPlayedBeatmap), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Pink); diff --git a/osu.Game.Tests/Visual/Online/TestSceneKudosuHistory.cs b/osu.Game.Tests/Visual/Online/TestSceneKudosuHistory.cs index 325d657f0e..2231139856 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneKudosuHistory.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneKudosuHistory.cs @@ -16,11 +16,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneKudosuHistory : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableKudosuHistoryItem), - }; - private readonly Box background; public TestSceneKudosuHistory() diff --git a/osu.Game.Tests/Visual/Online/TestSceneLeaderboardModSelector.cs b/osu.Game.Tests/Visual/Online/TestSceneLeaderboardModSelector.cs index 7327e80d06..54e655d4ec 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneLeaderboardModSelector.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneLeaderboardModSelector.cs @@ -2,8 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using osu.Game.Overlays.BeatmapSet; -using System; -using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using osu.Framework.Graphics; @@ -23,11 +21,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneLeaderboardModSelector : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(LeaderboardModSelector), - }; - public TestSceneLeaderboardModSelector() { LeaderboardModSelector modSelector; diff --git a/osu.Game.Tests/Visual/Online/TestSceneLeaderboardScopeSelector.cs b/osu.Game.Tests/Visual/Online/TestSceneLeaderboardScopeSelector.cs index f9a7bc99c3..afa559280c 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneLeaderboardScopeSelector.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneLeaderboardScopeSelector.cs @@ -2,8 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using osu.Game.Overlays.BeatmapSet; -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Bindables; using osu.Game.Screens.Select.Leaderboards; @@ -17,11 +15,6 @@ namespace osu.Game.Tests.Visual.Online [Cached] private OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); - public override IReadOnlyList RequiredTypes => new[] - { - typeof(LeaderboardScopeSelector), - }; - public TestSceneLeaderboardScopeSelector() { Bindable scope = new Bindable(); diff --git a/osu.Game.Tests/Visual/Online/TestSceneProfileCounterPill.cs b/osu.Game.Tests/Visual/Online/TestSceneProfileCounterPill.cs index 5e2b125521..eaa989f0de 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneProfileCounterPill.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneProfileCounterPill.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -14,11 +12,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneProfileCounterPill : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CounterPill) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Red); diff --git a/osu.Game.Tests/Visual/Online/TestSceneProfileRulesetSelector.cs b/osu.Game.Tests/Visual/Online/TestSceneProfileRulesetSelector.cs index 826624f686..6a847e4269 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneProfileRulesetSelector.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneProfileRulesetSelector.cs @@ -3,8 +3,6 @@ using osu.Framework.Graphics; using osu.Game.Overlays.Profile.Header.Components; -using System; -using System.Collections.Generic; using osu.Game.Rulesets.Catch; using osu.Game.Rulesets.Mania; using osu.Game.Rulesets.Osu; @@ -18,12 +16,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneProfileRulesetSelector : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ProfileRulesetSelector), - typeof(ProfileRulesetTabItem), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Green); diff --git a/osu.Game.Tests/Visual/Online/TestSceneRankGraph.cs b/osu.Game.Tests/Visual/Online/TestSceneRankGraph.cs index 8f7e7498a9..3b31192259 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneRankGraph.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneRankGraph.cs @@ -1,15 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; using osu.Game.Graphics; -using osu.Game.Graphics.UserInterface; using osu.Game.Overlays; using osu.Game.Overlays.Profile.Header.Components; using osu.Game.Users; @@ -20,12 +17,6 @@ namespace osu.Game.Tests.Visual.Online [TestFixture] public class TestSceneRankGraph : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(RankGraph), - typeof(LineGraph) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Pink); diff --git a/osu.Game.Tests/Visual/Online/TestSceneRankingsCountryFilter.cs b/osu.Game.Tests/Visual/Online/TestSceneRankingsCountryFilter.cs index 79862deb16..458ba80712 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneRankingsCountryFilter.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneRankingsCountryFilter.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Bindables; using osu.Framework.Graphics.Containers; using osu.Game.Overlays.Rankings; @@ -18,12 +16,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneRankingsCountryFilter : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CountryFilter), - typeof(CountryPill) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Green); diff --git a/osu.Game.Tests/Visual/Online/TestSceneRankingsHeader.cs b/osu.Game.Tests/Visual/Online/TestSceneRankingsHeader.cs index 1e711b3cd7..677952681c 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneRankingsHeader.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneRankingsHeader.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Game.Overlays; @@ -14,13 +12,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneRankingsHeader : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(RankingsOverlayHeader), - typeof(CountryFilter), - typeof(CountryPill) - }; - [Cached] private readonly OverlayColourProvider overlayColour = new OverlayColourProvider(OverlayColourScheme.Green); diff --git a/osu.Game.Tests/Visual/Online/TestSceneRankingsOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneRankingsOverlay.cs index 83e5cd0fe7..626f545b91 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneRankingsOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneRankingsOverlay.cs @@ -1,9 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; -using osu.Game.Overlays.Rankings.Tables; using osu.Framework.Allocation; using osu.Game.Overlays; using NUnit.Framework; @@ -17,18 +14,6 @@ namespace osu.Game.Tests.Visual.Online { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(PerformanceTable), - typeof(ScoresTable), - typeof(CountriesTable), - typeof(TableRowBackground), - typeof(UserBasedTable), - typeof(RankingsTable<>), - typeof(RankingsOverlay), - typeof(RankingsOverlayHeader) - }; - [Cached(typeof(RankingsOverlay))] private readonly RankingsOverlay rankingsOverlay; diff --git a/osu.Game.Tests/Visual/Online/TestSceneRankingsSpotlightSelector.cs b/osu.Game.Tests/Visual/Online/TestSceneRankingsSpotlightSelector.cs index f27ab1e775..997db827f3 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneRankingsSpotlightSelector.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneRankingsSpotlightSelector.cs @@ -15,11 +15,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneRankingsSpotlightSelector : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SpotlightSelector), - }; - protected override bool UseOnlineAPI => true; [Cached] diff --git a/osu.Game.Tests/Visual/Online/TestSceneRankingsTables.cs b/osu.Game.Tests/Visual/Online/TestSceneRankingsTables.cs index 8542a5e46e..a3b102dc76 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneRankingsTables.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneRankingsTables.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics.Containers; using osu.Game.Overlays.Rankings.Tables; using osu.Framework.Graphics; @@ -24,16 +22,6 @@ namespace osu.Game.Tests.Visual.Online { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(PerformanceTable), - typeof(ScoresTable), - typeof(CountriesTable), - typeof(TableRowBackground), - typeof(UserBasedTable), - typeof(RankingsTable<>) - }; - [Resolved] private IAPIProvider api { get; set; } diff --git a/osu.Game.Tests/Visual/Online/TestSceneScoresContainer.cs b/osu.Game.Tests/Visual/Online/TestSceneScoresContainer.cs index 51f4089058..0cb8cc22ec 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneScoresContainer.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneScoresContainer.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -20,15 +19,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneScoresContainer : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableTopScore), - typeof(TopScoreUserSection), - typeof(TopScoreStatisticsSection), - typeof(ScoreTable), - typeof(ScoreTableRowBackground), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/Online/TestSceneShowMoreButton.cs b/osu.Game.Tests/Visual/Online/TestSceneShowMoreButton.cs index b9fbbfef6b..273f593c32 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneShowMoreButton.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneShowMoreButton.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Graphics.UserInterface; using osu.Framework.Allocation; @@ -12,11 +10,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneShowMoreButton : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ShowMoreButton), - }; - public TestSceneShowMoreButton() { TestButton button = null; diff --git a/osu.Game.Tests/Visual/Online/TestSceneSocialOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneSocialOverlay.cs index 24341cbd05..77e77d90c1 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneSocialOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneSocialOverlay.cs @@ -1,11 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Game.Overlays; -using osu.Game.Overlays.Social; using osu.Game.Users; namespace osu.Game.Tests.Visual.Online @@ -15,14 +12,6 @@ namespace osu.Game.Tests.Visual.Online { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(UserPanel), - typeof(FilterControl), - typeof(UserGridPanel), - typeof(UserListPanel) - }; - public TestSceneSocialOverlay() { SocialOverlay s = new SocialOverlay diff --git a/osu.Game.Tests/Visual/Online/TestSceneSpotlightsLayout.cs b/osu.Game.Tests/Visual/Online/TestSceneSpotlightsLayout.cs index d025a8d7c2..266dcb013b 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneSpotlightsLayout.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneSpotlightsLayout.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics; @@ -19,12 +17,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneSpotlightsLayout : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SpotlightsLayout), - typeof(SpotlightSelector), - }; - protected override bool UseOnlineAPI => true; [Cached] diff --git a/osu.Game.Tests/Visual/Online/TestSceneTotalCommentsCounter.cs b/osu.Game.Tests/Visual/Online/TestSceneTotalCommentsCounter.cs index 8ecbf0891b..f168ae5035 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneTotalCommentsCounter.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneTotalCommentsCounter.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Bindables; using osu.Game.Overlays.Comments; @@ -14,11 +12,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneTotalCommentsCounter : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TotalCommentsCounter), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/Online/TestSceneUserPanel.cs b/osu.Game.Tests/Visual/Online/TestSceneUserPanel.cs index a38f045e7f..f763e50067 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneUserPanel.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneUserPanel.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -17,13 +16,6 @@ namespace osu.Game.Tests.Visual.Online [TestFixture] public class TestSceneUserPanel : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(UserPanel), - typeof(UserListPanel), - typeof(UserGridPanel), - }; - private readonly Bindable activity = new Bindable(); private readonly Bindable status = new Bindable(); diff --git a/osu.Game.Tests/Visual/Online/TestSceneUserProfileHeader.cs b/osu.Game.Tests/Visual/Online/TestSceneUserProfileHeader.cs index 523de4e38f..04b741b2bb 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneUserProfileHeader.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneUserProfileHeader.cs @@ -2,15 +2,11 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using osu.Framework.Allocation; -using osu.Game.Graphics.UserInterface; using osu.Game.Online.API; using osu.Game.Online.API.Requests; using osu.Game.Overlays; using osu.Game.Overlays.Profile; -using osu.Game.Overlays.Profile.Header; -using osu.Game.Overlays.Profile.Header.Components; using osu.Game.Users; namespace osu.Game.Tests.Visual.Online @@ -19,18 +15,6 @@ namespace osu.Game.Tests.Visual.Online { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ProfileHeader), - typeof(RankGraph), - typeof(LineGraph), - typeof(TabControlOverlayHeader<>.OverlayHeaderTabControl), - typeof(CentreHeaderContainer), - typeof(BottomHeaderContainer), - typeof(DetailHeaderContainer), - typeof(ProfileHeaderButton) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Green); diff --git a/osu.Game.Tests/Visual/Online/TestSceneUserProfileOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneUserProfileOverlay.cs index 15f9c9a013..7ade24f4de 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneUserProfileOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneUserProfileOverlay.cs @@ -2,16 +2,12 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; -using osu.Game.Graphics.Containers; -using osu.Game.Graphics.UserInterface; using osu.Game.Online.API; using osu.Game.Overlays; using osu.Game.Overlays.Profile; -using osu.Game.Overlays.Profile.Header.Components; using osu.Game.Users; namespace osu.Game.Tests.Visual.Online @@ -26,15 +22,6 @@ namespace osu.Game.Tests.Visual.Online [Resolved] private IAPIProvider api { get; set; } - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ProfileHeader), - typeof(RankGraph), - typeof(LineGraph), - typeof(SectionsContainer<>), - typeof(SupporterIcon) - }; - public static readonly User TEST_USER = new User { Username = @"Somebody", diff --git a/osu.Game.Tests/Visual/Online/TestSceneUserProfilePreviousUsernames.cs b/osu.Game.Tests/Visual/Online/TestSceneUserProfilePreviousUsernames.cs index 048a1950fd..1e9d62f379 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneUserProfilePreviousUsernames.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneUserProfilePreviousUsernames.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -17,11 +16,6 @@ namespace osu.Game.Tests.Visual.Online [TestFixture] public class TestSceneUserProfilePreviousUsernames : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(PreviousUsernames) - }; - [Resolved] private IAPIProvider api { get; set; } diff --git a/osu.Game.Tests/Visual/Online/TestSceneUserProfileRecentSection.cs b/osu.Game.Tests/Visual/Online/TestSceneUserProfileRecentSection.cs index 06091f3c81..0973076c40 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneUserProfileRecentSection.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneUserProfileRecentSection.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -14,7 +13,6 @@ using osu.Game.Graphics.Containers; using osu.Game.Online.API.Requests; using osu.Game.Online.API.Requests.Responses; using osu.Game.Overlays; -using osu.Game.Overlays.Profile.Sections; using osu.Game.Overlays.Profile.Sections.Recent; namespace osu.Game.Tests.Visual.Online @@ -22,14 +20,6 @@ namespace osu.Game.Tests.Visual.Online [TestFixture] public class TestSceneUserProfileRecentSection : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(RecentSection), - typeof(DrawableRecentActivity), - typeof(PaginatedRecentActivityContainer), - typeof(MedalIcon) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Green); diff --git a/osu.Game.Tests/Visual/Online/TestSceneUserProfileScores.cs b/osu.Game.Tests/Visual/Online/TestSceneUserProfileScores.cs index f1e745bd14..5dca218531 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneUserProfileScores.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneUserProfileScores.cs @@ -2,8 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; -using osu.Game.Overlays.Profile.Sections; using osu.Game.Overlays.Profile.Sections.Ranks; using osu.Framework.Graphics; using osu.Game.Scoring; @@ -19,13 +17,6 @@ namespace osu.Game.Tests.Visual.Online { public class TestSceneUserProfileScores : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableProfileScore), - typeof(DrawableProfileWeightedScore), - typeof(ProfileItemContainer), - }; - public TestSceneUserProfileScores() { var firstScore = new ScoreInfo diff --git a/osu.Game.Tests/Visual/Online/TestSceneUserRanks.cs b/osu.Game.Tests/Visual/Online/TestSceneUserRanks.cs index c8e94b2915..c22cff4af6 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneUserRanks.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneUserRanks.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -12,7 +10,6 @@ using osu.Game.Graphics; using osu.Game.Graphics.Containers; using osu.Game.Overlays; using osu.Game.Overlays.Profile.Sections; -using osu.Game.Overlays.Profile.Sections.Ranks; using osu.Game.Users; namespace osu.Game.Tests.Visual.Online @@ -22,13 +19,6 @@ namespace osu.Game.Tests.Visual.Online { protected override bool UseOnlineAPI => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableProfileScore), - typeof(DrawableProfileWeightedScore), - typeof(RanksSection) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Green); diff --git a/osu.Game.Tests/Visual/Online/TestSceneVotePill.cs b/osu.Game.Tests/Visual/Online/TestSceneVotePill.cs index 770cef8f1b..9bb29541ec 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneVotePill.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneVotePill.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Overlays.Comments; @@ -15,11 +13,6 @@ namespace osu.Game.Tests.Visual.Online [TestFixture] public class TestSceneVotePill : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(VotePill) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneAccuracyCircle.cs b/osu.Game.Tests/Visual/Ranking/TestSceneAccuracyCircle.cs index 0781cba924..1e87893f39 100644 --- a/osu.Game.Tests/Visual/Ranking/TestSceneAccuracyCircle.cs +++ b/osu.Game.Tests/Visual/Ranking/TestSceneAccuracyCircle.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Graphics; @@ -23,15 +22,6 @@ namespace osu.Game.Tests.Visual.Ranking { public class TestSceneAccuracyCircle : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(AccuracyCircle), - typeof(RankBadge), - typeof(RankNotch), - typeof(RankText), - typeof(SmoothCircularProgress) - }; - [Test] public void TestLowDRank() { diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs b/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs index 328a0e0c27..106b4187ee 100644 --- a/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs +++ b/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Allocation; @@ -22,8 +21,6 @@ using osu.Game.Rulesets.Scoring; using osu.Game.Scoring; using osu.Game.Screens.Ranking; using osu.Game.Screens.Ranking.Expanded; -using osu.Game.Screens.Ranking.Expanded.Accuracy; -using osu.Game.Screens.Ranking.Expanded.Statistics; using osu.Game.Tests.Beatmaps; using osu.Game.Users; using osuTK; @@ -35,18 +32,6 @@ namespace osu.Game.Tests.Visual.Ranking [Resolved] private RulesetStore rulesetStore { get; set; } - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ExpandedPanelMiddleContent), - typeof(AccuracyCircle), - typeof(AccuracyStatistic), - typeof(ComboStatistic), - typeof(CounterStatistic), - typeof(StarRatingDisplay), - typeof(StatisticDisplay), - typeof(TotalScoreCounter) - }; - [Test] public void TestMapWithKnownMapper() { diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs b/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs index bd5b039bc1..aa0ce89d93 100644 --- a/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs +++ b/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs @@ -26,14 +26,6 @@ namespace osu.Game.Tests.Visual.Ranking { private BeatmapManager beatmaps; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ResultsScreen), - typeof(RetryButton), - typeof(ReplayDownloadButton), - typeof(TestPlayer) - }; - [BackgroundDependencyLoader] private void load(BeatmapManager beatmaps) { diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs index 1e55885385..78511b1be1 100644 --- a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs +++ b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Game.Rulesets.Mods; @@ -19,13 +18,6 @@ namespace osu.Game.Tests.Visual.Ranking { public class TestSceneScorePanel : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ScorePanel), - typeof(PanelState), - typeof(ExpandedPanelMiddleContent), - typeof(ExpandedPanelTopContent), - }; [Test] public void TestDRank() diff --git a/osu.Game.Tests/Visual/Settings/TestSceneKeyBindingPanel.cs b/osu.Game.Tests/Visual/Settings/TestSceneKeyBindingPanel.cs index 426ff988c4..745820696a 100644 --- a/osu.Game.Tests/Visual/Settings/TestSceneKeyBindingPanel.cs +++ b/osu.Game.Tests/Visual/Settings/TestSceneKeyBindingPanel.cs @@ -1,11 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Game.Overlays; -using osu.Game.Overlays.KeyBinding; namespace osu.Game.Tests.Visual.Settings { @@ -14,16 +11,6 @@ namespace osu.Game.Tests.Visual.Settings { private readonly KeyBindingPanel panel; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(KeyBindingRow), - typeof(GlobalKeyBindingsSection), - typeof(KeyBindingRow), - typeof(KeyBindingsSubsection), - typeof(RulesetBindingsSection), - typeof(VariantBindingsSubsection), - }; - public TestSceneKeyBindingPanel() { Child = panel = new KeyBindingPanel(); diff --git a/osu.Game.Tests/Visual/Settings/TestSceneSettingsPanel.cs b/osu.Game.Tests/Visual/Settings/TestSceneSettingsPanel.cs index 668fdf2c20..115d2fec7d 100644 --- a/osu.Game.Tests/Visual/Settings/TestSceneSettingsPanel.cs +++ b/osu.Game.Tests/Visual/Settings/TestSceneSettingsPanel.cs @@ -1,13 +1,10 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics.Containers; using osu.Game.Overlays; -using osu.Game.Overlays.Settings; namespace osu.Game.Tests.Visual.Settings { @@ -17,12 +14,6 @@ namespace osu.Game.Tests.Visual.Settings private readonly SettingsPanel settings; private readonly DialogOverlay dialogOverlay; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(SettingsFooter), - typeof(SettingsOverlay), - }; - public TestSceneSettingsPanel() { settings = new SettingsOverlay diff --git a/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs b/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs index f68ed4154b..2f12194ede 100644 --- a/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs +++ b/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs @@ -26,21 +26,6 @@ namespace osu.Game.Tests.Visual.SongSelect private TestBeatmapCarousel carousel; private RulesetStore rulesets; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CarouselItem), - typeof(CarouselGroup), - typeof(CarouselGroupEagerSelect), - typeof(CarouselBeatmap), - typeof(CarouselBeatmapSet), - - typeof(DrawableCarouselItem), - typeof(CarouselItemState), - - typeof(DrawableCarouselBeatmap), - typeof(DrawableCarouselBeatmapSet), - }; - private readonly Stack selectedSets = new Stack(); private readonly HashSet eagerSelectedIDs = new HashSet(); diff --git a/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapLeaderboard.cs b/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapLeaderboard.cs index 1198488bda..48b718c04d 100644 --- a/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapLeaderboard.cs +++ b/osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapLeaderboard.cs @@ -2,14 +2,12 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Game.Beatmaps; using osu.Game.Online.API.Requests.Responses; using osu.Game.Online.Leaderboards; using osu.Game.Overlays; -using osu.Game.Online.Placeholders; using osu.Game.Rulesets.Osu.Mods; using osu.Game.Scoring; using osu.Game.Screens.Select.Leaderboards; @@ -20,15 +18,6 @@ namespace osu.Game.Tests.Visual.SongSelect { public class TestSceneBeatmapLeaderboard : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Placeholder), - typeof(MessagePlaceholder), - typeof(RetrievalFailurePlaceholder), - typeof(UserTopScoreContainer), - typeof(Leaderboard), - }; - private readonly FailableLeaderboard leaderboard; [Cached] diff --git a/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs b/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs index 81fd1b66e5..a7e2dbeccb 100644 --- a/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs +++ b/osu.Game.Tests/Visual/SongSelect/TestScenePlaySongSelect.cs @@ -45,24 +45,6 @@ namespace osu.Game.Tests.Visual.SongSelect private WorkingBeatmap defaultBeatmap; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Screens.Select.SongSelect), - typeof(BeatmapCarousel), - - typeof(CarouselItem), - typeof(CarouselGroup), - typeof(CarouselGroupEagerSelect), - typeof(CarouselBeatmap), - typeof(CarouselBeatmapSet), - - typeof(DrawableCarouselItem), - typeof(CarouselItemState), - - typeof(DrawableCarouselBeatmap), - typeof(DrawableCarouselBeatmapSet), - }; - private TestSongSelect songSelect; [BackgroundDependencyLoader] diff --git a/osu.Game.Tests/Visual/TestSceneOsuGame.cs b/osu.Game.Tests/Visual/TestSceneOsuGame.cs index 2eaac2a45f..22ae5257e7 100644 --- a/osu.Game.Tests/Visual/TestSceneOsuGame.cs +++ b/osu.Game.Tests/Visual/TestSceneOsuGame.cs @@ -34,11 +34,6 @@ namespace osu.Game.Tests.Visual [TestFixture] public class TestSceneOsuGame : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OsuLogo), - }; - private IReadOnlyList requiredGameDependencies => new[] { typeof(OsuGame), diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneBackButton.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneBackButton.cs index b7d7053dcd..2440911c11 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneBackButton.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneBackButton.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; @@ -14,11 +12,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneBackButton : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TwoLayerButton) - }; - public TestSceneBackButton() { BackButton button; diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatSyncedContainer.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatSyncedContainer.cs index b0b673d6a4..4c32e995e8 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatSyncedContainer.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatSyncedContainer.cs @@ -26,11 +26,6 @@ namespace osu.Game.Tests.Visual.UserInterface { private readonly NowPlayingOverlay np; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BeatSyncedContainer) - }; - [Cached] private MusicController musicController = new MusicController(); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSearchControl.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSearchControl.cs index d6ede950df..a4698a9a32 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSearchControl.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSearchControl.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -17,11 +15,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneBeatmapListingSearchControl : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BeatmapListingSearchControl), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSortTabControl.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSortTabControl.cs index f643d4e3fe..5364f0bef5 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSortTabControl.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapListingSortTabControl.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -15,11 +13,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneBeatmapListingSortTabControl : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OverlaySortTabControl<>), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapSearchFilter.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapSearchFilter.cs index 283fe03af3..37b7b64615 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapSearchFilter.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneBeatmapSearchFilter.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -16,12 +14,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneBeatmapSearchFilter : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(BeatmapSearchFilterRow<>), - typeof(BeatmapSearchRulesetFilterRow) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneButtonSystem.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneButtonSystem.cs index f0e1c38525..1bb5cadc6a 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneButtonSystem.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneButtonSystem.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; @@ -17,13 +16,6 @@ namespace osu.Game.Tests.Visual.UserInterface [TestFixture] public class TestSceneButtonSystem : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ButtonSystem), - typeof(ButtonArea), - typeof(Button) - }; - private OsuLogo logo; private ButtonSystem buttons; diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneCommentEditor.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneCommentEditor.cs index cef04a4c18..d0a2ca83e3 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneCommentEditor.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneCommentEditor.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Bindables; @@ -17,12 +15,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneCommentEditor : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(CommentEditor), - typeof(CancellableCommentEditor), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneDeleteLocalScore.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneDeleteLocalScore.cs index a812b4dc79..eb4750a597 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneDeleteLocalScore.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneDeleteLocalScore.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -15,7 +14,6 @@ using osu.Game.Beatmaps; using osu.Game.Graphics.Cursor; using osu.Game.Graphics.UserInterface; using osu.Game.Online.Leaderboards; -using osu.Game.Online.Placeholders; using osu.Game.Overlays; using osu.Game.Rulesets; using osu.Game.Scoring; @@ -29,16 +27,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneDeleteLocalScore : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(Placeholder), - typeof(MessagePlaceholder), - typeof(RetrievalFailurePlaceholder), - typeof(UserTopScoreContainer), - typeof(Leaderboard), - typeof(LeaderboardScore), - }; - private readonly ContextMenuContainer contextMenuContainer; private readonly BeatmapLeaderboard leaderboard; diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneFooterButtonMods.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneFooterButtonMods.cs index 63197ed26a..1e3b1c2ffd 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneFooterButtonMods.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneFooterButtonMods.cs @@ -14,12 +14,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneFooterButtonMods : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(FooterButtonMods), - typeof(FooterButton) - }; - private readonly TestFooterButtonMods footerButtonMods; public TestSceneFooterButtonMods() diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneFriendsOnlineStatusControl.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneFriendsOnlineStatusControl.cs index f6dcf78d55..9fa5c83dba 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneFriendsOnlineStatusControl.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneFriendsOnlineStatusControl.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -15,15 +14,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneFriendsOnlineStatusControl : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(FriendOnlineStreamControl), - typeof(FriendsOnlineStatusItem), - typeof(OverlayStreamControl<>), - typeof(OverlayStreamItem<>), - typeof(FriendStream) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneHoldToConfirmOverlay.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneHoldToConfirmOverlay.cs index feef1dae6b..cea91d422e 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneHoldToConfirmOverlay.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneHoldToConfirmOverlay.cs @@ -1,11 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Graphics; -using osu.Game.Graphics.Containers; using osu.Game.Graphics.Sprites; using osu.Game.Screens.Menu; @@ -15,12 +12,6 @@ namespace osu.Game.Tests.Visual.UserInterface { protected override double TimePerAction => 100; // required for the early exit test, since hold-to-confirm delay is 200ms - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ExitConfirmOverlay), - typeof(HoldToConfirmContainer), - }; - public TestSceneHoldToConfirmOverlay() { bool fired = false; diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledSwitchButton.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledSwitchButton.cs index 6ca4d9fa4c..903f1242b4 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledSwitchButton.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledSwitchButton.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -12,12 +10,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneLabelledSwitchButton : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(LabelledSwitchButton), - typeof(SwitchButton) - }; - [TestCase(false)] [TestCase(true)] public void TestSwitchButton(bool hasDescription) => createSwitchButton(hasDescription); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledTextBox.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledTextBox.cs index 8208b55952..c11ba0aa59 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledTextBox.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneLabelledTextBox.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -14,11 +12,6 @@ namespace osu.Game.Tests.Visual.UserInterface [TestFixture] public class TestSceneLabelledTextBox : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(LabelledTextBox), - }; - [TestCase(false)] [TestCase(true)] public void TestTextBox(bool hasDescription) => createTextBox(hasDescription); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneLoadingLayer.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneLoadingLayer.cs index 7e9654715b..1be191fc29 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneLoadingLayer.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneLoadingLayer.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -19,8 +17,6 @@ namespace osu.Game.Tests.Visual.UserInterface private Drawable dimContent; private LoadingLayer overlay; - public override IReadOnlyList RequiredTypes => new[] { typeof(LoadingSpinner) }; - private Container content; [SetUp] diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneLogoTrackingContainer.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneLogoTrackingContainer.cs index 4e394b5ed8..010e4330d7 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneLogoTrackingContainer.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneLogoTrackingContainer.cs @@ -2,17 +2,14 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; -using osu.Framework.Graphics.UserInterface; using osu.Framework.Utils; using osu.Framework.Testing; using osu.Game.Graphics.Containers; using osu.Game.Screens.Menu; -using osu.Game.Screens.Play; using osuTK; using osuTK.Graphics; @@ -20,17 +17,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneLogoTrackingContainer : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(PlayerLoader), - typeof(Player), - typeof(LogoTrackingContainer), - typeof(ButtonSystem), - typeof(ButtonSystemState), - typeof(Menu), - typeof(MainMenu) - }; - private OsuLogo logo; private TestLogoTrackingContainer trackingContainer; private Container transferContainer; diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs index ec6ee6bc83..ce691bff70 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneModSelectOverlay.cs @@ -12,12 +12,10 @@ using osu.Framework.Testing; using osu.Game.Graphics.Sprites; using osu.Game.Graphics.UserInterface; using osu.Game.Overlays.Mods; -using osu.Game.Overlays.Mods.Sections; using osu.Game.Rulesets; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Osu; using osu.Game.Rulesets.Osu.Mods; -using osu.Game.Rulesets.UI; using osu.Game.Screens.Play.HUD; using osuTK; using osuTK.Graphics; @@ -27,20 +25,6 @@ namespace osu.Game.Tests.Visual.UserInterface [Description("mod select and icon display")] public class TestSceneModSelectOverlay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ModDisplay), - typeof(ModSection), - typeof(ModIcon), - typeof(ModButton), - typeof(ModButtonEmpty), - typeof(DifficultyReductionSection), - typeof(DifficultyIncreaseSection), - typeof(AutomationSection), - typeof(ConversionSection), - typeof(FunSection), - }; - private RulesetStore rulesets; private ModDisplay modDisplay; private TestModSelectOverlay modSelect; diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneNotificationOverlay.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneNotificationOverlay.cs index f8ace73168..43ba23e6c6 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneNotificationOverlay.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneNotificationOverlay.cs @@ -1,7 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -18,16 +17,6 @@ namespace osu.Game.Tests.Visual.UserInterface [TestFixture] public class TestSceneNotificationOverlay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(NotificationSection), - typeof(SimpleNotification), - typeof(ProgressNotification), - typeof(ProgressCompletionNotification), - typeof(IHasCompletionTarget), - typeof(Notification) - }; - private NotificationOverlay notificationOverlay; private readonly List progressingNotifications = new List(); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneNumberBox.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneNumberBox.cs index f73450db60..97a3f62b2d 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneNumberBox.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneNumberBox.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -14,11 +12,6 @@ namespace osu.Game.Tests.Visual.UserInterface [TestFixture] public class TestSceneNumberBox : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OsuNumberBox), - }; - private OsuNumberBox numberBox; [BackgroundDependencyLoader] diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneOsuMenu.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneOsuMenu.cs index 9ea76c2c7b..387deea76c 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneOsuMenu.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneOsuMenu.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; @@ -14,12 +12,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneOsuMenu : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OsuMenu), - typeof(DrawableOsuMenuItem) - }; - private OsuMenu menu; private bool actionPerformed; diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeader.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeader.cs index c81ec9f663..60af5b37ef 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeader.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeader.cs @@ -3,8 +3,6 @@ using osu.Framework.Graphics.Containers; using osu.Game.Overlays; -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Graphics.Sprites; using osu.Framework.Allocation; @@ -15,18 +13,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneOverlayHeader : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OverlayHeader), - typeof(TabControlOverlayHeader<>), - typeof(BreadcrumbControlOverlayHeader), - typeof(TestNoControlHeader), - typeof(TestStringTabControlHeader), - typeof(TestEnumTabControlHeader), - typeof(TestBreadcrumbControlHeader), - typeof(OverlayHeaderBackground) - }; - private readonly FillFlowContainer flow; public TestSceneOverlayHeader() diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeaderBackground.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeaderBackground.cs index 5a0b28e24a..db414d23a0 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeaderBackground.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayHeaderBackground.cs @@ -3,8 +3,6 @@ using osu.Framework.Graphics.Containers; using osu.Game.Overlays; -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osuTK; @@ -12,11 +10,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneOverlayHeaderBackground : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OverlayHeaderBackground) - }; - public TestSceneOverlayHeaderBackground() { Add(new BasicScrollContainer diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayRulesetSelector.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayRulesetSelector.cs index 8a98127793..f4fa41a3b7 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayRulesetSelector.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayRulesetSelector.cs @@ -2,8 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using osu.Framework.Graphics; -using System; -using System.Collections.Generic; using osu.Game.Rulesets.Catch; using osu.Game.Rulesets.Mania; using osu.Game.Rulesets.Osu; @@ -20,12 +18,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneOverlayRulesetSelector : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OverlayRulesetSelector), - typeof(OverlayRulesetTabItem), - }; - private readonly OverlayRulesetSelector selector; private readonly Bindable ruleset = new Bindable(); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayScrollContainer.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayScrollContainer.cs index e9e63613c0..7fa730e02b 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayScrollContainer.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneOverlayScrollContainer.cs @@ -3,8 +3,6 @@ using osu.Framework.Graphics.Containers; using osu.Game.Overlays; -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Allocation; using osu.Framework.Graphics.Shapes; @@ -17,11 +15,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneOverlayScrollContainer : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OverlayScrollContainer) - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); diff --git a/osu.Game.Tests/Visual/UserInterface/TestScenePlaylistOverlay.cs b/osu.Game.Tests/Visual/UserInterface/TestScenePlaylistOverlay.cs index 7476b52b49..a470244f53 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestScenePlaylistOverlay.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestScenePlaylistOverlay.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Bindables; using osu.Framework.Graphics; @@ -16,12 +15,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestScenePlaylistOverlay : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(PlaylistOverlay), - typeof(Playlist) - }; - private readonly BindableList beatmapSets = new BindableList(); [SetUp] diff --git a/osu.Game.Tests/Visual/UserInterface/TestScenePopupDialog.cs b/osu.Game.Tests/Visual/UserInterface/TestScenePopupDialog.cs index 7207506ccd..8e53c7c402 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestScenePopupDialog.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestScenePopupDialog.cs @@ -1,12 +1,9 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Graphics; using osu.Framework.Graphics.Sprites; -using osu.Game.Graphics.UserInterface; using osu.Game.Overlays.Dialog; namespace osu.Game.Tests.Visual.UserInterface @@ -14,14 +11,6 @@ namespace osu.Game.Tests.Visual.UserInterface [TestFixture] public class TestScenePopupDialog : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(PopupDialogOkButton), - typeof(PopupDialogCancelButton), - typeof(PopupDialogButton), - typeof(DialogButton), - }; - public TestScenePopupDialog() { AddStep("new popup", () => diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneStatefulMenuItem.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneStatefulMenuItem.cs index 85fea73bf5..29aeb6a4b2 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneStatefulMenuItem.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneStatefulMenuItem.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using NUnit.Framework; using osu.Framework.Bindables; using osu.Framework.Graphics; @@ -14,14 +13,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneStatefulMenuItem : OsuManualInputManagerTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OsuMenu), - typeof(StatefulMenuItem), - typeof(TernaryStateMenuItem), - typeof(DrawableStatefulMenuItem), - }; - [Test] public void TestTernaryMenuItem() { diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneToggleMenuItem.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneToggleMenuItem.cs index 2abda56a28..9fb8e747f3 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneToggleMenuItem.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneToggleMenuItem.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Graphics.UserInterface; @@ -10,13 +8,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneToggleMenuItem : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(OsuMenu), - typeof(ToggleMenuItem), - typeof(DrawableStatefulMenuItem) - }; - public TestSceneToggleMenuItem() { Add(new OsuMenu(Direction.Vertical, true) diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneToolbarRulesetSelector.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneToolbarRulesetSelector.cs index 9738f73548..cdfbb14cba 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneToolbarRulesetSelector.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneToolbarRulesetSelector.cs @@ -3,8 +3,6 @@ using osu.Framework.Graphics.Containers; using osu.Game.Overlays.Toolbar; -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using System.Linq; using NUnit.Framework; @@ -16,12 +14,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneToolbarRulesetSelector : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ToolbarRulesetSelector), - typeof(ToolbarRulesetTabButton), - }; - [Resolved] private RulesetStore rulesets { get; set; } diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneUserListToolbar.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneUserListToolbar.cs index 1546972580..8f7140ed7c 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneUserListToolbar.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneUserListToolbar.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; @@ -15,14 +13,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneUserListToolbar : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(UserSortTabControl), - typeof(OverlaySortTabControl<>), - typeof(OverlayPanelDisplayStyleControl), - typeof(UserListToolbar), - }; - [Cached] private readonly OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Purple); diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneVolumePieces.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneVolumePieces.cs index 2fe6240b22..c8478c8eca 100644 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneVolumePieces.cs +++ b/osu.Game.Tests/Visual/UserInterface/TestSceneVolumePieces.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Overlays.Volume; using osuTK; @@ -12,8 +10,6 @@ namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneVolumePieces : OsuTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(VolumeMeter), typeof(MuteButton) }; - protected override void LoadComplete() { VolumeMeter meter; diff --git a/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentMatch.cs b/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentMatch.cs index e65b708fea..f98f55dfbc 100644 --- a/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentMatch.cs +++ b/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentMatch.cs @@ -1,11 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; -using osu.Game.Tournament.Components; using osu.Game.Tournament.Models; using osu.Game.Tournament.Screens.Ladder.Components; @@ -13,12 +10,6 @@ namespace osu.Game.Tournament.Tests.Components { public class TestSceneDrawableTournamentMatch : TournamentTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TournamentMatch), - typeof(DrawableTournamentTeam), - }; - public TestSceneDrawableTournamentMatch() { Container level1; diff --git a/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentTeam.cs b/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentTeam.cs index 01edcb66e4..376c59ec2d 100644 --- a/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentTeam.cs +++ b/osu.Game.Tournament.Tests/Components/TestSceneDrawableTournamentTeam.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Game.Tests.Visual; @@ -17,17 +15,6 @@ namespace osu.Game.Tournament.Tests.Components { public class TestSceneDrawableTournamentTeam : OsuGridTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableTeamFlag), - typeof(DrawableTeamTitle), - typeof(DrawableTeamTitleWithHeader), - typeof(DrawableMatchTeam), - typeof(DrawableTeamWithPlayers), - typeof(GroupTeam), - typeof(TeamDisplay), - }; - public TestSceneDrawableTournamentTeam() : base(4, 3) { diff --git a/osu.Game.Tournament.Tests/Components/TestSceneMatchHeader.cs b/osu.Game.Tournament.Tests/Components/TestSceneMatchHeader.cs index 9f885ed827..b29e4964b6 100644 --- a/osu.Game.Tournament.Tests/Components/TestSceneMatchHeader.cs +++ b/osu.Game.Tournament.Tests/Components/TestSceneMatchHeader.cs @@ -1,12 +1,9 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Graphics; -using osu.Game.Tournament.Components; using osu.Game.Tournament.Screens.Gameplay.Components; using osuTK; @@ -14,12 +11,6 @@ namespace osu.Game.Tournament.Tests.Components { public class TestSceneMatchHeader : TournamentTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableTournamentHeaderText), - typeof(DrawableTournamentHeaderLogo), - }; - public TestSceneMatchHeader() { Child = new FillFlowContainer diff --git a/osu.Game.Tournament.Tests/Components/TestSceneRoundDisplay.cs b/osu.Game.Tournament.Tests/Components/TestSceneRoundDisplay.cs index 6f71627ce4..13bca7bea1 100644 --- a/osu.Game.Tournament.Tests/Components/TestSceneRoundDisplay.cs +++ b/osu.Game.Tournament.Tests/Components/TestSceneRoundDisplay.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Tournament.Components; using osu.Game.Tournament.Models; @@ -11,12 +9,6 @@ namespace osu.Game.Tournament.Tests.Components { public class TestSceneRoundDisplay : TournamentTestScene { - public override IReadOnlyList RequiredTypes => new[] - { - typeof(DrawableTournamentHeaderText), - typeof(DrawableTournamentHeaderLogo), - }; - public TestSceneRoundDisplay() { Children = new Drawable[] diff --git a/osu.Game.Tournament.Tests/Screens/TestSceneGameplayScreen.cs b/osu.Game.Tournament.Tests/Screens/TestSceneGameplayScreen.cs index 34fa7a4997..c1159dc000 100644 --- a/osu.Game.Tournament.Tests/Screens/TestSceneGameplayScreen.cs +++ b/osu.Game.Tournament.Tests/Screens/TestSceneGameplayScreen.cs @@ -1,13 +1,9 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using osu.Framework.Allocation; using osu.Game.Tournament.Components; -using osu.Game.Tournament.Screens; using osu.Game.Tournament.Screens.Gameplay; -using osu.Game.Tournament.Screens.Gameplay.Components; namespace osu.Game.Tournament.Tests.Screens { @@ -16,17 +12,6 @@ namespace osu.Game.Tournament.Tests.Screens [Cached] private TournamentMatchChatDisplay chat = new TournamentMatchChatDisplay { Width = 0.5f }; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(TeamScore), - typeof(TeamScoreDisplay), - typeof(TeamDisplay), - typeof(MatchHeader), - typeof(MatchScoreDisplay), - typeof(BeatmapInfoScreen), - typeof(SongBar), - }; - [BackgroundDependencyLoader] private void load() { diff --git a/osu.Game/Tests/Visual/EditorTestScene.cs b/osu.Game/Tests/Visual/EditorTestScene.cs index caf2bc0ff1..2f6e6fb599 100644 --- a/osu.Game/Tests/Visual/EditorTestScene.cs +++ b/osu.Game/Tests/Visual/EditorTestScene.cs @@ -1,8 +1,6 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; -using System.Collections.Generic; using System.Linq; using osu.Framework.Allocation; using osu.Framework.Testing; @@ -15,8 +13,6 @@ namespace osu.Game.Tests.Visual { public abstract class EditorTestScene : ScreenTestScene { - public override IReadOnlyList RequiredTypes => new[] { typeof(Editor), typeof(EditorScreen) }; - protected Editor Editor { get; private set; } private readonly Ruleset ruleset; diff --git a/osu.Game/Tests/Visual/ModTestScene.cs b/osu.Game/Tests/Visual/ModTestScene.cs index 8b41fb5075..1fa638b3d8 100644 --- a/osu.Game/Tests/Visual/ModTestScene.cs +++ b/osu.Game/Tests/Visual/ModTestScene.cs @@ -14,11 +14,6 @@ namespace osu.Game.Tests.Visual { protected sealed override bool HasCustomSteps => true; - public override IReadOnlyList RequiredTypes => new[] - { - typeof(ModTestScene) - }; - protected ModTestScene(Ruleset ruleset) : base(ruleset) { From 0279bcf3c8cc2ee3bc53f5b7aaa9925870dae71c Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 16 May 2020 18:28:22 +0900 Subject: [PATCH 175/213] Fix missed issues --- osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs index 78511b1be1..880e331b92 100644 --- a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs +++ b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs @@ -10,7 +10,6 @@ using osu.Game.Rulesets.Osu.Mods; using osu.Game.Rulesets.Scoring; using osu.Game.Scoring; using osu.Game.Screens.Ranking; -using osu.Game.Screens.Ranking.Expanded; using osu.Game.Tests.Beatmaps; using osu.Game.Users; @@ -18,7 +17,6 @@ namespace osu.Game.Tests.Visual.Ranking { public class TestSceneScorePanel : OsuTestScene { - [Test] public void TestDRank() { From 358345cee72cf0e0c6ae57936ee8df27de4d72ac Mon Sep 17 00:00:00 2001 From: Shivam Date: Sat, 16 May 2020 12:50:56 +0200 Subject: [PATCH 176/213] Change logic for parentscreen/subscreen relation --- .../Screens/TestSceneSeedingEditorScreen.cs | 2 +- .../Screens/Editors/SeedingEditorScreen.cs | 7 ++----- .../Screens/Editors/TeamEditorScreen.cs | 6 +++--- .../Screens/Editors/TournamentEditorScreen.cs | 16 +++++++++------- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/osu.Game.Tournament.Tests/Screens/TestSceneSeedingEditorScreen.cs b/osu.Game.Tournament.Tests/Screens/TestSceneSeedingEditorScreen.cs index 17cccd34b6..8d12d5393d 100644 --- a/osu.Game.Tournament.Tests/Screens/TestSceneSeedingEditorScreen.cs +++ b/osu.Game.Tournament.Tests/Screens/TestSceneSeedingEditorScreen.cs @@ -16,7 +16,7 @@ namespace osu.Game.Tournament.Tests.Screens { var match = CreateSampleMatch(); - Add(new SeedingEditorScreen(match.Team1.Value) + Add(new SeedingEditorScreen(match.Team1.Value, new TeamEditorScreen()) { Width = 0.85f // create room for control panel }); diff --git a/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs index 0f980ec9a3..0973a7dc75 100644 --- a/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/SeedingEditorScreen.cs @@ -28,11 +28,8 @@ namespace osu.Game.Tournament.Screens.Editors [Resolved(canBeNull: true)] private TournamentSceneManager sceneManager { get; set; } - protected override bool IsSubScreen => true; - - protected override System.Type ParentScreen => typeof(TeamEditorScreen); - - public SeedingEditorScreen(TournamentTeam team) + public SeedingEditorScreen(TournamentTeam team, TournamentScreen parentScreen) + : base(parentScreen) { this.team = team; } diff --git a/osu.Game.Tournament/Screens/Editors/TeamEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/TeamEditorScreen.cs index 81487f1bcf..dbfcfe4225 100644 --- a/osu.Game.Tournament/Screens/Editors/TeamEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/TeamEditorScreen.cs @@ -38,7 +38,7 @@ namespace osu.Game.Tournament.Screens.Editors }); } - protected override TeamRow CreateDrawable(TournamentTeam model) => new TeamRow(model); + protected override TeamRow CreateDrawable(TournamentTeam model) => new TeamRow(model, this); private void addAllCountries() { @@ -63,7 +63,7 @@ namespace osu.Game.Tournament.Screens.Editors [Resolved] private LadderInfo ladderInfo { get; set; } - public TeamRow(TournamentTeam team) + public TeamRow(TournamentTeam team, TournamentScreen parent) { Model = team; @@ -154,7 +154,7 @@ namespace osu.Game.Tournament.Screens.Editors Text = "Edit seeding results", Action = () => { - sceneManager?.SetScreen(new SeedingEditorScreen(team)); + sceneManager?.SetScreen(new SeedingEditorScreen(team, parent)); } }, } diff --git a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs index bca0814d3a..c0b56f1e68 100644 --- a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs @@ -33,13 +33,15 @@ namespace osu.Game.Tournament.Screens.Editors protected ControlPanel ControlPanel; - protected virtual bool IsSubScreen => false; - - protected virtual System.Type ParentScreen { get; set; } - + private readonly TournamentScreen parentScreen; private BackButton backButton; - private System.Action backAction => () => sceneManager?.SetScreen(ParentScreen); + private System.Action backAction => () => sceneManager?.SetScreen(parentScreen.GetType()); + + protected TournamentEditorScreen(TournamentScreen parentScreen = null) + { + this.parentScreen = parentScreen; + } [BackgroundDependencyLoader] private void load() @@ -51,7 +53,7 @@ namespace osu.Game.Tournament.Screens.Editors Origin = Anchor.BottomLeft, Action = () => { - if (IsSubScreen) + if (parentScreen != null) backAction.Invoke(); } }; @@ -98,7 +100,7 @@ namespace osu.Game.Tournament.Screens.Editors } }); - if (IsSubScreen) + if (parentScreen != null) backButton.Show(); Storage.CollectionChanged += (_, args) => From 2c0ac8cc36dd55c859c05b9deb14efdb90479ffb Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sun, 17 May 2020 17:25:26 +0900 Subject: [PATCH 177/213] Move padding to fill, not scroll container --- osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs index c0b56f1e68..7043328aa7 100644 --- a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs @@ -70,13 +70,13 @@ namespace osu.Game.Tournament.Screens.Editors RelativeSizeAxes = Axes.Both, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, - Padding = new MarginPadding { Bottom = backButton.Height }, Child = flow = new FillFlowContainer { Direction = FillDirection.Vertical, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, - Spacing = new Vector2(20) + Spacing = new Vector2(20), + Padding = new MarginPadding { Bottom = backButton.Height * 2 }, }, }, backButton, From 864c1a73ae0ac1a1217ea85d8977004d171ff8bf Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sun, 17 May 2020 17:27:52 +0900 Subject: [PATCH 178/213] Only add back button if required --- .../Screens/Editors/TournamentEditorScreen.cs | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs index 7043328aa7..b92818b84a 100644 --- a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs @@ -46,18 +46,6 @@ namespace osu.Game.Tournament.Screens.Editors [BackgroundDependencyLoader] private void load() { - BackButton.Receptor receptor = new BackButton.Receptor(); - backButton = new BackButton(receptor) - { - Anchor = Anchor.BottomLeft, - Origin = Anchor.BottomLeft, - Action = () => - { - if (parentScreen != null) - backAction.Invoke(); - } - }; - AddRangeInternal(new Drawable[] { new Box @@ -76,10 +64,8 @@ namespace osu.Game.Tournament.Screens.Editors RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Spacing = new Vector2(20), - Padding = new MarginPadding { Bottom = backButton.Height * 2 }, }, }, - backButton, ControlPanel = new ControlPanel { Children = new Drawable[] @@ -101,7 +87,21 @@ namespace osu.Game.Tournament.Screens.Editors }); if (parentScreen != null) - backButton.Show(); + { + AddInternal(backButton = new BackButton(new BackButton.Receptor()) + { + Anchor = Anchor.BottomLeft, + Origin = Anchor.BottomLeft, + State = { Value = Visibility.Visible }, + Action = () => + { + if (parentScreen != null) + backAction.Invoke(); + } + }); + + flow.Padding = new MarginPadding { Bottom = backButton.Height * 2 }; + } Storage.CollectionChanged += (_, args) => { @@ -126,7 +126,7 @@ namespace osu.Game.Tournament.Screens.Editors switch (action) { case GlobalAction.Back: - backAction.Invoke(); + backAction?.Invoke(); return true; } From 13d4997c9165401c5123fd8a995cb9c8d9cb52e8 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sun, 17 May 2020 17:35:10 +0900 Subject: [PATCH 179/213] Remove custom back action logic (use receptor as intended) --- .../Screens/Editors/TournamentEditorScreen.cs | 30 ++----------------- osu.Game/Graphics/UserInterface/BackButton.cs | 8 +++-- 2 files changed, 8 insertions(+), 30 deletions(-) diff --git a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs index b92818b84a..a5a2c5c15f 100644 --- a/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs +++ b/osu.Game.Tournament/Screens/Editors/TournamentEditorScreen.cs @@ -10,8 +10,6 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; using osu.Game.Graphics.UserInterface; -using osu.Game.Input.Bindings; -using osu.Framework.Input.Bindings; using osu.Game.Graphics; using osu.Game.Graphics.Containers; using osu.Game.Overlays.Settings; @@ -20,7 +18,7 @@ using osuTK; namespace osu.Game.Tournament.Screens.Editors { - public abstract class TournamentEditorScreen : TournamentScreen, IProvideVideo, IKeyBindingHandler + public abstract class TournamentEditorScreen : TournamentScreen, IProvideVideo where TDrawable : Drawable, IModelBacked where TModel : class, new() { @@ -36,8 +34,6 @@ namespace osu.Game.Tournament.Screens.Editors private readonly TournamentScreen parentScreen; private BackButton backButton; - private System.Action backAction => () => sceneManager?.SetScreen(parentScreen.GetType()); - protected TournamentEditorScreen(TournamentScreen parentScreen = null) { this.parentScreen = parentScreen; @@ -88,16 +84,12 @@ namespace osu.Game.Tournament.Screens.Editors if (parentScreen != null) { - AddInternal(backButton = new BackButton(new BackButton.Receptor()) + AddInternal(backButton = new BackButton { Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft, State = { Value = Visibility.Visible }, - Action = () => - { - if (parentScreen != null) - backAction.Invoke(); - } + Action = () => sceneManager?.SetScreen(parentScreen.GetType()) }); flow.Padding = new MarginPadding { Bottom = backButton.Height * 2 }; @@ -121,22 +113,6 @@ namespace osu.Game.Tournament.Screens.Editors flow.Add(CreateDrawable(model)); } - public bool OnPressed(GlobalAction action) - { - switch (action) - { - case GlobalAction.Back: - backAction?.Invoke(); - return true; - } - - return false; - } - - public void OnReleased(GlobalAction action) - { - } - protected abstract TDrawable CreateDrawable(TModel model); } } diff --git a/osu.Game/Graphics/UserInterface/BackButton.cs b/osu.Game/Graphics/UserInterface/BackButton.cs index 88ba7ede6e..37a8f7b1b4 100644 --- a/osu.Game/Graphics/UserInterface/BackButton.cs +++ b/osu.Game/Graphics/UserInterface/BackButton.cs @@ -16,10 +16,8 @@ namespace osu.Game.Graphics.UserInterface private readonly TwoLayerButton button; - public BackButton(Receptor receptor) + public BackButton(Receptor receptor = null) { - receptor.OnBackPressed = () => button.Click(); - Size = TwoLayerButton.SIZE_EXTENDED; Child = button = new TwoLayerButton @@ -30,6 +28,10 @@ namespace osu.Game.Graphics.UserInterface Icon = OsuIcon.LeftCircle, Action = () => Action?.Invoke() }; + + Add(receptor ??= new Receptor()); + + receptor.OnBackPressed = () => button.Click(); } [BackgroundDependencyLoader] From 76c5be7bc1039611957ac5ba2b781255ae36ee23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Sun, 17 May 2020 17:16:22 +0200 Subject: [PATCH 180/213] Disallow catch-specific judgements in mania --- .../Scoring/ManiaHitWindows.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/osu.Game.Rulesets.Mania/Scoring/ManiaHitWindows.cs b/osu.Game.Rulesets.Mania/Scoring/ManiaHitWindows.cs index 549f0f9214..289f8a00ef 100644 --- a/osu.Game.Rulesets.Mania/Scoring/ManiaHitWindows.cs +++ b/osu.Game.Rulesets.Mania/Scoring/ManiaHitWindows.cs @@ -7,5 +7,20 @@ namespace osu.Game.Rulesets.Mania.Scoring { public class ManiaHitWindows : HitWindows { + public override bool IsHitResultAllowed(HitResult result) + { + switch (result) + { + case HitResult.Perfect: + case HitResult.Great: + case HitResult.Good: + case HitResult.Ok: + case HitResult.Meh: + case HitResult.Miss: + return true; + } + + return false; + } } } From bc6b64b1d7a2ffc5310a69a69a08a8b1a01f0be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Sun, 17 May 2020 21:55:01 +0200 Subject: [PATCH 181/213] Add failing test --- .../NonVisual/BarLineGeneratorTest.cs | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 osu.Game.Tests/NonVisual/BarLineGeneratorTest.cs diff --git a/osu.Game.Tests/NonVisual/BarLineGeneratorTest.cs b/osu.Game.Tests/NonVisual/BarLineGeneratorTest.cs new file mode 100644 index 0000000000..e663e1128e --- /dev/null +++ b/osu.Game.Tests/NonVisual/BarLineGeneratorTest.cs @@ -0,0 +1,73 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.Collections.Generic; +using NUnit.Framework; +using osu.Framework.Utils; +using osu.Game.Beatmaps; +using osu.Game.Beatmaps.ControlPoints; +using osu.Game.Beatmaps.Timing; +using osu.Game.Rulesets.Objects; + +namespace osu.Game.Tests.NonVisual +{ + public class BarLineGeneratorTest + { + [Test] + public void TestRoundingErrorCompensation() + { + // The aim of this test is to make sure bar line generation compensates for floating-point errors. + // The premise of the test is that we have a single timing point that should result in bar lines + // that start at a time point that is a whole number every seventh beat. + + // The fact it's every seventh beat is important - it's a number indivisible by 2, which makes + // it susceptible to rounding inaccuracies. In fact this was originally spotted in cases of maps + // that met exactly this criteria. + + const int beat_length_numerator = 2000; + const int beat_length_denominator = 7; + const TimeSignatures signature = TimeSignatures.SimpleQuadruple; + + var beatmap = new Beatmap + { + HitObjects = new List + { + new HitObject { StartTime = 0 }, + new HitObject { StartTime = 120_000 } + }, + ControlPointInfo = new ControlPointInfo() + }; + + beatmap.ControlPointInfo.Add(0, new TimingControlPoint + { + BeatLength = (double)beat_length_numerator / beat_length_denominator, + TimeSignature = signature + }); + + var barLines = new BarLineGenerator(beatmap).BarLines; + + for (int i = 0; i * beat_length_denominator < barLines.Count; i++) + { + var barLine = barLines[i * beat_length_denominator]; + var expectedTime = beat_length_numerator * (int)signature * i; + + // every seventh bar's start time should be at least greater than the whole number we expect. + // It cannot be less, as that can affect overlapping scroll algorithms + // (the previous timing point might be chosen incorrectly if this is not the case) + Assert.GreaterOrEqual(barLine.StartTime, expectedTime); + + // on the other side, make sure we don't stray too far from the expected time either. + Assert.IsTrue(Precision.AlmostEquals(barLine.StartTime, expectedTime)); + + // check major/minor lines for good measure too + Assert.AreEqual(i % (int)signature == 0, barLine.Major); + } + } + + private class BarLine : IBarLine + { + public double StartTime { get; set; } + public bool Major { get; set; } + } + } +} From 17ae392a759771801a8a3d325c4e630f4c60f770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Sun, 17 May 2020 22:08:49 +0200 Subject: [PATCH 182/213] Apply rounding to bar line start times --- osu.Game/Rulesets/Objects/BarLineGenerator.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/osu.Game/Rulesets/Objects/BarLineGenerator.cs b/osu.Game/Rulesets/Objects/BarLineGenerator.cs index 5588e9c0b7..9556b52735 100644 --- a/osu.Game/Rulesets/Objects/BarLineGenerator.cs +++ b/osu.Game/Rulesets/Objects/BarLineGenerator.cs @@ -1,6 +1,7 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using System.Collections.Generic; using System.Linq; using osu.Framework.Utils; @@ -46,6 +47,16 @@ namespace osu.Game.Rulesets.Objects for (double t = currentTimingPoint.Time; Precision.DefinitelyBigger(endTime, t); t += barLength, currentBeat++) { + var roundedTime = Math.Round(t, MidpointRounding.AwayFromZero); + + // in the case of some bar lengths, rounding errors can cause t to be slightly less than + // the expected whole number value due to floating point inaccuracies. + // if this is the case, apply rounding. + if (Precision.AlmostEquals(t, roundedTime)) + { + t = roundedTime; + } + BarLines.Add(new TBarLine { StartTime = t, From 59ef6002bd9e3b32adbd00761456687c36ff312c Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 18 May 2020 13:12:30 +0900 Subject: [PATCH 183/213] Update framework --- osu.Android.props | 2 +- osu.Game/osu.Game.csproj | 2 +- osu.iOS.props | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/osu.Android.props b/osu.Android.props index 650ebde54d..eaad4daf35 100644 --- a/osu.Android.props +++ b/osu.Android.props @@ -52,6 +52,6 @@ - + diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index ee6206e166..9112dfe46e 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -24,7 +24,7 @@ - + diff --git a/osu.iOS.props b/osu.iOS.props index cbf8600c62..3f0630af5f 100644 --- a/osu.iOS.props +++ b/osu.iOS.props @@ -70,7 +70,7 @@ - + @@ -80,7 +80,7 @@ - + From 1865cd0762f6e99bfabba22a76ca2165e0b2c08d Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Mon, 18 May 2020 15:10:59 +0900 Subject: [PATCH 184/213] Fix possible exceptions in performance calculators --- .../Difficulty/CatchPerformanceCalculator.cs | 12 ++++++------ .../Difficulty/ManiaPerformanceCalculator.cs | 13 +++++++------ .../Difficulty/OsuPerformanceCalculator.cs | 9 +++++---- .../Difficulty/TaikoPerformanceCalculator.cs | 9 +++++---- 4 files changed, 23 insertions(+), 20 deletions(-) diff --git a/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs b/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs index e7ce680365..2dc28fad35 100644 --- a/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs @@ -4,12 +4,12 @@ using System; using System.Collections.Generic; using System.Linq; +using osu.Framework.Extensions; using osu.Game.Beatmaps; using osu.Game.Rulesets.Difficulty; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Scoring; using osu.Game.Scoring; -using osu.Game.Scoring.Legacy; namespace osu.Game.Rulesets.Catch.Difficulty { @@ -34,11 +34,11 @@ namespace osu.Game.Rulesets.Catch.Difficulty { mods = Score.Mods; - fruitsHit = Score?.GetCount300() ?? Score.Statistics[HitResult.Perfect]; - ticksHit = Score?.GetCount100() ?? 0; - tinyTicksHit = Score?.GetCount50() ?? 0; - tinyTicksMissed = Score?.GetCountKatu() ?? 0; - misses = Score.Statistics[HitResult.Miss]; + fruitsHit = Score.Statistics.GetOrDefault(HitResult.Perfect); + ticksHit = Score.Statistics.GetOrDefault(HitResult.LargeTickHit); + tinyTicksHit = Score.Statistics.GetOrDefault(HitResult.SmallTickHit); + tinyTicksMissed = Score.Statistics.GetOrDefault(HitResult.SmallTickMiss); + misses = Score.Statistics.GetOrDefault(HitResult.Miss); // Don't count scores made with supposedly unranked mods if (mods.Any(m => !m.Ranked)) diff --git a/osu.Game.Rulesets.Mania/Difficulty/ManiaPerformanceCalculator.cs b/osu.Game.Rulesets.Mania/Difficulty/ManiaPerformanceCalculator.cs index 3f7a2baedd..91383c5548 100644 --- a/osu.Game.Rulesets.Mania/Difficulty/ManiaPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Mania/Difficulty/ManiaPerformanceCalculator.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using osu.Framework.Extensions; using osu.Game.Beatmaps; using osu.Game.Rulesets.Difficulty; using osu.Game.Rulesets.Mods; @@ -37,12 +38,12 @@ namespace osu.Game.Rulesets.Mania.Difficulty { mods = Score.Mods; scaledScore = Score.TotalScore; - countPerfect = Score.Statistics[HitResult.Perfect]; - countGreat = Score.Statistics[HitResult.Great]; - countGood = Score.Statistics[HitResult.Good]; - countOk = Score.Statistics[HitResult.Ok]; - countMeh = Score.Statistics[HitResult.Meh]; - countMiss = Score.Statistics[HitResult.Miss]; + countPerfect = Score.Statistics.GetOrDefault(HitResult.Perfect); + countGreat = Score.Statistics.GetOrDefault(HitResult.Great); + countGood = Score.Statistics.GetOrDefault(HitResult.Good); + countOk = Score.Statistics.GetOrDefault(HitResult.Ok); + countMeh = Score.Statistics.GetOrDefault(HitResult.Meh); + countMiss = Score.Statistics.GetOrDefault(HitResult.Miss); if (mods.Any(m => !m.Ranked)) return 0; diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs index ce8ecf02ac..4022b554f4 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using osu.Framework.Extensions; using osu.Game.Beatmaps; using osu.Game.Rulesets.Difficulty; using osu.Game.Rulesets.Mods; @@ -45,10 +46,10 @@ namespace osu.Game.Rulesets.Osu.Difficulty mods = Score.Mods; accuracy = Score.Accuracy; scoreMaxCombo = Score.MaxCombo; - countGreat = Score.Statistics[HitResult.Great]; - countGood = Score.Statistics[HitResult.Good]; - countMeh = Score.Statistics[HitResult.Meh]; - countMiss = Score.Statistics[HitResult.Miss]; + countGreat = Score.Statistics.GetOrDefault(HitResult.Great); + countGood = Score.Statistics.GetOrDefault(HitResult.Good); + countMeh = Score.Statistics.GetOrDefault(HitResult.Meh); + countMiss = Score.Statistics.GetOrDefault(HitResult.Miss); // Don't count scores made with supposedly unranked mods if (mods.Any(m => !m.Ranked)) diff --git a/osu.Game.Rulesets.Taiko/Difficulty/TaikoPerformanceCalculator.cs b/osu.Game.Rulesets.Taiko/Difficulty/TaikoPerformanceCalculator.cs index 3a0fb64622..bc147b53ac 100644 --- a/osu.Game.Rulesets.Taiko/Difficulty/TaikoPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Taiko/Difficulty/TaikoPerformanceCalculator.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using osu.Framework.Extensions; using osu.Game.Beatmaps; using osu.Game.Rulesets.Difficulty; using osu.Game.Rulesets.Mods; @@ -31,10 +32,10 @@ namespace osu.Game.Rulesets.Taiko.Difficulty public override double Calculate(Dictionary categoryDifficulty = null) { mods = Score.Mods; - countGreat = Score.Statistics[HitResult.Great]; - countGood = Score.Statistics[HitResult.Good]; - countMeh = Score.Statistics[HitResult.Meh]; - countMiss = Score.Statistics[HitResult.Miss]; + countGreat = Score.Statistics.GetOrDefault(HitResult.Great); + countGood = Score.Statistics.GetOrDefault(HitResult.Good); + countMeh = Score.Statistics.GetOrDefault(HitResult.Meh); + countMiss = Score.Statistics.GetOrDefault(HitResult.Miss); // Don't count scores made with supposedly unranked mods if (mods.Any(m => !m.Ranked)) From b43e9781566e45723dfe33ebc24fc8083edd0f96 Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Mon, 18 May 2020 17:44:56 +0800 Subject: [PATCH 185/213] Unify to use double in CatchPerformanceCalculator. --- .../Difficulty/CatchPerformanceCalculator.cs | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs b/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs index 2dc28fad35..2ee7cea645 100644 --- a/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs @@ -52,8 +52,8 @@ namespace osu.Game.Rulesets.Catch.Difficulty // Longer maps are worth more double lengthBonus = - 0.95f + 0.3f * Math.Min(1.0f, numTotalHits / 2500.0f) + - (numTotalHits > 2500 ? (float)Math.Log10(numTotalHits / 2500.0f) * 0.475f : 0.0f); + 0.95 + 0.3 * Math.Min(1.0, numTotalHits / 2500.0) + + (numTotalHits > 2500 ? Math.Log10(numTotalHits / 2500.0) * 0.475 : 0.0); // Longer maps are worth more value *= lengthBonus; @@ -65,14 +65,14 @@ namespace osu.Game.Rulesets.Catch.Difficulty if (Attributes.MaxCombo > 0) value *= Math.Min(Math.Pow(Score.MaxCombo, 0.8) / Math.Pow(Attributes.MaxCombo, 0.8), 1.0); - float approachRate = (float)Attributes.ApproachRate; - float approachRateFactor = 1.0f; - if (approachRate > 9.0f) - approachRateFactor += 0.1f * (approachRate - 9.0f); // 10% for each AR above 9 - if (approachRate > 10.0f) - approachRateFactor += 0.1f * (approachRate - 10.0f); // Additional 10% at AR 11, 30% total - else if (approachRate < 8.0f) - approachRateFactor += 0.025f * (8.0f - approachRate); // 2.5% for each AR below 8 + double approachRate = Attributes.ApproachRate; + double approachRateFactor = 1.0; + if (approachRate > 9.0) + approachRateFactor += 0.1 * (approachRate - 9.0); // 10% for each AR above 9 + if (approachRate > 10.0) + approachRateFactor += 0.1 * (approachRate - 10.0); // Additional 10% at AR 11, 30% total + else if (approachRate < 8.0) + approachRateFactor += 0.025 * (8.0 - approachRate); // 2.5% for each AR below 8 value *= approachRateFactor; @@ -80,10 +80,10 @@ namespace osu.Game.Rulesets.Catch.Difficulty { value *= 1.05 + 0.075 * (10.0 - Math.Min(10.0, Attributes.ApproachRate)); // 7.5% for each AR below 10 // Hiddens gives almost nothing on max approach rate, and more the lower it is - if (approachRate <= 10.0f) - value *= 1.05f + 0.075f * (10.0f - approachRate); // 7.5% for each AR below 10 - else if (approachRate > 10.0f) - value *= 1.01f + 0.04f * (11.0f - Math.Min(11.0f, approachRate)); // 5% at AR 10, 1% at AR 11 + if (approachRate <= 10.0) + value *= 1.05 + 0.075 * (10.0 - approachRate); // 7.5% for each AR below 10 + else if (approachRate > 10.0) + value *= 1.01 + 0.04 * (11.0 - Math.Min(11.0, approachRate)); // 5% at AR 10, 1% at AR 11 } if (mods.Any(m => m is ModFlashlight)) @@ -100,7 +100,7 @@ namespace osu.Game.Rulesets.Catch.Difficulty return value; } - private float accuracy() => totalHits() == 0 ? 0 : Math.Clamp((float)totalSuccessfulHits() / totalHits(), 0, 1); + private double accuracy() => totalHits() == 0 ? 0 : Math.Clamp((double)totalSuccessfulHits() / totalHits(), 0, 1); private int totalHits() => tinyTicksHit + ticksHit + fruitsHit + misses + tinyTicksMissed; private int totalSuccessfulHits() => tinyTicksHit + ticksHit + fruitsHit; private int totalComboHits() => misses + ticksHit + fruitsHit; From 373aae06109b845c078dcaaacab8deb5406094b3 Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Mon, 18 May 2020 17:45:32 +0800 Subject: [PATCH 186/213] Use int for total hits in OsuPerformanceCalculator. --- osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs index 4022b554f4..c8c6db06d7 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs @@ -204,7 +204,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty return accuracyValue; } - private double totalHits => countGreat + countGood + countMeh + countMiss; - private double totalSuccessfulHits => countGreat + countGood + countMeh; + private int totalHits => countGreat + countGood + countMeh + countMiss; + private int totalSuccessfulHits => countGreat + countGood + countMeh; } } From c20902f249883ab6a16ca95d3096463767cc015a Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Mon, 18 May 2020 18:22:03 +0800 Subject: [PATCH 187/213] Fix double in accuracy calculation in OsuPerformanceCalculator. --- osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs index c8c6db06d7..6f4c0f9cfa 100644 --- a/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs +++ b/osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs @@ -181,7 +181,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty int amountHitObjectsWithAccuracy = countHitCircles; if (amountHitObjectsWithAccuracy > 0) - betterAccuracyPercentage = ((countGreat - (totalHits - amountHitObjectsWithAccuracy)) * 6 + countGood * 2 + countMeh) / (amountHitObjectsWithAccuracy * 6); + betterAccuracyPercentage = ((countGreat - (totalHits - amountHitObjectsWithAccuracy)) * 6 + countGood * 2 + countMeh) / (double)(amountHitObjectsWithAccuracy * 6); else betterAccuracyPercentage = 0; From 49ee05c3c4dbd8b8d9d6f673fb887665b384b592 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Mon, 18 May 2020 19:37:49 +0900 Subject: [PATCH 188/213] Make into CompositeDrawable --- osu.Game/Screens/Play/SkipOverlay.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Play/SkipOverlay.cs b/osu.Game/Screens/Play/SkipOverlay.cs index fec35df4e3..b123757ded 100644 --- a/osu.Game/Screens/Play/SkipOverlay.cs +++ b/osu.Game/Screens/Play/SkipOverlay.cs @@ -24,7 +24,7 @@ using osu.Game.Input.Bindings; namespace osu.Game.Screens.Play { - public class SkipOverlay : Container, IKeyBindingHandler + public class SkipOverlay : CompositeDrawable, IKeyBindingHandler { private readonly double startTime; @@ -62,7 +62,7 @@ namespace osu.Game.Screens.Play [BackgroundDependencyLoader(true)] private void load(OsuColour colours) { - Child = buttonContainer = new ButtonContainer + InternalChild = buttonContainer = new ButtonContainer { RelativeSizeAxes = Axes.Both, Child = fadeContainer = new FadeContainer From 2fd25f5ee6776fd9c17f3ae25a1e00a6d435ba42 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Mon, 18 May 2020 19:54:26 +0900 Subject: [PATCH 189/213] Fix tests --- osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs index e093542d1e..12ada088a1 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs @@ -105,7 +105,7 @@ namespace osu.Game.Tests.Visual.Gameplay { AddStep("move mouse", () => InputManager.MoveMouseTo(skip.ScreenSpaceDrawQuad.Centre)); AddStep("button down", () => InputManager.PressButton(MouseButton.Left)); - AddUntilStep("wait for overlay disappear", () => !skip.Child.IsPresent); + AddUntilStep("wait for overlay disappear", () => !skip.OverlayContents.IsPresent); AddAssert("ensure button didn't disappear", () => skip.OverlayContents.Alpha > 0); AddStep("button up", () => InputManager.ReleaseButton(MouseButton.Left)); checkRequestCount(0); @@ -121,7 +121,7 @@ namespace osu.Game.Tests.Visual.Gameplay { } - public Drawable OverlayContents => (Child as Container)?.Child; + public Drawable OverlayContents => (InternalChild as Container)?.Child; } } } From f98ee2718552e1663318e7466d70cc51e983264d Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Mon, 18 May 2020 20:01:00 +0900 Subject: [PATCH 190/213] Fix referencing wrong child --- .../Visual/Gameplay/TestSceneSkipOverlay.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs index 12ada088a1..7ed7a116b4 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneSkipOverlay.cs @@ -56,19 +56,19 @@ namespace osu.Game.Tests.Visual.Gameplay public void TestFadeOnIdle() { AddStep("move mouse", () => InputManager.MoveMouseTo(Vector2.Zero)); - AddUntilStep("fully visible", () => skip.OverlayContents.Alpha == 1); - AddUntilStep("wait for fade", () => skip.OverlayContents.Alpha < 1); + AddUntilStep("fully visible", () => skip.FadingContent.Alpha == 1); + AddUntilStep("wait for fade", () => skip.FadingContent.Alpha < 1); AddStep("move mouse", () => InputManager.MoveMouseTo(skip.ScreenSpaceDrawQuad.Centre)); - AddUntilStep("fully visible", () => skip.OverlayContents.Alpha == 1); - AddUntilStep("wait for fade", () => skip.OverlayContents.Alpha < 1); + AddUntilStep("fully visible", () => skip.FadingContent.Alpha == 1); + AddUntilStep("wait for fade", () => skip.FadingContent.Alpha < 1); } [Test] public void TestClickableAfterFade() { AddStep("move mouse", () => InputManager.MoveMouseTo(skip.ScreenSpaceDrawQuad.Centre)); - AddUntilStep("wait for fade", () => skip.OverlayContents.Alpha == 0); + AddUntilStep("wait for fade", () => skip.FadingContent.Alpha == 0); AddStep("click", () => InputManager.Click(MouseButton.Left)); checkRequestCount(1); } @@ -105,8 +105,8 @@ namespace osu.Game.Tests.Visual.Gameplay { AddStep("move mouse", () => InputManager.MoveMouseTo(skip.ScreenSpaceDrawQuad.Centre)); AddStep("button down", () => InputManager.PressButton(MouseButton.Left)); - AddUntilStep("wait for overlay disappear", () => !skip.OverlayContents.IsPresent); - AddAssert("ensure button didn't disappear", () => skip.OverlayContents.Alpha > 0); + AddUntilStep("wait for overlay disappear", () => !skip.OverlayContent.IsPresent); + AddAssert("ensure button didn't disappear", () => skip.FadingContent.Alpha > 0); AddStep("button up", () => InputManager.ReleaseButton(MouseButton.Left)); checkRequestCount(0); } @@ -121,7 +121,9 @@ namespace osu.Game.Tests.Visual.Gameplay { } - public Drawable OverlayContents => (InternalChild as Container)?.Child; + public Drawable OverlayContent => InternalChild; + + public Drawable FadingContent => (OverlayContent as Container)?.Child; } } } From 013683c23ba1d02bf348ae6288d56b253adc9385 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 19 May 2020 00:17:13 +0900 Subject: [PATCH 191/213] Fix taiko rim markers incorrectly playing as whistle samples --- osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs index d332f90cd4..1e1f9ae09b 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs @@ -52,7 +52,12 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables protected override IEnumerable GetSamples() { // normal and claps are always handled by the drum (see DrumSampleMapping). - var samples = HitObject.Samples.Where(s => s.Name != HitSampleInfo.HIT_NORMAL && s.Name != HitSampleInfo.HIT_CLAP); + // in addition, whistles are excluded as they are an alternative rim marker. + + var samples = HitObject.Samples.Where(s => + s.Name != HitSampleInfo.HIT_NORMAL + && s.Name != HitSampleInfo.HIT_CLAP + && s.Name != HitSampleInfo.HIT_WHISTLE); if (HitObject.Type == HitType.Rim && HitObject.IsStrong) { From 9415e45aea5afb899edc21bd866accb0923c82eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Mon, 18 May 2020 20:11:19 +0200 Subject: [PATCH 192/213] Add overlay layer to enumeration type --- osu.Game/Beatmaps/Legacy/LegacyStoryLayer.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game/Beatmaps/Legacy/LegacyStoryLayer.cs b/osu.Game/Beatmaps/Legacy/LegacyStoryLayer.cs index 48e8bdbb76..ea23c49c4a 100644 --- a/osu.Game/Beatmaps/Legacy/LegacyStoryLayer.cs +++ b/osu.Game/Beatmaps/Legacy/LegacyStoryLayer.cs @@ -9,6 +9,7 @@ namespace osu.Game.Beatmaps.Legacy Fail = 1, Pass = 2, Foreground = 3, - Video = 4 + Overlay = 4, + Video = 5 } } From e9710b6f836578850646db5e78e06f8985066a35 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 19 May 2020 09:43:05 +0900 Subject: [PATCH 193/213] Add taiko type conversion test coverage --- .../TaikoBeatmapConversionTest.cs | 3 +- ...-type-conversions-expected-conversion.json | 116 ++++++++++++++++++ .../Beatmaps/sample-to-type-conversions.osu | 62 ++++++++++ 3 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions-expected-conversion.json create mode 100644 osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions.osu diff --git a/osu.Game.Rulesets.Taiko.Tests/TaikoBeatmapConversionTest.cs b/osu.Game.Rulesets.Taiko.Tests/TaikoBeatmapConversionTest.cs index 8c26ca70ac..f7729138ff 100644 --- a/osu.Game.Rulesets.Taiko.Tests/TaikoBeatmapConversionTest.cs +++ b/osu.Game.Rulesets.Taiko.Tests/TaikoBeatmapConversionTest.cs @@ -19,6 +19,7 @@ namespace osu.Game.Rulesets.Taiko.Tests [NonParallelizable] [TestCase("basic")] [TestCase("slider-generating-drumroll")] + [TestCase("sample-to-type-conversions")] public void Test(string name) => base.Test(name); protected override IEnumerable CreateConvertValue(HitObject hitObject) @@ -41,7 +42,7 @@ namespace osu.Game.Rulesets.Taiko.Tests public struct ConvertValue : IEquatable { /// - /// A sane value to account for osu!stable using ints everwhere. + /// A sane value to account for osu!stable using ints everywhere. /// private const float conversion_lenience = 2; diff --git a/osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions-expected-conversion.json b/osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions-expected-conversion.json new file mode 100644 index 0000000000..47ca6aef68 --- /dev/null +++ b/osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions-expected-conversion.json @@ -0,0 +1,116 @@ +{ + "Mappings": [ + { + "StartTime": 110.0, + "Objects": [ + { + "StartTime": 110.0, + "EndTime": 110.0, + "IsRim": false, + "IsCentre": true, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": false + } + ] + }, + { + "StartTime": 538.0, + "Objects": [ + { + "StartTime": 538.0, + "EndTime": 538.0, + "IsRim": true, + "IsCentre": false, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": false + } + ] + }, + { + "StartTime": 967.0, + "Objects": [ + { + "StartTime": 967.0, + "EndTime": 967.0, + "IsRim": true, + "IsCentre": false, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": false + } + ] + }, + { + "StartTime": 1395.0, + "Objects": [ + { + "StartTime": 1395.0, + "EndTime": 1395.0, + "IsRim": true, + "IsCentre": false, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": false + } + ] + }, + { + "StartTime": 1824.0, + "Objects": [ + { + "StartTime": 1824.0, + "EndTime": 1824.0, + "IsRim": false, + "IsCentre": true, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": true + } + ] + }, + { + "StartTime": 2252.0, + "Objects": [ + { + "StartTime": 2252.0, + "EndTime": 2252.0, + "IsRim": true, + "IsCentre": false, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": true + } + ] + }, + { + "StartTime": 2681.0, + "Objects": [ + { + "StartTime": 2681.0, + "EndTime": 2681.0, + "IsRim": true, + "IsCentre": false, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": true + } + ] + }, + { + "StartTime": 3110.0, + "Objects": [ + { + "StartTime": 3110.0, + "EndTime": 3110.0, + "IsRim": true, + "IsCentre": false, + "IsDrumRoll": false, + "IsSwell": false, + "IsStrong": true + } + ] + } + ] +} \ No newline at end of file diff --git a/osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions.osu b/osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions.osu new file mode 100644 index 0000000000..a3537e7149 --- /dev/null +++ b/osu.Game.Rulesets.Taiko/Resources/Testing/Beatmaps/sample-to-type-conversions.osu @@ -0,0 +1,62 @@ +osu file format v14 + +[General] +AudioFilename: audio.mp3 +AudioLeadIn: 0 +PreviewTime: -1 +Countdown: 0 +SampleSet: Normal +StackLeniency: 0.5 +Mode: 1 +LetterboxInBreaks: 0 +WidescreenStoryboard: 1 + +[Editor] +Bookmarks: 110,13824,54967,82395,109824 +DistanceSpacing: 0.1 +BeatDivisor: 4 +GridSize: 32 +TimelineZoom: 3.099999 + +[Metadata] +Title:test +TitleUnicode:test +Artist:sample conversion +ArtistUnicode:sample conversion +Creator:banchobot +Version:sample test +Source: +Tags: +BeatmapID:0 +BeatmapSetID:-1 + +[Difficulty] +HPDrainRate:6 +CircleSize:2 +OverallDifficulty:6 +ApproachRate:7 +SliderMultiplier:1.4 +SliderTickRate:4 + +[Events] +//Background and Video events +//Break Periods +//Storyboard Layer 0 (Background) +//Storyboard Layer 1 (Fail) +//Storyboard Layer 2 (Pass) +//Storyboard Layer 3 (Foreground) +//Storyboard Layer 4 (Overlay) +//Storyboard Sound Samples + +[TimingPoints] +110,428.571428571429,4,1,0,100,1,0 + +[HitObjects] +256,192,110,5,0,0:0:0:0: +256,192,538,1,8,0:0:0:0: +256,192,967,1,2,0:0:0:0: +256,192,1395,1,10,0:0:0:0: +256,192,1824,1,4,0:0:0:0: +256,192,2252,1,12,0:0:0:0: +256,192,2681,1,6,0:0:0:0: +256,192,3110,1,14,0:0:0:0: From 3ee698cfa02bf3cb7d24f37761a75b211810b702 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Tue, 19 May 2020 12:39:09 +0900 Subject: [PATCH 194/213] Fix being able to press enter to create matches --- .../Screens/Multi/Match/Components/MatchSettingsOverlay.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs b/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs index 5d68de9ce6..54c4f8f7c7 100644 --- a/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs +++ b/osu.Game/Screens/Multi/Match/Components/MatchSettingsOverlay.cs @@ -133,7 +133,6 @@ namespace osu.Game.Screens.Multi.Match.Components { RelativeSizeAxes = Axes.X, TabbableContentContainer = this, - OnCommit = (sender, text) => apply(), }, }, new Section("Duration") @@ -196,7 +195,6 @@ namespace osu.Game.Screens.Multi.Match.Components RelativeSizeAxes = Axes.X, TabbableContentContainer = this, ReadOnly = true, - OnCommit = (sender, text) => apply() }, }, new Section("Password (optional)") @@ -207,7 +205,6 @@ namespace osu.Game.Screens.Multi.Match.Components RelativeSizeAxes = Axes.X, TabbableContentContainer = this, ReadOnly = true, - OnCommit = (sender, text) => apply() }, }, }, @@ -331,6 +328,9 @@ namespace osu.Game.Screens.Multi.Match.Components private void apply() { + if (!ApplyButton.Enabled.Value) + return; + hideError(); RoomName.Value = NameField.Text; From 6d3ca4ec43c2963f9fee14be4508fafe10287c73 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Tue, 19 May 2020 13:16:46 +0900 Subject: [PATCH 195/213] Fix failing tests --- .../Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs index d2e8c22c39..34c6940552 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMatchSettingsOverlay.cs @@ -69,6 +69,7 @@ namespace osu.Game.Tests.Visual.Multiplayer { settings.NameField.Current.Value = expected_name; settings.DurationField.Current.Value = expectedDuration; + Room.Playlist.Add(new PlaylistItem { Beatmap = { Value = CreateBeatmap(Ruleset.Value).BeatmapInfo } }); roomManager.CreateRequested = r => { @@ -89,6 +90,9 @@ namespace osu.Game.Tests.Visual.Multiplayer AddStep("setup", () => { + Room.Name.Value = "Test Room"; + Room.Playlist.Add(new PlaylistItem { Beatmap = { Value = CreateBeatmap(Ruleset.Value).BeatmapInfo } }); + fail = true; roomManager.CreateRequested = _ => !fail; }); From 052ad79fc6e012b3901214bf4005a263a2fa16e3 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 19 May 2020 16:44:22 +0900 Subject: [PATCH 196/213] Convert dangerous events to IBindables --- .../Beatmaps/IO/ImportBeatmapTest.cs | 4 +- osu.Game/Beatmaps/BeatmapManager.cs | 13 ++-- osu.Game/Database/ArchiveModelManager.cs | 13 ++-- .../DownloadableArchiveModelManager.cs | 15 +++-- osu.Game/Database/IModelDownloader.cs | 7 +- osu.Game/Database/IModelManager.cs | 7 +- osu.Game/Online/DownloadTrackingComposite.cs | 65 ++++++++++++------- osu.Game/OsuGameBase.cs | 13 +++- osu.Game/Overlays/MusicController.cs | 46 +++++++------ .../Overlays/Settings/Sections/SkinSection.cs | 30 +++++---- .../Multi/Match/Components/ReadyButton.cs | 50 +++++++------- .../Screens/Multi/Match/MatchSubScreen.cs | 26 ++++---- osu.Game/Screens/Select/BeatmapCarousel.cs | 49 +++++++++----- .../Screens/Select/Carousel/TopLocalRank.cs | 32 ++++----- .../Select/Leaderboards/BeatmapLeaderboard.cs | 15 ++--- osu.Game/Skinning/SkinManager.cs | 13 ++-- 16 files changed, 234 insertions(+), 164 deletions(-) diff --git a/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs b/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs index ba6f5fc85c..43fab186aa 100644 --- a/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs +++ b/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs @@ -156,8 +156,8 @@ namespace osu.Game.Tests.Beatmaps.IO var manager = osu.Dependencies.Get(); // ReSharper disable once AccessToModifiedClosure - manager.ItemAdded += _ => Interlocked.Increment(ref itemAddRemoveFireCount); - manager.ItemRemoved += _ => Interlocked.Increment(ref itemAddRemoveFireCount); + manager.ItemAdded.BindValueChanged(_ => Interlocked.Increment(ref itemAddRemoveFireCount)); + manager.ItemRemoved.BindValueChanged(_ => Interlocked.Increment(ref itemAddRemoveFireCount)); var imported = await LoadOszIntoOsu(osu); diff --git a/osu.Game/Beatmaps/BeatmapManager.cs b/osu.Game/Beatmaps/BeatmapManager.cs index 34ad1df6bc..7aaf0ca08d 100644 --- a/osu.Game/Beatmaps/BeatmapManager.cs +++ b/osu.Game/Beatmaps/BeatmapManager.cs @@ -12,6 +12,7 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using osu.Framework.Audio; using osu.Framework.Audio.Track; +using osu.Framework.Bindables; using osu.Framework.Extensions; using osu.Framework.Graphics.Textures; using osu.Framework.Lists; @@ -38,12 +39,16 @@ namespace osu.Game.Beatmaps /// /// Fired when a single difficulty has been hidden. /// - public event Action BeatmapHidden; + public IBindable> BeatmapHidden => beatmapHidden; + + private readonly Bindable> beatmapHidden = new Bindable>(); /// /// Fired when a single difficulty has been restored. /// - public event Action BeatmapRestored; + public IBindable> BeatmapRestored => beatmapRestored; + + private readonly Bindable> beatmapRestored = new Bindable>(); /// /// A default representation of a WorkingBeatmap to use when no beatmap is available. @@ -74,8 +79,8 @@ namespace osu.Game.Beatmaps DefaultBeatmap = defaultBeatmap; beatmaps = (BeatmapStore)ModelStore; - beatmaps.BeatmapHidden += b => BeatmapHidden?.Invoke(b); - beatmaps.BeatmapRestored += b => BeatmapRestored?.Invoke(b); + beatmaps.BeatmapHidden += b => beatmapHidden.Value = new WeakReference(b); + beatmaps.BeatmapRestored += b => beatmapRestored.Value = new WeakReference(b); onlineLookupQueue = new BeatmapOnlineLookupQueue(api, storage); exportStorage = storage.GetStorageForDirectory("exports"); diff --git a/osu.Game/Database/ArchiveModelManager.cs b/osu.Game/Database/ArchiveModelManager.cs index 839f9075e5..33b16cbaaf 100644 --- a/osu.Game/Database/ArchiveModelManager.cs +++ b/osu.Game/Database/ArchiveModelManager.cs @@ -11,6 +11,7 @@ using Humanizer; using JetBrains.Annotations; using Microsoft.EntityFrameworkCore; using osu.Framework; +using osu.Framework.Bindables; using osu.Framework.Extensions; using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Logging; @@ -56,13 +57,17 @@ namespace osu.Game.Database /// Fired when a new becomes available in the database. /// This is not guaranteed to run on the update thread. /// - public event Action ItemAdded; + public IBindable> ItemAdded => itemAdded; + + private readonly Bindable> itemAdded = new Bindable>(); /// /// Fired when a is removed from the database. /// This is not guaranteed to run on the update thread. /// - public event Action ItemRemoved; + public IBindable> ItemRemoved => itemRemoved; + + private readonly Bindable> itemRemoved = new Bindable>(); public virtual string[] HandledExtensions => new[] { ".zip" }; @@ -82,8 +87,8 @@ namespace osu.Game.Database ContextFactory = contextFactory; ModelStore = modelStore; - ModelStore.ItemAdded += item => handleEvent(() => ItemAdded?.Invoke(item)); - ModelStore.ItemRemoved += s => handleEvent(() => ItemRemoved?.Invoke(s)); + ModelStore.ItemAdded += item => handleEvent(() => itemAdded.Value = new WeakReference(item)); + ModelStore.ItemRemoved += item => handleEvent(() => itemRemoved.Value = new WeakReference(item)); Files = new FileStore(contextFactory, storage); diff --git a/osu.Game/Database/DownloadableArchiveModelManager.cs b/osu.Game/Database/DownloadableArchiveModelManager.cs index 1b90898c8d..8f469ca590 100644 --- a/osu.Game/Database/DownloadableArchiveModelManager.cs +++ b/osu.Game/Database/DownloadableArchiveModelManager.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using osu.Framework.Bindables; namespace osu.Game.Database { @@ -23,9 +24,13 @@ namespace osu.Game.Database where TModel : class, IHasFiles, IHasPrimaryKey, ISoftDelete, IEquatable where TFileModel : class, INamedFileInfo, new() { - public event Action> DownloadBegan; + public IBindable>> DownloadBegan => downloadBegan; - public event Action> DownloadFailed; + private readonly Bindable>> downloadBegan = new Bindable>>(); + + public IBindable>> DownloadFailed => downloadFailed; + + private readonly Bindable>> downloadFailed = new Bindable>>(); private readonly IAPIProvider api; @@ -81,7 +86,7 @@ namespace osu.Game.Database // for now a failed import will be marked as a failed download for simplicity. if (!imported.Any()) - DownloadFailed?.Invoke(request); + downloadFailed.Value = new WeakReference>(request); currentDownloads.Remove(request); }, TaskCreationOptions.LongRunning); @@ -100,14 +105,14 @@ namespace osu.Game.Database api.PerformAsync(request); - DownloadBegan?.Invoke(request); + downloadBegan.Value = new WeakReference>(request); return true; void triggerFailure(Exception error) { currentDownloads.Remove(request); - DownloadFailed?.Invoke(request); + downloadFailed.Value = new WeakReference>(request); notification.State = ProgressNotificationState.Cancelled; diff --git a/osu.Game/Database/IModelDownloader.cs b/osu.Game/Database/IModelDownloader.cs index 99aeb4eacf..0cb633280e 100644 --- a/osu.Game/Database/IModelDownloader.cs +++ b/osu.Game/Database/IModelDownloader.cs @@ -1,8 +1,9 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using osu.Game.Online.API; using System; +using osu.Game.Online.API; +using osu.Framework.Bindables; namespace osu.Game.Database { @@ -17,13 +18,13 @@ namespace osu.Game.Database /// Fired when a download begins. /// This is NOT run on the update thread and should be scheduled. /// - event Action> DownloadBegan; + IBindable>> DownloadBegan { get; } /// /// Fired when a download is interrupted, either due to user cancellation or failure. /// This is NOT run on the update thread and should be scheduled. /// - event Action> DownloadFailed; + IBindable>> DownloadFailed { get; } /// /// Checks whether a given is already available in the local store. diff --git a/osu.Game/Database/IModelManager.cs b/osu.Game/Database/IModelManager.cs index 1bdbbb48e6..852b385798 100644 --- a/osu.Game/Database/IModelManager.cs +++ b/osu.Game/Database/IModelManager.cs @@ -2,6 +2,7 @@ // See the LICENCE file in the repository root for full licence text. using System; +using osu.Framework.Bindables; namespace osu.Game.Database { @@ -9,11 +10,11 @@ namespace osu.Game.Database /// Represents a model manager that publishes events when s are added or removed. /// /// The model type. - public interface IModelManager + public interface IModelManager where TModel : class { - event Action ItemAdded; + IBindable> ItemAdded { get; } - event Action ItemRemoved; + IBindable> ItemRemoved { get; } } } diff --git a/osu.Game/Online/DownloadTrackingComposite.cs b/osu.Game/Online/DownloadTrackingComposite.cs index 0769be2998..47de7d75ed 100644 --- a/osu.Game/Online/DownloadTrackingComposite.cs +++ b/osu.Game/Online/DownloadTrackingComposite.cs @@ -34,6 +34,11 @@ namespace osu.Game.Online Model.Value = model; } + private IBindable> managerAdded; + private IBindable> managerRemoved; + private IBindable>> managerDownloadBegan; + private IBindable>> managerDownloadFailed; + [BackgroundDependencyLoader(true)] private void load() { @@ -47,23 +52,39 @@ namespace osu.Game.Online attachDownload(manager.GetExistingDownload(modelInfo.NewValue)); }, true); - manager.DownloadBegan += downloadBegan; - manager.DownloadFailed += downloadFailed; - manager.ItemAdded += itemAdded; - manager.ItemRemoved += itemRemoved; + managerDownloadBegan = manager.DownloadBegan.GetBoundCopy(); + managerDownloadBegan.BindValueChanged(downloadBegan); + managerDownloadFailed = manager.DownloadFailed.GetBoundCopy(); + managerDownloadFailed.BindValueChanged(downloadFailed); + managerAdded = manager.ItemAdded.GetBoundCopy(); + managerAdded.BindValueChanged(itemAdded); + managerRemoved = manager.ItemRemoved.GetBoundCopy(); + managerRemoved.BindValueChanged(itemRemoved); } - private void downloadBegan(ArchiveDownloadRequest request) => Schedule(() => + private void downloadBegan(ValueChangedEvent>> weakRequest) { - if (request.Model.Equals(Model.Value)) - attachDownload(request); - }); + if (weakRequest.NewValue.TryGetTarget(out var request)) + { + Schedule(() => + { + if (request.Model.Equals(Model.Value)) + attachDownload(request); + }); + } + } - private void downloadFailed(ArchiveDownloadRequest request) => Schedule(() => + private void downloadFailed(ValueChangedEvent>> weakRequest) { - if (request.Model.Equals(Model.Value)) - attachDownload(null); - }); + if (weakRequest.NewValue.TryGetTarget(out var request)) + { + Schedule(() => + { + if (request.Model.Equals(Model.Value)) + attachDownload(null); + }); + } + } private ArchiveDownloadRequest attachedRequest; @@ -107,9 +128,17 @@ namespace osu.Game.Online private void onRequestFailure(Exception e) => Schedule(() => attachDownload(null)); - private void itemAdded(TModel s) => setDownloadStateFromManager(s, DownloadState.LocallyAvailable); + private void itemAdded(ValueChangedEvent> weakItem) + { + if (weakItem.NewValue.TryGetTarget(out var item)) + setDownloadStateFromManager(item, DownloadState.LocallyAvailable); + } - private void itemRemoved(TModel s) => setDownloadStateFromManager(s, DownloadState.NotDownloaded); + private void itemRemoved(ValueChangedEvent> weakItem) + { + if (weakItem.NewValue.TryGetTarget(out var item)) + setDownloadStateFromManager(item, DownloadState.NotDownloaded); + } private void setDownloadStateFromManager(TModel s, DownloadState state) => Schedule(() => { @@ -125,14 +154,6 @@ namespace osu.Game.Online { base.Dispose(isDisposing); - if (manager != null) - { - manager.DownloadBegan -= downloadBegan; - manager.DownloadFailed -= downloadFailed; - manager.ItemAdded -= itemAdded; - manager.ItemRemoved -= itemRemoved; - } - State.UnbindAll(); attachDownload(null); diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs index 11a3834c71..c367c3b636 100644 --- a/osu.Game/OsuGameBase.cs +++ b/osu.Game/OsuGameBase.cs @@ -186,8 +186,17 @@ namespace osu.Game return ScoreManager.QueryScores(s => beatmapIds.Contains(s.Beatmap.ID)).ToList(); } - BeatmapManager.ItemRemoved += i => ScoreManager.Delete(getBeatmapScores(i), true); - BeatmapManager.ItemAdded += i => ScoreManager.Undelete(getBeatmapScores(i), true); + BeatmapManager.ItemRemoved.BindValueChanged(i => + { + if (i.NewValue.TryGetTarget(out var item)) + ScoreManager.Delete(getBeatmapScores(item), true); + }); + + BeatmapManager.ItemAdded.BindValueChanged(i => + { + if (i.NewValue.TryGetTarget(out var item)) + ScoreManager.Undelete(getBeatmapScores(item), true); + }); dependencies.Cache(KeyBindingStore = new KeyBindingStore(contextFactory, RulesetStore)); dependencies.Cache(SettingsStore = new SettingsStore(contextFactory)); diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs index ded641b262..35f3cb0e25 100644 --- a/osu.Game/Overlays/MusicController.cs +++ b/osu.Game/Overlays/MusicController.cs @@ -60,11 +60,16 @@ namespace osu.Game.Overlays [Resolved(canBeNull: true)] private OnScreenDisplay onScreenDisplay { get; set; } + private IBindable> managerAdded; + private IBindable> managerRemoved; + [BackgroundDependencyLoader] private void load() { - beatmaps.ItemAdded += handleBeatmapAdded; - beatmaps.ItemRemoved += handleBeatmapRemoved; + managerAdded = beatmaps.ItemAdded.GetBoundCopy(); + managerAdded.BindValueChanged(beatmapAdded); + managerRemoved = beatmaps.ItemRemoved.GetBoundCopy(); + managerRemoved.BindValueChanged(beatmapRemoved); beatmapSets.AddRange(beatmaps.GetAllUsableBeatmapSets(IncludedDetails.Minimal).OrderBy(_ => RNG.Next())); } @@ -93,16 +98,28 @@ namespace osu.Game.Overlays ///