Commit Graph

12436 Commits

Author SHA1 Message Date
e90619244d Fix incorrect accuracy display on overall ranking view 2022-12-27 19:51:51 +01:00
df6f2ad0a1 Merge pull request #21804 from bdach/hide-global-rankings-when-presenting-scores
Only show global rankings on solo results screen when progressing from gameplay
2022-12-27 16:39:26 +08:00
01cf96e240 Only show global rankings on results screen when progressing from gameplay 2022-12-26 23:35:45 +01:00
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
36a6f3685e Don't show global rankings display when not logged in 2022-12-24 14:35:11 +01:00
da519acb20 Add overall ranking display to solo results 2022-12-24 14:35:04 +01:00
3abdf557ea Add protected method for customising statistics panel rows 2022-12-24 14:35:00 +01:00
600ada46be Add protected method for customising statistics panel 2022-12-24 14:34:54 +01:00
cf0b3ec879 Merge branch 'master' into score-stats-display 2022-12-24 14:32:08 +01:00
83a50816b6 Remove unused constructor param 2022-12-24 10:44:38 +01:00
4e5109a649 Use plain bindable flow instead of binding to watcher directly 2022-12-24 10:27:28 +01:00
c7f248e13c Implement overall ranking display for solo results screen 2022-12-24 00:30:38 +01:00
676d4a0d6d Merge branch 'master' into fix-waveform-zoom-reload 2022-12-22 23:48:50 +01:00
0cb9b79834 Fix ZoomableScrollContainer potentially not updating content width on setup 2022-12-23 00:56:38 +03:00
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
6948035a3c Ensure score submission attempt completion before notifying spectator server when exiting play early
When a `SubmittingPlayer` gameplay session ends with the successful
completion of a beatmap, `PrepareScoreForResultsAsync()` ensures that
the score submission request is sent to and responded to by osu-web
before calling `ISpectatorClient.EndPlaying()`.

While previously this was mostly an implementation detail, this becomes
important when considering that more and more server-side flows (replay
upload, notifying about score processing completion) hook into
`EndPlaying()`, and assume that by the point that message arrives at
osu-spectator-server, the score has already been submitted and has been
assigned a score ID that corresponds to the score submission token.

As it turns out, in the early-exit path (when the user exits the play
midway through, retries, or just fails), the same ordering guarantees
were not provided. The score's submission ran concurrently to the
spectator client `EndPlaying()` call, therefore creating a network
race. osu-server-spectator components that implciitly relied on the
ordering provided by the happy path, could therefore fail to unmap the
score submission token to a score ID.

Note that as written, the osu-server-spectator replay upload flow is
not really affected by this, as it self-corrects by essentially polling
the database and trying to unmap the score submission token to a score
ID for up to 30 seconds. However, this change would have the benefit of
reducing the polls required in such cases to just one DB retrieval.
2022-12-21 22:23:26 +01:00
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
b64a5cbda6 Merge branch 'master' into guard-url-protocols 2022-12-19 15:46:45 +09:00
fea0895f16 Call spectator EndPlaying() immediately after score submission
As it turns out, in current `master`, if a gameplay session ends
normally (i.e. by the player completing the beatmap in full), then
the spectator server `EndPlaying()` method will not be called until
`SubmittingPlayer.OnExiting()`, which in practice turns out to be
the moment where the user exits from the post-gameplay results screen
back to song select.

There is seemingly no reasonable cause for not calling this earlier. In
fact the solo spectator flow looks more broken without this call than
with, because without it the spectator view just hangs until the
spectated player exits gameplay, and *only then* shows results, rather
than do it upon normal gameplay completion.
2022-12-17 21:35:43 +01:00
ba54551313 Merge branch 'master' into guard-url-protocols 2022-12-16 18:23:16 +09:00
27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
d5b2c7dfe9 Clamp SFX panning on results screen 2022-12-16 17:19:07 +09:00
cbee72897a Merge pull request #21654 from Susko3/use-localisable-strings-for-dates-and-times
Use `LocalisableString`s for date and time formats
2022-12-16 16:17:14 +09:00
232f590ba3 Merge pull request #21628 from peppy/go-hard-file-writes
Use hard links on windows when importing beatmaps from a legacy osu! install
2022-12-16 14:52:57 +09:00
0f34d908c7 Use LocalisableStrings for date and time formats 2022-12-16 00:05:47 +01:00
50dc76d579 Merge pull request #21618 from smoogipoo/multi-spec-only-local-results
Only show local results in multi-spectator results screen
2022-12-14 14:00:02 +09:00
b8904fe747 Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
cb16d62700 Hook up ImportParameter flow with IModelImporter caller methods 2022-12-13 21:29:32 +09:00
7b48c91fe2 Only show local results in multi-spectator results screen 2022-12-12 18:56:43 +09:00
caa0b7c290 Move score token to BeginPlaying 2022-12-12 13:59:27 +09:00
4a65f5c864 Add score token to spectator state 2022-12-09 19:09:51 +09:00
0aeee8d6ab fix typo in today's tip 2022-12-07 17:47:37 +03:00
eea7984ba9 Remove triangle effect from latency certifier buttons 2022-12-07 14:53:56 +09:00
9ddc2f4804 Merge pull request #21523 from Feodor0090/rewind-click-fix
Perform rewind with right click only if cursor didn't leave the button
2022-12-06 13:38:20 +09:00
b66409bd37 Perform rewind with right click only if cursor didn't leave the button 2022-12-05 23:38:45 +03:00
41f7dad8e9 Delete SmoothCircularProgress.cs 2022-12-03 16:40:41 +03:00
97b6d88f00 Remove SmoothCircularProgress usage in AccuracyCircle 2022-12-03 16:39:44 +03:00
5a69656764 Merge pull request #21496 from peppy/fix-zero-length-spinners
Fix being able to place zero-length spinners
2022-12-02 19:25:00 +09:00
850931120d Merge pull request #21479 from peppy/fix-wrong-last-hit-object-time
Fix some components not accounting for final hold notes in osu!mania beatmaps
2022-12-02 18:12:00 +09:00
d1296a22ce Update timeline blueprint's end time logic to better match new blueprint implementation 2022-12-02 17:57:15 +09:00
a39bd634c4 Merge pull request #21405 from LumpBloom7/Editor-DrawableRuleset-Dependencies
Provide DrawableRulesetDependencies from HitObjectComposer
2022-12-02 17:31:31 +09:00
d684aa75b8 Merge pull request #21477 from peppy/fix-mania-timeline-blueprint-colour
Fix osu!mania editor timeline showing bright-white blueprints
2022-12-02 16:55:29 +09:00
a2db0afe19 Avoid querying GetLastObjectTime twice in editor seek flow 2022-12-02 16:07:24 +09:00
8cf89fcb81 Use Highlight1 instead of dull grey 2022-12-02 15:30:47 +09:00
896f2d8f74 Fix multiple instances of last hitobject time being calculated incorrectly 2022-12-01 18:04:06 +09:00
f34a79b1a9 Set a better default colour for timeline blueprints when no colour information is available 2022-12-01 17:03:53 +09:00
bbf023cf68 Fix incorrect culture used when parsing timeline popup textbox content 2022-12-01 16:12:29 +09:00
5c8fce1c08 Remove extra blank line 2022-11-30 13:05:14 +01:00
6a61e70766 Expose Ruleset from HitObjectComposer instead 2022-11-30 12:17:58 +01:00
4215f4f5d7 Merge branch 'master' into Editor-DrawableRuleset-Dependencies 2022-11-30 17:42:46 +09:00