Minor tweak

no functional change, just use Generation instead of recomputing
This commit is contained in:
Kurt
2020-10-24 11:11:53 -07:00
parent 5fa4ddd4a2
commit 9b2d7c0341

View File

@@ -28,7 +28,7 @@ private static CheckResult VerifyEncounter(PKM pkm, LegalInfo info)
{
return info.EncounterMatch switch
{
EncounterEgg _ => VerifyEncounterEgg(pkm),
EncounterEgg e => VerifyEncounterEgg(pkm, e.Generation),
EncounterTrade t => VerifyEncounterTrade(pkm, t),
EncounterSlot w => VerifyEncounterWild(w),
EncounterStatic s => VerifyEncounterStatic(pkm, s),
@@ -41,7 +41,7 @@ private static CheckResult VerifyEncounterG12(PKM pkm, LegalInfo info)
{
var EncounterMatch = info.EncounterMatch;
if (EncounterMatch.EggEncounter)
return VerifyEncounterEgg(pkm);
return VerifyEncounterEgg(pkm, EncounterMatch.Generation);
return EncounterMatch switch
{
@@ -97,26 +97,23 @@ private static CheckResult VerifyWildEncounterCrystalHeadbutt(ITrainerID tr, Enc
}
// Eggs
private static CheckResult VerifyEncounterEgg(PKM pkm, bool checkSpecies = true)
private static CheckResult VerifyEncounterEgg(PKM pkm, int gen, bool checkSpecies = true)
{
// Check Species
if (checkSpecies && Legal.NoHatchFromEgg.Contains(pkm.Species))
return new CheckResult(Severity.Invalid, LEggSpecies, CheckIdentifier.Encounter);
switch (pkm.GenNumber)
return gen switch
{
case 1:
case 2: return new CheckResult(CheckIdentifier.Encounter); // valid -- no met location info
case 3: return pkm.Format != 3 ? VerifyEncounterEgg3Transfer(pkm) : VerifyEncounterEgg3(pkm);
case 4: return pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade4) : VerifyEncounterEgg4(pkm);
case 5: return pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade5) : VerifyEncounterEgg5(pkm);
case 6: return pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade6) : VerifyEncounterEgg6(pkm);
case 7: return pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade6) : VerifyEncounterEgg7(pkm);
case 8: return pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade6) : VerifyEncounterEgg8(pkm);
default: // none of the above
return new CheckResult(Severity.Invalid, LEggLocationInvalid, CheckIdentifier.Encounter);
}
2 => new CheckResult(CheckIdentifier.Encounter), // valid -- no met location info
3 => pkm.Format != 3 ? VerifyEncounterEgg3Transfer(pkm) : VerifyEncounterEgg3(pkm),
4 => pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade4) : VerifyEncounterEgg4(pkm),
5 => pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade5) : VerifyEncounterEgg5(pkm),
6 => pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade6) : VerifyEncounterEgg6(pkm),
7 => pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade6) : VerifyEncounterEgg7(pkm),
8 => pkm.IsEgg ? VerifyUnhatchedEgg(pkm, Locations.LinkTrade6) : VerifyEncounterEgg8(pkm),
_ => new CheckResult(Severity.Invalid, LEggLocationInvalid, CheckIdentifier.Encounter)
};
}
private static CheckResult VerifyEncounterEgg3(PKM pkm)
@@ -263,7 +260,7 @@ private static CheckResult VerifyEncounterWild(EncounterSlot slot)
private static CheckResult VerifyEncounterStatic(PKM pkm, EncounterStatic s)
{
// Check for Unreleased Encounters / Collisions
switch (pkm.GenNumber)
switch (s.Generation)
{
case 3:
if (s is EncounterStaticShadow w && w.EReader && pkm.Language != (int)LanguageID.Japanese) // Non-JP E-reader Pokemon
@@ -291,7 +288,7 @@ private static CheckResult VerifyEncounterStatic(PKM pkm, EncounterStatic s)
}
if (s.EggEncounter && !pkm.IsEgg) // hatched
{
var hatchCheck = VerifyEncounterEgg(pkm);
var hatchCheck = VerifyEncounterEgg(pkm, s.Generation);
if (!hatchCheck.Valid)
return hatchCheck;
}
@@ -324,7 +321,7 @@ private static CheckResult VerifyEncounterEvent(PKM pkm, MysteryGift MatchedGift
}
if (!pkm.IsEgg && MatchedGift.IsEgg) // hatched
{
var hatchCheck = VerifyEncounterEgg(pkm, false);
var hatchCheck = VerifyEncounterEgg(pkm, MatchedGift.Generation, false);
if (!hatchCheck.Valid)
return hatchCheck;
}