Fix mgdb viewing cxd gifts

Closes #1972
This commit is contained in:
Kurt
2018-05-27 14:16:56 -07:00
parent 7278b2486a
commit 4c1e014a53
2 changed files with 14 additions and 10 deletions

View File

@@ -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<MysteryGift> GetIngameCXDData()
@@ -38,8 +38,8 @@ IEnumerable<WC3> 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
};
}
}

View File

@@ -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}");
}