mirror of
https://github.com/ppy/osu
synced 2025-01-11 00:29:30 +00:00
Add full colour application to kiai sprites
This commit is contained in:
parent
a87debab0f
commit
0d1046ed83
@ -1,6 +1,7 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. 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.Bindables;
|
||||
using osu.Framework.Extensions.ObjectExtensions;
|
||||
@ -66,17 +67,28 @@ namespace osu.Game.Rulesets.Osu.Skinning.Legacy
|
||||
// the conditional above handles the case where a sliderendcircle.png is retrieved from the skin, but sliderendcircleoverlay.png doesn't exist.
|
||||
// expected behaviour in this scenario is not showing the overlay, rather than using hitcircleoverlay.png.
|
||||
|
||||
Color4 objectColour = drawableOsuObject!.AccentColour.Value;
|
||||
int add = Math.Max(25, 300 - (int)(objectColour.R * 255) - (int)(objectColour.G * 255) - (int)(objectColour.B * 255));
|
||||
|
||||
Color4 finalColour = new Color4(
|
||||
(byte)Math.Min((byte)(objectColour.R * 255) + add, 255),
|
||||
(byte)Math.Min((byte)(objectColour.G * 255) + add, 255),
|
||||
(byte)Math.Min((byte)(objectColour.B * 255) + add, 255),
|
||||
255);
|
||||
|
||||
InternalChildren = new[]
|
||||
{
|
||||
CircleSprite = new LegacyKiaiFlashingDrawable(() => new Sprite { Texture = skin.GetTexture(circleName) })
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
Colour = finalColour,
|
||||
},
|
||||
OverlayLayer = new Container
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
Colour = finalColour,
|
||||
Child = OverlaySprite = new LegacyKiaiFlashingDrawable(() => skin.GetAnimation(@$"{circleName}overlay", true, true, frameLength: 1000 / 2d))
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
|
Loading…
Reference in New Issue
Block a user