Пример #1
0
        protected override void UpdateHitStateTransforms(ArmedState state)
        {
            base.UpdateHitStateTransforms(state);

            (CirclePiece.Drawable as IMainCirclePiece)?.Animate(state);

            switch (state)
            {
            case ArmedState.Idle:
                this.Delay(HitObject.TimePreempt).FadeOut();
                break;

            case ArmedState.Miss:
                this.FadeOut(animDuration);
                break;

            case ArmedState.Hit:
                this.FadeOut(animDuration, Easing.Out);

                const float final_scale = 1.5f;

                Arrow.ScaleTo(Scale * final_scale, animDuration, Easing.Out);
                CirclePiece.ScaleTo(Scale * final_scale, animDuration, Easing.Out);
                break;
            }
        }
Пример #2
0
 public SwellCircle(CirclePiece piece)
     : base(piece)
 {
     Piece.Add(new TextAwesome
     {
         Anchor   = Anchor.Centre,
         Origin   = Anchor.Centre,
         TextSize = SYMBOL_INNER_SIZE,
         Icon     = FontAwesome.fa_asterisk,
         Shadow   = false
     });
 }
Пример #3
0
        protected DrawableHit(Hit hit)
            : base(hit)
        {
            this.hit = hit;

            AddInternal(bodyContainer = new Container
            {
                Anchor = Anchor.Centre,
                Origin = Anchor.Centre,
            });

            Add(Circle      = CreateCirclePiece());
            Circle.KiaiMode = HitObject.Kiai;
        }
Пример #4
0
 public CentreHitCircle(CirclePiece piece)
     : base(piece)
 {
     Piece.Add(new CircularContainer
     {
         Anchor   = Anchor.Centre,
         Origin   = Anchor.Centre,
         Size     = new Vector2(SYMBOL_INNER_SIZE),
         Masking  = true,
         Children = new[]
         {
             new Box
             {
                 RelativeSizeAxes = Axes.Both
             }
         }
     });
 }
Пример #5
0
 public RimHitCircle(CirclePiece piece)
     : base(piece)
 {
     Piece.Add(new CircularContainer
     {
         Anchor          = Anchor.Centre,
         Origin          = Anchor.Centre,
         Size            = new Vector2(SYMBOL_SIZE),
         BorderThickness = SYMBOL_BORDER,
         BorderColour    = Color4.White,
         Masking         = true,
         Children        = new[]
         {
             new Box
             {
                 RelativeSizeAxes = Axes.Both,
                 Alpha            = 0,
                 AlwaysPresent    = true
             }
         }
     });
 }
Пример #6
0
        private void load(DrawableHitObject drawableHitObject)
        {
            spinner = (DrawableSpinner)drawableHitObject;

            InternalChildren = new Drawable[]
            {
                glow   = new GlowPiece(),
                circle = new CirclePiece
                {
                    Position = Vector2.Zero,
                    Anchor   = Anchor.Centre,
                },
                new RingPiece(),
                symbol = new SpriteIcon
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Size   = new Vector2(48),
                    Icon   = FontAwesome.Solid.Asterisk,
                    Shadow = false,
                },
            };
        }
Пример #7
0
        public DrawableDrumRoll(DrumRoll drumRoll)
            : base(drumRoll)
        {
            this.drumRoll = drumRoll;

            RelativeSizeAxes = Axes.X;
            Width            = (float)(drumRoll.Duration / drumRoll.PreEmpt);

            Add(circle      = CreateCirclePiece());
            circle.KiaiMode = HitObject.Kiai;

            foreach (var tick in drumRoll.Ticks)
            {
                var newTick = new DrawableDrumRollTick(tick)
                {
                    X = (float)((tick.StartTime - HitObject.StartTime) / drumRoll.Duration)
                };

                newTick.OnJudgement += onTickJudgement;

                AddNested(newTick);
                Add(newTick);
            }
        }
