Пример #1
0
        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());
            }
        }
Пример #2
0
        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());
            }
        }
Пример #3
0
 /// <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>();
Пример #4
0
 public GetBeatmap(uint id, LegacyMods mods = LegacyMods.NM)
 {
     this.id   = id;
     this.mods = mods;
 }
Пример #5
0
        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);
Пример #8
0
 /// <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[]
 {
 };
Пример #9
0
        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);
            }
        }