Dean Herbert
dea7f2308c
Fix participant panels potentially keeping a reference to an old user
...
If a user leave and then rejoins a multiplayer match while another user
is not at the lobby screen, there is a potential the `ParticipantPanel`
tracking the user will not correctly be recreated to reference the new
instance of the `MultiplayerUser`.
This happens because the `OnRoomUpdated` call is scheduled, which means
it is not running in the background, coupled with the local logic that
relies on `IEquatable(MultiplayerRoomUser)` (which in turn falls back to
a UserID comparison).
Changing this to a reference comparison is the easiest way to resolve
this. Whether we change the `IEquatable` implementation is up for
discussion.
Closes https://github.com/ppy/osu/issues/15970 .
2021-12-07 17:24:04 +09:00
Bartłomiej Dach
53a6ef22ce
Add null check to resolve inspection
2021-12-04 14:55:35 +01:00
Dean Herbert
e75e209053
Cache and consume IRulesetStore
where feasible
2021-12-03 18:16:01 +09:00
Dan Balasescu
459e819a5d
Update todo
2021-11-16 00:50:23 +09:00
Dan Balasescu
07a7b4bcdc
Merge branch 'master' into multi-queueing-modes
2021-11-11 22:19:30 +09:00
Bartłomiej Dach
9664b9a97c
Fix being able to switch own team by clicking other players' team indicators
2021-11-11 09:01:50 +01:00
Dean Herbert
328c72c358
Fix TeamDisplay
not showing after changing to team versus
2021-11-10 13:44:31 +09:00
Dean Herbert
52c740b377
Add failing test showing team display display failure
2021-11-10 13:44:31 +09:00
smoogipoo
f076b72fbe
Merge branch 'master' into multi-queueing-modes
2021-10-29 10:48:16 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
smoogipoo
db87e42d47
Remove beatmap/ruleset/etc from MultiplayerRoomSettings
2021-10-22 16:48:28 +09:00
5ln
3529f34c98
Multi: Hide mods when spectating or Beatmap isn't Locally Available.
...
Signed-off-by: 5ln <xnafumie@gmail.com>
2021-10-18 02:01:50 +08:00
Dean Herbert
7fe0eefb78
Add inline comment regarding team switch sample logic
...
Feels a bit convoluted without this. Don't really have a better
suggestion for now so a comment will do.
2021-09-13 14:12:19 +09:00
Jamie Taylor
217ca754ae
Add sound for team swaps
2021-09-08 13:45:05 +09:00
Jamie Taylor
e341f471b0
Add lobby sfx for join/leave/kick/ready/unready events
2021-08-26 15:29:22 +09:00
Salman Ahmed
7fe6f6dd14
Fix kick button action asserting and using User.User.ID
rather than User.UserID
2021-08-16 09:47:23 +03:00
Salman Ahmed
79cd062784
Let TeamDisplay
take the full MultiplayerRoomUser
rather than the underlying User
2021-08-16 09:47:23 +03:00
Dean Herbert
d6352637d6
Also add tooltip and context menu item
2021-08-11 17:45:34 +09:00
Dean Herbert
bb51ebd0ef
Don't show button on self
2021-08-11 17:42:46 +09:00
Dean Herbert
7aab8c32ec
Add kick button and hook up logic
2021-08-11 17:31:54 +09:00
Dean Herbert
aa320c70a7
Improve show/hide animation and add more padding around the crown
2021-08-03 23:42:37 +09:00
Dean Herbert
b8e878ccc9
Add the ability to change team by clicking current team colour
...
Definitely not the final UX, but it's what people are used to and easy
to implement, so it'll do for now.
2021-08-03 23:42:37 +09:00
Dean Herbert
5e59b1325c
Add team display to participant list
2021-08-03 23:42:37 +09:00
Dean Herbert
7774344f0e
Remove "Unranked" text from ModDisplay
2021-06-09 13:45:09 +09:00
smoogipoo
d197a7f6f5
Rename multiplayer client classes
2021-05-20 15:39:45 +09:00
Dean Herbert
a55e62188e
Change state icon to binoculars so the eye isn't staring at me
2021-04-08 15:54:58 +09:00
smoogipoo
c744f77cfa
Add participant panel state
2021-04-07 16:40:24 +09:00
Salman Ahmed
e14a59f272
Fix creating ruleset instances per LINQ select
2021-02-18 15:26:59 +03:00
Salman Ahmed
a845e96b7a
Replace Ranks.Global
completely with a GlobalRank
property
2021-02-17 08:52:04 +03:00
Salman Ahmed
0e7f52b5cc
Always use JSON property global_rank
for global ranks instead
2021-02-16 07:33:16 +03:00
Salman Ahmed
5b4999e8af
Update user statistics retrieval with API changes
2021-02-16 07:33:13 +03:00
Salman Ahmed
d15ffff9a5
Simplifiy user statistics retrieval to one-time on deserialization
2021-02-16 04:48:36 +03:00
Salman Ahmed
a1496cd8f3
Remove necessity of using CurrentModeRank
as a fallback
2021-02-16 04:48:36 +03:00
Salman Ahmed
90aa6256d7
Merge branch 'master' into multiplayer-participant-rank
2021-02-16 04:44:57 +03:00
Salman Ahmed
d101add159
Display user global rank for selected ruleset in participants panel
2021-02-08 21:25:50 +03:00
smoogipoo
a08c51f213
Remove duplicate code
2021-02-08 19:23:10 +09:00
Dean Herbert
34a1918d03
Merge branch 'master' into user-beatmap-downloading-states-2
2021-02-06 00:27:55 +09:00
smoogipoo
95ad7ea8f7
Fix mods on participant panels flashing when changed
2021-02-05 18:44:33 +09:00
Dean Herbert
1b6a052798
Refactor logic to suck a bit less
2021-02-05 15:46:03 +09:00
Dean Herbert
d1f9aa52a4
Inline variable
2021-02-05 15:33:48 +09:00
Dean Herbert
9e9e382bee
Merge branch 'master' into user-beatmap-downloading-states-2
2021-02-05 15:27:17 +09:00
smoogipoo
2e85ce5b82
Rename UserMods -> Mods for MultiplayerRoomUser
2021-02-05 12:40:16 +09:00
smoogipoo
173e20938c
Revert changes to ModDisplay
2021-02-02 13:49:58 +09:00
smoogipoo
9c4c47599f
Merge branch 'master' into freemods
2021-02-01 19:28:10 +09:00
smoogipoo
3a906a89fc
Pin mod position in participant panels
2021-02-01 18:27:15 +09:00
smoogipoo
f538963607
Extra mods -> user mods
2021-02-01 17:57:32 +09:00
smoogipoo
ac2a995041
Add user and panel states
2021-02-01 17:54:56 +09:00
Dean Herbert
a61444690e
Remove all usage of CatchUnobservedExceptions
...
This should no longer be required with the recent framework side change
that stops a game from crashing on unobserved exceptions
(https://github.com/ppy/osu-framework/pull/4171 ).
2021-01-29 16:32:29 +09:00
Salman Ahmed
6deb10e075
Add UI state display for each client's beatmap availability
2021-01-18 11:10:02 +03: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