1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-18 02:02:54 +08:00
Commit Graph

1102 Commits

Author SHA1 Message Date
Dean Herbert
3485b72eaa Disallow interacting with the global track state in Player and Editor 2023-07-25 20:20:53 +09:00
Dean Herbert
157b1f301b Rename AllowTrackAdjustments to more understandable ApplyModTrackAdjustments 2023-07-25 20:20:53 +09:00
Dean Herbert
67746e1369 Move retry sample playback to PlayerLoader 2023-07-07 15:36:17 +09:00
Dean Herbert
170bc5bfce Add support for skinnable "retry" sound 2023-07-06 12:25:15 +09:00
Bartłomiej Dach
af66ccbfdf
Merge branch 'master' into hud/kc-skinnable 2023-06-27 20:35:47 +02:00
timiimit
e1cbcabe0b
Fix skip not always triggering in multiplayer 2023-06-26 21:26:41 +02:00
Bartłomiej Dach
8d91580dc1
Rename {KeyCounter -> InputCount}Controller 2023-06-26 19:27:42 +02:00
tsrk
c637fddf73
refactor: decouple Trigger logic from KeyCounterDisplay
This allows to keep a coeherent state regardless of the progress of the play
2023-06-14 21:13:35 +02:00
Dan Balasescu
510b8e4c78 Remove ScoreManager.Mode, handle per-use 2023-05-18 20:08:49 +09:00
Bartłomiej Dach
432f698697
Merge branch 'master' into gameplay/key-counter-abstraction 2023-04-05 19:45:14 +02:00
Bartłomiej Dach
8cc425774b
Merge branch 'master' into fix-replay-fail-on-exit 2023-04-03 21:23:23 +02:00
Dean Herbert
b0c09df259 Merge branch 'master' into gameplay/key-counter-abstraction 2023-04-03 15:33:35 +09:00
Dean Herbert
796cd9c916 Rewrite comment explaining early return on checkScoreCompleted given new usages 2023-03-31 02:36:17 +09:00
Dean Herbert
b25a59fd14 Rename scoreCompleted -> checkScoreCompleted to reflect the fact it doesn't always succeed 2023-03-31 02:30:04 +09:00
Dean Herbert
4dd0c2c7a5 Add assert ensuring we don't ever get to the results screen with an F rank
Intentionally an assertion as I want tests to fail, but I don't want
this to cause crashes for an end user if it does happen to occur.
2023-03-29 14:11:58 +09:00
Dean Herbert
a8bb2e33ac Ensure all preconditions are checked before progressing to results screen after storyboard ends 2023-03-29 14:00:11 +09:00
Cootz
556964eae0
Merge branch 'master' into BitmapUpdatesOnScore 2023-03-16 12:16:42 +03:00
Dean Herbert
3b62f87b64 Ensure Player does not fail a score on exit if a replay is currently loaded 2023-03-16 17:14:20 +09:00
tsrk
1beec71037
refactor(KeyCounterDisplay): apply suggestions
I also took the freedom to add type checking, as we can't limit the
usage of `Add()` since it's a Container. The exception thrown also
advises of using the suggested `AddTrigger()` instead.
2023-02-22 14:58:27 +00:00
Dean Herbert
7aaaf7fca2 Combine and attempt to simplify the score import / preparation process further 2023-02-14 16:55:35 +09:00
Dean Herbert
8a206234f7 Merge branch 'master' into replay-length-extension 2023-02-14 16:42:26 +09:00
PC
7e127dafe2 Update reference 2023-02-07 11:52:47 +03:00
Cootz
2c7386db39 FIx score appearing on BeatmapLeaderboard and TopLocalRank 2023-02-06 15:14:14 +03:00
Dean Herbert
aaf3ad805c Fix potential nullref in tests 2023-02-06 19:31:45 +09:00
Dean Herbert
b83c8443ea Ensure pause sample loop is stopped on exiting player 2023-02-06 18:24:31 +09:00
Terochi
43f7665c9e Improved readability again 2023-02-06 09:49:42 +01:00
Terochi
4f23e096d7 Improved readability 2023-02-06 07:59:37 +01:00
Terochi
f58534f60c Extended the length of replay at the end of map 2023-02-05 18:51:28 +01:00
Dean Herbert
edecd2ee25 Merge branch 'master' into middle-click-replay-pause 2023-02-02 15:25:51 +09:00
Bartłomiej Dach
06aa3f7798
Rename Stop{SampleAndRemoveFilters -> }()
Now that just one method for stopping samples is left, let's just
repurpose st as the general "stop global effects" method rather than
have it there with a hyperspecific name. It also has good symmetry, as
there already was a `Start()` method in the class.
2023-01-22 09:29:22 +01:00
Bartłomiej Dach
0edfd24410
Remove unnecessary sample stop in Restart()
It is unnecessary, as a successful restart will exit the current player
screen, and `OnExiting()` has another `StopSampleAndRemoveFilters()`
call, which means that in the restart flow the sample was actually
getting stopped twice.

