mirror of
https://github.com/ppy/osu.git
synced 2024-11-12 00:27:25 +08:00
4f6263ef86
This is important when using dynamic compiling to rapidly iterate. Until we actually split projects out into pieces (like the abstract ruleset project we have talked about) there is no advantage to using internal in the osu! game code.
70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
|
|
|
using osu.Game.Rulesets.Objects.Drawables;
|
|
|
|
namespace osu.Game.Rulesets.Judgements
|
|
{
|
|
public class Judgement
|
|
{
|
|
/// <summary>
|
|
/// Whether this judgement is the result of a hit or a miss.
|
|
/// </summary>
|
|
public HitResult Result;
|
|
|
|
/// <summary>
|
|
/// The maximum <see cref="HitResult"/> that can be achieved.
|
|
/// </summary>
|
|
public virtual HitResult MaxResult => HitResult.Perfect;
|
|
|
|
/// <summary>
|
|
/// The combo prior to this judgement occurring.
|
|
/// </summary>
|
|
public int ComboAtJudgement;
|
|
|
|
/// <summary>
|
|
/// The highest combo achieved prior to this judgement occurring.
|
|
/// </summary>
|
|
public int HighestComboAtJudgement;
|
|
|
|
/// <summary>
|
|
/// Whether a successful hit occurred.
|
|
/// </summary>
|
|
public bool IsHit => Result > HitResult.Miss;
|
|
|
|
/// <summary>
|
|
/// Whether this judgement is the final judgement for the hit object.
|
|
/// </summary>
|
|
public bool Final = true;
|
|
|
|
/// <summary>
|
|
/// The offset from a perfect hit at which this judgement occurred.
|
|
/// Populated when added via <see cref="DrawableHitObject{TObject}.AddJudgement"/>.
|
|
/// </summary>
|
|
public double TimeOffset { get; public set; }
|
|
|
|
/// <summary>
|
|
/// Whether the <see cref="Result"/> should affect the combo portion of the score.
|
|
/// If false, the <see cref="Result"/> will be considered for the bonus portion of the score.
|
|
/// </summary>
|
|
public virtual bool AffectsCombo => true;
|
|
|
|
/// <summary>
|
|
/// The numeric representation for the result achieved.
|
|
/// </summary>
|
|
public int NumericResult => NumericResultFor(Result);
|
|
|
|
/// <summary>
|
|
/// The numeric representation for the maximum achievable result.
|
|
/// </summary>
|
|
public int MaxNumericResult => NumericResultFor(MaxResult);
|
|
|
|
/// <summary>
|
|
/// Convert a <see cref="HitResult"/> to a numeric score representation.
|
|
/// </summary>
|
|
/// <param name="result">The value to convert.</param>
|
|
/// <returns>The number.</returns>
|
|
protected virtual int NumericResultFor(HitResult result) => result > HitResult.Miss ? 1 : 0;
|
|
}
|
|
}
|