From 4eae5f87331ac25aa6a8e0b3ead84be786051157 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 19 Sep 2022 16:14:35 +0900 Subject: [PATCH] Add back outer fill for hitcircles (but not slider head circles) --- .../Skinning/Argon/ArgonMainCirclePiece.cs | 11 +++++++++-- .../Skinning/Argon/OsuArgonSkinTransformer.cs | 4 +++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Skinning/Argon/ArgonMainCirclePiece.cs b/osu.Game.Rulesets.Osu/Skinning/Argon/ArgonMainCirclePiece.cs index e4ed3d8fe8..9390c60977 100644 --- a/osu.Game.Rulesets.Osu/Skinning/Argon/ArgonMainCirclePiece.cs +++ b/osu.Game.Rulesets.Osu/Skinning/Argon/ArgonMainCirclePiece.cs @@ -27,6 +27,7 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon public const float OUTER_GRADIENT_SIZE = OsuHitObject.OBJECT_RADIUS * 2 - BORDER_THICKNESS * 3; + private readonly Circle outerFill; private readonly Circle outerGradient; private readonly Circle innerGradient; private readonly Circle innerFill; @@ -41,7 +42,7 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon [Resolved] private DrawableHitObject drawableObject { get; set; } = null!; - public ArgonMainCirclePiece() + public ArgonMainCirclePiece(bool withOuterFill) { Size = new Vector2(OsuHitObject.OBJECT_RADIUS * 2); @@ -52,6 +53,11 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon InternalChildren = new Drawable[] { + outerFill = new Circle // renders white outer border and dark fill + { + Size = Size, + Alpha = withOuterFill ? 1 : 0, + }, outerGradient = new Circle // renders the outer bright gradient { Size = new Vector2(OUTER_GRADIENT_SIZE), @@ -101,7 +107,7 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon accentColour.BindValueChanged(colour => { - innerFill.Colour = colour.NewValue.Darken(4); + outerFill.Colour = innerFill.Colour = colour.NewValue.Darken(4); outerGradient.Colour = ColourInfo.GradientVertical(colour.NewValue, colour.NewValue.Darken(0.1f)); innerGradient.Colour = ColourInfo.GradientVertical(colour.NewValue.Darken(0.5f), colour.NewValue.Darken(0.6f)); flash.Colour = colour.NewValue; @@ -134,6 +140,7 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon // The fill layers add too much noise during the explosion animation. // They will be hidden by the additive effects anyway. + outerFill.FadeOut(flash_in_duration, Easing.OutQuint); innerFill.FadeOut(flash_in_duration, Easing.OutQuint); // The inner-most gradient should actually be resizing, but is only visible for diff --git a/osu.Game.Rulesets.Osu/Skinning/Argon/OsuArgonSkinTransformer.cs b/osu.Game.Rulesets.Osu/Skinning/Argon/OsuArgonSkinTransformer.cs index 6815124056..8a1bf00877 100644 --- a/osu.Game.Rulesets.Osu/Skinning/Argon/OsuArgonSkinTransformer.cs +++ b/osu.Game.Rulesets.Osu/Skinning/Argon/OsuArgonSkinTransformer.cs @@ -28,8 +28,10 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon switch (osuComponent.Component) { case OsuSkinComponents.HitCircle: + return new ArgonMainCirclePiece(true); + case OsuSkinComponents.SliderHeadHitCircle: - return new ArgonMainCirclePiece(); + return new ArgonMainCirclePiece(false); case OsuSkinComponents.SliderBody: return new ArgonSliderBody();