1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 13:22:55 +08:00
Commit Graph

5047 Commits

Author SHA1 Message Date
Dean Herbert
0a208a5a47
Merge pull request #24932 from smoogipoo/spinner-od-based-max-rpm
Cap maximum spinner RPM based on OD
2023-09-27 15:56:27 +09:00
Dean Herbert
9d8c3f0f5c
Merge pull request #24779 from smoogipoo/split-legacy-scoring-attribs
Split legacy scoring attribs into its own table
2023-09-26 22:35:38 +09:00
Dan Balasescu
05c9f0f9cc Fix bonus requirement not considering number of normal ticks 2023-09-26 18:11:27 +09:00
Dan Balasescu
859155dda1 Cap maximum spinner RPM based on OD 2023-09-26 17:20:20 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions 2023-09-26 16:40:32 +09:00
Dean Herbert
0dcf7a2fa9
Merge branch 'master' into split-legacy-scoring-attribs 2023-09-26 15:52:27 +09:00
Salman Ahmed
734ee0e68b Simplify code 2023-09-24 02:22:50 +03:00
Fabian van Oeffelt
7c40072c47 Get first Spinner,Slider or HitCircle instead of only HitCircle
Fixes bug
2023-09-23 13:18:49 +02:00
Bartłomiej Dach
69ed99dfd5
Merge branch 'master' into mania-edit-disable-sv 2023-09-21 09:13:27 +02:00
Bartłomiej Dach
28da5baea4
Merge branch 'master' into fix-slider-length 2023-09-20 11:10:01 +02:00
Dean Herbert
41a8239e49 Remvoe null default for mods which can't be null 2023-09-20 15:27:50 +09:00
Dean Herbert
8e16b1d507 Simplify some maximum size specs 2023-09-20 12:48:15 +09:00
Bartłomiej Dach
92cafe23fe
Merge pull request #24810 from peppy/remove-slider-head-movement-allowance
Remove slider head circle movement (and remove setting from "classic" mod)
2023-09-19 12:25:33 +02:00
Dean Herbert
0360646e9b Avoid fast fade out if slider head was not hit 2023-09-19 14:38:53 +09:00
Salman Ahmed
922f6f36f2 Add size limitation for hit object numbers 2023-09-19 04:38:10 +03:00
Salman Ahmed
ab5226832a Add size limitation for slider reverse arrow piece 2023-09-19 04:38:10 +03:00
Salman Ahmed
b823507b2a Add size limitation for approach circles 2023-09-19 04:38:10 +03:00
Salman Ahmed
f963a921db Add size limitation for slider follow circle 2023-09-19 04:18:12 +03:00
Salman Ahmed
fc1a39ede3 Add size limitations for slider balls 2023-09-19 04:18:12 +03:00
Salman Ahmed
291a91be66 Change extension from retrieval to post-processing instead 2023-09-19 03:40:30 +03:00
Salman Ahmed
57dc76b345 Revert "Update GetTexture signature rather than creating new overload"
This reverts commit 96f12cfbaa.
2023-09-19 03:21:19 +03:00
Magnus-Cosmos
bd7dab1d86
Add test for slider path edge case 2023-09-18 12:02:20 -04:00
Bartłomiej Dach
5c6cd879dd
Adjust slider calculations to new method API
Code originally read

	Velocity = scoringDistance / beatLength
		 = BASE_SCORING_DISTANCE * SliderMultiplier * GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength

Given (mathematically, floats are not generally as forgiving):

	GetPrecisionAdjustedBeatLength() = beatLength / GetPrecisionAdjustedSliderVelocityMultiplier()

it follows that (inverting both sides):

	1 / GetPrecisionAdjustedBeatLength() = GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength

and therefore

	Velocity = BASE_SCORING_DISTANCE * SliderMultiplier * GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength
		 = BASE_SCORING_DISTANCE * SliderMultiplier / GetPrecisionAdjustedBeatLength()

and to recover `scoringDistance`

	scoringDistance = Velocity * beatLength
