diff --git a/PKHeX.Core/Legality/Structures/ITrainerInfo.cs b/PKHeX.Core/Legality/Structures/ITrainerInfo.cs new file mode 100644 index 000000000..f5d927af8 --- /dev/null +++ b/PKHeX.Core/Legality/Structures/ITrainerInfo.cs @@ -0,0 +1,21 @@ +namespace PKHeX.Core +{ + /// + /// Minimal Trainer Information necessary for generating a . + /// + public interface ITrainerInfo + { + string OT { get; } + ushort TID { get; } + ushort SID { get; } + int Gender { get; } + int Game { get; } + int Language { get; } + + int Country { get; } + int SubRegion { get; } + int ConsoleRegion { get; } + + int Generation { get; } + } +} \ No newline at end of file diff --git a/PKHeX.Core/MysteryGifts/MysteryGift.cs b/PKHeX.Core/MysteryGifts/MysteryGift.cs index 3b5716cf1..9b720dddc 100644 --- a/PKHeX.Core/MysteryGifts/MysteryGift.cs +++ b/PKHeX.Core/MysteryGifts/MysteryGift.cs @@ -80,7 +80,7 @@ public static MysteryGift GetMysteryGift(byte[] data) public string Extension => GetType().Name.ToLower(); public string FileName => $"{CardHeader}.{Extension}"; public byte[] Data { get; set; } - public abstract PKM ConvertToPKM(SaveFile SAV); + public abstract PKM ConvertToPKM(ITrainerInfo sav); public abstract int Format { get; } /// diff --git a/PKHeX.Core/MysteryGifts/PGF.cs b/PKHeX.Core/MysteryGifts/PGF.cs index ba6334f19..36c5b55ec 100644 --- a/PKHeX.Core/MysteryGifts/PGF.cs +++ b/PKHeX.Core/MysteryGifts/PGF.cs @@ -149,7 +149,7 @@ public override int CardID public override bool IsItem { get => CardType == 2; set { if (value) CardType = 2; } } public bool IsPower { get => CardType == 3; set { if (value) CardType = 3; } } - public override PKM ConvertToPKM(SaveFile SAV) + public override PKM ConvertToPKM(ITrainerInfo SAV) { if (!IsPokémon) return null; diff --git a/PKHeX.Core/MysteryGifts/PGT.cs b/PKHeX.Core/MysteryGifts/PGT.cs index b5fd735b9..5ebf6590d 100644 --- a/PKHeX.Core/MysteryGifts/PGT.cs +++ b/PKHeX.Core/MysteryGifts/PGT.cs @@ -112,7 +112,7 @@ public bool GiftEquals(PGT pgt) return true; } - public override PKM ConvertToPKM(SaveFile SAV) + public override PKM ConvertToPKM(ITrainerInfo SAV) { return Gift.ConvertToPKM(SAV); } @@ -233,7 +233,7 @@ private void EncryptPK() public override int Location { get => PK.Met_Location; set => PK.Met_Location = value; } public override int EggLocation { get => PK.Egg_Location; set => PK.Egg_Location = value; } - public override PKM ConvertToPKM(SaveFile SAV) + public override PKM ConvertToPKM(ITrainerInfo SAV) { if (!IsPokémon) return null; diff --git a/PKHeX.Core/MysteryGifts/WC3.cs b/PKHeX.Core/MysteryGifts/WC3.cs index 492891917..805dec8de 100644 --- a/PKHeX.Core/MysteryGifts/WC3.cs +++ b/PKHeX.Core/MysteryGifts/WC3.cs @@ -60,9 +60,8 @@ public int Met_Level set => _metLevel = value; } - public override PKM ConvertToPKM(SaveFile SAV) + public override PKM ConvertToPKM(ITrainerInfo SAV) { - var pi = SAV.Personal.GetFormeEntry(Species, 0); PK3 pk = new PK3 { Species = Species, @@ -82,6 +81,7 @@ public override PKM ConvertToPKM(SaveFile SAV) FatefulEncounter = Fateful, }; + var pi = pk.PersonalInfo; if (Version == 0) { diff --git a/PKHeX.Core/MysteryGifts/WC6.cs b/PKHeX.Core/MysteryGifts/WC6.cs index ff7c2f559..e52fe934b 100644 --- a/PKHeX.Core/MysteryGifts/WC6.cs +++ b/PKHeX.Core/MysteryGifts/WC6.cs @@ -278,7 +278,7 @@ public override int[] RelearnMoves } } - public override PKM ConvertToPKM(SaveFile SAV) + public override PKM ConvertToPKM(ITrainerInfo SAV) { if (!IsPokémon) return null; diff --git a/PKHeX.Core/MysteryGifts/WC7.cs b/PKHeX.Core/MysteryGifts/WC7.cs index ec32ac5da..ba44119b7 100644 --- a/PKHeX.Core/MysteryGifts/WC7.cs +++ b/PKHeX.Core/MysteryGifts/WC7.cs @@ -302,7 +302,7 @@ public override int[] RelearnMoves } } - public override PKM ConvertToPKM(SaveFile SAV) + public override PKM ConvertToPKM(ITrainerInfo SAV) { if (!IsPokémon) return null; diff --git a/PKHeX.Core/Saves/SaveFile.cs b/PKHeX.Core/Saves/SaveFile.cs index bf61c20e4..3b25e71d0 100644 --- a/PKHeX.Core/Saves/SaveFile.cs +++ b/PKHeX.Core/Saves/SaveFile.cs @@ -8,7 +8,7 @@ namespace PKHeX.Core /// /// Base Class for Save Files /// - public abstract class SaveFile + public abstract class SaveFile : ITrainerInfo { public static bool SetUpdateDex { protected get; set; } = true; public static bool SetUpdatePKM { protected get; set; } = true;