Commit Graph

142 Commits

Author SHA1 Message Date
59622deb1f Add LoadAborted() event 2022-04-21 22:40:52 +09:00
08d250fe58 Rename MatchStarted() -> GameplayStarted() 2022-04-21 22:39:24 +09:00
c0ad91796d Fix gameplay start flow 2022-04-13 20:57:40 +09:00
2bb0d9e6d3 Expose required classes/properties for mocking 2022-04-13 17:02:33 +09:00
20eca9bf6a Refactor TestSceneRankRangePill to not depend on TestMultiplayerClient 2022-04-12 19:39:24 +09:00
34457b4742 Expose mocked members as virtual on Multiplayer and SpectatorClient 2022-04-11 19:04:15 +09:00
9ea6f9b1fe Remove some incorrectly-firing asserts 2022-04-08 21:44:44 +09:00
62f5409191 Merge pull request #17725 from peppy/multiplayer-hotifx
Avoid multiplayer crashes when events arrive in unexpected order
2022-04-08 20:23:37 +09:00
5c571996d8 Avoid multiplayer crashes when events arrive in unexpected order
Intended to be a temporary fix for
https://github.com/ppy/osu/issues/17713 while a more permanent solution
is established. A proper fix is actually quite simple, but updating the
test to work with it is... *slightly* more complicated.

This hotfix will mean that if a `UserJoined` event arrives during the
unobserved window during room join (of the local user), the local user
still won't see the joining user, but the game won't crash as a result.
2022-04-08 17:55:47 +09:00
6bb8243212 Fix potential assert failure due to Room access from disconnection event 2022-04-08 17:41:03 +09:00
933a722cfc Remove secondary null checks which cannot exist (were on wrong thread) 2022-04-08 14:56:04 +09:00
64c63fe93a Move null check in JoinRoom on to update thread 2022-04-08 14:52:56 +09:00
d50f41225f Rename scheduleAsync to runOnUpdateThreadAsync 2022-04-08 14:43:53 +09:00
9ba99ed57d Ensure all access to MultiplayerClient.Room is on the update thread
This was an implicit requirement until now, but not well documented
everywhere. Adding this makes it much easier to understand the
requirement (and probably safer).
2022-04-08 14:42:56 +09:00
f92a31cd39 Merge pull request #17402 from smoogipoo/multiplayer-auto-countdown
Add multiplayer auto-start countdown timer
2022-03-25 20:31:14 +09:00
0d88af19ae Fix local setting not being updated 2022-03-24 20:23:58 +09:00
e889d93441 Add asserts of playlist being non-empty after client operations 2022-03-24 17:52:20 +09:00
d0fee53e1f Implement auto countdown timers
Change to using TimeSpan
2022-03-22 14:34:06 +09:00
72843a6797 Add support for starting/stopping countdowns 2022-03-18 14:33:09 +09:00
bdc3b76df0 Remove beatmap bindable from PlaylistItem 2022-02-15 23:50:08 +09:00
efeba30b9f Remove ruleset and mod bindables from PlaylistItem 2022-02-15 16:28:15 +09:00
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
9ade8069a1 Rename to AbortGameplay() and handle additional states 2021-12-15 06:40:28 +09:00
2f1dc91211 Add AbortLoad() method to abort gameplay loads 2021-12-14 11:30:42 +09:00
6057037e35 Move playlist item beatmap population to MatchSubScreen 2021-12-10 20:08:59 +09:00
de0f37b08d Separate editing and adding playlist items 2021-12-10 15:26:48 +09:00
c34c580ad4 Add client-side + interface implementation 2021-12-09 03:08:59 +09:00
52230a6f00 Merge branch 'master' into multiplayer-delayed-playlist-load-broken 2021-12-07 22:45:05 +09:00
5ff452cc9a Update success bool to access Exception to stop exceptions from firing outwards 2021-12-06 12:29:11 +09:00
91aa38c4f6 Change playlist lookup to fail hard when failing 2021-12-06 12:28:48 +09:00
38702beabf Merge branch 'master' into i-ruleset-store 2021-12-04 15:05:39 +01:00
d5803e541b Give playlist items a PlayedAt date 2021-12-03 20:25:51 +09:00
e75e209053 Cache and consume IRulesetStore where feasible 2021-12-03 18:16:01 +09:00
0a1304b92a Remove gameplay_order, use existing playlist_order 2021-12-03 15:45:13 +09:00
ba8af303cc Add GameplayOrder to MultiplayerPlaylistItem 2021-12-02 22:33:14 +09:00
5976982b12 Add missing xmldoc for MultiplayerClient events 2021-12-02 16:45:26 +09:00
624ec4580a Ensure updateLocalRoomSettings is only called after full population 2021-12-02 14:32:39 +09:00
a0ff86f5e8 Ensure all read and write operations on APIRoom are done on the update thread 2021-12-01 22:43:03 +09:00
89c47708a1 Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:35:23 +09:00
942e48ffbd Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:33:11 +09:00
c38537a51a Initial implementation of MultiplayerPlaylist 2021-12-01 21:32:56 +09:00
42ad726154 Merge branch 'master' into multiplayer-delayed-playlist-load-broken 2021-12-01 20:28:29 +09:00
af704dfe5b Merge pull request #15878 from peppy/beatmap-lookup-cache
Cache beatmap metadata lookups used by multiplayer
2021-12-01 20:13:21 +09:00
fe119da044 Add fetching of beatmap and user data when playlist panels come on screen 2021-11-30 19:52:36 +09:00
23dd21339d Delay online fetch of non-current playlist item on room join 2021-11-30 19:44:50 +09:00
01bc330d1c Rename method to match new purpose 2021-11-30 19:42:46 +09:00
f58c5cd9c0 Update MultiplayerClient to use BeatmapLookupCache 2021-11-30 19:36:25 +09:00
25b9575de0 Fix missing transfer of match type to settings 2021-11-30 17:09:40 +09:00
8a941fa422 Add owner id to PlaylistItem 2021-11-25 21:41:03 +09:00
79a8e60468 Resolve inspection 2021-11-23 17:55:04 +09:00