コード例 #1
0
        private void performTest(List <ReplayFrame> frames, Beatmap <ManiaHitObject> beatmap = null)
        {
            if (beatmap == null)
            {
                beatmap = new Beatmap <ManiaHitObject>
                {
                    HitObjects =
                    {
                        new HoldNote
                        {
                            StartTime = time_head,
                            Duration  = time_tail - time_head,
                            Column    = 0,
                        }
                    },
                    BeatmapInfo =
                    {
                        BaseDifficulty     = new BeatmapDifficulty {
                            SliderTickRate =            4
                        },
                        Ruleset            = new ManiaRuleset().RulesetInfo
                    },
                };

                beatmap.ControlPointInfo.Add(0, new EffectControlPoint {
                    ScrollSpeed = 0.1f
                });
            }

            AddStep("load player", () =>
            {
                Beatmap.Value = CreateWorkingBeatmap(beatmap);

                var p = new ScoreAccessibleReplayPlayer(new Score {
                    Replay = new Replay {
                        Frames = frames
                    }
                });

                p.OnLoadComplete += _ =>
                {
                    p.ScoreProcessor.NewJudgement += result =>
                    {
                        if (currentPlayer == p)
                        {
                            judgementResults.Add(result);
                        }
                    };
                };

                LoadScreen(currentPlayer = p);
                judgementResults         = new List <JudgementResult>();
            });

            AddUntilStep("Beatmap at 0", () => Beatmap.Value.Track.CurrentTime == 0);
            AddUntilStep("Wait until player is loaded", () => currentPlayer.IsCurrentScreen());

            AddUntilStep("Wait for completion", () => currentPlayer.ScoreProcessor?.HasCompleted.Value == true);
        }
コード例 #2
0
        private void performTest(List <OsuHitObject> hitObjects, List <ReplayFrame> frames)
        {
            AddStep("load player", () =>
            {
                Beatmap.Value = CreateWorkingBeatmap(new Beatmap <OsuHitObject>
                {
                    HitObjects  = hitObjects,
                    BeatmapInfo =
                    {
                        BaseDifficulty     = new BeatmapDifficulty {
                            SliderTickRate =            3
                        },
                        Ruleset            = new OsuRuleset().RulesetInfo
                    },
                });

                Beatmap.Value.Beatmap.ControlPointInfo.Add(0, new DifficultyControlPoint {
                    SpeedMultiplier = 0.1f
                });

                var p = new ScoreAccessibleReplayPlayer(new Score {
                    Replay = new Replay {
                        Frames = frames
                    }
                });

                p.OnLoadComplete += _ =>
                {
                    p.ScoreProcessor.NewJudgement += result =>
                    {
                        if (currentPlayer == p)
                        {
                            judgementResults.Add(result);
                        }
                    };
                    p.ScoreProcessor.AllJudged += () =>
                    {
                        if (currentPlayer == p)
                        {
                            allJudgedFired = true;
                        }
                    };
                };

                LoadScreen(currentPlayer = p);
                allJudgedFired           = false;
                judgementResults         = new List <JudgementResult>();
            });

            AddUntilStep("Beatmap at 0", () => Beatmap.Value.Track.CurrentTime == 0);
            AddUntilStep("Wait until player is loaded", () => currentPlayer.IsCurrentScreen());
            AddUntilStep("Wait for all judged", () => allJudgedFired);
        }
コード例 #3
0
        private void performTest(List <ManiaHitObject> hitObjects, List <ReplayFrame> frames)
        {
            AddStep("load player", () =>
            {
                Beatmap.Value = CreateWorkingBeatmap(new ManiaBeatmap(new StageDefinition {
                    Columns = 4
                })
                {
                    HitObjects  = hitObjects,
                    BeatmapInfo =
                    {
                        Ruleset = new ManiaRuleset().RulesetInfo
                    },
                });

                Beatmap.Value.Beatmap.ControlPointInfo.Add(0, new DifficultyControlPoint {
                    SpeedMultiplier = 0.1f
                });

                var p = new ScoreAccessibleReplayPlayer(new Score {
                    Replay = new Replay {
                        Frames = frames
                    }
                });

                p.OnLoadComplete += _ =>
                {
                    p.ScoreProcessor.NewJudgement += result =>
                    {
                        if (currentPlayer == p)
                        {
                            judgementResults.Add(result);
                        }
                    };
                };

                LoadScreen(currentPlayer = p);
                judgementResults         = new List <JudgementResult>();
            });

            AddUntilStep("Beatmap at 0", () => Beatmap.Value.Track.CurrentTime == 0);
            AddUntilStep("Wait until player is loaded", () => currentPlayer.IsCurrentScreen());
            AddUntilStep("Wait for completion", () => currentPlayer.ScoreProcessor.HasCompleted.Value);
        }
