1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 20:32:55 +08:00
Commit Graph

4185 Commits

Author SHA1 Message Date
Dean Herbert
4dd0c2c7a5 Add assert ensuring we don't ever get to the results screen with an F rank
Intentionally an assertion as I want tests to fail, but I don't want
this to cause crashes for an end user if it does happen to occur.
2023-03-29 14:11:58 +09:00
Dean Herbert
a8bb2e33ac Ensure all preconditions are checked before progressing to results screen after storyboard ends 2023-03-29 14:00:11 +09:00
Dean Herbert
c65a79614d Don't show offset calibration controls when "relax" mod is active
Closes https://github.com/ppy/osu/issues/22892.
2023-03-22 15:45:04 +09:00
Cootz
556964eae0
Merge branch 'master' into BitmapUpdatesOnScore 2023-03-16 12:16:42 +03:00
Dean Herbert
3b62f87b64 Ensure Player does not fail a score on exit if a replay is currently loaded 2023-03-16 17:14:20 +09:00
Terochi
edc6314634 Drank some coffee and figured out the fix 2023-03-15 10:49:59 +01:00
Dean Herbert
5f9b13a775 Rename Add/AddRange methods as they are no longer conflicting with Container 2023-03-15 18:02:41 +09:00
Dean Herbert
9e444af380 Use object initialisers and fix order of initialisation vs add 2023-03-15 18:02:26 +09:00
Terochi
b0f1a69523 Update the pauseLoop sample instantly on skin change 2023-03-15 09:05:34 +01:00
Terochi
1d5e596615 Update FailAnimation to use SkinnableSound 2023-03-14 20:44:30 +01:00
Dean Herbert
b46fc14e56
Merge pull request #22848 from Rovearix/Fix-Dragging-Preventing-Beatmap-Loading
Prevent LoadingLayer from blocking loading
2023-03-14 20:42:10 +09:00
Dean Herbert
4cea29402b Don't show epilepsy warning when storyboards are disabled
I have more thoughts on this warning in general (which will likely see
it removed or moved in the future) but this seems like a quick QOL fix
for now.

As mentioned in https://github.com/ppy/osu/discussions/22861.
2023-03-14 18:32:26 +09:00
Rovearix
9ac9287dbd Switched the implementation to set the blockInput flag for the BeatmapMetadataDisplay's LoadingLayer. This prevents the UIEvents from being being handled in this case without modifying the class 2023-03-13 08:07:55 -04:00
Derrick Timmermans
febdca4547
Fix argon progress bar fill being oversized 2023-03-12 02:08:00 +01:00
Dan Balasescu
e327993d11
Merge pull request #22527 from Terochi/replay-length-extension
Replay recording extension until results screen transition
2023-03-11 15:41:32 +09:00
tsrk
d806b85a30
revert: make counters an IEnumerable again
As suggested by bdach as this would make the last two commits useless

