1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-19 07:43:20 +08:00
Commit Graph

770 Commits

Author SHA1 Message Date
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
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
ea55ba7ba9 Remove unused using statement 2021-10-26 16:08:21 +09:00
Dean Herbert
6c38028d06 Fix gameplay chat display not losing focus on escape key press
Closes #15293.
2021-10-26 13:55:08 +09:00
smoogipoo
04b0529a7f Fix list overflowing subscreen background 2021-10-22 22:17:26 +09:00
smoogipoo
95ab82fb58 Remove BeatmapSelectionControl and inline at usage sites 2021-10-22 19:41:36 +09:00
smoogipoo
db87e42d47 Remove beatmap/ruleset/etc from MultiplayerRoomSettings 2021-10-22 16:48:28 +09:00
smoogipoo
f41cf822b0 Rename request 2021-10-21 17:02:11 +09:00
Bartłomiej Dach
9ad9465020
Remove online-screen-local textbox recolours 2021-10-20 22:49:25 +02:00
smoogipoo
691e414acb Add request to add a new playlist item 2021-10-20 21:08:58 +09:00
smoogipoo
67090fc598 Re-namespace enum 2021-10-20 20:52:16 +09:00
smoogipoo
599867a3b1 Add implementation to settings overlay 2021-10-20 20:29:06 +09:00
smoogipoo
0e446105fb Rename to "picking mode" as simpler english 2021-10-20 17:52:51 +09:00
smoogipoo
bc57190fb4 Make dropdown not move the selection control 2021-10-20 17:52:05 +09:00
smoogipoo
116ce09e49 Merge branch 'master' into multi-queueing-modes 2021-10-20 17:27:25 +09:00
smoogipoo
ea9c070e59 Add setting for queue mode 2021-10-20 14:51:59 +09:00
5ln
3529f34c98
Multi: Hide mods when spectating or Beatmap isn't Locally Available.
Signed-off-by: 5ln <xnafumie@gmail.com>
2021-10-18 02:01:50 +08:00
smoogipoo
2fd101ad50 Reorder elements to follow designs 2021-10-15 20:25:32 +09:00
smoogipoo
a70d7e4feb Remove unnecessary extra GridContainer 2021-10-15 20:18:25 +09:00
Dean Herbert
9d54285b2e Merge branch 'master' into fix-multiplayer-sounds-during-gameplay 2021-10-14 21:34:04 +09:00
Dean Herbert
06249c4ab2 Fix incorrect usages of Scheduler.AddOnce 2021-10-14 17:52:19 +09:00
Dean Herbert
0d86dab80a Fix multiplayer components updating when not alive
Should close https://github.com/ppy/osu/issues/15092.

