Merge remote-tracking branch 'upstream/master' into tgi74-hit-shake

# Conflicts:
#	osu.Game.Rulesets.Osu.Tests/TestCaseHitCircle.cs
#	osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuHitObject.cs
#	osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs
This commit is contained in:
Dean Herbert
2018-08-24 15:26:36 +09:00
442 changed files with 5870 additions and 3492 deletions

View File

@ -9,7 +9,6 @@ using System.Collections.Generic;
using System.Linq;
using osu.Framework.Allocation;
using osu.Framework.Graphics.Containers;
using osu.Game.Rulesets.Osu.Judgements;
using osu.Game.Configuration;
using osu.Game.Rulesets.Scoring;
using OpenTK.Graphics;
@ -135,23 +134,27 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
}
}
protected override void CheckForJudgements(bool userTriggered, double timeOffset)
protected override void CheckForResult(bool userTriggered, double timeOffset)
{
if (!userTriggered && Time.Current >= slider.EndTime)
if (userTriggered || Time.Current < slider.EndTime)
return;
ApplyResult(r =>
{
var judgementsCount = NestedHitObjects.Count();
var judgementsHit = NestedHitObjects.Count(h => h.IsHit);
var hitFraction = (double)judgementsHit / judgementsCount;
if (hitFraction == 1 && HeadCircle.Judgements.Any(j => j.Result == HitResult.Great))
AddJudgement(new OsuJudgement { Result = HitResult.Great });
else if (hitFraction >= 0.5 && HeadCircle.Judgements.Any(j => j.Result >= HitResult.Good))
AddJudgement(new OsuJudgement { Result = HitResult.Good });
if (hitFraction == 1 && HeadCircle.Result.Type == HitResult.Great)
r.Type = HitResult.Great;
else if (hitFraction >= 0.5 && HeadCircle.Result.Type >= HitResult.Good)
r.Type = HitResult.Good;
else if (hitFraction > 0)
AddJudgement(new OsuJudgement { Result = HitResult.Meh });
r.Type = HitResult.Meh;
else
AddJudgement(new OsuJudgement { Result = HitResult.Miss });
}
r.Type = HitResult.Miss;
});
}
protected override void UpdateCurrentState(ArmedState state)