From d0624119ab1e4a44406b8cd98a62b97331c7ee19 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 18 Mar 2017 16:17:42 -0700 Subject: [PATCH] Fix egg move gen6+ requirement for relearnmoves Thanks TJGameplay! --- PKHeX/Legality/Checks.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index 1b19a2eb3..ce5f0c63d 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -49,7 +49,7 @@ public class CheckResult internal string Comment = "Valid"; public bool Valid => Judgement >= Severity.Fishy; public bool Flag; - private readonly CheckIdentifier Identifier; + internal readonly CheckIdentifier Identifier; internal CheckResult(CheckIdentifier i) { Identifier = i; } internal CheckResult(Severity s, string c, CheckIdentifier i) @@ -876,6 +876,8 @@ private void verifyRibbons() private void verifyAbility() { int[] abilities = pkm.PersonalInfo.Abilities; + if (abilities[1] == 0) + abilities[1] = abilities[0]; int abilval = Array.IndexOf(abilities, pkm.Ability); if (abilval < 0) { @@ -2003,6 +2005,11 @@ private CheckResult[] verifyMoves(GameVersion game = GameVersion.Any) new int[0]; res = parseMoves(Moves, validLevelMoves, RelearnMoves, validTMHM, validTutor, SpecialMoves, EggMoves); + + if (pkm.GenNumber >= 6) + for (int i = 0; i < 4; i++) + if (res[i].Flag && !RelearnMoves.Contains(Moves[i])) + res[i] = new CheckResult(Severity.Invalid, "Relearn Moves missing " + res[i].Comment, res[i].Identifier); } if (Moves[0] == 0) // None res[0] = new CheckResult(Severity.Invalid, "Invalid Move.", CheckIdentifier.Move); @@ -2098,6 +2105,15 @@ private CheckResult[] verifyRelearn() GameVersion[] Games = {}; switch (pkm.GenNumber) { + case 3: + Games = new[] {GameVersion.RS, GameVersion.E, GameVersion.FRLG}; + break; + case 4: + Games = new[] {GameVersion.DP, GameVersion.Pt, GameVersion.HGSS}; + break; + case 5: + Games = new[] {GameVersion.BW, GameVersion.B2W2}; + break; case 6: Games = new[] {GameVersion.XY, GameVersion.ORAS}; break;