diff --git a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs index a40a7c2849..deb87e92d8 100644 --- a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs +++ b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs @@ -148,7 +148,7 @@ namespace osu.Game.Rulesets.Scoring } } - public abstract class ScoreProcessor : ScoreProcessor + public class ScoreProcessor : ScoreProcessor where TObject : HitObject { private const double base_portion = 0.3; @@ -172,7 +172,7 @@ namespace osu.Game.Rulesets.Scoring { } - protected ScoreProcessor(RulesetContainer rulesetContainer) + public ScoreProcessor(RulesetContainer rulesetContainer) { Debug.Assert(base_portion + combo_portion == 1.0); @@ -180,11 +180,20 @@ namespace osu.Game.Rulesets.Scoring SimulateAutoplay(rulesetContainer.Beatmap); Reset(true); + + if (maxBaseScore == 0 || maxHighestCombo == 0) + { + Mode.Value = ScoringMode.Exponential; + Mode.Disabled = true; + } } /// /// Simulates an autoplay of s that will be judged by this /// by adding s for each in the . + /// + /// This is required for to work, otherwise will be used. + /// /// /// The containing the s that will be judged by this . protected virtual void SimulateAutoplay(Beatmap beatmap) { } diff --git a/osu.Game/Rulesets/UI/RulesetContainer.cs b/osu.Game/Rulesets/UI/RulesetContainer.cs index cff3365788..86ab9a0199 100644 --- a/osu.Game/Rulesets/UI/RulesetContainer.cs +++ b/osu.Game/Rulesets/UI/RulesetContainer.cs @@ -133,6 +133,8 @@ namespace osu.Game.Rulesets.UI public sealed override bool ProvidingUserCursor => !HasReplayLoaded && Playfield.ProvidingUserCursor; + public override ScoreProcessor CreateScoreProcessor() => new ScoreProcessor(this); + /// /// The playfield. ///