PKHeX/PKHeX.Core/Legality/Tables.cs

455 lines
16 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using System.Linq;
namespace PKHeX.Core
{
public static partial class Legal
{
public static readonly HashSet<int> Empty = new HashSet<int>();
public static readonly int[] Items_Ball =
{
000, 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012,
013, 014, 015, 016, 492, 493, 494, 495, 496, 497, 498, 499, 576,
851
};
public static readonly int[] Gen4EncounterTypes = { 1, 2, 4, 5, 7, 9, 10, 12, 23, 24 };
public static readonly HashSet<int> LightBall = new HashSet<int> { 25, 26, 172 };
public static readonly int[] Fossils = { 138, 140, 142, 345, 347, 408, 410, 564, 566, 696, 698 };
public static readonly int[] RotomMoves = { 0, 315, 056, 059, 403, 437 };
public static readonly HashSet<int> WildForms = new HashSet<int>
{
422, 423, // Shellos
550, // Basculin
669, 670, 671 // Flabébé
};
public static readonly HashSet<int> SplitBreed = new HashSet<int>
{
// Incense
113, 242, // Chansey
122, // Mr. Mime
143, // Snorlax
183, 184, // Marill
185, // Sudowoodo
202, // Wobbuffet
226, // Mantine
315, 407, // Roselia
358, // Chimecho
};
/// <summary>
/// Species that show their default Species sprite regardless of current <see cref="PKM.AltForm"/>
/// </summary>
public static readonly HashSet<int> SpeciesDefaultFormSprite = new HashSet<int>
{
414, // Mothim
493, // Arceus
664, // Scatterbug
665, // Spewpa
773, // Silvally
778, // Mimikyu
};
/// <summary>
/// Species that show a <see cref="PKM.Gender"/> specific Sprite
/// </summary>
public static readonly HashSet<int> SpeciesGenderedSprite = new HashSet<int>
{
521, // Unfezant
592, // Frillish
593, // Jellicent
668, // Pyroar
};
public static readonly HashSet<int> FormChange = new HashSet<int> // Pokémon that can change form and retain it
{
386, // Deoxys
412, // Burmy
421, // Cherrim
479, // Rotom
487, // Giratina
492, // Shaymin
493, // Arceus
641, // Tornadus
642, // Thundurus
645, // Landorus
646, // Kyurem
647, // Keldeo
649, // Genesect
676, // Furfrou
720, // Hoopa
741, // Oricorio
773, // Silvally
2017-11-09 04:23:06 +00:00
800, // Necrozma
};
public static readonly HashSet<int> FormChangeMoves = new HashSet<int>
{
386, // Deoxys
487, // Giratina
492, // Shaymin
720, // Hoopa
};
public static readonly HashSet<int> BreedMaleOnly = new HashSet<int>
{
128, // Tauros
627, 628, // Rufflet
236, 106, 107, 237, // Tyrogue
538, 539, // Sawk & Throh
};
public static readonly HashSet<int> NoHatchFromEgg = new HashSet<int>
{
132, // Ditto
144, // Articuno
145, // Zapdos
146, // Moltres
150, // Mewtwo
151, // Mew
201, // Unown
243, // Raikou
244, // Entei
245, // Suicune
249, // Lugia
250, // Ho-Oh
251, // Celebi
377, // Regirock
378, // Regice
379, // Registeel
380, // Latias
381, // Latios
382, // Kyogre
383, // Groudon
384, // Rayquaza
385, // Jirachi
386, // Deoxys
480, // Uxie
481, // Mesprit
482, // Azelf
483, // Dialga
484, // Palkia
485, // Heatran
486, // Regigigas
487, // Giratina
488, // Cresselia
490, // Manaphy
491, // Darkrai
492, // Shaymin
493, // Arceus
494, // Victini
638, // Cobalion
639, // Terrakion
640, // Virizion
641, // Tornadus
642, // Thundurus
643, // Reshiram
644, // Zekrom
645, // Landorus
646, // Kyurem
647, // Keldeo
648, // Meloetta
649, // Genesect
716, // Xerneas
717, // Yveltal
718, // Zygarde
719, // Diancie
720, // Hoopa
721, // Volcanion
772, // Type: Null
773, // Silvally
785, // Tapu Koko
786, // Tapu Lele
787, // Tapu Bulu
788, // Tapu Fini
789, // Cosmog
790, // Cosmoem
791, // Solgaleo
792, // Lunala
793, // Nihilego
794, // Buzzwole
795, // Pheromosa
796, // Xurkitree
797, // Celesteela
798, // Kartana
799, // Guzzlord
800, // Necrozma
801, // Magearna
802, // Marshadow
2017-11-09 04:23:06 +00:00
803, // Poipole
804, // Naganadel
805, // Stakataka
806, // Blacephalon
807, // Zeraora
};
public static readonly HashSet<int> BattleFrontierBanlist = new HashSet<int>
{
150, // Mewtwo
151, // Mew
249, // Lugia
250, // Ho-Oh
251, // Celebi
382, // Kyogre
383, // Groudon
384, // Rayquaza
385, // Jirachi
386, // Deoxys
483, // Dialga
484, // Palkia
487, // Giratina
489, // Phione
490, // Manaphy
491, // Darkrai
492, // Shaymin
493, // Arceus
494, // Victini
643, // Reshiram
644, // Zekrom
646, // Kyurem
647, // Keldeo
648, // Meloetta
649, // Genesect
716, // Xerneas
717, // Yveltal
718, // Zygarde
719, // Diancie
720, // Hoopa
721, // Volcanion
789, // Cosmog
790, // Cosmoem
791, // Solgaleo
792, // Lunala
800, // Necrozma
801, // Magearna
802, // Marshadow
2017-11-09 04:23:06 +00:00
807, // Zeraora
};
public static readonly HashSet<int> BattleForms = new HashSet<int>
{
351, // Castform
421, // Cherrim
555, // Darmanitan
648, // Meloetta
681, // Aegislash
716, // Xerneas
746, // Wishiwashi
778, // Mimikyu
};
public static readonly HashSet<int> BattleMegas = new HashSet<int>
{
// XY
3,6,9,65,80,
115,127,130,142,150,181,
212,214,229,248,282,
303,306,308,310,354,359,380,381,
445,448,460,
// AO
15,18,94,
208,254,257,260,
302,319,323,334,362,373,376,384,
428,475,
531,
2017-11-09 04:23:06 +00:00
719,
// USUM
800, // Ultra Necrozma
};
public static readonly HashSet<int> BattlePrimals = new HashSet<int> { 382, 383 };
public static readonly HashSet<int> Z_Moves = new HashSet<int>
{
622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658,
695, 696, 697, 698, 699, 700, 701, 702, 703,
719,
2017-11-09 04:23:06 +00:00
723, 724, 725, 726, 727, 728
};
internal static readonly int[] UnreleasedMoves = {617, 721}; // Light of Ruin & Plasma Fists
internal static readonly HashSet<int> InvalidSketch = new HashSet<int>(new[] { 165, 448 }.Concat(Z_Moves).Concat(UnreleasedMoves)); // Struggle & Chatter
public static readonly HashSet<int> Legends = new HashSet<int>
{
150, 151, 249, 250, 251, 382, 383, 384, 385, 386, 483,
484, 487, 489, 490, 491, 492, 493, 494, 643, 644, 646,
647, 648, 649, 716, 717, 718, 719, 720, 721, 789, 790,
2017-11-09 04:23:06 +00:00
791, 792, 800, 801, 802, 807
};
public static readonly HashSet<int> SubLegends = new HashSet<int>
{
144, 145, 146, 243, 244, 245, 377, 378, 379, 380, 381,
480, 481, 482, 485, 486, 488, 638, 639, 640, 641, 642,
645, 772, 773, 787, 788, 785, 786, 793, 794, 795, 796,
2017-11-09 04:23:06 +00:00
797, 798, 799, 803, 804, 805, 806,
};
public static readonly int[] Arceus_Plate = {303, 306, 304, 305, 309, 308, 310, 313, 298, 299, 301, 300, 307, 302, 311, 312, 644};
public static readonly int[] Arceus_ZCrystal = {782, 785, 783, 784, 788, 787, 789, 792, 777, 778, 780, 779, 786, 781, 790, 791, 793};
2017-05-12 16:33:12 +00:00
internal static readonly int[] BabyEvolutionWithMove =
{
122, // Mr. Mime (Mime Jr with Mimic)
185, // Sudowoodo (Bonsly with Mimic)
};
2018-05-12 15:13:39 +00:00
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// List of species that evolve from a previous species having a move while leveling up
internal static readonly int[] SpeciesEvolutionWithMove =
{
122, // Mr. Mime (Mime Jr with Mimic)
185, // Sudowoodo (Bonsly with Mimic)
424, // Ambipom (Aipom with Double Hit)
463, // Lickilicky (Lickitung with Rollout)
465, // Tangrowth (Tangela with Ancient Power)
469, // Yanmega (Yamma with Ancient Power)
473, // Mamoswine (Piloswine with Ancient Power)
700, // Sylveon (Eevee with Fairy Move)
763, // Tsareena (Steenee with Stomp)
};
internal static readonly int[] FairyMoves =
{
186, //Sweet Kiss
204, //Charm
236, //Moonlight
574, //Disarming Voice
577, //Draining Kiss
578, //Crafty Shield
579, //Flower Shield
581, //Misty Terrain
583, //Play Rough
584, //Fairy Wind
585, //Moonblast
587, //Fairy Lock
597, //Aromatic Mist
601, //Geomancy
605, //Dazzling Gleam
608, //Baby-Doll Eyes
617, //Light of Ruin
656, //Twinkle Tackle
657, //Twinkle Tackle
666, //Floral Healing
698, //Guardian of Alola
705, //Fleur Cannon
717, //Nature's Madness
};
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Moves that trigger the evolution by move
internal static readonly int[][] MoveEvolutionWithMove =
{
new [] { 102 }, // Mr. Mime (Mime Jr with Mimic)
new [] { 102 }, // Sudowoodo (Bonsly with Mimic)
new [] { 458 }, // Ambipom (Aipom with Double Hit)
new [] { 205 }, // Lickilicky (Lickitung with Rollout)
new [] { 246 }, // Tangrowth (Tangela with Ancient Power)
new [] { 246 }, // Yanmega (Yamma with Ancient Power)
new [] { 246 }, // Mamoswine (Piloswine with Ancient Power)
FairyMoves, // Sylveon (Eevee with Fairy Move)
new [] { 023 }, // Tsareena (Steenee with Stomp)
};
// Min level for any species for every generation to learn the move for evolution by move
// 0 means it cant be learned in that generation
internal static readonly int[][] MinLevelEvolutionWithMove =
{
// Mr. Mime (Mime Jr with Mimic)
new [] { 0, 0, 0, 0, 18, 15, 15, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Sudowoodo (Bonsly with Mimic)
new [] { 0, 0, 0, 0, 17, 17, 15, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Ambipom (Aipom with Double Hit)
new [] { 0, 0, 0, 0, 32, 32, 32, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Lickilicky (Lickitung with Rollout)
new [] { 0, 0, 2, 0, 2, 33, 33, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Tangrowth (Tangela with Ancient Power)
new [] { 0, 0, 0, 0, 2, 36, 38, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Yanmega (Yanma with Ancient Power)
new [] { 0, 0, 0, 0, 2, 33, 33, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Mamoswine (Piloswine with Ancient Power)
new [] { 0, 0, 0, 0, 2, 2, 2, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Sylveon (Eevee with Fairy Move)
new [] { 0, 0, 0, 0, 0, 29, 9, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
// Tsareena (Steenee with Stomp)
new [] { 0, 0, 0, 0, 0, 0, 0, 2 },
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
};
// True -> the pokemon could hatch from an egg with the move for evolution as an egg move
internal static readonly bool[][] EggMoveEvolutionWithMove =
{
// Mr. Mime (Mime Jr with Mimic)
new [] { false, false, false, false, true, true, true, true },
// Sudowoodo (Bonsly with Mimic)
new [] { false, false, false, false, true, true, true, true },
// Ambipom (Aipom with Double Hit)
new [] { false, false, false, false, true, true, true, true },
// Lickilicky (Lickitung with Rollout)
new [] { false, false, true, false, true, true, true, true },
// Tangrowth (Tangela with Ancient Power)
new [] { false, false, false, false, true, true, true, true },
// Yanmega (Yanma with Ancient Power)
new [] { false, false, false, false, true, true, true, true },
// Mamoswine (Piloswine with Ancient Power)
new [] { false, false, true, true, true, true, true, true },
// Sylveon (Eevee with Fairy Move)
new [] { false, false, true, true, true, true, true, true },
// Tsareena (Steenee with Stomp)
new [] { false, false, false, false, false, false, false, false },
};
internal static readonly HashSet<int> MixedGenderBreeding = new HashSet<int>
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
{
29, // Nidoran♀
32, // Nidoran♂
313, // Volbeat
New legallity checks (#1196) * Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten * Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve * Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue If pokemon have data exclusive from one version but is in another version that means it should be evolved * Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games * Legallity strings for non tradeback checks * https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime * Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie * Fix female only species * Stomp is not a possible egg moves of Stanee * Fix Steenee evolution move, it cant be inherited as an egg
2017-06-07 03:10:05 +00:00
314, // Illumise
};
internal static readonly HashSet<int> FixedGenderFromBiGender = new HashSet<int>
{
290, // Nincada
292, // Shedinja (G)
412, // Burmy
413, // Wormadam (F)
414, // Mothim (M)
280, // Ralts
475, // Gallade (M)
361, // Snorunt
478, // Froslass (F)
677, // Espurr
678, // Meowstic (M/F) forme specific
};
#region Games
public static readonly int[] Games_7vc2 = { 39, 40, 41 }; // Gold, Silver, Crystal
public static readonly int[] Games_7vc1 = { 35, 36, 37, 38 }; // Red, Green, Blue, Yellow
public static readonly int[] Games_7go = { 34 };
public static readonly int[] Games_7usum = { 32, 33 };
public static readonly int[] Games_7sm = { 30, 31 };
public static readonly int[] Games_6xy = { 24, 25 };
public static readonly int[] Games_6oras = { 26, 27 };
public static readonly int[] Games_5 = { 20, 21, 22, 23 };
public static readonly int[] Games_4 = { 10, 11, };
public static readonly int[] Games_4e = { 12 };
public static readonly int[] Games_4r = { 7, 8 };
public static readonly int[] Games_3 = { 1, 2 };
public static readonly int[] Games_3e = { 3 };
public static readonly int[] Games_3r = { 4, 5 };
public static readonly int[] Games_3s = { 15 };
2018-05-12 15:13:39 +00:00
public static readonly int[] Languages_GB =
{
(int) LanguageID.Japanese, (int) LanguageID.English, (int) LanguageID.French, (int) LanguageID.German, (int) LanguageID.Spanish,
(int) LanguageID.Italian,
(int) LanguageID.Korean // check Korean for the VC case, never possible to match string outside of this case
};
2018-05-12 15:13:39 +00:00
public static readonly int[] Languages_3 =
{
(int) LanguageID.Japanese, (int) LanguageID.English, (int) LanguageID.French, (int) LanguageID.German, (int) LanguageID.Spanish, (int) LanguageID.Italian,
};
public static readonly int[] Languages_46 = Languages_GB;
public static readonly int[] Languages_7 = Languages_46.Concat(new[] { (int)LanguageID.ChineseS, (int)LanguageID.ChineseT }).ToArray();
#endregion
}
}