1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-18 01:23:05 +08:00
Commit Graph

841 Commits

Author SHA1 Message Date
Dean Herbert
1be3b74ff3 Fix multiplayer spectator not getting gameplay adjustments applied 2022-09-07 19:12:34 +09:00
Dan Balasescu
2923c10cd8 Rewrite rooms to store multiple active countdowns
Update test to the new structure
2022-09-05 19:03:26 +09:00
Salman Ahmed
e8fa872f61 Fix room status dropdown position inconsistent on online-play screens 2022-09-03 16:14:21 +03:00
Dan Balasescu
c852c54055 Consume auto skip setting during play 2022-08-31 20:24:15 +09:00
Dan Balasescu
b5ec7d06dd Add auto-skip setting
Default to auto skip
2022-08-31 20:24:06 +09:00
Dean Herbert
b9d9bf3004
Merge pull request #19938 from frenzibyte/fix-multi-spectator-results-screen
Fix multi-spectator potentially getting stuck for passed players
2022-08-26 21:53:17 +09:00
Dean Herbert
a546aa2673 Clamp SpectatorPlayerClock's elapsed calculation to avoid player clocks getting too far ahead 2022-08-25 21:33:33 +09:00
Dean Herbert
27b57947e4 Rename PlayerArea.GameplayClock to SpectatorPlayerClock for clarity 2022-08-24 17:13:14 +09:00
Dean Herbert
5f01f461b3 Ensure elapsed time is always non-zero when advancing SpectatorPlayerClock 2022-08-24 17:13:14 +09:00
Dean Herbert
af56cd0126 Fix merge breakage 2022-08-24 16:52:36 +09:00
Dean Herbert
5079e0d83d Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-24 16:52:10 +09:00
Salman Ahmed
8f4a2b4936 Separate passed/failed states from calling EndGameplay 2022-08-24 10:36:13 +03:00
Dean Herbert
7f9246637a Simplify MultiSpectatorScreen hierarchy construction 2022-08-24 16:08:48 +09:00
Dean Herbert
7c1fc4814e Remove unused CreateMasterGameplayClockContainer method 2022-08-24 16:03:38 +09:00
Dean Herbert
871365bbb0 Inline ReadyToStart action binding for added safety 2022-08-24 16:03:38 +09:00
Dean Herbert
6c50f618a3 Don't use bindable flow for masterState 2022-08-24 16:03:38 +09:00
Dean Herbert
683d49c608 Move MasterClockState handling in to SpectatorSyncManager 2022-08-24 16:03:38 +09:00
Dean Herbert
d33d705684 Make WaitingOnFrames non-bindable 2022-08-24 16:03:38 +09:00
Dean Herbert
d05d8aeb22 Simplify interface implementations 2022-08-24 16:03:38 +09:00
Dean Herbert
2f5be6efca Tidy up ProcessFrame and privatise const 2022-08-24 16:03:38 +09:00
Dean Herbert
b564c34dbc Don't process master clock (is a noop) 2022-08-24 16:03:38 +09:00
Dean Herbert
b4eede61fb Use readonly instead of get-only 2022-08-24 15:28:18 +09:00
Dean Herbert
0b271fe4b3 Fix incorrect IsRunning value 2022-08-24 15:27:31 +09:00
Dean Herbert
b6254a1f25 Remove unnecessary casting 2022-08-24 15:23:31 +09:00
Dean Herbert
a86fc6f248 Change running state of SpectatorPlayerClock using IsRunning 2022-08-24 15:17:56 +09:00
Dean Herbert
0c9a4ec13c Don't expose MasterClock in SpectatorClockSyncManager 2022-08-24 15:13:08 +09:00
Dean Herbert
995e6664b6 Rename spectator clock sync classes 2022-08-24 15:13:08 +09:00
Dean Herbert
31f657fe01 Remove ISpectatorPlayerClock interface
Too many levels of redirection.

One interface with one implementation is not useful, IMO.
2022-08-24 15:12:57 +09:00
Dean Herbert
882dd93942 Remove ISyncManager interface
Too many levels of redirection.

