diff --git a/PKHeX.Core/Legality/Encounters/Generator/ByGeneration/EncounterGenerator9.cs b/PKHeX.Core/Legality/Encounters/Generator/ByGeneration/EncounterGenerator9.cs index fadd9a7b5..621cd2394 100644 --- a/PKHeX.Core/Legality/Encounters/Generator/ByGeneration/EncounterGenerator9.cs +++ b/PKHeX.Core/Legality/Encounters/Generator/ByGeneration/EncounterGenerator9.cs @@ -29,7 +29,8 @@ internal static class EncounterGenerator9 if (ctr != 0) yield break; } - if (Locations.IsEggLocationBred9(pk.Egg_Location)) + // While an unhatched picnic egg, the Version remains 0. + if (Locations.IsEggLocationBred9(pk.Egg_Location) && !(pk.IsEgg && pk.Version != 0)) { foreach (var z in GenerateEggs(pk, 9)) { yield return z; ++ctr; } diff --git a/PKHeX.Core/PKM/PK9.cs b/PKHeX.Core/PKM/PK9.cs index f88a9d6e4..f372ac14c 100644 --- a/PKHeX.Core/PKM/PK9.cs +++ b/PKHeX.Core/PKM/PK9.cs @@ -539,7 +539,7 @@ public sealed class PK9 : PKM, ISanityChecksum, ITeraType, IMoveReset, ITechReco { // Apply link trade data, only if it left the OT (ignore if dumped & imported, or cloned, etc) // If not matching the trainer details, mark as a traded egg. - if (!IsTradedEgg && tr.Gender == Gender && tr.Language == Language && tr.OT == OT_Name) + if (!IsTradedEgg && tr.Gender == OT_Gender && tr.Language == Language && tr.OT == OT_Name) { OT_Trash.Clear(); Nickname_Trash.Clear(); @@ -553,6 +553,7 @@ public sealed class PK9 : PKM, ISanityChecksum, ITeraType, IMoveReset, ITechReco else { HT_Name = tr.OT; + HT_Gender = tr.Gender; HT_Language = (byte)tr.Language; SetLinkTradeEgg(Day, Month, Year, Locations.LinkTrade6); CurrentHandler = 1;