mirror of
https://github.com/ppy/osu.git
synced 2026-06-08 16:24:19 +08:00
Use Mehs in the okAdjustment (#37264)
I'm not sure why they were excluded initially, so creating this PR as a potential fix If there's an actual reason for this then this PR is probably unnecessary Co-authored-by: James Wilson <tsunyoku@gmail.com> Co-authored-by: StanR <8269193+stanriders@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
Unverified
parent
f2047819a8
commit
af9f9e771a
@@ -391,19 +391,21 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
||||
|
||||
private double calculateEstimatedSliderBreaks(double topWeightedSliderFactor, OsuDifficultyAttributes attributes)
|
||||
{
|
||||
if (!usingClassicSliderAccuracy || countOk == 0)
|
||||
int nonMissMistakes = countOk + countMeh;
|
||||
|
||||
if (!usingClassicSliderAccuracy || nonMissMistakes == 0)
|
||||
return 0;
|
||||
|
||||
double missedComboPercent = 1.0 - (double)scoreMaxCombo / attributes.MaxCombo;
|
||||
double estimatedSliderBreaks = Math.Min(countOk, effectiveMissCount * topWeightedSliderFactor);
|
||||
double estimatedSliderBreaks = Math.Min(nonMissMistakes, effectiveMissCount * topWeightedSliderFactor);
|
||||
|
||||
// Scores with more Oks are more likely to have slider breaks.
|
||||
double okAdjustment = ((countOk - estimatedSliderBreaks) + 0.5) / countOk;
|
||||
// Scores with more Oks and Mehs are more likely to have slider breaks.
|
||||
double nonMissMistakeAdjustment = ((nonMissMistakes - estimatedSliderBreaks) + 0.5) / nonMissMistakes;
|
||||
|
||||
// There is a low probability of extra slider breaks on effective miss counts close to 1, as score based calculations are good at indicating if only a single break occurred.
|
||||
estimatedSliderBreaks *= DifficultyCalculationUtils.Smoothstep(effectiveMissCount, 1, 2);
|
||||
|
||||
return estimatedSliderBreaks * okAdjustment * DifficultyCalculationUtils.Logistic(missedComboPercent, 0.33, 15);
|
||||
return estimatedSliderBreaks * nonMissMistakeAdjustment * DifficultyCalculationUtils.Logistic(missedComboPercent, 0.33, 15);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user