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); }
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); }
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); }
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); }
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); }
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); }
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"); }