PKHeX/PKHeX.Core/Legality/Tables/Tables8.cs
Kurt 51d2fc9d93 Update with slowpoke-1/new raid data
TransferVerifier: Revise transfer check to allow slowpoke-1 (slowpoke-0 is flagged via next check)
2020-01-09 18:44:45 -08:00

789 lines
34 KiB
C#

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<int> WildPokeballs8 = new HashSet<int> {
(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<int> GalarOriginForms = new HashSet<int>
{
(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<int> GalarVariantFormEvolutions = new HashSet<int>
{
(int)Species.Weezing,
};
internal static readonly IReadOnlyDictionary<int, int> GalarForm0Evolutions = new Dictionary<int, int>
{
{(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<int> EvolveToGalarForms = new HashSet<int>(GalarVariantFormEvolutions.Concat(GalarOriginForms));
internal static readonly int[] EggLocations8 = {Locations.Daycare5, Locations.LinkTrade6};
internal static readonly HashSet<int> ValidMet_SWSH = new HashSet<int>
{
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<int> Ban_NoHidden8 = new HashSet<int>
{
// 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<int> UnreleasedHeldItems_8 = new HashSet<int>
{
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();
/// <summary>
/// Moves that aren't kill
/// </summary>
internal static readonly HashSet<int> ValidMoves_SWSH = new HashSet<int>
{
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
};
}
}