mirror of
https://github.com/ppy/osu.git
synced 2024-12-16 09:22:58 +08:00
merge effectivemisscount functions
having two functions was unnecessary
This commit is contained in:
parent
31e0853641
commit
e31e10d616
@ -53,7 +53,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
{
|
{
|
||||||
countSliderEndsDropped = osuAttributes.SliderCount - score.Statistics.GetValueOrDefault(HitResult.SliderTailHit);
|
countSliderEndsDropped = osuAttributes.SliderCount - score.Statistics.GetValueOrDefault(HitResult.SliderTailHit);
|
||||||
countLargeTickMiss = score.Statistics.GetValueOrDefault(HitResult.LargeTickMiss);
|
countLargeTickMiss = score.Statistics.GetValueOrDefault(HitResult.LargeTickMiss);
|
||||||
effectiveMissCount = calculateEffectiveLazerMissCount(osuAttributes);
|
effectiveMissCount = calculateEffectiveMissCount(osuAttributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
double multiplier = PERFORMANCE_BASE_MULTIPLIER;
|
double multiplier = PERFORMANCE_BASE_MULTIPLIER;
|
||||||
@ -259,36 +259,39 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
|
|
||||||
private double calculateEffectiveMissCount(OsuDifficultyAttributes attributes)
|
private double calculateEffectiveMissCount(OsuDifficultyAttributes attributes)
|
||||||
{
|
{
|
||||||
// Guess the number of misses + slider breaks from combo
|
if (usingClassicSliderAccuracy)
|
||||||
double comboBasedMissCount = 0.0;
|
|
||||||
|
|
||||||
if (attributes.SliderCount > 0)
|
|
||||||
{
|
{
|
||||||
double fullComboThreshold = attributes.MaxCombo - 0.1 * attributes.SliderCount;
|
// Guess the number of misses + slider breaks from combo
|
||||||
if (scoreMaxCombo < fullComboThreshold)
|
double comboBasedMissCount = 0.0;
|
||||||
comboBasedMissCount = fullComboThreshold / Math.Max(1.0, scoreMaxCombo);
|
|
||||||
|
if (attributes.SliderCount > 0)
|
||||||
|
{
|
||||||
|
double fullComboThreshold = attributes.MaxCombo - 0.1 * attributes.SliderCount;
|
||||||
|
if (scoreMaxCombo < fullComboThreshold)
|
||||||
|
comboBasedMissCount = fullComboThreshold / Math.Max(1.0, scoreMaxCombo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clamp miss count to maximum amount of possible breaks
|
||||||
|
comboBasedMissCount = Math.Min(comboBasedMissCount, countOk + countMeh + countMiss);
|
||||||
|
|
||||||
|
return Math.Max(countMiss, comboBasedMissCount);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
// Clamp miss count to maximum amount of possible breaks
|
|
||||||
comboBasedMissCount = Math.Min(comboBasedMissCount, countOk + countMeh + countMiss);
|
|
||||||
|
|
||||||
return Math.Max(countMiss, comboBasedMissCount);
|
|
||||||
}
|
|
||||||
private double calculateEffectiveLazerMissCount(OsuDifficultyAttributes attributes)
|
|
||||||
{
|
|
||||||
// Cap LargeTickMisses to avoid buzz sliders giving high miss counts
|
|
||||||
// Uses very similar formula to calculateEffectiveMissCount(), but utilizes osu!lazer's extra data
|
|
||||||
double comboBasedMissCount = 0.0;
|
|
||||||
|
|
||||||
if (attributes.SliderCount > 0)
|
|
||||||
{
|
{
|
||||||
comboBasedMissCount = (attributes.MaxCombo - countSliderEndsDropped) / Math.Max(1.0, scoreMaxCombo);
|
// Cap LargeTickMisses to avoid buzz sliders giving high miss counts
|
||||||
|
// Uses very similar formula to calculateEffectiveMissCount(), but utilizes osu!lazer's extra data
|
||||||
|
double comboBasedMissCount = 0.0;
|
||||||
|
|
||||||
|
if (attributes.SliderCount > 0)
|
||||||
|
{
|
||||||
|
comboBasedMissCount = (attributes.MaxCombo - countSliderEndsDropped) / Math.Max(1.0, scoreMaxCombo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clamp miss count to maximum amount of possible breaks
|
||||||
|
comboBasedMissCount = Math.Min(comboBasedMissCount, countOk + countMeh + countMiss + countLargeTickMiss);
|
||||||
|
|
||||||
|
return Math.Max(countMiss, comboBasedMissCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clamp miss count to maximum amount of possible breaks
|
|
||||||
comboBasedMissCount = Math.Min(comboBasedMissCount, countOk + countMeh + countMiss + countLargeTickMiss);
|
|
||||||
|
|
||||||
return Math.Max(countMiss, comboBasedMissCount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Miss penalty assumes that a player will miss on the hardest parts of a map,
|
// Miss penalty assumes that a player will miss on the hardest parts of a map,
|
||||||
|
Loading…
Reference in New Issue
Block a user