1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 19:07:25 +08:00
Commit Graph

1906 Commits

Author SHA1 Message Date
Dean Herbert
c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv 2023-09-20 14:23:07 +09:00
Salman Ahmed
291a91be66 Change extension from retrieval to post-processing instead 2023-09-19 03:40:30 +03:00
Dean Herbert
56cc2b62f0 Make not extension method 2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff Move to extension method and throw on non-legacy ruleset 2023-09-15 17:38:34 +09:00
Givikap120
1a70110a4e Added BeatmapAttributesDisplay support 2023-09-12 16:44:44 +03:00
Givikap120
c61212c523
Merge pull request #1 from Givikap120/master
add display to calibrate
2023-09-12 13:02:19 +03:00
Dean Herbert
4ecc4632aa Make rounding error even less precise
Basically matching the old code more closely to avoid too much precision
from doing math in a slightly different way.
2023-09-12 18:41:09 +09:00
Dan Balasescu
628517569b Fix another difficulty-specific value 2023-09-08 21:08:09 +09:00
Dan Balasescu
2334be1987 Split legacy scoring attributes into a separate object 2023-09-07 21:10:38 +09:00
Dean Herbert
b34a36f6ce Remove all usage of LegacyDifficultyControlPoint 2023-09-07 17:41:57 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09: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
Dean Herbert
37c2b330a2 Move toggle implementation to work on all scrolling rulesets automatically 2023-09-01 19:53:10 +09:00
Dean Herbert
0f5eff1230 Merge branch 'master' into mania-edit-disable-sv 2023-09-01 19:08:48 +09:00
Givikap120
290f8db341 fixed stated problems
removed functions from `Ruleset.cs` and added a `GetEffectiveDifficulty()` instead
2023-08-26 02:13:14 +03:00
Givikap120
17b9b1649a Fixed "works only for std" problem
1) Now it use AR/OD calculation from Ruleset class
2) Implemented needed functions in each of default rulesets
2023-08-25 00:58:26 +03:00
Dan Balasescu
a2fd7707a1 Allow toggling SVs in the editor 2023-08-18 18:55:24 +09:00
OliBomby
71a96e8be2 Remove SV from DrumRoll 2023-08-13 21:47:13 +02:00
Bartłomiej Dach
6d018c08af
Rename Apply{Vertical -> Horizontal}Centering to match common understanding 2023-07-28 22:09:28 +02:00
Dean Herbert
deba6e2508 Fix osu!taiko editor playfield missing a piece
Regressed with recent centering changes in https://github.com/ppy/osu/pull/24220
2023-07-27 02:24:10 +09:00
Bartłomiej Dach
7e98d319d8
Use update-invariant way of checking for second press on same frame
Fixes the same issue that 970ea50269 did,
but with no `AlwaysPresent` usage.
2023-07-25 20:07:03 +02:00
chayleaf
970ea50269 fix alive hitobjects blocking hits in taiko with hd 2023-07-20 23:20:35 +07:00
Bartłomiej Dach
041e818892
Fix nested hits not being hittable if cut off by parent object ending 2023-07-15 18:44:47 +02:00
Bartłomiej Dach
9e960894c2
Add inline commentary about OnKilled() override 2023-07-15 18:22:04 +02:00
chayleaf
3e91d30825 move StrongNestedHit OnKilled to DrawableStrongNestedHit 2023-07-15 22:33:16 +07:00
chayleaf
7f957d3fbe Fix some taiko maps not finishing in some conditions
I don't know how to reproduce this issue in a test, so no tests for now.
Nonetheless, this fixes the issue for me at least on one map:
https://osu.ppy.sh/beatmapsets/1899665#taiko/3915653

