mirror of
https://github.com/kwsch/PKHeX
synced 2025-03-07 08:47:21 +00:00
Allow BDSP Slate/Shard to be given via "Give All"
https://projectpokemon.org/home/forums/topic/63429-bdsp-slate/ The "Give All" cheat will skip adding unobtainable items. Since the BDSP-exclusive Treasure (slate/shard) are unable to held, they were also skipped. Revise the logic to allow them to be added via "Give All", but still disallowed as held items (separate arrays needed). Also condense the logic for BCAT-Dmax crystal IDs since they're all sequential. Just iterate a range instead of a span.
This commit is contained in:
parent
1de4e4eaab
commit
b08843fcc5
4 changed files with 43 additions and 305 deletions
PKHeX.Core
|
@ -45,7 +45,7 @@ public abstract class ItemStorage5
|
|||
149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 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,
|
||||
};
|
||||
|
||||
public static ReadOnlySpan<ushort> Unreleased => new ushort[]
|
||||
internal static ReadOnlySpan<ushort> Unreleased => new ushort[]
|
||||
{
|
||||
005, // Safari Ball
|
||||
016, // Cherish Ball
|
||||
|
|
|
@ -36,7 +36,7 @@ public sealed class ItemStorage8BDSP : IItemStorage
|
|||
055, 056, 057, 058, 059, 060, 061, 062, 063,
|
||||
};
|
||||
|
||||
public static ReadOnlySpan<ushort> Unreleased => new ushort[]
|
||||
internal static ReadOnlySpan<ushort> Unreleased => new ushort[]
|
||||
{
|
||||
005, // Safari Ball
|
||||
016, // Cherish Ball
|
||||
|
@ -53,7 +53,10 @@ public sealed class ItemStorage8BDSP : IItemStorage
|
|||
576, // Dream Ball
|
||||
849, // Ice Stone
|
||||
851, // Beast Ball
|
||||
};
|
||||
|
||||
internal static ReadOnlySpan<ushort> DisallowHeldTreasure => new ushort[]
|
||||
{
|
||||
// new BDSP items, but they can't be held
|
||||
1808, // Mysterious Shard S
|
||||
1809, // Mysterious Shard L
|
||||
|
|
|
@ -165,309 +165,22 @@ public sealed class ItemStorage8SWSH : IItemStorage
|
|||
|
||||
500, // Park Ball
|
||||
// 644, // Pixie Plate
|
||||
|
||||
1279, // ★And458 (Jangmo-o)
|
||||
1280, // ★And15 (Larvitar)
|
||||
1281, // ★And337 (Corviknight)
|
||||
1282, // ★And603 (Eiscue)
|
||||
1283, // ★And390 (Stonjourner)
|
||||
1284, // ★Sgr6879 (Copperajah)
|
||||
1285, // ★Sgr6859 (Centiskorch)
|
||||
1286, // ★Sgr6913 (Flapple/Appletun)
|
||||
1287, // ★Sgr7348 (Sandaconda)
|
||||
1288, // ★Sgr7121 (Duraludon)
|
||||
1289, // ★Sgr6746 (Pikachu)
|
||||
1290, // ★Sgr7194 (Eevee)
|
||||
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
|
||||
};
|
||||
|
||||
internal static Range DynamaxCrystalBCAT => new(DMAX_START, DMAX_END + 1);
|
||||
|
||||
// 1279, // ★And458 (Jangmo-o)
|
||||
// 1280, // ★And15 (Larvitar)
|
||||
// 1281, // ★And337 (Corviknight)
|
||||
// 1282, // ★And603 (Eiscue)
|
||||
// 1283, // ★And390 (Stonjourner)
|
||||
// 1284, // ★Sgr6879 (Copperajah)
|
||||
// 1285, // ★Sgr6859 (Centiskorch)
|
||||
// 1286, // ★Sgr6913 (Flapple/Appletun)
|
||||
// 1287, // ★Sgr7348 (Sandaconda)
|
||||
// 1288, // ★Sgr7121 (Duraludon)
|
||||
// 1289, // ★Sgr6746 (Pikachu)
|
||||
// 1290, // ★Sgr7194 (Eevee)
|
||||
private const int DMAX_START = 1279;
|
||||
private const int DMAX_END = 1578;
|
||||
private const int DMAX_LEGAL_END = 1290; // ★Sgr7194 (Eevee)
|
||||
|
|
|
@ -54,8 +54,8 @@ public static class ItemRestrictions
|
|||
private static readonly bool[] ReleasedHeldItems_5 = GetPermitList(MaxItemID_5_B2W2, HeldItems_BW, ItemStorage5.Unreleased);
|
||||
private static readonly bool[] ReleasedHeldItems_6 = GetPermitList(MaxItemID_6_AO, HeldItems_AO, ItemStorage6XY.Unreleased);
|
||||
private static readonly bool[] ReleasedHeldItems_7 = GetPermitList(MaxItemID_7_USUM, HeldItems_USUM, ItemStorage7SM.Unreleased);
|
||||
private static readonly bool[] ReleasedHeldItems_8 = GetPermitList(MaxItemID_8, HeldItems_SWSH, ItemStorage8SWSH.Unreleased);
|
||||
private static readonly bool[] ReleasedHeldItems_8b = GetPermitList(MaxItemID_8b, HeldItems_BS, ItemStorage8BDSP.Unreleased);
|
||||
private static readonly bool[] ReleasedHeldItems_8 = GetPermitList(MaxItemID_8, HeldItems_SWSH, ItemStorage8SWSH.Unreleased, ItemStorage8SWSH.DynamaxCrystalBCAT);
|
||||
private static readonly bool[] ReleasedHeldItems_8b = GetPermitList(MaxItemID_8b, HeldItems_BS, ItemStorage8BDSP.Unreleased, ItemStorage8BDSP.DisallowHeldTreasure);
|
||||
private static readonly bool[] ReleasedHeldItems_9 = GetPermitList(MaxItemID_9, HeldItems_SV, ItemStorage9SV.Unreleased);
|
||||
|
||||
/// <summary>
|
||||
|
@ -84,4 +84,26 @@ public static class ItemRestrictions
|
|||
result[index] = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <inheritdoc cref="GetPermitList(int,ReadOnlySpan{ushort})"/>
|
||||
private static bool[] GetPermitList(int max, ReadOnlySpan<ushort> allowed, ReadOnlySpan<ushort> disallow1, ReadOnlySpan<ushort> disallow2)
|
||||
{
|
||||
var result = GetPermitList(max, allowed);
|
||||
foreach (var index in disallow1)
|
||||
result[index] = false;
|
||||
foreach (var index in disallow2)
|
||||
result[index] = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <inheritdoc cref="GetPermitList(int,ReadOnlySpan{ushort})"/>
|
||||
private static bool[] GetPermitList(int max, ReadOnlySpan<ushort> allowed, ReadOnlySpan<ushort> disallow1, Range disallow2)
|
||||
{
|
||||
var result = GetPermitList(max, allowed);
|
||||
foreach (var index in disallow1)
|
||||
result[index] = false;
|
||||
for (int i = disallow2.Start.Value; i < disallow2.End.Value; i++)
|
||||
result[i] = false;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue