1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-13 15:03:13 +08:00

Implement hp at base ScoreProcessor

This commit is contained in:
smoogipoo 2019-04-22 16:51:38 +09:00
parent 9d3d1fd10b
commit fbb4e9df04
2 changed files with 16 additions and 0 deletions

View File

@ -31,6 +31,11 @@ namespace osu.Game.Rulesets.Judgements
/// </summary>
public int MaxNumericResult => NumericResultFor(MaxResult);
/// <summary>
/// The health increase for the maximum achievable result.
/// </summary>
public double MaxHealthIncrease => HealthIncreaseFor(MaxResult);
/// <summary>
/// Retrieves the numeric score representation of a <see cref="HitResult"/>.
/// </summary>

View File

@ -206,6 +206,9 @@ namespace osu.Game.Rulesets.Scoring
private double baseScore;
private double bonusScore;
private double rollingHp;
private double rollingMaxHp;
protected ScoreProcessor()
{
}
@ -332,6 +335,9 @@ namespace osu.Game.Rulesets.Scoring
baseScore += result.Judgement.NumericResultFor(result);
rollingMaxBaseScore += result.Judgement.MaxNumericResult;
}
rollingHp += HpFactorFor(result.Judgement, result.Type) * result.Judgement.HealthIncreaseFor(result);
rollingMaxHp += HpFactorFor(result.Judgement, result.Judgement.MaxResult) * result.Judgement.MaxHealthIncrease;
}
/// <summary>
@ -356,8 +362,13 @@ namespace osu.Game.Rulesets.Scoring
baseScore -= result.Judgement.NumericResultFor(result);
rollingMaxBaseScore -= result.Judgement.MaxNumericResult;
}
rollingHp -= HpFactorFor(result.Judgement, result.Type) * result.Judgement.HealthIncreaseFor(result);
rollingMaxHp -= HpFactorFor(result.Judgement, result.Judgement.MaxResult) * result.Judgement.MaxHealthIncrease;
}
protected virtual double HpFactorFor(Judgement judgement, HitResult result) => 1;
private void updateScore()
{
if (rollingMaxBaseScore != 0)