public override IEnumerable <Mod> ConvertFromLegacyMods(LegacyMods mods) { if (mods.HasFlag(LegacyMods.Nightcore)) { yield return(new ManiaModNightcore()); } else if (mods.HasFlag(LegacyMods.DoubleTime)) { yield return(new ManiaModDoubleTime()); } if (mods.HasFlag(LegacyMods.Perfect)) { yield return(new ManiaModPerfect()); } else if (mods.HasFlag(LegacyMods.SuddenDeath)) { yield return(new ManiaModSuddenDeath()); } if (mods.HasFlag(LegacyMods.Cinema)) { yield return(new ManiaModCinema()); } else if (mods.HasFlag(LegacyMods.Autoplay)) { yield return(new ManiaModAutoplay()); } if (mods.HasFlag(LegacyMods.Easy)) { yield return(new ManiaModEasy()); } if (mods.HasFlag(LegacyMods.FadeIn)) { yield return(new ManiaModFadeIn()); } if (mods.HasFlag(LegacyMods.Flashlight)) { yield return(new ManiaModFlashlight()); } if (mods.HasFlag(LegacyMods.HalfTime)) { yield return(new ManiaModHalfTime()); } if (mods.HasFlag(LegacyMods.HardRock)) { yield return(new ManiaModHardRock()); } if (mods.HasFlag(LegacyMods.Hidden)) { yield return(new ManiaModHidden()); } if (mods.HasFlag(LegacyMods.Key1)) { yield return(new ManiaModKey1()); } if (mods.HasFlag(LegacyMods.Key2)) { yield return(new ManiaModKey2()); } if (mods.HasFlag(LegacyMods.Key3)) { yield return(new ManiaModKey3()); } if (mods.HasFlag(LegacyMods.Key4)) { yield return(new ManiaModKey4()); } if (mods.HasFlag(LegacyMods.Key5)) { yield return(new ManiaModKey5()); } if (mods.HasFlag(LegacyMods.Key6)) { yield return(new ManiaModKey6()); } if (mods.HasFlag(LegacyMods.Key7)) { yield return(new ManiaModKey7()); } if (mods.HasFlag(LegacyMods.Key8)) { yield return(new ManiaModKey8()); } if (mods.HasFlag(LegacyMods.Key9)) { yield return(new ManiaModKey9()); } if (mods.HasFlag(LegacyMods.KeyCoop)) { yield return(new ManiaModDualStages()); } if (mods.HasFlag(LegacyMods.NoFail)) { yield return(new ManiaModNoFail()); } if (mods.HasFlag(LegacyMods.Random)) { yield return(new ManiaModRandom()); } if (mods.HasFlag(LegacyMods.Mirror)) { yield return(new ManiaModMirror()); } }
public override IEnumerable <Mod> ConvertLegacyMods(LegacyMods mods) { if (mods.HasFlag(LegacyMods.Nightcore)) { yield return(new TaikoModNightcore()); } else if (mods.HasFlag(LegacyMods.DoubleTime)) { yield return(new TaikoModDoubleTime()); } if (mods.HasFlag(LegacyMods.Autoplay)) { yield return(new TaikoModAutoplay()); } if (mods.HasFlag(LegacyMods.Easy)) { yield return(new TaikoModEasy()); } if (mods.HasFlag(LegacyMods.Flashlight)) { yield return(new TaikoModFlashlight()); } if (mods.HasFlag(LegacyMods.HalfTime)) { yield return(new TaikoModHalfTime()); } if (mods.HasFlag(LegacyMods.HardRock)) { yield return(new TaikoModHardRock()); } if (mods.HasFlag(LegacyMods.Hidden)) { yield return(new TaikoModHidden()); } if (mods.HasFlag(LegacyMods.NoFail)) { yield return(new TaikoModNoFail()); } if (mods.HasFlag(LegacyMods.Perfect)) { yield return(new TaikoModPerfect()); } if (mods.HasFlag(LegacyMods.Relax)) { yield return(new TaikoModRelax()); } if (mods.HasFlag(LegacyMods.SuddenDeath)) { yield return(new TaikoModSuddenDeath()); } }
/// <summary> /// Converts mods from legacy enum values. Do not override if you're not a legacy ruleset. /// </summary> /// <param name="mods">The legacy enum which will be converted.</param> /// <returns>An enumerable of constructed <see cref="Mod"/>s.</returns> public virtual IEnumerable <Mod> ConvertFromLegacyMods(LegacyMods mods) => Array.Empty <Mod>();
public GetBeatmap(uint id, LegacyMods mods = LegacyMods.NM) { this.id = id; this.mods = mods; }
public override IEnumerable <Mod> ConvertFromLegacyMods(LegacyMods mods) { if (mods.HasFlagFast(LegacyMods.Nightcore)) { yield return(new OsuModNightcore()); } else if (mods.HasFlagFast(LegacyMods.DoubleTime)) { yield return(new OsuModDoubleTime()); } if (mods.HasFlagFast(LegacyMods.Perfect)) { yield return(new OsuModPerfect()); } else if (mods.HasFlagFast(LegacyMods.SuddenDeath)) { yield return(new OsuModSuddenDeath()); } if (mods.HasFlagFast(LegacyMods.Autopilot)) { yield return(new OsuModAutopilot()); } if (mods.HasFlagFast(LegacyMods.Cinema)) { yield return(new OsuModCinema()); } else if (mods.HasFlagFast(LegacyMods.Autoplay)) { yield return(new OsuModAutoplay()); } if (mods.HasFlagFast(LegacyMods.Easy)) { yield return(new OsuModEasy()); } if (mods.HasFlagFast(LegacyMods.Flashlight)) { yield return(new OsuModFlashlight()); } if (mods.HasFlagFast(LegacyMods.HalfTime)) { yield return(new OsuModHalfTime()); } if (mods.HasFlagFast(LegacyMods.HardRock)) { yield return(new OsuModHardRock()); } if (mods.HasFlagFast(LegacyMods.Hidden)) { yield return(new OsuModHidden()); } if (mods.HasFlagFast(LegacyMods.NoFail)) { yield return(new OsuModNoFail()); } if (mods.HasFlagFast(LegacyMods.Relax)) { yield return(new OsuModRelax()); } if (mods.HasFlagFast(LegacyMods.SpunOut)) { yield return(new OsuModSpunOut()); } if (mods.HasFlagFast(LegacyMods.Target)) { yield return(new OsuModTarget()); } if (mods.HasFlagFast(LegacyMods.TouchDevice)) { yield return(new OsuModTouchDevice()); } }
public new void TestToLegacy(LegacyMods legacyMods, Type[] givenMods) => base.TestToLegacy(legacyMods, givenMods);
public new void TestFromLegacy(LegacyMods legacyMods, Type[] expectedMods) => base.TestFromLegacy(legacyMods, expectedMods);
/// <summary> /// Converts mods from legacy enum values. Do not override if you're not a legacy ruleset. /// </summary> /// <param name="mods">The legacy enum which will be converted</param> /// <returns>An enumerable of constructed <see cref="Mod"/>s</returns> public virtual IEnumerable <Mod> ConvertLegacyMods(LegacyMods mods) => new Mod[] { };
public override string GetFormattedMapInfo(LegacyMods mods, bool includeName = false) { string pp = string.Empty; if (Mode == Mode.Osu) { try { double info100 = Oppai.GetBeatmapPP(this, mods, 100); if (info100 > 0) { pp = $"100% - {info100:N2}pp"; double info98 = Oppai.GetBeatmapPP(this, mods, 98); if (info98 > 0) { pp += $" | 98% - {info98:N2}pp"; } double info95 = Oppai.GetBeatmapPP(this, mods, 95); if (info95 > 0) { pp += $" | 95% - {info95:N2}pp"; } } } catch (Exception e) { Log.Error($"Oppai failed: {e.InnerMessageIfAny()}"); } } var fullName = string.Empty; if (includeName) { fullName = $"<a href=\"{Link}\">{BeatmapSet?.Artist} - {BeatmapSet?.Title}</a>\n"; } switch (Mode) { case Mode.Osu: return ($"{fullName}" + $"[{Version.FilterToHTML()}] - {StarRating:N2}* - {ModdedDrainLength(mods):mm\':\'ss} - {BeatmapSet?.CreatorName} - <b>{Status}</b>\n" + $"⭕️ | <b>CS:</b> {ModdedCS(mods):N2} | <b>AR:</b> {ModdedAR(mods):N2} | <b>OD:</b> {ModdedOD(mods):N2} | <b>BPM:</b> {ModdedBPM(mods):N2}\n" + $"{pp}"); case Mode.Taiko: return ($"{fullName}" + $"[{Version.FilterToHTML()}] - {StarRating:N2}* - {ModdedDrainLength(mods):mm\':\'ss} - {BeatmapSet?.CreatorName} - <b>{Status}</b>\n" + $"🥁 | <b>OD:</b> {ModdedOD(mods):N2} | <b>BPM:</b> {ModdedBPM(mods):N2}"); case Mode.Fruits: return ($"{fullName}" + $"[{Version.FilterToHTML()}] - {StarRating:N2}* - {ModdedDrainLength(mods):mm\':\'ss} - {BeatmapSet?.CreatorName} - <b>{Status}</b>\n" + $"🍎 | <b>CS:</b> {ModdedCS(mods):N2} | <b>AR:</b> {ModdedAR(mods):N2} | <b>OD:</b> {ModdedOD(mods):N2} | <b>BPM:</b> {ModdedBPM(mods):N2}"); case Mode.Mania: return ($"{fullName}" + $"[{Version.FilterToHTML()}] - {StarRating:N2}* - {ModdedDrainLength(mods):mm\':\'ss} - {BeatmapSet?.CreatorName} - <b>{Status}</b>\n" + $"🎹 | <b>Keys:</b> {CS:N0} | <b>OD:</b> {ModdedOD(mods):N2} | <b>BPM:</b> {ModdedBPM(mods):N2}"); default: return(string.Empty); } }