Ejemplo n.º 1
0
        protected override void CheckJudgement(bool userTriggered)
        {
            if (userTriggered)
            {
                userHits++;

                var completion = (float)userHits / HitObject.RequiredHits;

                expandingRing.FadeTo(expandingRing.Alpha + MathHelper.Clamp(completion / 16, 0.1f, 0.6f), 50);
                using (expandingRing.BeginDelayedSequence(50))
                    expandingRing.FadeTo(completion / 8, 2000, EasingTypes.OutQuint);

                symbol.RotateTo((float)(completion * HitObject.Duration / 8), 4000, EasingTypes.OutQuint);

                expandingRing.ScaleTo(1f + Math.Min(target_ring_scale - 1f, (target_ring_scale - 1f) * completion * 1.3f), 260, EasingTypes.OutQuint);

                if (userHits == HitObject.RequiredHits)
                {
                    Judgement.Result      = HitResult.Hit;
                    Judgement.TaikoResult = TaikoHitResult.Great;
                }
            }
            else
            {
                if (Judgement.TimeOffset < 0)
                {
                    return;
                }

                //TODO: THIS IS SHIT AND CAN'T EXIST POST-TAIKO WORLD CUP
                if (userHits > HitObject.RequiredHits / 2)
                {
                    Judgement.Result      = HitResult.Hit;
                    Judgement.TaikoResult = TaikoHitResult.Good;
                }
                else
                {
                    Judgement.Result = HitResult.Miss;
                }
            }
        }