From 8f8cf5bc9ad4a825ceb9adbb69898a2f800dbcb5 Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 29 Nov 2017 09:21:17 -0800 Subject: [PATCH] Fix tradepair calculation (link trade eggs) returned invalid pair values for gen7 due to 2 unused game IDs between the gen6&gen7 pairs --- PKHeX.Core/Legality/Encounters/EncounterGenerator.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs b/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs index b47429801..5d9a1d8e6 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs @@ -1430,7 +1430,14 @@ private static IEnumerable GenerateEggs(PKM pkm) } // Gen6+ update the origin game when hatched. Quick manip for X.Y<->A.O | S.M<->US.UM, ie X->A - GameVersion tradePair() => (GameVersion) (((int) ver - 4 * gen) ^ 2 + 4 * gen); + GameVersion tradePair() + { + if (ver <= GameVersion.OR) // gen6 + return (GameVersion)((int)ver ^ 2); + if (ver <= GameVersion.MN) // gen7 + return ver + 2; + return ver - 2; + } } // Utility