- [ ] Depends on https://github.com/ppy/osu-framework/pull/4826.
2021-10-14 17:37:10 +09:00
Bartłomiej Dach
f3647eb94e
Recolour room settings screens to match dropdown theming 2021-10-13 22:50:19 +02:00
Dean Herbert
853cf6feaa Rename last remaining BeatmapInfo Beatmap usage 2021-10-04 17:35:53 +09:00
Dean Herbert
05ca3aec4f Rename GameplayState to SpectatorGameplayState 2021-10-02 02:10:11 +09:00
smoogipoo
c83dd7d2b6 Merge OnlinePlayComposite and RoomSubScreenComposite 2021-09-29 20:55:20 +09:00
smoogipoo
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
Dean Herbert
fa693bb8a8 Move MusicController adjustment set to inside OsuScreen itself (and result nullable) 2021-09-16 16:08:09 +09:00
AbstractQbit
318f0941ca Move all the "inherit previous AllowTrackAdjustments" logic into OsuScreen 2021-09-15 21:25:39 +03:00
AbstractQbit
b9193aae6d Make IOsuScreen.AllowTrackAdjustments nullable
Allows for inheriting value from the previous screen if undefined
2021-09-14 17:37:57 +03:00
Dean Herbert
7fe0eefb78 Add inline comment regarding team switch sample logic
Feels a bit convoluted without this. Don't really have a better
suggestion for now so a comment will do.
2021-09-13 14:12:19 +09:00
Jamie Taylor
217ca754ae
Add sound for team swaps 2021-09-08 13:45:05 +09:00
Dan Balasescu
7be825f470
Merge pull request #14488 from frenzibyte/multi-spectator-player-leaving
Gray out and stop player instances who quit during multi-spectator sessions
2021-08-30 12:04:19 +09:00
Dean Herbert
2b06dacd0e Change debounce back to using scheduler
Should better allow for adjusting in the future, as well.
2021-08-27 18:57:19 +09:00
Jamie Taylor
e341f471b0
Add lobby sfx for join/leave/kick/ready/unready events 2021-08-26 15:29:22 +09:00
Salman Ahmed
196c74fce8 Gray out and remove player clock when users stop playing 2021-08-25 11:31:02 +03:00
Salman Ahmed
599145b46a Stop clocks when removing them from sync manager 2021-08-25 11:31:02 +03:00
Dean Herbert
e1ab3434ed Add ability to handle user join/leave/kick events in MultiplayerComposites 2021-08-25 14:37:14 +09:00
Bartłomiej Dach
e503182a8d
Merge branch 'master' into activity-on-multiplayer-screens 2021-08-24 18:50:55 +02:00
smoogipoo
16ddbcd208 Don't bind to RoomId where it's expected to be constant 2021-08-24 14:25:40 +09:00
smoogipoo
de0de451fe Refactor to remove resolved dependency 2021-08-24 13:29:19 +09:00
smoogipoo
df170afbc4 Fix multiplayer crashing when entering gameplay 2021-08-24 13:22:06 +09:00
smoogipoo
956c1cc216 Merge branch 'master' into activity-on-multiplayer-screens 2021-08-24 12:33:34 +09:00
Dean Herbert
eaa4d479ac
Merge pull request #14408 from smoogipoo/remove-current-room
Remove the global "selected room" from online screens
2021-08-23 17:29:31 +09:00
Nathan Alo
2877b43824 split multiplayer and playlist activity 2021-08-22 09:54:07 +08:00
Dean Herbert
15d443f6b7 Use the UI mouse cursor when hovering gameplay chat in an interactive state 2021-08-21 14:44:54 +09:00
smoogipoo
f85d3665d8 Cleanups 2021-08-20 21:45:24 +09:00
smoogipoo
610a162271 Merge branch 'master' into remove-current-room 2021-08-20 16:23:36 +09:00
Dan Balasescu
c95bf735fe
Merge branch 'master' into multiplayer-chat 2021-08-20 11:54:42 +09:00
Dean Herbert
b09105e5a7
Merge pull request #14381 from smoogipoo/match-subscreen-redesign
Update layout of multiplayer room screens
2021-08-19 19:36:21 +09:00
Dean Herbert
8fce5911a9 Adjust spacing and padding of footer buttons 2021-08-19 19:08:46 +09:00
Dean Herbert
16aecfe934 Start free mod selection area hidden on screen display 2021-08-19 19:02:54 +09:00
Dean Herbert
be77498044 Move chat to right column in multiplayer match screen 2021-08-19 19:02:31 +09:00
Dean Herbert
675e2e34ba Add padding between beatmap panel and edit button 2021-08-19 19:02:05 +09:00
smoogipoo
493f47787b Disable condition for the time being 2021-08-19 18:18:42 +09:00
smoogipoo
c31af96f1d Pass room into RoomSettingsOverlay 2021-08-19 16:41:21 +09:00
smoogipoo
1fd746524d Remove realtime room category, fix end-date showing for realtime 2021-08-19 16:09:28 +09:00
Dean Herbert
6d00ea3375 Allow toggling focus via binding 2021-08-19 14:19:59 +09:00
Bartłomiej Dach
07951fe18c
Merge branch 'master' into limit-match-settings-textbox 2021-08-18 21:17:16 +02:00
Davran Dilshat
43cbd10a38 change limit to be on actual usage site 2021-08-18 18:30:50 +01:00
smoogipoo
63af67f61b Cleanup around footers 2021-08-18 20:25:48 +09:00
Dean Herbert
1faf789f0e Allow expanding chat using key binding even when it is hidden 2021-08-18 18:25:21 +09:00
Dean Herbert
365c1bccc6 Fix multiplayer channel being unintentionally left after gameplay session 2021-08-18 18:24:20 +09:00
Dean Herbert
2099298444 Disallow clicking on chat textbox during gameplay 2021-08-18 17:30:50 +09:00
smoogipoo
568f1fd345 Fix initial RoomId state not being handled correctly 2021-08-18 16:09:00 +09:00
smoogipoo
90a1be2e61 Move paddings up one level 2021-08-18 15:54:33 +09:00
smoogipoo
f3bc9c3e45 Merge branch 'master' into match-subscreen-redesign 2021-08-18 15:19:29 +09:00
smoogipoo
c5268c9a99 Simplify by reusing same room panel 2021-08-18 15:19:24 +09:00
smoogipoo
704af94d39 Add edit button to room panel 2021-08-18 15:13:10 +09:00
smoogipoo
c66abf85f7 Remove match header 2021-08-18 14:04:44 +09:00
Dan Balasescu
eaf7bd72fc
Merge branch 'master' into multiplayer-chat 2021-08-17 20:08:01 +09:00
smoogipoo
47d4a2e97f Make SettingsOverlay protected 2021-08-17 20:05:26 +09:00
smoogipoo
590d814881 Move RoomSettingsOverlay to RoomSubScreen 2021-08-17 18:24:04 +09:00
Dean Herbert
9eb16fa61d Move poll allowance logic based on signalr connection inside polling component 2021-08-17 17:16:21 +09:00
smoogipoo
5d72c5911a Rename MatchSettingsOverlay and related classes
Because "match" is a multiplayer-only concept.
2021-08-17 17:14:28 +09:00
smoogipoo
6416e64e06 Adjust sizings and paddings 2021-08-17 17:13:25 +09:00
smoogipoo
4b198d14eb Initial refactor of RoomSubScreen 2021-08-17 17:05:20 +09:00
Dean Herbert
a901fca54a
Merge branch 'master' into multi-polling-request-refactor 2021-08-17 16:23:46 +09:00
Dean Herbert
124f149cb5 Add key binding to focus chat input 2021-08-17 16:17:31 +09:00
Dean Herbert
30eee363dc Add chat display during multiplayer gameplay 2021-08-17 16:17:31 +09:00
smoogipoo
f4b7ee5c7f Merge branch 'master' into hide-player-settings-overlay 2021-08-17 13:44:33 +09:00
smoogipoo
1e282432c9 Fix password in a better way 2021-08-17 09:40:25 +09:00
smoogipoo
97d5b80834 Fix joining with incorrect password 2021-08-17 09:18:21 +09:00
smoogipoo
6320768a67 Merge branch 'master' into multi-polling-request-refactor 2021-08-17 08:44:56 +09:00
Dean Herbert
8d45f86bd3 Rename variable to better reflect its purpose 2021-08-16 16:48:40 +09:00
Dean Herbert
81480ac4fc Use PlayerConfiguration to convey no-seek state 2021-08-16 16:16:02 +09:00
Salman Ahmed
7fe6f6dd14 Fix kick button action asserting and using User.User.ID rather than User.UserID 2021-08-16 09:47:23 +03:00
Salman Ahmed
79cd062784 Let TeamDisplay take the full MultiplayerRoomUser rather than the underlying User 2021-08-16 09:47:23 +03:00
smoogipoo
08d347f10b Merge branch 'master' into multi-polling-request-refactor 2021-08-16 13:12:08 +09:00
smoogipoo
b6a2020c59 General refactorings from PR review 2021-08-16 13:09:04 +09:00
Nathan Alo
2cc096101e trim whitespace 2021-08-15 18:56:24 +08:00
Salman Ahmed
2ddf28346a PlayerSettingsGroups -> PlayerSettings 2021-08-14 19:58:20 +03:00
Nathan Alo
4ed06a1021 apply suggestions 2021-08-14 22:39:12 +08:00
Nathan Alo
a553942a7f update InitialActivity on multiplayer Player and SongSelect 2021-08-14 13:20:36 +08:00
Dean Herbert
b8c63eb1cb Merge branch 'master' into multiplayer-kick-support-events 2021-08-14 14:08:34 +09:00
Bartłomiej Dach
8f3fedade3
Merge branch 'master' into multiplayer-team-vs-results 2021-08-13 21:30:44 +02:00
smoogipoo
155e9e16a5 Refactorings 2021-08-13 22:09:47 +09:00
smoogipoo
c71a581106 Fix exception when leaving match 2021-08-13 18:24:19 +09:00
smoogipoo
1bae7173d3 Fix initial multiplayer poll 2021-08-13 18:14:02 +09:00
smoogipoo
7cbf4c48ed Fix multiplayer polling when not connected 2021-08-13 17:59:18 +09:00
smoogipoo
8910781bcd Move listing polling component to LoungeSubScreen 2021-08-13 17:39:09 +09:00
Dean Herbert
df24f7a81e
Merge pull request #14256 from smoogipoo/multiplayer-header-redesign
Update multiplayer header to the latest designs
2021-08-13 16:16:25 +09:00
Dean Herbert
f9f3339885 Fix vertical offset not being handled correctly during score panel detach process 2021-08-13 16:14:23 +09:00
Dean Herbert
732dcd30c7 Merge branch 'master' into multiplayer-team-vs-results 2021-08-13 16:03:10 +09:00
Dean Herbert
b9721f5261 Centralise screen exit logic and guard against non-current screen 2021-08-13 14:39:03 +09:00
smoogipoo
755b6460b6 Fix multiplayer navigation test failure 2021-08-13 14:05:44 +09:00
Salman Ahmed
34c2b317e2 Hide song progress bar on multi-spectator player 2021-08-13 07:30:09 +03:00
Salman Ahmed
e7cf6b2d23 Expire hold-to-quit button on multi-spectator player 2021-08-13 07:29:55 +03:00
Salman Ahmed
8dc7a925e7 Expire instead of hiding and disabling visibility state
Since it's a temporary change until the spectator interface gets
improved, no need to add further logic.
2021-08-13 07:28:59 +03:00
smoogipoo
e913c8f92f Change strings to verbatim 2021-08-13 13:07:02 +09:00
Salman Ahmed
c10320f239 Hide and disable player settings overlay on multi-spectator player 2021-08-13 06:35:16 +03:00
Salman Ahmed
2b86416cb2 Hide player settings overlay on multi-spectator player loader 2021-08-13 06:35:16 +03:00
Bartłomiej Dach
70005cb39d
Merge branch 'master' into multiplayer-team-vs-results 2021-08-12 20:39:48 +02:00
Bartłomiej Dach
53b4cdfb02
Handle ties in team vs. results screen 2021-08-12 20:38:24 +02:00
Bartłomiej Dach
f06f13215b
Split off multiplayer team results screen to separate class
The previous version tried to keep both normal multiplayer and team
multiplayer results as one screen, but didn't check that team-specific
components aren't null in `LoadComplete()`.

