mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-14 16:27:21 +00:00
88830e0d00
Updates from net46->net7, dropping support for mono in favor of using the latest runtime (along with the performance/API improvements). Releases will be posted as 64bit only for now. Refactors a good amount of internal API methods to be more performant and more customizable for future updates & fixes. Adds functionality for Batch Editor commands to `>`, `<` and <=/>= TID/SID properties renamed to TID16/SID16 for clarity; other properties exposed for Gen7 / display variants. Main window has a new layout to account for DPI scaling (8 point grid) Fixed: Tatsugiri and Paldean Tauros now output Showdown form names as Showdown expects Changed: Gen9 species now interact based on the confirmed National Dex IDs (closes #3724) Fixed: Pokedex set all no longer clears species with unavailable non-base forms (closes #3720) Changed: Hyper Training suggestions now apply for level 50 in SV. (closes #3714) Fixed: B2/W2 hatched egg met locations exclusive to specific versions are now explicitly checked (closes #3691) Added: Properties for ribbon/mark count (closes #3659) Fixed: Traded SV eggs are now checked correctly (closes #3692)
508 lines
11 KiB
C#
508 lines
11 KiB
C#
namespace PKHeX.Core;
|
|
|
|
/// <summary>
|
|
/// Game Version ID enum shared between actual Version IDs and lumped version groupings.
|
|
/// </summary>
|
|
public enum GameVersion : byte
|
|
{
|
|
#region Indicators for method empty arguments & result indication. Not stored values.
|
|
Any = 0,
|
|
Unknown = byte.MaxValue - 1,
|
|
Invalid = byte.MaxValue,
|
|
#endregion
|
|
|
|
// The following values are IDs stored within PKM data, and can also identify individual games.
|
|
|
|
#region Gen3
|
|
/// <summary>
|
|
/// Pokémon Sapphire (GBA)
|
|
/// </summary>
|
|
S = 1,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ruby (GBA)
|
|
/// </summary>
|
|
R = 2,
|
|
|
|
/// <summary>
|
|
/// Pokémon Emerald (GBA)
|
|
/// </summary>
|
|
E = 3,
|
|
|
|
/// <summary>
|
|
/// Pokémon FireRed (GBA)
|
|
/// </summary>
|
|
FR = 4,
|
|
|
|
/// <summary>
|
|
/// Pokémon LeafGreen (GBA)
|
|
/// </summary>
|
|
LG = 5,
|
|
|
|
/// <summary>
|
|
/// Pokémon Colosseum & Pokémon XD (GameCube)
|
|
/// </summary>
|
|
CXD = 15,
|
|
#endregion
|
|
|
|
#region Gen4
|
|
/// <summary>
|
|
/// Pokémon Diamond (NDS)
|
|
/// </summary>
|
|
D = 10,
|
|
|
|
/// <summary>
|
|
/// Pokémon Pearl (NDS)
|
|
/// </summary>
|
|
P = 11,
|
|
|
|
/// <summary>
|
|
/// Pokémon Platinum (NDS)
|
|
/// </summary>
|
|
Pt = 12,
|
|
|
|
/// <summary>
|
|
/// Pokémon HeartGold (NDS)
|
|
/// </summary>
|
|
HG = 7,
|
|
|
|
/// <summary>
|
|
/// Pokémon SoulSilver (NDS)
|
|
/// </summary>
|
|
SS = 8,
|
|
#endregion
|
|
|
|
#region Gen5
|
|
/// <summary>
|
|
/// Pokémon White (NDS)
|
|
/// </summary>
|
|
W = 20,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black (NDS)
|
|
/// </summary>
|
|
B = 21,
|
|
|
|
/// <summary>
|
|
/// Pokémon White 2 (NDS)
|
|
/// </summary>
|
|
W2 = 22,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black 2 (NDS)
|
|
/// </summary>
|
|
B2 = 23,
|
|
#endregion
|
|
|
|
#region Gen6
|
|
/// <summary>
|
|
/// Pokémon X (3DS)
|
|
/// </summary>
|
|
X = 24,
|
|
|
|
/// <summary>
|
|
/// Pokémon Y (3DS)
|
|
/// </summary>
|
|
Y = 25,
|
|
|
|
/// <summary>
|
|
/// Pokémon Alpha Sapphire (3DS)
|
|
/// </summary>
|
|
AS = 26,
|
|
|
|
/// <summary>
|
|
/// Pokémon Omega Ruby (3DS)
|
|
/// </summary>
|
|
OR = 27,
|
|
#endregion
|
|
|
|
#region Gen7
|
|
/// <summary>
|
|
/// Pokémon Sun (3DS)
|
|
/// </summary>
|
|
SN = 30,
|
|
|
|
/// <summary>
|
|
/// Pokémon Moon (3DS)
|
|
/// </summary>
|
|
MN = 31,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ultra Sun (3DS)
|
|
/// </summary>
|
|
US = 32,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ultra Moon (3DS)
|
|
/// </summary>
|
|
UM = 33,
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Pokémon GO (GO -> Let's Go/HOME transfers)
|
|
/// </summary>
|
|
GO = 34,
|
|
|
|
#region Virtual Console (3DS) Gen1
|
|
/// <summary>
|
|
/// Pokémon Red (3DS Virtual Console)
|
|
/// </summary>
|
|
RD = 35,
|
|
|
|
/// <summary>
|
|
/// Pokémon Green[JP]/Blue[INT] (3DS Virtual Console)
|
|
/// </summary>
|
|
GN = 36,
|
|
|
|
/// <summary>
|
|
/// Pokémon Blue[JP] (3DS Virtual Console)
|
|
/// </summary>
|
|
BU = 37,
|
|
|
|
/// <summary>
|
|
/// Pokémon Yellow (3DS Virtual Console)
|
|
/// </summary>
|
|
YW = 38,
|
|
#endregion
|
|
|
|
#region Virtual Console (3DS) Gen2
|
|
/// <summary>
|
|
/// Pokémon Gold (3DS Virtual Console)
|
|
/// </summary>
|
|
GD = 39,
|
|
|
|
/// <summary>
|
|
/// Pokémon Silver (3DS Virtual Console)
|
|
/// </summary>
|
|
SI = 40,
|
|
|
|
/// <summary>
|
|
/// Pokémon Crystal (3DS Virtual Console)
|
|
/// </summary>
|
|
C = 41,
|
|
#endregion
|
|
|
|
#region Nintendo Switch
|
|
/// <summary>
|
|
/// Pokémon: Let's Go, Pikachu! (NX)
|
|
/// </summary>
|
|
GP = 42,
|
|
|
|
/// <summary>
|
|
/// Pokémon: Let's Go, Eevee! (NX)
|
|
/// </summary>
|
|
GE = 43,
|
|
|
|
/// <summary>
|
|
/// Pokémon Sword (NX)
|
|
/// </summary>
|
|
SW = 44,
|
|
|
|
/// <summary>
|
|
/// Pokémon Shield (NX)
|
|
/// </summary>
|
|
SH = 45,
|
|
|
|
// HOME = 46,
|
|
|
|
/// <summary>
|
|
/// Pokémon Legends: Arceus (NX)
|
|
/// </summary>
|
|
PLA = 47,
|
|
|
|
/// <summary>
|
|
/// Pokémon Brilliant Diamond (NX)
|
|
/// </summary>
|
|
BD = 48,
|
|
|
|
/// <summary>
|
|
/// Pokémon Shining Pearl (NX)
|
|
/// </summary>
|
|
SP = 49,
|
|
|
|
/// <summary>
|
|
/// Pokémon Scarlet (NX)
|
|
/// </summary>
|
|
SL = 50,
|
|
|
|
/// <summary>
|
|
/// Pokémon Violet (NX)
|
|
/// </summary>
|
|
VL = 51,
|
|
#endregion
|
|
|
|
// The following values are not actually stored values in pk data,
|
|
// These values are assigned within PKHeX as properties for various logic branching.
|
|
|
|
#region Game Groupings (SaveFile type, roughly)
|
|
/// <summary>
|
|
/// Pokémon Red & Blue [<see cref="SAV1"/>] identifier.
|
|
/// </summary>
|
|
/// <seealso cref="RD"/>
|
|
/// <seealso cref="GN"/>
|
|
/// <seealso cref="BU"/>
|
|
RB,
|
|
|
|
/// <summary>
|
|
/// Pokémon Red/Blue/Yellow [<see cref="SAV1"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="RD"/>
|
|
/// <see cref="GN"/>
|
|
/// <see cref="BU"/>
|
|
/// <see cref="YW"/>
|
|
RBY,
|
|
|
|
/// <summary>
|
|
/// Pokémon Gold & Silver [<see cref="SAV2"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="GD"/>
|
|
/// <see cref="SI"/>
|
|
GS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Gold/Silver/Crystal [<see cref="SAV2"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="GD"/>
|
|
/// <see cref="SI"/>
|
|
/// <see cref="C"/>
|
|
GSC,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ruby & Sapphire [<see cref="SAV3"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="R"/>
|
|
/// <see cref="S"/>
|
|
RS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ruby/Sapphire/Emerald [<see cref="SAV3"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="R"/>
|
|
/// <see cref="S"/>
|
|
/// <see cref="E"/>
|
|
RSE,
|
|
|
|
/// <summary>
|
|
/// Pokémon FireRed/LeafGreen [<see cref="SAV3"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="FR"/>
|
|
/// <see cref="LG"/>
|
|
FRLG,
|
|
|
|
/// <summary>
|
|
/// Pokémon Box Ruby & Sapphire [<see cref="SAV3RSBox"/>] identifier.
|
|
/// </summary>
|
|
RSBOX,
|
|
|
|
/// <summary>
|
|
/// Pokémon Colosseum [<see cref="SAV3Colosseum"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="CXD"/>
|
|
/// <remarks>Also used to mark Colosseum-only origin data as this game shares a version ID with <see cref="XD"/></remarks>
|
|
COLO,
|
|
|
|
/// <summary>
|
|
/// Pokémon XD [<see cref="SAV3XD"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="CXD"/>
|
|
/// <remarks>Also used to mark XD-only origin data as this game shares a version ID with <see cref="COLO"/></remarks>
|
|
XD,
|
|
|
|
/// <summary>
|
|
/// Pokémon Diamond & Pearl [<see cref="SAV4"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="D"/>
|
|
/// <see cref="P"/>
|
|
DP,
|
|
|
|
/// <summary>
|
|
/// Pokémon Diamond/Pearl/Platinum version group.
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="D"/>
|
|
/// <see cref="P"/>
|
|
/// <see cref="Pt"/>
|
|
DPPt,
|
|
|
|
/// <summary>
|
|
/// Pokémon HeartGold & SoulSilver [<see cref="SAV4"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="HG"/>
|
|
/// <see cref="SS"/>
|
|
HGSS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Battle Revolution [<see cref="SAV4BR"/>] identifier.
|
|
/// </summary>
|
|
BATREV,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black & White version group.
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="B"/>
|
|
/// <see cref="W"/>
|
|
BW,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black 2 & White 2 version group.
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="B2"/>
|
|
/// <see cref="W2"/>
|
|
B2W2,
|
|
|
|
/// <summary>
|
|
/// Pokémon X & Y
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="X"/>
|
|
/// <see cref="Y"/>
|
|
XY,
|
|
|
|
/// <summary>
|
|
/// Pokémon Omega Ruby & Alpha Sapphire Demo [<see cref="SAV6"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="ORAS"/>
|
|
ORASDEMO,
|
|
|
|
/// <summary>
|
|
/// Pokémon Omega Ruby & Alpha Sapphire version group.
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="OR"/>
|
|
/// <see cref="AS"/>
|
|
ORAS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Sun & Moon
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="SN"/>
|
|
/// <see cref="MN"/>
|
|
SM,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ultra Sun & Ultra Moon
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="US"/>
|
|
/// <see cref="UM"/>
|
|
USUM,
|
|
|
|
/// <summary>
|
|
/// Pokémon Let's Go Pikachu & Eevee
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="GP"/>
|
|
/// <see cref="GE"/>
|
|
GG,
|
|
|
|
/// <summary>
|
|
/// Pokémon Sword & Shield
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="SW"/>
|
|
/// <see cref="SH"/>
|
|
SWSH,
|
|
|
|
/// <summary>
|
|
/// Pokémon Brilliant Diamond & Shining Pearl
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="BD"/>
|
|
/// <see cref="SP"/>
|
|
BDSP,
|
|
|
|
/// <summary>
|
|
/// Pokémon Scarlet & Violet
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="SL"/>
|
|
/// <see cref="VL"/>
|
|
SV,
|
|
|
|
/// <summary>
|
|
/// Generation 1 Games
|
|
/// </summary>
|
|
/// <see cref="RBY"/>
|
|
Gen1,
|
|
|
|
/// <summary>
|
|
/// Generation 2 Games
|
|
/// </summary>
|
|
/// <see cref="GSC"/>
|
|
Gen2,
|
|
|
|
/// <summary>
|
|
/// Generation 3 Games
|
|
/// </summary>
|
|
/// <see cref="RSE"/>
|
|
/// <see cref="FRLG"/>
|
|
Gen3,
|
|
|
|
/// <summary>
|
|
/// Generation 4 Games
|
|
/// </summary>
|
|
/// <see cref="DPPt"/>
|
|
/// <see cref="HGSS"/>
|
|
Gen4,
|
|
|
|
/// <summary>
|
|
/// Generation 5 Games
|
|
/// </summary>
|
|
/// <see cref="BW"/>
|
|
/// <see cref="B2W2"/>
|
|
Gen5,
|
|
|
|
/// <summary>
|
|
/// Generation 6 Games
|
|
/// </summary>
|
|
/// <see cref="XY"/>
|
|
/// <see cref="ORAS"/>
|
|
Gen6,
|
|
|
|
/// <summary>
|
|
/// Generation 7 Games on the Nintendo 3DS
|
|
/// </summary>
|
|
/// <see cref="SM"/>
|
|
/// <see cref="USUM"/>
|
|
Gen7,
|
|
|
|
/// <summary>
|
|
/// Generation 7 Games on the Nintendo Switch
|
|
/// </summary>
|
|
/// <see cref="GG"/>
|
|
/// <see cref="GO"/>
|
|
Gen7b,
|
|
|
|
/// <summary>
|
|
/// Generation 8 Games
|
|
/// </summary>
|
|
/// <see cref="SWSH"/>
|
|
/// <see cref="BDSP"/>
|
|
/// <see cref="PLA"/>
|
|
Gen8,
|
|
|
|
/// <summary>
|
|
/// Generation 9 Games
|
|
/// </summary>
|
|
/// <see cref="SV"/>
|
|
Gen9,
|
|
|
|
/// <summary>
|
|
/// Pocket Monsters Stadium data origin identifier
|
|
/// </summary>
|
|
StadiumJ,
|
|
|
|
/// <summary>
|
|
/// Pokémon Stadium data origin identifier
|
|
/// </summary>
|
|
Stadium,
|
|
|
|
/// <summary>
|
|
/// Pokémon Stadium 2 data origin identifier
|
|
/// </summary>
|
|
Stadium2,
|
|
#endregion
|
|
}
|