namespace PKHeX.Core { /// Ribbons introduced in Generation 3 for Special Events internal interface IRibbonSetEvent3 { bool RibbonEarth { get; set; } bool RibbonNational { get; set; } bool RibbonCountry { get; set; } bool RibbonChampionBattle { get; set; } bool RibbonChampionRegional { get; set; } bool RibbonChampionNational { get; set; } } internal static partial class RibbonExtensions { private static readonly string[] RibbonSetNamesEvent3 = { nameof(IRibbonSetEvent3.RibbonEarth), nameof(IRibbonSetEvent3.RibbonNational), nameof(IRibbonSetEvent3.RibbonCountry), nameof(IRibbonSetEvent3.RibbonChampionBattle), nameof(IRibbonSetEvent3.RibbonChampionRegional), nameof(IRibbonSetEvent3.RibbonChampionNational) }; internal static bool[] RibbonBits(this IRibbonSetEvent3 set) { if (set == null) return new bool[6]; return new[] { set.RibbonEarth, set.RibbonNational, set.RibbonCountry, set.RibbonChampionBattle, set.RibbonChampionRegional, set.RibbonChampionNational, }; } internal static string[] RibbonNames(this IRibbonSetEvent3 _) => RibbonSetNamesEvent3; } }