using static PKHeX.Core.LegalityCheckStrings; namespace PKHeX.Core { /// /// Verifies the and of origin values. /// public sealed class ConsoleRegionVerifier : Verifier { protected override CheckIdentifier Identifier => CheckIdentifier.Geography; public override void Verify(LegalityAnalysis data) { if (!(data.pkm is IRegionOrigin tr)) return; var result = VerifyConsoleRegion(tr); data.AddLine(result); } private CheckResult VerifyConsoleRegion(IRegionOrigin pkm) { int consoleRegion = pkm.ConsoleRegion; if (consoleRegion >= 7) return GetInvalid(LGeoHardwareRange); return Verify3DSDataPresent(pkm, consoleRegion); } private CheckResult Verify3DSDataPresent(IRegionOrigin pkm, int consoleRegion) { if (!Locale3DS.IsConsoleRegionCountryValid(consoleRegion, pkm.Country)) return GetInvalid(LGeoHardwareInvalid); return GetValid(LGeoHardwareValid); } } }