One interface with one implementation is not useful, IMO.
2022-08-24 15:12:57 +09:00
Dean Herbert
22963ab951 Fix multiplayer spectator getting stuck 2022-08-24 15:12:57 +09:00
Dean Herbert
ec31f37ff7 Accept MasterGameplayClockContainer rather than generic clock 2022-08-24 14:51:14 +09:00
Dean Herbert
85fbe7abca Fix multiplayer spectator getting stuck 2022-08-24 13:11:53 +09:00
Dean Herbert
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
Dean Herbert
553897f2f0 Remove AddClock method to CreateManagedClock 2022-08-23 13:52:43 +09:00
Dean Herbert
1191b6c080 Remove unused Source_Set implementation on ISpectatorPlayerClock 2022-08-23 13:44:41 +09:00
Dan Balasescu
c59298f0ce Enable NRT 2022-08-22 21:55:04 +09:00
Dan Balasescu
5d3d8681d4 Invert creation of clocks in multi spectator 2022-08-22 19:14:06 +09:00
Dean Herbert
af2e82d7d5 Move operation of setting GameplayClockContainer.StartTime to Reset call 2022-08-22 14:11:06 +09:00
Dean Herbert
0e228791c0 Remove unnecessary Reset call in MultiSpectatorScreen 2022-08-19 01:39:01 +09:00
Dean Herbert
6d78218142 Update usages of GameplayClockContainer.GameplayClock to access properties directly 2022-08-15 18:08:49 +09:00
Dean Herbert
224f3eaa84 Make GameplayClockContainer non-abstract and use in MultiSpectatorPlayer 2022-08-15 18:08:49 +09:00
Salman Ahmed
84ef24c341 Fix multi-spectator potentially getting stuck for passed players 2022-08-06 05:41:26 +03:00
Adam Baker
cecf654a7b
Update osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-19 18:58:59 -05:00
Salman Ahmed
ae6aab2555
Merge branch 'master' into edit-map-carousel 2022-07-20 02:43:47 +03:00
Adam Baker
4164f260b3 Fix code quality errors 2022-07-19 08:12:12 -05:00
Adam Baker
5008a73774 Make add item button open to the last beatmap in queue 2022-07-19 02:04:19 -05:00
Dan Balasescu
c07f78409e
Merge pull request #19189 from peppy/peform-actions-after-reconnect
Fix creating multiplayer game during server migration not joining new room correctly
2022-07-19 14:46:29 +09:00
Adam Baker
59018ab5ba Fix multiplayer queue edit button opening to the wrong beatmap 2022-07-18 23:21:16 -05:00
Salman Ahmed
2befcfedbb
Merge branch 'master' into fix-multiplayer-participant-panel-null-ruleset 2022-07-18 12:24:47 +03:00
Dean Herbert
a036632c8b Fix potential crash when attempting to create mod display using null ruleset 2022-07-18 15:30:21 +09:00
Dean Herbert
21bf7ee448 Turn on nullability in ParticipantPanel 2022-07-18 15:27:55 +09:00
Salman Ahmed
100c53f9ef Country -> CountryCode 2022-07-18 08:40:34 +03:00
Dean Herbert
55a8a3563b Change MultiplayerMatchSubScreen to not immediately leave the room on connection loss
Instead, we can rely on `MultiplayerClient.Room` going `null`.
2022-07-17 21:19:10 +09:00
Salman Ahmed
e62049f4a9 Update various usages of Country inline with new enum 2022-07-16 05:04:24 +03:00
Salman Ahmed
102d0415f1 Merge branch 'master' into drawable-playlist-item-collection 2022-07-14 00:10:49 +03:00
Dean Herbert
0434c10914 Use global WorkingBeatmap in PlayerArea for the time being 2022-07-11 02:57:44 +09:00
Salman Ahmed
67fa15f231 Remove no longer required context menu container in ParticipantsList 2022-07-08 01:42:55 +03:00
Salman Ahmed
7b08501eaf Cover online-play room screens with context menu containers 2022-07-08 01:42:11 +03:00
Dean Herbert
e213c1a4ef Rename enum to explicitly mention it is a filter 2022-07-01 17:27:03 +09:00
Dean Herbert
9911c6cbf0
Merge branch 'master' into locked-room-filter 2022-07-01 17:17:01 +09:00
Dean Herbert
aa7d54f8b6 Add logging for various cases of SongSelect.FinaliseSelection being aborted 2022-06-27 20:10:17 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Gabe Livengood
454eff43c5
publicity -> accesstype 2022-06-23 11:40:25 -04:00
Gabe Livengood
d67c482c48
move publicity filter to multi exclusively 2022-06-23 11:36:08 -04:00
Dan Balasescu
77e7e4ecb2 Fix selection being blocked after early return 2022-06-18 14:28:30 +09:00
Dan Balasescu
e04df371d1 Merge branch 'master' into multi-song-select-operation 2022-06-18 08:51:24 +09:00
Dan Balasescu
869db52540 Tie loading layer to ongoing operation state 2022-06-17 17:05:23 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Bartłomiej Dach
f88c568c8d
Update flag sizes after switch to twemoji assets
The old flags used a size of 150x100, while the new assets based on
twemoji use a size of 150x108. Update existing usages to match this new
aspect ratio better.
2022-06-15 21:45:47 +02:00
Dean Herbert
7a2919975a Fix sound clash when exiting a multiplayer room with confirmation 2022-06-15 18:48:22 +09:00
Dan Balasescu
d89c80ace2 Block operations during beatmap selection in match 2022-06-15 18:44:16 +09:00
Dan Balasescu
4d9a77bdc0 Stop using Drawable.Clock altogether 2022-06-02 15:02:50 +09:00
Dan Balasescu
2209a009f9 Don't process clock 2022-06-02 14:48:55 +09:00
Dan Balasescu
eaeb66547e Revert comment removal 2022-05-31 19:58:45 +09:00
Dan Balasescu
22d998dc2a Use new score processor in MultiplayerGameplayLeaderboard 2022-05-30 19:26:26 +09:00
Dan Balasescu
0224947de0 Add comment about how starting gameplay works 2022-05-26 20:09:47 +09:00
Dan Balasescu
3915b8e414 Fix multiplayer race condition when starting gameplay 2022-05-26 20:01:33 +09:00
Salman Ahmed
27da293b40 Make catch-up spectator clocks running state immutable externally 2022-05-21 17:12:04 +03:00
Dean Herbert
d05cd69087 Change multiplayer leaderboard to always hide during gameplay unless holding-for-HUD 2022-05-11 16:12:54 +09:00
Salman Ahmed
8501a41619 Bring back separate bool properties as non-cascading 2022-05-05 14:37:38 +03:00
Salman Ahmed
20e277d2e5 Apply proposed naming changes 2022-05-04 17:12:17 +03:00
Salman Ahmed
e9ecf26b6a Merge branch 'master' into multiplayer-disable-adaptive-speed 2022-05-04 17:12:03 +03:00
Dean Herbert
c4c62ff4e7 Fix countdown sounds playing every minute, rather than only on the last minute 2022-05-02 22:46:14 +09:00
Dan Balasescu
1d8ac6917d Send Loaded state from PlayerLoader on update thread 2022-04-28 20:10:47 +09:00
Dan Balasescu
b293d3923c Merge branch 'master' into multiplayer-force-start-2 2022-04-23 01:03:55 +09:00
Dean Herbert
832d37b2c2 Update screen transition events to use new event args 2022-04-22 00:52:44 +09:00
Dan Balasescu
ef1955d8ab Make buttons only respond to MatchStartCountdown 2022-04-21 23:14:37 +09:00
Dan Balasescu
41355384bd Add support for gameplay abort/force start 2022-04-21 23:14:37 +09:00
Dan Balasescu
08d250fe58 Rename MatchStarted() -> GameplayStarted() 2022-04-21 22:39:24 +09:00
Dan Balasescu
8c3b541312 Add state for when user is ready for gameplay 2022-04-21 22:35:52 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
Dean Herbert
e315313266 Split out IDialogOverlay to allow for easier testing 2022-04-18 18:36:26 +09:00
Dan Balasescu
9de4d416e2 Merge branch 'master' into fix-spectator-seeks 2022-04-14 18:54:52 +09:00
Dean Herbert
d4286255a0 Expose and set GameplayStartTime directly, rather than via Reset parameter 2022-04-13 13:58:44 +09:00
Dean Herbert
9c68b3edc5 Merge branch 'master' into fix-spectator-seeks 2022-04-13 12:33:41 +09:00
Dean Herbert
8b1cee75fa Use BindableLong instead of BindableInt for user score tracking 2022-04-12 14:13:07 +09:00
Dean Herbert
24c2d465a9 Move null assert in MultiplayerPlayer on to update thread 2022-04-08 14:53:14 +09:00
Jamie Taylor
8a73831115
Add MP lobby 'warning' SFX for the final seconds of countdown 2022-04-07 13:12:33 +09:00
Dean Herbert
2b8a5833dd Fix back-to-front conditional check 2022-04-06 15:13:02 +09:00
Dean Herbert
a3695c7e97
Merge branch 'master' into fix-spectator-seeks 2022-04-06 12:58:43 +09:00
Dean Herbert
c540810943
Merge branch 'master' into fix-multiplayer-unobserved 2022-04-06 11:33:10 +09:00
Dean Herbert
01da3924cc Simplify IsCurrentScreen check to only apply to relevant call 2022-04-06 11:32:35 +09:00
Dean Herbert
3d8ae0465f Reword comment slightly 2022-04-05 15:51:04 +09:00
Dean Herbert
8e543204cd Remove debounce logic (not required after switching to Update clock time) 2022-04-05 15:49:47 +09:00
Dean Herbert
5f415cbe53 Full potential null reference and add better commentary on countdown scheduling 2022-04-05 15:48:18 +09:00
Dean Herbert
d0f83885ce Appease the CI 2022-04-05 13:20:34 +09:00
Dean Herbert
31bf0c4a9b Disable "final" sample in countdown for the time being 2022-04-05 13:16:06 +09:00
Dean Herbert
174dc1641c Fix multiple issues with timekeeping
- Using realtime (`DateTimeOffset.Now`) meant that values would be
  changing in the same frame, causing misfirings or incorrect displays
