Merge pull request #1483 from javierhimura/VC1withVC2tradeback

VC1 pokemon with VC2 tradeback
This commit is contained in:
Kurt 2017-09-23 06:49:10 -07:00 committed by GitHub
commit fa99bbbffa
2 changed files with 16 additions and 11 deletions

View File

@ -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()
{

View File

@ -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];
@ -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
@ -1528,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;
}