diff --git a/pk3DS.Core/Legality/Legal.cs b/pk3DS.Core/Legality/Legal.cs index b0ac292..bc649d9 100644 --- a/pk3DS.Core/Legality/Legal.cs +++ b/pk3DS.Core/Legality/Legal.cs @@ -284,12 +284,13 @@ public static partial class Legal 267, // Pokémon Trainer (Zinnia) 272, // Pokémon Trainer (Wally) }; - public static readonly int[] Ignore_AO = + public static readonly int[] TrainerClasses_AO = { - 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 017, 018, 019, 020, 021, 022, 023, 024, 025, 026, 027, 028, 029, 030, 031, 032, 033, 034, 035, 036, 037, - 038, 039, 040, 041, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, 052, 053, 054, 055, 056, 057, 058, 059, 060, 061, 062, 063, 064, 065, 066, 067, 068, 069, 070, 071, 072, 073, 074, - 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, 093, 094, 095, 096, 097, 098, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126 + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, }; public static readonly int[] Z_Moves = { diff --git a/pk3DS/Subforms/Gen6/RSTE.cs b/pk3DS/Subforms/Gen6/RSTE.cs index cb13bec..adb9f81 100644 --- a/pk3DS/Subforms/Gen6/RSTE.cs +++ b/pk3DS/Subforms/Gen6/RSTE.cs @@ -24,7 +24,7 @@ public RSTE(byte[][] trc, byte[][] trd, byte[][] trp) Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); MegaDictionary = GiftEditor6.GetMegaDictionary(Main.Config); rModelRestricted = Main.Config.ORAS ? Legal.Model_AO : Legal.Model_XY; - rXYBlacklist = Legal.Ignore_AO; + rTrainerClasses = Legal.TrainerClasses_AO; InitializeComponent(); // String Fetching @@ -531,7 +531,7 @@ private void Setup() public static int rDMGCount, rSTABCount; private int[] mEvoTypes; private static int[] rModelRestricted; - private static int[] rXYBlacklist; + private static int[] rTrainerClasses; private string[] rImportant; private readonly List Tags = new List(); private readonly Dictionary TagTypes = new Dictionary(); @@ -748,10 +748,10 @@ private static void RandomizeTrainerAIClass(trdata6 t, string[] trClass) while (rIgnoreClass.Contains(rv) || trClass[rv].StartsWith("[~")); // don't allow disallowed classes t.Class = rv; - if (Main.Config.ORAS && rXYBlacklist.Contains(t.Class)) // Classes 0-126 are leftover from XY and some can crash the game; skip all of them + if (Main.Config.ORAS && t.Class <= 126) // 0 to 126 from XY, re-randomize to something from ORAS { - for (int i = 127; i <= 279; i++) - t.Class = i; + int fixClass() => (int)(rnd32() % rTrainerClasses.Length); + t.Class = rTrainerClasses[fixClass()]; } } }