Apply review suggestions.

This commit is contained in:
Lucas A 2020-06-02 13:32:52 +02:00
parent e9b09373e7
commit f63c66396f
3 changed files with 21 additions and 8 deletions

View File

@ -19,7 +19,7 @@ namespace osu.Game.Tests.Visual.Gameplay
{
var beatmap = Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo, Array.Empty<Mod>());
return new ScoreAccessibleReplayPlayer(ruleset.GetAutoplayMod().CreateReplayScore(beatmap));
return new ScoreAccessibleReplayPlayer(ruleset.GetAutoplayMod()?.CreateReplayScore(beatmap));
}
protected override void AddCheckSteps()

View File

@ -22,6 +22,7 @@ using osu.Game.Rulesets.Scoring;
using osu.Game.Scoring;
using osu.Game.Skinning;
using osu.Game.Users;
using JetBrains.Annotations;
namespace osu.Game.Rulesets
{
@ -100,6 +101,7 @@ namespace osu.Game.Rulesets
return value;
}
[CanBeNull]
public ModAutoplay GetAutoplayMod() => GetAllMods().OfType<ModAutoplay>().FirstOrDefault();
public virtual ISkin CreateLegacySkinProvider(ISkinSource source, IBeatmap beatmap) => null;

View File

@ -7,6 +7,8 @@ using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.Events;
using osu.Framework.Screens;
using osu.Game.Graphics;
using osu.Game.Overlays;
using osu.Game.Overlays.Notifications;
using osu.Game.Scoring;
using osu.Game.Screens.Play;
using osu.Game.Screens.Ranking;
@ -20,6 +22,9 @@ namespace osu.Game.Screens.Select
private bool removeAutoModOnResume;
private OsuScreen player;
[Resolved]
private NotificationOverlay notifications { get; set; }
public override bool AllowExternalScreenChange => true;
protected override UserActivity InitialActivity => new UserActivity.ChoosingBeatmap();
@ -83,15 +88,21 @@ namespace osu.Game.Screens.Select
var auto = Ruleset.Value.CreateInstance().GetAutoplayMod();
var autoType = auto?.GetType();
if (autoType != null)
{
var mods = Mods.Value;
var mods = Mods.Value;
if (mods.All(m => m.GetType() != autoType))
if (autoType == null)
{
notifications.Post(new SimpleNotification
{
Mods.Value = mods.Append(auto).ToArray();
removeAutoModOnResume = true;
}
Text = "The current ruleset doesn't have an autoplay mod avalaible!"
});
return false;
}
if (mods.All(m => m.GetType() != autoType))
{
Mods.Value = mods.Append(auto).ToArray();
removeAutoModOnResume = true;
}
}