1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-12 17:23:22 +08:00

Move and reword docs of allowable rate range constants

This commit is contained in:
Bartłomiej Dach 2022-03-03 17:07:36 +01:00
parent 4ce2044e4c
commit ffaf5b729f
No known key found for this signature in database
GPG Key ID: BCECCD4FA41F6497

View File

@ -21,10 +21,6 @@ namespace osu.Game.Rulesets.Mods
{
public class ModAdaptiveSpeed : Mod, IApplicableToRate, IApplicableToDrawableHitObject, IApplicableToBeatmap, IUpdatableByPlayfield
{
// use a wider range so there's still room for adjustment when the initial rate is extreme
private const double fastest_rate = 2.5f;
private const double slowest_rate = 0.4f;
/// <summary>
/// Adjust track rate using the average speed of the last x hits
/// </summary>
@ -61,10 +57,18 @@ namespace osu.Game.Rulesets.Mods
public BindableNumber<double> SpeedChange { get; } = new BindableDouble
{
MinValue = min_allowable_rate,
MaxValue = max_allowable_rate,
Default = 1,
Value = 1
};
// The two constants below denote the maximum allowable range of rates that `SpeedChange` can take.
// The range is purposefully wider than the range of values that `InitialRate` allows
// in order to give some leeway for change even when extreme initial rates are chosen.
private const double min_allowable_rate = 0.4f;
private const double max_allowable_rate = 2.5f;
private ITrack track;
private double targetRate = 1d;
@ -122,7 +126,7 @@ namespace osu.Game.Rulesets.Mods
double prevEndTime = previousEndTimes[result.HitObject];
recentRates.Add(Math.Clamp((result.HitObject.GetEndTime() - prevEndTime) / (result.TimeAbsolute - prevEndTime) * SpeedChange.Value, slowest_rate, fastest_rate));
recentRates.Add(Math.Clamp((result.HitObject.GetEndTime() - prevEndTime) / (result.TimeAbsolute - prevEndTime) * SpeedChange.Value, min_allowable_rate, max_allowable_rate));
dequeuedRates.Add(result.HitObject, recentRates[0]);
recentRates.RemoveAt(0);