Refactor catch Movement skill to not require explicit clockrate usage

In catch, rate adjustment mods do not only affect the timings of hitobjects, but also the speed of the player's catcher.

This catcher speed change has an impact on difficulty which is currently accounted for by using the clockrate directly in calculations.

Semantically this is a bad idea because clockrate adjustments are supposed to be fully accounted for in DifficultyHitObjects, but passing clockrate here for the purpose of being used as catcher speed doesn't make much sense, especially since it is copied in every DifficultyHitObject despite being the same value.

It makes more sense to account for this catch specific impact by handling rate adjustment mods in a catch specific way, or more specifically in a Movement skill specific way.
This commit is contained in:
Samuel Cattini-Schultz
2021-02-21 18:24:27 +11:00
parent 66643a97b0
commit 323e4ac26b
2 changed files with 13 additions and 5 deletions

View File

@ -24,8 +24,6 @@ namespace osu.Game.Rulesets.Catch.Difficulty.Preprocessing
/// </summary>
public readonly double StrainTime;
public readonly double ClockRate;
public CatchDifficultyHitObject(HitObject hitObject, HitObject lastObject, double clockRate, float halfCatcherWidth)
: base(hitObject, lastObject, clockRate)
{
@ -37,7 +35,6 @@ namespace osu.Game.Rulesets.Catch.Difficulty.Preprocessing
// Every strain interval is hard capped at the equivalent of 375 BPM streaming speed as a safety measure
StrainTime = Math.Max(40, DeltaTime);
ClockRate = clockRate;
}
}
}