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

3430 Commits

Author SHA1 Message Date
Dean Herbert
45239fc737 Update TrueGameplayRate accessing 2022-09-08 23:03:15 +09:00
Dean Herbert
d4afc3629c
Merge branch 'master' into kps 2022-09-08 23:00:36 +09:00
Dan Balasescu
9aab502adc
Merge pull request #20157 from peppy/true-gameplay-rate
Refactor `TrueGameplayRate` to account for only gameplay adjustments, no matter what
2022-09-08 19:54:32 +09:00
Dan Balasescu
4fc03998a1
Merge pull request #20189 from peppy/fix-playlist-item-download-button-visibility
Fix playlist items showing download button briefly during initial display
2022-09-08 19:47:35 +09:00
Dean Herbert
a98c6b2c1f Add comment metioning why we need to use DrawableRuleset lookup 2022-09-08 19:14:23 +09:00
Mk-56spn
07c16224d2 Fix Main file issues 2022-09-08 11:58:14 +02:00
Dean Herbert
5c2fb3e434 Simplify calculation method 2022-09-08 18:22:53 +09:00
Dan Balasescu
b559d4ecdf Rename GameplayAdjustments -> AdjustmentsFromMods 2022-09-08 17:14:06 +09:00
Dean Herbert
ed81297611 Fix playlist items showing download button briefly during initial local presence checks 2022-09-08 17:10:45 +09:00
Salman Ahmed
50923b6e5b Move track assignment below 2022-09-08 00:25:55 +03:00
Acid Chicken (硫酸鶏)
267465df18
chore(osu.Game): combine Osu.Colour.{Draw,Text}ForHitResult into OsuColour.ForHitResult 2022-09-07 23:34:46 +09:00
Dean Herbert
e6b449fe0b Fix case of zero rate calculating a zero true gameplay rate 2022-09-07 19:23:44 +09:00
Dean Herbert
fa15502384 Move full track adjustment flow inside MasterGameplayClockContainer 2022-09-07 19:12:16 +09:00
Dean Herbert
75d0deef72 Apply proposed changes to remove inheritance from MasterGameplayClockContainer 2022-09-07 17:49:05 +09:00
Dean Herbert
66c44f5913 Delegate interface to valid target 2022-09-06 22:26:46 +09:00
Dean Herbert
bc1212f4e6 Change NonGameplayAdjustments to GameplayAdjustments and convert TrueGameplayRate to extension method 2022-09-06 22:26:46 +09:00
Dean Herbert
266eb758aa Use new flow to calcaulate TrueGameplayRate 2022-09-05 23:37:49 +09:00
Dean Herbert
7084aeee05 Add method flow to reset applied adjustments 2022-09-05 23:22:38 +09:00
Dean Herbert
e33486a766 Implement IAdjustableAudioComponent in MasterGameplayClockContainer 2022-09-05 23:20:02 +09:00
Mk-56spn
aace334fb3 Fix some test issues 2022-09-05 04:49:48 +02:00
Acid Chicken (硫酸鶏)
5f0832ead7
refactor(osu.Game): separate OsuColour.ForHitResult by usage 2022-09-05 01:58:57 +09:00
Mk-56spn
0c6d8efa28 Large code refactor, Implementation of shapes option drop down 2022-09-04 17:24:12 +02:00
Mk-56spn
51061c3a12 Bug fixing and parameter adjustments 2022-09-03 01:27:22 +02:00
Mk-56spn
534c40e18e Initial version 2022-09-02 23:07:30 +02:00
Dean Herbert
bc5340e33a
Merge branch 'master' into fix_progress_bar_info 2022-09-02 18:00:35 +09:00
Dean Herbert
6a35b233e5 Merge branch 'master' into remove-dispose-updates 2022-09-01 23:03:19 +09:00
HiddenNode
4a630b5384 Implemented SizePreservingSpriteText 2022-08-31 22:05:06 +01:00
Dan Balasescu
c852c54055 Consume auto skip setting during play 2022-08-31 20:24:15 +09:00
Dan Balasescu
000412c50f
Merge pull request #20014 from peppy/fix-resume-skip-forward
Fix gameplay skipping forward during resume operation
2022-08-31 16:30:37 +09:00
Dan Balasescu
ccc08b816c
Merge pull request #20030 from peppy/notification-design-update
Update notification overlay design
2022-08-31 16:06:59 +09:00
Dean Herbert
7337d4c1aa Merge branch 'master' into kps 2022-08-31 15:41:42 +09:00
Dean Herbert
51346e0154 Fix skip button getting stuck on screen for certain beatmaps
Closes #20034.
2022-08-31 13:22:51 +09:00
Dean Herbert
09aa3e065d Move colouring to full icon content rather than background 2022-08-30 18:06:48 +09:00
Dean Herbert
27ad224f13 Remove probably unnecessary Seek on start 2022-08-30 01:21:44 +09:00
Dean Herbert
1bff540381 Remove debug changes 2022-08-29 22:14:07 +09:00
Dean Herbert
75531d2d62 Fix gameplay skipping forward during resume operation 2022-08-29 19:51:16 +09:00
Dean Herbert
105aa01e7d Update usages of RemoveInternal 2022-08-29 15:57:40 +09:00
Dan Balasescu
cf6bb3b030
Merge pull request #19958 from peppy/fix-fail-freq-stuck
Ensure fail animation sequence isn't run after the player exit sequence has started
2022-08-27 00:58:41 +09:00
Dean Herbert
b9d9bf3004
Merge pull request #19938 from frenzibyte/fix-multi-spectator-results-screen
Fix multi-spectator potentially getting stuck for passed players
2022-08-26 21:53:17 +09:00
Dean Herbert
ed0843aa84 Reword xmldoc regarding final clock source to read better 2022-08-26 16:46:22 +09:00
Dean Herbert
2c780eab5f Merge branch 'master' into fix_progress_bar_info 2022-08-26 16:14:21 +09:00
Dean Herbert
23efec6505 Fix naming and comment typos 2022-08-26 15:57:36 +09:00
Dean Herbert
9862b79b47 Fix typo in long comment 2022-08-26 15:20:09 +09:00
HiddenNode
d98357aa57 Made text inside SongProgressInfo scale. 2022-08-26 01:30:44 +01:00
Dean Herbert
a6ed589db4 Remove guard against RemoveFilters running more than once
It turns out this is required to remove some filters immediate, and some
later. Weird.
2022-08-25 14:47:33 +09:00
Dean Herbert
ad3dd1c700 Fix a couple of oversights regarding track nullability 2022-08-25 14:45:00 +09:00
Dean Herbert
ec60e16439 Apply NRT to FailAnimation 2022-08-25 14:35:42 +09:00
Dean Herbert
8f4a953d11 Ensure fail animation sequence isn't run after the player exit sequence has started 2022-08-25 14:26:42 +09:00
Dean Herbert
4c45f7d938 Ensure FailAnimation can't be Started after filters are already removed 2022-08-25 14:26:20 +09:00
Ryuki
5cddc7ed1f
Code cleanup (CPS) 2022-08-24 17:13:23 +02:00
Dean Herbert
f3847b90fd Tidy up attach logic 2022-08-24 19:36:01 +09:00
Dean Herbert
5129716612 Merge branch 'master' into kps 2022-08-24 18:18:45 +09:00
Salman Ahmed
8f4a2b4936 Separate passed/failed states from calling EndGameplay 2022-08-24 10:36:13 +03:00
Dean Herbert
29fed0c4a3 Avoid setting the source clock until gameplay is ready to start
Without this change, the audio track may audibly seek during load
proceedings.
2022-08-23 18:34:17 +09:00
Dean Herbert
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
HiddenNode
1098e24c40 Improved UprightUnscaledContainer 2022-08-22 14:24:52 +01:00
Dean Herbert
489e172a76 Simplify track start/stop/paused tracking 2022-08-22 19:43:18 +09:00
Dean Herbert
058d67f8e8
Merge pull request #19695 from naoei/ruleset-localization
Change most ruleset-accessible string types to Localisable strings
2022-08-22 16:13:23 +09:00
Dean Herbert
e6b669db8e Elaborate with example of GameplayClockContainer managing its own Stop state 2022-08-22 14:14:44 +09:00
Dean Herbert
af2e82d7d5 Move operation of setting GameplayClockContainer.StartTime to Reset call 2022-08-22 14:11:06 +09:00
Ryuki
5cf54a788a
Code cleanup for CPS counter 2022-08-21 16:00:58 +02:00
Nao
189a407cb1
Merge branch 'master' into ruleset-localization 2022-08-20 21:39:10 -04:00
Dean Herbert
8566e93c72 Guard against SubmittingPlayer potentially getting stuck waiting on request forever 2022-08-20 17:19:17 +09:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
7bf318541c Reword comment to hopefully read better 2022-08-19 20:57:55 +09:00
Dean Herbert
3f0da14065 Delay start operation by one frame to allow children to see initial start time 2022-08-19 17:39:51 +09:00
Dean Herbert
3eb1cda6aa Reorganise call order of Start / Reset to make more sense 2022-08-19 01:46:36 +09:00
Ryuki
3de35a1518
Update calculator and tests to match changes on clocks 2022-08-18 18:40:02 +02:00
Dean Herbert
1d774f3f12 Remove redundant ProcessFrame calls
Of note, I'm not sure whether the `IsPaused` check was meaningful, but
it's not reimplemented in the new `FramedBeatmapClock`.
2022-08-19 01:39:02 +09:00
Dean Herbert
7bc96431a7 Remove unnecessary virtual spec from GameplayClockContainer.Seek 2022-08-19 01:39:01 +09:00
Dean Herbert
43879633db Ensure setting a StartTime on a GameplayClockContainer always resets to the new time 2022-08-18 18:54:10 +09:00
Dean Herbert
343efa1d11 Split OffsetCorrectionClock out of MasterGameplayClockContainer 2022-08-18 18:54:10 +09:00
Dean Herbert
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
Dean Herbert
6003afafc7 Use FramedBeatmapClock in GameplayClockContainer 2022-08-18 18:54:10 +09:00
Dean Herbert
9735728cf6 Reverse conditionals to better define intent in addSourceClockAdjustments 2022-08-18 15:08:09 +09:00
Dean Herbert
20256aad11 Merge branch 'master' into no-gameplay-clock 2022-08-17 15:21:20 +09:00
Dean Herbert
63819648df Fix up flow of actual skip operation 2022-08-16 14:40:02 +09:00
Dean Herbert
9a1a7bae89 Make test actually test things 2022-08-16 14:40:02 +09:00
Dean Herbert
6761f869f9 Modify flow to avoid weird bindable and value resetting 2022-08-16 14:17:35 +09:00
Dean Herbert
c9baadcf88 Merge branch 'master' into improve_retry_behaviour 2022-08-16 13:06:04 +09:00
Dean Herbert
61a8873266 Ensure GameplayClockContainer's FramedClock is always non-null 2022-08-15 20:22:36 +09:00
Dean Herbert
1696a905ba Reduce exposed properties in GameplayClockContainer 2022-08-15 20:22:36 +09:00
Dean Herbert
704568ae3b Remove remaining usage of GameplayClock 2022-08-15 20:22:36 +09:00
Dean Herbert
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
Dean Herbert
cc982d374c Cache self rather than GameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
c5f8529d20 Mark unused methods as NotImplemented for safety 2022-08-15 18:30:53 +09:00
Dean Herbert
f81c7644b4 Make GameplayClockContainer also an IGameplayClock and expose to remaining tests 2022-08-15 18:30:53 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
6d78218142 Update usages of GameplayClockContainer.GameplayClock to access properties directly 2022-08-15 18:08:49 +09:00
Dean Herbert
224f3eaa84 Make GameplayClockContainer non-abstract and use in MultiSpectatorPlayer 2022-08-15 18:08:49 +09:00
Dean Herbert
623e90a7b2 Fix div-by-zero in SongProgress when no object duration could be calculated 2022-08-15 15:05:35 +09:00
Ryuki
2aa3a1b50d
Rename all "KeysPerSecond" usages to "ClicksPerSecond" 2022-08-14 20:12:11 +02:00
Ryuki
9dc806506e
Make ActionListener and KeysPerSecondCalculator not rely on events to add timestamps 2022-08-14 19:31:14 +02:00
Ryuki
d5f10cbb9d
Revert 787dee24 and initialize calculator in HUDOverlay 2022-08-14 18:53:00 +02:00
Ryuki
e08f71797e
Change displayed metric from "KPS" to "clicks/s" 2022-08-13 04:27:26 +02:00
Ryuki
9b252b1d81
Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
Ryuki
d29cba80e9
Remove useless comment in KeysPerSecondCounter 2022-08-11 11:01:16 +02:00
Ryuki
787dee249d
Move KeysPerSecondCalculator instantiation from HUDOverlay to Player
This prevents messing with *future* Skin (de)serialization
2022-08-11 10:37:16 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage 2022-08-11 10:01:39 +02:00
Ryuki
0a94fb4039
Make KPS counter strictly depending only on KPS calculator
`KeysPerSecondCounter` now depends on `KeysPerSecondCalculator` via the
`BackgroundDependencyLoaderAttribute` method, making it appear only in a
gameplay context without requiring `GameplayClock` without using it.
2022-08-11 00:46:39 +02:00
Ryuki
46e372cb99
Add more readiness checks in KeysPerSecondCalculator 2022-08-11 00:43:15 +02:00
Ryuki
9e80d3f71c
Re-adjust timespan conditions in KeysPerSecondCalculator 2022-08-11 00:42:22 +02:00
naoei
8cb2e11766 Change most ruleset-accessible string types to Localisable strings 2022-08-10 15:51:11 -04:00
Dean Herbert
a5081826b7 Handle cancellation at more points during Player initialisation
As discussed in discord, this will help avoid null references during
cancellation which can otherwise be quite confusing to debug.
2022-08-09 23:25:19 +09:00
Ryuki
b52a07c16a
Use DI to provide dependencies for KPS Calculator and improve input
gathering

KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it
is now cached for `KeysPerSecondCounter`s to resolve it. This also
allows to make an "Attach" flow like `KeyCounter`.
2022-08-08 21:54:06 +02:00
BlauFx
0afa3a5ec8
Fix xml doc 2022-08-08 21:20:09 +02:00
BlauFx
f6e65cf1af
Improve implementation 2022-08-08 20:53:05 +02:00
BlauFx
fac2596eee
Change type from BindableBool to IBindable<bool> 2022-08-08 13:38:52 +02:00
BlauFx
cd68134565
Call skip method directly 2022-08-08 13:10:28 +02:00
HiddenNode
ed86255e2b Use UprightUnscaledContainer instead of KeepUprightAndUnscaled 2022-08-07 13:20:22 +01:00
BlauFx
bb344e064f
Add xml docs 2022-08-07 13:31:26 +02:00
BlauFx
09230304a4
Improve implementation 2022-08-07 13:20:29 +02:00
Ryuki
b2557a8d2d
Refactor KPS
- Remove '#nullable disable' in KeysPerSecondCalculator and
  KeysPerSecondCounter
- Remove KeysPerSecondCalculator IDisposable implementation
- Make KeysPerSecondCalculator static instance initialized once by
  KeysPerSecondCounters
- Auto transfer dependencies from KeysPerSecondCounter to
  KeysPerSecondCalculator using Resolved properties
