namespace PKHeX.Core { /// Ribbons introduced in Generation 4 for Special Events internal interface IRibbonSetEvent4 { bool RibbonClassic { get; set; } bool RibbonWishing { get; set; } bool RibbonPremier { get; set; } bool RibbonEvent { get; set; } bool RibbonBirthday { get; set; } bool RibbonSpecial { get; set; } bool RibbonWorld { get; set; } bool RibbonChampionWorld { get; set; } bool RibbonSouvenir { get; set; } } internal static partial class RibbonExtensions { private static readonly string[] RibbonSetNamesEvent4 = { nameof(IRibbonSetEvent4.RibbonClassic), nameof(IRibbonSetEvent4.RibbonWishing), nameof(IRibbonSetEvent4.RibbonPremier), nameof(IRibbonSetEvent4.RibbonEvent), nameof(IRibbonSetEvent4.RibbonBirthday), nameof(IRibbonSetEvent4.RibbonSpecial), nameof(IRibbonSetEvent4.RibbonWorld), nameof(IRibbonSetEvent4.RibbonChampionWorld), nameof(IRibbonSetEvent4.RibbonSouvenir) }; internal static bool[] RibbonBits(this IRibbonSetEvent4 set) { if (set == null) return new bool[9]; return new[] { set.RibbonClassic, set.RibbonWishing, set.RibbonPremier, set.RibbonEvent, set.RibbonBirthday, set.RibbonSpecial, set.RibbonWorld, set.RibbonChampionWorld, set.RibbonSouvenir, }; } internal static string[] RibbonNames(this IRibbonSetEvent4 _) => RibbonSetNamesEvent4; } }