mirror of
https://github.com/ppy/osu.git
synced 2025-02-13 20:33:11 +08:00
Don't nerf object influence if stream
This commit is contained in:
parent
979749371f
commit
8e614e260a
@ -49,15 +49,19 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
|||||||
double timeBetweenCurrAndLoopObj = (currObj.BaseObject.StartTime - loopObj.BaseObject.StartTime) / clockRateEstimate;
|
double timeBetweenCurrAndLoopObj = (currObj.BaseObject.StartTime - loopObj.BaseObject.StartTime) / clockRateEstimate;
|
||||||
loopDifficulty *= getTimeNerfFactor(timeBetweenCurrAndLoopObj);
|
loopDifficulty *= getTimeNerfFactor(timeBetweenCurrAndLoopObj);
|
||||||
|
|
||||||
// Objects that are arranged in a mostly-linear fashion should be easy to read (such as circles in a stream).
|
|
||||||
if (prevLoopObj != null && loopObj.Angle.IsNotNull() && prevLoopObj.Angle.IsNotNull())
|
|
||||||
loopDifficulty *= 1 - Math.Pow(Math.Sin(0.5 * loopObj.Angle.Value), 5);
|
|
||||||
|
|
||||||
pastObjectDifficultyInfluence += loopDifficulty;
|
pastObjectDifficultyInfluence += loopDifficulty;
|
||||||
}
|
}
|
||||||
|
|
||||||
noteDensityDifficulty = Math.Pow(3 * Math.Log(Math.Max(1, pastObjectDifficultyInfluence - 1)), 2.3);
|
noteDensityDifficulty = Math.Pow(3 * Math.Log(Math.Max(1, pastObjectDifficultyInfluence - 1)), 2.3);
|
||||||
|
|
||||||
|
// Objects that are arranged in a mostly-linear fashion should be easy to read (such as circles in a stream).
|
||||||
|
if (currObj.Angle.IsNotNull() && prevObj.IsNotNull())
|
||||||
|
{
|
||||||
|
double prevVelocity = prevObj.LazyJumpDistance / prevObj.StrainTime;
|
||||||
|
double velocityDifference = Math.Clamp(Math.Abs(currVelocity - prevVelocity), 0, 1);
|
||||||
|
noteDensityDifficulty *= 1 - velocityDifference * Math.Pow(Math.Sin(0.5 * currObj.Angle.Value), 5);
|
||||||
|
}
|
||||||
|
|
||||||
double hiddenDifficulty = 0;
|
double hiddenDifficulty = 0;
|
||||||
|
|
||||||
if (hidden)
|
if (hidden)
|
||||||
|
Loading…
Reference in New Issue
Block a user