1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 17:42:54 +08:00
Commit Graph

3146 Commits

Author SHA1 Message Date
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 TranslatableStrings 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
Dean Herbert
daa42584f4 Fix feedback from realm writes causing offset slider to jump around 2022-03-08 19:36:08 +09:00
Dean Herbert
31d6c75f40 Merge branch 'master' into realm-property-watching 2022-03-07 13:53:17 +09:00
Salman Ahmed
e5a6564034
Merge branch 'master' into fix-storyboard-sample-rate 2022-03-07 03:12:40 +03:00
Bartłomiej Dach
e4b4c3c5c4
Merge branch 'master' into offset-ui-improvements 2022-03-05 16:10:18 +01:00
Bartłomiej Dach
346cec3577
Merge branch 'add-offset-adjust-tooltip-text' into combine-time-slider-implementation 2022-03-05 14:58:56 +01:00
Dean Herbert
ce51ce49cf Revert changes to GetTooltipText and use TooltipText override directly 2022-03-05 22:46:13 +09:00
Dean Herbert
bbc2b36117 Merge branch 'master' into add-offset-adjust-tooltip-text 2022-03-05 22:37:04 +09:00
Dean Herbert
1c40fcb79e
Reorder math to be easier to pass
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-03-04 17:54:04 +09:00
Dean Herbert
e9e92b991e Fix calibrating offset from previous non-zero offset not applying adjustment correctly 2022-03-04 15:09:44 +09:00
Dean Herbert
010fa7ed01 Allow an offset to be shown on the timing distribution graph 2022-03-04 14:05:42 +09:00
Dean Herbert
e09dd7d8fe Fix calibrating offset from previous non-zero offset not applying adjustment correctly 2022-03-04 13:25:14 +09:00
Dean Herbert
cc4f89eef4 Add tooltip text for offset adjustment slider 2022-03-04 12:44:02 +09:00
Dean Herbert
7854a0a913 Use double instead of float for UIHoldActivationDelay configuration value
All times use double, so let's also use double here.
2022-03-04 12:22:56 +09:00
Dean Herbert
b0688cc6dd Merge branch 'master' into fix-storyboard-sample-rate 2022-03-04 12:04:49 +09:00
Dean Herbert
1d7d6a1b65
Merge pull request #17042 from peppy/ruleset-leaderboard-unavailable
Improve leaderboard messaging when using a custom ruleset (and add localisation support)
2022-03-04 11:56:04 +09:00
Bartłomiej Dach
e1610b5d32
Merge branch 'master' into ruleset-leaderboard-unavailable 2022-03-03 22:52:20 +01:00
Bartłomiej Dach
15f65c7897
Rename lambda param to avoid name shadowing 2022-03-03 20:28:19 +01:00
Bartłomiej Dach
2e24e7ef56
Use property expression rather than block 2022-03-03 20:28:00 +01:00
Bartłomiej Dach
edd361d256
Trim unused using directives 2022-03-03 20:21:48 +01:00
Dean Herbert
cecc746f9e Update existing usages to use SubscribeToPropertyChanged 2022-03-03 17:42:50 +09:00