using System.Collections.Generic; using System.Linq; namespace PKHeX.Core { public static partial class Legal { internal const int MaxSpeciesID_8 = 890; // Eternatus internal const int MaxMoveID_8 = 796; // Steel Beam (jet fuel) internal const int MaxItemID_8 = 1278; // Rotom Catalog, or 1578 for all catalog parts? internal const int MaxAbilityID_8 = 258; internal const int MaxBallID_8 = 0x1A; // 26 Beast internal const int MaxGameID_8 = 45; #region Met Locations internal static readonly int[] Met_SWSH_0 = { 002, 004, 006, 008, 012, 014, 016, 018, 020, 022, 024, 028, 030, 032, 034, 036, 040, 044, 046, 048, 052, 054, 056, 058, 060, 064, 066, 068, 070, 072, 076, 078, 080, 084, 086, 088, 090, 092, 094, 096, 098, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, }; internal static readonly int[] Met_SWSH_3 = { 30001, 30003, 30004, 30005, 30006, 30007, 30008, 30009, 30010, 30011, 30012, 30013, 30014, 30015, 30016, 30017, 30018 }; internal static readonly int[] Met_SWSH_4 = { 40001, 40002, 40003, 40005, 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013, 40014, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40024, 40025, 40026, 40027, 40028, 40029, 40030, 40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, 40047, 40048, 40049, 40050, 40051, 40052, 40053, 40055, 40056, 40057, 40058, 40059, 40060, 40061, 40063, 40064, 40065, 40066, 40067, 40068, 40069, 40070, 40071, 40072, 40074, 40075, 40076, 40077, 40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085, 40086, }; internal static readonly int[] Met_SWSH_6 = {/* XY */ 60001, 60003, /* ORAS */ 60004, }; #endregion internal static readonly ushort[] Pouch_Regular_SWSH = { 045, 046, 047, 048, 049, 050, 051, 052, 053, 076, 077, 079, 080, 081, 082, 083, 084, 085, 107, 108, 109, 116, 117, 118, 119, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 228, 229, 230, 231, 232, 233, 234, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 255, 257, 259, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 325, 326, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 564, 565, 566, 567, 568, 569, 570, 639, 640, 644, 645, 646, 647, 648, 649, 650, 846, 849, 879, 880, 881, 882, 883, 884, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 1103, 1104, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, }; internal static readonly ushort[] Pouch_Ball_SWSH = { 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 492, 493, 494, 495, 496, 497, 498, 499, 500, 576, 851, }; internal static readonly ushort[] Pouch_Battle_SWSH = { 055, 056, 057, 058, 059, 060, 061, 062, 063, }; internal static readonly ushort[] Pouch_Items_SWSH = Pouch_Regular_SWSH.Concat(Pouch_Ball_SWSH).Concat(Pouch_Battle_SWSH).ToArray(); internal static readonly ushort[] Pouch_Key_SWSH = { 078, 628, 629, 631, 632, 703, 943, 944, 945, 946, 1074, 1075, 1076, 1077, 1080, 1081, 1100, 1255, 1266, 1267, 1269, 1270, 1271, 1278, }; internal static readonly ushort[] TM_SWSH = { 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 618, 619, 620, 690, 691, 692, 693, // TM99 1230, // TM00 }; internal static readonly ushort[] TR_SWSH = { 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, }; internal static readonly ushort[] Pouch_TMHM_SWSH = TM_SWSH.Concat(TR_SWSH).ToArray(); internal static readonly ushort[] Pouch_Medicine_SWSH = { 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, 054, 134, 504, 591, 708, 709, 852, 903, }; internal static readonly ushort[] Pouch_Berries_SWSH = { 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 169, 170, 171, 172, 173, 174, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 686, 687, 688, }; internal static readonly ushort[] Pouch_Ingredients_SWSH = { 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, }; internal static readonly ushort[] Pouch_Treasure_SWSH = { 086, 087, 088, 089, 090, 091, 092, 094, 106, 571, 580, 581, 582, 583, 795, 796, 1105, 1106, 1107, 1108, }; internal static readonly ushort[] HeldItems_SWSH = ArrayUtil.ConcatAll(new ushort[1], Pouch_Items_SWSH, Pouch_Berries_SWSH, Pouch_Medicine_SWSH, TR_SWSH, Pouch_Treasure_SWSH, Pouch_Ingredients_SWSH); internal static readonly HashSet WildPokeballs8 = new HashSet { (int)Ball.Poke, (int)Ball.Great, (int)Ball.Ultra, (int)Ball.Master, (int)Ball.Net, (int)Ball.Dive, (int)Ball.Nest, (int)Ball.Repeat, (int)Ball.Timer, (int)Ball.Luxury, (int)Ball.Premier, (int)Ball.Dusk, (int)Ball.Heal, (int)Ball.Quick, // Ball Guy (int)Ball.Fast, (int)Ball.Level, (int)Ball.Lure, (int)Ball.Heavy, (int)Ball.Love, (int)Ball.Friend, (int)Ball.Moon, (int)Ball.Dream, (int)Ball.Beast, }; internal static readonly HashSet GalarOriginForms = new HashSet { (int)Species.Meowth, (int)Species.Ponyta, (int)Species.Rapidash, (int)Species.Slowpoke, (int)Species.Farfetchd, (int)Species.MrMime, (int)Species.Corsola, (int)Species.Zigzagoon, (int)Species.Linoone, (int)Species.Yamask, (int)Species.Darumaka, (int)Species.Darmanitan, (int)Species.Stunfisk, }; internal static readonly HashSet GalarVariantFormEvolutions = new HashSet { (int)Species.Weezing, }; internal static readonly IReadOnlyDictionary GalarForm0Evolutions = new Dictionary { {(int)Species.Perrserker, 2}, {(int)Species.Obstagoon, 1}, {(int)Species.MrRime, 1}, {(int)Species.Sirfetchd, 2}, {(int)Species.Runerigus, 1}, {(int)Species.Cursola, 1}, }; internal static readonly HashSet EvolveToGalarForms = new HashSet(GalarVariantFormEvolutions.Concat(GalarOriginForms)); internal static readonly int[] EggLocations8 = {Locations.Daycare5, Locations.LinkTrade6}; internal static readonly HashSet ValidMet_SWSH = new HashSet { 006, 008, 012, 014, 016, 018, 020, 022, 024, 028, 030, 032, 034, 036, 040, 044, 046, 048, 052, 054, 056, 058, 060, 064, 066, 068, 070, 072, 076, 078, 080, 084, 086, 088, 090, 092, 094, 096, 098, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, }; public static readonly int[] TMHM_SWSH = { // TM 005, 025, 006, 007, 008, 009, 019, 042, 063, 416, 345, 076, 669, 083, 086, 091, 103, 113, 115, 219, 120, 156, 157, 168, 173, 182, 184, 196, 202, 204, 211, 213, 201, 240, 241, 258, 250, 251, 261, 263, 129, 270, 279, 280, 286, 291, 311, 313, 317, 328, 331, 333, 340, 341, 350, 362, 369, 371, 372, 374, 384, 385, 683, 409, 419, 421, 422, 423, 424, 427, 433, 472, 478, 440, 474, 490, 496, 506, 512, 514, 521, 523, 527, 534, 541, 555, 566, 577, 580, 581, 604, 678, 595, 598, 206, 403, 684, 693, 707, 784, // TR 014, 034, 053, 056, 057, 058, 059, 067, 085, 087, 089, 094, 097, 116, 118, 126, 127, 133, 141, 161, 164, 179, 188, 191, 200, 473, 203, 214, 224, 226, 227, 231, 242, 247, 248, 253, 257, 269, 271, 276, 285, 299, 304, 315, 322, 330, 334, 337, 339, 347, 348, 349, 360, 370, 390, 394, 396, 398, 399, 402, 404, 405, 406, 408, 411, 412, 413, 414, 417, 428, 430, 437, 438, 441, 442, 444, 446, 447, 482, 484, 486, 492, 500, 502, 503, 526, 528, 529, 535, 542, 583, 599, 605, 663, 667, 675, 676, 706, 710, 776, }; internal static readonly byte[] MovePP_SWSH = { 00, 35, 25, 10, 15, 20, 20, 15, 15, 15, 35, 30, 05, 10, 20, 30, 35, 35, 20, 15, 20, 20, 25, 20, 30, 05, 10, 15, 15, 15, 25, 20, 05, 35, 15, 20, 20, 10, 15, 30, 35, 20, 20, 30, 25, 40, 20, 15, 20, 20, 20, 30, 25, 15, 30, 25, 05, 15, 10, 05, 20, 20, 20, 05, 35, 20, 20, 20, 20, 20, 15, 25, 15, 10, 20, 25, 10, 35, 30, 15, 10, 40, 10, 15, 30, 15, 20, 10, 15, 10, 05, 10, 10, 25, 10, 20, 40, 30, 30, 20, 20, 15, 10, 40, 15, 10, 30, 10, 20, 10, 40, 40, 20, 30, 30, 20, 30, 10, 10, 20, 05, 10, 30, 20, 20, 20, 05, 15, 15, 20, 10, 15, 35, 20, 15, 10, 10, 30, 15, 40, 20, 10, 10, 05, 10, 30, 10, 15, 20, 15, 40, 20, 10, 05, 15, 10, 10, 10, 15, 30, 30, 10, 10, 20, 10, 01, 01, 10, 25, 10, 05, 15, 25, 15, 10, 15, 30, 05, 40, 15, 10, 25, 10, 30, 10, 20, 10, 10, 10, 10, 10, 20, 05, 40, 05, 05, 15, 05, 10, 05, 10, 10, 10, 10, 20, 20, 40, 15, 10, 20, 20, 25, 05, 15, 10, 05, 20, 15, 20, 25, 20, 05, 30, 05, 10, 20, 40, 05, 20, 40, 20, 15, 35, 10, 05, 05, 05, 15, 05, 20, 05, 05, 15, 20, 10, 05, 05, 15, 10, 15, 15, 10, 10, 10, 20, 10, 10, 10, 10, 15, 15, 15, 10, 20, 20, 10, 20, 20, 20, 20, 20, 10, 10, 10, 20, 20, 05, 15, 10, 10, 15, 10, 20, 05, 05, 10, 10, 20, 05, 10, 20, 10, 20, 20, 20, 05, 05, 15, 20, 10, 15, 20, 15, 10, 10, 15, 10, 05, 05, 10, 15, 10, 05, 20, 25, 05, 40, 15, 05, 40, 15, 20, 20, 05, 15, 20, 20, 15, 15, 05, 10, 30, 20, 30, 15, 05, 40, 15, 05, 20, 05, 15, 25, 25, 15, 20, 15, 20, 15, 20, 10, 20, 20, 05, 05, 10, 05, 40, 10, 10, 05, 10, 10, 15, 10, 20, 15, 30, 10, 20, 05, 10, 10, 15, 10, 10, 05, 15, 05, 10, 10, 30, 20, 20, 10, 10, 05, 05, 10, 05, 20, 10, 20, 10, 15, 10, 20, 20, 20, 15, 15, 10, 15, 15, 15, 10, 10, 10, 20, 10, 30, 05, 10, 15, 10, 10, 05, 20, 30, 10, 30, 15, 15, 15, 15, 30, 10, 20, 15, 10, 10, 20, 15, 05, 05, 15, 15, 05, 10, 05, 20, 05, 15, 20, 05, 20, 20, 20, 20, 10, 20, 10, 15, 20, 15, 10, 10, 05, 10, 05, 05, 10, 05, 05, 10, 05, 05, 05, 15, 10, 10, 10, 10, 10, 10, 15, 20, 15, 10, 15, 10, 15, 10, 20, 10, 10, 10, 20, 20, 20, 20, 20, 15, 15, 15, 15, 15, 15, 20, 15, 10, 15, 15, 15, 15, 10, 10, 10, 10, 10, 15, 15, 15, 15, 05, 05, 15, 05, 10, 10, 10, 20, 20, 20, 10, 10, 30, 15, 15, 10, 15, 25, 10, 15, 10, 10, 10, 20, 10, 10, 10, 10, 10, 15, 15, 05, 05, 10, 10, 10, 05, 05, 10, 05, 05, 15, 10, 05, 05, 05, 10, 10, 10, 10, 20, 25, 10, 20, 30, 25, 20, 20, 15, 20, 15, 20, 20, 10, 10, 10, 10, 10, 20, 10, 30, 15, 10, 10, 10, 20, 20, 05, 05, 05, 20, 10, 10, 20, 15, 20, 20, 10, 20, 30, 10, 10, 40, 40, 30, 20, 40, 20, 20, 10, 10, 10, 10, 05, 10, 10, 05, 05, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 15, 20, 30, 20, 15, 15, 20, 10, 15, 15, 10, 05, 10, 10, 20, 15, 10, 15, 15, 15, 05, 15, 20, 20, 01, 01, 01, 01, 01, 01, 01, 01, 01, 05, 05, 10, 10, 10, 20, 10, 10, 10, 05, 05, 20, 10, 10, 10, 01, 05, 15, 05, 01, 01, 01, 01, 01, 01, 10, 15, 15, 20, 20, 20, 20, 15, 15, 10, 10, 05, 20, 05, 10, 05, 15, 10, 10, 05, 15, 20, 10, 10, 15, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 05, 10, 15, 10, 15, 05, 05, 05, 10, 15, 40, 10, 10, 10, 15, 10, 10, 10, 10, 05, 05, 05, }; internal static readonly HashSet Ban_NoHidden8 = new HashSet { // No wild encounter with Hidden, so can't breed a hidden yet. (int)Species.Grookey, (int)Species.Thwackey, (int)Species.Rillaboom, (int)Species.Scorbunny, (int)Species.Raboot, (int)Species.Cinderace, (int)Species.Sobble, (int)Species.Drizzile, (int)Species.Inteleon, (int)Species.Hoothoot, (int)Species.Noctowl, (int)Species.Skwovet, (int)Species.Greedent, (int)Species.Pidove, (int)Species.Tranquill, (int)Species.Unfezant, (int)Species.Nickit, (int)Species.Thievul, (int)Species.Wooloo, (int)Species.Dubwool, (int)Species.Purrloin, (int)Species.Liepard, (int)Species.Yamper, (int)Species.Boltund, (int)Species.Wingull, (int)Species.Pelipper, (int)Species.Electrike, (int)Species.Manectric, (int)Species.Golett, (int)Species.Golurk, (int)Species.Munna, (int)Species.Musharna, (int)Species.Snover, (int)Species.Abomasnow, (int)Species.Bronzor, (int)Species.Bronzong, (int)Species.Drifloon, (int)Species.Drifblim, (int)Species.Cherubi, (int)Species.Cherrim, (int)Species.Goldeen, (int)Species.Seaking, (int)Species.Basculin, (int)Species.Basculin | 1 << 11, (int)Species.Woobat, (int)Species.Swoobat, (int)Species.Noibat, (int)Species.Noivern, (int)Species.Espurr, (int)Species.Meowstic, (int)Species.Meowstic | 1 << 11, (int)Species.Chinchou, (int)Species.Lanturn, (int)Species.Croagunk, (int)Species.Toxicroak, (int)Species.Barboach, (int)Species.Whiscash, (int)Species.Binacle, (int)Species.Barbaracle, (int)Species.Sawk, (int)Species.Throh, (int)Species.Bonsly, (int)Species.Sudowoodo, (int)Species.Cleffa, (int)Species.Clefairy, (int)Species.Clefable, (int)Species.Elgyem, (int)Species.Beheeyem, (int)Species.Cubchoo, (int)Species.Beartic, (int)Species.Skorupi, (int)Species.Drapion, (int)Species.Maractus, (int)Species.Mimikyu, (int)Species.Bergmite, (int)Species.Avalugg, // Alolan Forms (int)Species.Raichu | 1 << 11, (int)Species.Meowth | 1 << 11, (int)Species.Persian | 1 << 11, (int)Species.Vulpix | 1 << 11, (int)Species.Ninetales | 1 << 11, (int)Species.Diglett | 1 << 11, (int)Species.Dugtrio | 1 << 11, // Non-Galar Forms (int)Species.Farfetchd, (int)Species.Ponyta, (int)Species.Rapidash, (int)Species.Slowpoke, (int)Species.Corsola, (int)Species.Darumaka, (int)Species.Darmanitan, (int)Species.Stunfisk, (int)Species.Weezing, (int)Species.Shellos, (int)Species.Gastrodon, // West }; #region Unreleased Items internal static readonly HashSet UnreleasedHeldItems_8 = new HashSet { 116, // Douse Drive 117, // Shock Drive 118, // Burn Drive 119, // Chill Drive 298, // Flame Plate 299, // Splash Plate 300, // Zap Plate 301, // Meadow Plate 302, // Icicle Plate 303, // Fist Plate 304, // Toxic Plate 305, // Earth Plate 306, // Sky Plate 307, // Mind Plate 308, // Insect Plate 309, // Stone Plate 310, // Spooky Plate 311, // Draco Plate 312, // Dread Plate 313, // Iron Plate // 644, // Pixie Plate 1114, // Star Sweet 1115, // Ribbon Sweet // 1279, // ★And458 (Jangmo-o) // 1280, // ★And15 (Larvitar) 1281, // ★And337 1282, // ★And603 1283, // ★And390 1284, // ★Sgr6879 1285, // ★Sgr6859 1286, // ★Sgr6913 1287, // ★Sgr7348 1288, // ★Sgr7121 1289, // ★Sgr6746 1290, // ★Sgr7194 1291, // ★Sgr7337 1292, // ★Sgr7343 1293, // ★Sgr6812 1294, // ★Sgr7116 1295, // ★Sgr7264 1296, // ★Sgr7597 1297, // ★Del7882 1298, // ★Del7906 1299, // ★Del7852 1300, // ★Psc596 1301, // ★Psc361 1302, // ★Psc510 1303, // ★Psc437 1304, // ★Psc8773 1305, // ★Lep1865 1306, // ★Lep1829 1307, // ★Boo5340 1308, // ★Boo5506 1309, // ★Boo5435 1310, // ★Boo5602 1311, // ★Boo5733 1312, // ★Boo5235 1313, // ★Boo5351 1314, // ★Hya3748 1315, // ★Hya3903 1316, // ★Hya3418 1317, // ★Hya3482 1318, // ★Hya3845 1319, // ★Eri1084 1320, // ★Eri472 1321, // ★Eri1666 1322, // ★Eri897 1323, // ★Eri1231 1324, // ★Eri874 1325, // ★Eri1298 1326, // ★Eri1325 1327, // ★Eri984 1328, // ★Eri1464 1329, // ★Eri1393 1330, // ★Eri850 1331, // ★Tau1409 1332, // ★Tau1457 1333, // ★Tau1165 1334, // ★Tau1791 1335, // ★Tau1910 1336, // ★Tau1346 1337, // ★Tau1373 1338, // ★Tau1412 1339, // ★CMa2491 1340, // ★CMa2693 1341, // ★CMa2294 1342, // ★CMa2827 1343, // ★CMa2282 1344, // ★CMa2618 1345, // ★CMa2657 1346, // ★CMa2646 1347, // ★UMa4905 1348, // ★UMa4301 1349, // ★UMa5191 1350, // ★UMa5054 1351, // ★UMa4295 1352, // ★UMa4660 1353, // ★UMa4554 1354, // ★UMa4069 1355, // ★UMa3569 1356, // ★UMa3323 1357, // ★UMa4033 1358, // ★UMa4377 1359, // ★UMa4375 1360, // ★UMa4518 1361, // ★UMa3594 1362, // ★Vir5056 1363, // ★Vir4825 1364, // ★Vir4932 1365, // ★Vir4540 1366, // ★Vir4689 1367, // ★Vir5338 1368, // ★Vir4910 1369, // ★Vir5315 1370, // ★Vir5359 1371, // ★Vir5409 1372, // ★Vir5107 1373, // ★Ari617 1374, // ★Ari553 1375, // ★Ari546 1376, // ★Ari951 1377, // ★Ori1713 1378, // ★Ori2061 1379, // ★Ori1790 1380, // ★Ori1903 1381, // ★Ori1948 1382, // ★Ori2004 1383, // ★Ori1852 1384, // ★Ori1879 1385, // ★Ori1899 1386, // ★Ori1543 1387, // ★Cas21 1388, // ★Cas168 1389, // ★Cas403 1390, // ★Cas153 1391, // ★Cas542 1392, // ★Cas219 1393, // ★Cas265 1394, // ★Cnc3572 1395, // ★Cnc3208 1396, // ★Cnc3461 1397, // ★Cnc3449 1398, // ★Cnc3429 1399, // ★Cnc3627 1400, // ★Cnc3268 1401, // ★Cnc3249 1402, // ★Com4968 1403, // ★Crv4757 1404, // ★Crv4623 1405, // ★Crv4662 1406, // ★Crv4786 1407, // ★Aur1708 1408, // ★Aur2088 1409, // ★Aur1605 1410, // ★Aur2095 1411, // ★Aur1577 1412, // ★Aur1641 1413, // ★Aur1612 1414, // ★Pav7790 1415, // ★Cet911 1416, // ★Cet681 1417, // ★Cet188 1418, // ★Cet539 1419, // ★Cet804 1420, // ★Cep8974 1421, // ★Cep8162 1422, // ★Cep8238 1423, // ★Cep8417 1424, // ★Cen5267 1425, // ★Cen5288 1426, // ★Cen551 1427, // ★Cen5459 1428, // ★Cen5460 1429, // ★CMi2943 1430, // ★CMi2845 1431, // ★Equ8131 1432, // ★Vul7405 1433, // ★UMi424 1434, // ★UMi5563 1435, // ★UMi5735 1436, // ★UMi6789 1437, // ★Crt4287 1438, // ★Lyr7001 1439, // ★Lyr7178 1440, // ★Lyr7106 1441, // ★Lyr7298 1442, // ★Ara6585 1443, // ★Sco6134 1444, // ★Sco6527 1445, // ★Sco6553 1446, // ★Sco5953 1447, // ★Sco5984 1448, // ★Sco6508 1449, // ★Sco6084 1450, // ★Sco5944 1451, // ★Sco6630 1452, // ★Sco6027 1453, // ★Sco6247 1454, // ★Sco6252 1455, // ★Sco5928 1456, // ★Sco6241 1457, // ★Sco6165 1458, // ★Tri544 1459, // ★Leo3982 1460, // ★Leo4534 1461, // ★Leo4357 1462, // ★Leo4057 1463, // ★Leo4359 1464, // ★Leo4031 1465, // ★Leo3852 1466, // ★Leo3905 1467, // ★Leo3773 1468, // ★Gru8425 1469, // ★Gru8636 1470, // ★Gru8353 1471, // ★Lib5685 1472, // ★Lib5531 1473, // ★Lib5787 1474, // ★Lib5603 1475, // ★Pup3165 1476, // ★Pup3185 1477, // ★Pup3045 1478, // ★Cyg7924 1479, // ★Cyg7417 1480, // ★Cyg7796 1481, // ★Cyg8301 1482, // ★Cyg7949 1483, // ★Cyg7528 1484, // ★Oct7228 1485, // ★Col1956 1486, // ★Col2040 1487, // ★Col2177 1488, // ★Gem2990 1489, // ★Gem2891 1490, // ★Gem2421 1491, // ★Gem2473 1492, // ★Gem2216 1493, // ★Gem2777 1494, // ★Gem2650 1495, // ★Gem2286 1496, // ★Gem2484 1497, // ★Gem2930 1498, // ★Peg8775 1499, // ★Peg8781 1500, // ★Peg39 1501, // ★Peg8308 1502, // ★Peg8650 1503, // ★Peg8634 1504, // ★Peg8684 1505, // ★Peg8450 1506, // ★Peg8880 1507, // ★Peg8905 1508, // ★Oph6556 1509, // ★Oph6378 1510, // ★Oph6603 1511, // ★Oph6149 1512, // ★Oph6056 1513, // ★Oph6075 1514, // ★Ser5854 1515, // ★Ser7141 1516, // ★Ser5879 1517, // ★Her6406 1518, // ★Her6148 1519, // ★Her6410 1520, // ★Her6526 1521, // ★Her6117 1522, // ★Her6008 1523, // ★Per936 1524, // ★Per1017 1525, // ★Per1131 1526, // ★Per1228 1527, // ★Per834 1528, // ★Per941 1529, // ★Phe99 1530, // ★Phe338 1531, // ★Vel3634 1532, // ★Vel3485 1533, // ★Vel3734 1534, // ★Aqr8232 1535, // ★Aqr8414 1536, // ★Aqr8709 1537, // ★Aqr8518 1538, // ★Aqr7950 1539, // ★Aqr8499 1540, // ★Aqr8610 1541, // ★Aqr8264 1542, // ★Cru4853 1543, // ★Cru4730 1544, // ★Cru4763 1545, // ★Cru4700 1546, // ★Cru4656 1547, // ★PsA8728 1548, // ★TrA6217 1549, // ★Cap7776 1550, // ★Cap7754 1551, // ★Cap8278 1552, // ★Cap8322 1553, // ★Cap7773 1554, // ★Sge7479 1555, // ★Car2326 1556, // ★Car3685 1557, // ★Car3307 1558, // ★Car3699 1559, // ★Dra5744 1560, // ★Dra5291 1561, // ★Dra6705 1562, // ★Dra6536 1563, // ★Dra7310 1564, // ★Dra6688 1565, // ★Dra4434 1566, // ★Dra6370 1567, // ★Dra7462 1568, // ★Dra6396 1569, // ★Dra6132 1570, // ★Dra6636 1571, // ★CVn4915 1572, // ★CVn4785 1573, // ★CVn4846 1574, // ★Aql7595 1575, // ★Aql7557 1576, // ★Aql7525 1577, // ★Aql7602 1578, // ★Aql7235 005, // Safari Ball 016, // Cherish Ball 499, // Sport Ball 500, // Park Ball 193, // Payapa Berry 208, // Enigma Berry 209, // Micle Berry 210, // Custap Berry 211, // Jaboca Berry 212, // Rowap Berry }; #endregion internal static readonly bool[] ReleasedHeldItems_8 = Enumerable.Range(0, MaxItemID_8+1).Select(i => HeldItems_SWSH.Contains((ushort)i) && !UnreleasedHeldItems_8.Contains(i)).ToArray(); /// /// Moves that aren't kill /// internal static readonly HashSet ValidMoves_SWSH = new HashSet { 001, 005, 006, 007, 008, 009, 010, 011, 012, 014, 015, 016, 017, 018, 019, 020, 021, 022, 023, 024, 025, 028, 029, 030, 031, 032, 033, 034, 035, 036, 037, 038, 039, 040, 042, 043, 044, 045, 046, 047, 048, 050, 051, 052, 053, 054, 055, 056, 057, 058, 059, 060, 061, 062, 063, 064, 065, 066, 067, 069, 070, 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, 093, 094, 095, 097, 098, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 120, 122, 123, 124, 126, 127, 129, 130, 133, 135, 136, 137, 138, 139, 141, 143, 147, 150, 151, 152, 153, 154, 156, 157, 161, 162, 163, 164, 167, 170, 172, 174, 175, 178, 179, 180, 181, 183, 184, 186, 187, 188, 189, 190, 191, 192, 195, 196, 198, 199, 200, 201, 202, 204, 205, 206, 207, 209, 210, 211, 212, 213, 215, 217, 219, 220, 223, 224, 225, 226, 227, 229, 230, 231, 232, 233, 234, 235, 236, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 268, 269, 272, 273, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 291, 292, 297, 298, 299, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 319, 321, 322, 323, 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 344, 345, 347, 348, 349, 350, 351, 352, 353, 355, 356, 359, 360, 361, 362, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 379, 380, 384, 385, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 427, 428, 430, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 444, 446, 447, 450, 451, 452, 453, 454, 455, 457, 458, 468, 470, 471, 472, 473, 474, 475, 478, 479, 480, 482, 483, 484, 486, 487, 488, 489, 490, 491, 492, 493, 494, 496, 497, 499, 500, 502, 503, 504, 505, 506, 508, 509, 510, 512, 513, 514, 515, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 532, 533, 534, 535, 536, 538, 539, 540, 541, 542, 544, 549, 550, 551, 556, 558, 559, 560, 564, 565, 566, 567, 568, 570, 571, 572, 573, 574, 575, 576, 577, 579, 580, 581, 582, 583, 584, 585, 586, 587, 589, 590, 594, 595, 597, 598, 599, 602, 603, 604, 605, 608, 609, 610, 611, 612, 660, 662, 663, 664, 667, 668, 669, 670, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 688, 691, 693, 694, 706, 707, 709, 710, 711, 715, 716, 718, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, }; internal static readonly int[] TypeTutor8 = { 520, 519, 518, // Pledge 338, 307, 308, // Elemental Beam 434, // Draco Meteor 796, // Steel Beam }; } }