Dean Herbert
24f330e5c1
Avoid MatchSettingsOverlay
base class potentially accessing an uninitialised field
2021-07-12 15:49:19 +09:00
smoogipoo
435b4b0e6e
Remove pill inheritance
2021-07-12 15:21:00 +09:00
smoogipoo
a8cbffa57e
Add playlist count pill
2021-07-12 15:11:53 +09:00
smoogipoo
185e36bf97
Split pill display into abstract class
2021-07-12 15:11:10 +09:00
smoogipoo
b4b0b862ef
Adjust some layout
2021-07-12 14:07:21 +09:00
smoogipoo
8929aa0ca7
Initial redesign of DrawableRoom
2021-07-07 14:47:24 +09:00
smoogipoo
2ddfa15a80
Redesign RoomStatusInfo
2021-07-07 14:47:24 +09:00
smoogipoo
c50e3fd317
Clean up selection box construction
2021-07-07 14:47:24 +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
4c95af4b16
Add star rating range display
2021-07-01 20:35:31 +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
8e04d73b67
Merge branch 'rework-multiplayer-test-scenes' into spectator-start-at-end-2
2021-06-29 17:06:57 +09:00
smoogipoo
bcdf36e77b
Merge branch 'master' into spectator-start-at-end-2
2021-06-29 15:53:58 +09:00
smoogipoo
92fa99700e
Merge branch 'master' into rework-multiplayer-test-scenes
2021-06-29 15:39:59 +09:00
smoogipoo
a3b1e1d5fc
Check for null ruleset in FilterCriteria
2021-06-29 15:18:40 +09:00
Bartłomiej Dach
50c27d2635
Update usages of IHasTooltip
in line with framework localisation changes
2021-06-25 19:10:04 +02:00
Dean Herbert
51dd7fc238
Merge pull request #13622 from aitani9/mod-settings-dropdown-height
...
Decrease the max dropdown height in mod settings
2021-06-25 17:42:47 +09:00
Dean Herbert
5883922177
Remove mod multiplier completely
2021-06-25 16:36:31 +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
Joseph Madamba
00b4cf1829
Handle sub screen OnExiting
logic on main screen
2021-06-21 20:20:43 -07:00
Dean Herbert
45122594e5
Remove the synchronous version of PrepareScoreForResults
...
Replaces all existing usages with the `async` version.
2021-06-18 16:24:08 +09:00
Dean Herbert
e0a3696145
Merge branch 'master' into player-completion-refactoring
2021-06-17 23:51:42 +09:00
Dean Herbert
d03c6da60c
Refactor and redocument updateCompletionState()
and surrounding methods
2021-06-17 19:13:53 +09:00
Dean Herbert
808b2baa41
Consume new behaviour to fix UserTile
discrepancy
...
Closes https://github.com/ppy/osu/issues/13522 .
2021-06-17 16:31:12 +09: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
b754c52392
Update ModAutoplay
matching to use new UserPlayable
flag instead
2021-06-09 14:32:48 +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
smoogipoo
ab9290772b
Fix a similar case with online play sub-screens
2021-06-08 17:54:54 +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
Dean Herbert
df426b9334
Merge pull request #12852 from timiimit/multi-larger-freemod-overlay
...
Make freemod selection overlay taller in multiplayer room
2021-05-21 18:45:15 +09:00
Dean Herbert
abc96057b2
Remove relative height specification and use constant height
2021-05-21 17:55:46 +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
timiimit
1fd00d1313
Change from fullscreen to 0.7
2021-05-18 21:52:28 +02:00
timiimit
ac5fe0c18c
Change larger freemod selection overlay
2021-05-18 18:50:42 +02:00
Dan Balasescu
ce7c503e6e
Merge branch 'master' into playlist-unicode
2021-05-17 11:47:10 +09:00
Salman Ahmed
8338f702c3
Remove not required null conditional
2021-05-14 09:32:56 +03:00
Dean Herbert
48672f8afd
Add very basic test logic to ensure PlayerLoader
is present for playlists
2021-05-14 15:02:36 +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
ef3801b5dd
Add helper method supporting RomanisableString
2021-04-19 15:29:26 +09:00
PercyDan54
488001d570
Support SpriteText for LinkFlowContainer
2021-04-18 20:58:08 +08:00
PercyDan54
646403b826
Fix CI errors
2021-04-18 10:54:42 +08:00
PercyDan54
1339c126a4
Remove unused using
2021-04-18 09:54:50 +08:00
PercyDan54
cfaaf2e83e
Add ToRomanisableString()
2021-04-18 09:52:25 +08:00
PercyDan54
512cec3458
Use unicode for playlists
2021-04-18 00:10:01 +08: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
smoogipoo
65a6f9f8a4
Merge branch 'fix-initial-spectator-state-callback' into multiplayer-spectator-screen
2021-04-16 18:26:46 +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
2c1f20a38f
Merge branch 'master' into fix-editor-alt-scroll
2021-04-13 19:36:25 +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
0eab9daf13
Update existing overlay containers to not block scroll input
2021-04-12 16:41:36 +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
99bee73ac1
Merge branch 'master' into add-spectate-button-and-state
2021-04-07 22:07:52 +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
56c13148f1
Fix typo in class name
2021-04-07 16:45:10 +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
6a4157d193
Remove unused using statement
2021-03-26 16:13:43 +09:00
Dean Herbert
7faca766e4
Fix crash on attempting to join lobby using key press during a pending join
...
Closes https://github.com/ppy/osu/issues/12040 .
2021-03-26 14:49:05 +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
9c690f9545
Fix second usage
2021-03-23 14:08:00 +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
Dean Herbert
90e8308716
Merge branch 'master' into localisation-refactor-framework
2021-02-25 17:28:55 +09:00
Dean Herbert
e82eaffaed
Flip order back to original for romanisable strings
2021-02-25 14:14:07 +09:00
Dean Herbert
8a97e2e28d
Update LocalisedString usages to RomanisedString
2021-02-22 19:01:42 +09:00
Dean Herbert
1fd76ea3fb
Apply changes to UI components overriding functions with changing signatures
2021-02-22 19:01:42 +09:00
smoogipoo
ccb83ef3a3
Fix checkbox not being updated
2021-02-22 15:47:47 +09:00
smoogipoo
8d463987dd
Fix being able to select incompatible freemods
2021-02-22 13:24:24 +09:00
Dan Balasescu
8037b101cb
Merge branch 'master' into perform-from-subscreen-support
2021-02-22 11:55: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
362e4802f7
Add the ability for PerformFromMenuRunner to inspect nested screen stacks
2021-02-19 17:58:04 +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
484968d797
Fix weird bool check
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-02-19 14:46:10 +09:00
Dean Herbert
4504023a23
Merge branch 'master' into playlists-freemod-support
2021-02-19 14:43:59 +09:00
Dean Herbert
39059ed82d
Remove unnecessary null coalesce check
2021-02-19 14:36:51 +09:00
Dean Herbert
df05c57f44
Merge branch 'master' into playlists-freemod-support
2021-02-19 14:35:20 +09:00
Dean Herbert
a2aec6bcdc
Merge pull request #11808 from smoogipoo/multiplayer-no-playlist-mangling
...
Rework multiplayer playlist handling to support multiple items
2021-02-19 14:33:53 +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
Dean Herbert
421cdb6650
Consume new method in existing usages (and remove some unnecessary set/unset code)
2021-02-18 15:01:11 +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
604add04e4
Fix song select mods being reset incorrectly
2021-02-17 19:06:37 +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
Dean Herbert
86faa7f465
Merge pull request #11798 from smoogipoo/multiplayer-long-types
...
Use long type where required in multiplayer
2021-02-17 15:50:12 +09:00
Salman Ahmed
a845e96b7a
Replace Ranks.Global
completely with a GlobalRank
property
2021-02-17 08:52:04 +03:00
Salman Ahmed
d7c91a7c6f
Merge branch 'fix-tournament-user-population' into multiplayer-participant-rank
2021-02-17 08:42:59 +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
Dan Balasescu
bef0e5cfa1
Merge pull request #11790 from peppy/playlists-show-remaining-attempts
...
Display remaining attempts for playlist rooms with room-level attempt limits
2021-02-16 21:10:19 +09:00
Dan Balasescu
ffa90c1a23
Remove whitespace
2021-02-16 20:23:19 +09:00
Dan Balasescu
8e077c2857
Merge pull request #11791 from peppy/rooms-container-fix-click-deselection
...
Add the ability to deselect the currently selected room via clicking away
2021-02-16 20:22:24 +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
e24a5949c5
Fix resolve
2021-02-16 19:26:51 +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
855d24dce7
Cache selected item bindable from RoomSubScreen
2021-02-16 17:38:33 +09:00
smoogipoo
f25b5147ef
Select last playlist item in match subscreen
2021-02-16 15:37:45 +09:00
Dean Herbert
fdcb6384cb
Add user mod selection to playlists room screen
2021-02-16 15:14:56 +09:00
Dean Herbert
97a7572cb8
Move UserModSelectOverlay to RoomSubScreen for Playlists consumption
2021-02-16 15:14:48 +09:00
Dean Herbert
fff1cb0b35
Fix allowed mods not being copied when populating playlist items
2021-02-16 15:14:21 +09:00
Dean Herbert
da42c6d282
Expose FreeMods from OnlinePlaySongSelect
2021-02-16 15:14:21 +09:00
Dean Herbert
52e544aa67
Revert "Remove redundant double call to ValueChanged on UserMods change"
...
This reverts commit 9ed45ce1ca
.
2021-02-16 14:42:31 +09:00
Dean Herbert
9ed45ce1ca
Remove redundant double call to ValueChanged on UserMods change
2021-02-16 14:31:00 +09:00
Dean Herbert
0ca747b39f
Merge branch 'master' into fix-multiplayer-mod-propagation-race
2021-02-16 14:25:27 +09:00
Dean Herbert
31a5cdd8ac
Fix current selection not updating visually after creating a new playlist
2021-02-16 14:02:21 +09:00
Dean Herbert
e969ca8974
Remove unused using statement that rider could not identify
2021-02-16 13:52:42 +09:00
Dean Herbert
e82922f8c5
Add the ability to deselect the currently selected room via clicking away
...
Always felt wrong that you couldn't do this until now.
2021-02-16 13:44:37 +09:00
Salman Ahmed
0e7f52b5cc
Always use JSON property global_rank
for global ranks instead
2021-02-16 07:33:16 +03:00
Salman Ahmed
5b4999e8af
Update user statistics retrieval with API changes
2021-02-16 07:33:13 +03:00
Dean Herbert
02417697e9
Display remaining attempts for playlist rooms with room-level attempt limits
2021-02-16 13:32:14 +09:00
Salman Ahmed
d15ffff9a5
Simplifiy user statistics retrieval to one-time on deserialization
2021-02-16 04:48:36 +03:00
Salman Ahmed
a1496cd8f3
Remove necessity of using CurrentModeRank
as a fallback
2021-02-16 04:48:36 +03:00
Salman Ahmed
90aa6256d7
Merge branch 'master' into multiplayer-participant-rank
2021-02-16 04:44:57 +03:00
Dan Balasescu
6bfc7da671
Fix sample potentially playing at the wrong frequency
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-02-15 18:10:45 +09:00
smoogipoo
c6ed3efa4a
Merge branch 'master' into non-concurrent-sample-playback
2021-02-15 14:47:32 +09:00
Joehu
b28a906197
Fix extra mod settings overflowing from screen
2021-02-12 10:29:29 -08:00
Joehu
52975c5185
Remove hardcoded padding from main content
2021-02-12 10:23:33 -08:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dean Herbert
889a99c49c
Use AddOnce everywhere to reduce potential call count
2021-02-11 16:00:52 +09:00
Dean Herbert
549e7520c5
Move scheduler logic to client callback rather than inside the update method
2021-02-11 16:00:52 +09:00
Dean Herbert
21f66a19fd
Make server authoritative in which mods the client should be using when gameplay starts
2021-02-11 15:55:18 +09:00
smoogipoo
86682cdb34
Add client/room null check
2021-02-10 20:16:26 +09:00
smoogipoo
6fff7c39da
Ensure tracker is disposed
2021-02-10 20:09:45 +09:00
smoogipoo
822c66033f
Add local-user freemod configuration
2021-02-10 19:56:59 +09:00
Dan Balasescu
92599aa02b
Merge branch 'master' into user-beatmap-downloading-states-2
2021-02-09 21:06:09 +09:00
Salman Ahmed
d101add159
Display user global rank for selected ruleset in participants panel
2021-02-08 21:25:50 +03:00
Dean Herbert
5fbed05d04
Merge pull request #11551 from smoogipoo/fix-leave-room-race-2
...
Fix client potentially not leaving a room on exiting multiplayer
2021-02-08 19:23:14 +09:00
smoogipoo
a08c51f213
Remove duplicate code
2021-02-08 19:23:10 +09:00
Dean Herbert
34a1918d03
Merge branch 'master' into user-beatmap-downloading-states-2
2021-02-06 00:27:55 +09:00
Dean Herbert
dd4207cb4e
Merge pull request #11661 from peppy/playlist-max-room-attempts
...
Add support for setting the maximum attempt count for a playlist
2021-02-05 23:40:38 +09:00
Dean Herbert
7f82a06a61
Remove no longer used using directive
2021-02-05 23:08:31 +09:00
Dean Herbert
0679901e4d
Update error handling
2021-02-05 22:53:40 +09:00
Dean Herbert
3ca64a1cb2
Merge branch 'master' into playlist-max-room-attempts
2021-02-05 22:13:13 +09:00
smoogipoo
95ad7ea8f7
Fix mods on participant panels flashing when changed
2021-02-05 18:44:33 +09:00
Dean Herbert
f338fa114b
Merge branch 'master' into user-beatmap-downloading-states-2
2021-02-05 18:02:40 +09:00
Dean Herbert
791cbb7f03
Don't reset ready state if the map is locally available
2021-02-05 17:17:29 +09:00
Dean Herbert
3e750feaa4
Subclass LocalPlayerModSelectOverlay to correctly deselect incompatible mods on free mod selection
2021-02-05 16:42:35 +09:00
Dean Herbert
be91f54349
Add back edge case with comment
2021-02-05 16:19:45 +09:00
Dean Herbert
9ba5ae3db7
Remove lots of unnecessary client side logic
2021-02-05 16:17:02 +09:00
Dean Herbert
1b6a052798
Refactor logic to suck a bit less
2021-02-05 15:46:03 +09:00
Dean Herbert
d1f9aa52a4
Inline variable
2021-02-05 15:33:48 +09:00
Dean Herbert
9e9e382bee
Merge branch 'master' into user-beatmap-downloading-states-2
2021-02-05 15:27:17 +09:00
Dean Herbert
2fc3a97f56
Merge pull request #11516 from frenzibyte/ready-button-clean-up
...
Replace ready button beatmap logic with using `MultiplayerBeatmapTracker` instead
2021-02-05 15:09:25 +09:00
Dean Herbert
de8724b1f6
Use AddRangeInternal for simplicity, but disallow ClearInternal for safety
2021-02-05 14:39:25 +09:00
Dean Herbert
fc37d8b7df
Refactor content redirection logic to be easier to parse
2021-02-05 14:25:19 +09:00
Dean Herbert
9258836f10
Merge pull request #11641 from smoogipoo/freemods
...
Add support for optional per-user mods in multiplayer (aka freemod)
2021-02-05 13:59:30 +09:00
Salman Ahmed
78ea2d50bb
Merge branch 'master' into ready-button-clean-up
2021-02-05 07:23:11 +03:00
smoogipoo
df2da5950f
Add back vertical spacer
2021-02-05 13:09:13 +09:00
smoogipoo
2e85ce5b82
Rename UserMods -> Mods for MultiplayerRoomUser
2021-02-05 12:40:16 +09:00
Dan Balasescu
a71d6a4c97
Merge branch 'master' into multiplayer-beatmap-tracker
2021-02-05 12:25:36 +09:00
smoogipoo
a2fdba3e51
Rename to OnlinePlayBeatmapAvailabilityTracker
2021-02-05 12:24:38 +09:00
smoogipoo
cf5233c6ab
Merge branch 'master' into freemods
2021-02-05 00:27:14 +09:00
Dean Herbert
f23ca7c7cf
Centralise selection animation logic
2021-02-04 18:10:55 +09:00
Dean Herbert
daf7ab9422
Apply the expected font to the checkbox's label
2021-02-04 16:58:15 +09:00
Dean Herbert
48a58e790e
Don't specify arbitrary width
2021-02-04 16:57:39 +09:00
Bartłomiej Dach
cb87da2bb8
Merge branch 'master' into freemod-select-overlay
2021-02-03 22:19:35 +01:00
Dean Herbert
b06f4ee124
Merge branch 'master' into solo-mod-select-overlay
2021-02-03 23:44:08 +09:00
Dean Herbert
17072a5dda
Merge pull request #11664 from smoogipoo/modselect-dynamic-isvalid
...
Make it possible to change IsValidMod in mod selection
2021-02-03 23:43:36 +09:00
Dean Herbert
2a52851e68
Merge branch 'master' into modselect-dynamic-isvalid
2021-02-03 22:11:33 +09:00
Dean Herbert
9d7164816c
Add reverse binding for max attempts (currently unused but good for safety)
2021-02-03 22:02:40 +09:00
Dean Herbert
3fe190cfbe
Show original error message on web exceptions (or is no message is returned)
2021-02-03 22:00:16 +09:00
Dan Balasescu
f24a6178bc
Merge branch 'master' into ongoing-tracker-fix-more
2021-02-03 21:00:45 +09:00
smoogipoo
21d5f842fc
Re-layout to reduce movement
2021-02-03 14:53:55 +09:00
Dan Balasescu
2a4488c11b
Merge branch 'master' into freemods
2021-02-03 14:12:39 +09:00
Bartłomiej Dach
fc84ec1313
Move anchor specification to central place
2021-02-02 22:18:14 +01:00
Bartłomiej Dach
181d2c672b
Fix outdated comment
2021-02-02 22:05:25 +01:00
Bartłomiej Dach
fe7f4f7222
Merge branch 'master' into playlists-item-visual-improvements
2021-02-02 21:26:16 +01:00
Salman Ahmed
50d57a3931
Move tracker loading into BDL
2021-02-02 17:22:48 +03:00
smoogipoo
aeb3ed8bb3
Renamespace footer button
2021-02-02 21:46:22 +09:00
smoogipoo
6453367a9c
Merge branch 'freemod-select-overlay' into freemods
2021-02-02 21:43:35 +09:00
smoogipoo
097ce37e96
Merge branch 'fix-mod-icon' into freemods
2021-02-02 21:37:24 +09:00
smoogipoo
6ff8e8dd37
Disable a few mods by default
2021-02-02 21:29:08 +09:00
smoogipoo
5a56e2ba4b
Fix sound duplication due to checkbox
2021-02-02 21:29:00 +09:00
smoogipoo
643c0605d8
Implement the freemod selection overlay
2021-02-02 21:14:38 +09:00
smoogipoo
e58ece9e10
Make ModSelectOverlay abstract
2021-02-02 21:06:04 +09:00
smoogipoo
10ceddf3ff
Make IsValidMod adjustable
2021-02-02 20:47:50 +09:00
smoogipoo
a2e3b1c0e4
Move Mods reset code to OnlinePlaySongSelect
2021-02-02 19:02:39 +09:00
Dean Herbert
fc3adaf612
Show maximum attempt count in room display (when not unlimited)
2021-02-02 18:45:05 +09:00
Dean Herbert
9b209d67dc
Match size of participants text with host display
2021-02-02 18:45:05 +09:00
Dean Herbert
96d20bf607
Reduce height of ModeTypeInfo to match adjacent text sections
2021-02-02 18:45:05 +09:00
Dean Herbert
90acdd4361
Display the correct error message on score submission failure
...
The server will return a valid error message in most cases here. We may
eventually want to add some fallback message for cases an error may
occur that isn't of
[InvariantException](3169b33ccc/app/Exceptions/InvariantException.php (L9-L10)
) type, but I'm not 100% sure
how to identify these just yet.
2021-02-02 18:45:05 +09:00
Dean Herbert
6fdaf02518
Hook up room-level max attempts to UI
2021-02-02 18:45:05 +09:00
Dean Herbert
40233fb47c
Make font bolder
2021-02-02 17:09:59 +09:00
Dean Herbert
6d9ac4d0f0
Increase darkness of gradient on buttons to make text readability (slightly) better
2021-02-02 16:57:27 +09:00
Dean Herbert
fb52ac8c69
Share remove from playlist button design with adjacent download button
2021-02-02 16:57:08 +09:00
Dean Herbert
bdc05af4b7
Make playlist settings area taller to better match screen aspect ratio
2021-02-02 16:30:45 +09:00
smoogipoo
0bce9d6833
Clear freemods when ruleset is changed
2021-02-02 13:54:58 +09:00
smoogipoo
173e20938c
Revert changes to ModDisplay
2021-02-02 13:49:58 +09:00
smoogipoo
87f9e46b16
Add option to select all
2021-02-02 13:37:25 +09:00
smoogipoo
9c3c0895cf
Hide customise button + multiplier label
2021-02-02 13:36:58 +09:00
smoogipoo
7a14e14e67
Refactor condition
...
This won't make any noticeable difference, but is the more correct way
to handle MultiMod because flattening works through infinite recursion levels.
2021-02-02 12:54:26 +09:00
smoogipoo
b54f65c282
Exclude more mods from multiplayer
2021-02-02 12:48:15 +09:00
smoogipoo
4cf52077b6
Make checkbox also respond to all mods selected
2021-02-02 11:11:28 +09:00
smoogipoo
97e3023df9
Renamespace/rename MatchSongSelect -> PlaylistsSongSelect
2021-02-01 20:16:58 +09:00
smoogipoo
e5ca9b1e50
Remove usage of removed method
2021-02-01 19:28:33 +09:00
smoogipoo
9c4c47599f
Merge branch 'master' into freemods
2021-02-01 19:28:10 +09:00
smoogipoo
ee92ec0a5c
Disallow local user mod customisation
2021-02-01 18:54:47 +09:00
smoogipoo
89a42d60fb
General cleanup
2021-02-01 18:50:32 +09:00
smoogipoo
3a906a89fc
Pin mod position in participant panels
2021-02-01 18:27:15 +09:00
smoogipoo
51cb288717
Reduce mod selection height
2021-02-01 18:18:59 +09:00
smoogipoo
e134af82f5
Stack freemods for the local user
2021-02-01 18:16:38 +09:00
smoogipoo
3e74f8fd9e
Disable customisation of freemods, move stacking to property
2021-02-01 18:11:20 +09:00
smoogipoo
3cd30d284e
Renamespace
2021-02-01 18:08:49 +09:00
smoogipoo
f538963607
Extra mods -> user mods
2021-02-01 17:57:32 +09:00
smoogipoo
ac2a995041
Add user and panel states
2021-02-01 17:54:56 +09:00
Dean Herbert
1d8de2f718
Rename class to better match purpose
2021-02-01 17:32:54 +09:00
Dean Herbert
c73a05d0b5
Merge branch 'master' into multiplayer-beatmap-tracker
2021-02-01 17:24:24 +09:00
smoogipoo
0909c73ead
Once again disallow DT/etc as allowable mods
2021-02-01 15:07:56 +09:00
smoogipoo
b43e529964
Fix allowed mods being copied into required mods
2021-02-01 15:07:43 +09:00
smoogipoo
426569c2a9
Move common song select implementation for online play
2021-02-01 14:57:39 +09:00
smoogipoo
b846146f16
Update mods when resuming room subscreen
2021-02-01 13:58:44 +09:00
smoogipoo
4ae10b1e1c
Add initial UI for selecting extra mods
2021-02-01 13:40:59 +09:00
smoogipoo
e02e3cf19a
Disallow selecting DT/HT/WU/WD as allowable freemods
2021-02-01 13:35:48 +09:00
smoogipoo
797a810287
Allow unstacking mods
2021-02-01 13:24:56 +09:00
smoogipoo
230b347c1e
Move ModSelectOverlay.IsValidMod to a property
2021-02-01 12:18:11 +09:00
Bartłomiej Dach
90ba8ae234
Don't part room if join task was cancelled
2021-01-30 23:39:01 +01:00
Bartłomiej Dach
5f320cd426
Move lease check inside schedule
...
Theoretically safer due to avoiding a potential data race (change in
`leasedInProgress` between the time of the check and start of schedule
execution).
2021-01-30 21:03:09 +01:00
Bartłomiej Dach
96f56d1c94
Return tracker lease via UnbindAll()
...
Improves reliability by being fail-safe in case of multiple returns,
which can happen if the operation tracker is part of a screen being
exited (as is the case with its current primary usage in multiplayer).
2021-01-30 21:00:13 +01:00
Dean Herbert
a61444690e
Remove all usage of CatchUnobservedExceptions
...
This should no longer be required with the recent framework side change
that stops a game from crashing on unobserved exceptions
(https://github.com/ppy/osu-framework/pull/4171 ).
2021-01-29 16:32:29 +09:00
smoogipoo
b79d1c7b81
Add mods to footer
2021-01-27 22:33:03 +09:00
smoogipoo
ff8ee379fb
Fix possible nullref
2021-01-27 22:27:31 +09:00
smoogipoo
4c256f1fb3
Actually populate the playlist item
2021-01-27 22:23:38 +09:00
smoogipoo
45e41aaeac
Initial implementation of freemod selection overlay
2021-01-27 22:15:53 +09:00
Dean Herbert
10e8b7082e
Rework logic to avoid custom disposal early return handling
2021-01-25 16:53:58 +09:00
Bartłomiej Dach
d22f557a3b
Remove possibility of double-disposal interference
2021-01-23 16:14:58 +01:00
Bartłomiej Dach
7f89d9117d
Make disposal of tracker idempotent for operations
2021-01-23 16:04:12 +01:00
Bartłomiej Dach
18b309a195
Make disposal of tracker operation idempotent
2021-01-23 16:02:51 +01:00
Dean Herbert
e6980688f6
Leave the multiplayer channel when leaving multiplayer
2021-01-21 15:42:23 +09:00
Dan Balasescu
7da7079ef2
Merge pull request #11537 from Mysfit/mp-initial-creation-screen-fix
...
Fix match/playlist room screen showing briefly behind initial room settings window on creation.
2021-01-20 22:05:14 +09:00
Dan Balasescu
455383c3c0
Merge pull request #11528 from peppy/fix-autoplay-in-multiplayer
...
Fix multiplayer mod select showing autoplay as a choice
2021-01-20 21:49:16 +09:00
Salman Ahmed
34612ae233
Forward internal management to a container alongside tracker
2021-01-19 20:01:22 +03:00
Mysfit
052e9eef02
Added inline comments
2021-01-19 09:16:39 -05:00
Mysfit
33677f5770
Use BindValueChanged to show main content for new multiplayer and playlist rooms when the settings overlay is hidden.
2021-01-19 08:52:43 -05:00
Mysfit
6d1d488831
Revert "Use the client.RoomUpdated action instead of binding the value of the settings overlay visibility and creating an event from it based on its ValueChanged action."
...
This reverts commit cbfb999c28
.
2021-01-19 08:24:14 -05:00
Mysfit
9b7187e3c8
Revert "Use fades instead of event listening. Fixed same issue in the playlist room creation."
...
This reverts commit 3a7608275d
.
2021-01-19 08:23:31 -05:00
smoogipoo
de9d075f94
Initial sample + samplechannel rework
2021-01-19 17:11:40 +09:00
Mysfit
3a7608275d
Use fades instead of event listening. Fixed same issue in the playlist room creation.
2021-01-19 00:35:56 -05:00
Mysfit
cbfb999c28
Use the client.RoomUpdated action instead of binding the value of the settings overlay visibility and creating an event from it based on its ValueChanged action.
2021-01-18 17:13:24 -05:00
Mysfit
5233a0449a
Hide main room subscreen on initial mp room creation. Toggle mp room subscreen visibility based on settings overlay visibility before room is created.
2021-01-18 16:08:06 -05:00
Salman Ahmed
4a1acdece2
Merge branch 'multiplayer-beatmap-tracker' into ready-button-clean-up
2021-01-18 20:06:47 +03:00
Salman Ahmed
dc91cebce9
Merge branch 'master' into multiplayer-beatmap-tracker
2021-01-18 19:15:45 +03:00
Salman Ahmed
e6ceaad732
Revert user state back to idle upon availability change
2021-01-18 17:23:51 +03:00
Dean Herbert
0b165dce4b
Fix multiplayer mod select showing autoplay as a choice
2021-01-18 17:50:32 +09:00
Salman Ahmed
6deb10e075
Add UI state display for each client's beatmap availability
2021-01-18 11:10:02 +03:00
Salman Ahmed
4e6c1a3906
Update client beatmap availability in-line with tracker
2021-01-18 10:51:39 +03:00
Salman Ahmed
585aa87c53
Fix playlist item download button never shown back after hiding
2021-01-17 19:17:14 +03:00
Dean Herbert
5fd644fc57
Unify variable names
2021-01-17 22:42:48 +09:00
Dean Herbert
edb6d3907b
Merge pull request #11472 from frenzibyte/explicit-beatmap-markers
...
Add explicit content markers to beatmap panels and overlay
2021-01-17 21:44:10 +09:00
Salman Ahmed
59ae50b0e5
Clean up ready button logic into using MultiplayerBeatmapTracker
2021-01-17 01:11:03 +03:00
Salman Ahmed
cf23781036
Cache beatmap tracker and bind to selected item in RoomSubScreen
2021-01-17 00:01:11 +03:00
Dan Balasescu
67b5ebadf5
Merge branch 'master' into fix-is-connected-thread-safety
2021-01-15 12:56:21 +09:00
Dan Balasescu
3e8732a59f
Merge branch 'master' into fix-participants-list
2021-01-14 21:30:53 +09:00
Salman Ahmed
1502b07ea8
Add explicit pill to playlist items
2021-01-13 12:27:15 +03:00
Bartłomiej Dach
2d3cacca11
Fix non-hosts crashing on load requested
...
`onLoadRequested()` always released the `readyClickOperation` ongoing
operation, without checking whether it actually needs to/should (it
should only do so if the action initiating the operation was starting
the game by the host). This would crash all other consumers, who already
released the operation when their ready-up operation completed server
side.
To resolve, relax the constraint such that the operation can be ended
multiple times in any order. At the end of the day the thing that
matters is that the operation is done and the ready button is unblocked.
2021-01-13 00:58:53 +01:00
Dean Herbert
7298adc9d9
Fix non-threadsafe usage of MultiplayerClient.IsConnected
2021-01-12 19:04:16 +09:00
Dean Herbert
b51b07c3a9
Fix unstable multiplayer room ordering when selection is made
2021-01-12 18:05:29 +09:00
Dean Herbert
422260797b
Revert polling changes to fix participant list display
...
It turns out this polling was necessary to get extra data that isn't
included in the main listing request. It was removed deemed useless, and
in order to fix the order of rooms changing when selecting a room.
Weirdly, I can't reproduce this happening any more, and on close
inspection of the code can't see how it could happen in the first place.
For now, let's revert this change and iterate from there, if/when the
same issue arises again.
I've discussed avoiding this second poll by potentially including more
data (just `user_id`s?) in the main listing request, but not 100% sure
on this - even if the returned data is minimal it's an extra join
server-side, which could cause performance issues for large numbers of
rooms.
2021-01-12 17:26:00 +09:00
Bartłomiej Dach
8c3955d341
Improve safety of ongoing operation tracker
...
Finishing an operation started via
`OngoingOperationTracker.BeginOperation()` was risky in cases where the
operation ended at a callback on another thread (which, in the case of
multiplayer, is *most* cases). In particular, if any consumer registered
a callback that mutates transforms when the operation ends, it would
result in crashes after the framework-side safety checks.
Rework `OngoingOperationTracker` into an always-present component
residing in the drawable hierarchy, and ensure that the
`operationInProgress` bindable is always updated on the update thread.
This way consumers don't have to add local schedules in multiple places.
2021-01-09 22:45:24 +01:00
Dean Herbert
b69fe8a274
Merge branch 'master' into disable-repeat-multi-actions
2021-01-09 10:15:20 +09:00
Bartłomiej Dach
c2eeb822b8
Rename {joiningRoom -> operationInProgress}
2021-01-08 22:23:38 +01:00
Bartłomiej Dach
dad5dd3667
Remove unnecessary permissiveness wrt null
2021-01-08 22:21:54 +01:00
Dean Herbert
edd328c8fe
Move bindable closer to source class
2021-01-08 17:24:55 +09:00
Bartłomiej Dach
52687fc37c
Merge branch 'master' into fix-transform-mutation-loading-layer
2021-01-05 23:10:51 +01:00
Dean Herbert
54982dcdd7
Refactor LoadingLayer to avoid applying effects to external drawables
...
In theory this seemed like a good idea (and an optimisation in some
cases, due to lower fill rate), but in practice this leads to weird edge
cases.
This aims to do away with the operations on external drawables by
applying a dim to the area behind the `LoadingLayer` when required.
I went over each usage and ensured they look as good or better than
previously.
The specific bad usage here was the restoration of the colour on dispose
(if the `LoadingLayer` was disposed in a still-visible state).
I'm aware that the `BeatmapListingOverlay` will now dim completely during
load. I think this is fine for the time being.
2021-01-05 17:31:45 +09:00
Dean Herbert
ed6ffe2ef1
Remove hacky code
2021-01-05 14:54:59 +09:00
Dean Herbert
deb1ad7bca
Merge branch 'master' into disable-repeat-multi-actions
2021-01-04 23:38:29 +09:00
Salman Ahmed
485a57776b
Fix hasBeatmap
potentially checking on outdated DeletePending
value
2021-01-04 10:28:41 +03:00
Salman Ahmed
ea38b00b29
Schedule all calls to updateBeatmapState()
2021-01-04 10:27:08 +03:00
Salman Ahmed
445a4bd01c
Re-query beatmap info on database changes
2021-01-04 09:00:16 +03:00
Bartłomiej Dach
7d9a61fbc1
Handle unobserved exceptions from ready button properly
2020-12-31 11:57:13 +01:00
Bartłomiej Dach
f800448c87
Move game start logic to a higher level
2020-12-30 18:15:48 +01:00
Bartłomiej Dach
d34609b98e
Rename On{ToggleReady -> ReadyClick}
2020-12-30 16:29:36 +01:00
Bartłomiej Dach
59f2017a13
Move BindValueChanged subscriptions to LoadComplete
2020-12-30 16:22:11 +01:00
Bartłomiej Dach
05f212eb3c
Merge branch 'master' into remove-multiplayer-selection-poller
2020-12-29 12:51:33 +01:00
Bartłomiej Dach
cafa241ef3
Fix ready-up button getting stuck if server operation fails
2020-12-29 09:44:30 +01:00
Bartłomiej Dach
e9b0652359
Move ready-up operation logic again to client
...
To salvage ready up button tests.
2020-12-29 09:16:02 +01:00
Dean Herbert
906a9b79b5
Show an error when forcefully exiting online play due to API failure
2020-12-29 16:47:36 +09:00
Bartłomiej Dach
db52255bbe
Adjust tracker usages to match new API
2020-12-29 08:20:43 +01:00
Bartłomiej Dach
f59ba799d3
Adjust operation tracker implementation
2020-12-29 07:54:27 +01:00
Bartłomiej Dach
9ff2140232
Move ready-up logic to match sub-screen
2020-12-29 07:52:15 +01:00
Bartłomiej Dach
903dca875e
Make localUser a client property
2020-12-29 07:46:22 +01:00
Bartłomiej Dach
f68e4fc88f
Merge branch 'master' into disable-repeat-multi-actions
2020-12-29 07:42:20 +01:00
Dean Herbert
45c578b857
Remove selection polling from multiplayer
...
Looks like this was just copy-paste without any thought into whether it
should exist. It really shouldn't exist.
This is a thing for the playlists system because the *whole system*
there relies on polling the web API to get updated information. In the
case of mutliplayer, we hand off all communications to the realtime
server at the point of joining the rooms.
The argument that this was there to do faster polling on the selection
isn't valid since the polling times were the same for both cases.
Closes #11348 .
2020-12-29 15:10:09 +09:00
Dean Herbert
e3a41f6118
Rename variable to make more sense
...
It needs to be explicitly stated that the users in this list are related
to the *joined* room. Especially since it's sharing its variable name
with `SpectatorStreamingClient` where it has the opposite meaning (is a
list of *globally* playing players).
2020-12-29 14:27:35 +09:00
Bartłomiej Dach
540dec2e7c
Allow null tracker in lounge screen for tests
2020-12-28 22:54:52 +01:00
Bartłomiej Dach
6dc0f6af50
Disable setting apply button for duration of operation
2020-12-28 22:48:03 +01:00
Bartłomiej Dach
af66e45311
Disable create room button after triggering join
2020-12-28 22:48:03 +01:00
Bartłomiej Dach
47ab7c9fd6
Disable ready button after host click
2020-12-28 22:48:03 +01:00
Bartłomiej Dach
9e6994166c
Add helper to track ongoing operations in UI
2020-12-28 22:48:03 +01:00
Bartłomiej Dach
a014d0ec18
Use PlayingUsers when constructing player directly
2020-12-28 19:27:56 +01:00
Dean Herbert
2e88036f39
Merge pull request #11342 from bdach/fix-beatmap-not-reverting
...
Fix user changes in multi song select not reverting on exit without confirmation
2020-12-28 21:56:07 +09:00
Bartłomiej Dach
f16b516e58
Revert user changes if no selection was made
2020-12-28 12:35:17 +01:00
Dean Herbert
046a76cb1d
Allow null users to still be displayed in the participant list
...
The fix here is correcting the access of `user.Country`. The deicision
to have null users display is because this is the best we can do (if
osu-web could not resolve the user). We still want the users in the
lobby to be aware of this user's presence, rather than hiding them from
view.
osu-stable does a similar thing, showing these users as `[Loading]`. I
decided to go with blank names instead because having *any* text there
causes confusion. We can iterate on this in future design updates.
2020-12-28 15:03:44 +09:00
Dean Herbert
fe1bbb1cac
Don't fail if the local user is not present in room users when updating ready button state
2020-12-26 10:49:22 +09:00
Dean Herbert
f9900720d5
Rename OnRoomChanged to OnRoomUpdated to avoid confusion
2020-12-26 10:49:02 +09:00
Bartłomiej Dach
2e4b1b95c2
Rename {Multiplayer -> OnlinePlay}BackgroundSprite
2020-12-25 18:07:34 +01:00
Bartłomiej Dach
ed4b8482b6
Rename {Multiplayer -> OnlinePlay}Composite
2020-12-25 18:07:34 +01:00
Bartłomiej Dach
4c43a67b68
Rename I{Multiplayer -> OnlinePlay}SubScreen
2020-12-25 18:07:34 +01:00
Bartłomiej Dach
e5064ee930
Rename {Multiplayer -> OnlinePlay}SubScreen
2020-12-25 17:02:35 +01:00
Bartłomiej Dach
eb0f125fef
Rename {Multiplayer -> OnlinePlay}SubScreenStack
2020-12-25 17:00:31 +01:00
Bartłomiej Dach
4caf75850b
Rename {Multiplayer -> OnlinePlay}Screen
2020-12-25 17:00:00 +01:00
Bartłomiej Dach
83fb7c7a1a
Re-namespace all files in OnlinePlay directory
2020-12-25 16:50:09 +01:00
Bartłomiej Dach
e797e5ce7a
Rename Multi directory to OnlinePlay
2020-12-25 16:50:02 +01:00