Bartłomiej Dach
d6e7781be1
Add client/server models for allowing clients to receive realtime playlist updates
2024-06-27 11:32:18 +02:00
Dean Herbert
2a839b3697
Make action required init
2024-06-26 21:50:34 +09:00
Dean Herbert
fd91210c1c
Remove unnecessary setter on bindable
2024-06-26 21:47:33 +09:00
Bartłomiej Dach
006184ed2f
Implement carousel container for daily challenge screen
2024-06-26 08:49:00 +02:00
Dean Herbert
3d22f700a7
Merge pull request #28561 from bdach/daily-challenge/score-breakdown
...
Implement score breakdown display for daily challenge screen
2024-06-25 23:34:47 +09:00
Bartłomiej Dach
0d2a47167c
Fix crash on calculating playlist duration when rate-changing mods are present
...
Regressed in https://github.com/ppy/osu/pull/28399 .
To reproduce, enter a playlist that has an item with a rate-changing mod
(rather than create it yourself).
This is happening because `APIRuleset` has `CreateInstance()`
unimplemented:
b4cefe0cc2/osu.Game/Online/API/Requests/Responses/APIBeatmap.cs (L159)
and only triggers when the playlist items in question originate from
web.
This is why it is bad to have interface implementations throw outside of
maybe mock implementations for tests. `CreateInstance()` is a scourge
elsewhere in general, we need way less of it in the codebase (because
while convenient, it's also problematic to implement in online contexts,
and also expensive because reflection).
2024-06-25 11:28:10 +02:00
Dean Herbert
2de42854c3
Fix corner radius looking bad when graph bars are too short
2024-06-25 15:43:52 +09:00
Bartłomiej Dach
66b093b17e
Implement score breakdown display for daily challenge screen
2024-06-24 10:09:10 +02:00
Bartłomiej Dach
659505f711
Adjust calls to GetContainingInputManager()
2024-06-18 07:41:19 +02:00
Bartłomiej Dach
8a4ae5d23d
Null-propagate all calls to GetContainingFocusManager()
2024-06-18 07:30:46 +02:00
Dean Herbert
d3d325c46c
Record on single line
2024-06-17 19:16:23 +08:00
Bartłomiej Dach
3884bce239
Remove unused delegate for now
...
To silence inspections.
2024-06-17 11:09:07 +02:00
Bartłomiej Dach
8c4aa84037
Implement event feed view for daily challenge screen
2024-06-13 09:05:45 +02:00
Bartłomiej Dach
ae6dd9d053
Use extracted headings on daily challenge screen
2024-06-12 11:44:19 +02:00
Bartłomiej Dach
2be6b29f21
Implement time remaining display for daily challenge screen
2024-06-12 11:43:24 +02:00
Bartłomiej Dach
6fb0cabf36
Add start date to Room
2024-06-12 11:43:18 +02:00
Bartłomiej Dach
5e002fbf9b
Fix user mod select button being inserted in incorrect place
2024-06-12 08:59:50 +02:00
Bartłomiej Dach
073ddcebe4
Hide daily challenge from playlists listing
2024-06-10 13:12:21 +02:00
Bartłomiej Dach
e6da17d248
Add minimal viable variant of new daily challenge screen
2024-06-10 13:09:12 +02:00
Bartłomiej Dach
ffd788c65c
Use room mod select overlay rely on explicit binding rather than DI resolution
2024-06-10 12:45:51 +02:00
Bartłomiej Dach
dd6e9308b3
Extract user mod select button for reuse
2024-06-10 12:45:27 +02:00
Bartłomiej Dach
d80f09e0c0
Adjust online play header to be reusable for new daily challenge screen
2024-06-10 12:43:58 +02:00
Bartłomiej Dach
19f39ca1b6
Extract OnlinePlayScreenWaveContainer
from OnlinePlayScreen
2024-06-10 12:42:37 +02:00
Salman Ahmed
6201220994
Merge branch 'master' into footer-v2-become-global
2024-06-08 14:13:05 +03:00
Bartłomiej Dach
405c72c0d6
Fix mod display not being aligned with mapper text
2024-05-27 13:36:44 +02:00
Dean Herbert
75d961e6f2
Pass the same thing in twice for better maybe
2024-05-27 20:30:01 +09:00
Dean Herbert
d976224912
Standardise padding on both sides of difficulty icon
2024-05-27 19:59:25 +09:00
Bartłomiej Dach
1e2cac3e92
Remove unused using directive
2024-05-27 11:44:55 +02:00
Dean Herbert
b6471f0b9c
Allow previewing audio of playlist items
2024-05-27 17:09:37 +09:00
Dean Herbert
6c37560842
Merge branch 'master' into daily-challenge-mvp
2024-05-23 10:57:05 +08:00
Dean Herbert
66ceda1d67
Update focus specifications in line with framework changes
2024-05-22 21:32:49 +08:00
Dean Herbert
d0b1ebff5a
Revert "Temporary rollback of framework / SDL3"
...
This reverts commit d7d569cf4e
.
2024-05-22 16:29:39 +08:00
Dean Herbert
d7d569cf4e
Temporary rollback of framework / SDL3
2024-05-21 14:36:16 +08:00
Bartłomiej Dach
a4f8ed2a0e
Add button to access daily challenge playlist from main menu
2024-05-17 11:15:52 +02:00
Salman Ahmed
03220598b8
Move screen footer to OsuGame
2024-05-16 07:48:58 +03:00
Bartłomiej Dach
221b4cd599
Remove unused cache
2024-05-03 11:37:09 +02:00
Dean Herbert
42e49067e5
Move Room.Status
updates to a common location
2024-05-03 17:10:59 +08: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
Salman Ahmed
2a3ae6bce1
Update all TabItem
implementations to play select sample on OnActivatedByUser
2024-04-17 11:20:17 +03:00
Bartłomiej Dach
644553d5b4
Merge branch 'master' into freemod_mapinfo_fix
2024-03-07 09:24:44 +01:00
Salman Ahmed
4a4ef91bc9
Simplify active mods computation
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2024-02-29 00:42:52 +03:00
Salman Ahmed
3f9fbb9318
Introduce the concept of ActiveMods
in mod select overlay and rewrite once more
2024-02-26 22:25:06 +03:00
Salman Ahmed
618819ba9f
Merge branch 'master' into freemod_mapinfo_fix
2024-02-23 18:34:41 +03:00
Salman Ahmed
fdc0636554
General code cleanup
2024-02-23 17:31:54 +03:00
Salman Ahmed
9ce07a96b2
Rewrite mods flow and remove RoomBeatmapAttributesDisplay
2024-02-23 17:30:13 +03:00
Salman Ahmed
323d7f8e2d
Change BeatmapAttributesDisplay
retrieval to proper method
2024-02-23 16:59:43 +03:00
Salman Ahmed
918577d530
Compute required mods list once per update
2024-02-23 16:53:41 +03:00
Salman Ahmed
f94cd4483c
Avoid relying on game-wide ruleset bindable
2024-02-23 16:50:33 +03:00
Salman Ahmed
ae9c58be30
Remove "multiplayer" references from subclass and move to appropriate place
2024-02-23 16:50:33 +03: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
Bartłomiej Dach
46c8560ca5
Merge branch 'master' into multiplayer-difficulty-tooltip
2024-02-22 12:08:29 +01:00
Bartłomiej Dach
d06c67ad8f
Substitute two jank interdependent bool flags for single tri-state enums
2024-02-22 12:05:50 +01:00
Andrei Zavatski
2543a48ac8
Apply padding to GridContainers directly
2024-02-20 23:18:37 +03:00
Givikap120
a6b63efe7d
Fixed NVika code quality errors
2024-02-18 03:28:24 +02:00
Givikap120
2df5787dc7
Packed changes into separate class
2024-02-18 03:13:57 +02:00
Givikap120
ed819fde15
Fixed bugs and added ranked status update
2024-02-17 23:01:31 +02:00
Bartłomiej Dach
c12a7b3edf
Merge branch 'master' into fix-rooms-container-something
2024-02-05 18:51:46 +01:00
Salman Ahmed
7914236516
Add explanatory note
2024-02-05 18:51:30 +03:00
Salman Ahmed
858f2fc749
Use Clear
to trigger async disposal
2024-02-05 18:39:04 +03:00
Salman Ahmed
6f9ee3f526
Fix selected room bindable being set to null regardless of the removed room
2024-02-05 00:37:33 +03:00
Salman Ahmed
9923c1b6e6
Fix multiplayer/playlists lounge screen disposing rooms synchronously
2024-02-04 17:25:58 +03:00
Dan Balasescu
b44f77cee1
Update R# + fix inspections
2024-02-02 21:00:28 +09:00
Dean Herbert
a1fe5eedd5
Merge pull request #26751 from frenzibyte/fix-multiplayer-fail-freezing-score
...
Fix score processor no longer applying results when failing in multiplayer match
2024-01-29 19:51:31 +09:00
Dean Herbert
fb24c66342
Mark ResultsScreen.Score
as nullable
...
Is nullable in playlist results at very least.
2024-01-29 16:43:26 +09:00
Salman Ahmed
64b61108ad
Move solution to multiplayer flow instead
2024-01-28 00:42:04 +03:00
Dean Herbert
d66a2c452f
Merge branch 'master' into multiplayer-difficulty-tooltip
2024-01-25 21:18:16 +09: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
Dean Herbert
ef0b5c9406
Stop playing back samples for nested screens in multiplayer
...
I'd argue this sounds better.
2024-01-18 16:31:20 +09:00
smallketchup82
060ea1d4fd
Switch from using a constructor argument to using a public field for ShowExtendedTooltip
2024-01-17 14:04:13 -05:00
smallketchup82
b6422bc8bd
Apply suggested changes
...
- Change difficultyicon mods parameter docstring to be more professional
- Add a parameter for controlling whether the difficulty statistics show or not. Defaults to false
- Round the BPM in the tooltip to make sure it displays correctly
2024-01-17 09:07:17 -05: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
Bartłomiej Dach
4d39c91972
Merge pull request #26449 from peppy/playlist-room-buttons
...
Allow interacting with playlist item buttons when not selected
2024-01-15 19:12:01 +01:00
Dean Herbert
0aa8a20d57
Fix regression in interaction when panels are not selectable
2024-01-15 18:34:32 +09: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
1f6e1cbe56
Allow interacting with playlist item buttons when not selected
2024-01-09 14:45:21 +09: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
smallketchup82
f7c1e66165
Make the difficulty stats change based on the currently applied mods
2023-12-22 17:28:02 -05: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
537c9e031d
Merge pull request #25522 from bdach/no-concurrent-connections
...
Implement flow allowing disconnection from online services when another client instance for same user is detected
2023-11-28 19:09:38 +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
aa3ff151c0
Fix RoomManager
attempting to part room when not online
2023-11-21 15:15:46 +09:00
Bartłomiej Dach
42fada578e
Centralise and improve messaging around online state
...
When the server requests a disconnect due to a user connecting
via a second device, the client will now log the user out on the first
device and show a notification informing them of the cause of
disconnection.
2023-11-21 15:15:46 +09:00
Dean Herbert
7fc2050f72
Rename variables and mak seconary tooltip type work again
2023-11-10 11:52:34 +09:00
Joshua Hegedus
ccb9ff826a
fixed tests
2023-11-09 13:09:59 +01:00
Joshua Hegedus
4a70f2435c
fixed showUsernameTooltip
2023-11-06 09:22:50 +01: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
7139592e43
Fix collections not being sorted correctly in context menus
2023-10-16 16:03:12 +09:00
Jamie Taylor
d97b618d02
Use new generic-error
sample in appropriate places
2023-10-13 21:06:50 +09:00
Bartłomiej Dach
79cec7707d
Privatise setter
2023-10-13 09:56:46 +02:00
Bartłomiej Dach
6c8490bc7e
Revert changes to LoungeSubScreen.Join()
...
- `virtual` modifier was used in mocking.
- The spacing change revert is just mostly to keep it out of the final
diff.
2023-10-12 20:39:40 +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
Bartłomiej Dach
ca217094d6
Merge pull request #25063 from peppy/move-download-button
...
Move playlist item download button to left
2023-10-09 10:01:15 +02:00
Dean Herbert
142c61ab9b
Move playlist item download button to left
2023-10-09 12:21:56 +09:00
Bartłomiej Dach
cfcdbe1c30
Merge pull request #25028 from peppy/bindable-fixes
...
Fix some incorrect bindable-related code
2023-10-06 22:31:30 +02:00
Dean Herbert
8e5b2e78e5
Fix variable clash
2023-10-06 21:01:23 +09:00
Dean Herbert
1d7b8ea21a
Fix incorrect implementation of IHasCurrentValue
in FooterButtonFreeMods
2023-10-06 16:51:40 +09:00
Dean Herbert
5a17a86d1d
Merge branch 'master' into clock-fix-attempt-2
2023-10-04 16:57:49 +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
Joseph Madamba
9e90374a90
Flash discard changes dialog popup when force quitting room/playlist creation with changes
2023-09-28 17:09:50 -07:00
Dean Herbert
a639e51ddb
Fix value not updating after missing beatmap is imported
2023-09-27 18:17:25 +09:00
Dean Herbert
175cf68bd6
Avoid re-fetching WorkingBeatmap
2023-09-27 18:13:07 +09:00
Fabian van Oeffelt
2040dcabe0
Improve Code Quality
2023-09-25 17:51:39 +02:00
Fabian van Oeffelt
2a3391d83b
Remove unused namepace
2023-09-25 16:56:34 +02:00
Fabian van Oeffelt
59d3143645
Fix SR/BPM Display in Playlist rooms
2023-09-25 16:53:40 +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
Bartłomiej Dach
76bf82d900
Do not show mod effects on free mod select
2023-09-11 09:55:45 +02:00
Dean Herbert
081fb308e1
Merge branch 'master' into new-overlay-sfx
2023-08-24 18:29:00 +09:00
Jamie Taylor
2e27a476bb
Re-enable sample playback for PasswordEntryPopover
and remove sampleJoin
playback instead
2023-08-24 18:04:47 +09:00
Dean Herbert
4915b2563c
Merge pull request #24366 from Joehuu/supporter-playlist-duration
...
Always show supporter-only playlist durations
2023-08-21 17:46:26 +09:00
Dean Herbert
75750957c7
Add note about why pop in samples are disabled for PasswordEntryPopover
2023-08-18 17:11:30 +09:00
Jamie Taylor
3d7ba0e18c
Add pop-in/pop-out sfx to more overlays
2023-08-17 18:36:37 +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
Dean Herbert
45ceaba00d
Disable multiplayer spectator zoom when there's only one player's screen visible
2023-07-30 14:40:58 +09:00
Dean Herbert
75625f089e
Hide toolbar when entering multiplayer spectator
2023-07-30 02:29:14 +09:00
Dean Herbert
38244c081f
Further refactorings along with shadow implementation
2023-07-30 02:29:14 +09:00