Restrict gen3 PCNY OTs further

last 4 sets were only on the D memcard
add notes regarding Dragon runs using B memcard (staff)
https://pokemonhistorian.com/pcny-project/pcny-preservation-records/
This commit is contained in:
Kurt 2024-11-11 15:17:01 -06:00
parent b0a2c7911e
commit 6153d6c851
3 changed files with 17 additions and 12 deletions

View file

@ -21,6 +21,7 @@ public enum Distribution3NY : byte
public static class Gen3PCNY
{
// PCNYa never existed -- the memory card labelled "A" in produced OT: PCNYc
private const string B = "PCNYb";
private const string C = "PCNYc";
private const string D = "PCNYd";
@ -33,7 +34,7 @@ public static class Gen3PCNY
{
Evolution => name is B or C,
Dragon => name is C or D,
Dragon => name is B or C or D, // only C and D, but B was used temporarily by staff to acquire some in the event of machine downtime
Monster => name is B or C,
Halloween => name is B or C,
@ -42,17 +43,20 @@ public static class Gen3PCNY
UnknownSpring => name is C or D,
Colosseum => name is C or D,
Box => name is C or D,
BabyTrade => name is C or D,
SlitherSwim => name is C or D,
AncientAliens => name is C or D,
Sixth => name is C or D,
BabyTrade => name is D,
SlitherSwim => name is D,
AncientAliens => name is D,
Sixth => name is D,
_ => throw new ArgumentOutOfRangeException(nameof(dist), dist, null),
};
public static string GetTrainerName(this Distribution3NY dist, bool pivot) => dist switch
{
Evolution => pivot ? C : B,
Dragon => pivot ? D : C,
Dragon => pivot ? D : C, // B was used temporarily by staff to acquire some in the event of machine downtime; don't use to generate.
Monster => pivot ? C : B,
Halloween => pivot ? C : B,
EXDragon => pivot ? C : B,
@ -60,10 +64,11 @@ public static class Gen3PCNY
UnknownSpring => pivot ? D : C,
Colosseum => pivot ? D : C,
Box => pivot ? D : C,
BabyTrade => pivot ? D : C,
SlitherSwim => pivot ? D : C,
AncientAliens => pivot ? D : C,
Sixth => pivot ? D : C,
BabyTrade => D,
SlitherSwim => D,
AncientAliens => D,
Sixth => D,
_ => throw new ArgumentOutOfRangeException(nameof(dist), dist, null),
};
}

View file

@ -97,7 +97,7 @@ public sealed class EncounterGift3JPN(ushort Species, Distribution3JPN Distribut
public bool IsMatchExact(PKM pk, EvoCriteria evo)
{
// Gen3 Version MUST match.
if (Version != 0 && !Version.Contains(pk.Version))
if (pk.Version is not GameVersion.R)
return false;
if (pk.IsEgg)

View file

@ -95,7 +95,7 @@ public sealed class EncounterGift3NY(ushort Species, Distribution3NY Distributio
public bool IsMatchExact(PKM pk, EvoCriteria evo)
{
// Gen3 Version MUST match.
if (Version != 0 && !Version.Contains(pk.Version))
if (pk.Version is not (GameVersion.R or GameVersion.S))
return false;
if (pk.IsEgg)