- No debounce on sample playback meant that scheduling edge cases could
  potentially cause samples to be played more than once.
2022-04-05 11:49:58 +09:00
Dean Herbert
64ba24c4f7 Merge branch 'master' into mp-countdown-sfx 2022-04-05 01:04:57 +09:00
Dan Balasescu
cbcbcd1a4a
Merge pull request #17643 from peppy/stable-countdown
Stabilise countdown updates to be based on when whole seconds change
2022-04-04 22:19:06 +09:00
Dean Herbert
0abebe4d23 Stabilise countdown updates to be based on when whole seconds change 2022-04-04 14:41:32 +09:00
Jamie Taylor
0f4b75ab15
Add multiplayer lobby countdown SFX 2022-04-01 21:33:57 +09:00
Dan Balasescu
16d4544ff9 Prevent reloads when playlist item order changes 2022-04-01 17:06:37 +09:00
Dean Herbert
0b6db31511 Guard other multiplayer client calls with exception handling 2022-03-31 19:45:38 +09:00
Dean Herbert
e0c125a628 Replace existing usage with helper method 2022-03-31 19:27:45 +09:00
Dean Herbert
ef5e37c47a Fix multiplayer sounds playing too much after gameplay
Regressed in https://github.com/ppy/osu/pull/15936.