- Add internal reset logic to KeysPerSecondCalculator and make it
  independent from Player
- Use GameplayClock.TrueGameplayRate to get real-time rate. If 0 then it
  defaults to the last non 0 rate if no such mod is enabled
2022-08-07 00:53:00 +02:00
BlauFx
bd43a9e96e
Add missing type specification 2022-08-06 18:49:07 +02:00
BlauFx
fa6d55b5b5
Remove redundant lambda signature parentheses 2022-08-06 18:47:11 +02:00
BlauFx
0d418559bc
Skip song intro only in case of a quick restart 2022-08-06 17:02:45 +02:00
BlauFx
e411a2d187
Revert reduced wait time commit 2022-08-06 15:12:36 +02:00
BlauFx
445f921756
Move IsSkippable event into load method 2022-08-05 23:21:03 +02:00
BlauFx
d8d7423698
Reduce "wait time" in case restarting the map 2022-08-05 23:04:43 +02:00
BlauFx
99e07aa09a
Skip intro if the map gets restarted 2022-08-05 23:01:52 +02:00
BlauFx
6717f0606c
Add property to SkipOverlay 2022-08-05 23:00:37 +02:00
Ryuki
0886137e39
Prevent KeysPerSecondCounter from NRE when no instance is initialized 2022-08-05 21:03:00 +02:00
HiddenNode
b46bc5d65b Remove empty line 2022-08-05 14:57:33 +01:00
Ryuki
24c29b7e2f
Do not add KPS calculation when gameplay rate is 0 2022-08-05 15:51:07 +02:00
HiddenNode
0243f8d6ac Clean up 2022-08-05 14:28:15 +01:00
HiddenNode
12ef99a1a1 Fix text position 2022-08-05 12:56:08 +01:00
Ryuki
42d1bdfc95
Move KPS calculation to a standalone class 2022-08-05 04:17:01 +02:00
Salman Ahmed
7c45c571a0
Merge branch 'master' into more-beat-sync-dependence 2022-08-03 20:22:42 +03:00
Dean Herbert
6ad6561e1c Fix LegacySongProgress incorrectly blocking mouse input from gameplay
Closes #19555.
2022-08-03 17:42:29 +09:00
HiddenNode
bc21a2ed56 Remove unnecessary using directive 2022-08-02 17:41:17 +01:00
HiddenNode
78a98cdb9c Prevent TextSprites inside SongProgressInfo from being stretched or flipped 2022-08-02 17:37:31 +01:00
Dean Herbert
cc4cde2c79 Improve IBeatSyncProvider interface and reduce beatmap track dependence 2022-08-02 17:59:18 +09:00
HiddenNode
df85bd74d7 Keep TextSprites in SongProgressInfo upright 2022-08-01 21:46:37 +01:00
Dean Herbert
5b98a73edc Apply nullability to SkinComponentToolbox and split out reflection method to get all skinnable components 2022-08-01 14:04:08 +09:00
Ryuki
89855cc1d6
Change KPS Counter implementation base and add better replay integration
The counter implementaiton is now list based, and will not invalidate
previous hits by removing them but by testing if they are within the 1
second span, allowing better integration with replays and spectators.
2022-07-31 01:29:57 +02:00
Susko3
38a8b9cf0a Add battery info for desktop platforms 2022-07-30 14:26:19 +02:00
Salman Ahmed
3bc1774c87
Merge branch 'master' into pie-chart-progress 2022-07-29 16:54:59 +03:00
Salman Ahmed
905bbdc8ee Remove caching of GameplayClockContainer in favour of GameplayClock
Also fixes `SongProgress` being displayed in skin editor on non-gameplay
screens, due to `GameplayClock` not marked as a required dependency.
2022-07-29 16:45:29 +03:00
Salman Ahmed
3f72e76348 Expose StartTime from gameplay clock 2022-07-29 16:18:05 +03:00
Ryuki
b2e7da5aa0
Add basic Queue based implementation of KPS 2022-07-28 18:37:12 +02:00
Dean Herbert
3005ff1b9f Merge branch 'master' into pie-chart-progress 2022-07-28 22:19:27 +09:00
Dan Balasescu
ce694123eb Move spectator begin/end playing to SubmittingPlayer 2022-07-28 20:44:04 +09:00
Dean Herbert
86c2b7e449 Apply nullability to DefaultSongProgress and clean up more stuff 2022-07-28 18:37:17 +09:00
Dean Herbert
ea027eda46 Move initial show to base implementation and add transition for legacy version 2022-07-28 18:29:49 +09:00
Dean Herbert
d5e5761892 Fix DefaultSongProgress graph not resetting if time is in intro 2022-07-28 18:25:24 +09:00
Dean Herbert
7108553883 Tidy up various things everywhere 2022-07-28 18:25:14 +09:00
Nitrous
0d36907cad
apply code quality fixes 2022-07-28 15:30:45 +08:00
Nitrous
bca3994d91
set FirstHitTime and LastHitTime once 2022-07-28 15:25:12 +08:00
Nitrous
db62d4be3a
apply suggestions
- refactor `SongProgress`
- make`UpdateProgress` more readable
- enable NRT on new classes
- refactor `TestSceneSongProgress` to use `GameplayClockContainer`
2022-07-28 15:15:41 +08:00
Nitrous
9088caa377
move LegacyComboCounter to osu.Game.Skinning 2022-07-28 08:36:26 +08:00
Nitrous
45c11f2b7b
account for gameplay start time 2022-07-28 08:01:38 +08:00
Nitrous
37e642b0bd
make SongProgress abstract
- move unrelated logic to `DefaultSongProgress`
- make `LegacySongProgress` inherit `SongProgress`
2022-07-27 15:19:21 +08:00
Salman Ahmed
fa9daa6899 Fix TestSceneReplayRecorder not using score provided by gameplay state 2022-07-25 05:21:27 +03:00
Salman Ahmed
ad09e728fd Move Passed assignment inside FailScore 2022-07-21 08:12:06 +03:00
Salman Ahmed
0f0b19da4a Populate score with remaining "miss" statistics on fail/exit 2022-07-21 06:01:36 +03:00
Bartłomiej Dach
6f37487528
Replace calls to defective Humanizer methods with correct version 2022-07-18 22:34:58 +02:00
Salman Ahmed
e6236ba088 Update save score button to check availability after import
Previously was relying on whether `SaveReplay` returns null, but since
I've changed it to use the standard "prepare score for import" path, the
button has to check for local availability after import since that path
doesn't return null on fail.
2022-07-15 23:39:52 +03:00
Salman Ahmed
6285442b7d Fix failed scores not prepared before import 2022-07-15 22:57:12 +03:00
Dean Herbert
2beed6d7b7 Allow failed scores to fail in replay playback 2022-07-15 20:45:48 +09:00
Dean Herbert
d325c534ab Check whether score is already imported and show correct state for save button 2022-07-15 20:45:37 +09:00
Dean Herbert
0200ef1d48 Make delegate firing more safe to being set later than BDL 2022-07-15 19:06:44 +09:00
Dean Herbert
0e788ac714 Simplify bindable logic greatly 2022-07-15 19:02:12 +09:00
Dean Herbert
8a48cb701d Tidy up implementation and remove unnecessary enum 2022-07-15 19:02:04 +09:00
Dean Herbert
ab6665d88c
Merge branch 'master' into Save-Score-Failed 2022-07-15 18:02:58 +09:00
Dean Herbert
937692604e Remove mention of autoplay mod for now 2022-07-13 22:37:20 +09:00
Dean Herbert
ab3ec80159 Update LastPlayed on gameplay starting in a SubmittingPlayer 2022-07-13 16:43:43 +09:00
Dean Herbert
b52ea16133 Show basic error message when score submission fails 2022-07-12 15:10:59 +09:00
為什麼
6a643cb6ea Use Debug.Assert instead. 2022-07-12 09:41:19 +08:00
為什麼
857377e145 Move CreateConvertibleReplayFrame() into legacy ruleset interface because technically only legacy ruleset use it to convert the legacy frame.
But seems some of the customized ruleset use it for save the replay frame.
2022-07-10 10:15:27 +08:00
cdwcgt
d2406242ae
rename updateTooltip to updateState 2022-07-09 00:38:17 +09:00
cdwcgt
91f471ebe0
disabled button instead of shake
removed `ShakeContainer`
2022-07-09 00:37:53 +09:00
cdwcgt
a38c6704c2
Use ContinueWith, Check is Task empty 2022-07-09 00:23:32 +09:00
Dean Herbert
e4ebab92c6 Rename lots of weird variables 2022-07-08 18:37:03 +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
Dan Balasescu
1ccfd69690
Merge pull request #18978 from peppy/send-beatmap-hash-to-server
Send beatmap hash to server on solo score request
2022-07-03 13:18:17 +09:00
Salman Ahmed
19d300e311 Fix player loader not accepting star difficulty updates after display 2022-07-02 09:17:38 +03:00
Dean Herbert
634b6cdbbe Send beatmap has to server on solo score request
Right now, the client does nothing to ensure a beatmap is in a valid
state before requesting to submit a score. There is further work to be
done client-side so it is more aware of this state (already handled for
playlists, but not for the solo gameplay loop), but the solution I have
in mind for that is a bit more involved.

