From 230073876f11537a58190266e602903c347930ca Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 3 Feb 2021 15:22:48 -0800 Subject: [PATCH] Add catch rate for staticencounter1 --- .../EncounterStatic/EncounterStatic1.cs | 16 ++++++++++++++++ .../EncounterStatic/EncounterStatic1E.cs | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1.cs b/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1.cs index 1797492d1..7d5699aa0 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1.cs @@ -15,6 +15,22 @@ Level = level; } + protected override void ApplyDetails(ITrainerInfo sav, EncounterCriteria criteria, PKM pk) + { + base.ApplyDetails(sav, criteria, pk); + + var pk1 = (PK1) pk; + if (Species == (int) Core.Species.Pikachu && Version == GameVersion.YW && Level == 5 && Moves.Count == 0) + { + pk1.Catch_Rate = 0xA3; // Light Ball + return; + } + + // Encounters can have different Catch Rates (RBG vs Y) + var table = Version == GameVersion.Y ? PersonalTable.Y : PersonalTable.RB; + pk1.Catch_Rate = table[Species].CatchRate; + } + protected override bool IsMatchLevel(PKM pkm, DexLevel evo) { return Level <= evo.Level; diff --git a/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1E.cs b/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1E.cs index 0a2562c8d..972ef1d84 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1E.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic1E.cs @@ -71,6 +71,16 @@ namespace PKHeX.Core { base.ApplyDetails(sav, criteria, pk); + if (Version == GameVersion.Stadium) + { + var pk1 = (PK1)pk; + // Amnesia Psyduck has different catch rates depending on language + if (Species == (int)Core.Species.Psyduck) + pk1.Catch_Rate = pk1.Japanese ? 167 : 168; + else + pk1.Catch_Rate = 167 + Util.Rand.Next(2); // 167 or 168 + } + if (TID != -1) pk.TID = TID;