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
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
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
eedb436389
Move combo counter to ruleset-specific HUD components target
2023-12-30 03:47:52 +03: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
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09:00
Bartłomiej Dach
ba0cd7a3f2
Fix flourish sample not playing if strong hits are hit early
2023-07-08 19:22:32 +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
b986d1cee1
Rename variables to give more context
2023-06-12 14:18:26 +09: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
Dean Herbert
727ac00f6d
Combine base class for JudgementPiece
2022-12-24 03:32:13 +08:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
45f47cce77
Add basic osu!taiko "argon" swell visual
2022-11-16 16:13:52 +09:00
Dean Herbert
233d45e185
Fix argon swells incorrectly flashing on every hit
2022-11-15 18:28:13 +09:00
Bartłomiej Dach
8b8147c321
Rename {catch -> taiko}Component
2022-11-12 03:05:03 +09:00
Bartłomiej Dach
6a4c97b4f1
Fix code inspection
2022-11-12 02:20:19 +09:00
Bartłomiej Dach
7ef11cab8b
Adjust taiko argon transformer to new naming
2022-11-12 02:10:10 +09:00
Dean Herbert
30890644a8
Flash piece when hit
2022-11-08 15:31:45 +09:00
Dean Herbert
01803c3f13
Adjust judgement text to be more visible
2022-11-08 15:08:52 +09:00
Dean Herbert
d57ec4b227
Add argon input drum implementation
2022-11-07 18:32:12 +09:00
Dean Herbert
b15d1bc333
Add argon result display implementation
2022-11-07 18:32:12 +09:00
Dean Herbert
d5c375b139
Add argon hit explosion implementation
2022-11-07 18:32:12 +09:00
Dean Herbert
e2046791c2
Add argon drum roll ticks
2022-11-07 18:32:12 +09:00
Dean Herbert
f1556c98e3
Add drum roll implementation
2022-11-07 18:32:12 +09:00
Dean Herbert
6636545195
Move taiko argon hit icon to respective centre/rim pieces
2022-11-07 18:32:12 +09:00
Dean Herbert
529e3217cf
Add barline implementation
2022-11-07 18:32:12 +09:00
Dean Herbert
f1a1f29da7
Add hit target implementation
2022-11-07 18:32:12 +09:00
Dean Herbert
421bdd2c1a
Add playfield background implementations
2022-11-07 18:32:12 +09:00
Dean Herbert
bc0e9375af
Add basic argon hits
2022-11-07 18:32:12 +09:00
Dean Herbert
baf8db8de4
Add basic setup for taiko argon skinning
2022-11-07 18:32:12 +09:00