Dean Herbert
66f7b9fae1
Adjust slider follow circle animation to not abruptly scale on early ticks
2023-11-17 19:09:24 +09:00
Bartłomiej Dach
e5b51f769c
Fix incorrect assertion placement in spinner rotation tracker
...
Checking the delta after the application of rate is not correct. The
delta is in screen-space *before* the rate from rate-changing mods were
applied; the point of the application of the rate is to compensate for
the fact that the spinner is still judged in "track time" - but the goal
is to keep the spinner's difficulty *independent* of rate, which means
that with DT active the user's spin is "twice as effective" to
compensate for the fact that the spinner is twice as short in real time.
In another formulation, with DT active, the user gets to record replay
frames "half as often" as in normal gameplay.
2023-10-30 21:28:29 +01:00
Dean Herbert
fbba3787d1
Merge pull request #25190 from frenzibyte/match-skin-element-animation-support
...
Match capability of animating legacy skin elements with osu!(stable)
2023-10-30 18:25:06 +09:00
Bartłomiej Dach
99e590c8dd
Fix legacy sprite texts not matching stable with respect to fixed width
...
stable's `pSpriteText` has a `TextConstantSpacing` flag, that is
selectively enabled for some usages. In particular, these are:
- mania combo counter (not yet implemented)
- taiko combo counter (not yet implemented)
- score counter
- accuracy counter
- scoreboard entries (not yet implemented)
Everything else uses non-fixed-width fonts.
Hilariously, `LegacySpinner` _tried_ to account for this by changing
`Font` to have `fixedWidth: false` specified, only to fail to notice
that `LegacySpriteText` changes `Font` in its BDL, making the property
set do precisely nothing. For this reason, attempting to set `Font`
on a `LegacySpriteText` will now throw.
2023-10-27 20:14:39 +02:00
Bartłomiej Dach
c9cb0561f7
Move maxSizePerGlyph
optional ctor param to init-only property
...
I'm doing this as I'm about to add more similar properties to
`LegacySpriteText` and I don't want to create a twenty-argument
constructor monstrosity.
2023-10-27 19:48:10 +02:00
Dean Herbert
23ea128f30
Merge branch 'master' into velocity-based-ball-animation
2023-10-25 14:01:19 +09:00
Dean Herbert
121fa6f165
Simplify pre-checks in HitObjectApplied
delegate
2023-10-25 13:53:20 +09:00
Bartłomiej Dach
0e5a521695
Merge pull request #25157 from peppy/spinner-anti-cheese-final
...
Fix spinner cheese by accounting for spin directionality
2023-10-24 08:13:32 +02:00
Dean Herbert
ded99c4097
Simplify calculation
2023-10-24 14:32:03 +09:00
Salman Ahmed
ff66b74b0e
Refactor logic to support DHO pooling
2023-10-24 02:24:00 +03:00
Salman Ahmed
0cf572d029
Use existing property and fix nullability
2023-10-23 11:46:21 +03:00
Salman Ahmed
2a70c331b9
Remove animation support from osu! slider reverse arrow
2023-10-20 23:59:03 +03:00
Salman Ahmed
80ce78e05d
Remove animation support from osu! hit circle overlay
2023-10-20 23:59:03 +03:00
Salman Ahmed
7373a9a784
Remove unnecessary usage of ApplyWithDoubledAlpha
2023-10-20 23:54:29 +03:00
Salman Ahmed
ac8c2a173b
Apply velocity into legacy slider ball animation rate
2023-10-20 22:47:45 +03:00
Dean Herbert
ca3a3f600e
Update visuals of spinner implementations to show MAX score differently
2023-10-20 16:11:09 +09:00
Dean Herbert
181a98e8ef
Remove duplicate definition of bonus text in ArgonSpinner
2023-10-20 16:10:54 +09:00
Dean Herbert
f16400929d
Update bindable flow to expose every spin, even after max bonus is reached
2023-10-20 15:38:04 +09:00
Dean Herbert
54da6f1048
Merge pull request #25160 from bdach/repeat-arrow-hidden-fade
...
Adjust slider repeat transforms to closer match stable
2023-10-18 18:03:48 +09:00
Bartłomiej Dach
f3cda58474
Fix legacy slider repeats becoming much too large on hit
...
They had scale transforms applied to them in two places: the actual
legacy pieces themselves (esp. `LegacyHitCirclePiece`), and on the
`DrawableSliderRepeat` level.
This change moves all of the scale transforms to the skinnable pieces.
Argon and triangles have received a copy of the previous logic each,
so behaviour on those skins should not change.
2023-10-17 14:47:44 +02:00
Dean Herbert
af7180a5b5
Add SpinnerSpinHistory
and tests
2023-10-17 20:10:22 +09:00
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09:00
Dean Herbert
0bb95cfa88
Fix incorrect initial rotation transfer value
...
Should have been removed as part of https://github.com/ppy/osu/pull/24360 .
2023-10-16 19:34:55 +09:00
Dean Herbert
10bab61441
Tidy up lastAngle
usage and add assertion of maximum delta
2023-10-16 19:34:22 +09:00
Dean Herbert
159b24acf7
Rename RateAdjustedRotation
to TotalRotation
2023-10-16 18:25:03 +09:00
Dan Balasescu
84be714d6b
Fix large instantaneous delta on first frame
...
Happens when the first update frame comes in before any mouse input.
2023-10-16 18:17:11 +09:00
Dean Herbert
0b64852181
Limit sliderscorepoint
to hitcicle dimensions
...
You'd never use anything above this unless crazy.
2023-10-13 15:43:20 +09:00
Dean Herbert
17df2fdf01
Restrict followpoint
size
...
See https://github.com/ppy/osu/issues/24940#issuecomment-1760980461 .
2023-10-13 15:42:49 +09:00
Dean Herbert
ad6f04cfb0
Hotfix approach circle cutoff
2023-10-09 10:16:57 +02:00
Bartłomiej Dach
96bb8ed150
Apply feedback regarding maximum osu! element sizings
...
- `default-N` number sprites maximum size increased by 1.25x to a total
of 320x320 to counteract the 0.8x factor applied onto them when
displayed on a hitcircle.
- `sliderb` and parts' maximum size increased to 384x384, to match
`sliderfollowcircle`, as the two are apparently sometimes used
interchangeably by skinners to achieve different visual effects.
2023-10-05 22:33:49 +02:00
Bartłomiej Dach
0ae4a0f11f
Adjust gameplay element maximum size limits for backwards compatibility
...
The new limits were chosen by sampling across over 4000 skins. The
methodology for doing so is described in the following gist:
https://gist.github.com/bdach/6228ba41d128b23d1f89142f404108a3
2023-10-05 20:37:10 +02:00
Dean Herbert
16fcc4eaaa
Fix incorrect anchor/origin causing rotation to look wrong on legacy skin arrows
2023-10-03 12:32:52 +09:00
Dean Herbert
3aa51301e8
Add null checks in disposal flow
2023-10-02 22:28:33 +09:00
Dean Herbert
94e49a34fd
Adjust legacy reverse arrow implementation to match stable more closely
2023-10-02 22:26:57 +09:00
Dean Herbert
f0070eecf1
Add rotation support for very old skins
2023-10-02 20:09:39 +09:00
Dean Herbert
1bee7bf353
Add note about rotation
2023-10-02 19:22:24 +09:00
Dean Herbert
e4ac8362ec
Update other implementations to use non-beat-sync logic
2023-10-02 19:20:11 +09:00
Dean Herbert
8010410487
Stop beat syncing (and close match stable's implementation of arrow animation)
2023-10-02 19:17:35 +09:00
Dean Herbert
ad4e988520
Adjust reverse arrows to bounce more
2023-10-02 18:43:50 +09:00
Dean Herbert
455fc228ad
Add edge piece to argon reverse arrow
2023-10-02 18:43:50 +09:00
Dean Herbert
7dd9951c44
Split out reverse arrow implementations to allow better animation
2023-10-02 18:43:50 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions
2023-09-26 16:40:32 +09:00
Dean Herbert
8e16b1d507
Simplify some maximum size specs
2023-09-20 12:48:15 +09:00
Salman Ahmed
922f6f36f2
Add size limitation for hit object numbers
2023-09-19 04:38:10 +03:00
Salman Ahmed
ab5226832a
Add size limitation for slider reverse arrow piece
2023-09-19 04:38:10 +03:00
Salman Ahmed
b823507b2a
Add size limitation for approach circles
2023-09-19 04:38:10 +03:00
Salman Ahmed
f963a921db
Add size limitation for slider follow circle
2023-09-19 04:18:12 +03:00
Salman Ahmed
fc1a39ede3
Add size limitations for slider balls
2023-09-19 04:18:12 +03:00
Salman Ahmed
291a91be66
Change extension from retrieval to post-processing instead
2023-09-19 03:40:30 +03:00
Salman Ahmed
57dc76b345
Revert "Update GetTexture
signature rather than creating new overload"
...
This reverts commit 96f12cfbaa
.
2023-09-19 03:21:19 +03:00