Standard exit flow is fine, it only stopped the sample once.
2023-01-22 09:24:12 +01:00
Matheus Filipe dos Santos Reinert
5b1a23c697 Replace RemoveFilters call with StopSampleAndRemoveFilters 2023-01-22 01:44:16 -03:00
Matheus Filipe dos Santos Reinert
a746cbc6ed Fix failSample still playing after player left FailOverlay 2023-01-22 01:14:33 -03:00
Dean Herbert
04705504c5 Move cache to more appropriate location 2023-01-18 17:19:57 +09:00
Dean Herbert
7d0388c55c Cache IFrameStableClock in Player for easier access
Allows directly referencing rather than going through `DrawableRuleset`.
Helps with testing and implementation of the new song progress display
(#22144).
2023-01-18 16:31:58 +09:00
Joseph Madamba
d79ee29f29 Make replays pause with middle mouse button instead of exiting 2023-01-01 21:01:12 -08:00
Bartłomiej Dach
01cf96e240
Only show global rankings on results screen when progressing from gameplay 2022-12-26 23:35:45 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Salman Ahmed
4bf4938b72 Keep cursor hiding feature to gameplay screens for now 2022-10-20 03:44:58 +03:00
Dean Herbert
d2d589a156 Expose HUD state via Player 2022-10-12 15:11:52 +09:00
Salman Ahmed
a810afafb3 Reschedule results display delegate to avoid potential softlocks in the future 2022-10-02 15:37:56 +03:00
Salman Ahmed
59728b0ccb Fix results display delegate potentially cancelled while not exiting 2022-10-02 15:30:06 +03:00
Dean Herbert
46db3ad96d Move implementation to individual classes 2022-09-20 00:06:02 +09:00
Dean Herbert
4c4fdfd153 Provide scores directly to Player instance rather than relying on DI 2022-09-16 18:15:17 +09:00
Dean Herbert
678eec1c67 Move LeaderboardFlow to HUDOverlay to share positioning logic 2022-09-13 18:45:11 +09:00
Dean Herbert
5894d2f0bc Ensure gameplay leaderboard hides with rest of HUD when it should 2022-09-13 18:45:11 +09:00
Dean Herbert
d251c0b2ac Move leaderboard implementation to Player itself 2022-09-13 18:00:21 +09:00
Dean Herbert
d4afc3629c
Merge branch 'master' into kps 2022-09-08 23:00:36 +09:00
Dan Balasescu
b559d4ecdf Rename GameplayAdjustments -> AdjustmentsFromMods 2022-09-08 17:14:06 +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
7084aeee05 Add method flow to reset applied adjustments 2022-09-05 23:22:38 +09:00
Dean Herbert
7337d4c1aa Merge branch 'master' into kps 2022-08-31 15:41:42 +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
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
af2e82d7d5 Move operation of setting GameplayClockContainer.StartTime to Reset call 2022-08-22 14:11:06 +09:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
63819648df Fix up flow of actual skip operation 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
f81c7644b4 Make GameplayClockContainer also an IGameplayClock and expose to remaining tests 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
Ryuki
d5f10cbb9d
Revert 787dee24 and initialize calculator in HUDOverlay 2022-08-14 18:53:00 +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
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
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
cd68134565
Call skip method directly 2022-08-08 13:10:28 +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
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
445f921756
Move IsSkippable event into load method 2022-08-05 23:21:03 +02:00
BlauFx
99e07aa09a
Skip intro if the map gets restarted 2022-08-05 23:01:52 +02:00
Ryuki
0886137e39
Prevent KeysPerSecondCounter from NRE when no instance is initialized 2022-08-05 21:03:00 +02:00
Ryuki
42d1bdfc95
Move KPS calculation to a standalone class 2022-08-05 04:17:01 +02: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
Dan Balasescu
ce694123eb Move spectator begin/end playing to SubmittingPlayer 2022-07-28 20:44:04 +09: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
Salman Ahmed
6285442b7d Fix failed scores not prepared before import 2022-07-15 22:57:12 +03: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
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