namespace PKHeX.Core { public static class ParseSettings { internal static ITrainerInfo ActiveTrainer = new SimpleTrainerInfo { OT = string.Empty, Game = (int)GameVersion.Any, Language = -1 }; /// /// Toggles whether or not the word filter should be used when checking the data. /// public static bool CheckWordFilter { get; set; } = true; /// /// Setting to specify if an analysis should permit data sourced from the physical cartridge era of GameBoy games. /// public static bool AllowGBCartEra { get; set; } /// /// Setting to specify if an analysis should permit trading a Generation 1 origin file to Generation 2, then back. Useful for checking RBY Metagame rules. /// public static bool AllowGen1Tradeback { get; set; } public static Severity NicknamedTrade { get; set; } = Severity.Invalid; public static Severity NicknamedMysteryGift { get; set; } = Severity.Fishy; public static Severity RNGFrameNotFound { get; set; } = Severity.Fishy; /// /// Checks to see if Crystal is available to visit/originate from. /// /// Pokemon Crystal was never released in Korea. /// Korean data being checked /// True if Crystal data is allowed public static bool AllowGen2Crystal(bool Korean) => !Korean; /// /// Checks to see if Crystal is available to visit/originate from. /// /// Data being checked /// True if Crystal data is allowed public static bool AllowGen2Crystal(PKM pkm) => !pkm.Korean; /// /// Checks to see if the Move Reminder (Relearner) is available. /// /// Pokemon Stadium 2 was never released in Korea. /// Data being checked /// True if Crystal data is allowed public static bool AllowGen2MoveReminder(PKM pkm) => !pkm.Korean && AllowGBCartEra; internal static bool IsFromActiveTrainer(PKM pkm) => ActiveTrainer.IsFromTrainer(pkm); public static bool InitFromSaveFileData(SaveFile sav) { ActiveTrainer = sav; AllowGen1Tradeback = true; if (sav.Generation >= 3) return AllowGBCartEra = false; string path = sav.FileName; bool vc = path.EndsWith("dat"); return AllowGBCartEra = !vc; // physical cart selected } } }