mirror of
https://github.com/ppy/osu.git
synced 2025-01-06 09:42:55 +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;
|
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 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;
|
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>
|
/// <summary>
|
||||||
/// Create a <see cref="HitWindows"/> for this processor.
|
/// Create a <see cref="HitWindows"/> for this processor.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected virtual HitWindows CreateHitWindows() => new HitWindows();
|
public virtual HitWindows CreateHitWindows() => new HitWindows();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The current rank.
|
/// The current rank.
|
||||||
|
@ -57,12 +57,20 @@ namespace osu.Game.Scoring.Legacy
|
|||||||
var countKatu = (int)sr.ReadUInt16();
|
var countKatu = (int)sr.ReadUInt16();
|
||||||
var countMiss = (int)sr.ReadUInt16();
|
var countMiss = (int)sr.ReadUInt16();
|
||||||
|
|
||||||
score.ScoreInfo.Statistics[HitResult.Great] = count300;
|
var windows = currentRuleset.CreateRulesetContainerWith(workingBeatmap).CreateScoreProcessor().CreateHitWindows();
|
||||||
score.ScoreInfo.Statistics[HitResult.Good] = count100;
|
|
||||||
score.ScoreInfo.Statistics[HitResult.Meh] = count50;
|
if (windows.IsHitResultAllowed(HitResult.Great))
|
||||||
score.ScoreInfo.Statistics[HitResult.Perfect] = countGeki;
|
score.ScoreInfo.Statistics[HitResult.Great] = count300;
|
||||||
score.ScoreInfo.Statistics[HitResult.Ok] = countKatu;
|
if (windows.IsHitResultAllowed(HitResult.Good))
|
||||||
score.ScoreInfo.Statistics[HitResult.Miss] = countMiss;
|
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.TotalScore = sr.ReadInt32();
|
||||||
score.ScoreInfo.MaxCombo = sr.ReadUInt16();
|
score.ScoreInfo.MaxCombo = sr.ReadUInt16();
|
||||||
@ -116,12 +124,12 @@ namespace osu.Game.Scoring.Legacy
|
|||||||
|
|
||||||
private void calculateAccuracy(ScoreInfo score)
|
private void calculateAccuracy(ScoreInfo score)
|
||||||
{
|
{
|
||||||
int countMiss = score.Statistics[HitResult.Miss];
|
score.Statistics.TryGetValue(HitResult.Miss, out int countMiss);
|
||||||
int count50 = score.Statistics[HitResult.Meh];
|
score.Statistics.TryGetValue(HitResult.Meh, out int count50);
|
||||||
int count100 = score.Statistics[HitResult.Good];
|
score.Statistics.TryGetValue(HitResult.Good, out int count100);
|
||||||
int count300 = score.Statistics[HitResult.Great];
|
score.Statistics.TryGetValue(HitResult.Great, out int count300);
|
||||||
int countGeki = score.Statistics[HitResult.Perfect];
|
score.Statistics.TryGetValue(HitResult.Perfect, out int countGeki);
|
||||||
int countKatu = score.Statistics[HitResult.Ok];
|
score.Statistics.TryGetValue(HitResult.Ok, out int countKatu);
|
||||||
|
|
||||||
switch (score.Ruleset.ID)
|
switch (score.Ruleset.ID)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user