// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Extensions; using osu.Game.Online.API; using osu.Game.Online.Multiplayer; using osu.Game.Online.Multiplayer.MatchTypes.RankedPlay; using osu.Game.Online.Rooms; using osu.Game.Rulesets.Osu; using osu.Game.Screens.OnlinePlay.Matchmaking.RankedPlay; namespace osu.Game.Tests.Visual.RankedPlay { public partial class TestSceneDiscardScreen : RankedPlayTestScene { private RankedPlayScreen screen = null!; public override void SetUpSteps() { base.SetUpSteps(); AddStep("join room", () => JoinRoom(CreateDefaultRoom(MatchType.RankedPlay))); WaitForJoined(); AddStep("add other user", () => MultiplayerClient.AddUser(new MultiplayerRoomUser(2))); AddStep("load screen", () => LoadScreen(screen = new RankedPlayScreen(MultiplayerClient.ClientRoom!))); AddUntilStep("screen loaded", () => screen.IsLoaded); BeatmapRequestHandler requestHandler = null!; AddStep("setup ruleset", () => requestHandler = new BeatmapRequestHandler(new OsuRuleset().RulesetInfo)); AddStep("setup request handler", () => ((DummyAPIAccess)API).HandleRequest = requestHandler.HandleRequest); AddStep("set pick state", () => MultiplayerClient.RankedPlayChangeStage(RankedPlayStage.CardDiscard).WaitSafely()); AddWaitStep("wait some", 5); AddStep("reveal cards", () => { for (int i = 0; i < 5; i++) { int i2 = i; MultiplayerClient.RankedPlayRevealCard(hand => hand[i2], new MultiplayerPlaylistItem { ID = i2, BeatmapID = requestHandler.Beatmaps[i2].OnlineID }).WaitSafely(); } }); } } }