Bartłomiej Dach
e8a394f894
Fix argon volume-aware hitsounds not correctly playing immediately after object placement
...
Closes https://github.com/ppy/osu/issues/29832 .
The underlying reason for the incorrect sample playback was an equality
comparer failure.
Samples are contained in several pools which are managed by the
playfield. In particular, the pools are keyed by `ISampleInfo`
instances. This means that for correct operation, `ISampleInfo` has to
implement `IEquatable<ISampleInfo>` and also provide an appropriately
correct `GetHashCode()` implementation. Different audible samples must
not compare equal to each other when represented by `ISampleInfo`.
As it turns out, `VolumeAwareHitSampleInfo` failed on this, due to not
overriding equality members. Therefore, a `new
HitSampleInfo(HitSampleInfo.HIT_NORMAL, HitSampleInfo.BANK_NORMAL,
volume: 70)` was allowed to compare equal to a
`VolumeAwareHitSampleInfo` wrapping it, *even though they correspond to
completely different sounds and go through entirely different lookup
path sequences*.
Therefore, to fix, provide more proper equality implementations for
`VolumeAwareHitSampleInfo`.
When testing note that this issue *only occurs immediately after
placing an object*. Saving and re-entering editor makes this issue go
away. I haven't looked too long into why, but the general gist of it is
ordering; it appears that a `normal-hitnormal` pool exists at point
of query of a new object placement, but does not seem to exist when
entering editor afresh. That said I'm not sure that ordering aspect of
this bug matters much if at all, since the two `IHitSampleInfo`s should
never be allowed to alias with each other at all wrt equality.
2024-09-23 13:38:26 +02:00
Dean Herbert
36b4013fa6
Rename GameplaySkinComponentLookup
-> SkinComponentLookup
2024-08-22 18:46:03 +09:00
Dean Herbert
60d383448f
Avoid making non-ruleset transformers in Ruleset.CreateSkinTransformer
...
This didn't make any sense, so let's do it a better way.
2024-08-08 16:29:54 +09:00
Bartłomiej Dach
5fcea01c13
Merge branch 'master' into ruleset-specific-combo-counter
2024-06-04 15:44:11 +02:00
Dean Herbert
0d6adf160b
Share scale factor with hit target
2024-05-27 14:20:28 +09:00
Joppe27
76f13b21da
Correct scale of taiko-glow element
2024-05-25 23:28:51 +02:00
Bartłomiej Dach
2667cb8b36
Merge pull request #26703 from peppy/smaller-slider-misses
...
Adjust slider tick / end defaults again
2024-01-29 13:51:07 +01:00
Dean Herbert
b84457fd15
Merge branch 'master' into constant-taiko-input-drum-width
2024-01-26 17:18:26 +09:00
Dean Herbert
e78f0bc89b
Merge pull request #26631 from frenzibyte/refactor-taiko-playfield-layout
...
Rewrite osu!taiko playfield adjustment container to keep playfield height constant
2024-01-26 17:17:49 +09:00
Dean Herbert
5aa4235c3d
Simplify TaikoLegacyHitTarget
container hierarchy
2024-01-25 21:02:22 +09:00
Dean Herbert
dda96d7106
Rename JudgementPiece
to TextJudgementPiece
2024-01-25 19:31:57 +09:00
Salman Ahmed
d4fef99e1f
Define constant input drum width for osu!taiko
2024-01-20 01:46:15 +03:00
Salman Ahmed
0c03326eaf
Update remaining usages of playfield height
2024-01-20 01:45:39 +03:00
Salman Ahmed
ce4fd6aca5
Rename DEFAULT_HEIGHT
to BASE_HEIGHT
2024-01-19 23:58:58 +03:00
mouzedrift
cbfc6091af
apply proposed changes
2024-01-18 08:22:26 +01:00
mouzedrift
a870f99877
ease out input drum animation and add delay before fading out
2024-01-18 07:19:29 +01:00
Salman Ahmed
eedb436389
Move combo counter to ruleset-specific HUD components target
2023-12-30 03:47:52 +03: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
Dean Herbert
2886d2d4c2
Apply same changes to "argon" osu!taiko barline design that were applied to osu!mania
2023-10-25 14:20:43 +09:00
Salman Ahmed
bcbb77d383
Fix incorrect assumption in taiko circle piece logic
2023-10-24 02:29:46 +03:00
Salman Ahmed
ab3b51e4a0
Refactor osu!taiko circle piece logic to read better
2023-10-21 00:22:34 +03:00
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09: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
Salman Ahmed
ad86bf2d56
Revert redundant size limitations
...
Already handled by the sprites themselves being resized.
2023-09-21 19:03:59 +03:00
Salman Ahmed
291a91be66
Change extension from retrieval to post-processing instead
2023-09-19 03:40:30 +03:00
Dean Herbert
9d17539778
Add size limitations for taiko drum rolls
2023-09-05 18:01:19 +09:00
Salman Ahmed
d286816ba8
Add limit to taiko hit elements
2023-09-03 02:22:58 +03:00
Bartłomiej Dach
ba0cd7a3f2
Fix flourish sample not playing if strong hits are hit early
2023-07-08 19:22:32 +02:00
Bartłomiej Dach
055e4a78f0
Merge branch 'master' into taiko-hitsounding-final-attempt
2023-07-08 18:10:04 +02:00
Dean Herbert
755b82a308
Implement flourish trigger source via base class
2023-07-07 14:54:49 +09:00
Dean Herbert
9bdc80a749
Move flourish playback to own trigger source
2023-07-07 14:46:36 +09:00
Dean Herbert
6bfbcca2fd
Move VolumeAwareHitSampleInfo
to own file
2023-07-07 14:45:33 +09:00
Dean Herbert
48f27ff340
Move trigger source to own file
...
Having such a large nested class inside a small top level class is VERY
confusing.
2023-07-07 14:31:14 +09:00
Dean Herbert
759cd5aec7
Warm up pool with argon-specific drum samples
2023-07-05 18:44:27 +09:00
Dean Herbert
16f1a7694d
Add time-based flourish support
2023-07-05 18:44:27 +09:00
Dean Herbert
c72ebcfd53
Fix skin fallback not working as expected
2023-07-05 18:44:27 +09:00
Dean Herbert
010262c764
Change strong hit sample handling to be user input based, not hit object based
2023-07-05 18:44:27 +09:00
Dean Herbert
a9587fd1aa
Move strong hit handling to DrumSamplePlayer
and separte trigger sources
2023-07-05 18:44:27 +09:00
Dean Herbert
27af07b74b
Add basic implementation of argon osu!taiko hitsounds (volume / flourish / strong)
2023-07-05 18:44:27 +09:00
Dean Herbert
beed390031
Add balance adjust to base implementation of DrumSampleTriggerSource
2023-07-05 18:44:27 +09:00
Dean Herbert
ae86fc736a
Add argon-specific DrumSamplePlayer
2023-07-05 18:44:27 +09:00
Dean Herbert
f54eb8d7fa
Move DrumSamplePlayer
to be a skinnable component
2023-07-05 18:44:27 +09:00
Dean Herbert
3b9d7af9ee
Fix taiko hit overlay animation timing not accounting for timing section start time
2023-07-05 17:25:31 +09:00
Dean Herbert
3585c3f1d5
Apply required nullability changes
2023-06-24 09:58:36 +09:00
Dean Herbert
b986d1cee1
Rename variables to give more context
2023-06-12 14:18:26 +09:00
Xinnoh
0c42aa7f3b
lower kiai pulse brightness
2023-06-09 22:51:45 -07:00
Xinnoh
7bf73463f1
reduce argon kiai flashing
2023-06-09 22:46:07 -07:00
Dean Herbert
a18a2e48f7
Colour argon osu!taiko explosions based on the object hit
2023-06-06 15:49:03 +09:00
Dean Herbert
5e9fb1063a
Move judgement text creation to base class and tidy things up
2022-12-24 12:22:36 +08:00
Dean Herbert
03603f8b54
Don't show great or higher judgements when using argon "pro" skin
2022-12-24 03:35:44 +08:00