Dan Balasescu
70045494ba
Re-simplify code by removing BeatmapManager event instead
2021-12-13 16:09:54 +09:00
Dan Balasescu
a6e77f172d
Add some comments
2021-12-12 16:30:37 +09:00
Dan Balasescu
d6c08fae48
Fix incorrect global beatmap with availability changes
2021-12-11 23:08:21 +09:00
Dan Balasescu
25b274c323
Fix starting gameplay too early after import
2021-12-11 22:47:50 +09:00
Dan Balasescu
6057037e35
Move playlist item beatmap population to MatchSubScreen
2021-12-10 20:08:59 +09:00
Dan Balasescu
de0f37b08d
Separate editing and adding playlist items
2021-12-10 15:26:48 +09:00
Dean Herbert
88670c3b01
Document OpenSongSelection
and mark null param
2021-12-10 14:14:22 +09:00
Dan Balasescu
671582a925
Allow host to enqeue items and items to be edited
2021-12-10 01:15:19 +09:00
Dan Balasescu
1a0945daba
Siplify condition, allow host to always remove items
2021-12-09 14:33:50 +09:00
Dan Balasescu
8398f86440
Don't consider expired items in visibility check
2021-12-09 04:02:16 +09:00
Dan Balasescu
c34c580ad4
Add client-side + interface implementation
2021-12-09 03:08:59 +09:00
Dan Balasescu
273042aa16
Add virtual method for creating different DrawablePlaylistItem types
2021-12-09 01:49:34 +09:00
Dan Balasescu
3be4d8b68d
Remove ctor params from DrawableRoomPlaylist/DrawablePlaylistItem
2021-12-09 01:04:56 +09:00
Dean Herbert
dea7f2308c
Fix participant panels potentially keeping a reference to an old user
...
If a user leave and then rejoins a multiplayer match while another user
is not at the lobby screen, there is a potential the `ParticipantPanel`
tracking the user will not correctly be recreated to reference the new
instance of the `MultiplayerUser`.
This happens because the `OnRoomUpdated` call is scheduled, which means
it is not running in the background, coupled with the local logic that
relies on `IEquatable(MultiplayerRoomUser)` (which in turn falls back to
a UserID comparison).
Changing this to a reference comparison is the easiest way to resolve
this. Whether we change the `IEquatable` implementation is up for
discussion.
Closes https://github.com/ppy/osu/issues/15970 .
2021-12-07 17:24:04 +09:00
Dean Herbert
a76cfbea21
Add test coverage of incorrect beatmap being used in multiplayer when match started from song select
2021-12-06 14:03:33 +09:00
Dean Herbert
e1897f9998
Don't debounce MultiplayerRoomComposite
events
...
This avoids accidental usage which could result in data being lost or
ignored (as only the last `user` in a single frame would arrive).
This was added specifically to debounce sample playback, but given that
it's only debouncing on a single frame (hardly noticeable) I'm not going
to add back support for that yet. It should be handled by sample
playback concurrency or something more local to the usage.
2021-12-05 01:38:39 +09:00
Bartłomiej Dach
38702beabf
Merge branch 'master' into i-ruleset-store
2021-12-04 15:05:39 +01:00
Bartłomiej Dach
53a6ef22ce
Add null check to resolve inspection
2021-12-04 14:55:35 +01:00
Dean Herbert
517a344bcc
Merge branch 'master' into new-multiplayer-playlist
2021-12-04 13:16:09 +09:00
Dan Balasescu
d5803e541b
Give playlist items a PlayedAt date
2021-12-03 20:25:51 +09:00
Dean Herbert
1eed2436e6
Clean up unused resolved properties
2021-12-03 18:49:49 +09:00
Dean Herbert
e75e209053
Cache and consume IRulesetStore
where feasible
2021-12-03 18:16:01 +09:00
Dan Balasescu
487a71312e
Split out code so base methods aren't called
2021-12-03 16:40:20 +09:00
Dan Balasescu
0a1304b92a
Remove gameplay_order, use existing playlist_order
2021-12-03 15:45:13 +09:00
Dan Balasescu
b75a5b778e
Update history list to also sort by gameplay order
2021-12-03 15:05:56 +09:00
Dan Balasescu
933fd49cff
Fix missed callbacks due to AddOnce() schedules
2021-12-02 22:33:14 +09:00
Dan Balasescu
9760a2b087
Update MultiplayerQueueList to take advantage of GameplayOrder
2021-12-02 22:33:14 +09:00
Dean Herbert
512818648f
Add some more breathing room between tab control and queue content
2021-12-02 16:56:30 +09:00
Dan Balasescu
e87b0003fb
Fix queue mode not being bound to in all cases
2021-12-01 21:35:23 +09:00
Dan Balasescu
ad35f3434b
Fix queue list not considering expired items
2021-12-01 21:35:23 +09:00
Dan Balasescu
e2f289eeff
Xmldocs
2021-12-01 21:35:23 +09:00
Dan Balasescu
93a7726f4a
Remove now-unused parameter
2021-12-01 21:35:23 +09:00
Dan Balasescu
d70355237d
Fix selected item not bound
2021-12-01 21:35:23 +09:00
Dan Balasescu
c3dfe10a8a
Add new list to match subscreen
2021-12-01 21:35:22 +09:00
Dan Balasescu
1152c4e8e9
Fix tests
2021-12-01 21:35:22 +09:00
Dan Balasescu
7847ce6253
Redesign with tab control
2021-12-01 21:35:22 +09:00
Dan Balasescu
95050d6597
Extract class to file
2021-12-01 21:35:22 +09:00
Dan Balasescu
fc8c8685b8
Add playlist queue tests
2021-12-01 21:35:22 +09:00
Dan Balasescu
e0ca1af9b8
Remove ctor params
2021-12-01 21:35:22 +09:00
Dan Balasescu
bfd2dc28c8
Rename QueueList -> MultiplayerQueueList
2021-12-01 21:35:22 +09:00
Dan Balasescu
6b198ce112
Document simulation
2021-12-01 21:35:22 +09:00
Dan Balasescu
9806c75743
Implement better round robin algorithm
2021-12-01 21:35:12 +09:00
Dan Balasescu
68bb49fc1e
Add QueueList tests
2021-12-01 21:33:48 +09:00
Dan Balasescu
0cb35e8b18
Separate out QueueList
2021-12-01 21:33:48 +09:00
Dan Balasescu
17bc0b51aa
Merge branch 'playlist-item-add-owner' into new-multiplayer-playlist
2021-12-01 21:33:48 +09:00
Dan Balasescu
942e48ffbd
Merge branch 'master' into new-multiplayer-playlist
2021-12-01 21:33:11 +09:00
Dan Balasescu
c38537a51a
Initial implementation of MultiplayerPlaylist
2021-12-01 21:32:56 +09:00
Dan Balasescu
e1445dcb05
Only show owner in match subscreen
2021-11-26 17:40:45 +09:00
Dan Balasescu
1f13669636
Don't poll while in room
...
Fixes timeout in `TestJoinRoomWithoutPassword`, because the 'server' returns
out-of-date data while the `MatchSubScreen` has possible not been entered
yet (and thus hasn't disabled polling itself yet).
Can be tested by adding a `Task.Delay(3000);` at the end of
the `MultiplayerClient.JoinRoom()` task.
2021-11-23 16:14:01 +09:00
Dan Balasescu
4b498c7bd6
Merge branch 'master' into multi-queueing-modes
2021-11-22 07:46:45 +09:00