1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 06:52:56 +08:00
Commit Graph

1051 Commits

Author SHA1 Message Date
Dean Herbert
d4286255a0 Expose and set GameplayStartTime directly, rather than via Reset parameter 2022-04-13 13:58:44 +09:00
Dean Herbert
282fccb4c8
Fix typo in xmldoc
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-04-13 12:24:47 +09:00
Dean Herbert
a4a0241800 Use a more explicit flow to set and reset GameplayClockContainer start time 2022-03-17 20:57:30 +09:00
Dean Herbert
2eb3365f46 Fix regressing issues when attempting to exit Player after an unsuccessful beatmap load 2022-03-09 17:57:58 +09:00
Dean Herbert
1ee0be5e39 Ensure gameplay can't start when an UnknownMod is present 2022-03-09 17:57:58 +09:00
Dean Herbert
b0688cc6dd Merge branch 'master' into fix-storyboard-sample-rate 2022-03-04 12:04:49 +09:00
Salman Ahmed
cbb8dc2891 Fix storyboard samples rate not adjusted from actual gameplay mods 2022-03-02 20:56:18 +03:00
Dean Herbert
350b0b488c TODO: Get score from previous play session for further analysis 2022-03-01 18:44:15 +09:00
Dan Balasescu
6d3bc005ea Merge branch 'master' into spectator-state-rework 2022-02-02 18:57:04 +09:00
Bartłomiej Dach
07d09b3520
Remove unused parameter from createGameplayComponents()
No longer used since 136843c8e4.
2022-02-01 21:35:41 +01:00
Dan Balasescu
41007169f7 Give SpectatorState a user state 2022-02-01 21:51:05 +09:00
Dan Balasescu
38e075c522 Add HasQuit gameplay state 2022-02-01 14:47:19 +09:00
Dan Balasescu
781cb9f18d Move HasPassed/HasFailed into GameplayState 2022-02-01 14:46:24 +09:00
Dan Balasescu
0641264a11 Merge branch 'master' into spectator-consistency-frames 2022-02-01 14:35:30 +09:00
Dan Balasescu
4fb565e15f Reset ScoreProcessor from statistics replay frames 2022-01-31 21:32:56 +09:00
Salman Ahmed
4f4f60248f Add failing test case 2022-01-30 01:46:10 +03:00
Dean Herbert
778d2a71b4 Remove Task from the inner-most Import method in RealmArchiveModelImporter
One of my pending work items for post-realm merge.

The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.

Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dean Herbert
34dbde6023 Only copy across Hash and ID so statistics aren't lost 2022-01-14 18:22:52 +09:00
Dean Herbert
916b591b1b Fix watch replay button not working immediately after playing 2022-01-14 18:03:06 +09:00
Dean Herbert
2b8706b6ce Detach and reattach scores to make work 2022-01-12 17:00:16 +09:00
Dean Herbert
53792811b2 more fixes (almost compiles, except ruleset and manager) 2022-01-12 16:57:27 +09:00
Dean Herbert
b8cd3cdbbc Various updates to ruleset and primary key usages to move closer to realm support 2022-01-12 16:57:13 +09:00
Dean Herbert
00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert
73b40e6833 Replace usage of .Result with .WaitSafelyForResult 2022-01-04 11:51:41 +09:00
Dan Balasescu
a43cc20ae2 Apply changes to GameplayCompleted from reviews 2021-12-24 21:58:20 +09:00
Dan Balasescu
727335dcad Improve reliability of exiting gameplay 2021-12-24 14:23:09 +09:00
Dean Herbert
cac684c044 Improve appearance of player-wide background after failing with low background dim 2021-12-13 14:53:11 +09:00
Dean Herbert
f7c5a3f506 Use similar method of consuming OnlineID as done in beatmap classes 2021-12-10 18:34:31 +09:00
Dean Herbert
dbb08f7d46 Use OnlineID for set operations 2021-12-10 16:11:48 +09:00
Dean Herbert
6b73672403 Stop Player from blocking volume adjust when Alt it held
Similar case to what we already have in `OsuScrollContainer`, so there
is precedent for handling this locally in this fashion.
2021-12-03 17:18:07 +09:00
Dean Herbert
7c2e79f911 Update all simple cases of switching to IWorkingBeatmap 2021-11-17 20:56:57 +09:00
Bartłomiej Dach
8db2fc439d
Change ruleset ID assert in player to null-check 2021-10-18 23:45:06 +02:00
Bartłomiej Dach
874decb3cd
Replace spectator-local fix for wrong ruleset ID with player-global consistency check 2021-10-16 16:10:42 +02:00
Dean Herbert
7a5a612896 Move retry and exit hotkey overlays to same depth / container 2021-10-16 02:29:45 +09:00
Dean Herbert
6f947cacbd Fix test failures 2021-10-15 21:22:38 +09:00
Dean Herbert
b08743342b Fix incorrect nesting 2021-10-15 19:35:08 +09:00
Dean Herbert
66f3370a19 Add new fail animation to better match new sound effects 2021-10-15 19:14:59 +09:00
Dean Herbert
3d6602b8df Ensure FailAnimation is disposed synchronously to avoid test failures 2021-10-11 14:05:31 +09:00
Dean Herbert
436ead421a Move low pass fail effect to FailAnimation 2021-10-08 12:27:04 +09:00
Dean Herbert
da96cc73d8 Fix dual specification of SuspensionHandler and move fields around slightly 2021-10-07 23:40:47 +09:00
Dean Herbert
310d7965b6 Merge branch 'master' into more-filter-effects 2021-10-07 20:52:38 +09:00
Jamie Taylor
cc209f0f2d
Add filter effect to fail sequence 2021-10-07 17:55:30 +09:00
Dean Herbert
5f129ae33c Remove local overridden storage of Mods in Player
Not required and only causing headaches. Accessing mods should now be
done via `GameplayState`.

