1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 05:42:56 +08:00
Commit Graph

1872 Commits

Author SHA1 Message Date
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
56758afeed Add note about lastTickHittable requirement 2023-06-06 17:01:52 +09: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
Dean Herbert
a18a2e48f7 Colour argon osu!taiko explosions based on the object hit 2023-06-06 15:49:03 +09:00
Dan Balasescu
e402c6d2b4 Write max combo attribute from base class 2023-06-02 21:53:25 +09:00
Dean Herbert
985604fab5 Return StatisticItems rather than StatisticRows from ruleset
There were no usages of more than one column being provided per row, so
it seemed like unnecessarily complexity. I'm currently trying to reduce
complexity so we can improve the layout of the results screen, which
currently has up to three levels of nested `GridContainer`s.

Of note, I can't add backwards compatibility because the method
signature has not changed in `Ruleset` (only the return type). If we do
want to keep compatibility with other rulesets, we could designate a new
name for the updated method.
2023-06-01 14:35:15 +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
Dan Balasescu
30a296bd09 Rename parameters 2023-05-19 17:27:02 +09:00
Dan Balasescu
d74bf2a096 Refactor for safety 2023-05-19 14:37:26 +09:00
Dan Balasescu
2ae34530f7 Avoid NaN values during ApplyBeatmap processing() 2023-05-19 14:14:34 +09:00
Dan Balasescu
7cbf48ffcf Fix TestSceneScoring and incorrect combo calculations 2023-05-19 14:09:19 +09:00
Dan Balasescu
4d14467d95 Invert order of operations 2023-05-19 13:23:04 +09:00
Dan Balasescu
8b56a3f87d Remove ClassicScoreMultiplier and DefaultScoreProcessor 2023-05-19 12:24:52 +09: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
Dean Herbert
f443cfb93e Move blueprint validity conditions to allow more correct external usage of EndPlacement
Until now, these were haphazardly enforce inline in blueprint
implementations. The only thing stopping complete breakage is that
`EndPlacement` wasn't called (too much) from outside the blueprint,
leaving them responsible for their own placement.

