2017-06-21 04:57:00 +00:00
using System.Collections.Generic ;
2017-02-13 07:08:39 +00:00
namespace PKHeX.Core
2016-10-25 03:04:47 +00:00
{
public static partial class Legal
{
2020-11-02 21:11:51 +00:00
/// <summary>
/// Species that trigger Light Ball yielding Volt Tackle
/// </summary>
2017-09-30 21:08:35 +00:00
public static readonly HashSet < int > LightBall = new HashSet < int > { 25 , 26 , 172 } ;
2018-09-15 05:37:47 +00:00
2020-10-24 18:11:05 +00:00
/// <summary>
/// Species that can yield a different baby species when bred.
/// </summary>
2017-09-30 21:08:35 +00:00
public static readonly HashSet < int > SplitBreed = new HashSet < int >
2016-11-09 05:43:22 +00:00
{
// Incense
113 , 242 , // Chansey
2019-12-07 08:04:46 +00:00
122 , 866 , // Mr. Mime
2016-11-09 05:43:22 +00:00
143 , // Snorlax
183 , 184 , // Marill
185 , // Sudowoodo
202 , // Wobbuffet
226 , // Mantine
315 , 407 , // Roselia
358 , // Chimecho
} ;
2018-09-15 05:37:47 +00:00
2020-10-24 18:11:05 +00:00
/// <summary>
/// Species that can change between their forms and get access to form-specific moves.
/// </summary>
2017-09-30 21:08:35 +00:00
public static readonly HashSet < int > FormChangeMoves = new HashSet < int >
2016-11-09 05:43:22 +00:00
{
386 , // Deoxys
487 , // Giratina
492 , // Shaymin
720 , // Hoopa
} ;
2018-09-15 05:37:47 +00:00
2020-10-24 18:11:05 +00:00
/// <summary>
/// Species that cannot hatch from an egg.
/// </summary>
2017-09-30 21:08:35 +00:00
public static readonly HashSet < int > NoHatchFromEgg = new HashSet < int >
2016-11-09 05:43:22 +00:00
{
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
2018-10-27 16:08:39 +00:00
808 , // Meltan
809 , // Melmetal
2019-11-19 06:48:03 +00:00
2019-11-19 03:26:01 +00:00
( int ) Species . Dracozolt ,
( int ) Species . Arctozolt ,
( int ) Species . Dracovish ,
( int ) Species . Arctovish ,
2019-11-16 01:34:18 +00:00
( int ) Species . Zacian ,
( int ) Species . Zamazenta ,
( int ) Species . Eternatus ,
2020-08-21 23:35:49 +00:00
2020-06-19 23:51:15 +00:00
( int ) Species . Kubfu ,
( int ) Species . Urshifu ,
( int ) Species . Zarude ,
2020-10-24 18:11:05 +00:00
( int ) Species . Regieleki ,
( int ) Species . Regidrago ,
( int ) Species . Glastrier ,
( int ) Species . Spectrier ,
( int ) Species . Calyrex ,
2016-11-09 05:43:22 +00:00
} ;
2020-09-18 23:23:17 +00:00
/// <summary>
/// Generation 3 & 4 Battle Frontier Species banlist. When referencing this in context to generation 4, be sure to disallow <see cref="Species.Pichu"/> with Form 1 (Spiky).
/// </summary>
2017-06-21 04:57:00 +00:00
public static readonly HashSet < int > BattleFrontierBanlist = new HashSet < int >
{
150 , // Mewtwo
151 , // Mew
2018-10-27 16:08:39 +00:00
2017-06-21 04:57:00 +00:00
249 , // Lugia
250 , // Ho-Oh
251 , // Celebi
2018-10-27 16:08:39 +00:00
2017-06-21 04:57:00 +00:00
382 , // Kyogre
383 , // Groudon
384 , // Rayquaza
385 , // Jirachi
386 , // Deoxys
2018-10-27 16:08:39 +00:00
2017-06-21 04:57:00 +00:00
483 , // Dialga
484 , // Palkia
487 , // Giratina
489 , // Phione
490 , // Manaphy
491 , // Darkrai
492 , // Shaymin
493 , // Arceus
2018-10-27 16:08:39 +00:00
2017-06-21 04:57:00 +00:00
494 , // Victini
643 , // Reshiram
644 , // Zekrom
646 , // Kyurem
647 , // Keldeo
648 , // Meloetta
649 , // Genesect
2018-10-27 16:08:39 +00:00
2017-06-21 04:57:00 +00:00
716 , // Xerneas
717 , // Yveltal
718 , // Zygarde
719 , // Diancie
720 , // Hoopa
721 , // Volcanion
2018-10-27 16:08:39 +00:00
2017-06-21 04:57:00 +00:00
789 , // Cosmog
790 , // Cosmoem
791 , // Solgaleo
792 , // Lunala
800 , // Necrozma
801 , // Magearna
802 , // Marshadow
2017-11-09 04:23:06 +00:00
807 , // Zeraora
2018-10-27 16:08:39 +00:00
808 , // Meltan
809 , // Melmetal
2017-06-21 04:57:00 +00:00
} ;
2016-11-09 05:43:22 +00:00
2017-09-30 21:08:35 +00:00
public static readonly HashSet < int > Z_Moves = new HashSet < int >
2016-11-11 05:49:08 +00:00
{
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
2016-11-11 05:49:08 +00:00
} ;
2017-12-29 20:00:06 +00:00
2020-10-24 18:11:05 +00:00
/// <summary>
/// Moves that can not be obtained by using Sketch with Smeargle.
/// </summary>
internal static readonly HashSet < int > InvalidSketch = new HashSet < int > ( Z_Moves )
{
// Can't Sketch
165 , // Struggle
448 , // Chatter
2016-11-11 05:49:08 +00:00
2020-10-24 18:11:05 +00:00
// Unreleased
617 , // Light of Ruin
} ;
/// <summary>
/// Species classified as "Legend" by the game code.
/// </summary>
2017-09-30 21:08:35 +00:00
public static readonly HashSet < int > Legends = new HashSet < int >
2016-11-27 17:26:58 +00:00
{
2020-10-24 18:11:05 +00:00
( int ) Species . Mewtwo , ( int ) Species . Mew ,
2020-06-25 20:11:30 +00:00
( int ) Species . Lugia , ( int ) Species . HoOh , ( int ) Species . Celebi ,
2020-10-24 18:11:05 +00:00
( int ) Species . Kyogre , ( int ) Species . Groudon , ( int ) Species . Rayquaza , ( int ) Species . Jirachi , ( int ) Species . Deoxys ,
( int ) Species . Dialga , ( int ) Species . Palkia , ( int ) Species . Giratina , ( int ) Species . Phione , ( int ) Species . Manaphy , ( int ) Species . Darkrai , ( int ) Species . Shaymin , ( int ) Species . Arceus ,
( int ) Species . Victini , ( int ) Species . Reshiram , ( int ) Species . Zekrom , ( int ) Species . Kyurem , ( int ) Species . Keldeo , ( int ) Species . Meloetta , ( int ) Species . Genesect ,
( int ) Species . Xerneas , ( int ) Species . Yveltal , ( int ) Species . Zygarde , ( int ) Species . Diancie , ( int ) Species . Hoopa , ( int ) Species . Volcanion ,
( int ) Species . Cosmog , ( int ) Species . Cosmoem , ( int ) Species . Solgaleo , ( int ) Species . Lunala , ( int ) Species . Necrozma , ( int ) Species . Magearna , ( int ) Species . Marshadow , ( int ) Species . Zeraora ,
( int ) Species . Meltan , ( int ) Species . Melmetal ,
( int ) Species . Zacian , ( int ) Species . Zamazenta , ( int ) Species . Eternatus , ( int ) Species . Zarude , ( int ) Species . Calyrex ,
2016-11-27 17:26:58 +00:00
} ;
2018-09-15 05:37:47 +00:00
2020-10-24 18:11:05 +00:00
/// <summary>
/// Species classified as "SubLegend" by the game code.
/// </summary>
2017-09-30 21:08:35 +00:00
public static readonly HashSet < int > SubLegends = new HashSet < int >
2016-11-27 17:26:58 +00:00
{
2020-06-25 20:11:30 +00:00
( int ) Species . Articuno , ( int ) Species . Zapdos , ( int ) Species . Moltres ,
( int ) Species . Raikou , ( int ) Species . Entei , ( int ) Species . Suicune ,
( int ) Species . Regirock , ( int ) Species . Regice , ( int ) Species . Registeel , ( int ) Species . Latias , ( int ) Species . Latios ,
( int ) Species . Uxie , ( int ) Species . Mesprit , ( int ) Species . Azelf , ( int ) Species . Heatran , ( int ) Species . Regigigas , ( int ) Species . Cresselia ,
( int ) Species . Cobalion , ( int ) Species . Terrakion , ( int ) Species . Virizion , ( int ) Species . Tornadus , ( int ) Species . Thundurus , ( int ) Species . Landorus ,
2020-10-24 18:11:05 +00:00
( int ) Species . TypeNull , ( int ) Species . Silvally , ( int ) Species . TapuKoko , ( int ) Species . TapuLele , ( int ) Species . TapuBulu , ( int ) Species . TapuFini ,
( int ) Species . Nihilego , ( int ) Species . Buzzwole , ( int ) Species . Pheromosa , ( int ) Species . Xurkitree , ( int ) Species . Celesteela , ( int ) Species . Kartana , ( int ) Species . Guzzlord ,
( int ) Species . Poipole , ( int ) Species . Naganadel , ( int ) Species . Stakataka , ( int ) Species . Blacephalon ,
( int ) Species . Kubfu , ( int ) Species . Urshifu , ( int ) Species . Regieleki , ( int ) Species . Regidrago , ( int ) Species . Glastrier , ( int ) Species . Spectrier ,
2016-11-27 17:26:58 +00:00
} ;
2017-08-12 21:11:30 +00:00
internal static readonly HashSet < int > MixedGenderBreeding = new HashSet < int >
2017-06-07 03:10:05 +00:00
{
29 , // Nidoran♀
32 , // Nidoran♂
2017-09-23 14:58:55 +00:00
313 , // Volbeat
2017-06-07 03:10:05 +00:00
314 , // Illumise
2019-12-21 21:37:20 +00:00
( int ) Species . Indeedee , // male/female
2017-06-07 03:10:05 +00:00
} ;
2018-09-15 05:37:47 +00:00
2020-11-02 21:11:51 +00:00
/// <summary>
/// Species that evolve from a Bi-Gendered species into a Single-Gender.
/// </summary>
2019-01-26 22:48:32 +00:00
public static readonly HashSet < int > FixedGenderFromBiGender = new HashSet < int >
2017-08-12 21:11:30 +00:00
{
290 , // Nincada
2017-09-15 01:52:31 +00:00
292 , // Shedinja (G)
412 , // Burmy
413 , // Wormadam (F)
414 , // Mothim (M)
280 , // Ralts
475 , // Gallade (M)
2017-10-20 03:56:59 +00:00
361 , // Snorunt
478 , // Froslass (F)
2017-09-15 01:52:31 +00:00
677 , // Espurr
678 , // Meowstic (M/F) forme specific
2017-08-12 21:11:30 +00:00
} ;
2016-10-25 03:04:47 +00:00
}
}