diff --git a/osu.Game.Rulesets.Sentakki/Mods/SentakkiModAccuracyChallenge.cs b/osu.Game.Rulesets.Sentakki/Mods/SentakkiModAccuracyChallenge.cs new file mode 100644 index 000000000..6a7a195fb --- /dev/null +++ b/osu.Game.Rulesets.Sentakki/Mods/SentakkiModAccuracyChallenge.cs @@ -0,0 +1,8 @@ +using osu.Game.Rulesets.Mods; + +namespace osu.Game.Rulesets.Sentakki.Mods +{ + public class SentakkiModAccuracyChallenge : ModAccuracyChallenge + { + } +} diff --git a/osu.Game.Rulesets.Sentakki/Mods/SentakkiModChallenge.cs b/osu.Game.Rulesets.Sentakki/Mods/SentakkiModChallenge.cs index e022a98c6..1326f3c25 100644 --- a/osu.Game.Rulesets.Sentakki/Mods/SentakkiModChallenge.cs +++ b/osu.Game.Rulesets.Sentakki/Mods/SentakkiModChallenge.cs @@ -17,7 +17,7 @@ namespace osu.Game.Rulesets.Sentakki.Mods { - public class SentakkiModChallenge : Mod, IApplicableToDrawableRuleset, IApplicableToHealthProcessor + public class SentakkiModChallenge : ModFailCondition, IApplicableToDrawableRuleset, IApplicableToHealthProcessor { public override string Name => "Challenge"; public override LocalisableString Description => SentakkiModChallengeStrings.ModDescription; @@ -33,8 +33,7 @@ public class SentakkiModChallenge : Mod, IApplicableToDrawableRuleset new[] { typeof(ModRelax), - typeof(ModSuddenDeath), - typeof(ModPerfect), + typeof(ModFailCondition), typeof(ModAutoplay), typeof(ModNoFail), }; @@ -85,12 +84,7 @@ public void ApplyToDrawableRuleset(DrawableRuleset drawableRu ((SentakkiPlayfield)drawableRuleset.Playfield).AccentContainer.Add(new LiveCounter(LivesLeft)); } - public void ApplyToHealthProcessor(HealthProcessor healthProcessor) - { - healthProcessor.FailConditions += FailCondition; - } - - protected bool FailCondition(HealthProcessor healthProcessor, JudgementResult result) + protected override bool FailCondition(HealthProcessor healthProcessor, JudgementResult result) { if (result.Judgement is not SentakkiJudgement || result.HitObject is ScorePaddingObject) return false; diff --git a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiLanedHitObject.cs b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiLanedHitObject.cs index 3f7f01a3f..aceb68912 100644 --- a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiLanedHitObject.cs +++ b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiLanedHitObject.cs @@ -100,7 +100,7 @@ protected override void ClearNestedHitObjects() protected override void OnFree() { base.OnFree(); - breakSample.Samples = null; + breakSample.Samples = null!; } protected override void ApplyResult(Action application) diff --git a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableTouchHold.cs b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableTouchHold.cs index ff64f6e06..81b797497 100644 --- a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableTouchHold.cs +++ b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableTouchHold.cs @@ -99,7 +99,7 @@ protected override void OnFree() { base.OnFree(); - holdSample.Samples = null; + holdSample.Samples = null!; holdStartTime = null; totalHoldTime = 0; } diff --git a/osu.Game.Rulesets.Sentakki/SentakkiRuleset.cs b/osu.Game.Rulesets.Sentakki/SentakkiRuleset.cs index 4f139f133..a9646e7e3 100644 --- a/osu.Game.Rulesets.Sentakki/SentakkiRuleset.cs +++ b/osu.Game.Rulesets.Sentakki/SentakkiRuleset.cs @@ -85,7 +85,7 @@ public override IEnumerable GetModsFor(ModType type) { new SentakkiModHardRock(), new MultiMod(new SentakkiModSuddenDeath(), new SentakkiModPerfect()), - new SentakkiModChallenge(), + new MultiMod(new SentakkiModChallenge(), new SentakkiModAccuracyChallenge()), new MultiMod(new SentakkiModDoubleTime(), new SentakkiModNightcore()), new SentakkiModHidden(), }; diff --git a/osu.Game.Rulesets.Sentakki/osu.Game.Rulesets.Sentakki.csproj b/osu.Game.Rulesets.Sentakki/osu.Game.Rulesets.Sentakki.csproj index 88e4c74cb..ca34b212c 100644 --- a/osu.Game.Rulesets.Sentakki/osu.Game.Rulesets.Sentakki.csproj +++ b/osu.Game.Rulesets.Sentakki/osu.Game.Rulesets.Sentakki.csproj @@ -9,7 +9,7 @@ osu.Game.Rulesets.Sentakki - +