예제 #1
0
        // Covers DX Straight 3-7
        public static SentakkiSlidePath GenerateStraightPattern(int end)
        {
            var controlPoints = new List <PathControlPoint> {
                new PathControlPoint(SentakkiExtensions.GetPositionAlongLane(SentakkiPlayfield.INTERSECTDISTANCE, 0), PathType.Linear),
                new PathControlPoint(getPositionInBetween(SentakkiExtensions.GetPositionAlongLane(SentakkiPlayfield.INTERSECTDISTANCE, 0), SentakkiExtensions.GetPositionAlongLane(SentakkiPlayfield.INTERSECTDISTANCE, end)), PathType.Linear),
                new PathControlPoint(SentakkiExtensions.GetPositionAlongLane(SentakkiPlayfield.INTERSECTDISTANCE, end), PathType.Linear),
            }.ToArray();

            return(new SentakkiSlidePath(controlPoints, end));
        }
예제 #2
0
        public void Apply(JudgementResult result, DrawableHitObject hitObject)
        {
            this.result = result.Type;
            judgementPiece.JudgementText.Text   = result.Type.GetDisplayNameForSentakkiResult().ToUpperInvariant();
            judgementPiece.JudgementText.Colour = result.Type.GetColorForSentakkiResult();

            if (result.HitObject.HitWindows is HitWindows.EmptyHitWindows || result.Type == HitResult.Miss || !detailedJudgements.Value)
            {
                timingPiece.Alpha = 0;
            }
            else
            {
                timingPiece.Alpha = 1;
                if (result.TimeOffset >= 16)
                {
                    timingPiece.Text   = "LATE";
                    timingPiece.Colour = Color4.OrangeRed;
                }
                else if (result.TimeOffset <= -16)
                {
                    timingPiece.Text   = "EARLY";
                    timingPiece.Colour = Color4.GreenYellow;
                }
                else
                {
                    timingPiece.Text   = "CRITICAL";
                    timingPiece.Colour = Color4.Orange;
                }
            }
            LifetimeStart = result.TimeAbsolute;

            switch (hitObject)
            {
            case DrawableSentakkiLanedHitObject laned:
                Position = SentakkiExtensions.GetPositionAlongLane(240, laned.HitObject.Lane);
                Rotation = laned.HitObject.Lane.GetRotationForLane();
                break;

            default:
                Position = hitObject.Position;
                Rotation = 0;
                break;
            }
        }
        public void Apply(JudgementResult result, DrawableHitObject hitObject)
        {
            this.result = result.Type;
            judgementBody.JudgementText.Text   = result.Type.GetDescription().ToUpperInvariant();
            judgementBody.JudgementText.Colour = colours.ForHitResult(result.Type);

            LifetimeStart = result.TimeAbsolute;

            switch (hitObject)
            {
            case DrawableSentakkiLanedHitObject laned:
                Position = SentakkiExtensions.GetPositionAlongLane(240, laned.HitObject.Lane);
                Rotation = laned.HitObject.Lane.GetRotationForLane();
                break;

            default:
                Position = hitObject.Position;
                Rotation = 0;
                break;
            }
        }
예제 #4
0
        private void createHitObjects(int amount = 1)
        {
            for (int i = 0; i < amount; ++i)
            {
                var lane = RNG.Next(0, 8);
                var ho   = new Tap
                {
                    StartTime = Time.Current + 1000,
                    Lane      = lane
                };
                lineRenderer.AddHitObject(ho);

                Add(new Circle
                {
                    Size        = new Vector2(20),
                    Colour      = Color4.White,
                    LifetimeEnd = Time.Current + 1000,
                    Anchor      = Anchor.Centre,
                    Origin      = Anchor.Centre,
                    Position    = SentakkiExtensions.GetPositionAlongLane(300, lane)
                });
            }
        }
예제 #5
0
 public void Apply(SentakkiLanedHitObject lanedHitObject)
 {
     Position = SentakkiExtensions.GetPositionAlongLane(SentakkiPlayfield.INTERSECTDISTANCE, lanedHitObject.Lane);
     Colour   = lanedHitObject.NoteColour;
 }
예제 #6
0
 static Vector2 lanestart(int x) => SentakkiExtensions.GetPositionAlongLane(SentakkiPlayfield.INTERSECTDISTANCE, x);