Bartłomiej Dach
b29e535ca5
Add results screen for displaying arbitrary daily challenge scores
...
At this point its primary usage is the daily challenge event feed, but
the leaderboard will be using this too shortly.
Because the playlists results screen that exists in `master` is
hard-coupled to showing the *local user's* best result on a given
playlist by way of hard-coupling itself to the relevant API request,
allowing show of *arbitrary* score by ID requires a whole bunch of
subclassery as things stand. Oh well.
Class naming is... best effort, due to the above.
2024-07-04 13:45:24 +02:00
Salman Ahmed
16bae4f004
Update naming of enum fields in StartMode
2024-05-01 17:22:42 +03:00
Dean Herbert
fb2d28f7e0
Fix audio being paused in a spectator session when all players finish playing
2024-04-26 15:30:26 +08:00
Dean Herbert
21d6556865
Remove managed clocks from SpectatorSyncManager
on gameplay completion / abort
2024-04-26 15:29:59 +08:00
Dean Herbert
e0e790fa94
Fix a couple of xmldoc typos
2024-04-26 15:28:52 +08:00
Bartłomiej Dach
da953b34a7
Apply nullability annotations to ResultsScreen
& inheritors
2024-04-25 10:58:28 +02:00
Bartłomiej Dach
1e53503608
Show user statistics after completing a playlists / multiplayer score
2024-02-22 20:35:50 +01:00
Bartłomiej Dach
0074bdc5a1
Change ResultsScreen
constructor boolean params to init-only properties
2024-02-22 20:15:03 +01:00
Salman Ahmed
64b61108ad
Move solution to multiplayer flow instead
2024-01-28 00:42:04 +03:00
Bartłomiej Dach
9aa7c7f591
Revert incorrect removal of exitConfirmed
flag
...
Removing it meant that it was _literally impossible_ to exit
multiplayer.
2024-01-22 15:35:03 +01:00
Dean Herbert
3dd18c777a
Remove a couple more overrides
2024-01-22 17:00:35 +09:00
Bartłomiej Dach
744cb8e10c
Merge pull request #26538 from peppy/save-multiplayer-filter-mode
...
Remember multiplayer room filter mode
2024-01-15 19:53:50 +01:00
Dean Herbert
6940579b9e
Remember multiplayer room filter mode
...
As proposed in https://github.com/ppy/osu/discussions/26218 .
2024-01-15 14:30:34 +09:00
Salman Ahmed
c514550dfa
Fix multiplayer potentially selecting mods of wrong ruleset when starting match
2024-01-13 11:17:08 +03:00
Dean Herbert
0bbc27e380
Add a gameplay configuration flag to disable fail animation
2024-01-04 17:13:24 +09:00
Lena
17656e9b9c
update the current activity when the multiplayer room updates
2024-01-02 18:38:25 +01:00
Bartłomiej Dach
4644c4e7a2
Remove unused class
2023-12-05 12:43:32 +01:00
Dean Herbert
02178d8e61
Remove usage of case-when
2023-12-05 16:58:16 +09:00
Dean Herbert
f317e06da1
Use DangerousActionDialog
2023-12-05 16:54:44 +09:00
Dan Balasescu
8587652869
Fix countdown button being enabled
2023-12-04 11:00:11 +09:00
Dan Balasescu
c2644a5d5e
Correctly implement button enabled state
2023-12-04 10:18:37 +09:00
Dan Balasescu
1b0fc8ca9d
Refactor
2023-12-01 20:41:41 +09:00
Dan Balasescu
15c9416244
Rename method
2023-12-01 18:47:40 +09:00
Dan Balasescu
a94180c8c6
Rename LoadAborted -> GameplayAborted, AbortGameplayReal -> AbortMatch
2023-12-01 18:26:59 +09:00
Dan Balasescu
894c31753b
Add initial support for aborting multiplayer games
2023-12-01 15:31:06 +09:00
Dean Herbert
ca93fdc94b
Add visualisation of when a spectated player fails
...
Create a new stack each time for isolation and safety
2023-11-24 14:44:57 +09:00
Dean Herbert
b024065857
Remove implicit schedule of abstract
methods in SpectatorScreen
...
This allows each implementation to have control over scheduling. Without
this, the solo implementation would not be able to handle quit events
while watching a player, as it would push a child (gameplay) screen to
the stack where the `SpectatorScreen` would usually be.
2023-11-24 14:26:09 +09:00
Bartłomiej Dach
ca4b09f8ef
Merge branch 'master' into score-encoding-cleanup
2023-10-26 09:04:05 +02:00
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09:00
Bartłomiej Dach
fb2293821a
Allow watching replay from multi/playlist results screens
2023-10-16 11:20:02 +02:00
Dean Herbert
56e27f1c27
Merge branch 'master' into multiplayer-invites
2023-10-12 18:17:15 +09:00
Dean Herbert
94d7a65e40
Schedule Join
operations rather than using OnLoadComplete
for added safety
2023-10-12 17:42:02 +09:00
Dean Herbert
100c0cf533
Fix MultiplayerPlayer
never calling Reset
on GameplayClockContainer
...
This call is responsible for ensuring the clock is in a stopped state.
2023-10-10 17:58:37 +09:00
Marvin Schürz
6d97f89399
Rename OnlinePlayScreen.LoungeSubScreen
to Lounge
2023-10-04 08:37:22 +02:00
Marvin Schürz
a171fa7649
Join multiplayer match when clicking the invite notification
2023-10-03 01:31:30 +02:00
Dean Herbert
8367bb6bee
Don't apply decoupling to SpectatorPlayerClock
s
...
See inline comment for reasoning. It's a bit complicated.
2023-09-22 16:22:35 +09:00
Dean Herbert
586311d508
Fix souce clock not always being transferred to FramedBeatmapClock
in time
2023-09-22 16:22:35 +09:00
Dean Herbert
184eabb902
Merge branch 'master' into multi-spectator-fix-startup-delay
2023-08-16 16:27:49 +09:00
Dean Herbert
71f6e5731d
Fix potential null reference if no frames found
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-03 08:58:19 +09:00
Dean Herbert
f38b21110f
Add missing parenthesis to comment
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-03 08:57:43 +09:00
Dean Herbert
87fee001c7
Fix multiplayer spectator potentially taking too long to start
...
When watching from the middle of gameplay, due to a series of failures,
`SpectatorClock` would not get seeked to the current time, causing all
clients to look like they were out of sync.
This is a hotfix for the issue. A better fix will require framework
changes or considerable restructuring.
I'd recommend testing this works in practice and agreeing that while it
is a hack, it's likely not going to cause issues and is something we
want to see fixed sooner rather than later.
2023-08-02 19:05:43 +09:00
Dean Herbert
14d87e49c7
Improve choice of where to start playback of multiplayer spectator
2023-08-02 18:46:35 +09:00
Bartłomiej Dach
5b6c3321cf
Merge branch 'master' into multi-spectator-flow-fixes
2023-08-01 19:03:48 +02:00
Bartłomiej Dach
a75f42f5a9
Merge branch 'master' into multi-spectator-extended-results
2023-08-01 18:25:41 +02:00
Dean Herbert
70bd1d3cf4
Fix centred player not animating correctly
2023-08-01 20:18:21 +09:00
Dean Herbert
df504e1fc2
Show extended statistics in multiplayer spectator automatically
2023-08-01 20:02:36 +09:00
Dean Herbert
fe47dc291b
Fix onLoadRequested
getting early-exited too early in spectator scenarios
...
In some scenarios, multiplayer spectator would not tick over to the next
beatmap.
Here's an example:
- Room has two items queued
- Local user starts download of both
- First beatmap starts and download is complete
- First beatmap ends (spectating is active)
- Second beatmap starts but download is not complete
In this scenario, the local client will get stuck at the spectator
screen due to the `onLoadRequested`-invoked screen change being early
exited.
It would require manual recovery (clicking back button) to return to a
sane state.
2023-08-01 19:22:41 +09:00
Dean Herbert
9fe9ea2c90
Fix potential crash on multiple StartGameplay
calls in multiplayer spectator
2023-08-01 19:22:41 +09:00
Bartłomiej Dach
d3435483eb
Fix multiplayer match screen being exited from when not current
...
This was supposed to be fixed by #24255 , but has popped up as a
regression on Sentry since:
https://sentry.ppy.sh/organizations/ppy/issues/22749/?project=2&referrer=regression_activity-email
On a fifteen-minute check I cannot figure out how to reproduce, so
rather than spending further brain cycles on this, just apply the same
explicit guard that like fifteen other places do.
2023-07-30 15:50:10 +02:00
Bartłomiej Dach
898913f32a
Merge pull request #24415 from peppy/multi-spectator-improvements
...
General visual improvements to mutliplayer spectatator screen
2023-07-30 12:43:26 +02:00