2023-09-15 12:30:25 +02:00
Bartłomiej Dach
4275af1343
Merge branch 'master' into fix-slider-tick-misssing 2023-09-15 12:09:54 +02:00
Bartłomiej Dach
86c46a5b3f
Manually reorder objects in expected mapping
The test added in 64baa4d01a was
previously failing despite applying a fix. This was caused by the fact
that in stable, the last `sliderScoreTimingPoint` (i.e. the
`LegacyLastTick` is pulled back by 36ms, but the list of all of them
is not re-sorted afterwards, causing objects to be exported in
non-chronological order to the resultant conversion mapping.
lazer correctly sorts the objects, causing a false positive.
2023-09-15 12:07:59 +02:00
Dan Balasescu
2abef4ade5
Expand comment to justify maximising bonus score
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-15 18:35:17 +09:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point 2023-09-15 11:14:28 +02:00
Dan Balasescu
ed295effc5 Maximise bonus score 2023-09-15 15:51:05 +09:00
Dean Herbert
cf9ca60b09 Change slider body to not animate snaking until head circle is (successfully) hit 2023-09-14 17:49:41 +09:00
Dean Herbert
e3e7a81ad9 Remove slider head circle movement (and remove setting from "classic" mod) 2023-09-14 17:49:41 +09:00
Dan Balasescu
753c1c877c Revert masking SSBO changes 2023-09-13 23:10:13 +09:00
Dean Herbert
e810abf1e6 Rename variable 2023-09-12 20:51:22 +09:00
Dean Herbert
39d69903ab
Merge branch 'master' into stable-spinner-ticks-2 2023-09-12 20:41:43 +09:00
Dean Herbert
7db4b3e83c
Merge pull request #24661 from frenzibyte/stable-spinner-ticks-1
Update osu! spinner ticks calculation method to better match with osu!(stable)
2023-09-12 20:41:28 +09:00
Dan Balasescu
86330a7cc4 Adjust comment 2023-09-11 18:01:53 +09:00
Dan Balasescu
628517569b Fix another difficulty-specific value 2023-09-08 21:08:09 +09:00
Bartłomiej Dach
e9b08219e9
Block input to objects lying under already-hit slider heads before slider is fully judged when classic note lock is active 2023-09-08 13:42:18 +02:00
Bartłomiej Dach
168a828f23
Revert "Block input to objects lying under already-hit hitcircles when classic note lock is active"
This reverts commit 03c61a573e.

The goal here was to handle an edge case discovered during work on note
lock, wherein it was determined that on stable hit circles would block
input from reaching objects underneath them. However, the change
mentioned above did that _too_ hard and caused overlaps to also be
blocked even long past a hit circle has been faded out.

Revert the change pending further (and more careful) investigation.
2023-09-08 10:11:21 +02:00
Dan Balasescu
2334be1987 Split legacy scoring attributes into a separate object 2023-09-07 21:10:38 +09:00
Dean Herbert
22ee64cfda Fix sliders not always being the correct length
This is another similar case where stable floating point precision comes
into play due to use of `hitObjectManager.Beatmap.BpmMultiplierAt` (see
1531237b63/osu!/GameplayElements/HitObjects/Osu/SliderOsu.cs#L680)

Closes #24708.
2023-09-07 18:20:08 +09:00
Dean Herbert
64baa4d01a Add test coverage of failing slider tick generation edge case 2023-09-07 18:20:08 +09:00
Dean Herbert
dcbdc114ce Remove precision limitations of SliderVelocity 2023-09-07 17:41:58 +09:00
Bartłomiej Dach
323a4f4522
Only show preempt time when limits are extended 2023-09-07 08:30:02 +02:00
Bartłomiej Dach
bd633889e7
Remove local preempt time calculation
And just use a hitcircle, and read the actual value. Comes with 100%
less chance of forgetting to update either place in the future.
2023-09-07 08:23:50 +02:00
Bartłomiej Dach
9c6f77b26e
Fix too many things being exposed 2023-09-07 08:11:04 +02:00
Dean Herbert
e05d7d5f8d Inline local control 2023-09-07 14:22:06 +09:00
isakvik
2ab11ab568 adds new diffsetting control that shows millisecond values for approach rate override 2023-09-07 01:41:22 +02:00
isakvik
3db0d0d341 extendable minimum AR value for osu!std diff adjust mod, set to -10 2023-09-06 23:26:34 +02:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Dean Herbert
d06490220d Add better xmldoc for Slider.Velocity 2023-09-06 18:58:58 +09:00