mirror of
https://github.com/ppy/osu.git
synced 2024-11-11 11:37:28 +08:00
removed duplication
This commit is contained in:
parent
feb9b5bdb8
commit
4a21ff9726
@ -111,16 +111,11 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
|
|
||||||
if (score.Mods.Any(m => m is OsuModBlinds))
|
if (score.Mods.Any(m => m is OsuModBlinds))
|
||||||
aimValue *= 1.3 + (totalHits * (0.0016 / (1 + 2 * effectiveMissCount)) * Math.Pow(accuracy, 16)) * (1 - 0.003 * attributes.DrainRate * attributes.DrainRate);
|
aimValue *= 1.3 + (totalHits * (0.0016 / (1 + 2 * effectiveMissCount)) * Math.Pow(accuracy, 16)) * (1 - 0.003 * attributes.DrainRate * attributes.DrainRate);
|
||||||
else if (score.Mods.Any(h => h is OsuModHidden))
|
else if (score.Mods.Any(m => m is OsuModHidden || m is OsuModTraceable))
|
||||||
{
|
{
|
||||||
// We want to give more reward for lower AR when it comes to aim and HD. This nerfs high AR and buffs lower AR.
|
// We want to give more reward for lower AR when it comes to aim and HD. This nerfs high AR and buffs lower AR.
|
||||||
aimValue *= 1.0 + 0.04 * (12.0 - attributes.ApproachRate);
|
aimValue *= 1.0 + 0.04 * (12.0 - attributes.ApproachRate);
|
||||||
}
|
}
|
||||||
else if (score.Mods.Any(h => h is OsuModTraceable))
|
|
||||||
{
|
|
||||||
// The same as HD, placeholder bonus
|
|
||||||
aimValue *= 1.0 + 0.04 * (12.0 - attributes.ApproachRate);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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;
|
||||||
@ -167,16 +162,11 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
// Increasing the speed value by object count for Blinds isn't ideal, so the minimum buff is given.
|
// Increasing the speed value by object count for Blinds isn't ideal, so the minimum buff is given.
|
||||||
speedValue *= 1.12;
|
speedValue *= 1.12;
|
||||||
}
|
}
|
||||||
else if (score.Mods.Any(m => m is OsuModHidden))
|
else if (score.Mods.Any(m => m is OsuModHidden || m is OsuModTraceable))
|
||||||
{
|
{
|
||||||
// We want to give more reward for lower AR when it comes to aim and HD. This nerfs high AR and buffs lower AR.
|
// We want to give more reward for lower AR when it comes to aim and HD. This nerfs high AR and buffs lower AR.
|
||||||
speedValue *= 1.0 + 0.04 * (12.0 - attributes.ApproachRate);
|
speedValue *= 1.0 + 0.04 * (12.0 - attributes.ApproachRate);
|
||||||
}
|
}
|
||||||
else if (score.Mods.Any(h => h is OsuModTraceable))
|
|
||||||
{
|
|
||||||
// The same as HD, placeholder bonus
|
|
||||||
speedValue *= 1.0 + 0.04 * (12.0 - attributes.ApproachRate);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate accuracy assuming the worst case scenario
|
// Calculate accuracy assuming the worst case scenario
|
||||||
double relevantTotalDiff = totalHits - attributes.SpeedNoteCount;
|
double relevantTotalDiff = totalHits - attributes.SpeedNoteCount;
|
||||||
@ -222,9 +212,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
// Increasing the accuracy value by object count for Blinds isn't ideal, so the minimum buff is given.
|
// Increasing the accuracy value by object count for Blinds isn't ideal, so the minimum buff is given.
|
||||||
if (score.Mods.Any(m => m is OsuModBlinds))
|
if (score.Mods.Any(m => m is OsuModBlinds))
|
||||||
accuracyValue *= 1.14;
|
accuracyValue *= 1.14;
|
||||||
else if (score.Mods.Any(m => m is OsuModHidden))
|
else if (score.Mods.Any(m => m is OsuModHidden || m is OsuModTraceable))
|
||||||
accuracyValue *= 1.08;
|
|
||||||
else if (score.Mods.Any(m => m is OsuModTraceable))
|
|
||||||
accuracyValue *= 1.08;
|
accuracyValue *= 1.08;
|
||||||
|
|
||||||
if (score.Mods.Any(m => m is OsuModFlashlight))
|
if (score.Mods.Any(m => m is OsuModFlashlight))
|
||||||
|
Loading…
Reference in New Issue
Block a user