Refs: 5d15426
2023-03-09 10:25:03 +00:00
tsrk
5d15426c27
refactor: make Counters return a Container 2023-03-08 01:52:12 +00:00
tsrk
5b0db94a24
docs: add XMLDoc for methods in KCD 2023-03-08 00:58:54 +00:00
tsrk
44297a7d0a
refactor: make KCD a CompositeDrawable 2023-03-08 00:47:16 +00:00
Bartłomiej Dach
12af002c4d
Reorder and add xmldoc to KeyCounter members 2023-03-07 21:28:42 +01:00
Bartłomiej Dach
98f40b2679
Improve documentation of InputTrigger 2023-03-07 21:22:59 +01:00
Bartłomiej Dach
7ade525eef
Display corner radius setting as percentage 2023-03-07 19:43:52 +01:00
Dean Herbert
dc2945f4f8 Move avatar user loading to BDL also 2023-03-07 17:39:21 +09:00
Dean Herbert
5e90b67be0 Move GameplayState usage to BDL 2023-03-07 17:01:29 +09:00
Dean Herbert
d98199961b Adjust default sizing to fit a bit better with existing elements 2023-03-07 17:00:10 +09:00
Dean Herbert
6a7c4d0bf7 Remove NRT disables in new classes 2023-03-07 16:41:39 +09:00
Dean Herbert
97ba236eb1 Add basic xmldoc to KeyCounter classes 2023-03-07 16:41:39 +09:00
Dean Herbert
28520414aa Move KeyCounter components to HUD namespace 2023-03-07 16:41:39 +09:00
Dean Herbert
15d65059b5 Tidy up Add method logic 2023-03-07 16:21:57 +09:00
Dean Herbert
8f6df5ea0f
Merge branch 'master' into gameplay/key-counter-abstraction 2023-03-07 16:09:45 +09:00
tsrk
fc0e27fb15
style: use normalised CornerRadius values 2023-03-06 20:11:52 +00:00
tsrk
952814604e
style: fix late night oopsies 2023-03-06 20:06:56 +00:00
tsrk
3a240aaa5f
style: use 64 radius 2023-03-06 10:27:59 +00:00
tsrk
07bde4990d
feat: implement PlayerAvatar 2023-03-05 23:17:39 +00:00
tsrk
654eacd449
feat(l10n): localise CornerRadius 2023-03-05 23:10:42 +00:00
tsrk
082bfe3621
refactor: SkinnableAvatar to PlayerAvatar 2023-03-05 23:09:02 +00:00
tsrk
d5ba5eed88
fix(SkinnableAvatar): init avatar.CornerRadius 2023-03-03 23:47:22 +00:00
tsrk
d39b8c7c23
fix(SkinnableAvatar): update outdated interface 2023-03-03 19:35:45 +00:00
Ruki
e75aa9138b
Merge branch 'ppy:master' into hud/avatar-thing 2023-03-03 20:03:56 +01:00
tsrk
8c94b77de1
refactor(InputTrigger): move out of KCD
I love JetBrains Rider.
2023-02-22 15:05:07 +00:00
tsrk
1beec71037
refactor(KeyCounterDisplay): apply suggestions
I also took the freedom to add type checking, as we can't limit the
usage of `Add()` since it's a Container. The exception thrown also
advises of using the suggested `AddTrigger()` instead.
2023-02-22 14:58:27 +00:00
tsrk
42a5a06b9d
style(KeyCounter): fields and methods visiblity 2023-02-21 19:10:37 +00:00
tsrk
5bec2d7c52
style(KeyCounter): forwardPlayback 2023-02-21 19:02:56 +00:00
Bartłomiej Dach
6b9472c367
Merge branch 'master' into skin-per-ruleset-layouts 2023-02-17 22:58:38 +01:00
Bartłomiej Dach
6afa65bd3d
Merge branch 'master' into skinnable-clean-up-documentation 2023-02-17 20:59:18 +01:00
Dean Herbert
a01c3090e4 Fix tests which rely on HUDOverlay's DrawableRuleset being nullable 2023-02-17 19:27:09 +09:00
Dean Herbert
209d41ee9d Use RulesetInfo instead of Ruleset in skin components lookup 2023-02-17 18:24:05 +09:00
tsrk
8830e06588
fix: compilation 2023-02-17 09:17:11 +00:00
tsrk
c94e647e21
style(KeyCounterDisplay): remove type check 2023-02-17 09:09:56 +00:00
Dean Herbert
4cc6664dc7 Add optional ruleset identifier to SkinComponentsContainerLookup 2023-02-17 14:19:19 +09:00
tsrk
d0e8d65766
style(KeyCounter): rename IsLit to IsActive 2023-02-17 00:56:17 +00:00
tsrk
e3ca751027
refactor: make FillFlowContainer read-only 2023-02-16 23:17:47 +00:00
tsrk
c61fac578c
style(KeyCounter): rename methods and arguments
As for the second suggestion in
https://github.com/ppy/osu/pull/22654#discussion_r1109047998,
I went with the first one as only one Trigger actually uses this
argument for rewinding.
2023-02-16 23:15:03 +00:00
tsrk
ddd6c1a1c6
refactor(KeyCounter): address bindables issues
`IsCounting` is back being an auto-property.
`countPresses` is now encapsulated and being exposed as an
`IBindable<int>` via `CountPresses`
2023-02-16 22:20:34 +00:00
tsrk
6340730427
refactor(KeyCounter): remove circularity 2023-02-16 21:59:39 +00:00
Bartłomiej Dach
ad5132ed41
Remove redundant conditional access qualifier
It is impossible for the callback passed to `ApplyToBackground()` to
receive a null reference. See `OsuScreen.ApplyToBackground()` - if the
background to call the callback on were `null`, then an
`InvalidOperationException` would be thrown instead.
2023-02-16 20:47:51 +01:00
Dean Herbert
394d368f16 Fix song select potentially updating background parameters when not the current screen 2023-02-16 18:45:22 +09:00
tsrk
74e7cc2056
feat: implement new design of key counter 2023-02-15 22:18:02 +00:00
tsrk
e9dcc257b4
reafactor: simplify type checking 2023-02-15 22:06:35 +00:00
tsrk
b0a2e69f95
style: nullable pass on KeyCounterDisplay 2023-02-15 22:06:10 +00:00
tsrk
076eb81b21
refactor: rename trigger classes
Makes it better to understand their purpose
2023-02-15 21:46:13 +00:00
tsrk
a644fae364
style(KeyCounter): rename (Un)lit methods to (Un)light 2023-02-15 21:41:41 +00:00
tsrk
df0633858c
fix(KeyCounter): don't override Handle
This caused the Keyboard inputs to register twice, which is not what we
want.
2023-02-15 21:41:41 +00:00
tsrk
157bba7830
refactor: rename Trigger class to InputTrigger 2023-02-15 21:41:36 +00:00
Dean Herbert
a92e42bb84 Rename SkinnableTargetContainer to SkinComponentsContainer
Also use full `SkinComponentsContainerLookup` instead of the sub-type.
This will potentially be useful once we bring in per-ruleset targets.
2023-02-15 18:37:41 +09:00
Dean Herbert
d159d6b970 Rename ISkinnableDrawable to ISerialisableDrawable 2023-02-15 18:37:41 +09:00
Dean Herbert
6010dde86e Move SkinnableInfo to better namespace 2023-02-15 18:23:10 +09:00
Dean Herbert
7aaaf7fca2 Combine and attempt to simplify the score import / preparation process further 2023-02-14 16:55:35 +09:00
Dean Herbert
8a206234f7 Merge branch 'master' into replay-length-extension 2023-02-14 16:42:26 +09:00
Bartłomiej Dach
939144fb6c
Merge pull request #22628 from EVAST9919/letterbox-no-containers
Remove unnecessary containers in `LetterboxOverlay`
2023-02-13 23:54:48 +01:00
Andrei Zavatski
2dee783401 Remove not needed containers 2023-02-13 15:14:25 +03:00
tsrk
aa2e0028ab
refactor: hide trigger presence from content 2023-02-13 10:59:10 +00:00
tsrk
11d0e185b8
refactor: separate impl of KeyCounterDisplay
This allows for different layouts of display. Idk, maybe someone would
want to mix both variants? (don't do this please). This commit is mostly
prep for further changes.
2023-02-13 01:36:12 +00:00
tsrk
74a58fb674
refactor: separate things in KeyCounter
To implement different different sources of input for KeyCounter, it
is now possible to create a Trigger class (to inherit) instead of
inheriting KeyCounter. This eases the creation of more input sources
(like for tests) while allowing to implement different UI variants.

That way, if another variant of the key counter needs to implemented
(for whathever reason), this can be done by only inheriting KeyCounter
and changing how things are arranged visually.
2023-02-13 01:24:27 +00:00
Joseph Madamba
afb66d8af4 Make user activity class names more specific 2023-02-12 12:32:17 -08:00
Dean Herbert
0c5dae5f26
Merge pull request #22529 from ItsShamed/dsc/presence
Add support for `Watching` and `Spectating` activities in `ReplayPlayer` and `SoloSpectatingPlayer`
2023-02-11 17:29:47 +09:00
Terochi
81c3e0da31 Fixed timeLeft counter in SongProgressInfo being out of bounds after rotation 2023-02-10 17:58:48 +01:00
Dean Herbert
3a3c2e78a1 Merge branch 'master' into skin-editor-undo-support 2023-02-08 15:41:58 +09:00
Dean Herbert
b6809e156b
Merge pull request #22432 from mk56-spn/sheared_slider_implementation_clean_ii
Implement a sheared slider for the updated design
2023-02-08 15:01:00 +09:00
PC
7e127dafe2 Update reference 2023-02-07 11:52:47 +03:00
tsrk
bc89f8dc5b
feat: add name and rulset verb display support 2023-02-06 12:44:00 +00:00
Cootz
2c7386db39 FIx score appearing on BeatmapLeaderboard and TopLocalRank 2023-02-06 15:14:14 +03:00
Dean Herbert
aaf3ad805c Fix potential nullref in tests 2023-02-06 19:31:45 +09:00
Dean Herbert
b83c8443ea Ensure pause sample loop is stopped on exiting player 2023-02-06 18:24:31 +09:00
Terochi
43f7665c9e Improved readability again 2023-02-06 09:49:42 +01:00
Dean Herbert
c691a0d3af
Merge branch 'master' into sheared_slider_implementation_clean_ii 2023-02-06 17:49:33 +09:00
Terochi
4f23e096d7 Improved readability 2023-02-06 07:59:37 +01:00
Dean Herbert
778b8a9bf7 Fix default settings not being serialised / state tracked correctly 2023-02-06 15:00:42 +09:00
tsrk
bf273597ea
feat: actually support status also for Replays 2023-02-06 00:41:10 +00:00
tsrk
d5b2d9ce97
feat: add support for spectating status 2023-02-05 23:58:08 +00:00
Terochi
f58534f60c Extended the length of replay at the end of map 2023-02-05 18:51:28 +01:00
mk56-spn
88872cf1cf Use ``GetTrueGameplayRate()`` to remove need for jank 2023-02-04 00:53:54 +01:00
mk56-spn
d9bee958dd Stop ``BPMCounter.cs``'s value from going to 0 after failing. 2023-02-03 23:56:34 +01:00
Dean Herbert
cf8cfe0d2c Move skin component localisations to namespaces 2023-02-03 15:34:57 +09:00
Dean Herbert
50559643bb Fix incorrectly applied enum localisation 2023-02-03 15:27:11 +09:00
Dean Herbert
32207dc9dd Merge branch 'master' into locale/skin-editor-components 2023-02-03 15:24:00 +09:00
mk56-spn
3f0ce75bf5 Rename NormalSliderBar.cs to RoundedSliderBar.cs 2023-02-02 17:24:45 +01:00
Dean Herbert
edecd2ee25 Merge branch 'master' into middle-click-replay-pause 2023-02-02 15:25:51 +09:00
tsrk
0fb6a63709
refactor: change namespacing to allow osu-localisation-analyzer to process all strings 2023-02-02 00:46:14 +00:00
tsrk
8645e705fd
feat: add localisation for Skin editor components 2023-02-01 23:48:05 +00:00
Ruki
96bd79a6f5
Merge branch 'ppy:master' into hud/avatar-thing 2023-01-30 15:43:29 +01:00
mk56-spn
091cc155d3 Fix nub naming in OsuCheckbox.cs and associated classes 2023-01-26 16:10:02 +01:00
mk56-spn
a630f1113f Rename nub object in NormalSliderBar.cs class 2023-01-26 15:03:51 +01:00
mk56-spn
374c3b56f6 Rename Nub.cs to NormalNub.cs 2023-01-26 15:03:11 +01:00
mk56-spn
3988131475 Rename OsuSliderBar.cs as NormalSliderBar.cs 2023-01-26 12:12:56 +01:00
Dean Herbert
e5d4979bc3 Fix default health bar having a very weird anchor point in the skin editor 2023-01-26 16:56:37 +09:00
Bartłomiej Dach
06aa3f7798
Rename Stop{SampleAndRemoveFilters -> }()
Now that just one method for stopping samples is left, let's just
repurpose st as the general "stop global effects" method rather than
have it there with a hyperspecific name. It also has good symmetry, as
there already was a `Start()` method in the class.
2023-01-22 09:29:22 +01:00
Bartłomiej Dach
9e4e85e3e3
Inline StopSample() into StopSampleAndRemoveFilters()
The first method no longer has any callers except for the second one.
2023-01-22 09:26:01 +01:00
Bartłomiej Dach
0edfd24410
Remove unnecessary sample stop in Restart()
It is unnecessary, as a successful restart will exit the current player
screen, and `OnExiting()` has another `StopSampleAndRemoveFilters()`
call, which means that in the restart flow the sample was actually
getting stopped twice.

Standard exit flow is fine, it only stopped the sample once.
2023-01-22 09:24:12 +01:00
Matheus Filipe dos Santos Reinert
5b1a23c697 Replace RemoveFilters call with StopSampleAndRemoveFilters 2023-01-22 01:44:16 -03:00
Matheus Filipe dos Santos Reinert
2e1ba6ef49 Create StopSampleAndRemoveFilters method and change RemoveFilters to private 2023-01-22 01:43:40 -03:00
Matheus Filipe dos Santos Reinert
a746cbc6ed Fix failSample still playing after player left FailOverlay 2023-01-22 01:14:33 -03:00
Dean Herbert
2ce32e3209 Refactor update logic to be easier to follow 2023-01-19 19:27:05 +09:00
mk56-spn
b22363ed8c Fix JudgementCounterDisplay.cs max judgement always showing upon changing display mode 2023-01-19 10:31:02 +01:00
Dean Herbert
e58abf7d1a
Merge pull request #22284 from bdach/judgement-counter-broken
Fix "show max judgement" setting not applying initially on judgement counter display
2023-01-19 09:09:06 +09:00
Bartłomiej Dach
b62ff8d644
Merge branch 'master' into skin/argon-song-progress-cleaner 2023-01-18 23:52:12 +01:00
Bartłomiej Dach
b8b7442eb8
Make SongProgressInfo.ShowProgress init-only (and remove duplicate init) 2023-01-18 23:35:40 +01:00
Bartłomiej Dach
769f8c6190
Fix ShowMaxJudgement callback conflicting with JudgementCounter.Pop{In,Out}
Both `JudgementCounterDisplay` (via the `ShowMaxJudgement` callback)
and the `JudgementCounter.Pop{In,Out}` methods were operating on the
alpha of the `JudgementCounter`. This meant that if the counter display
was created with max judgement initially hidden, it would be hidden
by the `ShowMaxJudgement` callback first, but then _unhidden_
by `PopIn()`.
2023-01-18 21:46:28 +01:00
Salman Ahmed
12fc5da143
Merge branch 'master' into frame-stable-cache 2023-01-18 14:16:46 +03:00
Dean Herbert
43a037c189
Merge pull request #21620 from mk56-spn/JudgementCounter
Add a judgement counter to skin components
2023-01-18 18:43:49 +09:00
Dean Herbert
4cfb059170 Merge branch 'frame-stable-cache' into skin/argon-song-progress-cleaner 2023-01-18 17:21:08 +09:00
Dean Herbert
04705504c5 Move cache to more appropriate location 2023-01-18 17:19:57 +09:00
Dean Herbert
67b40dd234 Adjust the seek effect to feel better 2023-01-18 17:09:39 +09:00
Dean Herbert
01558a9199 Tidy up height logic and allow hovering above bar for easier interaction 2023-01-18 17:09:29 +09:00
Dean Herbert
f3677ab33d Simplify depth change logic 2023-01-18 16:38:21 +09:00
Dean Herbert
7d0388c55c Cache IFrameStableClock in Player for easier access
Allows directly referencing rather than going through `DrawableRuleset`.
Helps with testing and implementation of the new song progress display
(#22144).
2023-01-18 16:31:58 +09:00
Dean Herbert
42e9b2b48c Tidy up clock logic in all SongProgress classes 2023-01-18 16:29:42 +09:00
Dean Herbert
8bfd853889 Fix missing comment 2023-01-18 16:11:14 +09:00
Dean Herbert
bfb75730a9 Prefix subclasses of DefaultSongProgress with Default 2023-01-18 15:45:16 +09:00
Dean Herbert
7266d8e10d Move "show difficulty graph" settings back to respective implementations to avoid legacy version showing it 2023-01-18 15:31:55 +09:00
Dean Herbert
5a272b4bd6
Merge branch 'master' into skin/argon-song-progress-cleaner 2023-01-18 15:25:02 +09:00
Dean Herbert
742a026077 Add comment mentioning why reference clock fallback logic is required 2023-01-18 15:24:35 +09:00
Dean Herbert
e8770b84cd Remove no longer necessary interface type 2023-01-18 15:23:55 +09:00
Dean Herbert
5429979049 Combine common code into SongProgress base class 2023-01-18 15:23:55 +09:00
Dean Herbert
afc12e0b83 Tidy up ISongProgressBar interface 2023-01-18 14:43:20 +09:00
tsrk
f1989ba24d
quality: remove unused Darken bindable boolean 2023-01-17 17:26:05 +00:00
tsrk
d91aa341e5
refactor(ArgonSongProgress): reorder layering and make density graph visible for past time 2023-01-17 13:16:56 +00:00
Dean Herbert
14649160e1 Adjust transform delay to make things feel more snappy 2023-01-17 18:39:21 +09:00
Dean Herbert
81aa7feeb5 Fix using FadeTo on a visibility container 2023-01-17 18:39:21 +09:00
Dean Herbert
48959c0212 Start name not visible to avoid pop out when hidden on startup 2023-01-17 18:35:19 +09:00
Dean Herbert
7d1fd24ab4 Start all counters hidden to fix pop out animation when some portions are hidden 2023-01-17 18:31:25 +09:00
Dean Herbert
448abf897a Tidy up direction assignment 2023-01-17 18:31:08 +09:00
Dean Herbert
ca17993769 Don't use OverlayContainer (what) 2023-01-17 18:30:50 +09:00
Dean Herbert
181473c5fc Rename flow to better match its purpose 2023-01-17 18:28:08 +09:00
Dean Herbert
35ad66eef9 Give flow container a type to avoid locally casting in every location 2023-01-17 18:27:33 +09:00
Dean Herbert
09c7ab3af6 Rename exposed settings to make more sense 2023-01-17 18:27:15 +09:00
Dean Herbert
f923dc5009 Use framework Direction instead of local enum
It should be stable enough to use.
2023-01-17 18:27:15 +09:00
Dean Herbert
0a7d6948ca Nest model class 2023-01-17 18:19:04 +09:00
Dean Herbert
b62b5714e8 Fix TierColours assignment 2023-01-17 18:07:11 +09:00
Dean Herbert
65bd2e74fd Merge branch 'master' into skin/argon-song-progress-cleaner 2023-01-17 18:00:42 +09:00
MK56
a55ce9b586
Merge branch 'master' into JudgementCounter 2023-01-17 09:55:45 +01:00
Dean Herbert
53e7873f6c
Merge branch 'master' into fix-pause-gameplay-action-not-closing 2023-01-17 17:41:16 +09:00
Joseph Madamba
da0eb9b0cb Simplify TriggerClicks in gameplay menu overlays 2023-01-17 00:34:52 -08:00
Joseph Madamba
8f7cb18217 Use TriggerClick() instead of calling BackButton action for pause gameplay 2023-01-16 23:36:28 -08:00
Dean Herbert
a02556d2fa Move hover logic to SettingsToolboxGroup to avoid expanded state clash 2023-01-17 14:43:22 +09:00
Dean Herbert
6a0bf89401 Merge branch 'master' into replay-menu-expanded-state-memory 2023-01-17 14:30:23 +09:00
integer
a68d4fe5d1 make expansion to not use scheduler 2023-01-14 21:18:51 +00:00
integer
2831db53f7 fix wrong control flow on hover lost 2023-01-14 14:19:02 +00:00
ansel
77e8315ee2 Adjust naming 2023-01-14 02:30:10 +03:00
integer
c3c1d77e8e make PlayerSettingsGroup expand on hover 2023-01-13 23:07:59 +00:00
integer
0b5c89d01f revert additions to SessionStatics 2023-01-13 23:07:21 +00:00
ansel
515ada6815 Remove CanBeNull where it's no longer requered 2023-01-13 23:11:50 +03:00
ansel
a41a031909 Localise some notifications 2023-01-13 23:11:25 +03:00
Ruki
4439698867
Update osu.Game/Screens/Play/HUD/ArgonSongProgress.cs 2023-01-12 13:19:03 +01:00
Dean Herbert
d2309feec2
Merge branch 'master' into skin/argon-song-progress-cleaner 2023-01-12 19:49:27 +09:00
MK56
1597bcbb6f
Merge branch 'master' into JudgementCounter 2023-01-11 11:04:37 +01:00
Dean Herbert
df54410075 Fix skin fail sound not correctly playing
Closes #21719. Tested using skin in issue thread.
2023-01-11 17:31:30 +09:00
Dean Herbert
3210586eb6
Merge pull request #21519 from mk56-spn/variable_BPM_counter
Add dynamic BPM counter to SkinEditor
2023-01-10 18:43:50 +09:00
Dean Herbert
37d219a8ad Fix comments, remove fixed width on "bpm" text and adjust baseline adjust slightly 2023-01-10 18:20:39 +09:00
Dean Herbert
85f542c3a8 Make GameplayClock private 2023-01-10 18:15:10 +09:00
Dean Herbert
3c93d0551c Move setting up to be in line with other toggle 2023-01-10 18:07:15 +09:00
Dean Herbert
63ce5787e7 Start bars invisible 2023-01-10 18:06:45 +09:00
tsrk
91cde5ffbf
feat(hud/gameplay): implement Argon variant of SongProgress 2023-01-09 21:59:48 +01:00
tsrk
5952cd08a2
feat(hud/gameplay): implement Argon song progress density graph (SegmentedGraph) 2023-01-09 21:58:53 +01:00
tsrk
28d2d766eb
refactor(hud/gameplay/SongProgressInfo): minor changes to text positioning, font and colour 2023-01-09 21:57:32 +01:00
tsrk
f6265197e8
feat(hud/gameplay): Add Argon variant of SongProgressBar 2023-01-09 21:56:29 +01:00
tsrk
0f1fe1d683
refactor(hud/gameplay/SongProgress): Add interface to designate SongProgressBars 2023-01-09 21:48:53 +01:00
mk56-spn
602062f011 Address unclear naming issue 2023-01-09 21:04:51 +01:00
mk56-spn
d6f60db234 Add the ability to toggle the visibility of the main bar in BarHitErrorMeter.cs 2023-01-09 18:51:51 +01:00
Dean Herbert
9d97c1a0bd
Merge branch 'master' into variable_BPM_counter 2023-01-09 19:26:34 +09:00
Joseph Madamba
c2dd822e4a Make pause overlay close with pause gameplay action 2023-01-08 14:12:09 -08:00
Joseph Madamba
45bae5d424 Add middle mouse to toggle pause replay instead of using pause gameplay keybinds 2023-01-07 11:30:02 -08:00
Salman Ahmed
408356d05e Fix gameplay leaderboard showing "-" on non-tracked scores 2023-01-06 12:06:47 +03:00
Joseph Madamba
d79ee29f29 Make replays pause with middle mouse button instead of exiting 2023-01-01 21:01:12 -08:00
Bartłomiej Dach
6509d3538c
Fix counter initially rolling down from 100% to 0% in minimum achievable mode 2022-12-30 21:13:41 +01:00
Bartłomiej Dach
7580ab78be
Move binding to LoadComplete() 2022-12-30 21:08:48 +01:00
Bartłomiej Dach
6d42cc5a36
Naming pass 2022-12-30 20:30:58 +01:00
cdwcgt
d60349c7c6
add description 2022-12-30 23:24:41 +09:00
cdwcgt
8beb168be9
remove nullable disabled 2022-12-30 23:24:20 +09:00
cdwcgt
784fe7ecf2
rename AccType to AccuracyDisplay 2022-12-30 23:06:10 +09:00
cdwcgt
3c32a50c12
add new accuracy counter display 2022-12-30 21:19:46 +09:00
integer
a0690e7ffb replay menus remembers expanded state
no messing with readonly fields
2022-12-27 00:13:46 +00:00
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
mk56-spn
f3873b73e3 Clean up syntax for readability 2022-12-16 20:56:34 +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
mk56-spn
0c177aa7de Improve tests, simplify "updateDisplay" method 2022-12-15 16:12:34 +01:00
mk56-spn
9a235b3213 remove rolling duration, fix issue with loading 2022-12-15 15:21:03 +01:00
mk56-spn
edb46e422c Fix "using" name in HUD overlay 2022-12-12 15:15:30 +01:00
mk56-spn
99d83315c1 change settings order 2022-12-12 15:10:45 +01:00
mk56-spn
8efe7528e3 change ruleset source to avoid issues with converted beatmaps 2022-12-12 15:10:10 +01:00
mk56-spn
4d592184ca temp cmt 2022-12-12 11:53:07 +01:00
mk56-spn
58bf081096 Fix judgement counter not loading after first attempt in gameplay, Fix typo in Display 2022-12-12 10:52:55 +01:00
Dan Balasescu
caa0b7c290 Move score token to BeginPlaying 2022-12-12 13:59:27 +09:00
mk56-spn
f0c780f1f6 Fix tally header 2022-12-12 00:48:35 +01:00
mk56-spn
a107fca5d0 Hide "Full" option from counter flow directions 2022-12-12 00:33:28 +01:00
mk56-spn
161894da3b Add more test checks and fix deserialisation test 2022-12-11 23:58:10 +01:00
mk56-spn
4c17b27273 Add Display, Counter, Tests 2022-12-11 23:47:17 +01:00
mk56-spn
f798951f09 Create Judgement Info struct 2022-12-11 22:09:14 +01:00
mk56-spn
ffbe68bd26 Add judgementTally to HUD overlay 2022-12-11 22:08:48 +01: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
Dean Herbert
26d98323ff Fix bindable flow, code quality, everything 2022-09-22 15:45:23 +09:00
Dean Herbert
0f663deda0 Fix changing shape causing alpha to be permanently reset to zero 2022-09-22 15:24:57 +09:00
Dean Herbert
ae70b2c32f Fix other weirdness in variable and description naming 2022-09-22 15:21:27 +09:00
Dean Herbert
19db7c5977 Remove "Opacity" setting
This should be implemented at a higher level
2022-09-22 15:19:01 +09:00
Dean Herbert
f3898da37a Rename judgement count to not mention "shape" 2022-09-22 15:18:20 +09:00
Dean Herbert
7d93fa9f65
Merge branch 'master' into Colour_hit_meter_improved 2022-09-22 15:11:58 +09:00
Dean Herbert
29c4d06d36 Merge branch 'fix-gameplay-leaderboard-layout' into gameplay-leaderboards 2022-09-21 14:58:58 +09:00
Dean Herbert
b04871f40a Animate scroll for a better visual experience 2022-09-21 14:51:12 +09:00
Dean Herbert
087ca59ebb Add extra margin space to flow equal to height of leaderboard
This ensures the content is always on screen, but also accounts for the
fact that scroll operations without animation were actually forcing the
local score to a location it can't usually reside at.

Basically, the local score was in the scroll extension region (due to always trying
to scroll the local player to the middle of the display, but there being
no other content below the local player to scroll up by).
2022-09-21 14:51:12 +09:00
Dean Herbert
4385001d28 Fix solo leaderboard seeing imported score via realm subscription flow 2022-09-21 13:59:11 +09:00
Dean Herbert
a8338c4efd Add local score after existing scores to avoid initial re-sort 2022-09-21 13:38:40 +09:00
Dan Balasescu
7f15dc6e6c
Merge pull request #20321 from HiddenNode/fix_graph_info_overlap
Fix Progress bar info text overlapping with progress graph
2022-09-20 19:30:51 +09:00
Dean Herbert
b5771ece41 Reduce the amount by which clicking the mute notification incraeses volume 2022-09-20 13:00:08 +09:00
Dean Herbert
a9c120c214 Reduce volume requirement for showing muted notification to 1% 2022-09-20 12:46:35 +09:00
Dean Herbert
1c02fa8399 Update comment to not mention horizontal plane 2022-09-20 00:08:06 +09:00
Dean Herbert
46db3ad96d Move implementation to individual classes 2022-09-20 00:06:02 +09:00
Ryuki
ecf71df8a2
Change CornerRadius Max Value 2022-09-18 00:04:56 +02:00
Ryuki
c1077d909c
Basic avatar HUD implementation 2022-09-17 21:09:34 +02:00
HiddenNode
2dfa89c62e Clean up 2022-09-17 15:05:25 +01:00
HiddenNode
d580b07063 Refactor update condition logic 2022-09-17 14:40:36 +01:00
HiddenNode
e3d5ba5301 Check if graph DrawSize changed 2022-09-17 11:44:25 +01:00
HiddenNode
0d76f4501d Revert "Set InvalidationSource to Self"
This reverts commit 2092008251.
2022-09-17 10:10:20 +01:00
Dean Herbert
4c4fdfd153 Provide scores directly to Player instance rather than relying on DI 2022-09-16 18:15:17 +09:00
Dean Herbert
0227eddda1 Merge branch 'master' into gameplay-leaderboards 2022-09-16 15:44:58 +09:00
HiddenNode
2092008251 Set InvalidationSource to Self 2022-09-15 11:16:00 +01:00
HiddenNode
8286ab0d04 Revert "Fix SongProgress invalidating too often"
This reverts commit 2b4b14ca99.
2022-09-15 11:11:58 +01:00
Dean Herbert
eb18d3661d
Merge pull request #20309 from mk56-spn/dead_class_removal
Unused class KeyCounterState.cs Removal
2022-09-15 03:38:39 +09:00
Mk-56spn
d6db82283a Removes unused class 2022-09-14 18:01:29 +02:00
Dean Herbert
fcf54f1bc8 Fix gameplay leaderboard not being sorted correctly in tie situations 2022-09-14 14:18:12 +09:00
Dean Herbert
8a6977213a Fix displayed scores in gameplay leaderboard not tracking display mode changes 2022-09-14 14:02:35 +09:00
Dean Herbert
81b5e4a865 Fix back-to-front condition on leaderboard always show configuration 2022-09-13 19:57:40 +09:00
Dean Herbert
e15a25ea49 Fix leaderboard positioning logic to actually consider elements on the left side 2022-09-13 18:45:11 +09:00
Dean Herbert
678eec1c67 Move LeaderboardFlow to HUDOverlay to share positioning logic 2022-09-13 18:45:11 +09:00
Dean Herbert
5894d2f0bc Ensure gameplay leaderboard hides with rest of HUD when it should 2022-09-13 18:45:11 +09:00
Dean Herbert
6d167070f8 Add back DI leaderboard retrieval via bindable pathway 2022-09-13 18:45:11 +09:00
Dean Herbert
70e6b595f1 Refactor SoloGameplayLeaderboard to not read scores via DI
Also allows updating scores if they arrive late.
2022-09-13 18:00:21 +09:00
Dean Herbert
d2b80645ab Change Leaderboard to use IUser instead of APIUser 2022-09-13 18:00:21 +09:00
Dean Herbert
d251c0b2ac Move leaderboard implementation to Player itself 2022-09-13 18:00:21 +09:00
Dean Herbert
368faa0084 Make constructor protected in base implementation 2022-09-13 18:00:21 +09:00
Dean Herbert
4c669e2bce Track local Player.Score's user rather than using APIProvider 2022-09-13 18:00:21 +09:00
Salman Ahmed
3490b16056 Add simplified SoloGameplayLeaderboard implementation
Note that this doesn't support waiting until leaderboard finishes fetching scores.
2022-09-13 18:00:21 +09:00
Dean Herbert
2b4b14ca99 Fix SongProgress invalidating too often
This regressed with https://github.com/ppy/osu/pull/19556. Rather than
try and figure whether that new container needs to handle size
differently, this is a simple solution.

Height was taken from a runtime check (maxes out at about 14.5).

Closes #20235.
2022-09-12 20:06:53 +09:00
Mk-56spn
c00bf61273 Framework change adressed 2022-09-10 21:24:29 +02:00
MK56
8661dc3c93
Merge branch 'ppy:master' into Colour_hit_meter_improved 2022-09-10 21:16:23 +02:00
Mk-56spn
f6aef73f9e fixed shape bindable not working, test creation, removal of Clear(), adjusted settings names 2022-09-10 20:30:43 +02:00
andy840119
3d7367a842 Move the CreateConvertibleReplayFrame() into the base ruleset class for avoid api breaking change in the customized ruleset. 2022-09-10 11:07:23 +08:00
andy840119
e62999fb16 Merge branch 'master' of https://github.com/ppy/osu into remove-the-nullable-disable-in-the-ruleset
# Conflicts:
#	osu.Game.Rulesets.Catch/CatchRuleset.cs
#	osu.Game.Rulesets.Osu/OsuRuleset.cs
#	osu.Game.Rulesets.Taiko/TaikoRuleset.cs
#	osu.Game/Rulesets/Ruleset.cs
2022-09-10 10:40:12 +08:00
Dean Herbert
27f745b980
Merge branch 'master' into fix_progress_bar_info 2022-09-09 17:34:13 +09:00
Dean Herbert
05797cb9e5 Fix enum to STRING????????? conversion (and use bindable flow) 2022-09-09 16:30:08 +09:00
Dean Herbert
45239fc737 Update TrueGameplayRate accessing 2022-09-08 23:03:15 +09:00
Dean Herbert
d4afc3629c
Merge branch 'master' into kps 2022-09-08 23:00:36 +09:00
Dan Balasescu
9aab502adc
Merge pull request #20157 from peppy/true-gameplay-rate
Refactor `TrueGameplayRate` to account for only gameplay adjustments, no matter what
2022-09-08 19:54:32 +09:00
Dan Balasescu
4fc03998a1
Merge pull request #20189 from peppy/fix-playlist-item-download-button-visibility
Fix playlist items showing download button briefly during initial display
2022-09-08 19:47:35 +09:00
Dean Herbert
a98c6b2c1f Add comment metioning why we need to use DrawableRuleset lookup 2022-09-08 19:14:23 +09:00
Mk-56spn
07c16224d2 Fix Main file issues 2022-09-08 11:58:14 +02:00
Dean Herbert
5c2fb3e434 Simplify calculation method 2022-09-08 18:22:53 +09:00
Dan Balasescu
b559d4ecdf Rename GameplayAdjustments -> AdjustmentsFromMods 2022-09-08 17:14:06 +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
Salman Ahmed
50923b6e5b Move track assignment below 2022-09-08 00:25:55 +03:00
Acid Chicken (硫酸鶏)
267465df18
chore(osu.Game): combine Osu.Colour.{Draw,Text}ForHitResult into OsuColour.ForHitResult 2022-09-07 23:34:46 +09:00
Dean Herbert
e6b449fe0b Fix case of zero rate calculating a zero true gameplay rate 2022-09-07 19:23:44 +09:00
Dean Herbert
fa15502384 Move full track adjustment flow inside MasterGameplayClockContainer 2022-09-07 19:12:16 +09:00
Dean Herbert
75d0deef72 Apply proposed changes to remove inheritance from MasterGameplayClockContainer 2022-09-07 17:49:05 +09:00
Dean Herbert
66c44f5913 Delegate interface to valid target 2022-09-06 22:26:46 +09:00
Dean Herbert
bc1212f4e6 Change NonGameplayAdjustments to GameplayAdjustments and convert TrueGameplayRate to extension method 2022-09-06 22:26:46 +09:00
Dean Herbert
266eb758aa Use new flow to calcaulate TrueGameplayRate 2022-09-05 23:37:49 +09:00
Dean Herbert
7084aeee05 Add method flow to reset applied adjustments 2022-09-05 23:22:38 +09:00
Dean Herbert
e33486a766 Implement IAdjustableAudioComponent in MasterGameplayClockContainer 2022-09-05 23:20:02 +09:00
Mk-56spn
aace334fb3 Fix some test issues 2022-09-05 04:49:48 +02:00
Acid Chicken (硫酸鶏)
5f0832ead7
refactor(osu.Game): separate OsuColour.ForHitResult by usage 2022-09-05 01:58:57 +09:00
Mk-56spn
0c6d8efa28 Large code refactor, Implementation of shapes option drop down 2022-09-04 17:24:12 +02:00
Mk-56spn
51061c3a12 Bug fixing and parameter adjustments 2022-09-03 01:27:22 +02:00
Mk-56spn
534c40e18e Initial version 2022-09-02 23:07:30 +02:00
Dean Herbert
bc5340e33a
Merge branch 'master' into fix_progress_bar_info 2022-09-02 18:00:35 +09:00
Dean Herbert
6a35b233e5 Merge branch 'master' into remove-dispose-updates 2022-09-01 23:03:19 +09:00
HiddenNode
4a630b5384 Implemented SizePreservingSpriteText 2022-08-31 22:05:06 +01:00
Dan Balasescu
c852c54055 Consume auto skip setting during play 2022-08-31 20:24:15 +09:00
Dan Balasescu
000412c50f
Merge pull request #20014 from peppy/fix-resume-skip-forward
Fix gameplay skipping forward during resume operation
2022-08-31 16:30:37 +09:00
Dan Balasescu
ccc08b816c
Merge pull request #20030 from peppy/notification-design-update
Update notification overlay design
2022-08-31 16:06:59 +09:00
Dean Herbert
7337d4c1aa Merge branch 'master' into kps 2022-08-31 15:41:42 +09:00
Dean Herbert
51346e0154 Fix skip button getting stuck on screen for certain beatmaps
Closes #20034.
2022-08-31 13:22:51 +09:00
Dean Herbert
09aa3e065d Move colouring to full icon content rather than background 2022-08-30 18:06:48 +09:00
Dean Herbert
27ad224f13 Remove probably unnecessary Seek on start 2022-08-30 01:21:44 +09:00
Dean Herbert
1bff540381 Remove debug changes 2022-08-29 22:14:07 +09:00
Dean Herbert
75531d2d62 Fix gameplay skipping forward during resume operation 2022-08-29 19:51:16 +09:00
Dean Herbert
105aa01e7d Update usages of RemoveInternal 2022-08-29 15:57:40 +09:00
Dan Balasescu
cf6bb3b030
Merge pull request #19958 from peppy/fix-fail-freq-stuck
Ensure fail animation sequence isn't run after the player exit sequence has started
2022-08-27 00:58:41 +09:00
Dean Herbert
b9d9bf3004
Merge pull request #19938 from frenzibyte/fix-multi-spectator-results-screen
Fix multi-spectator potentially getting stuck for passed players
2022-08-26 21:53:17 +09:00
Dean Herbert
ed0843aa84 Reword xmldoc regarding final clock source to read better 2022-08-26 16:46:22 +09:00
Dean Herbert
2c780eab5f Merge branch 'master' into fix_progress_bar_info 2022-08-26 16:14:21 +09:00
Dean Herbert
23efec6505 Fix naming and comment typos 2022-08-26 15:57:36 +09:00
Dean Herbert
9862b79b47 Fix typo in long comment 2022-08-26 15:20:09 +09:00
HiddenNode
d98357aa57 Made text inside SongProgressInfo scale. 2022-08-26 01:30:44 +01:00
Dean Herbert
a6ed589db4 Remove guard against RemoveFilters running more than once
It turns out this is required to remove some filters immediate, and some
later. Weird.
2022-08-25 14:47:33 +09:00
Dean Herbert
ad3dd1c700 Fix a couple of oversights regarding track nullability 2022-08-25 14:45:00 +09:00
Dean Herbert
ec60e16439 Apply NRT to FailAnimation 2022-08-25 14:35:42 +09:00
Dean Herbert
8f4a953d11 Ensure fail animation sequence isn't run after the player exit sequence has started 2022-08-25 14:26:42 +09:00
Dean Herbert
4c45f7d938 Ensure FailAnimation can't be Started after filters are already removed 2022-08-25 14:26:20 +09:00
Ryuki
5cddc7ed1f
Code cleanup (CPS) 2022-08-24 17:13:23 +02:00
Dean Herbert
f3847b90fd Tidy up attach logic 2022-08-24 19:36:01 +09:00
Dean Herbert
5129716612 Merge branch 'master' into kps 2022-08-24 18:18:45 +09:00
Salman Ahmed
8f4a2b4936 Separate passed/failed states from calling EndGameplay 2022-08-24 10:36:13 +03:00
Dean Herbert
29fed0c4a3 Avoid setting the source clock until gameplay is ready to start
Without this change, the audio track may audibly seek during load
proceedings.
2022-08-23 18:34:17 +09:00
Dean Herbert
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
HiddenNode
1098e24c40 Improved UprightUnscaledContainer 2022-08-22 14:24:52 +01:00
Dean Herbert
489e172a76 Simplify track start/stop/paused tracking 2022-08-22 19:43:18 +09:00
Dean Herbert
058d67f8e8
Merge pull request #19695 from naoei/ruleset-localization
Change most ruleset-accessible string types to Localisable strings
2022-08-22 16:13:23 +09:00
Dean Herbert
e6b669db8e Elaborate with example of GameplayClockContainer managing its own Stop state 2022-08-22 14:14:44 +09:00
Dean Herbert
af2e82d7d5 Move operation of setting GameplayClockContainer.StartTime to Reset call 2022-08-22 14:11:06 +09:00
Ryuki
5cf54a788a
Code cleanup for CPS counter 2022-08-21 16:00:58 +02:00
Nao
189a407cb1
Merge branch 'master' into ruleset-localization 2022-08-20 21:39:10 -04:00
Dean Herbert
8566e93c72 Guard against SubmittingPlayer potentially getting stuck waiting on request forever 2022-08-20 17:19:17 +09:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
7bf318541c Reword comment to hopefully read better 2022-08-19 20:57:55 +09:00
Dean Herbert
3f0da14065 Delay start operation by one frame to allow children to see initial start time 2022-08-19 17:39:51 +09:00
Dean Herbert
3eb1cda6aa Reorganise call order of Start / Reset to make more sense 2022-08-19 01:46:36 +09:00
Ryuki
3de35a1518
Update calculator and tests to match changes on clocks 2022-08-18 18:40:02 +02:00
Dean Herbert
1d774f3f12 Remove redundant ProcessFrame calls
Of note, I'm not sure whether the `IsPaused` check was meaningful, but
it's not reimplemented in the new `FramedBeatmapClock`.
2022-08-19 01:39:02 +09:00
Dean Herbert
7bc96431a7 Remove unnecessary virtual spec from GameplayClockContainer.Seek 2022-08-19 01:39:01 +09:00
Dean Herbert
43879633db Ensure setting a StartTime on a GameplayClockContainer always resets to the new time 2022-08-18 18:54:10 +09:00
Dean Herbert
343efa1d11 Split OffsetCorrectionClock out of MasterGameplayClockContainer 2022-08-18 18:54:10 +09:00
Dean Herbert
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
Dean Herbert
6003afafc7 Use FramedBeatmapClock in GameplayClockContainer 2022-08-18 18:54:10 +09:00
Dean Herbert
9735728cf6 Reverse conditionals to better define intent in addSourceClockAdjustments 2022-08-18 15:08:09 +09:00
Dean Herbert
20256aad11 Merge branch 'master' into no-gameplay-clock 2022-08-17 15:21:20 +09:00
Dean Herbert
63819648df Fix up flow of actual skip operation 2022-08-16 14:40:02 +09:00
Dean Herbert
9a1a7bae89 Make test actually test things 2022-08-16 14:40:02 +09:00
Dean Herbert
6761f869f9 Modify flow to avoid weird bindable and value resetting 2022-08-16 14:17:35 +09:00
Dean Herbert
c9baadcf88 Merge branch 'master' into improve_retry_behaviour 2022-08-16 13:06:04 +09:00
Dean Herbert
61a8873266 Ensure GameplayClockContainer's FramedClock is always non-null 2022-08-15 20:22:36 +09:00
Dean Herbert
1696a905ba Reduce exposed properties in GameplayClockContainer 2022-08-15 20:22:36 +09:00
Dean Herbert
704568ae3b Remove remaining usage of GameplayClock 2022-08-15 20:22:36 +09:00
Dean Herbert
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
Dean Herbert
cc982d374c Cache self rather than GameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
c5f8529d20 Mark unused methods as NotImplemented for safety 2022-08-15 18:30:53 +09:00
Dean Herbert
f81c7644b4 Make GameplayClockContainer also an IGameplayClock and expose to remaining tests 2022-08-15 18:30:53 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
6d78218142 Update usages of GameplayClockContainer.GameplayClock to access properties directly 2022-08-15 18:08:49 +09:00
Dean Herbert
224f3eaa84 Make GameplayClockContainer non-abstract and use in MultiSpectatorPlayer 2022-08-15 18:08:49 +09:00
Dean Herbert
623e90a7b2 Fix div-by-zero in SongProgress when no object duration could be calculated 2022-08-15 15:05:35 +09:00
Ryuki
2aa3a1b50d
Rename all "KeysPerSecond" usages to "ClicksPerSecond" 2022-08-14 20:12:11 +02:00
Ryuki
9dc806506e
Make ActionListener and KeysPerSecondCalculator not rely on events to add timestamps 2022-08-14 19:31:14 +02:00
Ryuki
d5f10cbb9d
Revert 787dee24 and initialize calculator in HUDOverlay 2022-08-14 18:53:00 +02:00
Ryuki
e08f71797e
Change displayed metric from "KPS" to "clicks/s" 2022-08-13 04:27:26 +02:00
Ryuki
9b252b1d81
Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
Ryuki
d29cba80e9
Remove useless comment in KeysPerSecondCounter 2022-08-11 11:01:16 +02:00
Ryuki
787dee249d
Move KeysPerSecondCalculator instantiation from HUDOverlay to Player
This prevents messing with *future* Skin (de)serialization
2022-08-11 10:37:16 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage 2022-08-11 10:01:39 +02:00
Ryuki
0a94fb4039
Make KPS counter strictly depending only on KPS calculator
`KeysPerSecondCounter` now depends on `KeysPerSecondCalculator` via the
`BackgroundDependencyLoaderAttribute` method, making it appear only in a
gameplay context without requiring `GameplayClock` without using it.
2022-08-11 00:46:39 +02:00
Ryuki
46e372cb99
Add more readiness checks in KeysPerSecondCalculator 2022-08-11 00:43:15 +02:00
Ryuki
9e80d3f71c
Re-adjust timespan conditions in KeysPerSecondCalculator 2022-08-11 00:42:22 +02:00
naoei
8cb2e11766 Change most ruleset-accessible string types to Localisable strings 2022-08-10 15:51:11 -04:00
Dean Herbert
a5081826b7 Handle cancellation at more points during Player initialisation
As discussed in discord, this will help avoid null references during
cancellation which can otherwise be quite confusing to debug.
2022-08-09 23:25:19 +09:00
Ryuki
b52a07c16a
Use DI to provide dependencies for KPS Calculator and improve input
gathering

KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it
is now cached for `KeysPerSecondCounter`s to resolve it. This also
allows to make an "Attach" flow like `KeyCounter`.
2022-08-08 21:54:06 +02:00
BlauFx
0afa3a5ec8
Fix xml doc 2022-08-08 21:20:09 +02:00
BlauFx
f6e65cf1af
Improve implementation 2022-08-08 20:53:05 +02:00
BlauFx
fac2596eee
Change type from BindableBool to IBindable<bool> 2022-08-08 13:38:52 +02:00
BlauFx
cd68134565
Call skip method directly 2022-08-08 13:10:28 +02:00
HiddenNode
ed86255e2b Use UprightUnscaledContainer instead of KeepUprightAndUnscaled 2022-08-07 13:20:22 +01:00
BlauFx
bb344e064f
Add xml docs 2022-08-07 13:31:26 +02:00
BlauFx
09230304a4
Improve implementation 2022-08-07 13:20:29 +02:00
Ryuki
b2557a8d2d
Refactor KPS
- Remove '#nullable disable' in KeysPerSecondCalculator and
  KeysPerSecondCounter
- Remove KeysPerSecondCalculator IDisposable implementation
- Make KeysPerSecondCalculator static instance initialized once by
  KeysPerSecondCounters
- Auto transfer dependencies from KeysPerSecondCounter to
  KeysPerSecondCalculator using Resolved properties
- Add internal reset logic to KeysPerSecondCalculator and make it
  independent from Player
- Use GameplayClock.TrueGameplayRate to get real-time rate. If 0 then it
  defaults to the last non 0 rate if no such mod is enabled
2022-08-07 00:53:00 +02:00
BlauFx
bd43a9e96e
Add missing type specification 2022-08-06 18:49:07 +02:00
BlauFx
fa6d55b5b5
Remove redundant lambda signature parentheses 2022-08-06 18:47:11 +02:00
BlauFx
0d418559bc
Skip song intro only in case of a quick restart 2022-08-06 17:02:45 +02:00
BlauFx
e411a2d187
Revert reduced wait time commit 2022-08-06 15:12:36 +02:00
BlauFx
445f921756
Move IsSkippable event into load method 2022-08-05 23:21:03 +02:00
BlauFx
d8d7423698
Reduce "wait time" in case restarting the map 2022-08-05 23:04:43 +02:00
BlauFx
99e07aa09a
Skip intro if the map gets restarted 2022-08-05 23:01:52 +02:00
BlauFx
6717f0606c
Add property to SkipOverlay 2022-08-05 23:00:37 +02:00
Ryuki
0886137e39
Prevent KeysPerSecondCounter from NRE when no instance is initialized 2022-08-05 21:03:00 +02:00
HiddenNode
b46bc5d65b Remove empty line 2022-08-05 14:57:33 +01:00
Ryuki
24c29b7e2f
Do not add KPS calculation when gameplay rate is 0 2022-08-05 15:51:07 +02:00
HiddenNode
0243f8d6ac Clean up 2022-08-05 14:28:15 +01:00
HiddenNode
12ef99a1a1 Fix text position 2022-08-05 12:56:08 +01:00
Ryuki
42d1bdfc95
Move KPS calculation to a standalone class 2022-08-05 04:17:01 +02:00
Salman Ahmed
7c45c571a0
Merge branch 'master' into more-beat-sync-dependence 2022-08-03 20:22:42 +03:00
Dean Herbert
6ad6561e1c Fix LegacySongProgress incorrectly blocking mouse input from gameplay
Closes #19555.
2022-08-03 17:42:29 +09:00
HiddenNode
bc21a2ed56 Remove unnecessary using directive 2022-08-02 17:41:17 +01:00
HiddenNode
78a98cdb9c Prevent TextSprites inside SongProgressInfo from being stretched or flipped 2022-08-02 17:37:31 +01:00
Dean Herbert
cc4cde2c79 Improve IBeatSyncProvider interface and reduce beatmap track dependence 2022-08-02 17:59:18 +09:00
HiddenNode
df85bd74d7 Keep TextSprites in SongProgressInfo upright 2022-08-01 21:46:37 +01:00
Dean Herbert
5b98a73edc Apply nullability to SkinComponentToolbox and split out reflection method to get all skinnable components 2022-08-01 14:04:08 +09:00
Ryuki
89855cc1d6
Change KPS Counter implementation base and add better replay integration
The counter implementaiton is now list based, and will not invalidate
previous hits by removing them but by testing if they are within the 1
second span, allowing better integration with replays and spectators.
2022-07-31 01:29:57 +02:00
Susko3
38a8b9cf0a Add battery info for desktop platforms 2022-07-30 14:26:19 +02:00
Salman Ahmed
3bc1774c87
Merge branch 'master' into pie-chart-progress 2022-07-29 16:54:59 +03:00
Salman Ahmed
905bbdc8ee Remove caching of GameplayClockContainer in favour of GameplayClock
Also fixes `SongProgress` being displayed in skin editor on non-gameplay
screens, due to `GameplayClock` not marked as a required dependency.
2022-07-29 16:45:29 +03:00
Salman Ahmed
3f72e76348 Expose StartTime from gameplay clock 2022-07-29 16:18:05 +03:00
Ryuki
b2e7da5aa0
Add basic Queue based implementation of KPS 2022-07-28 18:37:12 +02:00
Dean Herbert
3005ff1b9f Merge branch 'master' into pie-chart-progress 2022-07-28 22:19:27 +09:00
Dan Balasescu
ce694123eb Move spectator begin/end playing to SubmittingPlayer 2022-07-28 20:44:04 +09:00
Dean Herbert
86c2b7e449 Apply nullability to DefaultSongProgress and clean up more stuff 2022-07-28 18:37:17 +09:00
Dean Herbert
ea027eda46 Move initial show to base implementation and add transition for legacy version 2022-07-28 18:29:49 +09:00
Dean Herbert
d5e5761892 Fix DefaultSongProgress graph not resetting if time is in intro 2022-07-28 18:25:24 +09:00
Dean Herbert
7108553883 Tidy up various things everywhere 2022-07-28 18:25:14 +09:00
Nitrous
0d36907cad
apply code quality fixes 2022-07-28 15:30:45 +08:00
Nitrous
bca3994d91
set FirstHitTime and LastHitTime once 2022-07-28 15:25:12 +08:00
Nitrous
db62d4be3a
apply suggestions
- refactor `SongProgress`
- make`UpdateProgress` more readable
- enable NRT on new classes
- refactor `TestSceneSongProgress` to use `GameplayClockContainer`
2022-07-28 15:15:41 +08:00
Nitrous
9088caa377
move LegacyComboCounter to osu.Game.Skinning 2022-07-28 08:36:26 +08:00
Nitrous
45c11f2b7b
account for gameplay start time 2022-07-28 08:01:38 +08:00
Nitrous
37e642b0bd
make SongProgress abstract
- move unrelated logic to `DefaultSongProgress`
- make `LegacySongProgress` inherit `SongProgress`
2022-07-27 15:19:21 +08:00
Salman Ahmed
fa9daa6899 Fix TestSceneReplayRecorder not using score provided by gameplay state 2022-07-25 05:21:27 +03:00
Salman Ahmed
ad09e728fd Move Passed assignment inside FailScore 2022-07-21 08:12:06 +03:00
Salman Ahmed
0f0b19da4a Populate score with remaining "miss" statistics on fail/exit 2022-07-21 06:01:36 +03:00
Bartłomiej Dach
6f37487528
Replace calls to defective Humanizer methods with correct version 2022-07-18 22:34:58 +02:00
Salman Ahmed
e6236ba088 Update save score button to check availability after import
Previously was relying on whether `SaveReplay` returns null, but since
I've changed it to use the standard "prepare score for import" path, the
button has to check for local availability after import since that path
doesn't return null on fail.
2022-07-15 23:39:52 +03:00
Salman Ahmed
6285442b7d Fix failed scores not prepared before import 2022-07-15 22:57:12 +03:00
Dean Herbert
2beed6d7b7 Allow failed scores to fail in replay playback 2022-07-15 20:45:48 +09:00
Dean Herbert
d325c534ab Check whether score is already imported and show correct state for save button 2022-07-15 20:45:37 +09:00
Dean Herbert
0200ef1d48 Make delegate firing more safe to being set later than BDL 2022-07-15 19:06:44 +09:00
Dean Herbert
0e788ac714 Simplify bindable logic greatly 2022-07-15 19:02:12 +09:00
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
為什麼
6a643cb6ea Use Debug.Assert instead. 2022-07-12 09:41:19 +08:00
為什麼
857377e145 Move CreateConvertibleReplayFrame() into legacy ruleset interface because technically only legacy ruleset use it to convert the legacy frame.
But seems some of the customized ruleset use it for save the replay frame.
2022-07-10 10:15:27 +08: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 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