1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-12 17:57:21 +08:00

Centralise judgement logic

This commit is contained in:
Dean Herbert 2018-06-29 15:27:02 +09:00
parent 3b262e0d16
commit f7fbf61306
4 changed files with 10 additions and 25 deletions

View File

@ -2,7 +2,6 @@
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using osu.Game.Rulesets.Catch.Judgements; using osu.Game.Rulesets.Catch.Judgements;
using osu.Game.Rulesets.Scoring;
namespace osu.Game.Rulesets.Catch.Objects.Drawable namespace osu.Game.Rulesets.Catch.Objects.Drawable
{ {
@ -13,12 +12,6 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
{ {
} }
protected override void CheckForJudgements(bool userTriggered, double timeOffset) protected override CatchJudgement CreateJudgement() => new CatchBananaJudgement();
{
if (CheckPosition == null) return;
if (timeOffset >= 0)
AddJudgement(new CatchBananaJudgement { Result = CheckPosition.Invoke(HitObject) ? HitResult.Perfect : HitResult.Miss });
}
} }
} }

View File

@ -58,9 +58,15 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
if (CheckPosition == null) return; if (CheckPosition == null) return;
if (timeOffset >= 0) if (timeOffset >= 0)
AddJudgement(new CatchJudgement { Result = CheckPosition.Invoke(HitObject) ? HitResult.Perfect : HitResult.Miss }); {
var judgement = CreateJudgement();
judgement.Result = CheckPosition.Invoke(HitObject) ? HitResult.Perfect : HitResult.Miss;
AddJudgement(judgement);
}
} }
protected virtual CatchJudgement CreateJudgement() => new CatchJudgement();
protected override void SkinChanged(ISkinSource skin, bool allowFallback) protected override void SkinChanged(ISkinSource skin, bool allowFallback)
{ {
base.SkinChanged(skin, allowFallback); base.SkinChanged(skin, allowFallback);

View File

@ -7,7 +7,6 @@ using osu.Game.Rulesets.Catch.Objects.Drawable.Pieces;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Game.Rulesets.Catch.Judgements; using osu.Game.Rulesets.Catch.Judgements;
using osu.Game.Rulesets.Scoring;
namespace osu.Game.Rulesets.Catch.Objects.Drawable namespace osu.Game.Rulesets.Catch.Objects.Drawable
{ {
@ -25,13 +24,7 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
Masking = false; Masking = false;
} }
protected override void CheckForJudgements(bool userTriggered, double timeOffset) protected override CatchJudgement CreateJudgement() => new CatchDropletJudgement();
{
if (CheckPosition == null) return;
if (timeOffset >= 0)
AddJudgement(new CatchDropletJudgement { Result = CheckPosition.Invoke(HitObject) ? HitResult.Perfect : HitResult.Miss });
}
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -3,7 +3,6 @@
using OpenTK; using OpenTK;
using osu.Game.Rulesets.Catch.Judgements; using osu.Game.Rulesets.Catch.Judgements;
using osu.Game.Rulesets.Scoring;
namespace osu.Game.Rulesets.Catch.Objects.Drawable namespace osu.Game.Rulesets.Catch.Objects.Drawable
{ {
@ -15,12 +14,6 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
Size = new Vector2((float)CatchHitObject.OBJECT_RADIUS) / 8; Size = new Vector2((float)CatchHitObject.OBJECT_RADIUS) / 8;
} }
protected override void CheckForJudgements(bool userTriggered, double timeOffset) protected override CatchJudgement CreateJudgement() => new CatchTinyDropletJudgement();
{
if (CheckPosition == null) return;
if (timeOffset >= 0)
AddJudgement(new CatchTinyDropletJudgement { Result = CheckPosition.Invoke(HitObject) ? HitResult.Perfect : HitResult.Miss });
}
} }
} }