2017-06-21 04:57:00 +00:00
using System.Collections.Generic ;
2021-01-01 23:01:22 +00:00
using static PKHeX . Core . Species ;
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>
2021-01-01 23:01:22 +00:00
public static readonly HashSet < int > LightBall = new ( ) { ( int ) Pikachu , ( int ) Raichu , ( int ) Pichu } ;
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>
2020-12-22 01:17:56 +00:00
public static readonly HashSet < int > FormChangeMoves = new ( )
2016-11-09 05:43:22 +00:00
{
2021-01-01 23:01:22 +00:00
( int ) Deoxys ,
( int ) Giratina ,
( int ) Shaymin ,
( int ) Hoopa ,
2016-11-09 05:43:22 +00:00
} ;
2020-09-18 23:23:17 +00:00
/// <summary>
2021-01-01 23:01:22 +00:00
/// Generation 3 & 4 Battle Frontier Species banlist. When referencing this in context to generation 4, be sure to disallow <see cref="Pichu"/> with Form 1 (Spiky).
2020-09-18 23:23:17 +00:00
/// </summary>
2020-12-22 01:17:56 +00:00
public static readonly HashSet < int > BattleFrontierBanlist = new ( )
2017-06-21 04:57:00 +00:00
{
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
2020-12-22 01:17:56 +00:00
public static readonly HashSet < int > Z_Moves = new ( )
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>
2020-12-22 01:17:56 +00:00
internal static readonly HashSet < int > InvalidSketch = new ( Z_Moves )
2020-10-24 18:11:05 +00:00
{
// 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>
2020-12-22 01:17:56 +00:00
public static readonly HashSet < int > Legends = new ( )
2016-11-27 17:26:58 +00:00
{
2021-01-01 23:01:22 +00:00
( int ) Mewtwo , ( int ) Mew ,
( int ) Lugia , ( int ) HoOh , ( int ) Celebi ,
( int ) Kyogre , ( int ) Groudon , ( int ) Rayquaza , ( int ) Jirachi , ( int ) Deoxys ,
( int ) Dialga , ( int ) Palkia , ( int ) Giratina , ( int ) Phione , ( int ) Manaphy , ( int ) Darkrai , ( int ) Shaymin , ( int ) Arceus ,
( int ) Victini , ( int ) Reshiram , ( int ) Zekrom , ( int ) Kyurem , ( int ) Keldeo , ( int ) Meloetta , ( int ) Genesect ,
( int ) Xerneas , ( int ) Yveltal , ( int ) Zygarde , ( int ) Diancie , ( int ) Hoopa , ( int ) Volcanion ,
( int ) Cosmog , ( int ) Cosmoem , ( int ) Solgaleo , ( int ) Lunala , ( int ) Necrozma , ( int ) Magearna , ( int ) Marshadow , ( int ) Zeraora ,
( int ) Meltan , ( int ) Melmetal ,
( int ) Zacian , ( int ) Zamazenta , ( int ) Eternatus , ( int ) Zarude , ( int ) 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>
2020-12-22 01:17:56 +00:00
public static readonly HashSet < int > SubLegends = new ( )
2016-11-27 17:26:58 +00:00
{
2021-01-01 23:01:22 +00:00
( int ) Articuno , ( int ) Zapdos , ( int ) Moltres ,
( int ) Raikou , ( int ) Entei , ( int ) Suicune ,
( int ) Regirock , ( int ) Regice , ( int ) Registeel , ( int ) Latias , ( int ) Latios ,
( int ) Uxie , ( int ) Mesprit , ( int ) Azelf , ( int ) Heatran , ( int ) Regigigas , ( int ) Cresselia ,
( int ) Cobalion , ( int ) Terrakion , ( int ) Virizion , ( int ) Tornadus , ( int ) Thundurus , ( int ) Landorus ,
( int ) TypeNull , ( int ) Silvally , ( int ) TapuKoko , ( int ) TapuLele , ( int ) TapuBulu , ( int ) TapuFini ,
( int ) Nihilego , ( int ) Buzzwole , ( int ) Pheromosa , ( int ) Xurkitree , ( int ) Celesteela , ( int ) Kartana , ( int ) Guzzlord ,
( int ) Poipole , ( int ) Naganadel , ( int ) Stakataka , ( int ) Blacephalon ,
( int ) Kubfu , ( int ) Urshifu , ( int ) Regieleki , ( int ) Regidrago , ( int ) Glastrier , ( int ) Spectrier ,
2016-11-27 17:26:58 +00:00
} ;
2020-11-02 21:11:51 +00:00
/// <summary>
/// Species that evolve from a Bi-Gendered species into a Single-Gender.
/// </summary>
2020-12-22 01:17:56 +00:00
public static readonly HashSet < int > FixedGenderFromBiGender = new ( )
2017-08-12 21:11:30 +00:00
{
2021-01-01 23:01:22 +00:00
( int ) Nincada ,
( int ) Shedinja , // (G)
2017-09-15 01:52:31 +00:00
2021-01-01 23:01:22 +00:00
( int ) Burmy ,
( int ) Wormadam , //(F)
( int ) Mothim , // (M)
2017-09-15 01:52:31 +00:00
2021-01-01 23:01:22 +00:00
( int ) Ralts ,
( int ) Gallade , // (M)
2017-09-15 01:52:31 +00:00
2021-01-01 23:01:22 +00:00
( int ) Snorunt ,
( int ) Froslass , // (F)
2017-10-20 03:56:59 +00:00
2021-01-01 23:01:22 +00:00
( int ) Espurr ,
( int ) Meowstic , // (M/F) form specific
2017-08-12 21:11:30 +00:00
} ;
2016-10-25 03:04:47 +00:00
}
}