mirror of
https://github.com/ppy/osu.git
synced 2024-11-11 10:07:52 +08:00
Add argon drum roll ticks
This commit is contained in:
parent
aa61eb8f4b
commit
e2046791c2
@ -26,7 +26,7 @@ namespace osu.Game.Rulesets.Taiko.Skinning.Argon
|
||||
Origin = Anchor.Centre,
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Icon = FontAwesome.Solid.AngleLeft,
|
||||
Size = new Vector2(20 / 70f),
|
||||
Size = new Vector2(ICON_SIZE),
|
||||
Scale = new Vector2(0.8f, 1)
|
||||
});
|
||||
}
|
||||
|
@ -16,6 +16,8 @@ namespace osu.Game.Rulesets.Taiko.Skinning.Argon
|
||||
{
|
||||
public abstract class ArgonCirclePiece : BeatSyncedContainer
|
||||
{
|
||||
public const float ICON_SIZE = 20 / 70f;
|
||||
|
||||
private const double pre_beat_transition_time = 80;
|
||||
|
||||
private const float flash_opacity = 0.3f;
|
||||
|
@ -26,7 +26,7 @@ namespace osu.Game.Rulesets.Taiko.Skinning.Argon
|
||||
Origin = Anchor.Centre,
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Icon = FontAwesome.Solid.AngleLeft,
|
||||
Size = new Vector2(20 / 70f),
|
||||
Size = new Vector2(ICON_SIZE),
|
||||
Scale = new Vector2(0.8f, 1)
|
||||
});
|
||||
}
|
||||
|
68
osu.Game.Rulesets.Taiko/Skinning/Argon/ArgonTickPiece.cs
Normal file
68
osu.Game.Rulesets.Taiko/Skinning/Argon/ArgonTickPiece.cs
Normal file
@ -0,0 +1,68 @@
|
||||
// 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 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.Game.Rulesets.Objects.Drawables;
|
||||
using osu.Game.Rulesets.Taiko.Objects;
|
||||
using osu.Game.Rulesets.Taiko.Objects.Drawables;
|
||||
using osuTK;
|
||||
|
||||
namespace osu.Game.Rulesets.Taiko.Skinning.Argon
|
||||
{
|
||||
public class ArgonTickPiece : CompositeDrawable
|
||||
{
|
||||
private readonly Bindable<bool> isFirstTick = new Bindable<bool>();
|
||||
|
||||
public ArgonTickPiece()
|
||||
{
|
||||
const float tick_size = 1 / TaikoHitObject.DEFAULT_SIZE * ArgonCirclePiece.ICON_SIZE;
|
||||
|
||||
Anchor = Anchor.Centre;
|
||||
Origin = Anchor.Centre;
|
||||
|
||||
RelativeSizeAxes = Axes.Both;
|
||||
FillMode = FillMode.Fit;
|
||||
Size = new Vector2(tick_size);
|
||||
}
|
||||
|
||||
[Resolved]
|
||||
private DrawableHitObject drawableHitObject { get; set; } = null!;
|
||||
|
||||
protected override void LoadComplete()
|
||||
{
|
||||
base.LoadComplete();
|
||||
|
||||
if (drawableHitObject is DrawableDrumRollTick drumRollTick)
|
||||
isFirstTick.BindTo(drumRollTick.IsFirstTick);
|
||||
|
||||
isFirstTick.BindValueChanged(first =>
|
||||
{
|
||||
if (first.NewValue)
|
||||
{
|
||||
InternalChild = new Circle
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
RelativeSizeAxes = Axes.Both
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalChild = new SpriteIcon
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Icon = FontAwesome.Solid.AngleLeft,
|
||||
Scale = new Vector2(0.8f, 1)
|
||||
};
|
||||
}
|
||||
}, true);
|
||||
}
|
||||
}
|
||||
}
|
@ -41,6 +41,9 @@ namespace osu.Game.Rulesets.Taiko.Skinning.Argon
|
||||
|
||||
case TaikoSkinComponents.DrumRollBody:
|
||||
return new ArgonElongatedCirclePiece();
|
||||
|
||||
case TaikoSkinComponents.DrumRollTick:
|
||||
return new ArgonTickPiece();
|
||||
}
|
||||
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user