Beispiel #1
0
        protected override void CheckForJudgements(bool userTriggered, double timeOffset)
        {
            if (Time.Current < HitObject.StartTime)
            {
                return;
            }

            if (Progress >= 1 && !Disc.Complete)
            {
                Disc.Complete = true;

                const float duration = 200;

                Disc.FadeAccent(completeColour, duration);

                Background.FadeAccent(completeColour, duration);
                Background.FadeOut(duration);

                circle.FadeColour(completeColour, duration);
                glow.FadeColour(completeColour, duration);
            }

            if (!userTriggered && Time.Current >= Spinner.EndTime)
            {
                if (Progress >= 1)
                {
                    AddJudgement(new OsuJudgement {
                        Result = HitResult.Great
                    });
                }
                else if (Progress > .9)
                {
                    AddJudgement(new OsuJudgement {
                        Result = HitResult.Good
                    });
                }
                else if (Progress > .75)
                {
                    AddJudgement(new OsuJudgement {
                        Result = HitResult.Meh
                    });
                }
                else if (Time.Current >= Spinner.EndTime)
                {
                    AddJudgement(new OsuJudgement {
                        Result = HitResult.Miss
                    });
                }
            }
        }
Beispiel #2
0
        protected override void CheckJudgement(bool userTriggered)
        {
            if (Time.Current < HitObject.StartTime)
            {
                return;
            }

            if (Progress >= 1 && !disc.Complete)
            {
                disc.Complete = true;

                const float duration = 200;

                disc.FadeAccent(completeColour, duration);

                background.FadeAccent(completeColour, duration);
                background.FadeOut(duration);

                circle.FadeColour(completeColour, duration);
                glow.FadeColour(completeColour, duration);
            }

            if (!userTriggered && Time.Current >= spinner.EndTime)
            {
                if (Progress >= 1)
                {
                    Judgement.Score  = OsuScoreResult.Hit300;
                    Judgement.Result = HitResult.Hit;
                }
                else if (Progress > .9)
                {
                    Judgement.Score  = OsuScoreResult.Hit100;
                    Judgement.Result = HitResult.Hit;
                }
                else if (Progress > .75)
                {
                    Judgement.Score  = OsuScoreResult.Hit50;
                    Judgement.Result = HitResult.Hit;
                }
                else
                {
                    Judgement.Score = OsuScoreResult.Miss;
                    if (Time.Current >= spinner.EndTime)
                    {
                        Judgement.Result = HitResult.Miss;
                    }
                }
            }
        }
Beispiel #3
0
        protected override void CheckForResult(bool userTriggered, double timeOffset)
        {
            if (Time.Current < HitObject.StartTime)
            {
                return;
            }

            if (Progress >= 1 && !Disc.Complete)
            {
                Disc.Complete = true;

                const float duration = 200;

                Disc.FadeAccent(completeColour, duration);

                Background.FadeAccent(completeColour, duration);
                Background.FadeOut(duration);

                circle.FadeColour(completeColour, duration);
                glow.FadeColour(completeColour, duration);
            }

            if (userTriggered || Time.Current < Spinner.EndTime)
            {
                return;
            }

            ApplyResult(r =>
            {
                if (Progress >= 1)
                {
                    r.Type = HitResult.Great;
                }
                else if (Progress > .9)
                {
                    r.Type = HitResult.Good;
                }
                else if (Progress > .75)
                {
                    r.Type = HitResult.Meh;
                }
                else if (Time.Current >= Spinner.EndTime)
                {
                    r.Type = HitResult.Miss;
                }
            });
        }