Closes #17295.
2022-03-31 16:18:28 +09:00
Salman Ahmed
0f144f6801
Merge branch 'master' into fix-countdown-refresh 2022-03-30 16:26:12 +03:00
Dean Herbert
671386ba6c Fix MultiplayerMatchSongSelect potentially attempting to exit when not the current screen 2022-03-30 20:36:12 +09:00
Dan Balasescu
375a752e24 Fix countdown timer not refreshing on new countdown 2022-03-29 11:27:26 +09:00
Dean Herbert
5725cc36ff Add animation to countdown button when countdown is active 2022-03-26 14:29:53 +09:00
Dean Herbert
03f24c8b58
Merge branch 'master' into countdown-button-ux 2022-03-26 10:34:51 +09:00
Dean Herbert
a30d6256f4
Merge pull request #17447 from peppy/countdown-button-icon
Use more appropriate icon on countdown button (and give tooltip)
2022-03-26 10:20:07 +09:00
Dean Herbert
f92a31cd39
Merge pull request #17402 from smoogipoo/multiplayer-auto-countdown
Add multiplayer auto-start countdown timer
2022-03-25 20:31:14 +09:00
Dan Balasescu
11ee78b395
Merge branch 'master' into countdown-button-icon 2022-03-25 19:40:25 +09:00
Dan Balasescu
3986dfd160
Merge pull request #17444 from peppy/fix-countdown-counting
Update multiplayer countdown button text more often
2022-03-25 19:40:04 +09:00
Dan Balasescu
9963efce51 Improve ready/countdown button UX 2022-03-25 18:40:32 +09:00
Dean Herbert
b13408aed0 Add back "room visibility" control commented out for now 2022-03-25 18:37:20 +09:00
Dan Balasescu
3ad092d808 Always show the countdown button when host 2022-03-25 18:29:00 +09:00
Dean Herbert
463091bde2 Use more appropriate icon on countdown button (and give tooltip) 2022-03-25 18:25:48 +09:00
Dean Herbert
aa9e642e40
Merge branch 'master' into pin-multiplayer-host 2022-03-25 16:49:35 +09:00
Dean Herbert
4a30b6ef56 Update multiplayer countdown button text more often
At once a second, it regularly skips whole seconds (because scheduler
isn't guaranteed to run exactly as often as specified). 10 updates a
second seems amicable and less noticeable to my eye.
2022-03-25 16:25:20 +09:00
Dean Herbert
b1f0f89fdd Simplify AutoStart and Host checks 2022-03-25 15:41:01 +09:00
Bartłomiej Dach
878e8d21a3
Remove assertion to fix "expression always true" inspection 2022-03-24 21:51:10 +01:00
Dan Balasescu
1abf3f7bf4 Fix cancel tooltip showing for autostart countdowns 2022-03-24 20:25:17 +09:00
Dan Balasescu
40eca0fbe2 Merge branch 'master' into multiplayer-auto-countdown 2022-03-24 18:11:51 +09:00
Dean Herbert
2d58feebb1 Guard against potential null CurrentItem in ParticipantPanel 2022-03-24 17:54:21 +09:00
Dan Balasescu
528ffea38d Fix incorrect event binding 2022-03-24 17:11:08 +09:00
Dan Balasescu
96a447f68b Rename Multiplayer prefix to button classes 2022-03-24 14:28:38 +09:00
Dan Balasescu
90c7945bca Re-remove PopoverButton class with better test fix 2022-03-24 14:26:31 +09:00
Dean Herbert
6f529cf7a4 Merge branch 'master' into fix-spectator-seeks 2022-03-24 14:24:20 +09:00
Dan Balasescu
547418e47e Revert "Remove PopoverButton class"
This reverts commit 6b712be97d.
2022-03-24 11:15:51 +09:00
Dan Balasescu
34a367b369 Merge branch 'master' into multiplayer-countdown-timers-2 2022-03-23 15:40:50 +09:00
Dan Balasescu
a83a90e675 Rename countdown Delay -> Duration 2022-03-23 15:21:16 +09:00
Dan Balasescu
f7c0047206 Send time remaining in countdowns instead 2022-03-23 15:19:43 +09:00
Dan Balasescu
d4ad4ac9db Limit countdown updates to once per second 2022-03-23 10:50:05 +09:00
Dan Balasescu
6b712be97d Remove PopoverButton class 2022-03-23 10:40:38 +09:00
Dan Balasescu
9138aaf780 Split MultiplayerReadyButton 2022-03-23 10:38:56 +09:00
Dan Balasescu
23be0f1be9 Remove availability picker for now 2022-03-22 14:34:06 +09:00
Dan Balasescu
d0fee53e1f Implement auto countdown timers
Change to using TimeSpan
2022-03-22 14:34:06 +09:00
Dan Balasescu
4630aa15cc Apply refactorings according to reviews 2022-03-22 12:54:19 +09:00