mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 08:22:56 +08:00
Merge pull request #15507 from Wieku/relax-nan-fix
Add sanity check in Relax's effectiveMissCount calculation
This commit is contained in:
commit
616d7bf9ca
@ -54,7 +54,9 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
|
|
||||||
if (mods.Any(h => h is OsuModRelax))
|
if (mods.Any(h => h is OsuModRelax))
|
||||||
{
|
{
|
||||||
effectiveMissCount += countOk + countMeh;
|
// As we're adding Oks and Mehs to an approximated number of combo breaks the result can be higher than total hits in specific scenarios (which breaks some calculations) so we need to clamp it.
|
||||||
|
effectiveMissCount = Math.Min(effectiveMissCount + countOk + countMeh, totalHits);
|
||||||
|
|
||||||
multiplier *= 0.6;
|
multiplier *= 0.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,7 +257,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
|
|
||||||
private int calculateEffectiveMissCount()
|
private int calculateEffectiveMissCount()
|
||||||
{
|
{
|
||||||
// guess the number of misses + slider breaks from combo
|
// Guess the number of misses + slider breaks from combo
|
||||||
double comboBasedMissCount = 0.0;
|
double comboBasedMissCount = 0.0;
|
||||||
|
|
||||||
if (Attributes.SliderCount > 0)
|
if (Attributes.SliderCount > 0)
|
||||||
@ -265,7 +267,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
|||||||
comboBasedMissCount = fullComboThreshold / Math.Max(1.0, scoreMaxCombo);
|
comboBasedMissCount = fullComboThreshold / Math.Max(1.0, scoreMaxCombo);
|
||||||
}
|
}
|
||||||
|
|
||||||
// we're clamping misscount because since its derived from combo it can be higher than total hits and that breaks some calculations
|
// Clamp misscount since it's derived from combo and can be higher than total hits and that breaks some calculations
|
||||||
comboBasedMissCount = Math.Min(comboBasedMissCount, totalHits);
|
comboBasedMissCount = Math.Min(comboBasedMissCount, totalHits);
|
||||||
|
|
||||||
return Math.Max(countMiss, (int)Math.Floor(comboBasedMissCount));
|
return Math.Max(countMiss, (int)Math.Floor(comboBasedMissCount));
|
||||||
|
Loading…
Reference in New Issue
Block a user