Always submit standardised scores

This commit is contained in:
smoogipoo
2018-12-27 21:12:32 +09:00
parent c818e1cd83
commit 50b51a168e
2 changed files with 22 additions and 7 deletions

View File

@ -167,6 +167,8 @@ namespace osu.Game.Rulesets.Scoring
score.Rank = Rank;
score.Date = DateTimeOffset.Now;
}
public abstract double GetStandardisedScore();
}
public class ScoreProcessor<TObject> : ScoreProcessor
@ -340,18 +342,24 @@ namespace osu.Game.Rulesets.Scoring
if (rollingMaxBaseScore != 0)
Accuracy.Value = baseScore / rollingMaxBaseScore;
switch (Mode.Value)
TotalScore.Value = getScore(Mode.Value);
}
private double getScore(ScoringMode mode)
{
switch (mode)
{
default:
case ScoringMode.Standardised:
TotalScore.Value = max_score * (base_portion * baseScore / maxBaseScore + combo_portion * HighestCombo / maxHighestCombo) + bonusScore;
break;
return max_score * (base_portion * baseScore / maxBaseScore + combo_portion * HighestCombo / maxHighestCombo) + bonusScore;
case ScoringMode.Classic:
// should emulate osu-stable's scoring as closely as we can (https://osu.ppy.sh/help/wiki/Score/ScoreV1)
TotalScore.Value = bonusScore + baseScore * (1 + Math.Max(0, HighestCombo - 1) / 25);
break;
return bonusScore + baseScore * (1 + Math.Max(0, HighestCombo - 1) / 25);
}
}
public override double GetStandardisedScore() => getScore(ScoringMode.Standardised);
protected override void Reset(bool storeResults)
{
if (storeResults)