Dan Balasescu
781cb9f18d
Move HasPassed/HasFailed into GameplayState
2022-02-01 14:46:24 +09:00
Dan Balasescu
a49a9ed0a0
Fix incorrect invoke
2022-01-31 17:19:04 +09:00
Salman Ahmed
3ec193d47e
Fix spectator clock container incorrectly starting catch-up clock
2022-01-30 01:46:10 +03:00
Salman Ahmed
4f4f60248f
Add failing test case
2022-01-30 01:46:10 +03:00
Jamie Taylor
493a970ed5
Remove unused AudioManager
2022-01-19 14:08:21 +09:00
Dean Herbert
671a3d47b8
Move bindable binding to LoadComplete
and remove unnecessary unbind
2022-01-15 21:20:27 +09:00
Dean Herbert
ea8e49c543
Reorder private/protected methods
2022-01-15 21:19:02 +09:00
Jamie Taylor
7e9b5dd150
Add audio feedback for host change in multiplayer
2022-01-14 18:11:00 +09:00
Dean Herbert
675bdd3213
Fix MultiplayerMatchSubScreen
mutating mods outside of bindable lease
...
As seen at https://github.com/peppy/osu/runs/4674501626?check_suite_focus=true .
2022-01-01 12:13:59 +09:00
Joseph Madamba
7de43e3aba
Fix most open compound words in identifiers being closed
2021-12-27 20:26:28 -08:00
Dan Balasescu
a43cc20ae2
Apply changes to GameplayCompleted from reviews
2021-12-24 21:58:20 +09:00
Dan Balasescu
c6854b37c8
Unbind event on disposal
2021-12-24 21:58:09 +09:00
Dan Balasescu
727335dcad
Improve reliability of exiting gameplay
2021-12-24 14:23:09 +09:00
Dan Balasescu
4ce61d4260
Directly bind to room updates
...
Currently doesn't really cause any difference, however it may in the
future if we decide the queueing algorithm shouldn't update PlaylistOrder
when an item has been played.
2021-12-21 18:40:29 +09:00
Dan Balasescu
a34d24fb20
Disallow expired items from showing delete button
...
This isn't possible in practice since expired items are removed from the
queue list, but this helps out in tests.
2021-12-21 18:37:42 +09:00
Dan Balasescu
51b7e920c0
Fix delete button being able to show on current item
2021-12-21 16:57:58 +09:00
Dean Herbert
d08b66a5ff
Also add logging to OnlinePlayScreen
2021-12-21 15:07:06 +09:00
Dean Herbert
ddadf3c4b5
Add logging of MultiplayerMatchSubScreen
exiting from room loss
2021-12-21 14:53:24 +09:00
Dean Herbert
6907a9a3cc
Name some screen stacks for better logging context
2021-12-20 18:24:14 +09:00
Dean Herbert
cd8dfac625
Merge pull request #16097 from smoogipoo/forego-resetting-spectate-state
...
Don't reset spectating state if spectator exited after gameplay finishes
2021-12-15 22:30:41 +09:00
Dean Herbert
33cf4ba7f6
Merge pull request #16075 from smoogipoo/prevent-idle-transition-during-load
...
Add AbortGameplay() to fix state transition race conditions during multiplayer load
2021-12-15 19:59:19 +09:00
Dean Herbert
9e82a3e79a
Merge branch 'master' into forego-resetting-spectate-state
2021-12-15 18:05:06 +09:00
Dan Balasescu
18d7b79207
Don't reset spectating state if gameplay is finished
2021-12-15 17:40:30 +09:00
Dan Balasescu
740a6f16c7
Fix exception when updating the room's visual playlist
2021-12-15 16:53:25 +09:00
Dan Balasescu
9ade8069a1
Rename to AbortGameplay() and handle additional states
2021-12-15 06:40:28 +09:00
Dan Balasescu
2f1dc91211
Add AbortLoad() method to abort gameplay loads
2021-12-14 11:30:42 +09:00
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
Dan Balasescu
d397524878
Merge pull request #15676 from peppy/multiplayer-incorrect-beatmap-error
...
Show better error message when selecting an unavailable beatmap during multiplayer room creation
2021-11-19 18:59:46 +09:00
Dan Balasescu
de0e8ad822
Merge branch 'master' into multi-queueing-modes
2021-11-19 18:58:15 +09:00
Dan Balasescu
4c8c34b43f
Use full name for round robin
2021-11-19 18:42:34 +09:00
Dan Balasescu
4e625b78e2
Update queue mode names
2021-11-19 18:28:43 +09:00
Dan Balasescu
12e1142b07
Rename settings section
2021-11-19 15:47:40 +09:00
Dean Herbert
0c289bf8e5
Remove pointless namespace
2021-11-19 14:46:53 +09:00
Dean Herbert
284e554cbf
Only show user displayable portion of server errors when seleting a song in multiplayer
2021-11-19 13:58:03 +09:00
Dean Herbert
c901a4fd7e
Show better error message when selecting an unavailable beatmap during multiplayer room creation
2021-11-19 13:28:42 +09:00
Dan Balasescu
29d0d5badf
Rename QueueModes -> QueueMode
2021-11-16 14:53:10 +09:00
Dan Balasescu
459e819a5d
Update todo
2021-11-16 00:50:23 +09:00
Dan Balasescu
d27edb3a25
Fix another potential crash from async load
2021-11-16 00:31:46 +09:00
Dan Balasescu
8e014ca17a
Reverse in-match playlist
2021-11-16 00:31:46 +09:00
Dan Balasescu
eb983ed548
Fix potential crash from playlist updating during async load
2021-11-16 00:02:38 +09:00
Dan Balasescu
f743a3647f
Rename APIPlaylistItem -> MultiplayerPlaylistItem
2021-11-15 23:14:27 +09:00
Dan Balasescu
07a7b4bcdc
Merge branch 'master' into multi-queueing-modes
2021-11-11 22:19:30 +09:00
Bartłomiej Dach
9664b9a97c
Fix being able to switch own team by clicking other players' team indicators
2021-11-11 09:01:50 +01:00
Dan Balasescu
aad4b8ff80
Fix ready button remaining enabled for expired items
2021-11-10 18:42:46 +09:00
Dan Balasescu
02efe24e39
Fix checksum not passed to AddPlaylistItem
2021-11-10 18:36:55 +09:00
Dan Balasescu
c7381b4df0
Fix host check
...
Although the underlying issue is that the host user is not populated.
Not sure whether this should be fixed at all.
2021-11-10 18:36:22 +09:00
Dean Herbert
328c72c358
Fix TeamDisplay
not showing after changing to team versus
2021-11-10 13:44:31 +09:00
Dean Herbert
52c740b377
Add failing test showing team display display failure
2021-11-10 13:44:31 +09:00
smoogipoo
3db199292f
Fix queue mode not passed from room to settings overlay
2021-11-01 18:52:57 +09:00
smoogipoo
e667ef4eea
Add basic tests
2021-10-29 15:44:48 +09:00
smoogipoo
f076b72fbe
Merge branch 'master' into multi-queueing-modes
2021-10-29 10:48:16 +09:00