mirror of
https://github.com/osukey/osukey.git
synced 2025-06-24 12:47:56 +09:00
Clamp slider end estimate to 0
This commit is contained in:
parent
7075108062
commit
95bfb2c69b
@ -127,10 +127,10 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
|
|
||||||
// We assume 15% of sliders in a map are difficult since there's no way to tell from the performance calculator.
|
// We assume 15% of sliders in a map are difficult since there's no way to tell from the performance calculator.
|
||||||
double estimateDifficultSliders = Attributes.SliderCount * 0.15;
|
double estimateDifficultSliders = Attributes.SliderCount * 0.15;
|
||||||
double estimateSliderEndsDropped = Math.Min(estimateDifficultSliders, Math.Min(countOk + countMeh + countMiss, Attributes.MaxCombo - scoreMaxCombo));
|
double estimateSliderEndsDropped = Math.Clamp(Math.Min(countOk + countMeh + countMiss, Attributes.MaxCombo - scoreMaxCombo), 0, estimateDifficultSliders);
|
||||||
|
|
||||||
double sliderNerfFactor = (1 - Attributes.SliderFactor) * Math.Pow(1 - estimateSliderEndsDropped / estimateDifficultSliders, 3) + Attributes.SliderFactor;
|
double sliderNerfFactor = (1 - Attributes.SliderFactor) * Math.Pow(1 - estimateSliderEndsDropped / estimateDifficultSliders, 3) + Attributes.SliderFactor;
|
||||||
aimValue *= Math.Max(Attributes.SliderFactor, sliderNerfFactor);
|
aimValue *= sliderNerfFactor;
|
||||||
|
|
||||||
aimValue *= accuracy;
|
aimValue *= accuracy;
|
||||||
// It is important to also consider accuracy difficulty when doing that.
|
// It is important to also consider accuracy difficulty when doing that.
|
||||||
|
@ -20,6 +20,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
this.withSliders = withSliders;
|
this.withSliders = withSliders;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly bool withSliders;
|
||||||
|
|
||||||
protected override int HistoryLength => 2;
|
protected override int HistoryLength => 2;
|
||||||
|
|
||||||
private const double wide_angle_multiplier = 1.5;
|
private const double wide_angle_multiplier = 1.5;
|
||||||
@ -32,8 +34,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
private double skillMultiplier => 23.25;
|
private double skillMultiplier => 23.25;
|
||||||
private double strainDecayBase => 0.15;
|
private double strainDecayBase => 0.15;
|
||||||
|
|
||||||
private bool withSliders = true;
|
|
||||||
|
|
||||||
private double strainValueOf(DifficultyHitObject current)
|
private double strainValueOf(DifficultyHitObject current)
|
||||||
{
|
{
|
||||||
if (current.BaseObject is Spinner || Previous.Count <= 1 || Previous[0].BaseObject is Spinner)
|
if (current.BaseObject is Spinner || Previous.Count <= 1 || Previous[0].BaseObject is Spinner)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user