diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index aebc381c7..a54701608 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -1543,10 +1543,16 @@ private void verifyG7PreBank() AddLine(Severity.Invalid, "Sketched move not possible prior to Bank Release.", CheckIdentifier.Special); int baseSpecies = Legal.getBaseSpecies(pkm, lvl: 100); - var info = Legal.Bank_Egg7.FirstOrDefault(entry => entry.Species == baseSpecies && entry.Form == 0 || entry.Form == pkm.AltForm); // Grimer form edge case + var info = Legal.Bank_Egg7.FirstOrDefault(entry => entry.Species == baseSpecies && (entry.Form == 0 || entry.Form == pkm.AltForm)); // Grimer form edge case if (info != null) - if (pkm.RelearnMoves.Any(move => info.Relearn.Contains(move))) // not yet possible before bank - AddLine(Severity.Invalid, "Egg move not possible prior to Bank Release.", CheckIdentifier.Special); + { + int[] moves = pkm.RelearnMoves.Intersect(info.Relearn).ToArray(); + if (moves.Any()) + { + foreach (int m in moves) + vRelearn[Array.IndexOf(pkm.RelearnMoves, m)] = new CheckResult(Severity.Invalid, "Egg move not possible prior to Bank Release.", CheckIdentifier.RelearnMove); + } + } if (Legal.Bank_NotAvailable7.Contains(baseSpecies)) AddLine(Severity.Invalid, "Species not obtainable prior to Bank Release.", CheckIdentifier.Special); @@ -1555,8 +1561,6 @@ private void verifyG7PreBank() { if (pkm.AltForm != 1) AddLine(Severity.Invalid, "Form not obtainable prior to Bank Release.", CheckIdentifier.Special); - if (pkm.AbilityNumber == 4) - AddLine(Severity.Invalid, "Ability not obtainable prior to Bank Release.", CheckIdentifier.Special); } if (Legal.Bank_NoHidden7.Contains(pkm.Species) && pkm.AbilityNumber == 4) diff --git a/PKHeX/Legality/Tables7.cs b/PKHeX/Legality/Tables7.cs index 3b3341d49..e8bd7da79 100644 --- a/PKHeX/Legality/Tables7.cs +++ b/PKHeX/Legality/Tables7.cs @@ -973,8 +973,8 @@ public static partial class Legal new EncounterStatic { Species = 079, Relearn = new[] {562}}, // Slowpoke: Belch new EncounterStatic { Species = 278, Relearn = new[] {282}}, // Wingull: Knock Off new EncounterStatic { Species = 063, Relearn = new[] {112,379,385,285,8,375}}, // Abra: Barrier, Power Trick, Guard Swap, Skill Swap, Ice Punch, Psycho Shift - new EncounterStatic { Species = 088, Relearn = new[] {184}}, // Grimer: Scary Face new EncounterStatic { Species = 088, Form = 1, Relearn = new[] {184,228,372}}, // Grimer1: Scary Face, Pursuit, Assurance + new EncounterStatic { Species = 088, Relearn = new[] {184}}, // Grimer: Scary Face new EncounterStatic { Species = 096, Relearn = new[] {112,274,385,290,285,8}}, // Drowzee: Barrier, Assist, Guard Swap, Secret Power, Skill Swap, Ice Punch new EncounterStatic { Species = 296, Relearn = new[] {270}}, // Makuhita: Helping Hand new EncounterStatic { Species = 739, Relearn = new[] {276}}, // Crabrawler: Superpower @@ -1046,37 +1046,22 @@ public static partial class Legal // Island Scan - new EncounterStatic {Species = 69, Relearn = new[] {562, 438, 499}}, // Bellsprout: Belch, Power Whip, Clear Smog - // Totodile: Fake Tears, Flatter - new EncounterStatic {Species = 158, Relearn = new[] {313, 260}}, - // Marill: Camouflage, Copycat - new EncounterStatic {Species = 183, Relearn = new[] {293, 383}}, - // Azurill: Camouflage, Copycat - new EncounterStatic {Species = 298, Relearn = new[] {293, 383}}, - // Horsea: Razor Wind, Octazooka - new EncounterStatic {Species = 116, Relearn = new[] {13, 190}}, - // Budew: Mind Reader - new EncounterStatic {Species = 406, Relearn = new[] {170}}, - // Roselia: Mind Reader - new EncounterStatic {Species = 315, Relearn = new[] {170}}, - // Starly: Revenge, Detect - new EncounterStatic {Species = 396, Relearn = new[] {279, 197}}, - // Togepi: Psycho Shift, Morning Sun, Secret Power, Extrasensory - new EncounterStatic {Species = 175, Relearn = new[] {375, 234, 290, 326}}, - // Solosis: Trick, Secret Power, Helping Hand - new EncounterStatic {Species = 577, Relearn = new[] {271, 290, 270}}, - // Litwick: Heat Wave, Haze, Endure, Captivate, Power Split - new EncounterStatic {Species = 607, Relearn = new[] {257, 114, 203, 445, 471}}, - // Venipede: Take Down - new EncounterStatic {Species = 543, Relearn = new[] {36}}, - // Timburr: Mach Punch - new EncounterStatic {Species = 532, Relearn = new[] {183}}, - // Gothita: Mirror Coat, Captivate - new EncounterStatic {Species = 574, Relearn = new[] {243, 445}}, - // Sewaddle: Mind Reader, Camouflage - new EncounterStatic {Species = 540, Relearn = new[] {170, 293}}, - // Deino: Astonish, Earth Power - new EncounterStatic {Species = 633, Relearn = new[] {310, 414}}, + new EncounterStatic {Species = 069, Relearn = new[] {562, 438, 499}}, // Bellsprout: Belch, Power Whip, Clear Smog + new EncounterStatic {Species = 158, Relearn = new[] {313, 260}}, // Totodile: Fake Tears, Flatter + new EncounterStatic {Species = 183, Relearn = new[] {293, 383}}, // Marill: Camouflage, Copycat + new EncounterStatic {Species = 298, Relearn = new[] {293, 383}}, // Azurill: Camouflage, Copycat + new EncounterStatic {Species = 116, Relearn = new[] {13, 190}}, // Horsea: Razor Wind, Octazooka + new EncounterStatic {Species = 406, Relearn = new[] {170}}, // Budew: Mind Reader + new EncounterStatic {Species = 315, Relearn = new[] {170}}, // Roselia: Mind Reader + new EncounterStatic {Species = 396, Relearn = new[] {279, 197}}, // Starly: Revenge, Detect + new EncounterStatic {Species = 175, Relearn = new[] {375, 234, 290, 326}}, // Togepi: Psycho Shift, Morning Sun, Secret Power, Extrasensory + new EncounterStatic {Species = 577, Relearn = new[] {271, 290, 270}}, // Solosis: Trick, Secret Power, Helping Hand + new EncounterStatic {Species = 607, Relearn = new[] {257, 114, 203, 445, 471}}, // Litwick: Heat Wave, Haze, Endure, Captivate, Power Split + new EncounterStatic {Species = 543, Relearn = new[] {36}}, // Venipede: Take Down + new EncounterStatic {Species = 532, Relearn = new[] {183}}, // Timburr: Mach Punch + new EncounterStatic {Species = 574, Relearn = new[] {243, 445}}, // Gothita: Mirror Coat, Captivate + new EncounterStatic {Species = 540, Relearn = new[] {170, 293}}, // Sewaddle: Mind Reader, Camouflage + new EncounterStatic {Species = 633, Relearn = new[] {310, 414}}, // Deino: Astonish, Earth Power }; internal static readonly int[] Bank_Sketch7 = // Unobtainable Sketch Moves prior to Bank making moves available. {