To decrease number of conditional, split off the team results screen to
a separate implementation, and choose one or the other at push time in
`MultiplayerPlayer`, depending on team count.
2021-08-12 20:01:31 +02:00
Bartłomiej Dach
828268ad4d
Add winner text background to increase contrast 2021-08-12 19:34:25 +02:00
Bartłomiej Dach
4d26bb6714
Scale score panel to remove overlap with team score display 2021-08-12 19:27:32 +02:00
Dean Herbert
8249ce7988
Merge branch 'master' into multiplayer-header-redesign 2021-08-12 21:00:46 +09:00
smoogipoo
047b37788b Merge online play filter control with the lounge subscreen 2021-08-12 19:48:15 +09:00
Dean Herbert
5f3ceaf0ad
Merge branch 'master' into lounge-redesign 2021-08-12 16:31:14 +09:00
Dan Balasescu
88f70e7f29
Merge branch 'master' into multiplayer-kick-support-events 2021-08-12 12:12:06 +09:00
Dan Balasescu
60e988aac3
Merge branch 'master' into multiplayer-kick-support 2021-08-12 11:46:56 +09:00
smoogipoo
543482111b Remove outdated todo 2021-08-12 10:40:14 +09:00
Dean Herbert
31608a1bc6 Leave the match screen when kicked 2021-08-11 19:57:10 +09:00
Dean Herbert
d6352637d6 Also add tooltip and context menu item 2021-08-11 17:45:34 +09:00
Dean Herbert
bb51ebd0ef Don't show button on self 2021-08-11 17:42:46 +09:00
Dean Herbert
7aab8c32ec Add kick button and hook up logic 2021-08-11 17:31:54 +09:00
Dean Herbert
a223f111cb Move text to avoid overlapping the results panel 2021-08-11 15:50:01 +09:00
Dean Herbert
430a0e496c Add winner text 2021-08-11 15:32:14 +09:00
Dean Herbert
c376e652a4 Convey and show team scores at the multiplayer results screen 2021-08-11 15:32:14 +09:00
Dean Herbert
cf82bca09c Change logic to only handle the case of exactly two teams 2021-08-11 14:44:13 +09:00
Dean Herbert
a503274e1d Pass through MultiplayerRoomUsers instead of ints to avoid re-retrieval 2021-08-10 18:39:20 +09:00
Dean Herbert
5f3d087101 Also add team score display to multiplayer spectator screen 2021-08-09 19:17:51 +09:00
Dean Herbert
121648b593 Add gameplay-specific team score display which can expand and contract 2021-08-09 19:17:51 +09:00
Dean Herbert
0fa1f085df Store MultiplayerRoomUser as part of tracked data 2021-08-09 16:31:18 +09:00
Dean Herbert
fcec714b4f Add safeties to avoid MultiplayerPlayer crashing when beatmap can't be loaded 2021-08-09 16:31:18 +09:00
Dean Herbert
0b76460043 Merge branch 'master' into lounge-redesign 2021-08-09 16:28:28 +09:00
Dean Herbert
7cb743a734 Move font sizing to base class 2021-08-09 16:17:51 +09:00
Dean Herbert
724edcbecd Toggle the expanded state of the multiplayer leaderboard with the user's HUD
Resolves https://github.com/ppy/osu/discussions/14140.

