Fix slider `MinimumJumpDistance` being calculated too low to be possible
Replaces https://github.com/ppy/osu/pull/29994 since this is a proper fix of the underlying issue
This whole LazyJumpDistance and MinimalJumpDistance is very confusing.
In the current system:
LazyJumpDistanceis the distance between "True end of the object, reached in as little movement as possible" and next objectTravelDistanceis is the distance you need to travel to reach "True end of the object with as little movement as possible"- This means that
LazyJumpDistanceandTravelDistancetogether make the full movement MinimalJumpDistanceis some very questionable metric that takes the minimum between slightly loweredLazyJumpDistanceand "Distance from tail to next object, lowered by followcircle radius". And in the most cases it's the second part that's taken as minimum.- And somehow it's
MinimalJumpDistancewhat is used as a metric that needs to be paired withTravelDistance
The whole MinimalJumpDistance calculation doesn't makes any sense. Why would you take LazyJumpDistance and subtract arbitrary distance from it? Why second part of the formula takes distance from the tail and subtracts followcircle radius?
In case where sliderbody is away from next object - it would just be the same as LazyJumpDistance. However in case where it's in direction of next object - you're already taking less distance than LazyJumpDistance (because you fully reached the end, not lazily) and subtracting this distance even further.
This change fixes the second part, and makes MinimalJumpDistance to essentially be Max(JumpDistance, LazyJumpDistance - 0.6 * circle_radius). I have no idea what this metric meant to represent and why it's used together with TravelDistance.
!diffcalc RULESET=osu
Difficulty calculation failed: https://github.com/ppy/osu/actions/runs/12272699486
!diffcalc RULESET=osu
Target: https://github.com/ppy/osu/pull/30036 Spreadsheet: https://docs.google.com/spreadsheets/d/1r5VCGzMILrWaAJMuX0scPN9QO9Ir8bP8oiSf4pq5jN4/edit
!diffcalc RULESET=osu
Target: https://github.com/ppy/osu/pull/30036 Spreadsheet: https://docs.google.com/spreadsheets/d/18CKCNSse3K4uDP5rVLAqpBMqR-uVBgP35cuS8pNnqZs/edit