Bartłomiej Dach
01cf96e240
Only show global rankings on results screen when progressing from gameplay
2022-12-26 23:35:45 +01:00
Berkan Diler
08d2fbeb8e
Use new ArgumentNullException.ThrowIfNull throw-helper API
2022-12-22 21:27:59 +01:00
Bartłomiej Dach
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
Dean Herbert
b64a5cbda6
Merge branch 'master' into guard-url-protocols
2022-12-19 15:46:45 +09:00
Bartłomiej Dach
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
Dean Herbert
27c497145f
Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0
2022-12-16 18:16:26 +09:00
Dan Balasescu
caa0b7c290
Move score token to BeginPlaying
2022-12-12 13:59:27 +09:00
Dan Balasescu
4a65f5c864
Add score token to spectator state
2022-12-09 19:09:51 +09:00
mk56-spn
fc630165fd
Adjust formatting of BPM text
2022-12-06 15:08:21 +01:00
mk56-spn
f69c084969
Add roll duration
2022-12-05 17:08:00 +01:00
mk56-spn
b6a6db1160
Add dynamic BPM counter to SkinEditor
2022-12-05 12:29:23 +01:00
Dean Herbert
896f2d8f74
Fix multiple instances of last hitobject time being calculated incorrectly
2022-12-01 18:04:06 +09:00
Bartłomiej Dach
894ef15e79
Merge branch 'master' into update-framework
2022-11-26 16:19:36 +01:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
53b03df93d
Combine TriangleButton
and RoundedButton
classes
2022-11-24 16:26:57 +09:00
Dean Herbert
b381b4fd2d
Merge branch 'master' into update-framework
2022-11-24 01:27:58 +09:00
Dean Herbert
06ce8130c2
Apply changes in line with framework NRT updates
2022-11-18 18:13:15 +09:00
Dean Herbert
d59befc9d3
Fix initial visual state of positions before sort
runs
2022-11-18 16:08:27 +09:00
Dean Herbert
aff218dfd5
Redirect through validity function rather than overriding Sort
2022-11-18 16:03:40 +09:00
Dean Herbert
20af8217f4
Tidy up bindable flow
2022-11-18 15:50:41 +09:00
Dean Herbert
e4f522aad1
Fix inspections / typos
2022-11-18 15:47:37 +09:00
Dean Herbert
d17c091d63
Move constant to a better location
2022-11-18 15:47:31 +09:00
Dean Herbert
3faa7f5f74
Merge branch 'master' into gameplay-leaderboard-fix
2022-11-18 15:44:30 +09:00
Dan Balasescu
219d049edf
Merge pull request #21140 from maromalo/long-standard
...
Standardise scores to `long` type
2022-11-18 15:26:33 +09:00
Dan Balasescu
57b8495c7a
Merge branch 'master' into long-standard
2022-11-18 14:24:04 +09:00
Dean Herbert
e4d134a820
Reduce time waited on a score submission token from 60 to 30s
2022-11-18 14:07:40 +09:00
Dawid Sośnia
0dbf491872
Merge branch 'master' into gameplay-leaderboard-fix
2022-11-17 22:06:51 +01:00
Piggey
eb691266c1
cleanup
2022-11-17 21:50:39 +01:00
Piggey
fa00fc5c6d
change scoresType to be a bindable
2022-11-17 13:27:56 +01:00
Piggey
dea2a6ed8d
override sort()
function in SoloGameplayLeaderboard
2022-11-17 12:12:36 +01:00
Dean Herbert
489dca79a1
Remove upper limit for pooling
2022-11-15 12:31:25 +09:00
Dean Herbert
308ed1abd1
Fix number of judgements shown potentially exceeding upper limit
2022-11-15 12:31:25 +09:00
Dean Herbert
59a8603728
Ensure flowing animation starts correctly from zero
2022-11-15 12:04:40 +09:00
Dean Herbert
aef6ee23eb
Apply pooling support to ColourHitErrorMeter
2022-11-15 12:04:40 +09:00
Dean Herbert
a86b50d62a
Apply nullability to BarHitErrorMeter
2022-11-15 11:33:27 +09:00
Dean Herbert
576f462f59
Add pooling support to BarHitErrorMeter
2022-11-15 11:33:27 +09:00
maromalo
1911120afe
Merge branch 'master' into long-standard
2022-11-12 09:52:11 -03:00
Dan Balasescu
db25e9e9c8
Merge branch 'master' into combo-colour-brightness-limit
2022-11-11 15:31:28 +09:00
Piggey
0011f4e7be
fix comment lol
2022-11-09 19:59:04 +01:00
Piggey
ab53fb17d3
change displayed text from #?
to -
2022-11-09 19:53:36 +01:00
Dean Herbert
1aa0e40f2f
Add "Component" prefix to lookup naming
2022-11-09 17:46:43 +09:00
Dean Herbert
e75c3b3f94
Rename SkinnableTarget
to GlobalSkinLookup
2022-11-09 17:46:43 +09:00
Piggey
d48c56818f
change positionText
to display "#?" if tracked score is being 51st on the leaderboard
2022-11-08 20:02:21 +01:00
maromalo
8eef2ba8de
quality shenanigans
2022-11-06 20:12:26 -03:00
maromalo
b7ef9b176d
Make score type consistent
2022-11-06 19:59:27 -03:00
Bartłomiej Dach
84179fb087
Merge branch 'master' into combo-colour-brightness-limit
2022-11-05 16:48:56 +01:00
Dean Herbert
4154be6cda
Adjust auto-skip to skip multiple times if necessary
2022-11-03 13:52:29 +09:00
Dean Herbert
aef3c7918c
Add total skip count to SkipOverlay
2022-11-03 13:52:24 +09:00
Dean Herbert
3ec9686e58
Fix test failures and rename configuration value to match better
2022-11-02 18:15:18 +09:00
Dean Herbert
37300ba9e2
Standardise "Visual Settings" components to fix mismatched paddings and labels
2022-11-02 14:01:57 +09:00
Dean Herbert
50b6fe4acb
Localise new label
2022-11-02 14:01:03 +09:00
Dean Herbert
61fc3c8cc0
Add setting to visual settings toolbox
2022-11-02 13:58:34 +09:00
Dean Herbert
d8aa06ea92
Standardise "Visual Settings" components to fix mismatched paddings and labels
2022-11-02 13:55:56 +09:00
Dean Herbert
1035b5fb19
Fix hold to pause button not working when HUD is hidden
2022-10-30 21:38:45 +09:00
Joseph Madamba
87328dd1f5
Fix bar hit error meter labels not clearing when setting to none
2022-10-27 23:59:01 -07:00
Dean Herbert
71970d83cf
Remove obsoleted ShowProgressGraph
global setting
...
This was moved to the component itself.
2022-10-28 12:47:45 +09:00
Dean Herbert
6b26547d03
Merge pull request #20835 from frenzibyte/improve-hide-mouse-on-keyboard
...
Improve automatic cursor hiding logic and limit to gameplay screen
2022-10-20 11:44:20 +09:00
Dean Herbert
77b25c4a5c
Merge pull request #20788 from frenzibyte/handle-submitting-player-request-timeout
...
Fix potential exception in `SubmittingPlayer` token retrieval on request timeout
2022-10-20 09:51:57 +09:00
Salman Ahmed
4bf4938b72
Keep cursor hiding feature to gameplay screens for now
2022-10-20 03:44:58 +03:00
Dean Herbert
fbad33bef7
Adjust durations and make start off screen
2022-10-18 15:01:53 +09:00
Dean Herbert
0f809dcaa7
Merge branch 'master' into player-loader-improvements
2022-10-18 14:22:55 +09:00
Dean Herbert
516320edd9
Merge branch 'master' into handle-submitting-player-request-timeout
2022-10-17 18:51:13 +09:00
Dean Herbert
1e7b8cd227
Fix formatting issues
2022-10-17 13:22:06 +09:00
Salman Ahmed
ae05f374a2
Fix potential invalid operation exception in SubmittingPlayer
token retrieval
2022-10-17 03:26:29 +03:00
outfoxxed
85de802793
Only create hit error bar icon containers once
...
Move icon container creation to BDL, and only recreate the contained
icon when `recreateLabels` is called
2022-10-16 11:47:21 -07:00
outfoxxed
d6030891a2
Reuse existing code in hit error bar fix
...
Use `UprightAspectMaintainingContainer` instead of a local fix for
hit error bar orientation
2022-10-16 10:06:38 -07:00
outfoxxed
cd1885a17b
Fix hit error bar icon orientation
...
Icons now keep their original orientation when the hit error bar is
flipped
2022-10-16 02:55:10 -07:00
Dean Herbert
3645269108
Improve logo transition and reduce delay of exiting player loader in optimal conditions
2022-10-13 17:29:47 +09:00
Dean Herbert
b33935e392
Fix player loading screen settings scaling in
...
This always looked weird, and from the looks of the structure was
probably unintentional from the start (it is in the logo tracking
container for whatever reason).
2022-10-13 17:12:36 +09:00
Dean Herbert
0f4a2a6059
Improve feel of settings toolbox group
2022-10-13 16:36:19 +09:00
Dean Herbert
c9b4cacc20
Merge pull request #20724 from mk56-spn/Highest_Combo_Counter
...
Add "longest combo" counter to HUD components.
2022-10-13 12:26:49 +09:00
Dean Herbert
19f3810020
Revert namespace change
...
Let's not
2022-10-12 18:50:47 +09:00
Dario Headley
b72c8970eb
Max Combo Counter added
2022-10-12 09:50:01 +02:00
Dean Herbert
d2d589a156
Expose HUD state via Player
2022-10-12 15:11:52 +09:00
Dean Herbert
20adc522b9
Fix HUD components being interactive even when the HUD is visually hidden
2022-10-10 16:05:41 +09:00
Dan Balasescu
c18d4afdcc
Merge branch 'master' into fix-leaderboard-first-place-fade
2022-10-07 19:55:16 +09:00
Dan Balasescu
57e4d6cc4a
Merge pull request #20562 from peppy/fix-score-submission-crash
...
Fix potential crash when score submission token retrival fails
2022-10-07 19:24:35 +09:00
Dean Herbert
276021dd85
Remove now unnecessary ScheduleAfterChildren
2022-10-05 14:20:01 +09:00
Dean Herbert
42aac16b37
Adjust leaderboard score panels sizing based on accuracy/combo width
2022-10-03 18:12:36 +09:00
Dean Herbert
65369e96eb
Ensure token retrieval failure logic only runs once
2022-10-03 17:29:46 +09:00
Dean Herbert
c4dd23ed15
Log token retrieval failures even when gameplay is allowed to continue
2022-10-03 17:29:34 +09:00
Dean Herbert
4dbac917fc
Merge pull request #20547 from nanashi-1/solo-gameplay-leaderboard-max-combo
...
Display highest combo rather than current combo for local play on leaderboard
2022-10-03 16:57:05 +09:00
Salman Ahmed
a810afafb3
Reschedule results display delegate to avoid potential softlocks in the future
2022-10-02 15:37:56 +03:00
Salman Ahmed
59728b0ccb
Fix results display delegate potentially cancelled while not exiting
2022-10-02 15:30:06 +03:00
nanashi-1
2493468800
display highest combo instead of current combo
2022-10-02 18:40:31 +08:00
Dean Herbert
cbbca616c1
Merge branch 'master' into fix-leaderboard-first-place-fade
2022-09-28 17:58:45 +09:00
Dean Herbert
cdcc8494c9
Fix fade being applied for too long when leaderboard scrolls to start
2022-09-28 16:10:19 +09:00
Dean Herbert
c8643ed265
Set ClampExtension
to zero to stop jittering
2022-09-28 15:58:00 +09:00
Dean Herbert
8edb1cb98a
Add test coverage of current score staying on screen
2022-09-28 15:57:50 +09:00
Dean Herbert
0296685c74
Start key counter / gameplay leaderboard hidden to avoid initial fade out
2022-09-27 17:25:24 +09:00
Dean Herbert
320f134634
Use same logic as KeyCounterDisplay
2022-09-27 15:01:18 +09:00
nanashi-1
5d18001d75
move config
2022-09-26 21:11:38 +08:00
nanashi-1
4295d9c169
revert
2022-09-26 21:11:14 +08:00
nanashi-1
ee4d1b2d58
add config visibility
2022-09-26 20:13:07 +08:00
Dean Herbert
20da1051d9
Apply NRT to GameplayLeaderboard
hierarchy
...
Just some cleanup work that I wanted to do as part of my last changes.
2022-09-26 16:21:24 +09:00
o-dasher
feadac1f79
Cleanup all other leftover binding instantiation
2022-09-25 16:02:40 -04:00
Dan Balasescu
1d1012e196
Merge pull request #20286 from peppy/gameplay-leaderboards
...
Add basic gameplay leaderboard display
2022-09-22 21:16:12 +09:00
Dan Balasescu
445e026a32
Merge pull request #20389 from peppy/fix-gameplay-leaderboard-layout
...
Fix gameplay leaderboard sometimes not showing up
2022-09-22 20:51:54 +09:00
Dean Herbert
8f7a306d81
Inline comment regarding margin necessity
2022-09-22 19:53:16 +09:00
Dean Herbert
f0dcda9acc
Decrease precision of spacing setting
2022-09-22 15:49:02 +09:00