From bbb9e140e659dd57850e0cf0897fa106158bbaf3 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 5 Aug 2017 20:25:20 -0700 Subject: [PATCH] Add gen2 japanese eggs Closes #1348 --- .../Legality/Encounters/Data/Encounters2.cs | 23 +++++++++++++++++++ .../Legality/Encounters/EncounterGenerator.cs | 7 ++++++ PKHeX.Core/Legality/RNG/RNG.cs | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs b/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs index 585dfb5e2..c844422b0 100644 --- a/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs +++ b/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs @@ -147,6 +147,29 @@ private static EncounterArea[] GetSlots_C(EncounterArea[] f) new EncounterStatic { Species = 083, Level = 05, Moves = new [] { 226, 14, 97, 37 }, Version = GameVersion.Stadium2 }, // Stadium 2 Baton Pass Farfetch'd new EncounterStatic { Species = 207, Level = 05, Moves = new [] { 89, 68, 17 }, Version = GameVersion.Stadium2 }, // Stadium 2 Earthquake Gligar + + // Gen2 Events + // Pokémon Center Mystery Egg #1 (December 15, 2001 to January 14, 2002) + new EncounterStatic { Species = 152, Level = 05, Moves = new [] { 080 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Chikorita Petal Dance + new EncounterStatic { Species = 173, Level = 05, Moves = new [] { 129 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Cleffa Swift + new EncounterStatic { Species = 194, Level = 05, Moves = new [] { 187 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Wooper Belly Drum + new EncounterStatic { Species = 231, Level = 05, Moves = new [] { 227 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Phanpy Encore + new EncounterStatic { Species = 238, Level = 05, Moves = new [] { 118 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Smoochum Metronome + + // Pokémon Center Mystery Egg #2 (March 16 to April 7, 2002) + new EncounterStatic { Species = 047, Level = 05, Moves = new [] { 080 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Psyduck Petal Dance + // new EncounterStatic { Species = 152, Level = 05, Moves = new [] { 080 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Chikorita Petal Dance + new EncounterStatic { Species = 172, Level = 05, Moves = new [] { 080 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Pichu Petal Dance + new EncounterStatic { Species = 173, Level = 05, Moves = new [] { 080 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Cleffa Petal Dance + new EncounterStatic { Species = 174, Level = 05, Moves = new [] { 080 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Igglybuff Petal Dance + new EncounterStatic { Species = 238, Level = 05, Moves = new [] { 080 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Smoochum Petal Dance + + // Pokémon Center Mystery Egg #3 (April 27 to May 12, 2002) + new EncounterStatic { Species = 001, Level = 05, Moves = new [] { 246 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Bulbasaur Ancientpower + new EncounterStatic { Species = 004, Level = 05, Moves = new [] { 242 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Charmander Crunch + new EncounterStatic { Species = 158, Level = 05, Moves = new [] { 066 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Totodile Submission + new EncounterStatic { Species = 163, Level = 05, Moves = new [] { 101 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Hoot-Hoot Night Shade + new EncounterStatic { Species = 158, Level = 05, Moves = new [] { 047 }, Version = GameVersion.EventsGBGen2, EggLocation = 256 }, // Pichu Sing }; private static readonly EncounterStatic[] Encounter_GS_Exclusive = diff --git a/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs b/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs index f879b675d..d7b609d93 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs @@ -106,6 +106,13 @@ private static IEnumerable GenerateRawEncounters12(PKM pkm, Gam deferred.Add(s); continue; } + if (s.Version == GameVersion.EventsGBGen2 && s.Species != 251) + { + // no Gen2 events outside of Japan besides Celebi + var jp = (pkm as PK2)?.Japanese ?? (pkm as PK1)?.Japanese; + if (jp != true) + continue; + } if (game == GameVersion.GSC && !s.EggEncounter && s.Version == GameVersion.C && !pkm.HasOriginalMetLocation) continue; yield return new GBEncounterData(pkm, gen, s, game); diff --git a/PKHeX.Core/Legality/RNG/RNG.cs b/PKHeX.Core/Legality/RNG/RNG.cs index 513516aac..9ea0e6818 100644 --- a/PKHeX.Core/Legality/RNG/RNG.cs +++ b/PKHeX.Core/Legality/RNG/RNG.cs @@ -194,7 +194,7 @@ internal IEnumerable RecoverLower16BitsEuclid16(uint first, uint second) internal IEnumerable RecoverLower16BitsEuclid15(uint first, uint second) { const int bitshift = 31; - const long inc = 0x080000000; // 1 << 32; + const long inc = 0x080000000; // 1 << 31; return GetPossibleSeedsEuclid(first, second, bitshift, inc); }