Commit Graph

22268 Commits

Author SHA1 Message Date
c35454081c Add sound when players change ready state 2020-12-24 17:17:45 +09:00
3148c04fb8 Play a sound when starting a timeshift or multiplayer room 2020-12-24 16:53:25 +09:00
6bd6888a93 Disallow skipping in multiplayer for now 2020-12-24 16:29:51 +09:00
5457e4598b Schedule UpdateFilter calls to avoid operations occuring while at a sub screen 2020-12-24 16:20:38 +09:00
e86e9bfae6 Don't begin gameplay until all users are in a completely prepared state 2020-12-24 15:32:55 +09:00
d66e218318 Source display accuracy from header and remove from ScoreProcessor function 2020-12-24 14:57:23 +09:00
1f80f01b53 Add accuracy to frame bundle header 2020-12-24 14:46:52 +09:00
43370d7021 Merge pull request #11273 from bdach/duplicate-user-in-mp-room
Improve reliability of handling user joined messages
2020-12-24 14:31:44 +09:00
61a5d3ef4a Remove double handling of restart allowance on results screen (already handled locally) 2020-12-24 13:32:35 +09:00
76935b93b6 Merge branch 'master' into disallow-multiplayer-restart-retry 2020-12-24 13:31:54 +09:00
b29a5e2073 Merge pull request #11270 from bdach/better-error-handling
Improve error handling at realtime room settings screen
2020-12-24 13:23:49 +09:00
15cef44351 Merge pull request #11275 from peppy/safer-user-ids
Send multiplayer user IDs via ctor for better thread safety
2020-12-24 12:20:48 +09:00
1ac93d4eeb Merge pull request #11268 from bdach/fix-room-song-select-stuck
Fix realtime multiplayer song select getting stuck after selecting invalid beatmap
2020-12-24 11:26:07 +09:00
d6dadd12fa Send multiplayer user IDs via ctor for better thread safety 2020-12-24 10:39:15 +09:00
414f886b02 Split timeshift & multiplayer "create" buttons
Multiplayer button gets new, different "Create match" text, and disable
logic in case of a dropped connection to the multiplayer server.
2020-12-23 22:03:57 +01:00
c13acb609a Move out sizing logic to multiplayer screen 2020-12-23 22:03:30 +01:00
05d9f23762 Move out create room button to separate class 2020-12-23 22:03:30 +01:00
a71496bc4e Sanity check received user joined messages
While test failures fixed in 9843da5 were a shortcoming of the test,
they exposed a potential vulnerable point of the multiplayer client
logic. In case of unreliable message delivery it is not unreasonable
that duplicate messages might arrive, in which case the same scenario
that failed in the tests could crash the game.

To ensure that is not the case, explicitly screen each new joined user
against the room user list, to ensure that duplicates do not show up.
`UserLeft` is already tolerant in that respect (if a user is requested
to be removed twice by the server, the second removal just won't do
anything).
2020-12-23 21:00:49 +01:00
47020c8887 Add failing test cases 2020-12-23 21:00:47 +01:00
152df2ad84 Merge branch 'master' into better-error-handling 2020-12-23 18:13:50 +01:00
e7a91b3dca Merge branch 'master' into fix-room-song-select-stuck 2020-12-23 18:13:27 +01:00
b1fb906773 Merge branch 'master' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 17:37:49 +01:00
e89583d732 Prefer connecting to dev server when running in DEBUG 2020-12-24 01:33:19 +09:00
e4959489b7 Improve user-facing error messages in room settings 2020-12-23 17:10:53 +01:00
3b0bf11366 Fix JoinRoom failing to return canceled token
As it turns out, `Task.FromCanceled` expects to receive an already
cancelled `CancellationToken`, which `CancellationToken.None` is not.
2020-12-23 17:01:01 +01:00
6c421b873d Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 16:55:22 +01:00
980e85ce25 Refactor player exit logic to convey intention better 2020-12-23 16:16:24 +01:00
4296f61d6c Tidy up event flow of change settings call 2020-12-23 22:39:14 +09:00
60be1bedc9 Merge pull request #11254 from frenzibyte/fix-multi-songselect-looping
Fix beatmap track not looping on multiplayer song selects
2020-12-23 22:35:11 +09:00
c5692a5d6a Re-enable carousel selection after error 2020-12-23 14:19:30 +01:00
582b0d2a74 Revert logic to be closer to original
Note the reversal of the order of operations in `endHandlingTrack()`
(done for extra safety, to ensure no more value changed events can be
fired at the point of cancelling looping).
2020-12-23 13:47:28 +01:00
74f0c50d82 Merge branch 'fix-multiplayer-server-disconnection-flow' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 13:31:36 +01:00
c839892a4c Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 11:57:43 +01:00
94e4928c4b Bring back accidentally-removed license header 2020-12-23 11:27:15 +01:00
f9fd909187 Fix missed inspections 2020-12-23 18:07:38 +09:00
64095307de Merge branch 'master' into realtime-leaderboard 2020-12-23 09:56:47 +01:00
3c8f871b28 Move player constructor configuration to dedicated class; add AllowRestart parameter 2020-12-23 17:47:46 +09:00
0ddcab574f Rename method to avoid weird code analysis rule 2020-12-23 17:14:58 +09:00
7cc38f03d1 Use extension method in all call sites of fire-and-forget async usage 2020-12-23 17:10:34 +09:00
1864da00e6 Add extension method to handle cases of fire-and-forget async usage 2020-12-23 17:10:02 +09:00
c3c3364d39 Simplify error handling of JoinRoom call 2020-12-23 16:56:57 +09:00
d27b83d678 More correctly handle fire-and-forget async call 2020-12-23 16:51:11 +09:00
91021eb8c4 Remove unused using 2020-12-23 16:49:17 +09:00
d7279dab40 Merge pull request #11226 from peppy/fix-legacy-skin-texture-loader-store
Fix incorrectly provided texture loader store to skins
2020-12-23 16:41:01 +09:00
f5d27b40a8 Standardise flow for aborting realtime player exit to avoid double-exit call 2020-12-23 16:35:39 +09:00
569c4092ef Move notification to stateful client so it is only shown to the user from one location 2020-12-23 16:35:39 +09:00
a1d42dc4a0 Don't allow creating or joining a room when not connected to server 2020-12-23 16:35:39 +09:00
12df3056e6 Ensure appropriate screens handle exiting when the server gets disconnected
I would have liked for this to be handled via the `OnRoomChanged` event
flow, but this isn't present in RealtimeMatchSubScreen due to
inheritence woes.
2020-12-23 16:35:39 +09:00
00d50150de Ensure the current room is left at a mutliplayer client level on client disconnection 2020-12-23 16:35:39 +09:00
286884421d Apply track looping and play on track change 2020-12-23 08:47:34 +03:00