By moving this conditional out of the provided paramters to
`EndPlacement`, it allows more flexible usage of that method externally.
Coming in a future PR.
2023-05-12 16:02:22 +09:00
Dan Balasescu
a7b623f52a Reimplement classic scoring mode 2023-05-09 20:21:38 +09:00
Dan Balasescu
3c3c812ed6 Initial implementation of ScoreV2 2023-05-09 19:33:33 +09:00
Dan Balasescu
5afe57033d Add parent hitobject to strong hits 2023-05-09 19:30:54 +09:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
41d4894aa3 add min and max value to SliderVelocity 2023-04-30 19:32:24 +02:00
OliBomby
4a0ff046ae pass new hitobject properties through beatmap converters 2023-04-30 19:20:42 +02:00
OliBomby
92efd04f31 fix sample of drumroll ticks being bankless 2023-04-29 23:52:24 +02:00
sw1tchbl4d3
76df5fd3e2 Limit taiko playfield aspect ratio to 5:4 - 16:9 2023-04-26 18:05:47 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
9f8d7bccba fix usings 2023-04-26 17:34:02 +02:00
OliBomby
d97daee96b remove all non-test usage of SampleControlPoint 2023-04-26 13:55:39 +02:00
OliBomby
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
OliBomby
ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
OliBomby
a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
Dan Balasescu
ad51f880e0 Remove overrides on DC/NC mods 2023-04-10 17:49:29 +09:00
Dan Balasescu
15f6bc155e Add progressive score multiplier for HT 2023-04-10 13:35:48 +09:00
Dan Balasescu
c923482976 Add progressive score multiplier for DT 2023-04-10 13:31:48 +09:00
Bartłomiej Dach
7d9327f3e2
Only allow hit placement when left mouse is clicked 2023-04-04 18:40:10 +02:00
Bartłomiej Dach
f42a463479
Remove #nullable disable
May as well that we're here...
2023-04-03 20:14:17 +02:00
Bartłomiej Dach
ed07c0640b
Remove unused using directive 2023-04-03 20:13:59 +02:00
Dean Herbert
be79ea1c10 Remove left/right click based placement in taiko editor and respect sample selection 2023-04-03 18:14:58 +09:00
Dan Balasescu
9866321d27
Merge branch 'master' into taiko-single-tap 2023-03-09 13:24:20 +09:00
Bartłomiej Dach
430b09acb2
Expose taiko input manager in same manner as osu! 2023-03-08 22:52:06 +01:00
OpenSauce04
b2d453fd2e Fixed indentation 2023-03-06 11:44:00 +00:00
OpenSauce04
36108ea841 Moved CheckValidNewAction checks into checkCorrectAction 2023-03-06 11:11:38 +00:00
OpenSauce04
4ae2661f1b Removed useless null checks 2023-03-06 11:00:37 +00:00
OpenSauce04
ac6c8e600a Updated a comment for correctness 2023-03-06 10:59:47 +00:00
OpenSauce04
a7be59175d Made private + renamed Taiko Single Tap tracking variables for better readability 2023-03-06 10:59:22 +00:00
OpenSauce04
50b0fca264 Code formatting 2023-03-03 18:11:29 +00:00
OpenSauce04
865f785f50 Fixed an issue where Taiko's Single Tap could allow alternation under very specific circumstances 2023-03-03 17:13:39 +00:00
OpenSauce04
d4bb08a440 Fixed CodeInspector complaining 2023-02-28 18:38:09 +00:00
OpenSauce04
0a76c8ee7f Further simplified a type check 2023-02-28 15:41:06 +00:00
OpenSauce04
8851da05f1 Merge branch 'taiko-single-tap' of https://github.com/OpenSauce04/osu into taiko-single-tap 2023-02-28 15:37:54 +00:00
OpenSauce04
616f7b3f64 Simplified a type check 2023-02-28 15:37:46 +00:00
OpenSauce
781da032e9
Merge branch 'master' into taiko-single-tap 2023-02-28 15:22:41 +00:00
OpenSauce04
3aa8c81c5d Added missing mod incompatabilities 2023-02-28 15:20:53 +00:00
OpenSauce04
7c84a84fbe Removed TaikoInputBlockingMod, and instead moved code into TaikoModSingleTap 2023-02-28 15:14:03 +00:00
Dean Herbert
044b0604b2 Move OmitFirstBarLine to TimingControlPoint 2023-02-28 19:29:31 +09:00
OpenSauce04
beb04379f9 Inverted an if statement for code clarity 2023-02-27 22:36:09 +00:00
OpenSauce
8d747f2402
Fixed grammar mistake in Taiko Relax mod description 2023-02-27 16:06:33 +00:00
OpenSauce
25ef1f199d
Update description for Taiko Single Tap mod 2023-02-27 15:22:06 +00:00
OpenSauce04
12a2037086 Removed useless TaikoAction check from TaikoInputBlockingMod 2023-02-27 14:39:12 +00:00
OpenSauce04
d823faed08 Remove unused flash_duration const 2023-02-27 14:33:47 +00:00
OpenSauce04
dd9194b976 Code formatting fix 2023-02-27 13:58:40 +00:00
OpenSauce04
12b983495c Fixed issues caused by branch being stale 2023-02-27 13:40:55 +00:00
OpenSauce04
f2cada4584 Strong drumrolls no longer allow all actions to be used 2023-02-27 13:18:08 +00:00
OpenSauce04
b883c6af34 Renamed all instances of Taiko's InputBlockingMod to TaikoInputBlockingMod 2023-02-27 13:18:08 +00:00
OpenSauce04
715df42a69 Strong hits are now allowed to be hit 2023-02-27 13:18:08 +00:00
OpenSauce04
17a05de107 Initial Taiko single tap implementation (still needs code to allow for Strong hits) 2023-02-27 13:18:08 +00: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
ad8b01b478
Merge pull request #22589 from sw1tchbl4d3r/file_hitsample_additions
Always add to additions soundbank in `convertSoundType`
2023-02-10 17:14:29 +09:00
sw1tchbl4d3
51816b92c6 Add conversion tests 2023-02-09 23:23:58 +01:00
sw1tchbl4d3
2e2ab4081b Make LargeBonus a valid HitResult in taiko 2023-02-09 21:22:34 +01: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
Bartłomiej Dach
11685d427a
Merge branch 'master' into taiko-touch-ddkk-new 2023-02-04 21:54:38 +01:00
Dean Herbert
bc02fb0e32 Remove redundant parameter in DrumSegment constructor 2023-02-03 16:37:35 +09:00
Dean Herbert
ffbaf453f8 Revert misordered drawable order
This will completely change the visual appearance of this control... not
sure why it was changed.
2023-02-02 16:25:23 +09:00
Dean Herbert
eb62ba09aa Completely refactor to match project code standards 2023-02-02 16:23:27 +09:00
Dean Herbert
b182178340
Merge pull request #22325 from sw1tchbl4d3r/sv_scaling
Move fixed scroll speed change out of classic mod for taiko
2023-01-25 12:55:43 +09:00
sw1tchbl4d3
d4e5d7a873 Move fixed scroll speed change out of classic mod for taiko 2023-01-21 22:29:28 +01:00
ekrctb
11e1b22bf5 Move MaximumJudgementOffset to HitObject
We want to access this property for computing lifetime
2023-01-19 21:23:55 +09:00
Dean Herbert
70cb23bbc9
Merge branch 'master' into mod-accuracy-challenge 2023-01-17 16:46:54 +09:00
OpenSauce04
25a920732f Addressed code formatting issues 2023-01-12 19:04:37 +00:00
OpenSauce
92def3daf4 Renamed QuarterCircle class to DrumSegment 2023-01-12 18:20:03 +00:00
OpenSauce
f2ec0b2176 Made QuarterCircle property loading less clapped 2023-01-12 18:17:50 +00:00
OpenSauce
927fccb7be Taiko touch control scheme can now be changed mid-map 2023-01-12 17:55:05 +00:00
OpenSauce
767c3cb523 Revert "getTaikoActionFromDrumSegment and getColorFromTaikoAction are now run from within QuarterCircle constructor"
This reverts commit 985b126cba.
I really don't think this is going to work cleanly
2023-01-12 17:20:07 +00:00
OpenSauce04
985b126cba getTaikoActionFromDrumSegment and getColorFromTaikoAction are now run from within QuarterCircle constructor 2023-01-12 16:06:03 +00:00
OpenSauce
026a223129
Cleaner way of getting ForceControlScheme value
Co-authored-by: Susko3 <Susko3@protonmail.com>
2023-01-11 20:39:45 +00:00
OpenSauce04
a0ff03def3 Fixed some formatting 2023-01-11 20:06:43 +00:00
OpenSauce
32d1d5a34a Added tests for new Taiko touch control schemes 2023-01-11 12:04:52 +00:00
OpenSauce
944c6759d9
Fixed right rim being incorrectly layered above right centre 2023-01-10 23:13:22 +00:00
OpenSauce04
ce37760b27 Removed unnecessary coma 2023-01-10 20:05:41 +00:00
OpenSauce04
57467e7b39 Touchscreen drum now uses a 2d array rather than nested switches to get TaikoActions for control scheme 2023-01-10 20:04:57 +00:00
OpenSauce04
2b58862567 Added ArgumentOutOfRangeException throws 2023-01-10 19:31:31 +00:00
OpenSauce04
2800eeac56 Simplified formatting; Removed warning suppressors 2023-01-10 19:23:49 +00:00
OpenSauce04
3c13d64d1e Merge branch 'taiko-touch-ddkk-new' of https://github.com/OpenSauce04/osu into taiko-touch-ddkk-new 2023-01-10 19:21:06 +00:00
OpenSauce04
edd2084a0e Replaced all instances of TaikoInput with TaikoAction 2023-01-10 19:21:04 +00:00
OpenSauce
7cb5ca905a
Simplified getColourFromTaikoAction switch case
Co-authored-by: Stedoss <29103029+Stedoss@users.noreply.github.com>
2023-01-10 19:17:33 +00:00
OpenSauce
18e114904a
configTouchControlScheme is now read only
Co-authored-by: Stedoss <29103029+Stedoss@users.noreply.github.com>
2023-01-10 19:13:10 +00:00
OpenSauce04
21b617062a Removed an unnecessary newline 2023-01-10 16:24:02 +00:00
OpenSauce04
362c9050df Fixed OsuColour shenanigans 2023-01-10 15:08:18 +00:00
OpenSauce
b3e620c8e5 Removed unnecessary parameter 2023-01-10 13:07:07 +00:00
OpenSauce
bf555e4579 Removed unnecessary directives that were added automatically and I forgot to remove 2023-01-10 12:44:27 +00:00
OpenSauce
ffd6168a61 Removed unnecessary newlines 2023-01-10 12:13:51 +00:00
OpenSauce
906ea80d52 Further improved method of getting OsuColour 2023-01-10 12:11:33 +00:00
OpenSauce
a8f4f00421 Removed nullable 2023-01-10 12:04:06 +00:00
OpenSauce
4949b44888 Updated touch control scheme setting capitalization to be consistent with the rest of the settings menu 2023-01-10 11:57:21 +00:00
OpenSauce
b694e0d441 Added a comment and fixed some wonky formatting 2023-01-10 11:43:28 +00:00
OpenSauce
e3d14db285 Removed unnecessary QuarterCircle paramenters 2023-01-10 11:38:32 +00:00
OpenSauce
fd054081b8 Better name for touch control scheme config bindable 2023-01-10 11:30:52 +00:00
OpenSauce
3785dd0136 Taiko touch control scheme is now read from settings 2023-01-10 11:26:34 +00:00
OpenSauce
ee80cc988e Fixed drums not displaying correctly; Fixed typo on a function name 2023-01-10 10:32:00 +00:00
OpenSauce04
46ffded1db Taiko touch control scheme setting now *almost* works (need to implement getting control scheme from config); Drum display is incorrect 2023-01-10 08:27:21 +00:00
OpenSauce04
85396ba9d4 Added ruleset config stuff for Taiko; Added ruleset settings entry for Taiko touch control scheme 2023-01-09 19:26:43 +00:00
Dean Herbert
07eadba6d3
Merge pull request #21883 from sw1tchbl4d3r/allow_4_3
Allow aspect ratios smaller than the default in taiko
2023-01-09 16:30:19 +09:00
Dean Herbert
4a77105e78 Rename LockPlayfieldAspect and add comment explaining the change 2023-01-09 16:28:09 +09:00
Dean Herbert
98483d2a1b
Merge pull request #21638 from Mogiiii/touchscreen-control-disable-mouse
Disable touchscreen controls responding to mouse in scrolling gamemodes
2023-01-06 20:39:09 +08:00
sw1tchbl4d3
9021cf7be6 Allow aspect ratios smaller than the default in taiko 2022-12-28 11:42:34 +01:00
Berkan Diler
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01: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
Dean Herbert
d6cae991da Update netstandard2.1 references to net6.0 2022-12-16 17:16:13 +09:00
Dylan Nantz
ee945c9b58 disable mouse input to touchscreen controls 2022-12-14 10:34:21 -05:00
Dean Herbert
2fd535ea20 Apply same immediate transform logic to TaikoLegacyPlayfieldBackgroundRight to fix it sticking during rewind 2022-12-02 17:33:18 +09:00
Dean Herbert
ebc75d40d2 Switch to using immediate transforms to make rewind handle better 2022-12-02 17:32:57 +09:00
Dean Herbert
47855de6ab Fix multiple issues with transform handling 2022-12-02 16:55:38 +09:00
Joppe27
a7f4325d3c Revert hacky fade value and fix test 2022-12-01 12:16:58 +01:00
Joppe27
f9a9ab1d9b Use BeatSyncedContainer and adjust values to be in line with stable 2022-11-30 19:50:47 +01:00
Joppe27
f3fa39f254 Add legacy taiko kiai glow element 2022-11-30 00:44:20 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
b381b4fd2d Merge branch 'master' into update-framework 2022-11-24 01:27:58 +09:00
Dean Herbert
23f91ec717
Merge pull request #21379 from Joppe27/taiko-animations-recovered
Add taiko hit overlay animations
2022-11-23 15:09:44 +09:00
Bartłomiej Dach
6e9d163c72
Specify canBeNull: true in [Resolved] for now 2022-11-22 20:56:07 +01:00
Bartłomiej Dach
ce7af0df63
Always use current timing point for circle piece animation
Using `LifetimeStart` seemed arbitrary and wrong not only in a
compatibility-with-stable sense, but also in a general sanity sense (why
would each object potentially be using a different timing point to
animate?)
2022-11-22 20:39:22 +01:00
Bartłomiej Dach
38f2a27f53
Split animation logic to its own method
Also add a guard, to bypass all of it if the foreground layer is not in
fact animatable.
2022-11-22 20:39:05 +01:00
Joppe27
5343f6922c Add legacy circle piece animations based on combo 2022-11-22 17:22:00 +01:00
Terochi
eff6c7be64 Removed unnecessary methods, changed tests, and moved LimitedCapacityQueue.cs to a more generic namespace. 2022-11-19 16:53:35 +01:00
Dean Herbert
06ce8130c2 Apply changes in line with framework NRT updates 2022-11-18 18:13:15 +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