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

3913 Commits

Author SHA1 Message Date
Dean Herbert
fc25e24397
Merge branch 'master' into score-encoding-cleanup 2023-10-27 18:03:38 +09:00
Bartłomiej Dach
fdb81bfa4c
Rename methods to not mention "source clock" anymore 2023-10-26 19:38:52 +02:00
Bartłomiej Dach
565ae99e0d
Fix StopUsingBeatmapClock() applying adjustments to track it was supposed to stop using
- Closes https://github.com/ppy/osu/issues/25248
- Possibly also closes https://github.com/ppy/osu/issues/20475

Regressed in e33486a766.

`StopUsingBeatmapClock()` intends to, as the name says, stop operating
on the working beatmap clock to yield its usage to other components on
exit. As part of that it tries to unapply audio adjustments so that
other screens can apply theirs freely instead.

However, the aforementioned commit introduced a bug in this. Previously
to it, `track` was an alias for the `SourceClock`, which could be
mutated in an indirect way via `ChangeSource()` calls. The
aforementioned commit made `track` a `readonly` field, initialised in
constructor, which would _never_ change value. In particular, it would
_always_ be the beatmap track, which meant that
`StopUsingBeatmapClock()` would remove the adjustments from the beatmap
track, but then at the end of the method, _apply them onto that same
track again_.

This was only saved by the fact that clock adjustments are removed again
on disposal of the `MasterGameplayClockContainer()`. This - due to async
disposal pressure - could explain infrequently reported cases wherein
the track would just continue to speed up ad infinitum.

To fix, fully substitute the beatmap track for a virtual track at the
point of calling `StopUsingBeatmapClock()`.
2023-10-26 19:38:52 +02:00
Bartłomiej Dach
ca4b09f8ef
Merge branch 'master' into score-encoding-cleanup 2023-10-26 09:04:05 +02:00
Salman Ahmed
07e7d533bf Bake external scale factors into glyph scale 2023-10-26 10:01:27 +03:00
Salman Ahmed
df80b4dcab Update "Argon" health display specifications to match design
Also adds a little white bar next to the display to match with the
components below it (score/accuracy/combo counters).
2023-10-26 09:12:05 +03:00
Salman Ahmed
50af1574cf Add "Argon" background wedges 2023-10-26 09:10:56 +03:00
Salman Ahmed
56eeb117ce Add "Argon" performance points counter 2023-10-26 09:10:10 +03:00
Salman Ahmed
daf4a03fd0 Abstractify PP counter logic from the "Triangles" implementation 2023-10-26 09:09:55 +03:00
Salman Ahmed
0aa0562dc0 Add "Argon" combo counter 2023-10-26 09:09:55 +03:00
Salman Ahmed
1f36acca1a Add "Argon" accuracy counter 2023-10-26 09:09:52 +03:00
Salman Ahmed
9ca672d689 Add "Argon" total score counter 2023-10-26 08:58:25 +03:00
Dean Herbert
e081fa48a2
Fix various other inspections 2023-10-17 17:48:51 +09:00
Bartłomiej Dach
c4af8591a5
Preserve OnlineID when importing scores
Previously, for lazer scores, the ID returned from `osu-web` was
discarded and replaced with -1, due to the fact that the appropriate
structures for unification with stable, as well as unification across
solo and multiplayer, were not in place yet.

Now we're at the point where scores from all the aforementioned sources
receive a `solo_scores` DB row, and as such, we can start treating
`solo_scores`-scheme IDs as canonical "online IDs" for a score.
2023-10-16 11:20:02 +02:00
Dean Herbert
48832c64ac
Fix health bar animating when it shouldn't be
It wasn't correctly checking the current underlying health, which could
be zero in usages of `AccumulatingHealthProcessor`, for instance.

