Dean Herbert
8a48cb701d
Tidy up implementation and remove unnecessary enum
2022-07-15 19:02:04 +09:00
Dean Herbert
ab6665d88c
Merge branch 'master' into Save-Score-Failed
2022-07-15 18:02:58 +09:00
Dean Herbert
937692604e
Remove mention of autoplay mod for now
2022-07-13 22:37:20 +09:00
Dean Herbert
ab3ec80159
Update LastPlayed
on gameplay starting in a SubmittingPlayer
2022-07-13 16:43:43 +09:00
Dean Herbert
b52ea16133
Show basic error message when score submission fails
2022-07-12 15:10:59 +09:00
cdwcgt
d2406242ae
rename updateTooltip to updateState
2022-07-09 00:38:17 +09:00
cdwcgt
91f471ebe0
disabled button instead of shake
...
removed `ShakeContainer`
2022-07-09 00:37:53 +09:00
cdwcgt
a38c6704c2
Use ContinueWith, Check is Task empty
2022-07-09 00:23:32 +09:00
Dean Herbert
e4ebab92c6
Rename lots of weird variables
2022-07-08 18:37:03 +09:00
Dean Herbert
f3a6e646a6
Merge branch 'master' into Save-Score-Failed
2022-07-08 18:32:13 +09:00
Dean Herbert
9d730f8440
Fix custom rulesets not importing scores at all
...
Replaces the error with the ability to import, minus replays.
Closes https://github.com/ppy/osu/issues/17350 (arguably, but let's go with it for now).
2022-07-07 14:49:23 +09:00
Dan Balasescu
1ccfd69690
Merge pull request #18978 from peppy/send-beatmap-hash-to-server
...
Send beatmap hash to server on solo score request
2022-07-03 13:18:17 +09:00
Salman Ahmed
19d300e311
Fix player loader not accepting star difficulty updates after display
2022-07-02 09:17:38 +03:00
Dean Herbert
634b6cdbbe
Send beatmap has to server on solo score request
...
Right now, the client does nothing to ensure a beatmap is in a valid
state before requesting to submit a score. There is further work to be
done client-side so it is more aware of this state (already handled for
playlists, but not for the solo gameplay loop), but the solution I have
in mind for that is a bit more involved.
This is not used server-side yet, but I want to get this sending so we
can start using it for some very basic validation.
Will resolve the basic portion of #11922 after implemented server-side.
2022-07-02 12:16:17 +09:00
cdwcgt
33209ecd25
remove useless value change
2022-06-30 19:51:58 +09:00
cdwcgt
fd0d8b1ce3
Add button state, fix async issues, watch replay method
...
Most borrowed from `ReplayDownloadButton`
2022-06-29 22:50:47 +09:00
Dean Herbert
6bfd351dec
Add logging of GameplayClockContainer
seeks
2022-06-28 15:23:29 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
cdwcgt
bff35cb348
Shake button when replay already save
2022-06-22 01:19:20 +09:00
cdwcgt
f2eb7e0551
Use better design and fix some problem
...
Let saveReplay async but still void
Make failed score's rank = F
2022-06-21 19:06:38 +08:00
Dan Balasescu
b3e5642dfd
Use WaitingOnFrames instead
2022-06-21 12:23:43 +09:00
cdwcgt
43ead5820a
deal with test
2022-06-21 00:54:50 +09:00
cdwcgt
9a6f4ef76d
Save score button on failed screen
2022-06-19 23:59:37 +09:00
Dan Balasescu
98d69c846c
Reset spectator speed at last frame
2022-06-19 17:12:20 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
be2b4e68b9
Don't play player exit sound when restarting
2022-06-15 17:49:18 +09:00
Dean Herbert
6136e4e27a
Don't play exit sound if screen is in a non-resumable state when exiting
2022-06-15 17:37:25 +09:00
Jamie Taylor
6b744a14b0
Move 'back' sample playback from OnResuming to OnExiting
2022-06-15 15:41:28 +09:00
Dean Herbert
6be4209458
Fix AlwaysPresent
specification in wrong container
2022-06-15 01:04:43 +09:00
Dean Herbert
a20e43c2ae
Ensure containers which are being used to hide HUD elements still update for now
...
I don't think this is necessarily a final solution (as this means all
HUD elements are adding overhead even when not visible), but this will
make the implementations much easier for the time being.
I've checked and can't notice any perceivable overhead in profiling so
we should be fine for now.
2022-06-14 18:22:25 +09:00
Dean Herbert
bd9ea9bd6f
Revert most unnecessary changes
...
Turns out `AlwaysPresent` at top level is actually enough.
This reverts commit 86163d2225
.
2022-06-13 23:58:14 +09:00
Dean Herbert
86163d2225
Fix hit error meters not updating visual state when hidden
...
It is an expectation of users that when the HUD is shown after a period
of being hidden, it will visually reflect the state based on recent
judgements.
To achieve this, I've added `AlwaysPresent` and moved the transform
application to the meter level, rather than at a child level. If this is
seen as a bad direction, `AlwaysPresent` can be applied to the drawable
children and the transforms can be moved back.
Also of note, `ColourHitErrorMeter` is pretty weird. The flow class
could potentially be removed and reduce `AlwaysPresent` usage by one.
Can do that refactor as part of this PR if preferred.
Closes #18624 .
2022-06-13 16:38:57 +09:00
Dean Herbert
17eaf7bb5c
Add failing test coverage showing hit meters don't update when not visible
2022-06-13 16:36:22 +09:00
Dan Balasescu
6e450b7350
Explicitly handle operation cancelled exceptions
2022-06-09 14:35:53 +09:00
Dan Balasescu
ec03dc16db
Don't trigger notification when user quit
2022-06-09 14:13:14 +09:00
Dan Balasescu
bfde334e77
Allow beatmaps to load endlessly when entering Player
2022-06-09 14:03:21 +09:00
Dan Balasescu
22d998dc2a
Use new score processor in MultiplayerGameplayLeaderboard
2022-05-30 19:26:26 +09:00
Dan Balasescu
a052e09ac3
Send ScoreProcessor statistics in SpectatorState
2022-05-30 19:26:26 +09:00
Dan Balasescu
c97b477485
Fix inverted operation order
2022-05-30 19:11:54 +09:00
Bartłomiej Dach
1641918c51
Revert "Avoid throwing unobserved exception when PerformancePointsCounter
requests timed attributes"
...
This reverts commit 19b655d75b
.
2022-05-28 15:23:28 +02:00
Dean Herbert
9c3d0dafbd
Remove implementation at Player
level
...
Turns out this isn't required in the end due to implementation at
`MasterGameplayClockContainer`.
2022-05-23 02:00:21 +09:00
Dean Herbert
007582afb9
Remove unused usings resulting from namespace move
2022-05-22 23:55:33 +09:00
Dean Herbert
eabf578282
Use interface to convey beat sync information
2022-05-22 22:44:54 +09:00
Dean Herbert
1c36995606
Expose HoldingForHUD
state from HUDOverlay
as bindable
2022-05-11 16:09:16 +09:00
Bartłomiej Dach
cbd1169495
Move cache declarations of ISamplePlaybackDisabler
to interface
2022-05-08 10:38:58 +02:00
Bartłomiej Dach
9ae019eb39
Move ISamplePlaybackDisabler
to more general namespace
2022-05-08 10:38:58 +02:00
Bartłomiej Dach
f5026bbbeb
Bind to button's activation delay directly
2022-05-06 10:04:36 +02:00
Bartłomiej Dach
f39fcee41b
Remove commented-out code
2022-05-06 10:04:00 +02:00
Dean Herbert
78959a6e05
Add animation to denote a dangerous player exit
2022-05-06 15:02:22 +09:00
Dean Herbert
1c4aa12585
Rename non-descript Button
nested class
2022-05-06 14:45:53 +09:00
Dean Herbert
a11771c11b
Better encapsulate exposed bindables of HoldToConfirmContainer
2022-05-06 14:45:53 +09:00
Dean Herbert
be960eb092
Move dangerous hold specification to base class
2022-05-06 14:34:31 +09:00
Dean Herbert
2896612c5c
Make exiting multiplayer a dangerous operation, requiring hold
2022-05-03 16:06:04 +09:00
Bartłomiej Dach
2b4a49e17f
Merge branch 'master' into move-difficulty-graph-toggle
2022-05-02 16:38:25 +02:00
Dean Herbert
1f1845d69b
Merge branch 'master' into multiplayer-force-start-2
2022-04-29 14:45:40 +09:00
Dean Herbert
c4495dafb6
Merge branch 'master' into move-difficulty-graph-toggle
2022-04-29 13:44:47 +09:00
Dean Herbert
6ccbdc85a3
Improve setting description text
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-04-29 11:56:46 +09:00
Dan Balasescu
1d8ac6917d
Send Loaded state from PlayerLoader on update thread
2022-04-28 20:10:47 +09:00
Salman Ahmed
691bec6f16
Use LocalisableString.Interpolate
instead of invalid TranslatableString
s
2022-04-28 11:38:40 +03:00
Dean Herbert
3c45746ba1
Add back schedule for safety
2022-04-28 14:29:57 +09:00
Dean Herbert
7c1b0b41ff
Fix migration not working correctly when applying on a default skin
2022-04-28 14:19:24 +09:00
Dean Herbert
7a23363d74
Add migration of song progress setting from config to component
2022-04-27 18:10:58 +09:00
Dean Herbert
e6bb5e84ec
Merge branch 'master' into move-difficulty-graph-toggle
2022-04-27 17:22:25 +09:00
Salman Ahmed
e646233722
Use correct translation for "Accuracy" label in break overlay
2022-04-26 19:16:36 +03:00
Dean Herbert
8ab3636f87
Change conditions for HUD being shown to include pause/fail states
...
As proposed in https://github.com/ppy/osu/discussions/17975 . Feels pretty good to me, and probably how it should have been implemented from the start.
2022-04-26 12:09:21 +09:00
Dan Balasescu
b293d3923c
Merge branch 'master' into multiplayer-force-start-2
2022-04-23 01:03:55 +09:00
Dean Herbert
832d37b2c2
Update screen transition events to use new event args
2022-04-22 00:52:44 +09:00
Dan Balasescu
41355384bd
Add support for gameplay abort/force start
2022-04-21 23:14:37 +09:00
Dean Herbert
848366416e
Revert string type changes in MetadataLineInfo
2022-04-21 14:10:58 +09:00
Joseph Madamba
5e5c8e78a6
Use existing web localisation for most hardcoded strings
2022-04-20 16:31:11 -07:00
Salman Ahmed
94335c2938
Update further usages to cache/resolve via interface
2022-04-19 00:18:10 +03:00
Dean Herbert
043599081b
Split out INotificationOverlay
to allow for easier testing
2022-04-18 20:14:01 +09:00
Dan Balasescu
2abdbe53e7
Cleanup whitespace
2022-04-14 18:55:12 +09:00
Dan Balasescu
9de4d416e2
Merge branch 'master' into fix-spectator-seeks
2022-04-14 18:54:52 +09:00
Dan Balasescu
494955aff1
Resolve inspection issues
2022-04-14 13:11:11 +09:00
Dean Herbert
fbf0e5a45c
Remove startFromSkipTarget
parameter and update usages that required said behaviour
2022-04-13 14:25:43 +09:00
Dean Herbert
a59c6013c7
Rename latestGameplayStartTime
to skipTargetTime
2022-04-13 14:03:52 +09:00
Dean Herbert
d4286255a0
Expose and set GameplayStartTime
directly, rather than via Reset
parameter
2022-04-13 13:58:44 +09:00
Dean Herbert
017f3852c8
Replace incorrectly chosen ??=
with ??
2022-04-13 13:32:36 +09:00
Dean Herbert
9c68b3edc5
Merge branch 'master' into fix-spectator-seeks
2022-04-13 12:33:41 +09:00
Dean Herbert
282fccb4c8
Fix typo in xmldoc
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-04-13 12:24:47 +09:00
Dean Herbert
8b1cee75fa
Use BindableLong
instead of BindableInt
for user score tracking
2022-04-12 14:13:07 +09:00
Dean Herbert
0ba95a4483
Ensure all users are shown on leaderboard (even when API lookup fails)
2022-04-12 11:54:30 +09:00
Dean Herbert
ebee9e6888
Fix MultiplayerGameplayLeaderboard
not immediately updating totals on scoring mode change
2022-04-12 11:27:27 +09:00
Dean Herbert
cb6e557212
Fix MasterGameplayClockContainer
having incorrect rate-based offsets immediately after LoadComplete
...
I've attempted to explain why this is required using inline comments.
There's also further conversation at
https://github.com/ppy/osu/pull/17302#issuecomment-1091850927 .
2022-04-11 14:11:26 +09:00
Dean Herbert
808f0ecb74
Ensure running state is updated before performing Seek
in GameplayClockContainer.Reset
2022-04-11 14:10:50 +09:00
Dean Herbert
19b655d75b
Avoid throwing unobserved exception when PerformancePointsCounter
requests timed attributes
2022-04-11 13:30:21 +09:00
Dean Herbert
a3695c7e97
Merge branch 'master' into fix-spectator-seeks
2022-04-06 12:58:43 +09:00
Dean Herbert
01829cf2d8
Move SkinnableInfo
error handling to lower level
...
Handling was recently added to handle the usage in
`Skin.GetDrawableCompoent`, but it turns out this is also required for
`DrawableExtensions.ApplySkinnableInfo` which can throw in a similar
fashion.
Found while working on sprite support for the editor, where this becomes
an actual issue (ie. switching to a branch where the new sprite support
is not present can cause unexpected crashes).
2022-04-01 14:30:04 +09:00
Joseph Madamba
d0873d67e1
Move difficulty graph toggle to individual skin settings
2022-03-31 18:56:57 -07:00
Salman Ahmed
9c19ae1df8
Remove no longer necessary ruleset field
2022-03-31 06:40:38 +03:00
Dan Balasescu
6e94a9780b
Remove ScoreInfo allocations in multi leaderboard
2022-03-31 12:23:00 +09:00
Sebastian Krajewski
cb62d3d4b9
Remove skin dependency as component is reinitialized on skin change
2022-03-30 01:09:05 +02:00
Sebastian Krajewski
7582c943a4
Use In/Out instead of {In/Out}Quad
2022-03-30 00:48:59 +02:00
Dean Herbert
8948bcce19
Restructure transforms slightly
2022-03-29 13:18:31 +09:00
Sebastian Krajewski
caf641e1ab
Remove redundant ClearTransforms
2022-03-28 23:50:35 +02:00
Sebastian Krajewski
981ef735cf
Always start small pop out from its initial size
2022-03-28 19:57:59 +02:00
Sebastian Krajewski
e3289bb080
Don't scale big pop out as much
2022-03-28 19:33:00 +02:00
Sebastian Krajewski
265b2111ef
Remove comment
2022-03-28 18:08:51 +02:00
Sebastian Krajewski
001a98e069
Fix LegacyComboCounter not unsubscribing from skin
2022-03-28 18:08:35 +02:00
Sebastian Krajewski
05a978ce8c
Update LegacyComboCounter layout and scaling
2022-03-28 16:36:37 +02:00
Dean Herbert
8ca9cbc866
Set a more correct initial value for pauseFreqAdjust
...
As the `GameplayClock` now starts paused, this value needs to match to
ensure things work correctly.
For a better explanation of how we got here, see discussion at
https://github.com/ppy/osu/pull/17302#discussion_r830017735 .
2022-03-24 14:50:00 +09:00
Dean Herbert
6f529cf7a4
Merge branch 'master' into fix-spectator-seeks
2022-03-24 14:24:20 +09:00
Bartłomiej Dach
b7d5a628bc
Merge branch 'master' into fix-spectator-seeks-hot
2022-03-19 11:39:01 +01:00
Dean Herbert
a903aee17e
Use schedule to workaround seek issue instead
2022-03-19 18:00:14 +09:00
Dean Herbert
cf2212e794
Revert "Fix spectator not starting from correct seek point (hotfix)"
...
This reverts commit 2b59eff465
.
2022-03-19 17:20:54 +09:00
Dean Herbert
2b59eff465
Fix spectator not starting from correct seek point (hotfix)
2022-03-19 15:14:25 +09:00
Dean Herbert
dae5569e36
Use nullable
in PlayerLoader
2022-03-19 15:06:22 +09:00
Dean Herbert
da76358ee0
Expose the loading player in PlayerLoader
2022-03-19 15:06:22 +09:00
Salman Ahmed
b99541fb5e
Revert "Swap placements of "hold for menu" and key counter"
...
This reverts commit 5bcb7c167c
.
2022-03-19 08:08:07 +03:00
Salman Ahmed
ad9b119e3d
Reduce "hold for menu" radius of visibility
2022-03-19 05:04:54 +03:00
Salman Ahmed
486be83177
Calculate position adjustment distance in local parent space
2022-03-19 05:04:13 +03:00
Salman Ahmed
5bcb7c167c
Swap placements of "hold for menu" and key counter
2022-03-19 05:02:22 +03:00
Dean Herbert
ed90dc6d6b
Fix centering of labels using Height
instead of location to better handle rotations
2022-03-18 20:17:04 +09:00
Dean Herbert
bd488d139d
Better centre text labels for hit error meter
2022-03-18 20:11:05 +09:00
Dean Herbert
7c9fe4036c
Add setting to change the style of the early/late markers
2022-03-18 17:50:37 +09:00
Dean Herbert
919583137e
Add line style for centre marker
2022-03-18 17:50:37 +09:00
Dean Herbert
cdeab1b14e
Add setting to change the style of the centre marker
2022-03-18 17:50:37 +09:00
Dean Herbert
331cb2aa80
Add setting to show or hide the moving average arrow
2022-03-18 17:50:37 +09:00
Dean Herbert
3f92bef9df
Add setting for judgement line thickness
2022-03-18 17:50:37 +09:00
Dean Herbert
f09a946722
Start GameplayClockContainer
paused for better state control
2022-03-18 15:28:22 +09:00
Dean Herbert
c6be26eb01
Rename start time calculation method and add more commenting to explain purpose better
2022-03-18 01:35:50 +09:00
Dean Herbert
e3ab5de8cd
Tidy up constructor logic overlap with gameplayStartTime
2022-03-18 01:35:50 +09:00
Dean Herbert
a4a0241800
Use a more explicit flow to set and reset GameplayClockContainer
start time
2022-03-17 20:57:30 +09:00
Dean Herbert
5164b4d640
Use nullable
in PlayerLoader
2022-03-17 20:57:30 +09:00
Dean Herbert
e3a5299b1a
Expose the loading player in PlayerLoader
2022-03-17 19:32:01 +09:00
Dean Herbert
4650c197a3
Make SongProgress.DrawableRuleset
nullable to allow test scene to work
2022-03-17 18:45:37 +09:00
Dean Herbert
fd71aa4a4d
Change SongProgress
resolution requirements to be required
2022-03-17 15:05:54 +09:00
Dean Herbert
ac739c9dae
Change PerformancePointsCounter
resolution requirements to be required
...
All other similar UI components have required dependencies, so this is
mainly to bring things in line with expectations. I am using this fact
in the skin editor to only show components which can be used in the
current editor context (by `try-catch`ing their
`Activator.CreateInstance`).
2022-03-17 14:56:35 +09:00
Dan Balasescu
d80830b415
Merge pull request #17226 from peppy/skin-component-settings
...
Allow skin components to have settings
2022-03-16 17:12:11 +09:00
Dean Herbert
1814a325d8
Move GetSettingUnderlyingValue
to a SettingSource
extension method
2022-03-15 14:54:00 +09:00
Dean Herbert
6fb06d69cc
Merge branch 'master' into pp-counter-alloc-reduction
2022-03-15 13:31:57 +09:00
Dean Herbert
deb4aeb4b2
Merge pull request #17242 from smoogipoo/performance-calculator-cleanup
...
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-15 13:31:34 +09:00
Dean Herbert
163cd48bf6
Further metrics tweaking
2022-03-14 19:27:53 +09:00
Dean Herbert
e91b3ae5f1
Move constants closer to usages
2022-03-14 19:18:47 +09:00
Dean Herbert
6eed2c35a4
Adjust visual appearance of BarHitErrorMeter
for easier reading
2022-03-14 19:16:38 +09:00
Dan Balasescu
028750936c
Apply review suggestions
2022-03-14 17:10:37 +09:00
Dan Balasescu
3fff7f4b7e
Require ScoreProcessor to receive ruleset
2022-03-14 15:51:10 +09:00
Dan Balasescu
926827207a
Reduce calculator allocations in counter
2022-03-14 14:44:06 +09:00
Dan Balasescu
4a3e3aba65
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-14 14:25:28 +09:00
Dean Herbert
c99397f75a
Add the ability to add settings to skinnable elements
2022-03-13 17:03:25 +09:00
Dan Balasescu
dfe98c6536
Merge pull request #17162 from peppy/realm-offset-feedback-fix-2
...
Fix feedback from realm writes causing offset slider to jump around
2022-03-10 18:53:08 +09:00
Dean Herbert
db5c2c15dc
Merge pull request #17164 from smoogipoo/scoreprocessor-rework
...
Rework ScoreProcessor score calculation methods to fix various issues
2022-03-10 16:48:58 +09:00
Dean Herbert
2eb3365f46
Fix regressing issues when attempting to exit Player
after an unsuccessful beatmap load
2022-03-09 17:57:58 +09:00
Dean Herbert
1ee0be5e39
Ensure gameplay can't start when an UnknownMod
is present
2022-03-09 17:57:58 +09:00
Dean Herbert
6bf436cd62
Only null the realm write task if it actually completed
2022-03-09 13:52:58 +09:00
Dan Balasescu
f1c40bd9ed
Rework GetScore() method signatures + implementations
...
Rename legacy-facing overload to mention as much
2022-03-08 22:30:44 +09:00
Dan Balasescu
2c382bd1d9
Rename GetImmediateScore() as overload of GetScore()
2022-03-08 21:49:40 +09:00
Dean Herbert
960b6528ca
Ensure the value used during realm async write is the same as whe compared for equality
2022-03-08 19:36:23 +09:00