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
Dean Herbert
7141177966
Better signify private rooms by showing a different status pill design
2024-05-03 17:17:35 +08:00
Dean Herbert
42e49067e5
Move Room.Status
updates to a common location
2024-05-03 17:10:59 +08:00
Dan Balasescu
bfeb90c1b6
Add additional gameplay metadata to room score request
2024-02-10 17:20:17 +09:00
Bartłomiej Dach
e2192806e4
Use ID
rather than SoloScoreID
...
The latter is apparently not going to be a thing anymore.
2023-10-16 12:02:55 +02:00
Bartłomiej Dach
fb2293821a
Allow watching replay from multi/playlist results screens
2023-10-16 11:20:02 +02:00
Bartłomiej Dach
d5a733d244
Use solo score ID as OnlineID
when converting from MultiplayerScore
2023-10-16 11:20:02 +02:00
Dean Herbert
a98a36872e
Bring realm library up-to-date
2023-07-06 13:37:43 +09:00
Dean Herbert
fec086aec8
Fix OnlinePlayBeatmapAvailabilityTracker
not passing through Unknown
state
2023-06-28 16:02:46 +09:00
Dean Herbert
664a2b2255
Force a beatmap availability state change when selected item is changed
2023-06-28 16:02:46 +09:00
Bartłomiej Dach
e273c223a8
Fix some more missed CI inspections
2023-06-24 17:11:38 +02:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Bartłomiej Dach
287229efd5
Fix code quality inspection
2023-06-09 14:25:53 +02:00
Dean Herbert
7a5349d747
Remove constructor from MultiplayerPlaylistItem
which is only used in tests
2023-05-25 20:09:40 +09:00
timiimit
83ceb3457f
Add xmldoc comment
2023-05-15 07:36:15 +02:00
timiimit
cb8d5f459f
Remove bad comment
2023-05-15 07:36:15 +02:00
timiimit
86a834fb56
Fix TODO comment
2023-05-14 12:20:16 +02:00
timiimit
5d68701321
Copy StarRange when creating PlaylistItem
2023-05-14 12:08:37 +02:00
timiimit
f1f30b94a6
Add StarRating Property
2023-05-14 11:05:47 +02:00
Dean Herbert
61c702c02e
Add new IDependencyInjectionCandidate
interface to non-drawable cached classes
2022-11-29 14:45:26 +09:00
Dean Herbert
b5b79e09e4
Remove unnecessary CQ disable
2022-11-29 14:45:08 +09:00
Bartłomiej Dach
c42720acd4
Temporarily disable "partial class with one part" inspection
2022-11-26 18:05:08 +01:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
maromalo
b7ef9b176d
Make score type consistent
2022-11-06 19:59:27 -03:00
Dan Balasescu
525f98c158
Fix max combo missing from playlists results screen
2022-10-14 18:01:54 +09:00
Dean Herbert
ed81297611
Fix playlist items showing download button briefly during initial local presence checks
2022-09-08 17:10:45 +09:00
Dan Balasescu
d70208fcf1
Default to off
2022-09-01 14:14:22 +09:00
Dan Balasescu
b5ec7d06dd
Add auto-skip setting
...
Default to auto skip
2022-08-31 20:24:06 +09:00
Dean Herbert
c3c44c19cd
Use CompositeComponent
in various locations
2022-08-19 20:43:15 +09:00
Salman Ahmed
1b6ebcfd87
Remove SubmittableScore
and replace with SoloScoreInfo
extension method
2022-07-25 13:43:43 +03:00
Bartłomiej Dach
6f37487528
Replace calls to defective Humanizer methods with correct version
2022-07-18 22:34:58 +02:00
Dan Balasescu
c6520de749
Ensure PlaylistItem beatmap is not null
2022-06-30 14:24:49 +09:00
Dean Herbert
569fde4b47
Add messages to all InvalidOperationException
s
...
Without this, they can be very non-descript and hard to track down
2022-06-28 01:34:25 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dan Balasescu
77289c7224
Fix inability to serialise-then-deserialise playlist items
2022-06-03 20:36:12 +09:00
Dan Balasescu
646f5f0f33
Isolate "server-side" multiplayer rooms in testing
2022-06-03 19:17:34 +09:00
Dean Herbert
ef47b380c6
Add featured artist playlist category
2022-05-27 20:18:46 +09:00
Joseph Madamba
5e5c8e78a6
Use existing web localisation for most hardcoded strings
2022-04-20 16:31:11 -07:00
Dean Herbert
2bb0d9e6d3
Expose required classes/properties for mocking
2022-04-13 17:02:33 +09:00