mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 16:29:58 +09:00
Introduce the concept of a "MainResult"
This commit is contained in:
@ -21,10 +21,10 @@ namespace osu.Game.Rulesets.Taiko.Objects
|
|||||||
|
|
||||||
protected override IEnumerable<Judgement> CreateJudgements()
|
protected override IEnumerable<Judgement> CreateJudgements()
|
||||||
{
|
{
|
||||||
yield return new TaikoJudgement();
|
|
||||||
|
|
||||||
for (int i = 0; i < RequiredHits; i++)
|
for (int i = 0; i < RequiredHits; i++)
|
||||||
yield return new TaikoIntermediateSwellJudgement();
|
yield return new TaikoIntermediateSwellJudgement();
|
||||||
|
|
||||||
|
yield return new TaikoJudgement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,13 @@ namespace osu.Game.Rulesets.Objects.Drawables
|
|||||||
private readonly List<JudgementResult> results = new List<JudgementResult>();
|
private readonly List<JudgementResult> results = new List<JudgementResult>();
|
||||||
public IReadOnlyList<JudgementResult> Results => results;
|
public IReadOnlyList<JudgementResult> Results => results;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The <see cref="JudgementResult"/> that affects whether this <see cref="DrawableHitObject"/> has been hit or missed.
|
||||||
|
/// By default, this is the last <see cref="JudgementResult"/> in <see cref="Results"/>, and should be overridden if the order
|
||||||
|
/// of <see cref="Judgement"/>s in <see cref="HitObject.CreateJudgements"/> doesn't list the main <see cref="Judgement"/> as its last element.
|
||||||
|
/// </summary>
|
||||||
|
protected virtual JudgementResult MainResult => Results.LastOrDefault();
|
||||||
|
|
||||||
private bool judgementOccurred;
|
private bool judgementOccurred;
|
||||||
|
|
||||||
public bool Interactive = true;
|
public bool Interactive = true;
|
||||||
@ -192,6 +199,8 @@ namespace osu.Game.Rulesets.Objects.Drawables
|
|||||||
var endTime = (HitObject as IHasEndTime)?.EndTime ?? HitObject.StartTime;
|
var endTime = (HitObject as IHasEndTime)?.EndTime ?? HitObject.StartTime;
|
||||||
result.TimeOffset = Time.Current - endTime;
|
result.TimeOffset = Time.Current - endTime;
|
||||||
|
|
||||||
|
if (result == MainResult)
|
||||||
|
{
|
||||||
switch (result.Type)
|
switch (result.Type)
|
||||||
{
|
{
|
||||||
case HitResult.None:
|
case HitResult.None:
|
||||||
@ -203,6 +212,7 @@ namespace osu.Game.Rulesets.Objects.Drawables
|
|||||||
State.Value = ArmedState.Hit;
|
State.Value = ArmedState.Hit;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
OnJudgement?.Invoke(this, result);
|
OnJudgement?.Invoke(this, result);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user