public void TestPlayingUserTracking() { int id = 2000; AddRepeatStep("add some users", () => MultiplayerClient.AddUser(new APIUser { Id = id++ }), 5); checkPlayingUserCount(0); changeState(3, MultiplayerUserState.WaitingForLoad); checkPlayingUserCount(3); changeState(3, MultiplayerUserState.Playing); checkPlayingUserCount(3); changeState(3, MultiplayerUserState.Results); checkPlayingUserCount(0); changeState(6, MultiplayerUserState.WaitingForLoad); checkPlayingUserCount(6); AddStep("another user left", () => MultiplayerClient.RemoveUser((MultiplayerClient.Room?.Users.Last().User).AsNonNull())); checkPlayingUserCount(5); AddStep("leave room", () => MultiplayerClient.LeaveRoom()); checkPlayingUserCount(0); }
public void TestPlayingUsersUpdatedOnJoin() { AddStep("leave room", () => MultiplayerClient.LeaveRoom()); AddUntilStep("wait for room part", () => !RoomJoined); AddStep("create room initially in gameplay", () => { var newRoom = new Room(); newRoom.CopyFrom(SelectedRoom.Value); newRoom.RoomID.Value = null; MultiplayerClient.RoomSetupAction = room => { room.State = MultiplayerRoomState.Playing; room.Users.Add(new MultiplayerRoomUser(PLAYER_1_ID) { User = new APIUser { Id = PLAYER_1_ID }, State = MultiplayerUserState.Playing }); }; RoomManager.CreateRoom(newRoom); }); AddUntilStep("wait for room join", () => RoomJoined); checkPlayingUserCount(1); }
void OnClickLeaveRoom() { _MultiplayerClient.LeaveRoom(); }