Commit Graph

398 Commits

Author SHA1 Message Date
Dean Herbert 27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
Dan Balasescu 7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dan Balasescu b0faa009c1 Add some debugging for multiplayer test failures 2022-11-18 14:52:11 +09:00
Dan Balasescu d777afc454 Remove countdown at under 5 seconds 2022-09-20 19:55:44 +09:00
Dan Balasescu b84f716c22 Display seconds when hours>0 to be more lively 2022-09-20 16:02:31 +09:00
Dan Balasescu ef29987f36 Remove FinalNotification 2022-09-20 15:54:18 +09:00
Dan Balasescu 700000b583 Use custom notification with timer 2022-09-20 15:54:18 +09:00
Dan Balasescu 92b2417d4c Post notification when room joined 2022-09-16 21:10:11 +09:00
Dan Balasescu 433bb5ae24 Add ServerShuttingDownCountdown 2022-09-16 19:56:52 +09:00
Dan Balasescu 1eb2c74e57 Fix countdown serialisation 2022-09-11 18:50:51 +09:00
Dean Herbert 13d9b2188b
Merge pull request #20145 from smoogipoo/multiple-countdowns
Implement support for multiple active countdowns in multiplayer
2022-09-08 19:15:30 +09:00
Dean Herbert 0de220c45c Change `IsExclusive` default value to `true` 2022-09-08 17:54:29 +09:00
Dan Balasescu b2f30fbf8c Add countdown exclusivity 2022-09-05 20:13:23 +09:00
Dan Balasescu 2923c10cd8 Rewrite rooms to store multiple active countdowns
Update test to the new structure
2022-09-05 19:03:26 +09:00
Dan Balasescu b5ec7d06dd Add auto-skip setting
Default to auto skip
2022-08-31 20:24:06 +09:00
Dan Balasescu 4107049b08 Fix host room status showing ended after playing 2022-08-09 21:43:10 +09:00
Dan Balasescu c07f78409e
Merge pull request #19189 from peppy/peform-actions-after-reconnect
Fix creating multiplayer game during server migration not joining new room correctly
2022-07-19 14:46:29 +09:00
Dean Herbert 55a8a3563b Change `MultiplayerMatchSubScreen` to not immediately leave the room on connection loss
Instead, we can rely on `MultiplayerClient.Room` going `null`.
2022-07-17 21:19:10 +09:00
Dean Herbert da7edd5d49 Perform actions after server reconnection 2022-07-17 21:09:48 +09:00
Dean Herbert 8e7e1e6b51 Fix spectator client not correctly reconnecting after shutdown 2022-07-17 21:07:11 +09:00
Dan Balasescu b64c0d011c Isolate client's Room from TestMultiplayerClient 2022-07-01 19:23:25 +09:00
Dan Balasescu f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu 06ac3c1ad3 Make MultiplayerClient update CurrentPlaylistItem 2022-06-03 21:17:23 +09:00
Dean Herbert abb69a49b0 Handle server shutdown messages in room creation and spectator initialisation 2022-05-26 18:03:41 +09:00
Dan Balasescu fe0fcc7e9e Rename countdown object 2022-04-28 20:00:38 +09:00
Dan Balasescu cbb07d4011 Add countdown classes 2022-04-21 23:14:37 +09:00
Dan Balasescu 59622deb1f Add LoadAborted() event 2022-04-21 22:40:52 +09:00
Dan Balasescu 08d250fe58 Rename MatchStarted() -> GameplayStarted() 2022-04-21 22:39:24 +09:00
Dan Balasescu 8c3b541312 Add state for when user is ready for gameplay 2022-04-21 22:35:52 +09:00
Dean Herbert c0ad91796d Fix gameplay start flow 2022-04-13 20:57:40 +09:00
Dean Herbert 2bb0d9e6d3 Expose required classes/properties for mocking 2022-04-13 17:02:33 +09:00
Dean Herbert 20eca9bf6a Refactor `TestSceneRankRangePill` to not depend on `TestMultiplayerClient` 2022-04-12 19:39:24 +09:00
Dean Herbert 34457b4742 Expose mocked members as `virtual` on `Multiplayer` and `SpectatorClient` 2022-04-11 19:04:15 +09:00
Dan Balasescu 9ea6f9b1fe Remove some incorrectly-firing asserts 2022-04-08 21:44:44 +09:00
Dan Balasescu 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
Dean Herbert 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
Dean Herbert 6bb8243212 Fix potential assert failure due to `Room` access from disconnection event 2022-04-08 17:41:03 +09:00
Dean Herbert 933a722cfc Remove secondary null checks which cannot exist (were on wrong thread) 2022-04-08 14:56:04 +09:00
Dean Herbert 64c63fe93a Move null check in `JoinRoom` on to update thread 2022-04-08 14:52:56 +09:00
Dean Herbert d50f41225f Rename `scheduleAsync` to `runOnUpdateThreadAsync` 2022-04-08 14:43:53 +09:00
Dean Herbert 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
Dean Herbert f795f77cf9 Add missing newline 2022-04-06 14:00:54 +09:00
Dean Herbert 5b3eb2d6f4 Add helper class to handle firing async multiplayer methods 2022-03-31 19:27:45 +09:00
Dean Herbert f92a31cd39
Merge pull request #17402 from smoogipoo/multiplayer-auto-countdown
Add multiplayer auto-start countdown timer
2022-03-25 20:31:14 +09:00
Dean Herbert 792e79265b Add ignore rule for new helper property 2022-03-25 15:46:27 +09:00
Dean Herbert b1f0f89fdd Simplify `AutoStart` and `Host` checks 2022-03-25 15:41:01 +09:00
Dan Balasescu 0d88af19ae Fix local setting not being updated 2022-03-24 20:23:58 +09:00
Dan Balasescu 40eca0fbe2 Merge branch 'master' into multiplayer-auto-countdown 2022-03-24 18:11:51 +09:00
Dean Herbert e889d93441 Add asserts of playlist being non-empty after client operations 2022-03-24 17:52:20 +09:00
Dan Balasescu a83a90e675 Rename countdown Delay -> Duration 2022-03-23 15:21:16 +09:00