Пример #8
0
        public DrawableSpinner(Spinner s) : base(s)
        {
            AlwaysReceiveInput = true;

            Origin   = Anchor.Centre;
            Position = s.Position;

            RelativeSizeAxes = Axes.Both;

            // we are slightly bigger than our parent, to clip the top and bottom of the circle
            Height = 1.3f;

            spinner = s;

            Children = new Drawable[]
            {
                circleContainer = new Container
                {
                    AutoSizeAxes = Axes.Both,
                    Anchor       = Anchor.Centre,
                    Origin       = Anchor.Centre,
                    Children     = new Drawable[]
                    {
                        glow   = new GlowPiece(),
                        circle = new CirclePiece
                        {
                            Position = Vector2.Zero,
                            Anchor   = Anchor.Centre,
                        },
                        new RingPiece(),
                        symbol = new TextAwesome
                        {
                            Anchor             = Anchor.Centre,
                            Origin             = Anchor.Centre,
                            UseFullGlyphHeight = true,
                            TextSize           = 48,
                            Icon   = FontAwesome.fa_asterisk,
                            Shadow = false,
                        },
                    }
                },
                mainContainer = new AspectContainer
                {
                    Anchor           = Anchor.Centre,
                    Origin           = Anchor.Centre,
                    RelativeSizeAxes = Axes.Y,
                    Children         = new Drawable[]
                    {
                        background = new SpinnerBackground
                        {
                            Alpha  = 0.6f,
                            Anchor = Anchor.Centre,
                            Origin = Anchor.Centre,
                        },
                        disc = new SpinnerDisc(spinner)
                        {
                            Scale  = Vector2.Zero,
                            Anchor = Anchor.Centre,
                            Origin = Anchor.Centre,
                        },
                        circleContainer.CreateProxy(),
                        ticks = new SpinnerTicks
                        {
                            Anchor = Anchor.Centre,
                            Origin = Anchor.Centre,
                        },
                    }
                },
            };
        }
Пример #9
0
        public DrawableSpinner(Spinner s)
            : base(s)
        {
            Origin   = Anchor.Centre;
            Position = s.Position;

            RelativeSizeAxes = Axes.Both;

            // we are slightly bigger than our parent, to clip the top and bottom of the circle
            Height = 1.3f;

            Spinner = s;

            InternalChildren = new Drawable[]
            {
                circleContainer = new Container
                {
                    AutoSizeAxes = Axes.Both,
                    Anchor       = Anchor.Centre,
                    Origin       = Anchor.Centre,
                    Children     = new Drawable[]
                    {
                        glow   = new GlowPiece(),
                        circle = new CirclePiece
                        {
                            Position = Vector2.Zero,
                            Anchor   = Anchor.Centre,
                        },
                        new RingPiece(),
                        symbol = new SpriteIcon
                        {
                            Anchor = Anchor.Centre,
                            Origin = Anchor.Centre,
                            Size   = new Vector2(48),
                            Icon   = FontAwesome.Solid.Asterisk,
                            Shadow = false,
                        },
                    }
                },
                mainContainer = new AspectContainer
                {
                    Anchor           = Anchor.Centre,
                    Origin           = Anchor.Centre,
                    RelativeSizeAxes = Axes.Y,
                    Children         = new[]
                    {
                        Background = new SpinnerBackground
                        {
                            Alpha  = 0.6f,
                            Anchor = Anchor.Centre,
                            Origin = Anchor.Centre,
                        },
                        Disc = new SpinnerDisc(Spinner)
                        {
                            Scale  = Vector2.Zero,
                            Anchor = Anchor.Centre,
                            Origin = Anchor.Centre,
                        },
                        circleContainer.CreateProxy(),
                        Ticks = new SpinnerTicks
                        {
                            Anchor = Anchor.Centre,
                            Origin = Anchor.Centre,
                        },
                    }
                },
                SpmCounter = new SpinnerSpmCounter
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Y      = 120,
                    Alpha  = 0
                }
            };
        }
Пример #10
0
            protected BaseCircle(CirclePiece piece)
            {
                Piece = piece;

                Add(Piece);
            }
Пример #11
0
 public DrumRollCircle(CirclePiece piece)
     : base(piece)
 {
 }