public void TestModOverlap() { AddStep("add dummy mods", () => { MultiplayerClient.ChangeUserMods(new Mod[] { new OsuModNoFail(), new OsuModDoubleTime() }); }); AddStep("add user with mods", () => { MultiplayerClient.AddUser(new APIUser { Id = 0, Username = "******", RulesetsStatistics = new Dictionary <string, UserStatistics> { { Ruleset.Value.ShortName, new UserStatistics { GlobalRank = RNG.Next(1, 100000), } } }, CoverUrl = @"https://osu.ppy.sh/images/headers/profile-covers/c3.jpg", }); MultiplayerClient.ChangeUserMods(0, new Mod[] { new OsuModHardRock(), new OsuModDoubleTime() }); }); AddStep("set 0 ready", () => MultiplayerClient.ChangeState(MultiplayerUserState.Ready)); AddStep("set 1 spectate", () => MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Spectating)); // Have to set back to idle due to status priority. AddStep("set 0 no map, 1 ready", () => { MultiplayerClient.ChangeState(MultiplayerUserState.Idle); MultiplayerClient.ChangeBeatmapAvailability(BeatmapAvailability.NotDownloaded()); MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Ready); }); AddStep("set 0 downloading", () => MultiplayerClient.ChangeBeatmapAvailability(BeatmapAvailability.Downloading(0))); AddStep("set 0 spectate", () => MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Spectating)); AddStep("make both default", () => { MultiplayerClient.ChangeBeatmapAvailability(BeatmapAvailability.LocallyAvailable()); MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Idle); MultiplayerClient.ChangeState(MultiplayerUserState.Idle); }); }
public void TestTaikoOnlyMod() { AddStep("add playlist item", () => { SelectedRoom.Value.Playlist.Add(new PlaylistItem(new TestBeatmap(new TaikoRuleset().RulesetInfo).BeatmapInfo) { RulesetID = new TaikoRuleset().RulesetInfo.OnlineID, AllowedMods = new[] { new APIMod(new TaikoModSwap()) } }); }); ClickButtonWhenEnabled <MultiplayerMatchSettingsOverlay.CreateOrUpdateButton>(); AddUntilStep("wait for join", () => RoomJoined); AddStep("select swap mod", () => MultiplayerClient.ChangeUserMods(API.LocalUser.Value.OnlineID, new[] { new TaikoModSwap() })); AddUntilStep("participant panel has mod", () => this.ChildrenOfType <ParticipantPanel>().Any(p => p.ChildrenOfType <ModIcon>().Any(m => m.Mod is TaikoModSwap))); }
public void TestUserWithMods() { AddStep("add user", () => { MultiplayerClient.AddUser(new APIUser { Id = 0, Username = "******", RulesetsStatistics = new Dictionary <string, UserStatistics> { { Ruleset.Value.ShortName, new UserStatistics { GlobalRank = RNG.Next(1, 100000), } } }, CoverUrl = @"https://osu.ppy.sh/images/headers/profile-covers/c3.jpg", }); MultiplayerClient.ChangeUserMods(0, new Mod[] { new OsuModHardRock(), new OsuModDifficultyAdjust { ApproachRate = { Value = 1 } } }); }); for (var i = MultiplayerUserState.Idle; i < MultiplayerUserState.Results; i++) { var state = i; AddStep($"set state: {state}", () => MultiplayerClient.ChangeUserState(0, state)); } AddStep("set state: downloading", () => MultiplayerClient.ChangeUserBeatmapAvailability(0, BeatmapAvailability.Downloading(0))); AddStep("set state: locally available", () => MultiplayerClient.ChangeUserBeatmapAvailability(0, BeatmapAvailability.LocallyAvailable())); }