From 4c1e014a533bdb7fa00e5d7efe1d08daf0222737 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 27 May 2018 14:16:56 -0700 Subject: [PATCH] Fix mgdb viewing cxd gifts Closes #1972 --- .../Legality/Encounters/Data/EncountersWC3.cs | 6 +++--- PKHeX.Core/MysteryGifts/WC3.cs | 18 +++++++++++------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/PKHeX.Core/Legality/Encounters/Data/EncountersWC3.cs b/PKHeX.Core/Legality/Encounters/Data/EncountersWC3.cs index dac0ac3ec..27dfed91c 100644 --- a/PKHeX.Core/Legality/Encounters/Data/EncountersWC3.cs +++ b/PKHeX.Core/Legality/Encounters/Data/EncountersWC3.cs @@ -18,7 +18,7 @@ internal static class EncountersWC3 new WC3 { Species = 025, Level = 10, TID = 31121, OT_Gender = 0, OT_Name = "コロシアム", CardTitle = "Colosseum Pikachu", Method = PIDType.CXD, Shiny = Shiny.Never, Language = (int)LanguageID.Japanese }, new WC3 { Species = 385, Level = 05, TID = 20043, OT_Gender = 0, OT_Name = "WISHMKR", CardTitle = "Wishmaker Jirachi", Method = PIDType.BACD_R, Language = (int)LanguageID.English }, - new WC3 { Species = 251, Level = 10, TID = 31121, OT_Gender = 1, OT_Name = "AGATE", CardTitle = "Agate Celebi", Method = PIDType.CXD, Shiny = Shiny.Never, Language = (int)LanguageID.English, NotDistributed = true }, + new WC3 { Species = 251, Level = 10, TID = 31121, OT_Gender = 1, OT_Name = "AGATE", CardTitle = "Agate Celebi", Method = PIDType.CXD, Shiny = Shiny.Never, Language = (int)LanguageID.English, NotDistributed = true }, new WC3 { Species = 025, Level = 10, TID = 31121, OT_Gender = 0, OT_Name = "COLOS", CardTitle = "Colosseum Pikachu", Method = PIDType.CXD, Shiny = Shiny.Never, Language = (int)LanguageID.English, NotDistributed = true }, }; private static IEnumerable GetIngameCXDData() @@ -38,8 +38,8 @@ IEnumerable GetIngame(int l) new WC3 { Species = 307, Level = 20, Language = l, Location = 116, TID = 37149, SID = -1, OT_Gender = 0, OT_Name = d[l], Version = GameVersion.XD, CardTitle = $"Trade Trapinch ({id})", Method = PIDType.CXD, Shiny = Shiny.Never, Moves = new[] { 223, 093, 247, 197 } }, // Meditite @ Pyrite Town new WC3 { Species = 213, Level = 20, Language = l, Location = 116, TID = 37149, SID = -1, OT_Gender = 0, OT_Name = d[l], Version = GameVersion.XD, CardTitle = $"Trade Surskit ({id})", Method = PIDType.CXD, Shiny = Shiny.Never, Moves = new[] { 092, 164, 188, 277 } }, // Shuckle @ Pyrite Town new WC3 { Species = 246, Level = 20, Language = l, Location = 116, TID = 37149, SID = -1, OT_Gender = 0, OT_Name = d[l], Version = GameVersion.XD, CardTitle = $"Trade Wooper ({id})", Method = PIDType.CXD, Shiny = Shiny.Never, Moves = new[] { 201, 349, 044, 200 } }, // Larvitar @ Pyrite Town - new WC3 { Species = 311, Level = 13, Language = l, Location = 254, TID = 37149, SID = 0, OT_Gender = 0, OT_Name = d[l], Version = GameVersion.COLO, CardTitle = $"Special Gift ({id})", Method = PIDType.CXD, Shiny = Shiny.Never }, // Plusle @ Ingame Trade - new WC3 { Species = 250, Level = 70, Language = l, Location = 255, TID = 10048, SID = 0, OT_Gender = 0, OT_Name = m[l], Version = GameVersion.S, CardTitle = $"Mt. Battle Ho-oh ({id})", Method = PIDType.CXD, Shiny = Shiny.Never } // Ho-oh @ Mt. Battle + new WC3 { Species = 311, Level = 13, Language = l, Location = 254, TID = 37149, SID = 0, OT_Gender = 0, OT_Name = d[l], Version = GameVersion.COLO, CardTitle = $"Special Gift ({id})", Method = PIDType.CXD, Shiny = Shiny.Never, Moves = new[] { 045, 086, 098, 270 } }, // Plusle @ Ingame Trade + new WC3 { Species = 250, Level = 70, Language = l, Location = 255, TID = 10048, SID = 0, OT_Gender = 0, OT_Name = m[l], Version = GameVersion.S, CardTitle = $"Mt. Battle Ho-oh ({id})", Method = PIDType.CXD, Shiny = Shiny.Never, Moves = new[] { 105, 126, 241, 129 } }, // Ho-oh @ Mt. Battle }; } } diff --git a/PKHeX.Core/MysteryGifts/WC3.cs b/PKHeX.Core/MysteryGifts/WC3.cs index 9d59a449e..5a136b273 100644 --- a/PKHeX.Core/MysteryGifts/WC3.cs +++ b/PKHeX.Core/MysteryGifts/WC3.cs @@ -91,7 +91,7 @@ public override PKM ConvertToPKM(ITrainerInfo SAV) } else { - pk.Version = GetRandomVersion((int)Version); + pk.Version = (int)GetRandomVersion(Version); } int lang = GetSafeLanguage(SAV.Language, Language); bool hatchedEgg = IsEgg && SAV.Generation != 3; @@ -177,18 +177,22 @@ private static int GetSafeLanguage(int hatchLang, int supplied) return 2; return hatchLang; } - private static int GetRandomVersion(int version) + private static GameVersion GetRandomVersion(GameVersion version) { - if (version <= 15 && version > 0) // single game + if (version <= GameVersion.CXD && version > GameVersion.Unknown) // single game return version; int rand = Util.Rand.Next(2); // 0 or 1 switch (version) { - case (int)GameVersion.FRLG: - return (int)GameVersion.FR + rand; // or LG - case (int)GameVersion.RS: - return (int)GameVersion.S + rand; // or R + case GameVersion.FRLG: + return GameVersion.FR + rand; // or LG + case GameVersion.RS: + return GameVersion.S + rand; // or R + + case GameVersion.COLO: + case GameVersion.XD: + return GameVersion.CXD; default: throw new Exception($"Unknown GameVersion: {version}"); }