From efc60c3bf83d6b72f9bf2ce62ed9585059915046 Mon Sep 17 00:00:00 2001 From: javierhimura Date: Sat, 23 Sep 2017 12:58:46 +0200 Subject: [PATCH 1/3] Change VC1 pokemon tradeback initial status to allow VC2 origin, there is no way to know if the pokemon was traded to gen7 after or before VC2 release Do not allow gen1 evolutions for VC2 pokemon without gen1 evolutions or preevolutions --- PKHeX.Core/Legality/Analysis.cs | 15 +++++---------- PKHeX.Core/Legality/Core.cs | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/PKHeX.Core/Legality/Analysis.cs b/PKHeX.Core/Legality/Analysis.cs index fb0edd19d..c3fa7dfa3 100644 --- a/PKHeX.Core/Legality/Analysis.cs +++ b/PKHeX.Core/Legality/Analysis.cs @@ -224,16 +224,11 @@ private void UpdateTradebackG12() else pkm.TradebackStatus = TradebackType.Any; } - else if (pkm.VC1) - { - // If VC2 is ever released, we can assume it will be TradebackType.Any. - // Met date cannot be used definitively as the player can change their system clock. - pkm.TradebackStatus = TradebackType.Gen1_NotTradeback; - } - else - { - pkm.TradebackStatus = TradebackType.Any; - } + + // VC2 is released, we can assume it will be TradebackType.Any. + // Met date cannot be used definitively as the player can change their system clock. + // Is impossible to difference between a VC1 pokemon trade to gen7 after or before VC2 release. + pkm.TradebackStatus = TradebackType.Any; } private void UpdateTypeInfo() { diff --git a/PKHeX.Core/Legality/Core.cs b/PKHeX.Core/Legality/Core.cs index 3916fbd6a..430a56ee7 100644 --- a/PKHeX.Core/Legality/Core.cs +++ b/PKHeX.Core/Legality/Core.cs @@ -1459,7 +1459,7 @@ internal static DexLevel[][] GetEvolutionChainsAllGens(PKM pkm, IEncounterable E { var CompleteEvoChain = GetEvolutionChain(pkm, Encounter).ToArray(); int maxgen = pkm.Format == 1 && !pkm.Gen1_NotTradeback ? 2 : pkm.Format; - int mingen = pkm.Format == 2 && !pkm.Gen2_NotTradeback || pkm.Format >= 7 && pkm.GenNumber < 3 ? 1 : pkm.GenNumber; + int mingen = (pkm.Format == 2 || pkm.VC2) && !pkm.Gen2_NotTradeback ? 1 : pkm.GenNumber; DexLevel[][] GensEvoChains = new DexLevel[maxgen + 1][]; for (int i = 0; i <= maxgen; i++) GensEvoChains[i] = new DexLevel[0]; From f129701ee6f495c72e31bf8979638aa456666f92 Mon Sep 17 00:00:00 2001 From: javierhimura Date: Sat, 23 Sep 2017 13:12:03 +0200 Subject: [PATCH 2/3] Do not allow gen2 evolutions in generation 2 for VC1 pokemon, gen2 preevolutions are allowed --- PKHeX.Core/Legality/Core.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PKHeX.Core/Legality/Core.cs b/PKHeX.Core/Legality/Core.cs index 430a56ee7..0b0c98ac8 100644 --- a/PKHeX.Core/Legality/Core.cs +++ b/PKHeX.Core/Legality/Core.cs @@ -1494,6 +1494,8 @@ internal static DexLevel[][] GetEvolutionChainsAllGens(PKM pkm, IEncounterable E } int maxspeciesgen = GetMaxSpeciesOrigin(gen); + if (gen == 2 && pkm.VC1) + maxspeciesgen = MaxSpeciesID_1; // Remove future gen evolutions after a few special considerations, // it the pokemon origin is illegal like a "gen 3" Infernape the list will be emptied, it didnt existed in gen 3 in any evolution phase From eda97f4b499fca58006773f89ba09da66ad487de Mon Sep 17 00:00:00 2001 From: javierhimura Date: Sat, 23 Sep 2017 13:16:33 +0200 Subject: [PATCH 3/3] Do not allow gen2 preevolutions for VC1 pokemon in generation 7 --- PKHeX.Core/Legality/Core.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/PKHeX.Core/Legality/Core.cs b/PKHeX.Core/Legality/Core.cs index 0b0c98ac8..b5948437b 100644 --- a/PKHeX.Core/Legality/Core.cs +++ b/PKHeX.Core/Legality/Core.cs @@ -1530,8 +1530,16 @@ internal static DexLevel[][] GetEvolutionChainsAllGens(PKM pkm, IEncounterable E GensEvoChains[gen] = GensEvoChains[gen].Where(e => e.Level >= GetMinLevelGeneration(pkm, gen)).ToArray(); if (gen == 1 && GensEvoChains[gen].LastOrDefault()?.Species > MaxSpeciesID_1) + { // Remove generation 2 pre-evolutions GensEvoChains[gen] = GensEvoChains[gen].Take(GensEvoChains[gen].Length - 1).ToArray(); + if (pkm.VC1) + { + // Remove generation 2 pre-evolutions from gen 7 and future generations + for ( int fgen = 7; fgen <= maxgen; fgen++) + GensEvoChains[fgen] = GensEvoChains[fgen].Take(GensEvoChains[fgen].Length - 1).ToArray(); + } + } } return GensEvoChains; }