コード例 #4
0
        private void performTest(List <OsuHitObject> hitObjects, List <ReplayFrame> frames)
        {
            AddStep("load player", () =>
            {
                Beatmap.Value = CreateWorkingBeatmap(new Beatmap <OsuHitObject>
                {
                    HitObjects = hitObjects,
                    Difficulty = new BeatmapDifficulty {
                        SliderTickRate = 3
                    },
                    BeatmapInfo =
                    {
                        Ruleset = new OsuRuleset().RulesetInfo
                    },
                });

                SelectedMods.Value = new[] { new OsuModClassic() };

                var p = new ScoreAccessibleReplayPlayer(new Score {
                    Replay = new Replay {
                        Frames = frames
                    }
                });

                p.OnLoadComplete += _ =>
                {
                    p.ScoreProcessor.NewJudgement += result =>
                    {
                        if (currentPlayer == p)
                        {
                            judgementResults.Add(result);
                        }
                    };
                };

                LoadScreen(currentPlayer = p);
                judgementResults         = new List <JudgementResult>();
            });

            AddUntilStep("Beatmap at 0", () => Beatmap.Value.Track.CurrentTime == 0);
            AddUntilStep("Wait until player is loaded", () => currentPlayer.IsCurrentScreen());
            AddUntilStep("Wait for completion", () => currentPlayer.ScoreProcessor.HasCompleted.Value);
        }
コード例 #5
0
        private void performTest(List <ReplayFrame> frames, Beatmap <ManiaHitObject> beatmap = null)
        {
            if (beatmap == null)
            {
                beatmap = new Beatmap <ManiaHitObject>
                {
                    HitObjects =
                    {
                        new HoldNote
                        {
                            StartTime = time_head,
                            Duration  = time_tail - time_head,
                            Column    = 0,
                        }
                    },
                    BeatmapInfo =
                    {
                        BaseDifficulty     = new BeatmapDifficulty {
                            SliderTickRate =            4
                        },
                        Ruleset            = new ManiaRuleset().RulesetInfo
                    },
                };

                beatmap.ControlPointInfo.Add(0, new DifficultyControlPoint {
                    SpeedMultiplier = 0.1f
                });
            }

            AddStep("load player", () =>
            {
                Beatmap.Value = CreateWorkingBeatmap(beatmap);

                var p = new ScoreAccessibleReplayPlayer(new Score {
                    Replay = new Replay {
                        Frames = frames
                    }
                });

                p.OnLoadComplete += _ =>
                {
                    p.ScoreProcessor.NewJudgement += result =>
                    {
                        if (currentPlayer == p)
                        {
                            judgementResults.Add(result);
                        }
                    };
                };

                LoadScreen(currentPlayer = p);
                judgementResults         = new List <JudgementResult>();
            });

            AddUntilStep("Beatmap at 0", () => Beatmap.Value.Track.CurrentTime == 0);
            AddUntilStep("Wait until player is loaded", () => currentPlayer.IsCurrentScreen());

            AddUntilStep("wait for head", () => currentPlayer.GameplayClockContainer.GameplayClock.CurrentTime >= time_head);
            AddAssert("head is visible",
                      () => currentPlayer.ChildrenOfType <DrawableHoldNote>()
                      .Single(note => note.HitObject == beatmap.HitObjects[0])
                      .Head
                      .Alpha == 1);

            AddUntilStep("Wait for completion", () => currentPlayer.ScoreProcessor.HasCompleted.Value);
        }
