// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. #nullable disable using JetBrains.Annotations; using osu.Framework.Graphics; using osu.Framework.Input.Events; using osu.Game.Rulesets.Taiko.Skinning.Default; using osu.Game.Skinning; namespace osu.Game.Rulesets.Taiko.Objects.Drawables { public partial class DrawableSwellTick : DrawableTaikoHitObject { public override bool DisplayResult => false; private bool hit; public DrawableSwellTick() : this(null) { } public DrawableSwellTick([CanBeNull] SwellTick hitObject) : base(hitObject) { } protected override void UpdateInitialTransforms() => this.FadeOut(); public void TriggerResult(bool hit) { this.hit = hit; HitObject.StartTime = Time.Current; ApplyResult(static (r, hitObject) => { var swellTick = (DrawableSwellTick)hitObject; r.Type = swellTick.hit ? r.Judgement.MaxResult : r.Judgement.MinResult; }); } protected override void CheckForResult(bool userTriggered, double timeOffset) { } public override bool OnPressed(KeyBindingPressEvent e) => false; protected override SkinnableDrawable CreateMainPiece() => new SkinnableDrawable(new TaikoSkinComponentLookup(TaikoSkinComponents.DrumRollTick), _ => new TickPiece()); } }