Closes #14912.
2021-10-07 14:53:39 +09:00
Dean Herbert
7176dc95e5 Revert Player.Score to protected 2021-10-05 14:55:40 +09:00
Dean Herbert
e19be8ebe4 Make GameplayState.Score immutable 2021-10-05 14:55:40 +09:00
smoogipoo
d1e7191f94 Pass score into GameplayState 2021-10-04 20:59:51 +09:00
smoogipoo
5aae673240 Use GameplayState 2021-10-04 20:33:54 +09:00
smoogipoo
031c5a441e Merge branch 'master' into realtime-pp-display 2021-10-04 20:19:37 +09:00
Dean Herbert
853cf6feaa Rename last remaining BeatmapInfo Beatmap usage 2021-10-04 17:35:53 +09:00
Dean Herbert
32afd3f426 Replace all basic usages 2021-10-02 02:22:23 +09:00
smoogipoo
d0081908c5 Make Score internal 2021-10-01 20:52:48 +09:00
smoogipoo
84bddf0885 Initial PP counter implementation 2021-09-30 17:00:24 +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
b9193aae6d Make IOsuScreen.AllowTrackAdjustments nullable
Allows for inheriting value from the previous screen if undefined
2021-09-14 17:37:57 +03:00
smoogipoo
956c1cc216 Merge branch 'master' into activity-on-multiplayer-screens 2021-08-24 12:33:34 +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
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
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
Henry Lin
89e8296eb1 Reset all types of adjustments in MusicController; Rename AllowRateAdjustments to AllowTrackAdjustments 2021-07-29 15:39:26 +08: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
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
Dean Herbert
74c63e15be Mark score failed on fail and exit 2021-07-01 17:48:09 +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
1b0aadcc6f Merge branch 'master' into transformers-per-skin 2021-06-22 16:03:15 +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
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
Dean Herbert
a7ef0173e9 Add safety to ensure background is correct tint when entering gameplay 2021-06-09 17:07:28 +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
420df124b5 Add framestable-bypassing seek for spectator 2021-06-03 17:27:21 +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
14570b6fb1 Merge branch 'master' into autoplay-pause-support 2021-06-01 14:19:21 +09:00
smoogipoo
d2d0896298 Expose GameplayBeatmap and GameplayRuleset from Player 2021-05-31 19:22:20 +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
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
smoogipoo
895eb14c5a Forcefully end playing to fix test failures 2021-05-21 14:09:30 +09:00
smoogipoo
c6160d5304 Only ignore online score id for database import 2021-05-18 21:17:41 +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
b80768b44a Hook up seeking flow 2021-05-17 18:52:56 +09:00
Dean Herbert
da0913ca2d Make SongProgress a skinnable component 2021-05-17 18:52:56 +09:00
Dean Herbert
1f3ae901ce Expose DrawableRuleset for consupmtion by HUD components 2021-05-17 18:23:01 +09: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
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
Christine Chen
25312b3e88 Don't restart completion delegate on exit, revert exit behavior to lazer 2021-05-08 11:47:44 -04:00
Christine Chen
8c564a69ed Fix InvalidOperationException when exiting a map at the end 2021-05-07 21:11:03 -04:00
Dean Herbert
1cb10c2a22 Remove unnecessary binding logic from HUDOverlay 2021-05-07 17:51:46 +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
17b93361d5
Merge branch 'master' into skin-components-bind-outwards 2021-05-07 16:20:24 +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
625890381f Update ComboCounter components to use DI to attach data source 2021-05-03 17:43: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
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
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
5e82f40d67 Merge branch 'master' into gcc-abstraction 2021-04-16 20:14:53 +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
smoogipoo
1aa36818df Abstractify GameplayClockContainer 2021-04-14 17:47:11 +09:00
Salman Ahmed
36510309d1 Merge EnableUserDim and IgnoreUserSettings to one bindable 2021-04-13 10:58:56 +03:00
Dean Herbert
571124669d Remove all references to "score submission" from Player 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
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +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