1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-19 14:23:14 +08:00
Commit Graph

253 Commits

Author SHA1 Message Date
Bartłomiej Dach
d8d5a00f3b
Merge branch 'master' into filter-playing-rooms 2024-12-12 13:06:22 +09:00
Dean Herbert
a3998fbd52
Merge branch 'master' into better-room-status 2024-12-11 18:06:55 +09:00
Bartłomiej Dach
3352571f2a
Add ability to filter out currently playing rooms
Addresses https://osu.ppy.sh/community/forums/topics/2013293?n=1.
2024-12-11 13:24:08 +09:00
Bartłomiej Dach
637fe07b31
Rename Room{Status -> Mode}Filter
I need the "status" term free for an upcoming change. And web calls this
parameter "mode" as well:

	642e973f91/app/Models/Multiplayer/Room.php (L184-L199)

so it works in my head.
2024-12-11 12:36:42 +09:00
Bartłomiej Dach
2e6f43a75d
Merge branch 'master' into close-playlists 2024-11-28 14:01:36 +01:00
Dan Balasescu
af0c6fc51b
Add Room.HasEnded helper method 2024-11-26 21:09:28 +09:00
Bartłomiej Dach
1410e8837a
Merge branch 'master' into better-room-status 2024-11-25 09:48:40 +01:00
Salman Alshamrani
956da0383f
Merge branch 'master' into multiplayer-remove-expired-item-removal 2024-11-23 22:19:21 -05:00
Dan Balasescu
82a63228de
Improve handling of multiplayer room status 2024-11-22 21:21:04 +09:00
Bartłomiej Dach
8b68859d9d
Fix Room.CopyFrom() skipping a field
Was making the close button not display when creating a room anew.
2024-11-22 09:57:57 +01:00
Dan Balasescu
39504c348d
Cleanup CopyFrom() method
Though the code appears slightly different, it should be semantically
equivalent. APIUser equality is implemented on `Id` and `Host` should
never transition from non-null to null.
2024-11-22 17:22:30 +09:00
Dan Balasescu
e59ac9e7c8
No longer remove expired playlist items from Room model 2024-11-22 17:19:26 +09:00
Dan Balasescu
f738fb2a89
Populate rooms as soon as they're joined 2024-11-21 23:48:04 +09:00
Dan Balasescu
7018672275
Fix playlist room status resetting on enter 2024-11-21 18:11:41 +09:00
Dan Balasescu
db7def9d34
Remove IDependencyInjectionCandidate interface from Room 2024-11-15 16:05:06 +09:00
Dan Balasescu
34c0f72dd6
Make Room.Playlist non-bindable 2024-11-15 15:51:01 +09:00
Dan Balasescu
b16edbbf52
Make Room.RecentParticipants non-bindable 2024-11-15 15:25:43 +09:00
Dan Balasescu
dc5337d771
Make Room.UserScore non-bindable 2024-11-15 14:42:46 +09:00
Dan Balasescu
c4f8fd1832
Make Room.DifficultyRange non-bindable 2024-11-15 14:42:46 +09:00
Dan Balasescu
487a010b12
Make Room.PlaylistItemStats non-bindable 2024-11-15 14:42:46 +09:00
Dan Balasescu
80b3e330a6
Make Room.ChannelId non-bindable 2024-11-15 14:42:46 +09:00
Dan Balasescu
6c84e425f8
Make Room.MaxAttempts non-bindable 2024-11-15 14:42:46 +09:00
Dan Balasescu
0ceaafe731
Make Room.Duration & Room.StartDate & Room.EndDate non-bindable 2024-11-15 14:42:45 +09:00
Dan Balasescu
89de4f0f87
Make Room.AutoStartDuration non-bindable 2024-11-15 14:42:45 +09:00
Dan Balasescu
b8bae30b66
Make Room.ParticipantCount & Room.MaxParticipants non-bindable 2024-11-15 14:42:45 +09:00
Dan Balasescu
f001cce24a
Make Room.AutoSkip non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
ec5be6dbc3
Make Room.Password & Room.HasPassword non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
198681e644
Make Room.QueueMode non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
7e3e5208f0
Make Room.Availability non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
5d4838a08b
Make Room.Status non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
81e4cb348f
Make Room.Type non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
bde7b8e610
Make Room.Category non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
8694f7e1cc
Make Room.Host non-bindable 2024-11-15 14:42:17 +09:00
Dan Balasescu
6160df1586
Make Room.Name non-bindable 2024-11-15 14:29:15 +09:00
Dan Balasescu
99762da7b8
Make RoomID non-bindable
Most important changes are to `RoomSubScreen` and `PlaylistsRoomSubScreen`, because those are the only two cases that now bind to the event instead.
2024-11-13 16:28:54 +09:00
Dan Balasescu
db025d81ee
Reorder public property vs private field 2024-11-13 15:50:01 +09:00
Dan Balasescu
72564b5c98
Make CurrentPlaylistItem not a bindable 2024-11-12 18:17:24 +09:00
Dean Herbert
2d745fb67e
Apply NRT to APIRequest 2024-08-30 18:35:31 +09:00
Bartłomiej Dach
3bb30d7ff9
Fix several missing properties on MultiplayerScore
You wouldn't think this would be an actual thing that can happen to us,
but it is. The most important one by far is `MaximumStatistics`; that
is the root cause behind why stuff like spinner ticks or slider tails
wasn't showing.

On a better day we should probably do cleanup to unify these models
better, but today is not that day.
2024-07-25 13:15:45 +02:00
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
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
Bartłomiej Dach
6fb0cabf36
Add start date to Room 2024-06-12 11:43:18 +02:00
Bartłomiej Dach
f135a9a923
Make SelectedItem externally mutable
Not being able to externally mutate this was making reuse in new daily
challenge screen unnecessarily arduous.
2024-06-10 12:44:38 +02:00
Dean Herbert
7cbe93efc3
Refactor latest changes to avoid unnecessary call when mods not present 2024-06-07 10:37:27 +08:00
Xesquim
6e3bea938e Instancing a Ruleset only when it's necessary to 2024-06-06 13:26:52 -03:00
Dean Herbert
dd3f4bcdab
Fix code quality and null handling 2024-06-07 00:01:50 +08:00
Xesquim
860afb8123 Creating method in ModUtils to calculate the rate for the song 2024-06-06 10:06:07 -03:00
Xesquim
7dd18a84f6 Fixing the GetTotalDuration in PlaylistExtesions 2024-06-05 12:25:33 -03:00
Bartłomiej Dach
61a415fed2
Add client/server models & operations for "daily challenge" feature 2024-05-17 10:58:08 +02:00
Bartłomiej Dach
221b4cd599
Remove unused cache 2024-05-03 11:37:09 +02:00