private static IEnumerable <RibbonResult> GetInvalidRibbons4Any(PKM pkm, IRibbonSetCommon4 s4, int gen) { if (s4.RibbonRecord) { yield return(new RibbonResult(nameof(s4.RibbonRecord))); // Unobtainable } if (s4.RibbonFootprint && (pkm.Format < 6 && gen == 5 || gen >= 6 && pkm.CurrentLevel - pkm.Met_Level < 30)) { yield return(new RibbonResult(nameof(s4.RibbonFootprint))); } bool gen34 = gen == 3 || gen == 4; bool not6 = pkm.Format < 6 || gen > 6 || gen < 3; bool noDaily = !gen34 && not6; bool noCosmetic = !gen34 && (not6 || pkm.XY && pkm.IsUntraded); if (noDaily) { foreach (var z in GetInvalidRibbonsNone(s4.RibbonBitsDaily(), s4.RibbonNamesDaily())) { yield return(z); } } if (noCosmetic) { foreach (var z in GetInvalidRibbonsNone(s4.RibbonBitsCosmetic(), s4.RibbonNamesCosmetic())) { yield return(z); } } }
internal static bool[] RibbonBitsOnly(this IRibbonSetCommon4 set) { return(new[] { set.RibbonRecord, set.RibbonChampionSinnoh, set.RibbonLegend, }); }
internal static bool[] RibbonBitsCosmetic(this IRibbonSetCommon4 set) { return(new[] { set.RibbonGorgeous, set.RibbonRoyal, set.RibbonGorgeousRoyal, }); }
internal static bool[] RibbonBitsDaily(this IRibbonSetCommon4 set) { return(new[] { set.RibbonAlert, set.RibbonShock, set.RibbonDowncast, set.RibbonCareless, set.RibbonRelax, set.RibbonSnooze, set.RibbonSmile, }); }
internal static void CopyRibbonSetCommon4(this IRibbonSetCommon4 set, IRibbonSetCommon4 dest) { dest.RibbonChampionSinnoh = set.RibbonChampionSinnoh; dest.RibbonAlert = set.RibbonAlert; dest.RibbonShock = set.RibbonShock; dest.RibbonDowncast = set.RibbonDowncast; dest.RibbonCareless = set.RibbonCareless; dest.RibbonRelax = set.RibbonRelax; dest.RibbonSnooze = set.RibbonSnooze; dest.RibbonSmile = set.RibbonSmile; dest.RibbonGorgeous = set.RibbonGorgeous; dest.RibbonRoyal = set.RibbonRoyal; dest.RibbonGorgeousRoyal = set.RibbonGorgeousRoyal; dest.RibbonFootprint = set.RibbonFootprint; dest.RibbonRecord = set.RibbonRecord; dest.RibbonLegend = set.RibbonLegend; }
internal static string[] RibbonNamesOnly(this IRibbonSetCommon4 set) => RibbonSetNamesCommon4Only;
internal static string[] RibbonNamesCosmetic(this IRibbonSetCommon4 set) => RibbonSetNamesCommon4;
internal static string[] RibbonNamesDaily(this IRibbonSetCommon4 _) => RibbonSetNamesCommon4Daily;