コード例 #6
0
        private void performTest(List <ReplayFrame> frames)
        {
            AddStep("load player", () =>
            {
                Beatmap.Value = new TestWorkingBeatmap(new Beatmap <OsuHitObject>
                {
                    HitObjects =
                    {
                        new Slider
                        {
                            StartTime = time_slider_start,
                            Position  = new Vector2(0, 0),
                            Path      = new SliderPath(PathType.PerfectCurve, new[]
                            {
                                Vector2.Zero,
                                new Vector2(25, 0),
                            }, 25),
                        }
                    },
                    ControlPointInfo =
                    {
                        DifficultyPoints                         = { new DifficultyControlPoint {
                                                                         SpeedMultiplier = 0.1f
                                                                     } }
                    },
                    BeatmapInfo =
                    {
                        BaseDifficulty     = new BeatmapDifficulty {
                            SliderTickRate =            3
                        },
                        Ruleset            = new OsuRuleset().RulesetInfo
                    },
                }, Clock);

                var p = new ScoreAccessibleReplayPlayer(new Score {
                    Replay = new Replay {
                        Frames = frames
                    }
                });

                p.OnLoadComplete += _ =>
                {
                    p.ScoreProcessor.NewJudgement += result =>
                    {
                        if (currentPlayer == p)
                        {
                            judgementResults.Add(result);
                        }
                    };
                    p.ScoreProcessor.AllJudged += () =>
                    {
                        if (currentPlayer == p)
                        {
                            allJudgedFired = true;
                        }
                    };
                };

                LoadScreen(currentPlayer = p);
                allJudgedFired           = false;
                judgementResults         = new List <JudgementResult>();
            });

            AddUntilStep("Beatmap at 0", () => Beatmap.Value.Track.CurrentTime == 0);
            AddUntilStep("Wait until player is loaded", () => currentPlayer.IsCurrentScreen());
            AddUntilStep("Wait for all judged", () => allJudgedFired);
        }
コード例 #7
0
        private void performTest(List <ReplayFrame> frames)
        {
            // Empty frame to be added as a workaround for first frame behavior.
            // If an input exists on the first frame, the input would apply to the entire intro lead-in
            // Likely requires some discussion regarding how first frame inputs should be handled.
            frames.Insert(0, new OsuReplayFrame());

            AddStep("load player", () =>
            {
                Beatmap.Value = new TestWorkingBeatmap(new Beatmap <OsuHitObject>
                {
                    HitObjects =
                    {
                        new Slider
                        {
                            StartTime = time_slider_start,
                            Position  = new Vector2(0, 0),
                            Path      = new SliderPath(PathType.PerfectCurve, new[]
                            {
                                Vector2.Zero,
                                new Vector2(25, 0),
                            }, 25),
                        }
                    },
                    ControlPointInfo =
                    {
                        DifficultyPoints                         = { new DifficultyControlPoint {
                                                                         SpeedMultiplier = 0.1f
                                                                     } }
                    },
                    BeatmapInfo =
                    {
                        BaseDifficulty     = new BeatmapDifficulty {
                            SliderTickRate =            3
                        },
                        Ruleset            = new OsuRuleset().RulesetInfo
                    },
                }, Clock);

                var p = new ScoreAccessibleReplayPlayer(new Score {
                    Replay = new Replay {
                        Frames = frames
                    }
                })
                {
                    AllowPause   = false,
                    AllowLeadIn  = false,
                    AllowResults = false
                };

                p.OnLoadComplete += _ =>
                {
                    p.ScoreProcessor.NewJudgement += result =>
                    {
                        if (currentPlayer == p)
                        {
                            judgementResults.Add(result);
                        }
                    };
                    p.ScoreProcessor.AllJudged += () =>
                    {
                        if (currentPlayer == p)
                        {
                            allJudgedFired = true;
                        }
                    };
                };

                LoadScreen(currentPlayer = p);
                allJudgedFired           = false;
                judgementResults         = new List <JudgementResult>();
            });

            AddUntilStep(() => Beatmap.Value.Track.CurrentTime == 0, "Beatmap at 0");
            AddUntilStep(() => currentPlayer.IsCurrentScreen(), "Wait until player is loaded");
            AddUntilStep(() => allJudgedFired, "Wait for all judged");
        }