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