This is not used server-side yet, but I want to get this sending so we
can start using it for some very basic validation.

Will resolve the basic portion of #11922 after implemented server-side.
2022-07-02 12:16:17 +09:00
cdwcgt
33209ecd25
remove useless value change 2022-06-30 19:51:58 +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
6bfd351dec Add logging of GameplayClockContainer seeks 2022-06-28 15:23:29 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
cdwcgt
bff35cb348
Shake button when replay already save 2022-06-22 01:19:20 +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
Dan Balasescu
b3e5642dfd Use WaitingOnFrames instead 2022-06-21 12:23:43 +09: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
98d69c846c Reset spectator speed at last frame 2022-06-19 17:12:20 +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
Dean Herbert
6136e4e27a Don't play exit sound if screen is in a non-resumable state when exiting 2022-06-15 17:37:25 +09:00
Jamie Taylor
6b744a14b0
Move 'back' sample playback from OnResuming to OnExiting 2022-06-15 15:41:28 +09:00
Dean Herbert
6be4209458 Fix AlwaysPresent specification in wrong container 2022-06-15 01:04:43 +09:00
Dean Herbert
a20e43c2ae Ensure containers which are being used to hide HUD elements still update for now
I don't think this is necessarily a final solution (as this means all
HUD elements are adding overhead even when not visible), but this will
make the implementations much easier for the time being.

