smoogipoo
84bddf0885
Initial PP counter implementation
2021-09-30 17:00:24 +09:00
Dan Balasescu
625711e6d2
Merge pull request #14776 from peppy/fix-pause-with-audio-offset
...
Avoid accounting for the pause pitch adjust effect when "fixing" hardware offset adjustments
2021-09-28 18:44:22 +09:00
Dan Balasescu
ffdaf23329
Merge pull request #14814 from peppy/fix-key-counter-masking
...
Fix `KeyCounterDisplay` potentially getting stuck invisible due to autosize masking
2021-09-21 16:21:38 +09:00
Bartłomiej Dach
761548e533
Merge branch 'master' into 14470-ur-not-updating
2021-09-20 22:07:33 +02:00
sh0ckR6
fb416c79e9
Fully revert Player
2021-09-20 15:01:03 -04:00
Dean Herbert
a3464c98a7
Fix KeyCounterDisplay
potentially getting stuck invisible due to autosize masking
...
Closes #14793 .
2021-09-20 23:52:01 +09:00
sh0ckR6
9a1db04920
Resolve GameplayClockContainer
instead of Player
2021-09-20 10:28:58 -04:00
sh0ckR6
36a20ab0b3
Resolve failed test compilation
2021-09-20 10:26:07 -04:00
sh0ckR6
10fe2382b0
Address most issues
2021-09-20 10:07:42 -04:00
sh0ckR6
04715a5471
Add null-check when invoking OnSeek
2021-09-18 12:20:36 -04:00
sh0ckR6
f6e279baa1
Add xmldoc to HitErrorMeter.Clear
...
Explains how the method is called and what inheritors should do when implementing it.
2021-09-18 12:18:11 -04:00
sh0ckR6
12cc16c598
Remove unused property in SongProgress
2021-09-18 12:05:06 -04:00
sh0ckR6
b2b3108afa
Resolve addressed issues
...
+ Stopped using testing methods in non-testing classes
+ Resolve Player and add OnSeek event
+ Take bindings away from BarHitErrorMeter
+ Add support for ColourHitErrorMeter
2021-09-17 16:19:41 -04:00
Dean Herbert
5f27f1c099
Avoid accounting for the pause pitch adjust effect when "fixing" hardware offset adjustments
...
Bit of an unfortunate one. Because we are applying the pitch adjustment
to the lowest level (`Track`), it's hard to filter out in parent clock
calculations.
Tried a few solutions but this feels the best. Note that we can't just
undo the `pauseFreqAdjust` adjustment as it will div-by-zero.
Closes https://github.com/ppy/osu/issues/14773 .
2021-09-17 15:43:38 +09:00
smoogipoo
f9d5abff8a
Update with keybinding changes
2021-09-16 18:26:12 +09:00
Dean Herbert
fa693bb8a8
Move MusicController
adjustment set to inside OsuScreen
itself (and result nullable
)
2021-09-16 16:08:09 +09:00
AbstractQbit
318f0941ca
Move all the "inherit previous AllowTrackAdjustments
" logic into OsuScreen
2021-09-15 21:25:39 +03:00
AbstractQbit
f0439ef50b
Remove unnecessary AllowTrackAdjustments
overrides, add true to SongSelect
2021-09-15 13:12:57 +03:00
AbstractQbit
b9193aae6d
Make IOsuScreen.AllowTrackAdjustments nullable
...
Allows for inheriting value from the previous screen if undefined
2021-09-14 17:37:57 +03:00
AbstractQbit
3c75094f43
Move BarHitErrorMeter
's icon reorintation to Update()
2021-09-13 19:41:55 +03:00
AbstractQbit
7267602b95
Fix icon orientation for horizontal bar hit error meter
2021-09-13 17:14:39 +03:00
sh0ckR6
bde092f816
Clear UR bar display on seek with mouse
2021-09-09 20:08:16 -04:00
sh0ckR6
bf0150bab4
Clear UR bar display on keyboard input
2021-09-09 16:21:51 -04:00
Dean Herbert
c25ab6835c
Remove IJsonSerializable interface
...
Was pretty pointless and made it hard to use the custom serialisation
terms arbitrarily in tests.
2021-08-31 14:39:20 +09:00
Dean Herbert
f64efdc4a9
Merge branch 'update-extension-usages' into update-framework
2021-08-30 16:00:09 +09:00
Dan Balasescu
7be825f470
Merge pull request #14488 from frenzibyte/multi-spectator-player-leaving
...
Gray out and stop player instances who quit during multi-spectator sessions
2021-08-30 12:04:19 +09:00
Salman Ahmed
e374ef163d
Update localisable formattable extensions usages inline with framework change
2021-08-29 15:00:28 +03:00
Salman Ahmed
378734a7f8
Separate solo spectator player and "exit on restart" logic to own class
2021-08-27 13:24:37 +03:00
Dean Herbert
e633b2716d
Fix regression in outro skip handling logic
2021-08-26 13:58:45 +09:00
Dean Herbert
b1a261c902
Avoid using scheduled delegates at all for skip overload input handling
2021-08-26 12:25:37 +09:00
Dean Herbert
956e3c554b
Avoid skip overlay attempting to show when it is already invalid
2021-08-26 12:25:37 +09:00
Bartłomiej Dach
e503182a8d
Merge branch 'master' into activity-on-multiplayer-screens
2021-08-24 18:50:55 +02:00
smoogipoo
16ddbcd208
Don't bind to RoomId where it's expected to be constant
2021-08-24 14:25:40 +09:00
smoogipoo
df170afbc4
Fix multiplayer crashing when entering gameplay
2021-08-24 13:22:06 +09:00
smoogipoo
956c1cc216
Merge branch 'master' into activity-on-multiplayer-screens
2021-08-24 12:33:34 +09:00
Nathan Alo
2877b43824
split multiplayer and playlist activity
2021-08-22 09:54:07 +08:00
Dan Balasescu
c95bf735fe
Merge branch 'master' into multiplayer-chat
2021-08-20 11:54:42 +09:00
Dean Herbert
9d2664cbb1
Merge branch 'master' into star-rating-display-v2
2021-08-18 17:22:33 +09:00
Dean Herbert
4a65888cfc
Merge branch 'master' into multiplayer-chat
2021-08-17 17:34:23 +09:00
Dean Herbert
6ee6a46894
Remove unnecessary public
prefix in interface specification
2021-08-17 16:22:14 +09:00
Dean Herbert
0d283aa6a3
Expose LocalUserPlaying
from Player
2021-08-17 16:16:49 +09:00
Dean Herbert
82eddeffef
Add LocalUserPlayInfo
interface to convey common information about player status
2021-08-17 16:15:47 +09:00
smoogipoo
f4b7ee5c7f
Merge branch 'master' into hide-player-settings-overlay
2021-08-17 13:44:33 +09:00
smoogipoo
081524b6c8
Privatise setters
2021-08-17 13:44:21 +09:00
Dean Herbert
fc89f2bac4
Revert "Rename element in OsuSettings enum"
...
This reverts commit c2bbe17562
.
2021-08-16 16:56:48 +09:00
Dean Herbert
8d45f86bd3
Rename variable to better reflect its purpose
2021-08-16 16:48:40 +09:00
Dean Herbert
ae8a1adae8
Allow seeking via Player.Seek
even if disabled
2021-08-16 16:47:57 +09:00
Dean Herbert
838bcc51b2
Avoid new bindable requirement
2021-08-16 16:27:19 +09:00
Dean Herbert
81480ac4fc
Use PlayerConfiguration
to convey no-seek state
2021-08-16 16:16:02 +09:00
Salman Ahmed
554b09ac1b
Fix SkinnableTargetsContainer
blocked from processing scheduled tasks
2021-08-16 06:57:45 +03:00
Nathan Alo
cc3468b4ab
apply suggestions
...
- make `UserActivity.InGame` and derive that to `InSoloGame` and `InMultiplayerGame`
- rename `SoloGame` to `InSoloGame`
- rename `MultiplayerGame` to `InMultiplayerGame`
2021-08-16 06:32:33 +08:00
Salman Ahmed
2ddf28346a
PlayerSettingsGroups -> PlayerSettings
2021-08-14 19:58:20 +03:00
Nathan Alo
4ed06a1021
apply suggestions
2021-08-14 22:39:12 +08:00
kj415j45
c2bbe17562
Rename element in OsuSettings enum
...
`ShowProgressGraph` -> `ShowDifficultyGraph`
2021-08-14 22:35:15 +08:00
Dean Herbert
a10ba17b64
Merge pull request #14250 from peppy/leaderboard-limit-player-count
...
Add ability for gameplay leaderboard scroll when too many users are displayed
2021-08-14 14:08:18 +09:00
Bartłomiej Dach
e2cc96097f
Unify match score display formatting
...
Commas are already applied on the multiplayer leaderboard, as well as
the results screen.
2021-08-13 23:57:51 +02:00
Bartłomiej Dach
00317c0e30
Round when totalling up team scores instead of truncating
...
Matches score handling in `ScoreManager`.
2021-08-13 23:44:07 +02:00
Dean Herbert
90755c0307
Replace condition with matching precalculated bool
2021-08-13 14:50:59 +09:00
Dean Herbert
93574acf72
Fix exception messaging
2021-08-13 14:46:57 +09:00
Dean Herbert
641d57e5e1
Change scroll container subclass name to hopefully read better
2021-08-13 14:46:28 +09:00
Salman Ahmed
34c2b317e2
Hide song progress bar on multi-spectator player
2021-08-13 07:30:09 +03:00
Salman Ahmed
8dc7a925e7
Expire instead of hiding and disabling visibility state
...
Since it's a temporary change until the spectator interface gets
improved, no need to add further logic.
2021-08-13 07:28:59 +03:00
Salman Ahmed
c10320f239
Hide and disable player settings overlay on multi-spectator player
2021-08-13 06:35:16 +03:00
Salman Ahmed
2b86416cb2
Hide player settings overlay on multi-spectator player loader
2021-08-13 06:35:16 +03:00
Bartłomiej Dach
70005cb39d
Merge branch 'master' into multiplayer-team-vs-results
2021-08-12 20:39:48 +02:00
Dean Herbert
e84224f64c
Rename AddPlayer
method now that there's no conflict
2021-08-12 16:20:37 +09:00
Dean Herbert
68dbbc17e8
Add support for automatic scrolling in gameplay leaderboard
2021-08-12 16:20:37 +09:00
Dean Herbert
3f067e3a8d
Remove likely unnecessary score null check
2021-08-11 16:59:42 +09:00
Dean Herbert
735c5085dd
Fix match score display not doing an initial value update
2021-08-11 14:50:47 +09:00
Dean Herbert
ee3b373e8a
Correctly handle tied scores
2021-08-11 14:48:37 +09:00
Dean Herbert
a503274e1d
Pass through MultiplayerRoomUser
s instead of int
s to avoid re-retrieval
2021-08-10 18:39:20 +09:00
Dean Herbert
58714dbe71
Fix ordering of teams to match colours
2021-08-09 19:48:53 +09:00
Dean Herbert
490f9e1848
Fix overlap in spectator view
2021-08-09 19:45:16 +09:00
Dean Herbert
551929cf5a
Simplify method of marking players as playing in test scenes
2021-08-09 19:18:13 +09:00
Dean Herbert
121648b593
Add gameplay-specific team score display which can expand and contract
2021-08-09 19:17:51 +09:00
Dean Herbert
ebbf6467e8
Support more than two teams
2021-08-09 17:23:02 +09:00
Dean Herbert
cdc173e867
Add tracking of team totals to leaderboard implementation
2021-08-09 17:08:32 +09:00
Dean Herbert
77c9aadd05
Add team colour support to multiplaye gameplay leaderboard panels
2021-08-09 17:06:25 +09:00
Dean Herbert
e1d4eee1d2
Add the ability to set custom overriding colours on GameplayLeaderboardScore
s
2021-08-09 17:06:21 +09:00
Dean Herbert
0fa1f085df
Store MultiplayerRoomUser
as part of tracked data
2021-08-09 16:31:18 +09:00
Dean Herbert
fcec714b4f
Add safeties to avoid MultiplayerPlayer
crashing when beatmap can't be loaded
2021-08-09 16:31:18 +09:00
Dean Herbert
aa4c6b9341
Bring across tournament score display for game usage
2021-08-09 16:30:37 +09:00
Salman Ahmed
b01893d3f2
Merge branch 'master' into star-rating-display-v2
2021-08-06 13:51:34 +03:00
Dean Herbert
2ccf7e75b0
Fix new possible nullref inspection due to delegate initialisation in constructor
2021-08-05 13:24:59 +09:00
Salman Ahmed
d4399f10f9
Merge both variants of the star rating display
2021-08-04 18:19:28 +03:00
Dean Herbert
9b9dacf3fe
Update usages of Drawable.Click()
2021-08-04 17:30:33 +09:00
Salman Ahmed
a75da82986
Add explaining comment
2021-08-01 21:14:54 +03:00
Salman Ahmed
ac930b8918
Fix judgement processors provided to mods while not completely loaded
2021-08-01 19:16:30 +03:00
Joseph Madamba
451c65a2c8
Fix song progress graph not being correctly hidden
2021-07-29 23:41:01 -07:00
Henry Lin
89e8296eb1
Reset all types of adjustments in MusicController
; Rename AllowRateAdjustments
to AllowTrackAdjustments
2021-07-29 15:39:26 +08:00
Lucas A
ff3d38de6f
Localise accuracy display.
2021-07-23 22:37:08 +02:00
Dean Herbert
b910c21230
Add ModFlowDisplay
and consume in ContractedPanelMiddleContent
2021-07-21 16:53:04 +09:00
Dean Herbert
396ad79d50
Remove unnecessary UnbindAll
call
2021-07-21 16:43:08 +09:00
Dean Herbert
a63065dbe9
Tidy up ModDisplay
2021-07-21 16:38:25 +09:00
Dan Balasescu
5ef1fe6948
Merge branch 'master' into fix-replay-date
2021-07-19 21:58:37 +09:00
Dan Balasescu
f3bcaf7f11
Merge pull request #13929 from peppy/i-deep-cloneable
...
Create a deep clone of score for score submission purposes
2021-07-19 21:58:27 +09:00
Dean Herbert
b3f60c8253
Fix date being updated on replays unexpectedly
2021-07-19 19:28:35 +09:00
Dean Herbert
f16b4957aa
Move clone to earlier in the process
2021-07-19 19:18:34 +09:00
Dean Herbert
caba78cb5d
Copy score during submission process to ensure it isn't modified
2021-07-19 14:14:28 +09:00
Dean Herbert
3c028ce05c
Add IDeepCloneable
interface and update existing CreateCopy
methods to use it
2021-07-19 12:54:17 +09:00
Dean Herbert
d7f997a7f3
Set score's rank on a failed submission
...
As we don't have a `RankInfo.F`, this is the next best choice. I am also
adding a check osu-web side for this - this is just to make sure we
aren't sending scores with SS when they are not actually completed.
I'm working on a separate PR to ensure this does not get mutated during
the player exit process.
2021-07-19 12:36:15 +09:00
Salman Ahmed
07ede7a147
Disallow custom rulesets from score submission
2021-07-11 03:34:57 +03:00
Dean Herbert
6a5f0e8237
Move handling of replay seek operations out of progress bar
...
This is in order to avoid using the now obsoleted property
`SliderBar.AllowKeyboardInputWhenNotHovered`
(see https://github.com/ppy/osu-framework/pull/4579 ).
2021-07-09 14:28:59 +09:00
Dean Herbert
e612d7568c
Merge pull request #13771 from LumpBloom7/volume-meter-switch
...
Add ability to navigate between volume meters via Alt+Left/Right arrows
2021-07-07 21:50:44 +09:00
Derrick Timmermans
4d7c744101
Fix failing test
2021-07-07 12:59:31 +02:00
Derrick Timmermans
ffe18ebe51
Resolve build errors
2021-07-06 14:11:46 +02:00
Derrick Timmermans
07d54d261a
Let selection container handle manual selection changes
2021-07-06 13:24:18 +02:00
Derrick Timmermans
c5a0672277
Use IStateful<SelectionState> instead of ISelected
2021-07-06 12:07:25 +02:00
Dan Balasescu
32e6c9c5d3
Merge pull request #13786 from peppy/multiplayer-test-fixes
...
Fix multiplayer test failures due to leaderboard load process
2021-07-06 16:33:41 +09:00
Dean Herbert
1a6b8b2c73
Populate UserScores
as early as possible to avoid weird ordering requirements
2021-07-06 14:53:31 +09:00
Bartłomiej Dach
686dd2b5ce
Remove unused constant
2021-07-05 20:35:14 +02:00
Derrick Timmermans
d495196b66
Share item cycling logic with GameplayMenuOverlay
2021-07-05 19:22:55 +02:00
Dean Herbert
f5ddd2a53b
Fix critical failure causing scores to not update on the leaderboard
2021-07-06 01:15:30 +09:00
PercyDan54
e1c646b9b2
Remove redundant arguments
2021-07-05 23:52:39 +08:00
Dean Herbert
f1014af284
Move LoadComplete
content to run after user retrieval has completed
...
Feels safer, I think.
2021-07-05 21:35:41 +09:00
Dean Herbert
459f9a0465
Handle nulls and fix missing documentation
2021-07-05 21:35:37 +09:00
Dean Herbert
77adf687c6
Consume ability to lookup multiple users in MultiplayerGameplayLeaderboard
...
Avoids syncrhonously blocking on asynchronous operations (which was
leading to LCA starvation in tests).
2021-07-05 19:56:37 +09:00
Dean Herbert
7a710ceffe
Check count as well (statistics can be populated with zero counts)
2021-07-04 16:41:09 +09:00
Dean Herbert
ef82528309
Don't attempt to submit score when nothing has been hit
2021-07-04 15:16:18 +09:00
Dean Herbert
f689e788c9
Avoid using game-wide beatmap during score submission
2021-07-02 14:24:27 +09:00
Dean Herbert
74c63e15be
Mark score failed on fail and exit
2021-07-01 17:48:09 +09:00
Dean Herbert
04b874bb00
Add flow for submitting score on exiting SubmittingPlayer
2021-07-01 17:02:33 +09:00
Dean Herbert
5bc970af0d
Make TestPlayer
inherit from SoloPlayer
for more flexibility in testing
2021-07-01 16:55:33 +09:00
Dean Herbert
00d3baef11
Exit handling flow
2021-06-30 20:23:48 +09:00
smoogipoo
bcdf36e77b
Merge branch 'master' into spectator-start-at-end-2
2021-06-29 15:53:58 +09:00
Dean Herbert
4cb9c6a842
Merge pull request #13423 from frenzibyte/transformers-per-skin
...
Refactor ruleset skin transforming logic to be per-`ISkin` rather than one `ISkinSource`
2021-06-22 21:24:56 +09:00
Salman Ahmed
b12adc6073
Remove all test skinning changes in favour of the ISkinSource.AllSources
path
2021-06-22 10:48:03 +03:00
Dean Herbert
1fff9a93b9
Merge branch 'master' into skin-editor-closest-anchor
2021-06-22 16:41:51 +09:00
Dean Herbert
1b0aadcc6f
Merge branch 'master' into transformers-per-skin
2021-06-22 16:03:15 +09:00
Dean Herbert
c751e087ca
Merge branch 'master' into skin-editor-closest-anchor
2021-06-18 18:54:07 +09:00
Dean Herbert
0bc68a7018
Move xmldoc to method
2021-06-18 16:50:31 +09:00
Dean Herbert
19507e107e
Reorder methods to make more sense
2021-06-18 16:46:40 +09:00
Dean Herbert
a7f40dc6d4
Merge branch 'remove-synchronous-prepare-score-method' into storyboard-outro-logic-refactor
2021-06-18 16:45:01 +09:00
Dean Herbert
45122594e5
Remove the synchronous version of PrepareScoreForResults
...
Replaces all existing usages with the `async` version.
2021-06-18 16:24:08 +09:00
Dean Herbert
f3426e38b4
Add note about delay parameter
2021-06-18 16:18:20 +09:00
Dean Herbert
3819a1f03b
Remove exit override behaviour
...
I don't actually know under what scenario this could have been hit, and
actually caused expected behaviour. Consider that in the scenario I
describe in the comment (which I added yesterday), the user is
requesting a pause or exit which would be "cancelled showing the results
instead". But in such a scenario, `PerformExit` would first be run,
which cancels the `resultsDisplayDelegate` in the first place.
The only special case would be pressing the close button on the window
decoration? Which I don't think should be a special case in the first
place, so I'm just going to remove this for the time being to keep
things simple.
2021-06-18 16:12:35 +09:00
Dean Herbert
7ef8eac773
Remove unnecessary (and no longer correct) exception
2021-06-18 16:08:31 +09:00
Dean Herbert
2bf855fcca
Move all storyboard outro skip logic out of updateCompletionState
...
This method should only be called to trigger the score completion
portion of player progression. The storyboard skip/end logic is now
handled separately in `progressToResults`.
2021-06-18 15:50:43 +09:00
Bartłomiej Dach
f282326f9a
Move score preparations back below ShowResults
check
2021-06-17 19:04:52 +02:00
Bartłomiej Dach
3a1444e75d
Fix malformed xmldoc tag
...
Oops. Made a typo in the PR suggestion.
2021-06-17 19:02:56 +02:00
Dean Herbert
9facfe8964
Apply suggestions from code review
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-06-18 01:07:54 +09:00
Dean Herbert
e0a3696145
Merge branch 'master' into player-completion-refactoring
2021-06-17 23:51:42 +09:00
Bartłomiej Dach
10b0d066be
Reword comments slightly
2021-06-17 16:04:58 +02:00
Bartłomiej Dach
561dbea9e1
Use xmldoc-specific syntax for nicer formatting
2021-06-17 15:26:50 +02:00
Dean Herbert
d03c6da60c
Refactor and redocument updateCompletionState()
and surrounding methods
2021-06-17 19:13:53 +09:00
Dean Herbert
246ab41cc6
Remove special casing for user exit during storyboard outro
2021-06-17 18:11:15 +09:00
Dean Herbert
7cbebe6d11
Rewrite xmldoc and inline comments for PerformExit
2021-06-17 18:10:59 +09:00
Salman Ahmed
ef2c4fd0d8
Make RulesetSkinProvidingContainer
able to be overriden for testing purposes
2021-06-10 16:36:46 +03:00
smoogipoo
e18f4cd4ba
Combine methods
2021-06-10 22:01:39 +09:00
smoogipoo
5073ede115
Clear existing frames when starting gameplay
2021-06-10 21:38:46 +09:00
smoogipoo
9eecb23fef
Only seek to the end on first frame arrival
2021-06-10 21:35:52 +09:00
Salman Ahmed
dde84e5cbd
Merge branch 'master' into transformers-per-skin
2021-06-10 11:58:52 +03:00
Dan Balasescu
a44fd887ee
Merge branch 'master' into no-unranked-display
2021-06-10 17:09:46 +09:00
Salman Ahmed
1aaad7bfd4
Apply few adjustments to skinning overlays comment
2021-06-09 22:49:31 +03:00
Salman Ahmed
e30f6581b3
Wrap gameplay content within a RulesetSkinProvidingContainer
2021-06-09 22:49:31 +03:00
Bartłomiej Dach
89cdea8123
Merge branch 'master' into fix-results-exit-transition
2021-06-09 19:40:56 +02:00
Dean Herbert
258d05d1e0
Ensure PlayerLoader
restores the background colour to its own value on resume
2021-06-09 17:17:39 +09:00
Dean Herbert
a7ef0173e9
Add safety to ensure background is correct tint when entering gameplay
2021-06-09 17:07:28 +09:00
Bartłomiej Dach
020c63017e
Fix inspectcode issues
2021-06-09 09:21:02 +02:00
Dean Herbert
b754c52392
Update ModAutoplay
matching to use new UserPlayable
flag instead
2021-06-09 14:32:48 +09:00
Dean Herbert
7774344f0e
Remove "Unranked" text from ModDisplay
2021-06-09 13:45:09 +09:00
smoogipoo
00efed2c39
Add colours for tick judgements
2021-06-08 23:10:21 +09:00
smoogipoo
c8e14d7710
Ignore non-scorable and bonus judgements
2021-06-08 23:09:23 +09:00
Robin Avery
dc50ae40b9
Rename OverridesClosestAnchor
to UsesFixedAnchor
2021-06-08 08:28:42 -04:00
Bartłomiej Dach
0531c2dcd9
Move empty window check to bar error meter
...
It's not valid in the base `HitErrorMeter`, as the colour meter only
displays colour for a given judgement, so it is still valid to add new
items to it even if the hit window is 0, as misses are still possible.
2021-06-07 13:16:07 +02:00
Bartłomiej Dach
37d062c7cd
Add failing assertions to hit error meter test
2021-06-07 13:16:07 +02:00
Robin Avery
29fa4fdf57
Refactor unacceptable syntax
2021-06-07 01:08:39 -04:00
Robin Avery
133d72a8c0
Rename UsingClosestAnchor
...
It is now "OverridesClosestAnchor". The logic is inverted accordingly.
2021-06-07 00:14:36 -04:00
Robin Avery
f28916e30f
Remove all UsingClosestAnchor() extension logic
...
It is replaced with ISkinnableDrawable.UsingClosestAnchor.
2021-06-07 00:04:53 -04:00
Robin Avery
ce635af83e
Add UsingClosestAnchor to ISkinnableDrawable
...
Also implement it as an auto property in its inheritors.
The auto properties default to true.
2021-06-06 23:47:47 -04:00
Robin Avery
da1c38d5a9
Uninvert logic of SkinnableInfo.UsingClosestAnchor
...
Also rename "IsUsingClosestAnchor" to simply "UsingClosestAnchor".
2021-06-06 10:13:35 -04:00
Robin Avery
11b1b8c633
Add serialization support via SkinnableInfo
2021-06-06 07:18:08 -04:00
smoogipoo
009aa994d0
Fix potential race incorrectly pausing the source clock
2021-06-04 21:58:51 +09:00
Dean Herbert
23096c58bb
Merge branch 'master' into fix-spectator-frame-conversion
2021-06-04 15:06:15 +09:00
Dean Herbert
d444fed46f
Detach gameplay score from replay recorder before importing
...
Closes #13320 .
2021-06-04 02:00:02 +09:00
smoogipoo
e887807ae7
Apply review fixes
2021-06-03 18:32:05 +09:00
smoogipoo
be03a2d7d2
Fix multiple calls to seek method potentially not working
2021-06-03 17:47:22 +09:00
smoogipoo
c3280083a2
Merge branch 'master' into fix-spectator-frame-conversion
2021-06-03 17:42:01 +09:00
smoogipoo
662bbed5d1
Fix seeking to gameplay too soon
2021-06-03 17:38:51 +09:00
smoogipoo
420df124b5
Add framestable-bypassing seek for spectator
2021-06-03 17:27:21 +09:00
Dean Herbert
e0eb0adb0a
Remove unnecessary bind in ReplayPlayer
2021-06-02 18:32:14 +09:00
Dean Herbert
a15cac6f53
Change the way Score
is initialised in Player
to better lend to population of metadata
2021-06-02 15:44:04 +09:00
Dean Herbert
3ba0d29108
Fix incorrect beatmap being parsed down for autoplay generation
2021-06-01 15:44:24 +09:00
Dean Herbert
9221213fe5
Fix potential nullref is beatmap load failed
2021-06-01 14:19:23 +09:00
Dean Herbert
14570b6fb1
Merge branch 'master' into autoplay-pause-support
2021-06-01 14:19:21 +09:00
smoogipoo
7f24518004
Fix spectator crashing when converting mania replay frames
2021-05-31 19:24:22 +09:00
smoogipoo
d2d0896298
Expose GameplayBeatmap and GameplayRuleset from Player
2021-05-31 19:22:20 +09:00
Salman Ahmed
4e186b0cf5
ContentVisible
-> HiddenByRulesetImplementation
2021-05-31 09:24:26 +03:00
Salman Ahmed
fb111e23d8
Remove "temporarily"
2021-05-31 07:24:59 +03:00
Salman Ahmed
3fbd4e276d
Add simple xmldoc
2021-05-31 00:07:29 +03:00
Salman Ahmed
fb81e5133f
Merge branch 'master' into catch-hide-combo-workaround
2021-05-30 14:16:46 +03:00
Dan Balasescu
7e0a4562c9
Merge branch 'master' into fix-bad-make-current-call
2021-05-28 00:32:51 +09:00
Dean Herbert
7c89dbcd35
Externalise autoplay generation
2021-05-25 18:37:04 +09:00
Dean Herbert
7f9318d976
Expose GameplayBeatmap
to derived Player
classes
2021-05-25 18:36:47 +09:00
Dean Herbert
c2b938a29f
Remove autoplay consideration from Player
2021-05-25 18:09:37 +09:00
Dan Balasescu
3b4fbe22f0
Merge pull request #12928 from Firmatorenio/fix-colour-hitmeter-not-registering-taiko-misses
...
Fix colour hit error meter incorrectly assuming taiko hits were of correct colour
2021-05-24 23:31:54 +09:00
Firmatorenio
471f17547a
switch determining the hit result by offset to getting it from the judgement directly
2021-05-24 16:49:58 +06:00
Firmatorenio
e5f586f2a6
fix colour hit error meter not pushing misses when wrong colour note is hit in taiko
2021-05-24 13:29:12 +06:00
Dean Herbert
100e2d14a5
Move call inside conditional
2021-05-24 15:14:55 +09:00
Dean Herbert
a69a1b5211
Fix Player
potentially running MakeCurrent
when already removed from the screen stack
...
Closes #12919 .
2021-05-24 13:53:53 +09:00
Dean Herbert
83981b692e
Also handle items exiting bounds on the opposite side
2021-05-24 13:44:13 +09:00
Dean Herbert
593fea0d5f
Limit automatically calculated HUD offsets to keep menu items on screen
2021-05-24 13:14:18 +09:00
Salman Ahmed
d605b6bb8d
Fix HUD overlay components bottom positioning logic accounting for combo
2021-05-23 16:22:51 +03:00
Salman Ahmed
6751d79ce8
Fix oversight in HUD overlay components top positioning logic
2021-05-23 16:22:22 +03:00
smoogipoo
36aa186c6e
Merge branch 'thread-safe-spectator-client'
2021-05-21 16:00:24 +09:00
smoogipoo
895eb14c5a
Forcefully end playing to fix test failures
2021-05-21 14:09:30 +09:00
smoogipoo
5a8b8782d3
Fix WatchUser being called asynchronously in BDL
2021-05-20 19:44:43 +09:00
smoogipoo
a74405d0ed
Merge branch 'master' into restructure-spectator-client
2021-05-20 18:53:42 +09:00
smoogipoo
6beeb7f7c4
Rename SpectatorStreamingClient -> SpectatorClient
2021-05-20 15:55:07 +09:00
smoogipoo
d197a7f6f5
Rename multiplayer client classes
2021-05-20 15:39:45 +09:00
Salman Ahmed
43094425e2
Merge branch 'legacy-beatmap-skin-hud-fallback' into catch-hide-combo-workaround
2021-05-19 23:18:27 +03:00
Dean Herbert
00ed699340
Fix origin specifications using incorrect flags
2021-05-20 01:53:24 +09:00
Dean Herbert
363aec8179
Merge branch 'master' into hit-error-skinnable
2021-05-20 01:51:45 +09:00
Salman Ahmed
013fe4928f
Unrevert irrelevant changes
2021-05-19 08:48:21 +03:00
Salman Ahmed
c98d036b48
Merge branch 'master' into catch-hide-combo-workaround
2021-05-18 17:47:20 +03:00
Salman Ahmed
e7d2f42149
Revert "Merge branch 'fix-legacy-skin-test' into catch-hide-combo-workaround"
...
This reverts commit 380d004683
, reversing
changes made to ff419af512
.
2021-05-18 17:46:15 +03:00
smoogipoo
c6160d5304
Only ignore online score id for database import
2021-05-18 21:17:41 +09:00
Dean Herbert
10c730b37d
Add new default locations for hit bar error displays
2021-05-18 15:50:50 +09:00
Salman Ahmed
380d004683
Merge branch 'fix-legacy-skin-test' into catch-hide-combo-workaround
2021-05-18 09:45:43 +03:00
Salman Ahmed
ff419af512
Hide the combo counter content rather than full death
2021-05-18 09:10:15 +03:00
Dean Herbert
829d326e36
Remove alignment logic completely for the time being
...
This was overly complex and does not play well with the new layout
customisation system. We can add it back as required.
2021-05-18 14:55:34 +09:00
Dan Balasescu
ea4dfd3374
Merge pull request #12842 from peppy/song-progress-skinnable
...
Add layout customisation support for `SongProgress`
2021-05-17 20:15:01 +09:00
Dean Herbert
7137315fa7
Remove HitErrorDisplay
container and hook up data
2021-05-17 19:46:50 +09:00
Dean Herbert
ecf70c1707
Remove unnecessary container
2021-05-17 18:55:18 +09:00
Dean Herbert
b80768b44a
Hook up seeking flow
2021-05-17 18:52:56 +09:00
Dean Herbert
0c433cda86
Update HUDOverlay
logic to add automatic layout for bottom-aligned components
2021-05-17 18:52:56 +09:00
Dean Herbert
da0913ca2d
Make SongProgress
a skinnable component
2021-05-17 18:52:56 +09:00
Dan Balasescu
4151f18f74
Merge pull request #12804 from peppy/fix-autoplay-load-fail-nullref
...
Fix a potential nullref when starting `Player` with autoplay disabled and beatmap fails to load
2021-05-17 18:40:05 +09:00
Dean Herbert
1f3ae901ce
Expose DrawableRuleset
for consupmtion by HUD components
2021-05-17 18:23:01 +09:00
Salman Ahmed
34d1490754
Remove null conditional
...
Shouldn't guard against that here.
2021-05-15 10:00:05 +03:00
Dean Herbert
dc56250a3c
Merge branch 'master' into player-loader-star-rating
2021-05-15 15:39:57 +09:00
Salman Ahmed
7c2fc9b412
Update usage due to nullability removal
2021-05-14 16:12:33 +03:00
Salman Ahmed
0dc3bfd0c1
Apply simple transforms to star rating display when ready if not
2021-05-14 15:55:26 +03:00
Dean Herbert
f5dd18f266
Use existing LoadedBeatmapSuccessfully
bool instead
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-05-14 16:53:51 +09:00
Dean Herbert
dc576c19b4
Fix a potential nullref when starting Player
with autoplay enabled and beatmap fails to load
2021-05-14 15:10:02 +09:00
Dean Herbert
c8b7cfc753
Merge branch 'skin-serialisation' into remove-skinnable-hud-classes
2021-05-13 19:05:08 +09:00
Dean Herbert
106fa97a11
Rename SkinnableElementTargetContainer
to SkinnableTargetContainer
2021-05-13 17:07:38 +09:00
Dean Herbert
7921dc7ece
Rename ISkinnableComponent
to ISkinnableDrawable
2021-05-13 17:06:00 +09:00
Dean Herbert
cdcd31b546
Replace ISkinSerialisable
with IsEditable
property
2021-05-13 17:03:17 +09:00
Dean Herbert
3b862798e9
Standardise naming of methods related to SkinnableInfo
2021-05-13 13:14:49 +09:00
Dean Herbert
6caf4e3879
Add xmldoc to SkinnableInfo
2021-05-13 12:57:28 +09:00
Dean Herbert
8b9ac86d4b
Merge branch 'master' into skin-serialisation
2021-05-13 12:35:06 +09:00
Dan Balasescu
4e7c079560
Merge pull request #12753 from peppy/health-bar-hud-overlay-dependency
...
Remove downwards dependency from `HUDOverlay` to `HealthDisplay`
2021-05-12 19:27:02 +09:00
Dean Herbert
0a895fff15
Remove remaining test usage of SkinnableXXX
HUD components
2021-05-12 18:53:25 +09:00
Dean Herbert
c6f0a6aed3
Merge pull request #12538 from smoogipoo/multiplayer-spectator-screen
...
Implement the multiplayer spectator screen
2021-05-12 17:24:35 +09:00
Dean Herbert
494a1b01a5
Move SkinnableElementTargetContainer
out of HUD namespace
2021-05-12 15:59:33 +09:00
Dean Herbert
4aad7b96ea
Merge branch 'health-bar-hud-overlay-dependency' into skin-serialisation
2021-05-12 12:54:37 +09:00
Dean Herbert
184dbaf202
Improve safety of bindings in HealthDisplay
2021-05-12 12:53:30 +09:00
Dean Herbert
8e226319e2
Remove downwards dependency from HUDOverlay
to HealthDisplay
2021-05-11 23:18:23 +09:00
Dean Herbert
048677846b
Change HealthDisplay
to be a CompositeDrawable
2021-05-11 23:10:30 +09:00
Dean Herbert
a88a8b7d8d
Use ISkinnableComponent
wherever possible (and expose as BindableList
)
2021-05-11 18:39:15 +09:00
Dean Herbert
0cf3efa16b
Remove customisation support for SongProgressDisplay
2021-05-11 18:39:14 +09:00
Dean Herbert
03d5f10744
Fix default health bar not being considered for top-right flow layout
2021-05-11 18:39:14 +09:00
Dean Herbert
944f09ec98
Move default skin cross-component dependencies out to default specifications
2021-05-11 18:39:14 +09:00
Dean Herbert
c94df672e5
Also serialise Origin
out
2021-05-11 18:39:14 +09:00
Dean Herbert
f53ce951dc
Remove DefaultScoreCounter
animation for the time being
...
May add this back in the future, but for now it's causing issues as it
operates on `this`. The default skin may be changing quite a bit in the
near future, so we can decide what to do about animation at that point
in time.
2021-05-11 18:39:14 +09:00
Dean Herbert
4c4d75e6f9
Remove AccuracyCounter
sizing dependency in HUDOverlay
2021-05-11 18:39:14 +09:00
Dean Herbert
2396ba42a6
Change HealthDisplay
to be a CompositeDrawable
2021-05-11 18:39:14 +09:00
Dean Herbert
bf65547eec
Allow some serialised components to not be mutable by the user
2021-05-11 18:39:14 +09:00
Dean Herbert
4769a95b49
Fix encapsulation and remove target lookup overhead
2021-05-11 18:39:14 +09:00
Dean Herbert
b248b2e5e3
Hook up full save/load flow
2021-05-11 18:39:14 +09:00
Dean Herbert
004798d61d
Update Legacy components to not require skin in ctor
2021-05-11 18:39:14 +09:00
Dean Herbert
b54eb56169
Move new judgement binding to LoadComplete
to ensure containers are loaded
2021-05-11 18:39:14 +09:00
Dean Herbert
6a88b8888b
Add basic support for child serialisation
2021-05-11 18:39:14 +09:00
Dean Herbert
df72656aa1
Remove downwards dependency from HUDOverlay
to HealthDisplay
2021-05-11 18:39:14 +09:00
Dean Herbert
95a497e9df
Remove unused interface class for simplicity
2021-05-11 18:39:14 +09:00
Dean Herbert
95a8f21ab2
Add the concept of skinnable target containers and mark a basic one for HUD elements
2021-05-11 18:39:14 +09:00
Dean Herbert
67ea4a7e97
Read from skin config
2021-05-11 18:39:14 +09:00
Dean Herbert
b9ab9342fa
Setup basics to allow extracting serializable content from skinnable Drawable
s
2021-05-11 18:39:14 +09:00
smoogipoo
10a4a5decb
Merge branch 'master' into multiplayer-spectator-screen
2021-05-11 17:33:09 +09:00
Dan Balasescu
7d9cdd3bc2
Merge branch 'master' into skin-components-list
2021-05-11 17:27:48 +09:00
Salman Ahmed
004ce95f33
Merge branch 'current-star-rating' into player-loader-star-rating
2021-05-11 09:53:10 +03:00
smoogipoo
0f00ee8640
Change failure text
...
Although this is not visible anywhere.
2021-05-11 11:35:08 +09:00
smoogipoo
8c9390dc75
Remove replay condition
2021-05-11 11:33:21 +09:00
smoogipoo
6db9e26d48
Fix score submission failures with autoplay
2021-05-11 11:28:09 +09:00
smoogipoo
32f7691349
Fix token failure preventing base.LoadAsyncComplete()
2021-05-11 11:24:35 +09:00
Dean Herbert
2ecd638f7f
Merge branch 'master' into skin-components-list
2021-05-10 18:13:10 +09:00
smoogipoo
fa872858b5
Remove unnecessary check
2021-05-10 16:40:06 +09:00
Dean Herbert
97e72849af
Fix regressed HitErrorDisplay
behaviour (and localise binding to meter implementations)
2021-05-10 15:24:13 +09:00
Dan Balasescu
78952c07b0
Merge branch 'master' into remove-hud-overlay-unused-pieces
2021-05-10 14:39:32 +09:00
smoogipoo
35a7226cd8
Add newline
2021-05-10 13:41:04 +09:00
Dean Herbert
52ce16f9f1
Merge branch 'master' into player-loader-star-rating
2021-05-10 12:46:10 +09:00
Dean Herbert
3c3500d070
Merge branch 'skin-components-bind-outwards-health' into remove-hud-overlay-unused-pieces
2021-05-10 12:23:18 +09:00
Dean Herbert
1bbbe80420
Fix missing instances of HealthProcessor
caching
2021-05-10 12:22:24 +09:00
Dean Herbert
b274fdf20d
Merge branch 'master' into skin-components-bind-outwards-health
2021-05-10 11:13:44 +09:00
Dean Herbert
2bcf1ed306
Merge pull request #12715 from Cublibre/fix-early-exit-crash
...
Fix InvalidOperationException when exiting a map at the end
2021-05-09 23:21:19 +09:00
Bartłomiej Dach
67cea6e762
Remove explicit binding to accuracy counter from overlay
2021-05-08 21:38:06 +02:00
Bartłomiej Dach
0bc6a026eb
Merge branch 'master' into skin-components-bind-outwards-accuracy
2021-05-08 21:08:53 +02:00
Salman Ahmed
c52f1733be
Apply further refactoring to star rating display UX-wise
2021-05-08 21:17:19 +03:00
Christine Chen
25312b3e88
Don't restart completion delegate on exit, revert exit behavior to lazer
2021-05-08 11:47:44 -04:00
Salman Ahmed
655e8d3d86
Remove pattern-matching on nullable with simple .HasValue
/.Value
2021-05-08 18:44:44 +03:00
Salman Ahmed
a75347cb2a
Remove nullable facade logic
2021-05-08 18:43:17 +03:00
Salman Ahmed
dca5efc59a
Remove no longer necessary ruleset info requirement
2021-05-08 13:00:39 +03:00
Salman Ahmed
43090067da
Use BeatmapDifficultyCache.GetBindableDifficulty(...)
instead
2021-05-08 12:59:59 +03:00
Salman Ahmed
b4801faf32
Pass ruleset info to constructor instead
...
Follows the way working beatmap is passed, not sure why mods are passed as a bindable though, don't wanna bother too much with that.
2021-05-08 11:57:13 +03:00
Salman Ahmed
7b7e7a86bf
Allow null logo facade
2021-05-08 11:47:18 +03:00
Salman Ahmed
0f08c2a479
Add star rating display underneath the beatmap metadata
2021-05-08 11:47:18 +03:00
Christine Chen
8c564a69ed
Fix InvalidOperationException when exiting a map at the end
2021-05-07 21:11:03 -04:00
Dean Herbert
a1aeac5677
Remove remaining cruft from SkinnableAccuracyCounter
2021-05-07 18:12:18 +09:00
Dean Herbert
68de870986
Merge branch 'skin-components-bind-outwards-health' into remove-hud-overlay-unused-pieces
2021-05-07 18:11:14 +09:00
Dean Herbert
9fe6e1096a
Remove cruft from SkinnableHealthDisplay
2021-05-07 18:11:08 +09:00
Dean Herbert
1cb10c2a22
Remove unnecessary binding logic from HUDOverlay
2021-05-07 17:51:46 +09:00
Dean Herbert
a7acecc52b
Merge branch 'skin-components-bind-outwards-health' into remove-hud-overlay-unused-pieces
2021-05-07 17:51:41 +09:00
Dean Herbert
04d35826a3
Merge branch 'skin-components-bind-outwards-accuracy' into remove-hud-overlay-unused-pieces
2021-05-07 17:25:39 +09:00
Dean Herbert
755588258e
Update HealthDisplay
components to use DI to attach data source
2021-05-07 17:22:45 +09:00
Dean Herbert
01eff7f316
Merge branch 'skin-components-bind-outwards' into skin-components-bind-outwards-score-display
2021-05-07 16:30:08 +09:00
Dean Herbert
93f10330e3
Merge branch 'skin-components-bind-outwards' into skin-components-bind-outwards-accuracy
2021-05-07 16:29:10 +09:00
Dean Herbert
ad398165a2
Update AccuracyCounter
components to use DI to attach data source
2021-05-07 16:27:25 +09:00
Dean Herbert
17b93361d5
Merge branch 'master' into skin-components-bind-outwards
2021-05-07 16:20:24 +09:00
Dean Herbert
a2e4fb5b6b
Update ScoreCounter
components to bind outwards
2021-05-07 16:16:48 +09:00
Dean Herbert
ee23124bb1
Remove no-longer-used interface
2021-05-06 15:18:06 +09:00
Dean Herbert
aff32b0d19
Merge branch 'master' into skin-components-list
2021-05-06 14:17:33 +09:00
Bartłomiej Dach
3cac837acf
Merge branch 'master' into skin-bindables
2021-05-05 20:16:27 +02:00
Dean Herbert
9ec3255c50
Fix SkipOverlay
's FadeContent
not getting correct state from parent
2021-05-05 17:50:25 +09:00
Christine Chen
1472960319
Hide and disable skip outro overlay on rewind
2021-05-04 21:35:36 -04:00
Dean Herbert
b380be7169
Add xmldoc for updateCompletionState
2021-05-04 16:43:51 +09:00
Dean Herbert
4c7a4239f8
Fix AllowGameplayOverlays
potentially not working for outro skip overlay
2021-05-04 16:36:07 +09:00
Dean Herbert
b30145de40
Specify explicit primitive type
2021-05-04 16:35:50 +09:00
Dean Herbert
bb9fa1a25e
Merge branch 'master' into play-storyboard-outro
2021-05-04 14:01:34 +09:00
Dean Herbert
ca4b860920
Move BindValueChanged
call to LoadComplete
2021-05-03 20:11:24 +09:00
Dean Herbert
625890381f
Update ComboCounter
components to use DI to attach data source
2021-05-03 17:43:00 +09:00
Dean Herbert
8b82a07914
Move skin-related interfaces out of HUD namespace
2021-04-30 13:10:42 +09:00
Dean Herbert
5585a7d438
Add basic interfaces for skinnable target containers
2021-04-30 13:10:42 +09:00
Dean Herbert
6442fb819f
Split out component from test scene and fix SongProgress
2021-04-30 13:10:42 +09:00
Dean Herbert
434e63d629
Add skin customisation support to song progress display
2021-04-29 16:12:15 +09:00
Dean Herbert
fd587a82ff
Replace abstract class with interface, attached to the actual components (not skinnable wrapper)
2021-04-29 16:12:15 +09:00
Dean Herbert
defa350aa7
Set defaults on SkinnableHUDComponent to cancel out relative size default
...
Specifying locally on each HUD component looks to make more sense.
2021-04-29 16:12:15 +09:00
Dean Herbert
2540d6029c
Use AutoSize for SkinnableHudComponents
2021-04-29 16:12:15 +09:00
Dean Herbert
59339aa4fd
Add support for x/y position and scale back in
2021-04-29 16:12:15 +09:00
Dean Herbert
1cb8fc9a24
Extract editor classes out of test namespace and add anchor support
2021-04-29 16:12:15 +09:00
Dean Herbert
74fb7cd180
Extract storable attributes to bindables
2021-04-29 16:12:15 +09:00
Dean Herbert
fca173225a
Refactor editor selection/blueprint components to be generic
2021-04-29 16:12:14 +09:00
Dean Herbert
2d17219c8f
Setup basic test and classes for scale adjustment
2021-04-29 16:12:14 +09:00
Dean Herbert
3b876a43c2
Merge branch 'master' into multiplayer-spectator-screen
2021-04-26 14:12:35 +09:00
Bartłomiej Dach
e937b778f6
Fix potential failure in ensureSourceClockSet()
...
`ensureSourceClockSet()` was intended to only run when the adjustable
source hasn't been set at all yet. As it turns out permitting it to run
unconditionally can break the state of the underlying interpolated
clock. This is caused by the following factors:
* While the decoupleable clock is running, its `CurrentTime` does not
come from either the source clock, or the internal stopwatch; it is
instead calculated using the base `InterpolatingFramedClock` logic.
* A source change of a decoupleable clock seeks the provided source
clock to the decoupleable's current time.
* When an interpolating clock is seeked (decoupleable clock is also
an interpolating one), its interpolation state
(`{Last,Current}InterpolatedTime`) are reset to 0.
* If the interpolating clock determines that its current time is too
far away from the source's time (which was set when the source is
changed), it will ignore the source and instead continue to use
its current time until the source clock has caught up.
Overall, the source change is not really necessary if a source is
already there. The only reason to ensure it was set was to make sure
the first seek of the gameplay clock wasn't performed in decoupled
mode. Therefore, add a guard to make sure the source is only set if
there isn't one already.
2021-04-24 14:19:39 +02:00
Bartłomiej Dach
fdb5490e51
Attempt to explain source initialisation better
2021-04-23 21:56:08 +02:00
smoogipoo
ae2fd2f2e1
Ensure source is set on reset
2021-04-23 18:46:59 +09:00
smoogipoo
f32d00c0d9
Fix post-merge errors
2021-04-21 17:13:01 +09:00
smoogipoo
e78ef05fcf
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-21 17:11:14 +09:00
smoogipoo
fb848f7544
Rename to MasterGameplayClock
2021-04-21 16:33:14 +09:00
smoogipoo
ec080fcb32
Move seekOffset back to MasterGameplayClockContainer
2021-04-20 18:25:46 +09:00
smoogipoo
a683e5ec34
Seek using local method
2021-04-20 17:40:11 +09:00
smoogipoo
97fb90d9f4
Move clock processing to base.Seek()
2021-04-20 17:35:59 +09:00
smoogipoo
3d6d26039a
Remove unused usings
2021-04-20 14:09:54 +09:00
smoogipoo
88ded95e75
Ensure clock is set in GCC.Start()
2021-04-20 13:56:13 +09:00
smoogipoo
8dd9134e3d
Move source clock adjustment application to Start()
2021-04-20 13:09:49 +09:00
smoogipoo
a92ae8ce76
Fix Reset() potentially not resetting to the intended start position
2021-04-20 13:01:42 +09:00
smoogipoo
acbf4580a4
Only set initial source in Reset()
2021-04-19 19:57:00 +09:00
smoogipoo
c7183f92f7
Rename Restart() -> Reset()
2021-04-19 19:57:00 +09:00
Christine Chen
abfa6aec87
Remove completionState parameter
2021-04-19 01:58:19 -04:00
Christine Chen
0b36dd9bce
Skip outro overlay and PerformExit() call updateCompletionState() instead of scheduleCompletion()
...
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-19 01:23:21 -04:00
Christine Chen
99fab456b5
Storyboard completion calls updateCompletionState
...
- If the storyboard ends after the beatmap, call updateCompletionState as if the score processor has completed at that time. (completionProgressDelegate is null here since earlier when the score processor actually completed, updateCompletionState returned after showing the skip overlay.)
- If the storyboard ends before the beatmap does, updateCompletionState simply returns and waits until the score processor is completed.
- If the storyboard and beatmap end at the exact same time, make sure updateCompletionState() is called only once by the score processor completion.
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-18 23:25:20 -04:00
Salman Ahmed
f45aed1259
Remove new line between skip overlay fields
2021-04-18 07:25:52 +03:00
Salman Ahmed
f6a09be62d
Add further xmldoc
2021-04-18 07:25:49 +03:00
Salman Ahmed
a73bae7a66
Schedule completion when storyboard has actually ended
2021-04-18 07:25:33 +03:00
Christine Chen
c77f838fb0
HasStoryboardEnded doesn't trigger updateCompletionState()
...
Scores won't be shown prematurely if the storyboard ends before the playable portion of the beatmap.
2021-04-17 21:49:07 -04:00
Christine Chen
97bacbdc76
Show score after the end of the storyboard after it was toggled
2021-04-17 18:10:21 -04:00
Christine Chen
fdcb5e924c
Initialize skipOutroOverlay with alpha 0, other small changes
2021-04-17 17:45:38 -04:00
Christine Chen
81be562379
Read StoryboardEndTime directly from Beatmap
2021-04-17 12:28:31 -04:00
smoogipoo
c8d38f9983
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-16 20:51:00 +09:00
smoogipoo
314b1646bd
Add xmldoc to MasterGameplayClockContainer
2021-04-16 20:47:09 +09:00
smoogipoo
3a78c19f96
More refactoring/xmldocs
2021-04-16 20:33:29 +09:00
smoogipoo
6301111fa3
Remove ClockToProcess, always process underlying clock
2021-04-16 20:17:21 +09:00
smoogipoo
a7aa3cb263
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-16 20:16:26 +09:00
smoogipoo
f98ffbb1b3
Remove ClockToProcess, always process underlying clock
2021-04-16 20:15:42 +09:00
smoogipoo
5e82f40d67
Merge branch 'master' into gcc-abstraction
2021-04-16 20:14:53 +09:00
smoogipoo
65a6f9f8a4
Merge branch 'fix-initial-spectator-state-callback' into multiplayer-spectator-screen
2021-04-16 18:26:46 +09:00
Christine Chen
33a665224e
Clean up skipOutroOverlay if skipping is disabled
2021-04-16 01:03:15 -04:00
Christine Chen
b15838b220
Move storyboard outro logic to DrawableStoryboard
2021-04-16 00:59:10 -04:00
Christine Chen
45c2b72a25
Merge branch 'master' into play-storyboard-outro
2021-04-15 15:11:35 -04:00
Christine Chen
25b8c2f257
Allow skipping storyboard outro
...
Reuses SkipOverlay by calculating the endtime of the storyboard and using that as a "start point". Upon skipping the outro the score is instantly shown.
When the end of the storyboard is reached the score screen automatically shows up. If the player holds ESC (pause) during the outro, the score is displayed
The storyboard endtime is calculated by getting the latest endtime of the storyboard's elements, or simply returning 0 if there is no storyboard.
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-15 13:20:40 -04:00
Dan Balasescu
a19f3bac35
Merge pull request #12408 from peppy/hide-top-right-elements-as-part-of-hud
...
Hide top-right HUD overlay elements as part of HUD visibility
2021-04-15 23:29:55 +09:00
Dean Herbert
5b06a68b93
Merge pull request #12330 from Cublibre/master
...
Send a warning notification if device is unplugged and at low battery
2021-04-15 19:21:04 +09:00
smoogipoo
fe3ba2b80e
Implement IAdjustableClock on GameplayClockContainer
2021-04-15 19:07:25 +09:00
smoogipoo
7993c2b880
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-15 14:23:12 +09:00
smoogipoo
f56125bd68
Update clock from base class
2021-04-14 21:15:14 +09:00
smoogipoo
54643f53e3
Merge branch 'gcc-abstraction' into multiplayer-spectator-screen
2021-04-14 19:56:58 +09:00
smoogipoo
18c69cdaf7
Split out files
2021-04-14 19:50:22 +09:00
smoogipoo
b53b30c1a9
Fix incorrect offset due to another intermediate Decoupleable clock
2021-04-14 19:33:55 +09:00
smoogipoo
2935f87e70
Fix IsPaused not being bound
2021-04-14 18:29:34 +09:00
smoogipoo
1aa36818df
Abstractify GameplayClockContainer
2021-04-14 17:47:11 +09:00
Dean Herbert
7654df94f6
Merge pull request #12395 from frenzibyte/fix-cinema-ignore-settings
...
Fix beatmap background displayed if storyboard is hidden on "Cinema" mod
2021-04-14 14:31:03 +09:00
Dean Herbert
6044083cf7
Speed up the fade of the HUD a touch
2021-04-14 14:25:16 +09:00
Dean Herbert
65a1270f9a
Hide top-right HUD overlay elements as part of HUD visibility
2021-04-14 14:16:18 +09:00
smoogipoo
5b53a2b211
Merge branch 'master' into multiplayer-spectator-screen
2021-04-13 20:07:56 +09:00
Dean Herbert
2c1f20a38f
Merge branch 'master' into fix-editor-alt-scroll
2021-04-13 19:36:25 +09:00
Salman Ahmed
36510309d1
Merge EnableUserDim
and IgnoreUserSettings
to one bindable
2021-04-13 10:58:56 +03:00
Dean Herbert
273099d53c
Don't store online IDs from score submission responses for now
...
Closes remaining portion of https://github.com/ppy/osu/issues/12372 .
2021-04-13 14:31:44 +09:00
Christine Chen
f66306a81a
Remove IsLowBattery
2021-04-12 11:15:24 -04:00
Christine Chen
43b97fe0ad
Refactor PowerStatus (now called BatteryInfo)
2021-04-12 10:52:52 -04:00
smoogipoo
c531e38a36
Rework to create a derived tracked user data instead
2021-04-12 22:00:27 +09:00
Dean Herbert
0eab9daf13
Update existing overlay containers to not block scroll input
2021-04-12 16:41:36 +09:00
Salman Ahmed
1fd4cb8963
Merge branch 'master' into master
2021-04-11 10:19:16 +03:00
Christine Chen
08311abc5e
Remove setters, cache CreatePowerStatus() and use a dummy LocalPowerStatus class in test scene
2021-04-10 00:00:21 -04:00
smoogipoo
950e4e05ef
Merge branch 'multiplayer-spectator-leaderboard' into multiplayer-spectator-screen
2021-04-09 18:30:21 +09:00
smoogipoo
7cbc8f2695
Add some xmldocs
2021-04-09 18:29:02 +09:00
smoogipoo
bb15baf118
Add initial multiplayer spectator leaderboard
2021-04-09 17:31:14 +09:00
Dean Herbert
51fee79ef1
Fix scores not being accepted due to missing ruleset ID
2021-04-09 15:18:02 +09:00
Christine Chen
59d13b0dd3
Fixed indentation
...
sorry about the style fixes... I'm using JetBrains Rider from now on.
2021-04-08 21:53:42 -04:00
Christine Chen
493c095535
Fixed code style
2021-04-08 20:28:23 -04:00
Christine Chen
6bccb3aab6
Use DI to implement battery detection, add BatteryCutoff property
...
- Removed the Xamarin.Essentials package from osu.Game and added it to osu.iOS and osu.Android only.
- iOS and Android implementations use Xamarin.Essentials.Battery, while the Desktop implementation
only returns 100% battery for now.
- Added a BatteryCutoff property to PowerStatus so it can be different for each platform (default 20%, 25% on iOS)
2021-04-08 19:55:11 -04:00
smoogipoo
709016f0d6
Add initial multiplayer screen implementation
2021-04-08 22:07:00 +09:00
Christine Chen
0a6baf670e
Send a warning notification if device is unplugged and low battery
...
- Uses Xamarin.Essentials in osu.Game.PlayerLoader to check battery level
- Encapsulated battery checking in the public BatteryManager class so battery level and plugged in status can be accessed and edited in TestPlayerLoader
- When checking battery level, catch NotImplementedException thrown by Xamarin.Essentials.Battery on non-mobile platforms
- Added visual unit tests for battery notification
To mock battery status and level, we had to define a batteryManager object in TestPlayerLoader and add a new function ResetPlayerWithBattery()
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-07 15:56:50 -04:00
smoogipoo
1f4c17b8f8
Apply changes to AllowScreenSuspension bindable
2021-04-07 21:20:44 +09:00
smoogipoo
cd53074941
Schedule spectator callbacks
2021-04-02 21:27:20 +09:00
smoogipoo
9bc2a486e0
Make SoloSpectator use the new SpectatorScreen class
2021-04-01 22:10:17 +09:00
smoogipoo
9e95441aa6
Rename Spectator -> SoloSpectator
2021-04-01 22:08:52 +09:00
Dean Herbert
0c53b4eb93
Fix wrong counting and add test
2021-03-31 14:09:39 +09:00
Dean Herbert
e0c61f4dc5
Fix retry count not updating correctly
...
Regressed with changes to player reference retention logic. Could add a
test but the logic is so local now it seems quite redundant.
2021-03-31 13:57:58 +09:00
Salman Ahmed
6aa0c9d8fd
Merge branch 'master' into legacy-sprite-text-fonts
2021-03-25 14:52:01 +03:00
Dean Herbert
4269cb7124
Extract majority of token retrieval code out of LoadComponentAsync for legibility
2021-03-25 13:48:41 +09:00
Dean Herbert
d55324585d
Change RoomSubmittingPlayer's request implementation to return null on RoomID missing, rather than silently succeeding
2021-03-24 13:23:23 +09:00
Dean Herbert
84b2f9a848
Make token private
2021-03-24 13:20:44 +09:00
Dean Herbert
a0c6c4da35
Rename and refactor token request process to be easier to understand
2021-03-24 13:17:29 +09:00
Dean Herbert
e372e355ef
Reorder overrides in SoloPlayer to better follow chronological request order
2021-03-24 13:12:51 +09:00
Dean Herbert
8bed7748d6
Rename token request method to avoid double Request terminology
2021-03-24 13:02:37 +09:00
Dean Herbert
a1c35677ef
Add more xmldoc
2021-03-24 13:02:17 +09:00
Dean Herbert
e649a330a4
Implement SoloPlayer's request construction
2021-03-23 18:23:25 +09:00
Dean Herbert
242b847516
Add flow for allowing gameplay to continue even when an error occurs with token retrieval
2021-03-23 18:23:25 +09:00
Dean Herbert
3cd8bf2d7f
Move token request construction to LoadAsyncComplete to better allow DI usage
2021-03-23 18:20:55 +09:00
Dean Herbert
571124669d
Remove all references to "score submission" from Player
2021-03-23 18:20:55 +09:00
Dean Herbert
194b2d05d3
Update SoloPlayer to derive SubmittingPlayer
2021-03-23 18:20:55 +09:00
Dean Herbert
12f050264a
Further split out a player class which submits to "rooms"
2021-03-23 18:20:55 +09:00
Dean Herbert
7045fce555
Move score submission logic in general out to its own Player type
2021-03-23 18:20:55 +09:00
Dean Herbert
6cb14e91c9
Make Player abstract and introduce SoloPlayer
2021-03-23 18:18:49 +09:00
Salman Ahmed
43c1e1d217
Update existing usages
...
Resolve post-conflict issues
2021-03-13 06:09:07 +03:00
Dean Herbert
b1cd01ceb8
Apply ConfigureAwait changes to game side
2021-03-08 14:36:35 +09:00
Dean Herbert
503f29609a
Also set additive mode to match stable
2021-03-07 23:40:09 +09:00
Joehu
3e4dfdb675
Fix pop out count being above displayed count on legacy combo counter
2021-03-06 20:37:27 -08:00
Dean Herbert
4fd8501c86
Remove unnecessary using (underlying enumerator change)
2021-02-26 20:03:03 +09:00
Dean Herbert
90e8308716
Merge branch 'master' into localisation-refactor-framework
2021-02-25 17:28:55 +09:00
Dean Herbert
e82eaffaed
Flip order back to original for romanisable strings
2021-02-25 14:14:07 +09:00
Dean Herbert
6a5c6febc5
Add inline comment explaining the retry loop
2021-02-23 13:23:32 +09:00
Salman Ahmed
5493c55da7
Fix silly mistake
2021-02-22 16:59:35 +03:00
Salman Ahmed
5e9040c291
Use "pausing supported" conditional instead
2021-02-22 16:26:35 +03:00
Dean Herbert
8a97e2e28d
Update LocalisedString usages to RomanisedString
2021-02-22 19:01:42 +09:00
Dean Herbert
1fd76ea3fb
Apply changes to UI components overriding functions with changing signatures
2021-02-22 19:01:42 +09:00
Salman Ahmed
6bac83964a
Merge branch 'master' into fix-pofl-on-cooldown
2021-02-22 10:03:27 +03:00
Dean Herbert
38a2124921
Support instant exit if pausing is not allowed in the current game mode
2021-02-20 14:26:50 +09:00
Dan Balasescu
52372fe50d
Merge pull request #11713 from peppy/fix-error-exit-during-results-transition
...
Fix a potential crash when exiting play during the results screen transition
2021-02-19 18:39:21 +09:00
Salman Ahmed
0771154dd2
Make PauseCooldownActive
protected and expose on test class
2021-02-19 11:42:30 +03:00
Salman Ahmed
ddd1dcff88
Attempt pausing every single frame
2021-02-19 11:33:26 +03:00
Dean Herbert
82cc06ca57
Fix new logic not considering fail overlay correctly
2021-02-19 17:26:54 +09:00
Dean Herbert
4c214b74ce
Merge branch 'master' into fix-error-exit-during-results-transition
2021-02-19 17:13:55 +09:00
Salman Ahmed
4436585aa4
Keep attempting to pause gameplay while window not active
2021-02-19 10:46:32 +03:00
Salman Ahmed
772471a6d8
Add failing test case
2021-02-19 10:46:31 +03:00
Dean Herbert
691cfa5bc3
Add expanded/compact display modes for GameplayLeaderboard
2021-02-19 16:46:30 +09:00
Dean Herbert
ee9e6fff40
Add bindable flow for expanded leaderboard state
2021-02-19 15:09:41 +09:00
Dean Herbert
3208b2c5bf
Fix potential nullref if mods are never set
2021-02-17 23:13:51 +09:00
Dean Herbert
403536ef80
Fix ModDisplay potentially being operated on before loaded completely
...
Closes https://github.com/ppy/osu/issues/11810 .
2021-02-17 21:11:46 +09:00
Dean Herbert
9cba350337
Refactor again to better cover cases where the pause dialog should definitely be shown
2021-02-15 15:57:36 +09:00
Dean Herbert
1aea840504
Add missing return in early exit scenario (MakeCurrent isn't compatible with the following Exit)
2021-02-15 15:03:12 +09:00
Dean Herbert
2b69c7b325
Fix incorrect order of operation in pause blocking logic
2021-02-15 14:24:08 +09:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dean Herbert
2c052d70e8
Only trigger pause cooldown on pause (not exit)
2021-02-09 17:29:18 +09:00
Dean Herbert
cba116ff09
Fix incorrect call parameter for quick exit
2021-02-09 17:28:57 +09:00
Dean Herbert
61b9539864
Fix regression in quick exit logic
2021-02-09 17:14:16 +09:00
Dean Herbert
5bd4f74ddf
Fix a potential crash when exiting play during the results screen transition
2021-02-09 16:24:29 +09:00
Dean Herbert
2cac373365
Merge pull request #11706 from smoogipoo/fix-failing-test
...
Fix failing test
2021-02-08 20:57:38 +09:00
Dean Herbert
156f5bd5df
Add newline between statements
2021-02-08 20:05:16 +09:00
smoogipoo
19368f87fb
Fix failing test
2021-02-08 19:59:07 +09:00
smoogipoo
69ca440ae5
Merge branch 'master' into more-accurate-most-common-bpm
2021-02-08 18:40:58 +09:00
Dean Herbert
9e0724b138
Remove unnecessary double resolution of OsuGame
2021-02-08 15:58:41 +09:00
Dean Herbert
93f1a3c1bf
Merge branch 'master' into instant-pause-on-focus-loss
2021-02-08 14:31:40 +09:00
Joehu
d74a1437be
Fix player loader metadata not being centred
2021-02-07 15:14:08 -08:00
Salman Ahmed
d0ca2b99a8
Remove unnecessary injected dependency
2021-02-06 20:57:01 +03:00
Salman Ahmed
40ddccf0c7
Do not consider replays for "pause on focus lost"
...
Replays are not pausable as can be seen in the `canPause` check.
2021-02-06 20:56:08 +03:00
Salman Ahmed
c9db0bf886
Call break time update when loaded
2021-02-06 20:54:13 +03:00
Salman Ahmed
f29938e15d
Make last binding game activity more sensible
2021-02-05 20:39:57 +03:00
Salman Ahmed
8d18c7e929
Fix BreakTracker.IsBreakTime
not updated properly on breaks set
...
Causes a pause from focus lose when playing a beatmap that has a break section at the beginning, due to `IsBreakTime` incorrectly set to `false`
2021-02-05 10:28:35 +03:00
Salman Ahmed
e1789c29b1
Use Pause()
instead of performUserRequestedExit()
to avoid unexpected operations
2021-02-05 10:28:13 +03:00
Salman Ahmed
730e66f0ee
Make pausing on window focus lose instant
2021-02-05 09:07:59 +03:00
Dean Herbert
328bd191d4
Merge pull request #11561 from Mysfit/fix-storyboard-samples
...
Fix storyboard samples continuing to play when the beatmap is paused or intro is skipped
2021-02-01 17:48:08 +09:00
Dean Herbert
f054b38105
Merge branch 'master' into revert-beatmap-controlpointinfo-cloning
2021-01-25 18:25:53 +09:00
Dean Herbert
91ce3df3a9
Bind MultiplayerGameplayLeaderboard to player updates later in load process
2021-01-25 17:44:01 +09:00
Mysfit
b220939650
Fix storyboard samples continuing to play when the beatmap is paused or the intro is skipped.
2021-01-21 17:10:11 -05:00
smoogipoo
de9d075f94
Initial sample + samplechannel rework
2021-01-19 17:11:40 +09:00
Dean Herbert
d6e6b4bbee
Revert forced cloning of ControlPointInfo
...
This reverts commit 3c3e860dbc
.
Closes https://github.com/ppy/osu/issues/11491 .
2021-01-15 17:34:59 +09:00
smoogipoo
c6e9a6cd5a
Make most common BPM more accurate
2021-01-15 14:28:49 +09:00
Mysfit
5f10bcce02
Added beatmap colour settings checkbox and associated tests.
2021-01-13 00:09:22 -05:00
Bartłomiej Dach
25b4628672
Merge branch 'master' into fix-transform-mutation-from-background
2021-01-06 11:04:51 +01:00
Bartłomiej Dach
2b253f6d01
Remove now-unused fields & locals
2021-01-05 22:56:53 +01:00
Dean Herbert
54982dcdd7
Refactor LoadingLayer to avoid applying effects to external drawables
...
In theory this seemed like a good idea (and an optimisation in some
cases, due to lower fill rate), but in practice this leads to weird edge
cases.
This aims to do away with the operations on external drawables by
applying a dim to the area behind the `LoadingLayer` when required.
I went over each usage and ensured they look as good or better than
previously.
The specific bad usage here was the restoration of the colour on dispose
(if the `LoadingLayer` was disposed in a still-visible state).
I'm aware that the `BeatmapListingOverlay` will now dim completely during
load. I think this is fine for the time being.
2021-01-05 17:31:45 +09:00
Dean Herbert
b3f08b29ca
Ensure that all changes to screen backgrounds are on the correct thread
2021-01-05 15:22:50 +09:00
Dean Herbert
20d04d6933
Fix Storyboard's FirstEventTime not finding the true earliest event
2021-01-04 15:16:01 +09:00
mcendu
17abe90c27
move SkinnableHealthDisplay
...
Similar components are in osu.Game.Screens.Play.HUD while this is not
2020-12-31 20:23:13 +08:00
Dean Herbert
e3a41f6118
Rename variable to make more sense
...
It needs to be explicitly stated that the users in this list are related
to the *joined* room. Especially since it's sharing its variable name
with `SpectatorStreamingClient` where it has the opposite meaning (is a
list of *globally* playing players).
2020-12-29 14:27:35 +09:00
Bartłomiej Dach
a9822800fc
Add more null hinting in GameplayLeaderboard
2020-12-28 13:00:05 +01:00
Dean Herbert
447a55ce11
Fix incorrect null handling in GameplayLeaderboard
2020-12-28 20:16:53 +09:00
Bartłomiej Dach
2ff49f4758
Merge branch 'master' into fix-quit-user-showing-in-leaderboard
2020-12-27 13:02:40 +01:00
Bartłomiej Dach
f75dccc9e4
Explicitly use discard in value changed callback
2020-12-27 13:00:27 +01:00
Bartłomiej Dach
6b6b1514e2
Rename method to be less misleading
...
As it doesn't only change colour, but also width.
2020-12-27 12:58:37 +01:00
Dean Herbert
1b34f2115f
Remove dignostics using
2020-12-27 16:57:23 +09:00
Dean Herbert
d14a8d24b5
Remove assert for now
2020-12-27 16:42:20 +09:00
Dean Herbert
fa0576f47f
Move quit colour change implementation to updateColour for better coverage
2020-12-27 13:40:02 +09:00
Bartłomiej Dach
15948de2f0
Fix gameplay leaderboard avatars being clickable
2020-12-26 14:35:14 +01:00
Dean Herbert
71dcbeaf7c
Mark user as quit visually on the leaderboard
2020-12-26 12:11:09 +09:00
Dean Herbert
116acc2b5e
Add flow for marking user as quit for further handling
2020-12-26 11:35:51 +09:00
Dean Herbert
ff57562956
Fix multiplayer leaderboard not unsubscribing from quit users
2020-12-26 11:35:31 +09:00
Bartłomiej Dach
83fb7c7a1a
Re-namespace all files in OnlinePlay directory
2020-12-25 16:50:09 +01:00