mirror of
https://github.com/ppy/osu.git
synced 2025-02-12 14:43:03 +08:00
Update Speed.cs
This commit is contained in:
parent
f085b51c6a
commit
f11af6c507
@ -20,9 +20,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public static double MaxDifficulty; //Max difficulty of a single object
|
|
||||||
|
|
||||||
public static double SumDifficulty; //Summed difficulty of a single object
|
|
||||||
protected override int ReducedSectionCount => 5;
|
protected override int ReducedSectionCount => 5;
|
||||||
private double skillMultiplier => 1.430;
|
private double skillMultiplier => 1.430;
|
||||||
private double strainDecayBase => 0.3;
|
private double strainDecayBase => 0.3;
|
||||||
@ -30,10 +27,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
private double currentStrain;
|
private double currentStrain;
|
||||||
private double currentRhythm;
|
private double currentRhythm;
|
||||||
|
|
||||||
private double maxDifficulty;
|
|
||||||
|
|
||||||
private double sumDifficulty;
|
|
||||||
|
|
||||||
private double strainDecay(double ms) => Math.Pow(strainDecayBase, ms / 1000);
|
private double strainDecay(double ms) => Math.Pow(strainDecayBase, ms / 1000);
|
||||||
|
|
||||||
protected override double CalculateInitialStrain(double time, DifficultyHitObject current) => (currentStrain * currentRhythm) * strainDecay(time - current.Previous(0).StartTime);
|
protected override double CalculateInitialStrain(double time, DifficultyHitObject current) => (currentStrain * currentRhythm) * strainDecay(time - current.Previous(0).StartTime);
|
||||||
@ -42,25 +35,12 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
{
|
{
|
||||||
currentStrain *= strainDecay(((OsuDifficultyHitObject)current).StrainTime);
|
currentStrain *= strainDecay(((OsuDifficultyHitObject)current).StrainTime);
|
||||||
|
|
||||||
double currentHitObjectStrain = SpeedEvaluator.EvaluateDifficultyOf(current) * skillMultiplier;
|
currentStrain += SpeedEvaluator.EvaluateDifficultyOf(current) * skillMultiplier;
|
||||||
|
|
||||||
currentStrain += currentHitObjectStrain;
|
|
||||||
|
|
||||||
currentRhythm = RhythmEvaluator.EvaluateDifficultyOf(current);
|
currentRhythm = RhythmEvaluator.EvaluateDifficultyOf(current);
|
||||||
|
|
||||||
double totalStrain = currentStrain * currentRhythm;
|
double totalStrain = currentStrain * currentRhythm;
|
||||||
|
|
||||||
sumDifficulty += currentHitObjectStrain * currentRhythm;
|
|
||||||
|
|
||||||
if (maxDifficulty < currentHitObjectStrain)
|
|
||||||
maxDifficulty = currentHitObjectStrain;
|
|
||||||
|
|
||||||
if (current.Next(1) is null)
|
|
||||||
{
|
|
||||||
MaxDifficulty = maxDifficulty;
|
|
||||||
SumDifficulty = sumDifficulty;
|
|
||||||
}
|
|
||||||
|
|
||||||
return totalStrain;
|
return totalStrain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user