mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-23 12:33:06 +00:00
Extract minimum trainer information requirements
If one wanted to extend ConvertToPKM to other IEncounterables, this would be the provided obj containing the receiver's info allows pkm gen without a savefile, which is nice?
This commit is contained in:
parent
78616e1ad5
commit
a0eb658ef2
8 changed files with 30 additions and 9 deletions
21
PKHeX.Core/Legality/Structures/ITrainerInfo.cs
Normal file
21
PKHeX.Core/Legality/Structures/ITrainerInfo.cs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
namespace PKHeX.Core
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Minimal Trainer Information necessary for generating a <see cref="PKM"/>.
|
||||||
|
/// </summary>
|
||||||
|
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; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -80,7 +80,7 @@ namespace PKHeX.Core
|
||||||
public string Extension => GetType().Name.ToLower();
|
public string Extension => GetType().Name.ToLower();
|
||||||
public string FileName => $"{CardHeader}.{Extension}";
|
public string FileName => $"{CardHeader}.{Extension}";
|
||||||
public byte[] Data { get; set; }
|
public byte[] Data { get; set; }
|
||||||
public abstract PKM ConvertToPKM(SaveFile SAV);
|
public abstract PKM ConvertToPKM(ITrainerInfo sav);
|
||||||
public abstract int Format { get; }
|
public abstract int Format { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -149,7 +149,7 @@ namespace PKHeX.Core
|
||||||
public override bool IsItem { get => CardType == 2; set { if (value) CardType = 2; } }
|
public override bool IsItem { get => CardType == 2; set { if (value) CardType = 2; } }
|
||||||
public bool IsPower { get => CardType == 3; set { if (value) CardType = 3; } }
|
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)
|
if (!IsPokémon)
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -112,7 +112,7 @@ namespace PKHeX.Core
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override PKM ConvertToPKM(SaveFile SAV)
|
public override PKM ConvertToPKM(ITrainerInfo SAV)
|
||||||
{
|
{
|
||||||
return Gift.ConvertToPKM(SAV);
|
return Gift.ConvertToPKM(SAV);
|
||||||
}
|
}
|
||||||
|
@ -233,7 +233,7 @@ namespace PKHeX.Core
|
||||||
public override int Location { get => PK.Met_Location; set => PK.Met_Location = value; }
|
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 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)
|
if (!IsPokémon)
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -60,9 +60,8 @@ namespace PKHeX.Core
|
||||||
set => _metLevel = value;
|
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
|
PK3 pk = new PK3
|
||||||
{
|
{
|
||||||
Species = Species,
|
Species = Species,
|
||||||
|
@ -82,6 +81,7 @@ namespace PKHeX.Core
|
||||||
|
|
||||||
FatefulEncounter = Fateful,
|
FatefulEncounter = Fateful,
|
||||||
};
|
};
|
||||||
|
var pi = pk.PersonalInfo;
|
||||||
|
|
||||||
if (Version == 0)
|
if (Version == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -278,7 +278,7 @@ namespace PKHeX.Core
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override PKM ConvertToPKM(SaveFile SAV)
|
public override PKM ConvertToPKM(ITrainerInfo SAV)
|
||||||
{
|
{
|
||||||
if (!IsPokémon)
|
if (!IsPokémon)
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -302,7 +302,7 @@ namespace PKHeX.Core
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override PKM ConvertToPKM(SaveFile SAV)
|
public override PKM ConvertToPKM(ITrainerInfo SAV)
|
||||||
{
|
{
|
||||||
if (!IsPokémon)
|
if (!IsPokémon)
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace PKHeX.Core
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Base Class for Save Files
|
/// Base Class for Save Files
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class SaveFile
|
public abstract class SaveFile : ITrainerInfo
|
||||||
{
|
{
|
||||||
public static bool SetUpdateDex { protected get; set; } = true;
|
public static bool SetUpdateDex { protected get; set; } = true;
|
||||||
public static bool SetUpdatePKM { protected get; set; } = true;
|
public static bool SetUpdatePKM { protected get; set; } = true;
|
||||||
|
|
Loading…
Reference in a new issue