Bartłomiej Dach
9e4a925ab1
Clarify & cleanup comments some
2021-01-03 13:44:29 +01:00
Bartłomiej Dach
a3e29b9154
Rename parameters for readability
2021-01-03 13:25:44 +01:00
Dean Herbert
2501707d7d
Copy values using Bind to also copy defaults
2021-01-03 20:45:03 +09:00
LavaDesu
7c9f345cd2
Use better naming for DiscordRichPresenceMode
2021-01-03 16:46:25 +07:00
Dean Herbert
6ad1b7767e
Update osu.Game/Online/API/APIMod.cs
...
Co-authored-by: Salman Ahmed <slmanarendo1950@gmail.com>
2021-01-03 17:04:16 +09:00
Dean Herbert
99fa0e25dc
Switch back to FirstOrDefault to allow for weird testing logic to pass
2021-01-03 16:46:24 +09:00
Dean Herbert
29dbb1cc0d
Add internal pathway for ensuring correct application of bindable mods
2021-01-03 15:48:28 +09:00
Dean Herbert
23e216fa0b
Simplify some default value checks (we are sure the return is an IBindable)
2021-01-03 15:47:15 +09:00
Dean Herbert
1a44338124
Use SingleOrDefault for added safety when looking up mod acronyms
2021-01-03 15:38:30 +09:00
Dean Herbert
a6d4992997
Ensure SelectionChanged events are only sent once when selection is null
2021-01-03 12:53:25 +09:00
LavaDesu
2e5c67be3f
Add ability to toggle discord rich presence
...
There are 3 modes: enabled, limited, and disabled.
The limited mode hides identifiable information such as username, rank, and
(if participating in one) multiplayer lobby name.
2021-01-03 10:37:28 +07:00
Dean Herbert
caa5109e3a
Add precautionary null checks to update methods in SongSelect
2021-01-03 12:18:35 +09:00
Salman Ahmed
dfa8be9173
Add beatmap availability change state & event methods
2021-01-03 05:48:49 +03:00
Salman Ahmed
09e5e2629a
Add user beatmap availability property
2021-01-03 05:48:49 +03:00
Salman Ahmed
8bb84570df
Introduce beatmap availability structure
2021-01-03 05:48:49 +03:00
Lucas A
324f80d994
Fix merge conflicts.
2021-01-02 19:14:10 +01:00
Dean Herbert
8511112e28
Merge pull request #11380 from bdach/unobserved-exceptions-pt-2
...
Catch multiplayer client-related unobserved exceptions better
2021-01-02 23:36:49 +09:00
Dean Herbert
e2de5bb8f9
Fix the beatmap carousel not returning to centre correctly after resizing window
2021-01-02 22:05:41 +09:00
Bartłomiej Dach
9ab1091281
Merge branch 'master' into fix-signalr-reconnect
2021-01-02 13:18:02 +01:00
Dean Herbert
72a6ca7755
Allow signalr to retry connecting when connection is closed without an exception
2021-01-02 16:47:00 +09:00
Bartłomiej Dach
30cebe7579
Merge branch 'dependabot/nuget/Microsoft.AspNetCore.SignalR.Client-3.1.10' into dependency-updates
2021-01-01 21:25:10 +01:00
dependabot-preview[bot]
652b0ccd8f
Bump Microsoft.AspNetCore.SignalR.Client from 3.1.9 to 3.1.10
...
Bumps [Microsoft.AspNetCore.SignalR.Client](https://github.com/aspnet/AspNetCore ) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/aspnet/AspNetCore/releases )
- [Commits](https://github.com/aspnet/AspNetCore/compare/v3.1.9...v3.1.10 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-01 17:54:11 +00:00
dependabot-preview[bot]
7441cfd94e
Bump Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson
...
Bumps [Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson](https://github.com/aspnet/AspNetCore ) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/aspnet/AspNetCore/releases )
- [Commits](https://github.com/aspnet/AspNetCore/compare/v3.1.9...v3.1.10 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-01 17:53:29 +00:00
Salman Ahmed
988f9b98a1
Split button mods updating to private method
2021-01-01 16:16:00 +03:00
Salman Ahmed
c1a1e3acc5
Revert drive-by changes
2021-01-01 15:40:40 +03:00
Salman Ahmed
a031c8e0b6
Apply documentation suggestions
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-01 15:34:09 +03:00
Salman Ahmed
2ce9599957
Copy selected mods properties into overlay's buttons
2021-01-01 03:47:13 +03:00
Salman Ahmed
b4df2d6d43
Add method for copying properties from another mod
2021-01-01 03:46:09 +03:00
Bartłomiej Dach
1e02f450a6
Merge branch 'master' into move-health-meter
2020-12-31 13:59:37 +01:00
mcendu
17abe90c27
move SkinnableHealthDisplay
...
Similar components are in osu.Game.Screens.Play.HUD while this is not
2020-12-31 20:23:13 +08:00
Bartłomiej Dach
7d9a61fbc1
Handle unobserved exceptions from ready button properly
2020-12-31 11:57:13 +01:00
Bartłomiej Dach
2d279350ad
Catch multiplayer client-related unobserved exceptions better
...
Silencing an exception from a task continuation requires accessing
`task.Exception` in any way, which was not done previously if
`logOnError` was false.
To resolve without having to worry whether the compiler will optimise
away a useless access or now, just always log, but switch the logging
level. The unimportant errors will be logged as debug and therefore
essentially silenced on release builds (but could still be potentially
useful in debugging).
2020-12-31 11:39:42 +01:00
Bartłomiej Dach
1b1447eb35
Merge branch 'master' into fix-perform-from-menu-nullref
2020-12-31 10:33:05 +01:00
Bartłomiej Dach
00c6703c51
Inline complete method as well
...
For better guarantees that `finalAction` is actually called on the same
screen that `checkCanComplete()` was (uses result of one
`getCurrentScreen()` call throughout instead of calling multiple times).
2020-12-31 10:27:42 +01:00
Dean Herbert
f9196ae976
Fix PerformFromMenuRunner failing if CurrentScreen is null
2020-12-31 16:36:20 +09:00
Dean Herbert
6ebb267c66
Merge pull request #11346 from bdach/fix-changelog-regression
...
Fix changelog header staying dimmed after build show
2020-12-31 16:15:25 +09: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
dd87478690
Add helper IsHost property to Client
2020-12-30 16:29:19 +01:00
Bartłomiej Dach
59f2017a13
Move BindValueChanged subscriptions to LoadComplete
2020-12-30 16:22:11 +01:00
Dean Herbert
497d644a19
Move thread safety / locking logic from MultiplayerRoom
2020-12-30 20:24:50 +09:00
Dean Herbert
6596e3c5e8
Merge branch 'master' into fix-changelog-regression
2020-12-30 01:34:18 +09:00
Dean Herbert
3920dac8af
Merge branch 'master' into fix-error-spam-on-disconnection
2020-12-30 00:55:37 +09:00
Dean Herbert
3552034ffe
Update framework
2020-12-30 00:55:27 +09:00
Bartłomiej Dach
05f212eb3c
Merge branch 'master' into remove-multiplayer-selection-poller
2020-12-29 12:51:33 +01:00
Bartłomiej Dach
4a85ee1374
Merge branch 'master' into improve-failing-api-ux
2020-12-29 11:01:36 +01:00
Bartłomiej Dach
361d215ab4
Reword notification messages to match new logic
2020-12-29 10:56:59 +01:00
Bartłomiej Dach
5d23199233
Trim redundant IsLoggedIn checks
2020-12-29 10:56:29 +01:00
Bartłomiej Dach
cafa241ef3
Fix ready-up button getting stuck if server operation fails
2020-12-29 09:44:30 +01:00
Dean Herbert
6bbd0ecfac
Remove unused lock object
2020-12-29 17:39:00 +09: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
Dean Herbert
4d04e0dee7
Disallow entering the playlists/multiplayer screens if API is failing
2020-12-29 16:25:51 +09:00
Dean Herbert
03b78d1c4b
Handle SocketExceptions and HttpRequestExceptions more silently
...
These can occur when a network connection is completely unavailable (ie.
host resolution failures are occurring). Currently these would appear as
important errors which spammed the notification overlay every retry
forever, while no network connection is available.
I also took this opportunity to remove a lot of `bool` passing which was
no longer in use (previously the fail count / retry process was
different to what we have today).
2020-12-29 16:22:11 +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
2cb84c5111
Fix error message being shown to user on multiplayer disconnection when not in room
2020-12-29 15:19:52 +09: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
f31a0e455a
Minor xmldoc rewording
2020-12-29 14:29:40 +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
Dean Herbert
6aeb7ece66
Tidy up update state code, naming, xmldoc
2020-12-29 14:25:08 +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
Bartłomiej Dach
1d311a6680
Change PlayingUsers population logic to match expectations
2020-12-28 19:27:56 +01:00
Bartłomiej Dach
d2301068b6
Fix changelog header staying dimmed after build show
2020-12-28 16:35:33 +01:00
Dean Herbert
9155671557
Merge pull request #11341 from peppy/fix-leaderboard-user-handling
...
Fix incorrect null handling in GameplayLeaderboard
2020-12-28 22:44:55 +09: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
a376a23ed7
Merge branch 'master' into fix-leaderboard-user-handling
2020-12-28 13:43:53 +01:00
Bartłomiej Dach
a9822800fc
Add more null hinting in GameplayLeaderboard
2020-12-28 13:00:05 +01:00
Bartłomiej Dach
f16b516e58
Revert user changes if no selection was made
2020-12-28 12:35:17 +01:00
Dean Herbert
447a55ce11
Fix incorrect null handling in GameplayLeaderboard
2020-12-28 20:16:53 +09:00
Bartłomiej Dach
20ae84a466
Merge branch 'master' into fix-user-lookup-failure-crashes
2020-12-28 12:15:06 +01:00
Dean Herbert
545dcac4ec
Add null hinting on UserLookupCache query method
2020-12-28 20:13:24 +09:00
Dean Herbert
5ca9a6a980
Add xmldoc on UserLookupCache's lookup method
2020-12-28 20:05:48 +09:00
Dean Herbert
2e3537e966
Update framework
2020-12-28 16:52:54 +09: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
4d61c143db
Fix lookup cache throwing a null reference if no matches were successful
2020-12-28 15:03:44 +09:00
Dean Herbert
69fab7de77
Merge pull request #11307 from bdach/fix-account-creation-overlay-after-logout
...
Fix account creation overlay not showing up the first time after a log-out
2020-12-28 11:52:48 +09:00
Dean Herbert
1b7c72f03b
Merge branch 'master' into changelog-refactor
2020-12-28 11:00:14 +09:00
Lucas A
7ae4979882
Fix merge conflicts.
2020-12-27 13:52:45 +01:00
Bartłomiej Dach
2ff49f4758
Merge branch 'master' into fix-quit-user-showing-in-leaderboard
2020-12-27 13:02:40 +01:00
Bartłomiej Dach
f75dccc9e4
Explicitly use discard in value changed callback
2020-12-27 13:00:27 +01:00
Bartłomiej Dach
6b6b1514e2
Rename method to be less misleading
...
As it doesn't only change colour, but also width.
2020-12-27 12:58:37 +01:00
Dean Herbert
3b5260fd67
Merge branch 'master' into fix-gameplay-leaderboard-clickable-avatars
2020-12-27 19:00:38 +09:00
Dean Herbert
1b34f2115f
Remove dignostics using
2020-12-27 16:57:23 +09:00
Dean Herbert
d14a8d24b5
Remove assert for now
2020-12-27 16:42:20 +09:00
Dean Herbert
fa0576f47f
Move quit colour change implementation to updateColour for better coverage
2020-12-27 13:40:02 +09:00
Shivam
a933483848
Merge branch 'master' into tourney-switching-ui
2020-12-26 15:45:29 +01:00
Shivam
9e15dccc56
Move graceful exit to OsuGameBase
2020-12-26 15:36:21 +01:00
Bartłomiej Dach
15948de2f0
Fix gameplay leaderboard avatars being clickable
2020-12-26 14:35:14 +01:00
Bartłomiej Dach
8ec7970b6a
Move load-complete fade specification inside
2020-12-26 14:35:14 +01:00
Bartłomiej Dach
e8f96b2401
Bring back DrawableAvatar as a simple sprite
2020-12-26 14:35:14 +01:00
Bartłomiej Dach
0b42b4b955
Rename {Drawable -> Clickable}Avatar
2020-12-26 14:35:11 +01:00
Bartłomiej Dach
a1af749b4b
Merge branch 'master' into patch/11310
2020-12-26 13:19:13 +01:00
Bartłomiej Dach
b059b5d616
Merge branch 'master' into fix-ready-button-crash
2020-12-26 12:41:47 +01:00
Dean Herbert
b9d725ab49
Don't copy spotlight category
2020-12-26 20:13:28 +09:00
Bartłomiej Dach
04d54c40db
Allow all StatefulMultiplayerClient schedules to run inline
...
Fixes test failures due to not allowing to do so, therefore inverting
execution order in some cases - for example, calling
JoinRoom(room);
LeaveRoom();
on the update thread would invert execution order due to the first being
unscheduled but the second being scheduled.
2020-12-26 12:04:10 +01:00
Bartłomiej Dach
dae27fefe4
Run user list copy inline if possible
...
`getRoomUsers()` was not safe to call from the update thread, as
evidenced by the test failures. This was due to the fact that the added
reset event could never actually be set from within the method, as the
wait was blocking the scheduled set from ever proceeding.
Resolve by allowing the scheduled copy & set to run inline if on the
update thread already.
2020-12-26 12:03:03 +01:00
Dean Herbert
71dcbeaf7c
Mark user as quit visually on the leaderboard
2020-12-26 12:11:09 +09:00
Dean Herbert
116acc2b5e
Add flow for marking user as quit for further handling
2020-12-26 11:35:51 +09:00
Dean Herbert
ff57562956
Fix multiplayer leaderboard not unsubscribing from quit users
2020-12-26 11:35:31 +09:00
Neuheit
e7339d6959
fix(osu.Game): Ensure Category property is copied in Room.
2020-12-25 21:07:33 -05: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
Dean Herbert
5ce5b6cec0
Fix non-safe thread access to room users on room join
2020-12-26 10:25:16 +09:00
Dean Herbert
e0198c36ae
Fix user population happening in single file
2020-12-26 09:48:13 +09:00
Bartłomiej Dach
0aedc720f2
Extract changelog entry component
2020-12-25 21:06:03 +01:00
Bartłomiej Dach
3ac618778f
Handle all changelog entry types correctly
2020-12-25 21:06:03 +01:00
Bartłomiej Dach
5f43299d37
Fix tests failing due to base logic firing
...
It turns out that the changelog code was semi-intentionally relying on
the request to get release streams to be slow to initially show the
listing of all streams.
Locally suppress the base tab control logic to fix this.
2020-12-25 21:06:03 +01:00
Bartłomiej Dach
0bd9f68cbd
Refactor update stream colour mapping code
2020-12-25 21:06:03 +01: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
Dean Herbert
9de1a67e03
Move PlaylistsResultsScreen to correct namespace
2020-12-25 23:47:32 +09:00
Dean Herbert
836d1491d0
PlaylistsMultiplayer -> Playlists
2020-12-25 23:47:18 +09:00
Dean Herbert
8a36eab060
Move missed file from Play namespace
2020-12-25 23:42:02 +09:00
Bartłomiej Dach
0d8fb83d0a
Ensure account creation overlay is shown after logout
...
Scheduling the entire API state change callback caused the scheduled
hide to fire the first time the user attempted to display the account
creation overlay after a logout, because the drawable wasn't present
before that (so its scheduler wasn't running).
It is not theoretically safe to run `Hide()` unscheduled at its present
call site (as the value change callbacks are fired on the background
API thread). This could also be fixed by setting `AlwaysPresent = true`,
but that's a pretty ugly and unperformant change to make in general.
2020-12-25 15:40:39 +01:00
Dean Herbert
e421b6d34e
Update some missed variables
2020-12-25 23:36:09 +09:00
Dean Herbert
2d7f9bf290
Revert RoomCategory naming change to avoid json deserialization failures
2020-12-25 23:34:29 +09:00
Dean Herbert
e49dce2c86
Fix some missed renames
2020-12-25 15:34:13 +09:00
Dean Herbert
5d4b73baa5
RealtimeMultiplayer -> Multiplayer
2020-12-25 14:10:59 +09:00
Dean Herbert
a1384942b1
Timeshift -> Playlists at a code level
2020-12-25 13:11:21 +09:00
Dean Herbert
4e21bd0108
Merge pull request #11286 from peppy/rename-timeshift
...
Rename "timeshift" to "playlists"
2020-12-25 00:45:06 +09:00
Dean Herbert
60c7c8b63b
Pluralise playlists in tip
2020-12-25 00:44:42 +09:00
Bartłomiej Dach
6ec045f235
Distinguish primary multi screen titles in header
2020-12-24 16:18:35 +01:00
Bartłomiej Dach
db1c11073f
Rename back to "room" for "realtime" multiplayer
2020-12-24 16:10:29 +01:00
Bartłomiej Dach
7f0f6d86b0
Rename {room -> playlist} on playlist room screen
2020-12-24 16:08:45 +01:00
Dean Herbert
fa14438671
Merge pull request #11285 from peppy/resort-leaderboard-less
...
Re-sort the leaderboard order a maximum of once a second
2020-12-25 00:05:13 +09:00
Dean Herbert
61be6197e7
Merge pull request #11290 from bdach/looping-mp-at-end-of-game
...
Fix multiplayer gameplay potentially looping audio after reaching end
2020-12-25 00:04:56 +09:00
Dean Herbert
1a3ef9da6d
Merge pull request #11288 from bdach/token-failure-crash-pt2
...
Always create realtime-specific player elements regardless of token
2020-12-24 23:09:35 +09:00
Bartłomiej Dach
a97681a5da
Proxy screen transition events to subscreens in multiplayer
2020-12-24 15:07:03 +01:00
Dean Herbert
3d28a0ccef
Merge pull request #11271 from peppy/dev-server
...
Prefer connecting to dev server when running in DEBUG
2020-12-24 23:01:19 +09:00
Bartłomiej Dach
76a7aabfe8
Always create realtime-specific player elements regardless of token
2020-12-24 14:32:30 +01:00
Dean Herbert
3a46e210d4
Change low-hanging references of "room" to "playlist"
2020-12-24 21:59:10 +09:00
Dean Herbert
aec25e2d73
Rename "timeshift" to "playlists"
...
This only covers the user-facing instances. Code and class name changes
will happen once things have calmed down.
2020-12-24 21:53:20 +09:00
Dean Herbert
f991448a3e
Re-sort the leaderboard order a maximum of once a second
2020-12-24 21:49:38 +09:00
Bartłomiej Dach
d5c348b568
Remove explicit public access modifier from interface
2020-12-24 13:44:46 +01:00
Bartłomiej Dach
4270c29f60
Trim stray newline
2020-12-24 13:42:08 +01:00
Dean Herbert
21a4e6a3f9
Merge pull request #11282 from peppy/disallow-skipping
...
Disallow skipping in multiplayer
2020-12-24 21:31:02 +09:00
Dean Herbert
647cb8310a
Merge pull request #11281 from peppy/fix-ruleset-pollution
...
Schedule UpdateFilter calls to avoid operations occuring while at a sub screen
2020-12-24 21:30:47 +09:00
Dean Herbert
9b654c741b
Merge pull request #11283 from peppy/add-match-start-sound
...
Play a sound when starting a timeshift or multiplayer room
2020-12-24 21:30:24 +09:00
Dean Herbert
25ff32cdf8
Merge pull request #11284 from peppy/add-ready-changed-sound
...
Add sound when players change ready state
2020-12-24 21:30:06 +09:00
Dean Herbert
66a23c22e5
Fix various tests failing due to dependence on specific online data
2020-12-24 21:28:24 +09:00
Bartłomiej Dach
49103a4421
Merge branch 'master' into add-match-start-sound
2020-12-24 13:22:06 +01:00
Bartłomiej Dach
40b9d1bc5e
Invert if & early-return to reduce nesting
2020-12-24 12:45:01 +01:00
Bartłomiej Dach
d5fc517fab
Merge branch 'master' into disallow-skipping
2020-12-24 12:35:22 +01:00
Bartłomiej Dach
ee5a6ff9fa
Merge branch 'master' into improved-loading-experience
2020-12-24 11:59:46 +01:00
Bartłomiej Dach
261c250b46
Update outdated comment
2020-12-24 11:33:49 +01:00
Bartłomiej Dach
4fb2610c82
Merge branch 'master' into frame-bundle-accuracy
2020-12-24 11:20:06 +01:00
Dean Herbert
323da82477
Add website root URL and update most links to use it
...
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
Dean Herbert
eb795a2127
Move all endpoint information to a configuration class
2020-12-24 17:58:38 +09:00
Bartłomiej Dach
6750f1574f
Merge branch 'master' into disallow-multiplayer-restart-retry
2020-12-24 09:45:50 +01:00
Dean Herbert
c35454081c
Add sound when players change ready state
2020-12-24 17:17:45 +09:00
Dean Herbert
3148c04fb8
Play a sound when starting a timeshift or multiplayer room
2020-12-24 16:53:25 +09:00
Dean Herbert
6bd6888a93
Disallow skipping in multiplayer for now
2020-12-24 16:29:51 +09:00
Dean Herbert
5457e4598b
Schedule UpdateFilter calls to avoid operations occuring while at a sub screen
2020-12-24 16:20:38 +09:00
Dean Herbert
e86e9bfae6
Don't begin gameplay until all users are in a completely prepared state
2020-12-24 15:32:55 +09:00
Dean Herbert
d66e218318
Source display accuracy from header and remove from ScoreProcessor function
2020-12-24 14:57:23 +09:00
Dean Herbert
1f80f01b53
Add accuracy to frame bundle header
2020-12-24 14:46:52 +09:00
Dean Herbert
43370d7021
Merge pull request #11273 from bdach/duplicate-user-in-mp-room
...
Improve reliability of handling user joined messages
2020-12-24 14:31:44 +09:00
Dean Herbert
61a5d3ef4a
Remove double handling of restart allowance on results screen (already handled locally)
2020-12-24 13:32:35 +09:00
Dean Herbert
76935b93b6
Merge branch 'master' into disallow-multiplayer-restart-retry
2020-12-24 13:31:54 +09:00
Dean Herbert
b29a5e2073
Merge pull request #11270 from bdach/better-error-handling
...
Improve error handling at realtime room settings screen
2020-12-24 13:23:49 +09:00
Dean Herbert
15cef44351
Merge pull request #11275 from peppy/safer-user-ids
...
Send multiplayer user IDs via ctor for better thread safety
2020-12-24 12:20:48 +09:00
Dean Herbert
1ac93d4eeb
Merge pull request #11268 from bdach/fix-room-song-select-stuck
...
Fix realtime multiplayer song select getting stuck after selecting invalid beatmap
2020-12-24 11:26:07 +09:00
Dean Herbert
d6dadd12fa
Send multiplayer user IDs via ctor for better thread safety
2020-12-24 10:39:15 +09:00
Bartłomiej Dach
414f886b02
Split timeshift & multiplayer "create" buttons
...
Multiplayer button gets new, different "Create match" text, and disable
logic in case of a dropped connection to the multiplayer server.
2020-12-23 22:03:57 +01:00
Bartłomiej Dach
c13acb609a
Move out sizing logic to multiplayer screen
2020-12-23 22:03:30 +01:00
Bartłomiej Dach
05d9f23762
Move out create room button to separate class
2020-12-23 22:03:30 +01:00
Bartłomiej Dach
a71496bc4e
Sanity check received user joined messages
...
While test failures fixed in 9843da5
were a shortcoming of the test,
they exposed a potential vulnerable point of the multiplayer client
logic. In case of unreliable message delivery it is not unreasonable
that duplicate messages might arrive, in which case the same scenario
that failed in the tests could crash the game.
To ensure that is not the case, explicitly screen each new joined user
against the room user list, to ensure that duplicates do not show up.
`UserLeft` is already tolerant in that respect (if a user is requested
to be removed twice by the server, the second removal just won't do
anything).
2020-12-23 21:00:49 +01:00
Bartłomiej Dach
47020c8887
Add failing test cases
2020-12-23 21:00:47 +01:00
Bartłomiej Dach
152df2ad84
Merge branch 'master' into better-error-handling
2020-12-23 18:13:50 +01:00
Bartłomiej Dach
e7a91b3dca
Merge branch 'master' into fix-room-song-select-stuck
2020-12-23 18:13:27 +01:00
Bartłomiej Dach
b1fb906773
Merge branch 'master' into fix-hard-crash-on-signal-r-exceptions
2020-12-23 17:37:49 +01:00
Dean Herbert
e89583d732
Prefer connecting to dev server when running in DEBUG
2020-12-24 01:33:19 +09:00
Bartłomiej Dach
e4959489b7
Improve user-facing error messages in room settings
2020-12-23 17:10:53 +01:00
Bartłomiej Dach
3b0bf11366
Fix JoinRoom failing to return canceled token
...
As it turns out, `Task.FromCanceled` expects to receive an already
cancelled `CancellationToken`, which `CancellationToken.None` is not.
2020-12-23 17:01:01 +01:00
Bartłomiej Dach
6c421b873d
Merge branch 'master' into fix-multiplayer-server-disconnection-flow
2020-12-23 16:55:22 +01:00
Bartłomiej Dach
980e85ce25
Refactor player exit logic to convey intention better
2020-12-23 16:16:24 +01:00
Dean Herbert
4296f61d6c
Tidy up event flow of change settings call
2020-12-23 22:39:14 +09:00
Dean Herbert
60be1bedc9
Merge pull request #11254 from frenzibyte/fix-multi-songselect-looping
...
Fix beatmap track not looping on multiplayer song selects
2020-12-23 22:35:11 +09:00
Bartłomiej Dach
c5692a5d6a
Re-enable carousel selection after error
2020-12-23 14:19:30 +01:00
Bartłomiej Dach
582b0d2a74
Revert logic to be closer to original
...
Note the reversal of the order of operations in `endHandlingTrack()`
(done for extra safety, to ensure no more value changed events can be
fired at the point of cancelling looping).
2020-12-23 13:47:28 +01:00
Bartłomiej Dach
74f0c50d82
Merge branch 'fix-multiplayer-server-disconnection-flow' into fix-hard-crash-on-signal-r-exceptions
2020-12-23 13:31:36 +01:00
Lucas A
6a80e1303d
LINQ-ify Import() logic and ignore case of file extensions.
2020-12-23 12:56:04 +01:00
Bartłomiej Dach
c839892a4c
Merge branch 'master' into fix-multiplayer-server-disconnection-flow
2020-12-23 11:57:43 +01:00
Bartłomiej Dach
94e4928c4b
Bring back accidentally-removed license header
2020-12-23 11:27:15 +01:00
Dean Herbert
f9fd909187
Fix missed inspections
2020-12-23 18:07:38 +09:00
Bartłomiej Dach
64095307de
Merge branch 'master' into realtime-leaderboard
2020-12-23 09:56:47 +01:00
Dean Herbert
3c8f871b28
Move player constructor configuration to dedicated class; add AllowRestart parameter
2020-12-23 17:47:46 +09:00
Dean Herbert
0ddcab574f
Rename method to avoid weird code analysis rule
2020-12-23 17:14:58 +09:00
Dean Herbert
7cc38f03d1
Use extension method in all call sites of fire-and-forget async usage
2020-12-23 17:10:34 +09:00
Dean Herbert
1864da00e6
Add extension method to handle cases of fire-and-forget async usage
2020-12-23 17:10:02 +09:00
Dean Herbert
c3c3364d39
Simplify error handling of JoinRoom call
2020-12-23 16:56:57 +09:00
Dean Herbert
d27b83d678
More correctly handle fire-and-forget async call
2020-12-23 16:51:11 +09:00
Dean Herbert
91021eb8c4
Remove unused using
2020-12-23 16:49:17 +09:00
Dean Herbert
d7279dab40
Merge pull request #11226 from peppy/fix-legacy-skin-texture-loader-store
...
Fix incorrectly provided texture loader store to skins
2020-12-23 16:41:01 +09:00
Dean Herbert
f5d27b40a8
Standardise flow for aborting realtime player exit to avoid double-exit call
2020-12-23 16:35:39 +09:00
Dean Herbert
569c4092ef
Move notification to stateful client so it is only shown to the user from one location
2020-12-23 16:35:39 +09:00
Dean Herbert
a1d42dc4a0
Don't allow creating or joining a room when not connected to server
2020-12-23 16:35:39 +09:00
Dean Herbert
12df3056e6
Ensure appropriate screens handle exiting when the server gets disconnected
...
I would have liked for this to be handled via the `OnRoomChanged` event
flow, but this isn't present in RealtimeMatchSubScreen due to
inheritence woes.
2020-12-23 16:35:39 +09:00
Dean Herbert
00d50150de
Ensure the current room is left at a mutliplayer client level on client disconnection
2020-12-23 16:35:39 +09:00
Salman Ahmed
286884421d
Apply track looping and play on track change
2020-12-23 08:47:34 +03:00
Dean Herbert
b632e44bac
Merge pull request #11256 from frenzibyte/disallow-joining-ended-realtime-room
...
Disallow joining ended rooms in realtime multiplayer
2020-12-23 14:30:00 +09:00
Dean Herbert
be427a4ec0
Fix realtime leaderboard showing accuracy based on final base score, not rolling
2020-12-23 14:20:35 +09:00
Dean Herbert
45dcd3242d
Add comment explaining why things are done where they are
2020-12-23 13:57:48 +09:00
Salman Ahmed
3aa2b22838
Add early check for room status before joining
2020-12-23 05:52:10 +03:00
Salman Ahmed
7751ef4f3e
Revert previous logic of join guarding
2020-12-23 05:50:15 +03:00
Bartłomiej Dach
08d87ccb1e
Merge branch 'master' into present-recommended
2020-12-22 23:36:13 +01:00
Bartłomiej Dach
3272804704
Fix potential crash when no submission token
...
Can happen because `TimeshiftPlayer` will schedule a screen exit on
token retrieval failure, and `RealtimePlayer`'s BDL won't even attempt
to create a leaderboard in that case.
2020-12-22 22:34:26 +01:00
Bartłomiej Dach
3ae9dd8491
Merge branch 'master' into show-all-participant-states
2020-12-22 21:50:36 +01:00
Bartłomiej Dach
5efc3b9496
Start state display as hidden
...
Would otherwise flicker for a few frames when a new user was added to
the list of participants.
2020-12-22 21:49:42 +01:00
Salman Ahmed
a64ffcd294
Refrain from joining room if not allowed
2020-12-22 16:38:10 +03:00
Salman Ahmed
91d5c53643
Add method for checking room joinability
2020-12-22 16:36:17 +03:00
Salman Ahmed
e3483147e2
Move track looping logic into subscreens
2020-12-22 13:55:46 +03:00
Dean Herbert
6517acc510
Add leaderboard display to realtime player
2020-12-22 19:10:08 +09:00
Dean Herbert
5c3df55cdf
Merge pull request #11247 from frenzibyte/fix-resolution-dropdown
...
Fix resolution dropdown not respecting current display changes
2020-12-22 18:28:01 +09:00
Dean Herbert
ce806dd880
Replace the ready mark display with a state display, showing all participant states
2020-12-22 18:25:45 +09:00
Dean Herbert
3c33ea7f1c
Merge pull request #11239 from smoogipoo/realtime-multiplayer-2
...
Implement realtime multiplayer
2020-12-22 18:23:03 +09:00
Dean Herbert
4f02928601
Change sorting to better handle portrait screens
2020-12-22 17:36:56 +09:00
Dean Herbert
3d5783a0ea
Improve variable names
2020-12-22 17:34:51 +09:00
Dean Herbert
a1d67f0cf6
Merge branch 'master' into fix-resolution-dropdown
2020-12-22 17:26:53 +09:00
Dean Herbert
59734229ff
Remove unused using
2020-12-22 17:21:53 +09:00
Dean Herbert
7d6b2df586
Merge branch 'master' into fix-legacy-skin-texture-loader-store
2020-12-22 17:09:44 +09:00
Dean Herbert
7da3420e07
Merge pull request #11216 from Joehuu/fix-selected-highlight-on-some-dropdowns
...
Fix selected item not being highlighted on some setting dropdowns
2020-12-22 17:09:22 +09:00
Dean Herbert
30357a9447
Add loading layer to multi song select to show during settings confirmation
2020-12-22 17:08:04 +09:00
Dean Herbert
12876d7fb6
Add very basic error handling on ChangeSettings calls
2020-12-22 16:50:30 +09:00
smoogipoo
2d7174d99c
Add padding to song select
2020-12-22 16:23:06 +09:00
Dean Herbert
3cf889b7c5
Fix some errors being completely ignored
2020-12-22 16:19:19 +09:00
Dean Herbert
34421c9232
Update framework
2020-12-22 15:58:57 +09:00
Dean Herbert
17d924c755
Move timeshift settings overlay to correct namespace
2020-12-22 15:52:47 +09:00
Dean Herbert
8201fa8e34
Split out common implementation and private classes in MatchSettingsOverlay
2020-12-22 15:51:24 +09:00
smoogipoo
27e64bdb34
Schedule callback continuations
2020-12-22 15:31:07 +09:00
smoogipoo
ab90db7c8d
Fix stuck lounge on join failure
2020-12-22 15:27:49 +09:00
Dean Herbert
85e93c5dde
Fix main menu multiplayer icons being back to front
2020-12-22 15:22:27 +09:00
Dean Herbert
3f966386ed
Fix compile time failure due to potentially null connection
2020-12-22 15:15:32 +09:00
smoogipoo
81e2edc73f
Use MRE with timeout to wait on match start
2020-12-22 14:59:11 +09:00
smoogipoo
dece41d050
Add todo
2020-12-22 14:58:47 +09:00