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 MultiplayerRoomUser
s instead of int
s 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