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