namespace PKHeX.Core { /// Ribbons introduced in Generation 3 and were transferred to future Generations (4 and 5 only). internal interface IRibbonSetUnique3 { /// Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 50 challenge. bool RibbonWinning { get; set; } /// Ribbon awarded for clearing Hoenn's Battle Tower's Lv. 100 challenge. bool RibbonVictory { get; set; } } internal static partial class RibbonExtensions { private static readonly string[] RibbonSetNamesUnique3 = { nameof(IRibbonSetUnique3.RibbonWinning), nameof(IRibbonSetUnique3.RibbonVictory), }; internal static bool[] RibbonBits(this IRibbonSetUnique3 set) { if (set == null) return new bool[2]; return new[] { set.RibbonWinning, set.RibbonVictory, }; } internal static string[] RibbonNames(this IRibbonSetUnique3 _) => RibbonSetNamesUnique3; } }