// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using NUnit.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Beatmaps; using osu.Game.Online.API; using osu.Game.Online.API.Requests; using osu.Game.Online.API.Requests.Responses; using osu.Game.Rulesets; using osu.Game.Tournament.Components; namespace osu.Game.Tournament.Tests.Components { public class TestSceneTournamentModDisplay : TournamentTestScene { [Resolved] private IAPIProvider api { get; set; } [Resolved] private RulesetStore rulesets { get; set; } private FillFlowContainer fillFlow; private BeatmapInfo beatmap; [BackgroundDependencyLoader] private void load() { var req = new GetBeatmapRequest(new BeatmapInfo { OnlineBeatmapID = 490154 }); req.Success += success; api.Queue(req); Add(fillFlow = new FillFlowContainer { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Direction = FillDirection.Full, Spacing = new osuTK.Vector2(10) }); } [Test] public void TestModDisplay() { AddUntilStep("beatmap is available", () => beatmap != null); AddStep("add maps with available mods for ruleset", () => displayForRuleset(Ladder.Ruleset.Value.ID ?? 0)); } private void displayForRuleset(int rulesetId) { fillFlow.Clear(); var mods = rulesets.GetRuleset(rulesetId).CreateInstance().GetAllMods(); foreach (var mod in mods) { fillFlow.Add(new TournamentBeatmapPanel(beatmap, mod.Acronym)); } } private void success(APIBeatmap apiBeatmap) => beatmap = apiBeatmap.ToBeatmap(rulesets); } }