Commit Graph

180 Commits

Author SHA1 Message Date
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
0eaf420fa1 Specify full size for spinner ticks container 2022-06-07 00:29:14 +03:00
be99202188 Move spinner spin samples to auxiliary specification 2022-03-14 17:19:48 +09:00
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
c04b09520d Replace spinner approach circle proxying logic with hooking up to OnSkinChange in mod 2021-06-19 20:06:28 +03:00
843c8bd7a4 Move spinner approach circle to its own SkinnableDrawable 2021-06-18 20:33:50 +03:00
c9458fd9ce Hide spinner approach circle in "Hidden" mod 2021-06-18 06:23:54 +03:00
8336428574 Add regression test for spinner sample actually transforming its frequency 2021-05-24 15:10:33 +09:00
9504fe3f3c Inline add of spm calculation (no need for it to be a separate call) 2021-03-30 13:43:05 +09:00
0bf84e473d Refactor spinner SPM counter for skinning purposes 2021-03-30 04:19:23 +03:00
c715b9b89e Merge branch 'master' into legacy-spinner-bonus 2021-03-25 18:09:25 +09:00
098005393e Remove unnecessary null checks and debug code 2021-03-23 10:38:37 +09:00
c4d08463ad Fix spinners playing looping sound too long in the editor
The `OnComplete` event was never being run due to the transform playing
out longer than the spinner's lifetime. I've matched the durations, but
also moved the `Stop()` call to what I deem a safer place to run it (I
did notice that without this it would still potentially never fire).

Note that this is more noticeable in the editor because of lifetime
extension. In gameplay, the returning of a spinner to the pool will
clean things up (but in the editor that can take longer, depending on
timeline zoom level).

Another thing worth mentioning is that the fade doesn't actually work.
This is due to https://github.com/ppy/osu-framework/pull/4212.

Closes #12119.
2021-03-22 16:04:51 +09:00
98f6e16113 Move default spinner bonus counter to new DefaultSpinner 2021-03-13 05:59:42 +03:00
8fdab5a7de Revert legacy spinner presence changes and bonus counter component
No longer necessary, after inlining legacy coordinates logic to `LegacySpinner` and limiting precisely-positioned legacy components there
2021-03-13 05:57:47 +03:00
020a03e01e Use sensible "score per tick" constant 2021-03-13 05:56:28 +03:00
c4048c9831 Merge branch 'master' into legacy-spinner-bonus 2021-03-13 05:54:34 +03:00
1591d593e2 Move spin start time to inside result and switch to standard state handling 2021-03-11 12:58:15 +09:00
4e8bcc9265 Fix SPM counter decreasing after spinner has already been completed 2021-03-09 16:54:46 +09:00
5a6864eb78 Fix SPM counter immediately disappearing on completion of spinners 2021-03-09 16:54:46 +09:00
3f1d36ee6b Add default spinner bonus counter piece 2021-03-06 20:27:56 +03:00
c441e993ff Separate "gained bonus" to a read-only bindable 2021-03-06 20:27:56 +03:00
d3f0c0730d Merge branch 'master' into non-concurrent-sample-playback 2021-02-12 17:22:15 +09:00
d521bfc251 Don't directly update HandleUserInput (as it is used by mods) 2021-01-30 02:35:11 +09:00
5a306dfc2b Fix unused using 2021-01-29 20:22:25 +09:00
f25809d35f Ensure spinners only handle input during their hittable time
While this was already being enforced inside of `CheckForResult`, the
internal tracking values of rotation were still being incremented as
long as the `DrawableSpinner` was present. This resulted in incorrect
SPM values being displayed if a user was to start spinning before the
object's `StartTime`.

Kind of annoying to write a test for (there's no setup for spinners yet)
but am willing to do so if that is deemed necessary.

Closes https://github.com/ppy/osu/issues/11600.
2021-01-29 19:55:55 +09:00
de9d075f94 Initial sample + samplechannel rework 2021-01-19 17:11:40 +09:00
14b3323682 Use OnComplete instead of Finally to avoid potentially stopping on aborted transforms 2021-01-15 17:18:15 +09:00
311f8b7017 Only restart spinning sample if it was not already playing 2021-01-15 17:17:51 +09:00
767c76921f Adjust transition time of spinner sound 2021-01-15 17:17:28 +09:00
245be2c5ed Adjust namespace 2020-12-04 20:21:53 +09:00
2bb7484608 Merge branch 'immutable-hit-samples' into hit-sample-pooling 2020-12-01 16:05:28 +09:00
5760e1c1fc Make HitSampleInfo immutable 2020-12-01 15:37:51 +09:00
f589da4317 Fix compilation error 2020-11-30 19:24:38 +09:00
688a04c2ff Make slider/spinner use pooled samples 2020-11-19 20:40:30 +09:00
04805b78c3 Tighten osu! ruleset lifetime expiry for past hitobjects 2020-11-17 23:20:19 +09:00
727a886fb3 Move spinner completion info into judgement 2020-11-14 23:08:47 +01:00
af392e3995 Move rate adjusted spinner rotation into judgement result 2020-11-14 21:10:12 +01:00
3f0a127196 Fix slider/spinner samples not being disposed 2020-11-12 18:51:58 +09:00
3f78d81386 Add nested osu! hitobject pooling 2020-11-12 15:59:48 +09:00
bf72961959 Add top-level osu! hitobject pooling 2020-11-12 15:39:02 +09:00
e190afbfed Remove initial value changed invocations 2020-11-07 00:00:25 +09:00
33b629a87a Make top-level osu! objects use new methods 2020-11-06 23:09:23 +09:00
0cadb31947 Merge branch 'master' into drawable-hit-object-hit-state-fix 2020-11-05 17:07:52 +09:00
400fcedf0f Remove stored hitobject references from skinnable components 2020-11-05 14:40:48 +09:00
9a7fcadabc Use BDL for top-level osu! DHOs 2020-11-05 13:51:46 +09:00
a3dc1d5730 Update existing implementations 2020-11-04 17:14:23 +09:00
692ca87bec Merge branch 'master' into fix-spinner-rewind-crash 2020-10-05 15:32:52 +09:00
26eff0120d Apply same fix for miss-triggering case
See 5888ecd - the same fix is applied here, but in the miss case.
2020-10-03 21:11:34 +02:00
5888ecdeb1 Fix spinner crashing on rewind 2020-10-04 01:08:24 +09:00