mirror of
https://github.com/ppy/osu.git
synced 2024-12-13 07:43:00 +08:00
Fix imported replays having excess statistics
This commit is contained in:
parent
975fc47a2b
commit
aec3753863
@ -43,6 +43,6 @@ namespace osu.Game.Rulesets.Catch.Scoring
|
||||
Health.Value += Math.Max(result.Judgement.HealthIncreaseFor(result) - hpDrainRate, 0) * harshness;
|
||||
}
|
||||
|
||||
protected override HitWindows CreateHitWindows() => new CatchHitWindows();
|
||||
public override HitWindows CreateHitWindows() => new CatchHitWindows();
|
||||
}
|
||||
}
|
||||
|
@ -159,6 +159,6 @@ namespace osu.Game.Rulesets.Mania.Scoring
|
||||
}
|
||||
}
|
||||
|
||||
protected override HitWindows CreateHitWindows() => new ManiaHitWindows();
|
||||
public override HitWindows CreateHitWindows() => new ManiaHitWindows();
|
||||
}
|
||||
}
|
||||
|
@ -74,6 +74,6 @@ namespace osu.Game.Rulesets.Osu.Scoring
|
||||
|
||||
protected override JudgementResult CreateResult(Judgement judgement) => new OsuJudgementResult(judgement);
|
||||
|
||||
protected override HitWindows CreateHitWindows() => new OsuHitWindows();
|
||||
public override HitWindows CreateHitWindows() => new OsuHitWindows();
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,6 @@ namespace osu.Game.Rulesets.Taiko.Scoring
|
||||
Health.Value = 0;
|
||||
}
|
||||
|
||||
protected override HitWindows CreateHitWindows() => new TaikoHitWindows();
|
||||
public override HitWindows CreateHitWindows() => new TaikoHitWindows();
|
||||
}
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ namespace osu.Game.Rulesets.Scoring
|
||||
/// <summary>
|
||||
/// Create a <see cref="HitWindows"/> for this processor.
|
||||
/// </summary>
|
||||
protected virtual HitWindows CreateHitWindows() => new HitWindows();
|
||||
public virtual HitWindows CreateHitWindows() => new HitWindows();
|
||||
|
||||
/// <summary>
|
||||
/// The current rank.
|
||||
|
@ -57,12 +57,20 @@ namespace osu.Game.Scoring.Legacy
|
||||
var countKatu = (int)sr.ReadUInt16();
|
||||
var countMiss = (int)sr.ReadUInt16();
|
||||
|
||||
score.ScoreInfo.Statistics[HitResult.Great] = count300;
|
||||
score.ScoreInfo.Statistics[HitResult.Good] = count100;
|
||||
score.ScoreInfo.Statistics[HitResult.Meh] = count50;
|
||||
score.ScoreInfo.Statistics[HitResult.Perfect] = countGeki;
|
||||
score.ScoreInfo.Statistics[HitResult.Ok] = countKatu;
|
||||
score.ScoreInfo.Statistics[HitResult.Miss] = countMiss;
|
||||
var windows = currentRuleset.CreateRulesetContainerWith(workingBeatmap).CreateScoreProcessor().CreateHitWindows();
|
||||
|
||||
if (windows.IsHitResultAllowed(HitResult.Great))
|
||||
score.ScoreInfo.Statistics[HitResult.Great] = count300;
|
||||
if (windows.IsHitResultAllowed(HitResult.Good))
|
||||
score.ScoreInfo.Statistics[HitResult.Good] = count100;
|
||||
if (windows.IsHitResultAllowed(HitResult.Meh))
|
||||
score.ScoreInfo.Statistics[HitResult.Meh] = count50;
|
||||
if (windows.IsHitResultAllowed(HitResult.Perfect))
|
||||
score.ScoreInfo.Statistics[HitResult.Perfect] = countGeki;
|
||||
if (windows.IsHitResultAllowed(HitResult.Ok))
|
||||
score.ScoreInfo.Statistics[HitResult.Ok] = countKatu;
|
||||
if (windows.IsHitResultAllowed(HitResult.Miss))
|
||||
score.ScoreInfo.Statistics[HitResult.Miss] = countMiss;
|
||||
|
||||
score.ScoreInfo.TotalScore = sr.ReadInt32();
|
||||
score.ScoreInfo.MaxCombo = sr.ReadUInt16();
|
||||
@ -116,12 +124,12 @@ namespace osu.Game.Scoring.Legacy
|
||||
|
||||
private void calculateAccuracy(ScoreInfo score)
|
||||
{
|
||||
int countMiss = score.Statistics[HitResult.Miss];
|
||||
int count50 = score.Statistics[HitResult.Meh];
|
||||
int count100 = score.Statistics[HitResult.Good];
|
||||
int count300 = score.Statistics[HitResult.Great];
|
||||
int countGeki = score.Statistics[HitResult.Perfect];
|
||||
int countKatu = score.Statistics[HitResult.Ok];
|
||||
score.Statistics.TryGetValue(HitResult.Miss, out int countMiss);
|
||||
score.Statistics.TryGetValue(HitResult.Meh, out int count50);
|
||||
score.Statistics.TryGetValue(HitResult.Good, out int count100);
|
||||
score.Statistics.TryGetValue(HitResult.Great, out int count300);
|
||||
score.Statistics.TryGetValue(HitResult.Perfect, out int countGeki);
|
||||
score.Statistics.TryGetValue(HitResult.Ok, out int countKatu);
|
||||
|
||||
switch (score.Ruleset.ID)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user