Closes #25046.
2023-10-16 13:12:04 +09:00
Dean Herbert
fa47309eef
Fix exit key during storyboard outro not progressing to results 2023-10-12 19:31:54 +09:00
Dean Herbert
d174a6ce61
Remove dead code which was only there for the exit-specific scenario 2023-10-12 19:27:35 +09:00
Dean Herbert
32eda99c3a
Add missing xmldoc returns 2023-10-12 19:06:34 +09:00
Dean Herbert
242a41371c
Fix HotkeyOverlay fade out occurring when exit is blocked 2023-10-12 15:42:54 +09:00
Dean Herbert
7c0d496730
Show results immediately if user hits "back" key after finishing gameplay
I've gone ahead and matched the osu!stable behaviour for this, as it
seems like it's what people are used to and they will settle for no
less.

Closes https://github.com/ppy/osu/issues/18089.
2023-10-12 15:42:23 +09:00
Dean Herbert
b9dbc8139b
Merge branch 'master' into fix-argon-health-bar-flash 2023-10-11 00:20:08 +09:00
Bartłomiej Dach
d701e88a08
Merge pull request #25076 from peppy/fix-argon-health-bar-perf
Ensure health displays don't pile up transforms when off-screen
2023-10-10 16:33:32 +02:00
Dean Herbert
b9dadc52b7
Adjust comment to match current behaviour
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-10-10 22:54:19 +09:00
Dean Herbert
e2e28ef0ca
Remove comment regarding inlined delegate 2023-10-10 22:12:20 +09:00
Dean Herbert
682aa06acf
Remove JudgementResult from Miss/Flash as it is not used 2023-10-10 22:10:44 +09:00
Dean Herbert
f0bd975393
Change GameplayClockContainer.Reset to directly call GameplayClock.Stop
The reasoning is explained in the inline comment, but basically this was
getting blocked by `isPaused` being in an initial `true` state (as it is
on construction), while the source clock was still `IsRunning`.