---

Until now, the multiplayer leaderboard would expand during break time.
Now, it respects the user's HUD visibility status (which can be toggled
using Shift+Tab).
2021-08-06 19:23:44 +09:00
smoogipoo
0246e6f850 Merge branch 'master' into lounge-redesign 2021-08-05 19:55:15 +09:00
Dan Balasescu
0211521a97
Merge branch 'master' into multiplayer-create-with-enter 2021-08-05 17:07:03 +09:00
Dean Herbert
bf720f7e06 Ensure operations are not performed during loading 2021-08-05 14:14:07 +09:00
Dean Herbert
22bd6c7556 Move keyboard progress flow handling to MatchSettingsOverlay 2021-08-05 14:06:58 +09:00
Dean Herbert
fd54487186 Add safety against pushing to non-current screen 2021-08-05 14:06:58 +09:00
Dean Herbert
c84bd2c74d Update new obsolete usages 2021-08-05 13:22:59 +09:00
smoogipoo
fbf89493ad Merge branch 'master' into lounge-redesign 2021-08-04 19:53:55 +09:00
Dean Herbert
476442d1a3
Merge branch 'master' into multiplayer-create-with-enter 2021-08-04 19:37:41 +09:00
Dean Herbert
aa320c70a7 Improve show/hide animation and add more padding around the crown 2021-08-03 23:42:37 +09:00
Dean Herbert
b8e878ccc9 Add the ability to change team by clicking current team colour
Definitely not the final UX, but it's what people are used to and easy
to implement, so it'll do for now.
2021-08-03 23:42:37 +09:00
Dean Herbert
5e59b1325c Add team display to participant list 2021-08-03 23:42:37 +09:00
Dean Herbert
b956d32587 Add the ability to change multiplayer game type 2021-08-03 23:42:37 +09:00
Dean Herbert
c856611f65 Merge branch 'master' into multiplayer-match-rulesets 2021-08-03 23:40:24 +09:00
smoogipoo
1b6b7ce343 Merge branch 'master' into lounge-redesign 2021-08-03 20:02:31 +09:00
Dean Herbert
063868713e Add ability to create a room using only keyboard input 2021-08-03 19:11:10 +09:00
Dean Herbert
01f15bd6fc Rename picker class to match new naming 2021-08-03 17:47:53 +09:00
Dean Herbert
a42762e351 Merge branch 'multiplayer-rename-game-type' into multiplayer-match-rulesets 2021-08-03 14:55:51 +09:00
Dean Herbert
2564c0c3df Rename GameType to MatchType and make enum instead of class 2021-08-03 14:46:31 +09:00
Dean Herbert
867426441e Fix weird access to room via Client 2021-08-02 18:50:22 +09:00
Henry Lin
89e8296eb1 Reset all types of adjustments in MusicController; Rename AllowRateAdjustments to AllowTrackAdjustments 2021-07-29 15:39:26 +08:00
Dean Herbert
a5736085a9 Ensure externally run operations on LoungeSubScreen are run after load is completed 2021-07-23 02:23:37 +09:00
smoogipoo
6a55cb9df0 Revert unintended change
It's a deeper issue with ScreenStack (see:
https://github.com/ppy/osu-framework/issues/4619).
2021-07-19 22:52:07 +09:00
smoogipoo
3168a927dc Fix possible exception 2021-07-19 20:50:30 +09:00
smoogipoo
2515785f93 Use room password to fill settings textbox 2021-07-19 20:03:32 +09:00
Dean Herbert
b5dd9403b1 Merge branch 'master' into add-password-support 2021-07-14 23:53:03 +09:00
smoogipoo
dfe7cc40a9 Move create room button into the lounge 2021-07-14 18:55:01 +09:00
Dan Balasescu
4ce96109b7
Merge branch 'master' into fix-match-screen-buttons-no-user 2021-07-13 18:20:23 +09:00
Dan Balasescu
0557761e51
Merge pull request #13862 from peppy/fix-multiplayer-create-game-failure-crash
Fix crash when multiplayer server join fails during game creation
2021-07-13 18:00:47 +09:00
Dean Herbert
e791669c40 Fix multiplayer screen buttons showing no text when local user not available 2021-07-13 17:59:58 +09:00
Dean Herbert
60e17fc2b7 Fix disconnected-from-server multiplayer exit sequence being blocked by confirmation dialog 2021-07-13 17:12:35 +09:00
Dean Herbert
5cffaf4d3b Add extra explanatory comment to avoid any confusion 2021-07-13 14:34:56 +09:00
Dean Herbert
c6bd58ea4b Exit match sub screen when a room goes away
Closes #13847.