I've checked and can't notice any perceivable overhead in profiling so
we should be fine for now.
2022-06-14 18:22:25 +09:00
Dean Herbert
bd9ea9bd6f Revert most unnecessary changes
Turns out `AlwaysPresent` at top level is actually enough.

This reverts commit 86163d2225.
2022-06-13 23:58:14 +09:00
Dean Herbert
86163d2225 Fix hit error meters not updating visual state when hidden
It is an expectation of users that when the HUD is shown after a period
of being hidden, it will visually reflect the state based on recent
judgements.

To achieve this, I've added `AlwaysPresent` and moved the transform
application to the meter level, rather than at a child level. If this is
seen as a bad direction, `AlwaysPresent` can be applied to the drawable
children and the transforms can be moved back.

Also of note, `ColourHitErrorMeter` is pretty weird. The flow class
could potentially be removed and reduce `AlwaysPresent` usage by one.
Can do that refactor as part of this PR if preferred.

Closes #18624.
2022-06-13 16:38:57 +09:00
Dean Herbert
17eaf7bb5c Add failing test coverage showing hit meters don't update when not visible 2022-06-13 16:36:22 +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
22d998dc2a Use new score processor in MultiplayerGameplayLeaderboard 2022-05-30 19:26:26 +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
1641918c51
Revert "Avoid throwing unobserved exception when PerformancePointsCounter requests timed attributes"
This reverts commit 19b655d75b.
2022-05-28 15:23:28 +02:00
Dean Herbert
9c3d0dafbd Remove implementation at Player level
Turns out this isn't required in the end due to implementation at
`MasterGameplayClockContainer`.
2022-05-23 02:00:21 +09:00
Dean Herbert
007582afb9 Remove unused usings resulting from namespace move 2022-05-22 23:55:33 +09:00
Dean Herbert
eabf578282 Use interface to convey beat sync information 2022-05-22 22:44:54 +09:00
Dean Herbert
1c36995606 Expose HoldingForHUD state from HUDOverlay as bindable 2022-05-11 16:09:16 +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
Bartłomiej Dach
f5026bbbeb
Bind to button's activation delay directly 2022-05-06 10:04:36 +02:00
Bartłomiej Dach
f39fcee41b
Remove commented-out code 2022-05-06 10:04:00 +02:00
Dean Herbert
78959a6e05 Add animation to denote a dangerous player exit 2022-05-06 15:02:22 +09:00
Dean Herbert
1c4aa12585 Rename non-descript Button nested class 2022-05-06 14:45:53 +09:00
Dean Herbert
a11771c11b Better encapsulate exposed bindables of HoldToConfirmContainer 2022-05-06 14:45:53 +09:00
Dean Herbert
be960eb092 Move dangerous hold specification to base class 2022-05-06 14:34:31 +09:00
Dean Herbert
2896612c5c Make exiting multiplayer a dangerous operation, requiring hold 2022-05-03 16:06:04 +09:00
Bartłomiej Dach
2b4a49e17f
Merge branch 'master' into move-difficulty-graph-toggle 2022-05-02 16:38:25 +02:00
Dean Herbert
1f1845d69b
Merge branch 'master' into multiplayer-force-start-2 2022-04-29 14:45:40 +09:00
Dean Herbert
c4495dafb6 Merge branch 'master' into move-difficulty-graph-toggle 2022-04-29 13:44:47 +09:00
Dean Herbert
6ccbdc85a3
Improve setting description text
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-04-29 11:56:46 +09:00
Dan Balasescu
1d8ac6917d Send Loaded state from PlayerLoader on update thread 2022-04-28 20:10:47 +09:00
Salman Ahmed
691bec6f16 Use LocalisableString.Interpolate instead of invalid TranslatableStrings 2022-04-28 11:38:40 +03:00
Dean Herbert
3c45746ba1 Add back schedule for safety 2022-04-28 14:29:57 +09:00
Dean Herbert
7c1b0b41ff Fix migration not working correctly when applying on a default skin 2022-04-28 14:19:24 +09:00
Dean Herbert
7a23363d74 Add migration of song progress setting from config to component 2022-04-27 18:10:58 +09:00
Dean Herbert
e6bb5e84ec Merge branch 'master' into move-difficulty-graph-toggle 2022-04-27 17:22:25 +09:00
Salman Ahmed
e646233722 Use correct translation for "Accuracy" label in break overlay 2022-04-26 19:16:36 +03: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
Dan Balasescu
b293d3923c Merge branch 'master' into multiplayer-force-start-2 2022-04-23 01:03:55 +09:00
Dean Herbert
832d37b2c2 Update screen transition events to use new event args 2022-04-22 00:52:44 +09:00
Dan Balasescu
41355384bd Add support for gameplay abort/force start 2022-04-21 23:14:37 +09:00
Dean Herbert
848366416e Revert string type changes in MetadataLineInfo 2022-04-21 14:10:58 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
Salman Ahmed
94335c2938 Update further usages to cache/resolve via interface 2022-04-19 00:18:10 +03:00
Dean Herbert
043599081b Split out INotificationOverlay to allow for easier testing 2022-04-18 20:14:01 +09:00
Dan Balasescu
2abdbe53e7 Cleanup whitespace 2022-04-14 18:55:12 +09:00
Dan Balasescu
9de4d416e2 Merge branch 'master' into fix-spectator-seeks 2022-04-14 18:54:52 +09:00
Dan Balasescu
494955aff1 Resolve inspection issues 2022-04-14 13:11:11 +09:00
Dean Herbert
fbf0e5a45c Remove startFromSkipTarget parameter and update usages that required said behaviour 2022-04-13 14:25:43 +09:00
Dean Herbert
a59c6013c7 Rename latestGameplayStartTime to skipTargetTime 2022-04-13 14:03:52 +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
017f3852c8 Replace incorrectly chosen ??= with ?? 2022-04-13 13:32:36 +09:00
Dean Herbert
9c68b3edc5 Merge branch 'master' into fix-spectator-seeks 2022-04-13 12:33:41 +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
8b1cee75fa Use BindableLong instead of BindableInt for user score tracking 2022-04-12 14:13:07 +09:00
Dean Herbert
0ba95a4483 Ensure all users are shown on leaderboard (even when API lookup fails) 2022-04-12 11:54:30 +09:00
Dean Herbert
ebee9e6888 Fix MultiplayerGameplayLeaderboard not immediately updating totals on scoring mode change 2022-04-12 11:27:27 +09:00
Dean Herbert
cb6e557212 Fix MasterGameplayClockContainer having incorrect rate-based offsets immediately after LoadComplete
I've attempted to explain why this is required using inline comments.
There's also further conversation at
https://github.com/ppy/osu/pull/17302#issuecomment-1091850927.
2022-04-11 14:11:26 +09:00