There's no real guarantee of sync between the source and the `isPaused`
bindable right now. Maybe there should be in the future, but to restore
sanity, let's ensure that a call to `Reset` can at least stop the track
as we expect.
2023-10-10 18:16:14 +09:00
Dean Herbert
eee7dc02da
Reduce severity of clock running check to avoid production crashes 2023-10-10 17:58:11 +09:00
Dean Herbert
4674f63655
Fix Scheduler.AddOnce not working in one location 2023-10-10 16:17:34 +09:00
Dean Herbert
7e68b64526
Avoid running finishInitialAnimation when already finished 2023-10-10 15:59:48 +09:00
Dean Herbert
1eb6c93916
Also debounce updatePathVertices to reduce overhead 2023-10-10 15:50:42 +09:00
Dean Herbert
6c346874d3
Add TODO mentioning that ArgonHealthDisplay is doing lerp wrong 2023-10-10 15:24:54 +09:00
Dean Herbert
57f588fa86
Ensure health displays don't pile up transforms when off-screen 2023-10-10 15:24:54 +09:00
Dean Herbert
6ee958743e
Adjust glow animation specifics slightly 2023-10-10 15:10:42 +09:00
Dean Herbert
aeb579eb54
Syncrhonise initial colour of glowBar for sanity 2023-10-10 15:10:27 +09:00
Dean Herbert
8e26b3c405
Fix argon health bar not completing flash animation correctly 2023-10-10 15:09:33 +09:00
Dean Herbert
e5207167c8
Rename FailAnimation to FailAnimationContainer 2023-10-08 00:39:30 +09:00
Dean Herbert
7c7771afca
Merge pull request #24986 from peppy/health-animates-in-intro
Add initial animation for health bars
2023-10-07 10:31:34 +09:00
Bartłomiej Dach
cfcdbe1c30
Merge pull request #25028 from peppy/bindable-fixes
Fix some incorrect bindable-related code
2023-10-06 22:31:30 +02:00
Bartłomiej Dach
a099cc0f36
Merge pull request #25030 from peppy/adjustable-health-bar
Adjust argon health bar to fit with existing layout
2023-10-06 21:51:18 +02:00
Bartłomiej Dach
b7d0bf3756
Only flush the Current transform specifically 2023-10-06 21:39:29 +02:00
Bartłomiej Dach
ce0d4bd0df
Fix health display potentially desyncing from actual if health was changed during initial animation 2023-10-06 21:35:08 +02:00
Dean Herbert
58448d3dd9
Fix health animation affecting failing tint 2023-10-07 01:06:31 +09:00
Dean Herbert
d87ab9c82d
Adjust transition time based on miss/hit 2023-10-06 19:34:38 +09:00
Dean Herbert
3f2a00d90d
Add argon health display to default skin layout 2023-10-06 19:34:27 +09:00
Dean Herbert
f40e910c51
Remove left line from health display 2023-10-06 19:34:27 +09:00
Dean Herbert
db5178e453
Change ArgonHealthDisplay to be relative sized for now 2023-10-06 18:56:39 +09:00
Dean Herbert
f2e56bbb65
Fix publicly-settable bindables 2023-10-06 16:51:24 +09:00
Bartłomiej Dach
bd71403309
Merge branch 'master' into health-animates-in-intro 2023-10-04 13:53:42 +02:00
Dean Herbert
5a17a86d1d Merge branch 'master' into clock-fix-attempt-2 2023-10-04 16:57:49 +09:00
Bartłomiej Dach
844a3b6c1b
Merge pull request #24980 from frenzibyte/gameplay-hud-redesign/health-display
Implement redesigned health bar display for "Argon" skin
2023-10-03 11:26:21 +02:00
Dean Herbert
4f3c433946 Move vertex related constants local to method 2023-10-03 17:41:52 +09:00
Dean Herbert
32b2ac4974 Rename and refactor glow/miss bars to hopefully make more sense 2023-10-03 17:41:11 +09:00
Dean Herbert
4f9daa1c14 Tidy up ArgonHealthDisplay code quality 2023-10-03 17:32:35 +09:00
Dean Herbert
8178cf3a8d Tidy up background colour gradient logic
This changes things visually a touch, but I think it feels better.
And reads better.
2023-10-03 17:17:11 +09:00
Dean Herbert
82ba545358 Add initial animation for health bars 2023-10-02 17:01:58 +09:00
Dean Herbert
3a45bcad15 Improve flash and glow further 2023-10-02 02:11:07 +09:00
Dean Herbert
c4f47974bc Improve glow further 2023-10-02 02:11:07 +09:00
Dean Herbert
88d608e1fa Tidy up common animation code 2023-10-02 02:11:07 +09:00
Dean Herbert
df51e61234 Improve animation 2023-10-02 00:42:51 +09:00
Dean Herbert
22aa7ffd06 Use additive colour 2023-10-01 22:09:59 +09:00
Salman Ahmed
eef099e69d Do not display "miss" bar if health is already zero 2023-10-01 15:25:34 +03:00
Salman Ahmed
7825bea959 Use interpolation for health bar opacity instead of transforms 2023-10-01 15:25:23 +03:00
Salman Ahmed
30d9004ef9 Fix small mistake 2023-10-01 13:41:11 +03:00
Salman Ahmed
446c9c2efe Apply adjustments on the "miss" bar display 2023-10-01 13:39:36 +03:00
Salman Ahmed
9e2b8254d9 Add argon-specific health display test scene 2023-10-01 13:26:47 +03:00
Salman Ahmed
a331fb993a Adjust health bar outer stroke colour 2023-10-01 01:21:37 +03:00
Salman Ahmed
319208ca3d Adjust health bar glow intensity 2023-10-01 01:18:05 +03:00
Salman Ahmed
776536e816 Add "Argon" health display implementation 2023-10-01 00:56:16 +03:00
Salman Ahmed
33b0cb15a8 Add handling for miss judgements in HealthDisplay 2023-10-01 00:21:25 +03:00
Bartłomiej Dach
8215c4cb0e
Merge branch 'master' into mods-stable-ordering 2023-09-28 18:30:56 +02:00
Dean Herbert
7d74d84e6c Display mod icons using stable ordering
In discussion with nanaya, we likely want this now that we're adding the
ability for some icons to be extended. Historically mod icons have been
displayed in a stable but arbitrary order (based on their position in
the `Mods` enum).