This workaround is similar to #16475 (the test from that commit got
eventually removed for some reason).
2023-07-15 20:24:40 +07:00
Bartłomiej Dach
632077319f
Fix taiko statistics table not using 2-column layout 2023-07-13 20:06:53 +02:00
Bartłomiej Dach
16540d69d5
Merge pull request #24206 from peppy/results-screen-misc
Fix some minor issues with results screen
2023-07-13 19:49:49 +02:00
Dean Herbert
9ad63bae37 Add missing heading for statistics section in results screen 2023-07-13 18:50:52 +09:00
Dean Herbert
259ac6d427 Fix osu!taiko swells eating input after already being judged 2023-07-13 13:32:20 +09:00
Bartłomiej Dach
7be5e0e978
Implement back-and-forth conversion of ModScoreV2 and LegacyMods 2023-07-09 16:15:21 +02: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
fee56ac6d2
Use new IGameplayClock.IsRewinding member 2023-07-08 18:29:49 +02:00
Bartłomiej Dach
055e4a78f0
Merge branch 'master' into taiko-hitsounding-final-attempt 2023-07-08 18:10:04 +02:00
Dean Herbert
a76cd9b0e6
Update osu.Game.Rulesets.Taiko/UI/DrumSamplePlayer.cs
Co-authored-by: Jamie Taylor <me@nekodex.net>
2023-07-08 00:44:26 +09:00
Dean Herbert
d72765b6f8
Merge pull request #24114 from peppy/editor-save-local-score-management
Ensure scores always have the correct linked `BeatmapInfo`
2023-07-07 15:40:54 +09:00
Dean Herbert
8b5d5c9ae2 Fix rewinding causing incorrectly stronged non-strong hits 2023-07-07 15:13:25 +09: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
d4c252ddf9 Revert cancelling logic changes based on review feedback 2023-07-07 14:28:57 +09:00
Dean Herbert
0b5a3d6a91
Merge pull request #24120 from peppy/fix-taiko-animation-timing
Fix taiko hit overlay animation timing not accounting for timing section start time
2023-07-07 13:05:20 +09:00
Dean Herbert
5af4aa8741 Avoid strong hits cutting off other strong hits 2023-07-06 14:05:49 +09:00
Dean Herbert
9ff6b3fcd3 Merge branch 'master' into editor-save-local-score-management 2023-07-06 12:28:44 +09:00
Bartłomiej Dach
a87a631c50
Merge branch 'master' into taiko-hitsounding-final-attempt 2023-07-05 22:15:32 +02:00
Bartłomiej Dach
afc0c4f3c2
Merge pull request #24088 from peppy/taiko-hitsounding-drum-sample-player
Move all remaining osu!taiko sample playback logic out of `DrawableHitObject`s
2023-07-05 21:57:49 +02:00
Dean Herbert
8f61f5e4c6 Cache Playfield for the sake of tests
I'm open to an alternative. Name it.
2023-07-05 18:44:27 +09:00
Dean Herbert
289f916cd7 Remove outdated TODO 2023-07-05 18:44:27 +09:00
Dean Herbert
759cd5aec7 Warm up pool with argon-specific drum samples 2023-07-05 18:44:27 +09:00
Dean Herbert
f086908831 Don't attempt to play drum samples when rewinding 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
9a7bf1bedd Fix reversed order of sample return 2023-07-05 18:44:01 +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
1629024111 ILegacyScoreProcessor -> ILegacyScoreSimulator 2023-07-04 17:32:54 +09:00
Dean Herbert
d74b1e148d Make ScoreInfo.BeatmapInfo nullable 2023-07-04 14:50:34 +09:00
Dean Herbert
571dbf5ab8 Adjust logic to avoid creating List<> each playback 2023-06-30 15:42:58 +09:00
Dean Herbert
c98abf1723 More correctly handle StrongNestedHitObjects 2023-06-30 15:38:17 +09:00
Dean Herbert
e87cf6d256 Move all remaining osu!taiko sample playback logic out of DrawableHitObjects 2023-06-30 15:21:34 +09:00
Dan Balasescu
c6ad184d94 Move Ruleset method to ILegacyRuleset interface 2023-06-29 17:24:37 +09:00
Dan Balasescu
09bc8e45de Refactoring 2023-06-28 16:14:32 +09:00
Dan Balasescu
5f350aa66f Fix float division
Firstly, this is intended to be a float division.

Secondly, dividing integers by 0 results in an exception, but dividing
non-zero floats by 0 results in +/- infinity which will be clamped to
the upper range.
In particular, this occurs when the beatmap has 1 hitobject (0 drain
length).
2023-06-27 17:14:35 +09:00
Dan Balasescu
a9c65d200a Initial conversion of scores 2023-06-26 22:19:01 +09:00
Dan Balasescu
e1d723a2cc Merge branch 'master' into diffcalc-total-scorev1 2023-06-26 14:32:14 +09:00
Bartłomiej Dach
d7ae430ec2
Merge branch 'master' into framework-update 2023-06-24 18:47:52 +02:00
Dean Herbert
3585c3f1d5 Apply required nullability changes 2023-06-24 09:58:36 +09:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dan Balasescu
06565871d6 Add flag to disable computing legacy scoring values 2023-06-24 01:03:18 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dan Balasescu
87447f41d0 Fix incorrect calculation of difficulty 2023-06-24 00:58:45 +09:00
Dan Balasescu
bfa449e47a Adjust attribute data 2023-06-19 21:38:13 +09:00
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
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
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