From 1f94dbf28eb69f608034cb5f25c7b29ed6c6b766 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 10 Dec 2016 18:55:04 -0800 Subject: [PATCH] Add more detailed fateful encounter checks find more oddballs Closes #626 --- PKHeX/Legality/Checks.cs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index a5965a3c2..f0bed5dbf 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -1512,19 +1512,33 @@ private void verifyMisc() { AddLine(Severity.Invalid, "Cannot increase Contest Stats of an Egg.", CheckIdentifier.Misc); return; } } - if (Encounter.Valid && EncounterIsMysteryGift ^ pkm.FatefulEncounter) + if (Encounter.Valid) { + if (EncounterIsMysteryGift) + { + if (pkm.FatefulEncounter) + AddLine(Severity.Valid, "Mystery Gift Fateful Encounter is Valid.", CheckIdentifier.Fateful); + else + AddLine(Severity.Invalid, "Mystery Gift Fateful Encounter flag missing.", CheckIdentifier.Fateful); + return; + } if (EncounterType == typeof (EncounterStatic)) { var enc = EncounterMatch as EncounterStatic; if (enc.Fateful) - AddLine(Severity.Valid, "Special ingame Fateful Encounter.", CheckIdentifier.Fateful); + { + if (pkm.FatefulEncounter) + AddLine(Severity.Valid, "Special ingame Fateful Encounter.", CheckIdentifier.Fateful); + else + AddLine(Severity.Invalid, "Special ingame Fateful Encounter flag missing.", CheckIdentifier.Fateful); + } + else if (pkm.FatefulEncounter) + AddLine(Severity.Invalid, "Fateful Encounter should not be checked.", CheckIdentifier.Fateful); return; } - AddLine(Severity.Invalid, "Fateful Encounter should " + (pkm.FatefulEncounter ? "not " : "") + "be checked.", CheckIdentifier.Fateful); - return; + if (pkm.FatefulEncounter) + AddLine(Severity.Invalid, "Fateful Encounter should not be checked.", CheckIdentifier.Fateful); } - AddLine(Severity.Valid, "Fateful Encounter is Valid.", CheckIdentifier.Fateful); } private void verifyVersionEvolution() {