diff --git a/PKHeX.Core/Game/GameUtil.cs b/PKHeX.Core/Game/GameUtil.cs
index b40ca717f..2d4f2f5c3 100644
--- a/PKHeX.Core/Game/GameUtil.cs
+++ b/PKHeX.Core/Game/GameUtil.cs
@@ -13,6 +13,7 @@ public static class GameUtil
///
/// List of possible values a can have.
///
+ /// Ordered roughly by most recent games first.
public static readonly GameVersion[] GameVersions = ((GameVersion[])Enum.GetValues(typeof(GameVersion))).Where(z => z < RB && z > 0).Reverse().ToArray();
///
@@ -211,8 +212,10 @@ public static bool Contains(this GameVersion g1, GameVersion g2)
return g2 == SN || g2 == MN;
case USUM:
return g2 == US || g2 == UM;
+ case GG:
+ return g2 == GP || g2 == GE;
case Gen7:
- return SM.Contains(g2) || USUM.Contains(g2);
+ return SM.Contains(g2) || USUM.Contains(g2) || GG.Contains(g2);
default: return false;
}
diff --git a/PKHeX.Core/Game/GameVersion.cs b/PKHeX.Core/Game/GameVersion.cs
index fab7b8ddd..d2a21bf19 100644
--- a/PKHeX.Core/Game/GameVersion.cs
+++ b/PKHeX.Core/Game/GameVersion.cs
@@ -5,20 +5,192 @@
///
public enum GameVersion
{
- // Indicators
+ #region Indicators
Invalid = -2,
Any = -1,
Unknown = 0,
+ #endregion
- // Version IDs, also stored in PKM structure
- /*Gen3*/ S = 1, R = 2, E = 3, FR = 4, LG = 5, CXD = 15,
- /*Gen4*/ D = 10, P = 11, Pt = 12, HG = 7, SS = 8,
- /*Gen5*/ W = 20, B = 21, W2 = 22, B2 = 23,
- /*Gen6*/ X = 24, Y = 25, AS = 26, OR = 27,
- /*Gen7*/ SN = 30, MN = 31, US = 32, UM = 33,
- /* GO */ GO = 34,
- /* VC1*/ RD = 35, GN = 36, BU = 37, YW = 38, // GN = Blue for international release
- /* VC2*/ GD = 39, SV = 40, C = 41, // Crystal is unused
+ #region Gen3
+ ///
+ /// Sapphire (GBA)
+ ///
+ S = 1,
+
+ ///
+ /// Ruby (GBA)
+ ///
+ R = 2,
+
+ ///
+ /// Emerald (GBA)
+ ///
+ E = 3,
+
+ ///
+ /// FireRed (GBA)
+ ///
+ FR = 4,
+
+ ///
+ /// LeafGreen (GBA)
+ ///
+ LG = 5,
+
+ ///
+ /// Colosseum/XD (GameCube)
+ ///
+ CXD = 15,
+ #endregion
+
+ #region Gen4
+ ///
+ /// Diamond (NDS)
+ ///
+ D = 10,
+
+ ///
+ /// Pearl (NDS)
+ ///
+ P = 11,
+
+ ///
+ /// Platinum (NDS)
+ ///
+ Pt = 12,
+
+ ///
+ /// Heart Gold (NDS)
+ ///
+ HG = 7,
+
+ ///
+ /// Soul Silver (NDS)
+ ///
+ SS = 8,
+ #endregion
+
+ #region Gen5
+ ///
+ /// White (NDS)
+ ///
+ W = 20,
+
+ ///
+ /// Black (NDS)
+ ///
+ B = 21,
+
+ ///
+ /// White 2 (NDS)
+ ///
+ W2 = 22,
+
+ ///
+ /// Black 2 (NDS)
+ ///
+ B2 = 23,
+ #endregion
+
+ #region Gen6
+ ///
+ /// X (3DS)
+ ///
+ X = 24,
+
+ ///
+ /// Y (3DS)
+ ///
+ Y = 25,
+
+ ///
+ /// Alpha Sapphire (3DS)
+ ///
+ AS = 26,
+
+ ///
+ /// Omega Ruby (3DS)
+ ///
+ OR = 27,
+ #endregion
+
+ #region Gen7
+ ///
+ /// Sun (3DS)
+ ///
+ SN = 30,
+
+ ///
+ /// Moon (3DS)
+ ///
+ MN = 31,
+
+ ///
+ /// Ultra Sun (3DS)
+ ///
+ US = 32,
+
+ ///
+ /// Ultra Moon (3DS)
+ ///
+ UM = 33,
+ #endregion
+
+ ///
+ /// Pokémon GO (Unused)
+ ///
+ GO = 34,
+
+ #region Virtual Console (3DS) Gen1
+ ///
+ /// Red (3DS Virtual Console)
+ ///
+ RD = 35,
+
+ ///
+ /// Green[JP]/Blue[INT] (3DS Virtual Console)
+ ///
+ GN = 36,
+
+ ///
+ /// Blue[JP] (3DS Virtual Console)
+ ///
+ BU = 37,
+
+ ///
+ /// Yellow [JP] (3DS Virtual Console)
+ ///
+ YW = 38,
+ #endregion
+
+ #region Virtual Console (3DS) Gen2
+ ///
+ /// Gold (3DS Virtual Console)
+ ///
+ GD = 39,
+
+ ///
+ /// Silver (3DS Virtual Console)
+ ///
+ SV = 40,
+
+ ///
+ /// Crystal (3DS Virtual Console)
+ ///
+ C = 41,
+ #endregion
+
+ #region Nintendo Switch
+ ///
+ /// Let's Go Pikachu (NX)
+ ///
+ GP = 42,
+
+ ///
+ /// Lets Go Eevee (NX)
+ ///
+ GE = 43,
+ #endregion
// Not actually stored values, but assigned as properties.
@@ -29,7 +201,7 @@ public enum GameVersion
/*SAV4*/ DP, DPPt, HGSS, BATREV,
/*SAV5*/ BW, B2W2,
/*SAV6*/ XY, ORASDEMO, ORAS,
- /*SAV7*/ SM, USUM,
+ /*SAV7*/ SM, USUM, GG,
// Extra Game Groupings (Generation)
Gen1, Gen2, Gen3, Gen4, Gen5, Gen6, Gen7,
diff --git a/PKHeX.Core/PKM/Util/PKX.cs b/PKHeX.Core/PKM/Util/PKX.cs
index 8cc16a14f..694e85e47 100644
--- a/PKHeX.Core/PKM/Util/PKX.cs
+++ b/PKHeX.Core/PKM/Util/PKX.cs
@@ -537,7 +537,7 @@ public static uint GetWurmpleEvoVal(uint EC)
///
/// Wurmple Evolution Value
/// 0 = Silcoon, 1 = Cascoon
- /// Encryption Constan
+ /// Encryption Constant
public static uint GetWurmpleEC(int evoVal)
{
uint EC;