1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 06:17:23 +08:00

Add computeRawScore()

This commit is contained in:
maromalo 2022-11-10 14:15:20 -03:00
parent 64e6276397
commit 83a3f1b82e

View File

@ -339,16 +339,21 @@ namespace osu.Game.Rulesets.Scoring
{
default:
case ScoringMode.Standardised:
double accuracyScore = accuracyPortion * accuracyRatio;
double comboScore = comboPortion * comboRatio;
return (long)Math.Round((max_score * (accuracyScore + comboScore) + bonusScore) * scoreMultiplier);
return (long)Math.Round(computeRawScore());
case ScoringMode.Classic:
// This gives a similar feeling to osu!stable scoring (ScoreV1) while keeping classic scoring as only a constant multiple of standardised scoring.
// The invariant is important to ensure that scores don't get re-ordered on leaderboards between the two scoring modes.
double scaledStandardised = ComputeScore(ScoringMode.Standardised, accuracyRatio, comboRatio, bonusScore, totalBasicHitObjects) / max_score;
double scaledStandardised = computeRawScore() / max_score;
return (long)Math.Round(Math.Pow(scaledStandardised * Math.Max(1, totalBasicHitObjects), 2) * ClassicScoreMultiplier);
}
double computeRawScore()
{
double accuracyScore = accuracyPortion * accuracyRatio;
double comboScore = comboPortion * comboRatio;
return (max_score * (accuracyScore + comboScore) + bonusScore) * scoreMultiplier;
}
}
private ScoreRank rankFrom(double acc)