// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using JetBrains.Annotations; using McMaster.Extensions.CommandLineUtils; using osu.Game.Beatmaps; using osu.Game.Rulesets; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Scoring; using osu.Game.Scoring; namespace PerformanceCalculator.Simulate { public abstract class SimulateCommand : ProcessorCommand { public abstract Ruleset Ruleset { get; } [UsedImplicitly] [Required] [Argument(0, Name = "beatmap", Description = "Required. Can be either a path to beatmap file (.osu) or beatmap ID.")] public string Beatmap { get; } [UsedImplicitly] [Option(Template = "-a|--accuracy ", Description = "Accuracy. Enter as decimal 0-100. Defaults to 100. Scales hit results as well and is rounded to the nearest possible value for the beatmap.")] public double Accuracy { get; } = 100; [UsedImplicitly] [Option(CommandOptionType.MultipleValue, Template = "-m|--mod ", Description = "One for each mod. The mods to compute the performance with. Values: hr, dt, hd, fl, etc...")] public string[] Mods { get; } [UsedImplicitly] [Option(CommandOptionType.MultipleValue, Template = "-o|--mod-option