This change aims to make them stable across lazer scores (where they are
stored based on .. the order the user selected them).
2023-09-28 16:48:09 +09:00
Dean Herbert
9f4df29880 Adjust fade durations at player loader to better hide mod jank 2023-09-27 19:29:03 +09:00
Dean Herbert
251a85db43 Fix StopUsingBeatmapClock not transferring time and running state 2023-09-22 16:22:36 +09:00
Dean Herbert
8367bb6bee Don't apply decoupling to SpectatorPlayerClocks
See inline comment for reasoning. It's a bit complicated.
2023-09-22 16:22:35 +09:00
Dean Herbert
bf08fbe196 Set source directly in FramedBeatmapClock ctor
This isn't required, but avoids creating a temporary `StopwatchClock`
and generally just makes debug easier with less state changes.
2023-09-22 16:22:35 +09:00
Dean Herbert
586311d508 Fix souce clock not always being transferred to FramedBeatmapClock in time 2023-09-22 16:22:35 +09:00
Dean Herbert
a1e298930c Remove second hopefully-unnecessary workaround 2023-09-22 14:41:07 +09:00
Dean Herbert
df08c4e1ad Disable decoupling for OsuGameBase's beatmap implementation
This avoids it ever mutating the underlying track (aka attempting to start
it). Resolves the one caveat mentioned in
aeef92fa710648d4a00edc523e13c17ac6104125.
2023-09-22 12:49:25 +09:00
Dean Herbert
117cd74af6 Update usage of DecoupleableInterpolatingFramedClock in FramedBeatmapClock 2023-09-22 12:49:25 +09:00
Dean Herbert
600651795b Change FramedBeatmapClock to always be decoupled 2023-09-22 12:49:25 +09:00
Dean Herbert
bf984388b3 Update clocks in line with framework changes 2023-09-20 21:17:08 +09:00
Dean Herbert
71ac5cfc79 Don't bother binding to friends changes for score display purposes 2023-09-20 14:14:37 +09:00
Dean Herbert
1927b524db
Merge branch 'master' into leaderboard-friend-highlight 2023-09-20 14:14:08 +09:00
Bartłomiej Dach
3bddf4bf9a
Rename spectator-specific settings to more generic (with backwards migration) 2023-09-18 14:56:06 +02:00
Dean Herbert
541cd972e1 Rename ArchiveReader implementations to read better 2023-09-14 13:36:07 +09:00
cdwcgt
68752f95e5
color friend score to pink 2023-09-06 22:58:03 +09:00
Bartłomiej Dach
ed84be2f26
Merge pull request #24566 from peppy/multiplayer-spectator-score-diff
Add score difference display to multiplayer spectator
2023-08-16 12:57:17 +02:00
Bartłomiej Dach
35af15f491
Merge branch 'master' into multi-spectator-fix-startup-delay 2023-08-16 10:34:20 +02:00
Dean Herbert
8b9759c569 Apply nullability to MatchScoreDisplay 2023-08-16 17:26:10 +09:00
Dean Herbert
ab826c35b7 Add score diff display to multiplayer spectator
Basically pulling changes over from the tournament client implementation
2023-08-16 17:26:10 +09:00
Bartłomiej Dach
add1ef77d0
Fix typo in comment 2023-08-16 10:07:12 +02:00
Dean Herbert
bb98f10ff6 Use CurrentTime instead of StartTime for hotfix seek (and update comment) 2023-08-16 16:38:49 +09:00
Dean Herbert
184eabb902 Merge branch 'master' into multi-spectator-fix-startup-delay 2023-08-16 16:27:49 +09:00
Dean Herbert
31c2b7f925 Merge branch 'master' into leaderboard-toggle 2023-08-16 15:49:55 +09:00
Dean Herbert
e8bde6504a Fix score being cloned in async method causing random crashes
Closes https://github.com/ppy/osu/issues/24445.
2023-08-15 16:08:13 +09:00
Bartłomiej Dach
1b3806539a
Merge branch 'master' into leaderboard-toggle 2023-08-10 22:50:55 +02:00
Bartłomiej Dach
500a1363ec
Merge branch 'master' into fix-break-info-decimal-separator 2023-08-08 22:49:00 +02:00
Bartłomiej Dach
52b1073d93
Fix playfield skin layer not rotating correctly with barrel roll mod 2023-08-03 21:08:00 +02:00
Bartłomiej Dach
dde03b7d46
Merge branch 'master' into playfield-skin-layer 2023-08-03 20:42:15 +02:00
Joseph Madamba
aab462fd95
Fix valueText being replaced even if current is not binding to anything 2023-08-02 09:40:22 -07:00
Dean Herbert
87fee001c7 Fix multiplayer spectator potentially taking too long to start
When watching from the middle of gameplay, due to a series of failures,
`SpectatorClock` would not get seeked to the current time, causing all
clients to look like they were out of sync.

