Example #1
0
        private void attemptCatch(Fruit fruit)
        {
            fruit.X += catcher.X;
            fruit.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty
            {
                CircleSize = circleSize
            });

            foreach (var area in this.ChildrenOfType <CatcherArea>())
            {
                DrawableFruit drawable = new DrawableFruit(fruit);
                area.Add(drawable);

                Schedule(() =>
                {
                    bool caught = area.AttemptCatch(fruit);
                    area.OnNewResult(drawable, new JudgementResult(fruit, new CatchJudgement())
                    {
                        Type = caught ? HitResult.Great : HitResult.Miss
                    });

                    drawable.Expire();
                });
            }
        }
Example #2
0
        private void catchFruit(Fruit fruit, float x)
        {
            fruit.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty());
            var drawableFruit = new DrawableFruit(fruit)
            {
                X = x
            };
            var judgement = fruit.CreateJudgement();

            catcher.OnNewResult(drawableFruit, new CatchJudgementResult(fruit, judgement)
            {
                Type = judgement.MaxResult
            });
        }
Example #3
0
        public TestSceneFruitRandomness()
        {
            drawableFruit  = new DrawableFruit(new Fruit());
            drawableBanana = new DrawableBanana(new Banana());

            Add(new TestDrawableCatchHitObjectSpecimen(drawableFruit)
            {
                X = -200
            });
            Add(new TestDrawableCatchHitObjectSpecimen(drawableBanana));

            AddSliderStep("start time", 500, 600, 0, x =>
            {
                drawableFruit.HitObject.StartTime = drawableBanana.HitObject.StartTime = x;
            });
        }
Example #4
0
        private void catchFruit(Fruit fruit, bool miss = false)
        {
            this.ChildrenOfType <CatcherArea>().ForEach(area =>
            {
                DrawableFruit drawable = new DrawableFruit(fruit);
                area.Add(drawable);

                Schedule(() =>
                {
                    area.AttemptCatch(fruit);
                    area.OnResult(drawable, new JudgementResult(fruit, new CatchJudgement())
                    {
                        Type = miss ? HitResult.Miss : HitResult.Great
                    });

                    drawable.Expire();
                });
            });
        }
Example #5
0
        private void performJudgement(HitResult type, Judgement judgement = null)
        {
            var judgedObject = new DrawableFruit(new Fruit())
            {
                AccentColour = { Value = judgedObjectColour }
            };

            var result = new JudgementResult(judgedObject.HitObject, judgement ?? new Judgement())
            {
                Type = type
            };

            scoreProcessor.ApplyResult(result);

            foreach (var counter in CreatedDrawables.Cast <CatchComboDisplay>())
            {
                counter.OnNewResult(judgedObject, result);
            }
        }
Example #6
0
        private void attemptCatch(Fruit fruit)
        {
            fruit.X = fruit.OriginalX + catcher.X;
            fruit.ApplyDefaults(new ControlPointInfo(), beatmapDifficulty);

            foreach (var area in this.ChildrenOfType <CatcherArea>())
            {
                DrawableFruit drawable = new DrawableFruit(fruit);
                area.Add(drawable);

                Schedule(() =>
                {
                    area.OnNewResult(drawable, new CatchJudgementResult(fruit, new CatchJudgement())
                    {
                        Type = area.MovableCatcher.CanCatch(fruit) ? HitResult.Great : HitResult.Miss
                    });

                    drawable.Expire();
                });
            }
        }
Example #7
0
        private void checkHyperDashFruitColour(ISkin skin, Color4 expectedColour)
        {
            DrawableFruit drawableFruit = null;

            AddStep("create hyper-dash fruit", () =>
            {
                var fruit = new Fruit {
                    HyperDashTarget = new Banana()
                };
                fruit.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty());

                Child = setupSkinHierarchy(drawableFruit = new DrawableFruit(fruit)
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Scale  = new Vector2(4f),
                }, skin);
            });

            AddAssert("hyper-dash colour is correct", () => checkLegacyFruitHyperDashColour(drawableFruit, expectedColour));
        }
Example #8
0
 private bool checkLegacyFruitHyperDashColour(DrawableFruit fruit, Color4 expectedColour) =>
 fruit.ChildrenOfType <SkinnableDrawable>().First().Drawable.ChildrenOfType <Sprite>().Any(c => c.Colour == expectedColour);