Commit Graph

49 Commits

Author SHA1 Message Date
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
678eec1c67 Move LeaderboardFlow to HUDOverlay to share positioning logic 2022-09-13 18:45:11 +09:00
Dean Herbert
5894d2f0bc Ensure gameplay leaderboard hides with rest of HUD when it should 2022-09-13 18:45:11 +09:00
Dean Herbert
d251c0b2ac Move leaderboard implementation to Player itself 2022-09-13 18:00:21 +09:00
Dan Balasescu
c852c54055 Consume auto skip setting during play 2022-08-31 20:24:15 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +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
Dean Herbert
d05cd69087 Change multiplayer leaderboard to always hide during gameplay unless holding-for-HUD 2022-05-11 16:12:54 +09:00
Dan Balasescu
1d8ac6917d Send Loaded state from PlayerLoader on update thread 2022-04-28 20:10:47 +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
Dean Herbert
24c2d465a9 Move null assert in MultiplayerPlayer on to update thread 2022-04-08 14:53:14 +09:00
Dan Balasescu
885cb3ce5b Add current screen checks for added safety 2022-03-10 20:03:02 +09:00
Dean Herbert
2d135e5be6 Explain purpose of Schedule call in MultiplayerPlayer.onResultsReady 2022-03-10 19:56:13 +09:00
Dan Balasescu
45d537ef72 Fix potential multiplayer crash with async disposal 2022-03-10 18:50:53 +09:00
Dan Balasescu
f1c40bd9ed Rework GetScore() method signatures + implementations
Rename legacy-facing overload to mention as much
2022-03-08 22:30:44 +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
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
Nathan Alo
2877b43824 split multiplayer and playlist activity 2021-08-22 09:54:07 +08:00
Dean Herbert
30eee363dc Add chat display during multiplayer gameplay 2021-08-17 16:17:31 +09: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
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
Dean Herbert
c376e652a4 Convey and show team scores at the multiplayer results screen 2021-08-11 15:32:14 +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
121648b593 Add gameplay-specific team score display which can expand and contract 2021-08-09 19:17:51 +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
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
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
smoogipoo
d197a7f6f5 Rename multiplayer client classes 2021-05-20 15:39:45 +09:00
Christine Chen
b15838b220 Move storyboard outro logic to DrawableStoryboard 2021-04-16 00:59:10 -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
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
9d02f589fe Compact leaderboard during gameplay 2021-02-19 16:51:39 +09:00
Dean Herbert
7298adc9d9 Fix non-threadsafe usage of MultiplayerClient.IsConnected 2021-01-12 19:04:16 +09: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
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