private void UpdateTypeInfo() { if (pkm.Format >= 7) { if (pkm.VC1) { Info.EncounterMatch = EncounterGenerator.GetRBYStaticTransfer(pkm.Species, pkm.Met_Level); } else if (pkm.VC2) { Info.EncounterMatch = EncounterGenerator.GetGSStaticTransfer(pkm.Species, pkm.Met_Level); } } if (pkm.GenNumber <= 2 && pkm.TradebackStatus == TradebackType.Any && (EncounterMatch as GBEncounterData)?.Generation != pkm.GenNumber) { // Example: GSC Pokemon with only possible encounters in RBY, like the legendary birds pkm.TradebackStatus = TradebackType.WasTradeback; } Type = (EncounterOriginalGB ?? EncounterMatch)?.GetType(); var bt = Type.GetTypeInfo().BaseType; if (bt != null && !(bt == typeof(Array) || bt == typeof(object) || bt.GetTypeInfo().IsPrimitive)) // a parent exists { Type = bt; // use base type } }
private void UpdateVCTransferInfo() { EncounterOriginalGB = EncounterMatch; if (pkm.VC1) Info.EncounterMatch = EncounterGenerator.GetRBYStaticTransfer(pkm.Species, pkm.Met_Level); else if (pkm.VC2) Info.EncounterMatch = EncounterGenerator.GetGSStaticTransfer(pkm.Species, pkm.Met_Level); foreach (var z in VerifyVCEncounter(pkm, EncounterOriginalGB.Species, EncounterOriginalGB as GBEncounterData, Info.EncounterMatch as EncounterStatic)) AddLine(z); }