Expose full hitobject rather than hit windows

This commit is contained in:
smoogipoo
2019-09-02 17:14:40 +09:00
parent f2bdf94a1d
commit 0c73c5acf3
10 changed files with 25 additions and 28 deletions

View File

@ -19,16 +19,16 @@ namespace osu.Game.Rulesets.Judgements
public HitResult Type;
/// <summary>
/// The <see cref="Judgement"/> which this <see cref="JudgementResult"/> applies for.
/// The <see cref="HitObject"/> which was judged.
/// </summary>
public readonly Judgement Judgement;
[NotNull]
public readonly HitObject HitObject;
/// <summary>
/// The <see cref="HitWindows"/> which the <see cref="HitObject"/> was judged against.
/// May be null to indicate that the timing error should not be displayed to the user.
/// The <see cref="Judgement"/> which this <see cref="JudgementResult"/> applies for.
/// </summary>
[CanBeNull]
public readonly HitWindows HitWindows;
[NotNull]
public readonly Judgement Judgement;
/// <summary>
/// The offset from a perfect hit at which this <see cref="JudgementResult"/> occurred.
@ -64,13 +64,12 @@ namespace osu.Game.Rulesets.Judgements
/// <summary>
/// Creates a new <see cref="JudgementResult"/>.
/// </summary>
/// <param name="hitObject">The <see cref="HitObject"/> which was judged.</param>
/// <param name="judgement">The <see cref="Judgement"/> to refer to for scoring information.</param>
/// <param name="hitWindows">The <see cref="HitWindows"/> which the <see cref="HitObject"/> was judged against.
/// May be null to indicate that the timing error should not be displayed to the user.</param>
public JudgementResult([NotNull] Judgement judgement, [CanBeNull] HitWindows hitWindows)
public JudgementResult([NotNull] HitObject hitObject, [NotNull] Judgement judgement)
{
HitObject = hitObject;
Judgement = judgement;
HitWindows = hitWindows;
}
public override string ToString() => $"{Type} (Score:{Judgement.NumericResultFor(this)} HP:{Judgement.HealthIncreaseFor(this)} {Judgement})";

View File

@ -99,7 +99,7 @@ namespace osu.Game.Rulesets.Objects.Drawables
if (judgement != null)
{
Result = CreateResult(judgement, HitObject.HitWindows);
Result = CreateResult(judgement);
if (Result == null)
throw new InvalidOperationException($"{GetType().ReadableName()} must provide a {nameof(JudgementResult)} through {nameof(CreateResult)}.");
}
@ -401,9 +401,7 @@ namespace osu.Game.Rulesets.Objects.Drawables
/// Creates the <see cref="JudgementResult"/> that represents the scoring result for this <see cref="DrawableHitObject"/>.
/// </summary>
/// <param name="judgement">The <see cref="Judgement"/> that provides the scoring information.</param>
/// <param name="hitWindows">The <see cref="HitWindows"/> which the <see cref="HitObject"/> was judged against.
/// May be null to indicate that the timing error should not be displayed to the user.</param>
protected virtual JudgementResult CreateResult(Judgement judgement, HitWindows hitWindows) => new JudgementResult(judgement, hitWindows);
protected virtual JudgementResult CreateResult(Judgement judgement) => new JudgementResult(HitObject, judgement);
}
public abstract class DrawableHitObject<TObject> : DrawableHitObject

View File

@ -275,7 +275,7 @@ namespace osu.Game.Rulesets.Scoring
if (judgement == null)
return;
var result = CreateResult(judgement);
var result = CreateResult(obj, judgement);
if (result == null)
throw new InvalidOperationException($"{GetType().ReadableName()} must provide a {nameof(JudgementResult)} through {nameof(CreateResult)}.");
@ -441,8 +441,9 @@ namespace osu.Game.Rulesets.Scoring
/// <summary>
/// Creates the <see cref="JudgementResult"/> that represents the scoring result for a <see cref="HitObject"/>.
/// </summary>
/// <param name="hitObject">The <see cref="HitObject"/> which was judged.</param>
/// <param name="judgement">The <see cref="Judgement"/> that provides the scoring information.</param>
protected virtual JudgementResult CreateResult(Judgement judgement) => new JudgementResult(judgement, null);
protected virtual JudgementResult CreateResult(HitObject hitObject, Judgement judgement) => new JudgementResult(hitObject, judgement);
}
public enum ScoringMode

View File

@ -49,7 +49,7 @@ namespace osu.Game.Screens.Play.HUD
private void onNewJudgement(JudgementResult result)
{
if (result.HitWindows == null)
if (result.HitObject.HitWindows == null)
return;
foreach (var c in Children)