2019-09-23 23:56:47 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
namespace PKHeX.Core
|
|
|
|
|
{
|
|
|
|
|
public static partial class Legal
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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
|
2019-09-23 23:56:47 +00:00
|
|
|
|
internal const int MaxGameID_8 = 45;
|
|
|
|
|
|
|
|
|
|
#region Met Locations
|
|
|
|
|
internal static readonly int[] Met_SWSH_0 =
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
internal static readonly int[] Met_SWSH_3 =
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
30001, 30003, 30004, 30005, 30006, 30007, 30008, 30009, 30010, 30011, 30012, 30013, 30014, 30015, 30016, 30017, 30018
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
internal static readonly int[] Met_SWSH_4 =
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
internal static readonly int[] Met_SWSH_6 = {/* XY */ 60001, 60003, /* ORAS */ 60004, };
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
internal static readonly ushort[] Pouch_Regular_SWSH =
|
2019-09-23 23:56:47 +00:00
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
|
|
|
|
};
|
2019-09-23 23:56:47 +00:00
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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();
|
2019-09-23 23:56:47 +00:00
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
internal static readonly ushort[] Pouch_Key_SWSH =
|
2019-09-23 23:56:47 +00:00
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
078,
|
|
|
|
|
628, 629, 631, 632,
|
|
|
|
|
703,
|
|
|
|
|
943, 944, 945, 946,
|
|
|
|
|
1074, 1075, 1076, 1077, 1080, 1081, 1100,
|
|
|
|
|
1255, 1266, 1267, 1269, 1270, 1271, 1278,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
internal static readonly ushort[] Pouch_TMHM_SWSH = TM_SWSH.Concat(TR_SWSH).ToArray();
|
2019-09-23 23:56:47 +00:00
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 03:50:22 +00:00
|
|
|
|
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);
|
2019-09-23 23:56:47 +00:00
|
|
|
|
|
|
|
|
|
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,
|
2019-11-16 01:34:18 +00:00
|
|
|
|
|
|
|
|
|
// Ball Guy
|
2019-11-24 03:12:53 +00:00
|
|
|
|
(int)Ball.Fast,
|
2019-11-16 01:34:18 +00:00
|
|
|
|
(int)Ball.Level,
|
2019-11-24 03:12:53 +00:00
|
|
|
|
(int)Ball.Lure,
|
2019-11-16 01:34:18 +00:00
|
|
|
|
(int)Ball.Heavy,
|
|
|
|
|
(int)Ball.Love,
|
2019-11-24 03:12:53 +00:00
|
|
|
|
(int)Ball.Friend,
|
2019-11-16 01:34:18 +00:00
|
|
|
|
(int)Ball.Moon,
|
|
|
|
|
(int)Ball.Dream,
|
2019-11-17 06:22:13 +00:00
|
|
|
|
(int)Ball.Beast,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
internal static readonly HashSet<int> GalarOriginForms = new HashSet<int>
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
(int)Species.Meowth,
|
|
|
|
|
(int)Species.Ponyta,
|
|
|
|
|
(int)Species.Rapidash,
|
|
|
|
|
(int)Species.Farfetchd,
|
|
|
|
|
(int)Species.MrMime,
|
|
|
|
|
(int)Species.Corsola,
|
|
|
|
|
(int)Species.Zigzagoon,
|
|
|
|
|
(int)Species.Linoone,
|
|
|
|
|
(int)Species.Yamask,
|
2019-11-24 03:45:18 +00:00
|
|
|
|
(int)Species.Darumaka,
|
2019-11-16 01:34:18 +00:00
|
|
|
|
(int)Species.Darmanitan,
|
|
|
|
|
(int)Species.Stunfisk,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
internal static readonly HashSet<int> GalarVariantFormEvolutions = new HashSet<int>
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
(int)Species.Weezing,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
internal static readonly IReadOnlyDictionary<int, int> GalarForm0Evolutions = new Dictionary<int, int>
|
|
|
|
|
{
|
|
|
|
|
{(int)Species.Perrserker, 2},
|
|
|
|
|
{(int)Species.Obstagoon, 1},
|
2019-11-16 16:18:12 +00:00
|
|
|
|
{(int)Species.MrRime, 1},
|
2019-11-16 01:34:18 +00:00
|
|
|
|
{(int)Species.Sirfetchd, 2},
|
|
|
|
|
{(int)Species.Runerigus, 1},
|
|
|
|
|
{(int)Species.Cursola, 1},
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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>
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-11-16 07:12:28 +00:00
|
|
|
|
public static readonly int[] TMHM_SWSH =
|
2019-09-23 23:56:47 +00:00
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
// 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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
internal static readonly byte[] MovePP_SWSH =
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
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,
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
internal static readonly HashSet<int> Ban_NoHidden8 = new HashSet<int>
|
|
|
|
|
{
|
2019-11-16 01:34:18 +00:00
|
|
|
|
// No wild encounter with Hidden, so can't breed a hidden yet.
|
2019-11-23 15:12:50 +00:00
|
|
|
|
(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.Delibird,
|
|
|
|
|
(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.Woobat, (int)Species.Swoobat,
|
|
|
|
|
(int)Species.Noibat, (int)Species.Noivern,
|
|
|
|
|
(int)Species.Espurr, (int)Species.Meowstic,
|
|
|
|
|
(int)Species.Chinchou, (int)Species.Lanturn,
|
|
|
|
|
(int)Species.Croagunk, (int)Species.Toxicroak,
|
|
|
|
|
(int)Species.Scraggy, (int)Species.Scrafty,
|
|
|
|
|
(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, (int)Species.Persian,
|
|
|
|
|
(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.Yamask, (int)Species.Cofagrigus,
|
|
|
|
|
(int)Species.Farfetchd,
|
|
|
|
|
(int)Species.Ponyta, (int)Species.Rapidash,
|
|
|
|
|
(int)Species.Corsola,
|
|
|
|
|
(int)Species.MrMime,
|
|
|
|
|
(int)Species.Darumaka, (int)Species.Darmanitan,
|
|
|
|
|
(int)Species.Stunfisk,
|
|
|
|
|
(int)Species.Weezing,
|
2019-09-25 06:28:05 +00:00
|
|
|
|
};
|
|
|
|
|
|
2019-09-23 23:56:47 +00:00
|
|
|
|
#region Unreleased Items
|
|
|
|
|
internal static readonly HashSet<int> UnreleasedHeldItems_8 = new HashSet<int>
|
|
|
|
|
{
|
2019-11-16 16:18:12 +00:00
|
|
|
|
// todo -- someone pls fill this in once the game is thoroughly played
|
|
|
|
|
// I just put a few here so that the list isn't empty.
|
2019-11-16 01:34:18 +00:00
|
|
|
|
708, // Lumiose Galette
|
|
|
|
|
709, // Shalour Sable
|
|
|
|
|
715, // Fairy Gem
|
2019-09-23 23:56:47 +00:00
|
|
|
|
};
|
|
|
|
|
#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();
|
2019-11-16 01:34:18 +00:00
|
|
|
|
|
|
|
|
|
/// <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,
|
|
|
|
|
};
|
2019-11-17 19:13:52 +00:00
|
|
|
|
|
|
|
|
|
internal static readonly int[] TypeTutor8 =
|
|
|
|
|
{
|
|
|
|
|
520, 519, 518, // Pledge
|
|
|
|
|
338, 307, 308, // Elemental Beam
|
|
|
|
|
434, // Draco Meteor
|
|
|
|
|
796, // Steel Beam
|
|
|
|
|
};
|
2019-09-23 23:56:47 +00:00
|
|
|
|
}
|
|
|
|
|
}
|