diff --git a/PKHeX.Core/Legality/Encounters/Data/EncountersGO.cs b/PKHeX.Core/Legality/Encounters/Data/EncountersGO.cs index f83b96326..9a32ec03f 100644 --- a/PKHeX.Core/Legality/Encounters/Data/EncountersGO.cs +++ b/PKHeX.Core/Legality/Encounters/Data/EncountersGO.cs @@ -8,17 +8,24 @@ namespace PKHeX.Core /// internal static class EncountersGO { + /// Clamp for generating encounters; no species allowed above this value except for those in . private const int MaxSpeciesID_GO_HOME = Legal.MaxSpeciesID_6; + /// When generating encounters, these species will be skipped. private static readonly HashSet DisallowedSpecies = new HashSet { (int)Spinda, }; + /// Species beyond private static readonly int[] ExtraSpecies = { (int)Meltan, (int)Melmetal, + + (int)Obstagoon, + (int)Perrserker, + (int)Runerigus, }; internal static readonly EncounterArea7g[] SlotsGO_GG = EncounterArea7g.GetArea(); diff --git a/PKHeX.Core/Legality/Verifiers/FormVerifier.cs b/PKHeX.Core/Legality/Verifiers/FormVerifier.cs index 81b879585..7370b4047 100644 --- a/PKHeX.Core/Legality/Verifiers/FormVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/FormVerifier.cs @@ -201,7 +201,7 @@ bool IsValidPikachuCap() { // We're okay with a Mime Jr. that has evolved via level up. } - else + else if (EncounterMatch.Version != GameVersion.GO) { return GetInvalid(LFormInvalidGame); } diff --git a/PKHeX.Core/Legality/Verifiers/IndividualValueVerifier.cs b/PKHeX.Core/Legality/Verifiers/IndividualValueVerifier.cs index fd260e98e..12612385a 100644 --- a/PKHeX.Core/Legality/Verifiers/IndividualValueVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/IndividualValueVerifier.cs @@ -66,7 +66,7 @@ private void VerifyIVsSlot(LegalityAnalysis data, EncounterSlot w) { case 6: VerifyIVsGen6(data, w); break; case 7: VerifyIVsGen7(data); break; - // case 8: VerifyIVsGen8(data); break; // No rules for IV generation. + case 8: VerifyIVsGen8(data); break; } } @@ -79,6 +79,13 @@ private void VerifyIVsGen7(LegalityAnalysis data) VerifyIVsFlawless(data, 2); // Chain of 10 yields 5% HA and 2 flawless IVs } + private void VerifyIVsGen8(LegalityAnalysis data) + { + var pkm = data.pkm; + if (pkm.GO) + VerifyIVsGoTransfer(data); + } + private void VerifyIVsGen6(LegalityAnalysis data, EncounterSlot w) { var pkm = data.pkm;