mirror of
https://github.com/ppy/osu.git
synced 2025-02-13 11:12:54 +08:00
Implement hp at base ScoreProcessor
This commit is contained in:
parent
9d3d1fd10b
commit
fbb4e9df04
@ -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>
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user