From 74f02eb16f60ff12e72fc9eecbf156692e21e5ac Mon Sep 17 00:00:00 2001 From: Kaphotics Date: Sat, 12 Mar 2016 14:07:57 -0800 Subject: [PATCH] Further relearn tweaks --- Legality/Checks.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Legality/Checks.cs b/Legality/Checks.cs index 646111ba5..d18f1d921 100644 --- a/Legality/Checks.cs +++ b/Legality/Checks.cs @@ -237,13 +237,18 @@ public static LegalityCheck[] verifyRelearn(PK6 pk6) int gameSource = !checkAllGames ? -1 : i % iterate / (splitBreed ? 2 : 1); int skipOption = splitBreed && iterate / 2 <= i ? 1 : 0; - // Fetch moves - Sliding Window + // Obtain level1 moves List baseMoves = new List(Legal.getBaseEggMoves(pk6, skipOption, gameSource)); int baseCt = baseMoves.Count; if (baseCt > 4) baseCt = 4; + // Obtain Nonstandard moves - var relearn = pk6.RelearnMoves.Where(move => move != 0 && !baseMoves.Contains(move)).ToArray(); + var relearnMoves = Legal.getValidRelearn(pk6, skipOption).ToArray(); + var relearn = pk6.RelearnMoves.Where(move => move != 0 + && (!baseMoves.Contains(move) || relearnMoves.Contains(move)) + ).ToArray(); int relearnCt = relearn.Length; + // Get Move Window List window = new List(baseMoves); window.AddRange(relearn); @@ -259,9 +264,6 @@ public static LegalityCheck[] verifyRelearn(PK6 pk6) req = baseCt; // Movepool finalized! Check validity. - var relearnMoves = Legal.getValidRelearn(pk6, skipOption).ToArray(); - if (Legal.LightBall.Contains(pk6.Species)) - relearnMoves = relearnMoves.Concat(new[] { 344 }).ToArray(); int[] rl = pk6.RelearnMoves; string em = string.Join(", ", baseMoves); @@ -272,6 +274,8 @@ public static LegalityCheck[] verifyRelearn(PK6 pk6) : new LegalityCheck(Severity.Valid, "Base egg move."); // Non-Base + if (Legal.LightBall.Contains(pk6.Species)) + relearnMoves = relearnMoves.Concat(new[] { 344 }).ToArray(); for (int j = req; j < 4; j++) res[j] = !relearnMoves.Contains(rl[j]) ? new LegalityCheck(Severity.Invalid, "Not an expected relearn move.")