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 TriggerClick
s 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 SongProgressBar
s
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