diff --git a/osu.Game.Rulesets.Catch/Objects/Drawable/DrawableBanana.cs b/osu.Game.Rulesets.Catch/Objects/Drawable/DrawableBanana.cs index 5afdb14888..4b4e381efd 100644 --- a/osu.Game.Rulesets.Catch/Objects/Drawable/DrawableBanana.cs +++ b/osu.Game.Rulesets.Catch/Objects/Drawable/DrawableBanana.cs @@ -1,6 +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 osu.Framework.Bindables; +using osu.Framework.Utils; +using osuTK.Graphics; + namespace osu.Game.Rulesets.Catch.Objects.Drawable { public class DrawableBanana : DrawableFruit @@ -9,5 +13,35 @@ public DrawableBanana(Banana h) : base(h) { } + + protected override void LoadComplete() + { + base.LoadComplete(); + + AccentColour.BindValueChanged(accentChanged, true); + } + + private Color4? colour; + + private void accentChanged(ValueChangedEvent obj) + { + // override any external colour changes with banananana + AccentColour.Value = (colour ??= getBananaColour()); + } + + private Color4 getBananaColour() + { + switch (RNG.Next(0, 3)) + { + default: + return new Color4(255, 240, 0, 255); + + case 1: + return new Color4(255, 192, 0, 255); + + case 2: + return new Color4(214, 221, 28, 255); + } + } } } diff --git a/osu.Game.Rulesets.Catch/Objects/Drawable/FruitPiece.cs b/osu.Game.Rulesets.Catch/Objects/Drawable/FruitPiece.cs index 0898c90bc8..24f558db78 100644 --- a/osu.Game.Rulesets.Catch/Objects/Drawable/FruitPiece.cs +++ b/osu.Game.Rulesets.Catch/Objects/Drawable/FruitPiece.cs @@ -7,7 +7,6 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; -using osu.Framework.Utils; using osu.Game.Rulesets.Catch.Objects.Drawable.Pieces; using osu.Game.Rulesets.Objects.Drawables; using osuTK; @@ -250,8 +249,6 @@ private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation represe case FruitVisualRepresentation.Banana: - Color4 bananaColour = getBananaColour(); - return new Container { RelativeSizeAxes = Axes.Both, @@ -259,13 +256,13 @@ private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation represe { new Pulp { - AccentColour = { Value = bananaColour }, + AccentColour = { BindTarget = accentColour }, Size = new Vector2(small_pulp), Y = -0.3f }, new Pulp { - AccentColour = { Value = bananaColour }, + AccentColour = { BindTarget = accentColour }, Size = new Vector2(large_pulp_4 * 0.8f, large_pulp_4 * 2.5f), Y = 0.05f, }, @@ -273,20 +270,5 @@ private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation represe }; } } - - private Color4 getBananaColour() - { - switch (RNG.Next(0, 3)) - { - default: - return new Color4(255, 240, 0, 255); - - case 1: - return new Color4(255, 192, 0, 255); - - case 2: - return new Color4(214, 221, 28, 255); - } - } } }