Commit Graph

382 Commits

Author SHA1 Message Date
Dan Balasescu 0844a21a51 Merge branch 'master' into diffcalc-total-scorev1 2023-06-15 19:33:29 +09:00
Dan Balasescu aa644832dc Add ScoreV1 calculation for TaikoRuleset 2023-06-13 19:28:46 +09:00
Bartłomiej Dach 7acd186a3d
Revert to previous bound in drum roll tick generation
While `EndTime + tickSpacing` _was_ closer to what stable was using, it
could cause undesirable edge cases wherein a tick would be spawned
outside of the drum roll's duration
(see https://github.com/ppy/osu/pull/23768/files#r1222073027).

For this reason, stick with the old code for now, as it is not as
susceptible to that sort of breakage.
2023-06-08 09:56:39 +02:00
Bartłomiej Dach b6a1377955
Merge branch 'master' into fix-editor-drum-roll 2023-06-08 09:55:10 +02:00
Salman Ahmed 62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert 3db080fad2 Fix osu!taiko drum rolls not getting correct tick rate after placement in the editor 2023-06-06 16:54:33 +09:00
Dean Herbert b096e03a57 Fix ticks being created after the end of drum rolls in osu!taiko editor
Closes https://github.com/ppy/osu/issues/23135.
2023-06-06 16:31:59 +09:00
Dan Balasescu fee3d43596 Merge branch 'master' into scorev2 2023-05-23 19:07:54 +09:00
Bartłomiej Dach 9915fac2c8
Fix sample silence being one level too low
4a7b011a53 inadvertently unearthed that
nested strong hits could play samples of their own accord, rather than
delegating to `DrumSampleTriggerSource` as they were supposed to. This
was an unfortunate omission due to how the inheritance structure of
`TaikoHitObject` looks like (some irrelevant classes omitted for
brevity):

	DrawableTaikoHitObject
		DrawableTaikoHitObject<TObject> <-- `GetSamples()` was overridden to empty here
			DrawableTaikoStrongableHitObject
				DrawableHit
				DrawableDrumRoll
				DrawableDrumRollTick
			DrawableSwell
			DrawableSwellTick
		DrawableStrongNestedHit <-- all strong nested hits are here => didn't receive `GetSamples()` override
			DrawableHit.StrongNestedHit
			DrawableDrumRoll.StrongNestedHit
			DrawableDrumRollTick.StrongNestedHit

To fix, move the `GetSamples()` override one level higher, to the
non-generic `DrawableTaikoHitObject`, to suppress the spurious sample
playbacks.

The stale reference in the comment was also updated to match current
code.
2023-05-21 18:58:26 +02:00
Bartłomiej Dach 4a7b011a53
Propagate samples to strong nested hits too
The rationale is the same as in
6d325651dc. Due to the recursive nature of
`GameplaySampleTriggerSource.GetMostValidObject()`, in the case of
nested hits, drum rolls and drum roll ticks, the nested strong hits
would become the most valid object, and so without propagating
the samples down to that level too, nothing would play.
2023-05-21 18:58:05 +02:00
Bartłomiej Dach 6d325651dc
Propagate samples to drum roll/swell ticks for correct playback
In d97daee96b, `DrumSampleTriggerSource`
was changed such that in order to play sounds for the user's inputs, the
bank of the normal sound would always be used.

The problem is that in the case of taiko objects which have nested
objects (swells and drum rolls), the samples were not propagated fully
(drum rolls, where only the finish sample was kept, for the purposes of
determining strongability), or not propagated at all (swells) to ticks.

As ticks of both objects are valid return values of
`GetMostValidHitObject()`, this would lead to the drum making no sounds
if the next object was a drum roll or swell, until that drum roll or
swell was completed. To fix, propagate the full set of samples, so that
`DrumSampleTriggerSource` can retrieve the normal sound to copy the bank
from.

Note that this may not necessarily reproduce prior behaviour. This is
because it is not guaranteed that all realised samples for a given
hitobject have the same bank - some may have been overriden locally on a
given hitobject. Previously, the bank would have been retrieved from the
sample control point, wherein there is only one possible bank to use;
however, when deciding the sound to play on the basis of a constructed
hitobject, it is possible that there are cases wherein the hitnormal
sample was overridden on that given hitobject, and in such cases, this
PR would make samples _play_, but not necessarily the _same_ samples
as prior to #23308.

If that turns out to be the case, this will have to be revisited.
2023-05-21 18:57:01 +02:00
Dean Herbert dc51d5ecf3 Rename `GetSampleInfo` to better describe what method does
Also add full xmldoc
2023-05-17 14:07:48 +09:00
Dean Herbert 31fff72eb6 Fix bank not correctly being assigned to some taiko hit cases 2023-05-16 18:52:52 +09:00
Dan Balasescu 5afe57033d Add parent hitobject to strong hits 2023-05-09 19:30:54 +09:00
OliBomby 41d4894aa3 add min and max value to SliderVelocity 2023-04-30 19:32:24 +02:00
OliBomby 92efd04f31 fix sample of drumroll ticks being bankless 2023-04-29 23:52:24 +02:00
OliBomby c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
Dean Herbert da8ab7143b
Merge branch 'master' into maximum-judgement-offset-in-hit-object 2023-02-15 14:48:15 +09:00
Bartłomiej Dach 67b6df3172
Reword ambiguous xmldoc 2023-02-12 13:31:29 +01:00
Dean Herbert 9d09141ab7 Move taiko-specific property out of `DrawableHitObject` 2023-02-12 16:09:28 +09:00
Dean Herbert 34d1890f1c Change snapping to only apply to classic mod 2023-02-09 18:22:14 +09:00
OpenSauce df1355ea4b Taiko hit objects now snap to hit target 2023-02-08 10:59:08 +00:00
ekrctb 11e1b22bf5 Move MaximumJudgementOffset to HitObject
We want to access this property for computing lifetime
2023-01-19 21:23:55 +09:00
Dan Balasescu 7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Bartłomiej Dach 7379f6fe20
Merge branch 'master' into argon-taiko 2022-11-12 01:56:30 +09:00
Dan Balasescu 8063dcd74a
Merge pull request #21148 from peppy/taiko-barline-separation
Move major barline portion to default implementation to allow for further customisation
2022-11-11 16:40:51 +09:00
Dan Balasescu 1a1a186d22 Merge branch 'master' into taiko-barline-separation 2022-11-11 15:47:06 +09:00
Dan Balasescu f25a8ee4a6 Merge branch 'master' into taiko-tick-trackiung 2022-11-11 15:41:06 +09:00
Dan Balasescu 606d42c679
Merge pull request #21184 from peppy/skinnable-things-cleanup
Skinnable class naming pass
2022-11-10 12:52:08 +09:00
Dean Herbert 1aa0e40f2f Add "Component" prefix to lookup naming 2022-11-09 17:46:43 +09:00
Dean Herbert c908969d9b Rename `ISkinComponent` to `ISkinLookup` 2022-11-09 17:46:43 +09:00
Dean Herbert aa7d0e2c96 Remove triangles skin specific implementation from base `DrawableHit` 2022-11-08 15:22:00 +09:00
Dean Herbert aa61eb8f4b Add note about taiko pooling oversight 2022-11-07 18:32:12 +09:00
Dean Herbert 938a8f865b Adjust transform of taiko drum roll ticks to not scale to 0 (looks bad) 2022-11-07 18:32:12 +09:00
Dean Herbert 2648175275 Merge branch 'taiko-barline-separation' into taiko-fixes-combined 2022-11-07 18:32:09 +09:00
Dean Herbert 1975385cc7 Move first tick tracking logic inside `TickPiece` 2022-11-07 15:26:34 +09:00
Dean Herbert c69a4f9333 Move major barline portion to default implementation to allow for further customisation
Of note, this removes the "major" barline triangles from legacy skins. I
think this is more correct, as they did not display in stable.
2022-11-07 14:29:58 +09:00
sw1tchbl4d3 0cffbb7562 Clamp `LifetimeStart` of `HitObject`'s to their judgement windows 2022-09-27 16:54:24 +02:00
Dan Balasescu a2f8ff825e Also ignore drum roll strong judgement 2022-09-06 23:26:25 +09:00
Dan Balasescu 792b410c04 Merge branch 'master' into classic_drumrolls 2022-09-06 16:29:45 +09:00
sw1tchbl4d3 a9aa928ce6 Fix test, make strong hits have LargeBonus judgement 2022-08-30 15:00:46 +02:00
sw1tchbl4d3 b185194d07 Apply comments by smoogi 2022-08-30 14:44:44 +02:00
Dean Herbert a215d009fe Update `Remove`/`RemoveRange`/`RemoveAll` calls in line with framework changes 2022-08-29 15:57:40 +09:00
Dean Herbert ad28bfc9b2 Fix taiko blueprints displaying incorrectly for drum rolls 2022-08-18 17:18:11 +09:00
sw1tchbl4d3 e0426836c1 Make swells and drumrolls optional by default 2022-08-05 16:30:07 +02:00
sw1tchbl4d3 0a0f3c93dd Rename OkResult, rephrase "strong bonus" 2022-07-24 20:55:13 +02:00
Justin a4f3a0d201
Merge branch 'master' into classic_drumrolls 2022-07-24 18:33:04 +00:00
Salman Ahmed 1051009827 Change bindable properties in all `HitObject`s to be lazily initialised 2022-07-19 05:39:10 +03:00
Dean Herbert 31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Bartłomiej Dach 3497e966fd
Revert no longer needed access modifier change 2022-06-24 13:01:16 +02:00