diff --git a/PKHeX.Core/Legality/Analysis.cs b/PKHeX.Core/Legality/Analysis.cs index 543e83af6..5b4435345 100644 --- a/PKHeX.Core/Legality/Analysis.cs +++ b/PKHeX.Core/Legality/Analysis.cs @@ -232,6 +232,8 @@ private void ParsePK8() if (pkm.VC) UpdateVCTransferInfo(); UpdateChecks(); + if (Info.Generation <= 7) + Transfer.VerifyTransferLegalityG8(this); } /// diff --git a/PKHeX.Core/Legality/Tables/Tables8.cs b/PKHeX.Core/Legality/Tables/Tables8.cs index 1cd996bcc..e2d5caf3c 100644 --- a/PKHeX.Core/Legality/Tables/Tables8.cs +++ b/PKHeX.Core/Legality/Tables/Tables8.cs @@ -105,6 +105,10 @@ public static partial class Legal { }; + internal static readonly HashSet TransferrableGalar = new HashSet + { + }; + #region Unreleased Items internal static readonly HashSet UnreleasedHeldItems_8 = new HashSet { diff --git a/PKHeX.Core/Legality/Verifiers/TransferVerifier.cs b/PKHeX.Core/Legality/Verifiers/TransferVerifier.cs index 3f4230df6..a8861eb9d 100644 --- a/PKHeX.Core/Legality/Verifiers/TransferVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/TransferVerifier.cs @@ -101,6 +101,16 @@ public void VerifyTransferLegalityG4(LegalityAnalysis data) } } + public void VerifyTransferLegalityG8(LegalityAnalysis data) + { + var pkm = data.pkm; + int species = pkm.Species; + if (!Legal.TransferrableGalar.Contains(species)) + data.AddLine(GetInvalid(LTransferBad)); + + // todo: alternate forms disallowed? + } + public IEnumerable VerifyVCEncounter(PKM pkm, IEncounterable encounter, ILocation transfer, IList Moves) { // Check existing EncounterMatch