1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 10:27:35 +08:00
Commit Graph

1071 Commits

Author SHA1 Message Date
Dean Herbert
0200ef1d48 Make delegate firing more safe to being set later than BDL 2022-07-15 19:06:44 +09:00
Dean Herbert
ab6665d88c
Merge branch 'master' into Save-Score-Failed 2022-07-15 18:02:58 +09:00
Dean Herbert
f3a6e646a6 Merge branch 'master' into Save-Score-Failed 2022-07-08 18:32:13 +09:00
Dean Herbert
9d730f8440 Fix custom rulesets not importing scores at all
Replaces the error with the ability to import, minus replays.

Closes https://github.com/ppy/osu/issues/17350 (arguably, but let's go with it for now).
2022-07-07 14:49:23 +09:00
cdwcgt
fd0d8b1ce3
Add button state, fix async issues, watch replay method
Most borrowed from `ReplayDownloadButton`
2022-06-29 22:50:47 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
cdwcgt
f2eb7e0551
Use better design and fix some problem
Let saveReplay async but still void
Make failed score's rank = F
2022-06-21 19:06:38 +08:00
cdwcgt
43ead5820a
deal with test 2022-06-21 00:54:50 +09:00
cdwcgt
9a6f4ef76d
Save score button on failed screen 2022-06-19 23:59:37 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
be2b4e68b9 Don't play player exit sound when restarting 2022-06-15 17:49:18 +09:00
Dan Balasescu
6e450b7350 Explicitly handle operation cancelled exceptions 2022-06-09 14:35:53 +09:00
Dan Balasescu
ec03dc16db Don't trigger notification when user quit 2022-06-09 14:13:14 +09:00
Dan Balasescu
bfde334e77 Allow beatmaps to load endlessly when entering Player 2022-06-09 14:03:21 +09:00
Dan Balasescu
a052e09ac3 Send ScoreProcessor statistics in SpectatorState 2022-05-30 19:26:26 +09:00
Dan Balasescu
c97b477485 Fix inverted operation order 2022-05-30 19:11:54 +09:00
Bartłomiej Dach
cbd1169495
Move cache declarations of ISamplePlaybackDisabler to interface 2022-05-08 10:38:58 +02:00
Bartłomiej Dach
9ae019eb39
Move ISamplePlaybackDisabler to more general namespace 2022-05-08 10:38:58 +02:00
Dean Herbert
8ab3636f87 Change conditions for HUD being shown to include pause/fail states
As proposed in https://github.com/ppy/osu/discussions/17975. Feels pretty good to me, and probably how it should have been implemented from the start.
2022-04-26 12:09:21 +09:00
Dean Herbert
832d37b2c2 Update screen transition events to use new event args 2022-04-22 00:52:44 +09:00
Dean Herbert
d4286255a0 Expose and set GameplayStartTime directly, rather than via Reset parameter 2022-04-13 13:58:44 +09:00
Dean Herbert
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