Update EncounterTrade for Shiny metadata

Doesn't need to be stored in most cases
Now permits EncounterTrade1 to be shiny
This commit is contained in:
Kurt 2022-03-05 21:04:18 -08:00
parent e17483fe46
commit 41d2dd9294
8 changed files with 27 additions and 32 deletions

View file

@ -782,17 +782,17 @@ namespace PKHeX.Core
private static readonly EncounterTrade8[] TradeGift_R1 =
{
new(SWSH, 052,15,01,033,04,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {387,000,000,000} }, // Meowth
new(SW , 083,15,01,013,10,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {098,000,000,000} }, // Farfetchd
new( SH, 222,15,01,069,12,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {457,000,000,000} }, // Corsola
new( SH, 077,15,01,047,06,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {234,000,000,000} }, // Ponyta
new(SWSH, 122,15,01,005,04,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {252,000,000,000} }, // Mr. Mime
new(SW , 554,15,01,040,12,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {326,000,000,000} }, // Darumaka
new(SWSH, 263,15,01,045,04,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {245,000,000,000} }, // Zigzagoon
new(SWSH, 618,15,01,050,05,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {281,000,000,000} }, // Stunfisk
new(SWSH, 110,15,01,040,12,2) { Ability = Any12H, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {220,000,000,000} }, // Weezing
new(SWSH, 103,15,01,038,06,2) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {246,000,000,000}, Form = 1 }, // Exeggutor-1
new(SWSH, 105,15,01,038,06,2) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {174,000,000,000}, Form = 1 }, // Marowak-1
new(SWSH, 052,15,01,033,04,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {387,000,000,000} }, // Meowth
new(SW , 083,15,01,013,10,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {098,000,000,000} }, // Farfetchd
new( SH, 222,15,01,069,12,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {457,000,000,000} }, // Corsola
new( SH, 077,15,01,047,06,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {234,000,000,000} }, // Ponyta
new(SWSH, 122,15,01,005,04,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {252,000,000,000} }, // Mr. Mime
new(SW , 554,15,01,040,12,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {326,000,000,000} }, // Darumaka
new(SWSH, 263,15,01,045,04,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {245,000,000,000} }, // Zigzagoon
new(SWSH, 618,15,01,050,05,2, Random) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {281,000,000,000} }, // Stunfisk
new(SWSH, 110,15,01,040,12,2, Random) { Ability = Any12H, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {220,000,000,000} }, // Weezing
new(SWSH, 103,15,01,038,06,2, Random) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {246,000,000,000}, Form = 1 }, // Exeggutor-1
new(SWSH, 105,15,01,038,06,2, Random) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, IsNicknamed = false, Relearn = new[] {174,000,000,000}, Form = 1 }, // Marowak-1
};
internal static readonly EncounterTrade8[] TradeGift_SWSH = ArrayUtil.ConcatAll(TradeGift_Regular, TradeGift_R1);

View file

@ -24,7 +24,7 @@ namespace PKHeX.Core
public AbilityPermission Ability { get; init; }
public Nature Nature { get; init; } = Nature.Random;
public Shiny Shiny { get; init; } = Shiny.Never;
public virtual Shiny Shiny => Shiny.Never;
public sbyte Gender { get; init; } = -1;
public sbyte OTGender { get; init; } = -1;

View file

@ -17,6 +17,7 @@ namespace PKHeX.Core
private readonly int LevelMinRBY;
private readonly int LevelMinGSC;
public override int Location => 0;
public override Shiny Shiny => Shiny.Random;
public EncounterTrade1(int species, GameVersion game, int rby, int gsc) : base(species, gsc, game)
{

View file

@ -16,6 +16,8 @@ namespace PKHeX.Core
/// </summary>
public readonly uint PID;
public override Shiny Shiny => Shiny.FixedValue;
public byte CNT_Cool { get; private init; }
public byte CNT_Beauty { get; private init; }
public byte CNT_Cute { get; private init; }
@ -39,7 +41,6 @@ namespace PKHeX.Core
public EncounterTrade3(GameVersion game, uint pid, int species, int level) : base(game)
{
PID = pid;
Shiny = Shiny.FixedValue;
Species = species;
Level = level;
}

View file

@ -22,10 +22,11 @@
/// </summary>
public readonly uint PID;
public override Shiny Shiny => Shiny.FixedValue;
public EncounterTrade4PID(GameVersion game, uint pid, int species, int level) : base(game)
{
PID = pid;
Shiny = Shiny.FixedValue;
Species = species;
Level = level;
}
@ -116,11 +117,11 @@
public int MetLocation { private get; init; }
public override int Location => MetLocation;
public override Shiny Shiny => Shiny.FixedValue;
public EncounterTrade4RanchGift(uint pid, int species, int level) : base(GameVersion.D)
{
PID = pid;
Shiny = Shiny.FixedValue;
Species = species;
Level = level;
TrainerNames = RanchOTNames;

View file

@ -10,21 +10,14 @@
public override int Location => Locations.LinkTrade5NPC;
}
public sealed record EncounterTrade5PID : EncounterTrade
/// <summary>Generation 5 Trade with Fixed PID</summary>
/// <param name="PID"> Fixed <see cref="PKM.PID"/> value the encounter must have.</param>
public sealed record EncounterTrade5PID(GameVersion Version, uint PID) : EncounterTrade(Version)
{
public override int Generation => 5;
public override int Location => Locations.LinkTrade5NPC;
/// <summary>
/// Fixed <see cref="PKM.PID"/> value the encounter must have.
/// </summary>
public readonly uint PID;
public EncounterTrade5PID(GameVersion game, uint pid) : base(game)
{
PID = pid;
Shiny = Shiny.FixedValue;
}
public override Shiny Shiny => Shiny.FixedValue;
protected override void ApplyDetails(ITrainerInfo sav, EncounterCriteria criteria, PKM pk)
{

View file

@ -8,12 +8,9 @@
{
public override int Generation => 7;
public override int Location => Locations.LinkTrade6NPC;
public override Shiny Shiny => Shiny.Random;
public EncounterTrade7b(GameVersion game) : base(game)
{
Shiny = Shiny.Random;
IsNicknamed = false;
}
public EncounterTrade7b(GameVersion game) : base(game) => IsNicknamed = false;
protected override void ApplyDetails(ITrainerInfo sav, EncounterCriteria criteria, PKM pk)
{

View file

@ -20,11 +20,13 @@ namespace PKHeX.Core
public int OT_TextVar { get; set; }
public int OT_Feeling { get; set; }
public int OT_Intensity { get; set; }
public override Shiny Shiny { get; }
public EncounterTrade8(GameVersion game, int species, int level, int memory, int arg, int feel, int intensity) : base(game)
public EncounterTrade8(GameVersion game, int species, int level, int memory, int arg, int feel, int intensity, Shiny shiny = Shiny.Never) : base(game)
{
Species = species;
Level = level;
Shiny = shiny;
OT_Memory = memory;
OT_TextVar = arg;