mirror of
https://github.com/kwsch/PKHeX
synced 2024-12-22 18:33:14 +00:00
fc754b346b
[Language Reference](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/file-scoped-namespaces) Updates all the files, one less level of indentation. Some small changes were made to API surfaces, renaming `PKM pkm` -> `PKM pk`, and `LegalityAnalysis.pkm` -> `LegalityAnalysis.Entity`
171 lines
4.7 KiB
C#
171 lines
4.7 KiB
C#
using System.Collections.Generic;
|
|
using static PKHeX.Core.Species;
|
|
|
|
namespace PKHeX.Core;
|
|
|
|
/// <summary>
|
|
/// Tables used for <see cref="AbilityVerifier"/>
|
|
/// </summary>
|
|
internal static class AbilityBreedLegality
|
|
{
|
|
/// <summary>
|
|
/// Species that cannot be bred with a Hidden Ability originating in <see cref="GameVersion.Gen5"/>
|
|
/// </summary>
|
|
internal static readonly HashSet<int> BanHidden5 = new()
|
|
{
|
|
// Only males distributed; unable to pass to offspring
|
|
(int)Bulbasaur, (int)Charmander, (int)Squirtle,
|
|
(int)Tauros,
|
|
(int)Chikorita, (int)Cyndaquil, (int)Totodile,
|
|
(int)Tyrogue,
|
|
(int)Treecko, (int)Torchic, (int)Mudkip,
|
|
(int)Turtwig, (int)Chimchar, (int)Piplup,
|
|
(int)Pansage, (int)Pansear, (int)Panpour,
|
|
(int)Gothita,
|
|
|
|
// Genderless; unable to pass to offspring
|
|
(int)Magnemite,
|
|
(int)Voltorb,
|
|
(int)Staryu,
|
|
(int)Ditto,
|
|
(int)Porygon,
|
|
(int)Beldum,
|
|
(int)Bronzor,
|
|
(int)Golett,
|
|
|
|
// Not available at all
|
|
(int)Gastly,
|
|
(int)Koffing,
|
|
(int)Misdreavus,
|
|
(int)Unown,
|
|
(int)Slakoth,
|
|
(int)Plusle,
|
|
(int)Plusle,
|
|
(int)Lunatone,
|
|
(int)Solrock,
|
|
(int)Baltoy,
|
|
(int)Castform,
|
|
(int)Kecleon,
|
|
(int)Duskull,
|
|
(int)Chimecho,
|
|
(int)Cherubi,
|
|
(int)Chingling,
|
|
(int)Rotom,
|
|
(int)Phione,
|
|
(int)Snivy, (int)Tepig, (int)Oshawott,
|
|
(int)Throh, (int)Sawk,
|
|
(int)Yamask,
|
|
(int)Archen,
|
|
(int)Zorua,
|
|
(int)Ferroseed,
|
|
(int)Klink,
|
|
(int)Tynamo,
|
|
(int)Litwick,
|
|
(int)Cryogonal,
|
|
(int)Rufflet,
|
|
(int)Deino,
|
|
(int)Larvesta,
|
|
};
|
|
|
|
/// <summary>
|
|
/// Species that cannot be bred with a Hidden Ability originating in <see cref="GameVersion.Gen6"/>
|
|
/// </summary>
|
|
internal static readonly HashSet<int> BanHidden6 = new()
|
|
{
|
|
// Not available at Friend Safari or Horde Encounter
|
|
(int)Flabébé + (2 << 11), // Orange
|
|
(int)Flabébé + (4 << 11), // White
|
|
|
|
// Super Size can be obtained as a Pumpkaboo from event distributions
|
|
(int)Pumpkaboo + (1 << 11), // Small
|
|
(int)Pumpkaboo + (2 << 11), // Large
|
|
|
|
// Same abilities (1/2/H), not available as H
|
|
(int)Honedge,
|
|
(int)Carnivine,
|
|
(int)Cryogonal,
|
|
(int)Archen,
|
|
(int)Rotom,
|
|
(int)Rotom + (1 << 11),
|
|
(int)Rotom + (2 << 11),
|
|
(int)Rotom + (3 << 11),
|
|
(int)Rotom + (4 << 11),
|
|
(int)Rotom + (5 << 11),
|
|
|
|
(int)Castform,
|
|
(int)Furfrou,
|
|
(int)Furfrou + (1 << 11),
|
|
(int)Furfrou + (2 << 11),
|
|
(int)Furfrou + (3 << 11),
|
|
(int)Furfrou + (4 << 11),
|
|
(int)Furfrou + (5 << 11),
|
|
(int)Furfrou + (6 << 11),
|
|
(int)Furfrou + (7 << 11),
|
|
(int)Furfrou + (8 << 11),
|
|
(int)Furfrou + (9 << 11),
|
|
};
|
|
|
|
/// <summary>
|
|
/// Species that cannot be bred with a Hidden Ability originating in <see cref="GameVersion.Gen7"/>
|
|
/// </summary>
|
|
internal static readonly HashSet<int> BanHidden7 = new()
|
|
{
|
|
// SOS slots have 0 call rate
|
|
(int)Wimpod,
|
|
(int)Golisopod,
|
|
(int)Komala,
|
|
|
|
// No Encounter
|
|
(int)Minior + (07 << 11),
|
|
(int)Minior + (08 << 11),
|
|
(int)Minior + (09 << 11),
|
|
(int)Minior + (10 << 11),
|
|
(int)Minior + (11 << 11),
|
|
(int)Minior + (12 << 11),
|
|
(int)Minior + (13 << 11),
|
|
|
|
// Previous-Gen
|
|
(int)Pumpkaboo + (1 << 11), // Small
|
|
(int)Pumpkaboo + (2 << 11), // Large
|
|
|
|
// Same abilities (1/2/H), not available as H
|
|
(int)Honedge,
|
|
(int)Doublade,
|
|
(int)Aegislash,
|
|
(int)Carnivine,
|
|
(int)Cryogonal,
|
|
(int)Archen,
|
|
(int)Archeops,
|
|
(int)Rotom,
|
|
(int)Rotom + (1 << 11),
|
|
(int)Rotom + (2 << 11),
|
|
(int)Rotom + (3 << 11),
|
|
(int)Rotom + (4 << 11),
|
|
(int)Rotom + (5 << 11),
|
|
};
|
|
|
|
// <summary>
|
|
// Species that cannot be bred with a Hidden Ability originating in <see cref="GameVersion.Gen8"/>
|
|
// </summary>
|
|
// internal static readonly HashSet<int> BanHidden8 = new(); // none as of DLC 1!
|
|
|
|
/// <summary>
|
|
/// Species that cannot be bred with a Hidden Ability originating in <see cref="GameVersion.Gen7"/>
|
|
/// </summary>
|
|
internal static readonly HashSet<int> BanHidden8b = new()
|
|
{
|
|
(int)Rotom,
|
|
(int)Rotom + (1 << 11),
|
|
(int)Rotom + (2 << 11),
|
|
(int)Rotom + (3 << 11),
|
|
(int)Rotom + (4 << 11),
|
|
(int)Rotom + (5 << 11),
|
|
|
|
(int)Baltoy,
|
|
(int)Claydol,
|
|
(int)Solrock,
|
|
(int)Lunatone,
|
|
|
|
(int)Phione,
|
|
};
|
|
}
|