diff --git a/PKHeX.Core/Legality/Encounters/Templates/Gen4/EncounterStatic4.cs b/PKHeX.Core/Legality/Encounters/Templates/Gen4/EncounterStatic4.cs index 051133eda..2aea2f07a 100644 --- a/PKHeX.Core/Legality/Encounters/Templates/Gen4/EncounterStatic4.cs +++ b/PKHeX.Core/Legality/Encounters/Templates/Gen4/EncounterStatic4.cs @@ -55,6 +55,7 @@ public PK4 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria) var pk = new PK4 { Species = Species, + Form = Form, CurrentLevel = LevelMin, OT_Friendship = PersonalTable.HGSS[Species].BaseFriendship, @@ -91,17 +92,19 @@ public PK4 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria) private void SetPINGA(PK4 pk, EncounterCriteria criteria) { + // Pichu is special -- use Pokewalker method + if (Species == (int)Core.Species.Pichu) + { + PIDGenerator.SetRandomPIDPokewalker(pk, (byte)Nature, Gender); + criteria.SetRandomIVs(pk); + return; + } + var pi = pk.PersonalInfo; int gender = criteria.GetGender(Gender, pi); int nature = (int)criteria.GetNature(Nature); int ability = criteria.GetAbilityFromNumber(Ability); - - PIDType type = this switch - { - { Shiny: Shiny.Always } => PIDType.ChainShiny, - { Species: (ushort)Core.Species.Pichu } => PIDType.Pokewalker, - _ => PIDType.Method_1, - }; + PIDType type = this is { Shiny: Shiny.Always } ? PIDType.ChainShiny : PIDType.Method_1; PIDGenerator.SetRandomWildPID4(pk, nature, ability, gender, type); }