I think we can probably get some test coverage of this if required, but
needs a bit of thought (basically an error needs to be thrown during the
multiplayer client portion of the join procedure, after `CurrentRoom` is
non-null but before the join completes).

Manual testing on password branch (#13861) is possible since it
currently errors due to missing method on the live/dev servers.

- Create game, which will fail with `MethodNotExists`.
- Note the fields on the settings screen are emptied.
- Fill fields again and press create game (crash).
2021-07-12 19:20:41 +09:00
Dean Herbert
9f9d7f9125 Add remaining pieces of password flow (for osu-web join request) 2021-07-12 18:22:52 +09:00
Dean Herbert
08c40938db Add support for updating a room's password 2021-07-12 15:49:19 +09:00
Dean Herbert
4fd6f2101c Add password textbox input 2021-07-12 15:49:19 +09:00
Dean Herbert
24f330e5c1 Avoid MatchSettingsOverlay base class potentially accessing an uninitialised field 2021-07-12 15:49:19 +09:00
Dan Balasescu
32e6c9c5d3
Merge pull request #13786 from peppy/multiplayer-test-fixes
Fix multiplayer test failures due to leaderboard load process
2021-07-06 16:33:41 +09:00
Dean Herbert
0658cfb986 Throw exceptions rather than silently failing if attempting to add a clock for a non-tracked user 2021-07-06 14:56:00 +09:00
PercyDan54
e1c646b9b2
Remove redundant arguments 2021-07-05 23:52:39 +08:00
Dean Herbert
77adf687c6 Consume ability to lookup multiple users in MultiplayerGameplayLeaderboard
Avoids syncrhonously blocking on asynchronous operations (which was
leading to LCA starvation in tests).
2021-07-05 19:56:37 +09:00
Dean Herbert
229bba14e6 Fix master clock becoming incorrectly paused when all spectator players are too far ahead 2021-07-05 17:45:08 +09:00
smoogipoo
6dd3c6fe93 Make MultiSpectatorScreen and tests more resillient to timing 2021-06-29 22:45:51 +09:00
smoogipoo
bfdbe3c3fe Fix clocks getting added a second time 2021-06-29 17:29:25 +09:00
smoogipoo
bcdf36e77b Merge branch 'master' into spectator-start-at-end-2 2021-06-29 15:53:58 +09:00
Joseph Madamba
db86098062 Fix dialog not closing after spamming OS window close 2021-06-21 20:23:11 -07:00
Joseph Madamba
9bcd1e6922 Move confirm dialog logic to OnExiting 2021-06-21 20:22:18 -07:00
smoogipoo
9f163f7f20 Use switch statement to be more explicit about state 2021-06-11 19:23:25 +09:00
smoogipoo
0a8daab4f7 Pause master clock when too far ahead 2021-06-11 19:15:53 +09:00
smoogipoo
59eda70c12 Seek to the least most-recent frame instead 2021-06-11 18:40:56 +09:00
smoogipoo
263b8ff097 Wait for full player load 2021-06-11 18:14:37 +09:00
smoogipoo
a99cb79738 Seek master clock on multi-spectator start 2021-06-11 16:25:45 +09:00
smoogipoo
75d825c85c Dont control master clock from sync manager 2021-06-11 16:24:52 +09:00
smoogipoo
1c67ef7c91 Make catchup clock support seeking 2021-06-11 16:23:59 +09:00
Dean Herbert
7774344f0e Remove "Unranked" text from ModDisplay 2021-06-09 13:45:09 +09:00
smoogipoo
c3ea1b26e1 Fix DT being doubled in multiplayer spectator 2021-06-08 22:51:42 +09:00
Dean Herbert
a15cac6f53 Change the way Score is initialised in Player to better lend to population of metadata 2021-06-02 15:44:04 +09:00
Dean Herbert
6ef9b346e1 Fix newly found inspections from 2021.1EAP1 2021-06-01 14:33:21 +09:00
smoogipoo
a74405d0ed Merge branch 'master' into restructure-spectator-client 2021-05-20 18:53:42 +09:00
smoogipoo
6beeb7f7c4 Rename SpectatorStreamingClient -> SpectatorClient 2021-05-20 15:55:07 +09:00
smoogipoo
d197a7f6f5 Rename multiplayer client classes 2021-05-20 15:39:45 +09:00
Salman Ahmed
9e8c0a7e70 Fix online play subscreens not pushing player loaders when starting gameplay 2021-05-14 04:25:29 +03:00
smoogipoo
9ad1e5067e Fix spectate being entered while not having the beatmap 2021-05-11 19:22:09 +09:00
smoogipoo
10a4a5decb Merge branch 'master' into multiplayer-spectator-screen 2021-05-11 17:33:09 +09:00
Dean Herbert
54abf8f6f6 Vertically centre leaderboard for now 2021-05-03 14:48:04 +09:00
Dean Herbert
b1a19b6dd6 Add xmldoc for PlayerIsolationContainer 2021-05-03 14:41:55 +09:00
Dean Herbert
2aa21e2aff Adjust documentation in CatchUpSyncManager 2021-05-03 14:37:11 +09:00
Dean Herbert
c065092e72 Fix weird access to userIds in MultiplayerSpectatorScreen 2021-05-03 14:25:52 +09:00
Dean Herbert
dc5ee31d94 Use switch for screen construction 2021-05-03 14:04:20 +09:00
Dean Herbert
66ae6e58d1 Reword comment regarding LoadRequested special case to be easier to understand context 2021-05-03 14:01:10 +09:00
Dean Herbert
6da4105da6 Remove Sync namespace (feels unnecessary) 2021-05-03 13:38:53 +09:00
smoogipoo
630a6dc46a Fix missing dependency 2021-04-26 22:23:44 +09:00
smoogipoo
ed93e26e52 Use single method for starting/restarting spectator screen 2021-04-26 21:56:15 +09:00
smoogipoo
7e11d520d5 Remove finished players from multi spectator screen 2021-04-26 21:25:46 +09:00
smoogipoo
94d0b06493 Expose mute adjustment instead 2021-04-26 19:01:30 +09:00
smoogipoo
d7618b63fa Fix test failure 2021-04-26 17:35:13 +09:00
smoogipoo
6626e70c95 Pass in master clock instead of slave clock 2021-04-26 17:30:27 +09:00
smoogipoo
5b4cb71cc7 Change terminology from "slave" to "player clock" 2021-04-26 17:19:44 +09:00
Dean Herbert
aa99c192d0 Fix type in inline comment 2021-04-26 16:21:12 +09:00
smoogipoo
63a9484255 Expose WaitingOnFrames as mutable bindable 2021-04-23 19:11:47 +09:00
smoogipoo
575ec7c528 Document + refactor max player limitation 2021-04-23 19:11:35 +09:00
smoogipoo
90ecda91af Fix exception 2021-04-23 00:06:54 +09:00
smoogipoo
4f0857f946 Xmldocs and general refactorings 2021-04-22 23:52:22 +09:00
smoogipoo
ee25949751 Rename classes 2021-04-22 23:39:02 +09:00
smoogipoo
8a0ba3a055 Merge GameplayIsolationContainer into PlayerInstance, remove track 2021-04-22 23:38:51 +09:00
smoogipoo
4aceb75eb2 Disable spectate button on closed rooms
Doesn't have an effect normally - only for safety purposes in case we
allow entering the match subscreen after a match has finished in the
future.
2021-04-22 23:37:45 +09:00
smoogipoo
fd0b030cf4 Refactor gameplay screen creation 2021-04-22 23:37:33 +09:00
smoogipoo
64579d50ac Use only single PlayerInstance for hit sample playback 2021-04-22 22:59:47 +09:00
smoogipoo
6588859c32 Remove loggings 2021-04-22 22:29:18 +09:00
smoogipoo
1ca2152e61 Privatise + rename to SlaveGameplayClockContainer 2021-04-21 23:22:36 +09:00
smoogipoo
2bea625613 Fix initial playback states not being correct 2021-04-21 23:22:11 +09:00
smoogipoo
f32d00c0d9 Fix post-merge errors 2021-04-21 17:13:01 +09:00
smoogipoo
724fe3d378 Remove unnecessary method 2021-04-16 22:57:34 +09:00
smoogipoo
72ebcb157f Dispose track on dispose 2021-04-16 22:57:27 +09:00
smoogipoo
4c5d4752b1 Rename classes to reduce redundant naming 2021-04-16 22:47:52 +09:00
smoogipoo
7d5d7088cd Remove now unnecessary override 2021-04-16 20:51:07 +09:00
Christine Chen
b15838b220 Move storyboard outro logic to DrawableStoryboard 2021-04-16 00:59:10 -04:00
smoogipoo
1c086d99de Add loading spinner 2021-04-16 13:28:32 +09:00
smoogipoo
5ac0eb02cd Always add player instances at first, populate later 2021-04-16 12:25:29 +09:00
Christine Chen
45c2b72a25
Merge branch 'master' into play-storyboard-outro 2021-04-15 15:11:35 -04:00
Christine Chen
25b8c2f257 Allow skipping storyboard outro
Reuses SkipOverlay by calculating the endtime of the storyboard and using that as a "start point". Upon skipping the outro the score is instantly shown.
When the end of the storyboard is reached the score screen automatically shows up. If the player holds ESC (pause) during the outro, the score is displayed

The storyboard endtime is calculated by getting the latest endtime of the storyboard's elements, or simply returning 0 if there is no storyboard.

Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-15 13:20:40 -04:00
smoogipoo
b391a8f94e Properly bind WaitingOnFrames 2021-04-15 19:37:45 +09:00
smoogipoo
33cc5c5cb3 A few more xmldocs 2021-04-15 19:35:57 +09:00
smoogipoo
82fcabb8f0 More refactorings/renamespacings/xmldocs 2021-04-15 19:32:55 +09:00
smoogipoo
df4fce2c57 Rename classes 2021-04-15 19:16:00 +09:00
smoogipoo
1705d472b5 Reimplement multiplayer syncing using new master/slave clocks 2021-04-15 19:12:52 +09:00
smoogipoo
33ad7850cb Remove LastFrameTime 2021-04-15 16:45:59 +09:00
smoogipoo
6fc7488a67 Reimplement syncing logic as a new component 2021-04-15 16:33:59 +09:00
smoogipoo
774cca38c4 Make spectating instances use custom GCC 2021-04-14 20:39:14 +09:00
smoogipoo
69b01e7270 Add some debugging 2021-04-14 00:58:03 +09:00
smoogipoo
77830527e7 Fix spectate button being disabled during play 2021-04-13 23:57:16 +09:00
smoogipoo
d49b90877e Fix operation remaining in progress 2021-04-13 23:21:48 +09:00
smoogipoo
3039b7b0f9 Make tests a bit more resilient 2021-04-13 22:40:24 +09:00
smoogipoo
20823abb30 Make resyncing a bit more resilient 2021-04-13 22:10:35 +09:00
smoogipoo
627dd960b0 Disable player input for now 2021-04-13 20:52:20 +09:00
smoogipoo
5b53a2b211 Merge branch 'master' into multiplayer-spectator-screen 2021-04-13 20:07:56 +09:00
Dean Herbert
2884ed3ab9
Merge pull request #12350 from smoogipoo/multiplayer-spectator-player-grid
Add the multiplayer spectator player grid
2021-04-13 19:25:32 +09:00
smoogipoo
c531e38a36 Rework to create a derived tracked user data instead 2021-04-12 22:00:27 +09:00
Dean Herbert
dd1925aaed Remove temporary input ignore 2021-04-12 14:29:27 +09:00
Dean Herbert
9be3163592 Merge branch 'master' into multiplayer-spectator-player-grid 2021-04-12 14:14:13 +09:00
smoogipoo
4409c1a36f Increase sync offset to prevent constant catchups 2021-04-09 22:01:21 +09:00
smoogipoo
6eddc6c59e Enable spectating multiplayer matches 2021-04-09 21:03:50 +09:00
smoogipoo
3e46d6401e Remove some unnecessary code 2021-04-09 20:23:11 +09:00
smoogipoo
eccd269cce Implement maximum start delay 2021-04-09 20:17:57 +09:00
smoogipoo
49b7519c53 Refactor gameplay starting logic 2021-04-09 20:03:34 +09:00
smoogipoo
c93ce73123 Move catchup logic inside PlayerInstance, fixup some edge cases 2021-04-09 19:59:34 +09:00
smoogipoo
f8dfb9544b Merge branch 'multiplayer-spectator-leaderboard' into multiplayer-spectator-screen 2021-04-09 18:42:04 +09:00
smoogipoo
d2c37e6cf8 Remove unnecessary parameter 2021-04-09 18:41:58 +09:00
smoogipoo
4fa51d5ec8 Add leaderboard to multiplayer spectate screen 2021-04-09 18:41:48 +09:00
smoogipoo
950e4e05ef Merge branch 'multiplayer-spectator-leaderboard' into multiplayer-spectator-screen 2021-04-09 18:30:21 +09:00
smoogipoo
90e243eea5 Rename methods 2021-04-09 18:15:27 +09:00
smoogipoo
3b86f0eb2f Fix exception with 0 frames 2021-04-09 18:15:23 +09:00
smoogipoo
bb15baf118 Add initial multiplayer spectator leaderboard 2021-04-09 17:31:14 +09:00
smoogipoo
ecd0b84d94 Use max_sync_offset constant 2021-04-08 22:15:07 +09:00
smoogipoo
1b5679b0d7 Refactor ctor 2021-04-08 22:14:26 +09:00
smoogipoo
7d276144b8 Fix player sizing + masking 2021-04-08 22:13:54 +09:00
smoogipoo
709016f0d6 Add initial multiplayer screen implementation 2021-04-08 22:07:00 +09:00
smoogipoo
d64b236f86 Add a container that provides an isolated gameplay context 2021-04-08 21:27:16 +09:00
smoogipoo
125358158b Merge branch 'master' into multiplayer-spectator-screen 2021-04-08 21:13:37 +09:00
smoogipoo
fd2a14a0bf Only set button state once 2021-04-08 16:31:40 +09:00
Dean Herbert
a55e62188e Change state icon to binoculars so the eye isn't staring at me 2021-04-08 15:54:58 +09:00
Dean Herbert
b73860cb5f Slightly alter button colour scheme to make text more legible and reduce saturation 2021-04-08 15:47:55 +09:00
smoogipoo
72a42ceaf7 Merge branch 'multiplayer-spectator-player-grid' into multiplayer-spectator-screen 2021-04-08 00:19:00 +09:00
smoogipoo
5dc939c2f3 More documentation 2021-04-08 00:12:21 +09:00
smoogipoo
024adb699c Add test and fix several issues 2021-04-08 00:12:21 +09:00
smoogipoo
648a9d5258 Add multiplayer spectator player grid 2021-04-08 00:12:21 +09:00
smoogipoo
93c5935ebc Add match subscreen support + test 2021-04-07 20:46:30 +09:00
smoogipoo
abd637ffaa Add button to footer 2021-04-07 17:35:18 +09:00
smoogipoo
c744f77cfa Add participant panel state 2021-04-07 16:40:24 +09:00
smoogipoo
6be9c9f0f4 Link up ready button to spectate state 2021-04-07 16:35:50 +09:00
smoogipoo
6de91d7b6b Add spectate button + test 2021-04-06 21:37:27 +09:00
Dean Herbert
84b2f9a848 Make token private 2021-03-24 13:20:44 +09:00
Dean Herbert
3cd8bf2d7f Move token request construction to LoadAsyncComplete to better allow DI usage 2021-03-23 18:20:55 +09:00
Dean Herbert
571124669d Remove all references to "score submission" from Player 2021-03-23 18:20:55 +09:00
Dean Herbert
12f050264a Further split out a player class which submits to "rooms" 2021-03-23 18:20:55 +09:00
Dean Herbert
7045fce555 Move score submission logic in general out to its own Player type 2021-03-23 18:20:55 +09:00
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Dean Herbert
23a46819dc
Merge branch 'master' into multiplayer-confirm-on-exit 2021-03-03 20:35:31 +09:00
Dean Herbert
0f5bce70ad Split confirmation dialog classes apart 2021-03-03 20:34:37 +09:00
Dean Herbert
0ede28da2f Fix test failures due to missing dependency 2021-03-03 15:24:55 +09:00
Dean Herbert
cb4c3503a0 Confirm exiting a multiplayer match 2021-03-03 14:54:18 +09:00
Dean Herbert
d332fd2414 Handle case where local user tries to change beatmap while not the host 2021-03-03 14:53:47 +09:00
Dean Herbert
36e1fb6da8 Add flow to allow MatchSubScreen to handle beatmap presentation locally 2021-03-03 14:13:51 +09:00
Dan Balasescu
9fc57b2145
Merge pull request #11832 from peppy/leaderboard-compact-mode
Show compact leaderboard during gameplay to reduce distractions
2021-02-19 18:17:46 +09:00
Dean Herbert
b8c1e8ed7a
Merge pull request #11708 from frenzibyte/multiplayer-participant-rank
Display user global rank for multiplayer room participants
2021-02-19 16:57:30 +09:00
Dean Herbert
9d02f589fe Compact leaderboard during gameplay 2021-02-19 16:51:39 +09:00
Dean Herbert
4504023a23 Merge branch 'master' into playlists-freemod-support 2021-02-19 14:43:59 +09:00
Dean Herbert
df05c57f44 Merge branch 'master' into playlists-freemod-support 2021-02-19 14:35:20 +09:00
smoogipoo
bc10fcafae Remove now unnecessary schedule 2021-02-19 13:23:51 +09:00
Dean Herbert
b68dbbceff
Merge branch 'master' into multiplayer-participant-rank 2021-02-19 13:16:44 +09:00
Salman Ahmed
e14a59f272 Fix creating ruleset instances per LINQ select 2021-02-18 15:26:59 +03:00
smoogipoo
e911760318 Split OnlinePlayComposite to remove if-statement 2021-02-18 15:47:33 +09:00
smoogipoo
6ef235c4c5 Fix beatmap panel flickering multiple times 2021-02-17 21:54:43 +09:00
smoogipoo
2a1bb2f578 Fix selected item potentially changing during gameplay 2021-02-17 21:40:21 +09:00
smoogipoo
8930ff4465 Merge branch 'master' into multiplayer-no-playlist-mangling 2021-02-17 19:29:01 +09:00
smoogipoo
70a995919c Update comments 2021-02-17 17:58:24 +09:00
Dan Balasescu
57ede6eb37
Merge branch 'master' into fix-multiplayer-mod-propagation-race 2021-02-17 16:22:51 +09:00
Salman Ahmed
a845e96b7a Replace Ranks.Global completely with a GlobalRank property 2021-02-17 08:52:04 +03:00
Bartłomiej Dach
8f72631c31 Fix typo in comment 2021-02-16 21:48:19 +01:00
smoogipoo
100097d78f Fix playlist not being handled correctly for non-joined cases 2021-02-16 21:32:35 +09:00
smoogipoo
379393fe10 Merge branch 'multiplayer-long-types' into multiplayer-no-playlist-mangling 2021-02-16 19:37:55 +09:00
smoogipoo
3e802531d3 Use long type where required in multiplayer 2021-02-16 19:34:01 +09:00
smoogipoo
2a1096a3c8 Make BeatmapSelectionControl use the selected item 2021-02-16 19:02:16 +09:00
smoogipoo
3ff9e14e35 Make StatefulMultiplayerClient control current playlist item 2021-02-16 18:56:13 +09:00
smoogipoo
f25b5147ef Select last playlist item in match subscreen 2021-02-16 15:37:45 +09:00