This is a hotfix for the issue. A better fix will require framework
changes or considerable restructuring.

I'd recommend testing this works in practice and agreeing that while it
is a hack, it's likely not going to cause issues and is something we
want to see fixed sooner rather than later.
2023-08-02 19:05:43 +09:00
Dean Herbert
a618ed140e Move StoryboardReplacesBackground bindable more local to usage 2023-08-02 15:29:18 +09:00
QuantumSno
054ca5e59c
Merge branch 'master' into leaderboard-toggle 2023-08-01 10:06:03 -04:00
Bartłomiej Dach
e208f38bcb
Merge pull request #24361 from peppy/fix-editor-global-music-hotkey-conflicts
Disallow interacting with the global track state in `Player` and `Editor`
2023-07-30 12:28:53 +02:00
Dean Herbert
945d89e955 Move disables to loading screens for better coverage of edge cases 2023-07-30 13:45:42 +09:00
Joseph Madamba
4ddf05602f Update BreakInfoLine to formatting standards 2023-07-29 11:05:15 -07:00
Joseph Madamba
6ebfafa9c3 Remove unnecessary text comparison 2023-07-29 11:02:04 -07:00
Joseph Madamba
740898dffb Remove unnecessary prefix parameter 2023-07-29 10:40:18 -07:00
Joseph Madamba
9d928c0225 Apply NRT to BreakInfoLine 2023-07-29 10:39:50 -07:00
Joseph Madamba
a3301dc7ff Fix accuracy break info decimal separator being incorrect in certain languages 2023-07-28 23:26:07 -07:00
Bartłomiej Dach
1fd4a6dc96
Fix tests crashing due to HUDOverlay not finding DrawableRuleset in Update() 2023-07-29 01:07:49 +02:00
QuantumSno
a4065486c1 bound bind during gameplay 2023-07-28 14:39:41 -04:00
Dean Herbert
6cf065f6d1 Add playfield layer to skin editor 2023-07-28 15:50:44 +09:00
Dean Herbert
4889864478 Fix files references not correctly being copied after replay import in Player 2023-07-26 15:22:00 +09:00
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
5ec9cd84b2 Change offset calibration control to adjust for all difficulties of the current beatmap set 2023-07-19 17:13:19 +09:00
Dean Herbert
fbf14a0f7c Allow autoplay to fail
Feels more correct.
2023-07-13 13:41:35 +09:00
Bartłomiej Dach
84138849cf
Merge pull request #24134 from peppy/skin-retry-sound
Add support for skinnable "retry" sound
2023-07-08 15:24:26 +02:00
Bartłomiej Dach
287418e214
Merge branch 'master' into skin-retry-sound 2023-07-08 14:00:52 +02:00
Bartłomiej Dach
832c1c0009
Merge branch 'master' into fix-gameplay-samepl-trigger-source-rewind 2023-07-08 13:33:04 +02:00
Dean Herbert
67746e1369 Move retry sample playback to PlayerLoader 2023-07-07 15:36:17 +09:00
Dean Herbert
e0fc97bb93 Replace various local implementations of rewinding checks with new property 2023-07-07 15:21:24 +09:00
Dean Herbert
2e98ab0a48 Expose rewinding state of IGameplayClocks
The implementation of this requires a bit of a special case
for 0, so makes sense to implement in a central place.
2023-07-06 19:08:42 +09:00
Dean Herbert
9ff6b3fcd3 Merge branch 'master' into editor-save-local-score-management 2023-07-06 12:28:44 +09:00
Dean Herbert
170bc5bfce Add support for skinnable "retry" sound 2023-07-06 12:25:15 +09:00
Bartłomiej Dach
cdb8a56df4
Remove weird aliased using
Doesn't appear to be required.
2023-07-05 22:41:22 +02:00
Dean Herbert
9291895305 Make key for toggling replay settings customisable 2023-07-06 01:00:41 +09:00
Dean Herbert
95a9b532df Remember state of replay settings visibility 2023-07-06 00:53:37 +09:00
Dean Herbert
fbab5acac1 Remove not-yet-implemented settings group comments 2023-07-06 00:46:09 +09:00
Bartłomiej Dach
e2ddcb2349
Silence a few remaining nullability warnings 2023-07-04 22:39:26 +02:00
Bartłomiej Dach
af66ccbfdf
Merge branch 'master' into hud/kc-skinnable 2023-06-27 20:35:47 +02:00
Dean Herbert
41890cfc65 Change JudgementCountController to a Component and remove handling overrides 2023-06-27 16:39:21 +09:00
Dean Herbert
8bd6f7a46a Rename ClicksPerSecondCalculator to ClicksPerSecondController 2023-06-27 16:38:46 +09:00
Dean Herbert
de23a4691e Change JudgementCountController to a Component 2023-06-27 16:38:15 +09:00
Dean Herbert
113b570bd4 Move controllers above skinnable elements in initialisation order 2023-06-27 16:37:23 +09:00
Dean Herbert
e21583ff1b Refactor InputCountController to not require being added to foreign body via Attach
I've made the flow match `ClicksPerSecondCalculator` as close as
possible. Hopefully this reads better.
2023-06-27 16:36:00 +09:00
timiimit
e1cbcabe0b
Fix skip not always triggering in multiplayer 2023-06-26 21:26:41 +02:00
Bartłomiej Dach
7200855d46
Rename Judgement{Tally -> CountController} 2023-06-26 19:30:04 +02:00
Bartłomiej Dach
8d91580dc1
Rename {KeyCounter -> InputCount}Controller 2023-06-26 19:27:42 +02:00
Bartłomiej Dach
4ac48e4cd8
Group input handling members together 2023-06-26 19:25:52 +02:00
Bartłomiej Dach
ff562e2dd7
Remove redundant guard
In this particular case guarding with `.IsNull()` makes no sense, as the
`Trigger` is supplied in constructor and cannot feasibly be null. Doing
that only makes sense in scenarios where BDL / dependency injection is
involved.
2023-06-26 19:25:52 +02:00
Bartłomiej Dach
dbd76c1193
Fix attempting to add key counter controller to hierarchy in multiple places 2023-06-26 19:02:49 +02:00
Dean Herbert
44c08f3944 Add xmldoc for KeyCounterController 2023-06-26 16:47:33 +09:00
Dean Herbert
c8e081c2b6 Remove unused interface 2023-06-26 16:32:19 +09:00
Dean Herbert
ec20942830 Actuall add composite component to hierarchy 2023-06-26 16:24:36 +09:00
tsrk
350d722c8d
Merge branch 'master' into hud/kc-skinnable 2023-06-25 15:42:08 +02:00
tsrk
a7088ffe22
revert: bring back old attachment flow
As discussed, this would bring more problems that anything.

Refs: 4c39708, f83a4f4
2023-06-25 15:21:55 +02:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00