CLOSES #1396, CLOSES #1398, CLOSES #1400, CLOSES #1401, CLOSES #1406, CLOSES #1407, CLOSES #1411, CLOSES #1413, CLOSES #1415, CLOSES #1416, CLOSES #1417, CLOSES #1419, CLOSES #1421, CLOSES #1422, CLOSES #1423, CLOSES #1424, CLOSES #1425, CLOSES #1427, CLOSES #1428, CLOSES #1429, CLOSES #1431, CLOSES #1432, CLOSES #1433, CLOSES #1435, CLOSES #1437, CLOSES #1440, CLOSES #1441, CLOSES #1442, CLOSES #1443, CLOSES #1444, CLOSES #1447, CLOSES #1449, CLOSES #1456, CLOSES #1461, CLOSES #1464, CLOSES #1465, CLOSES #1466, CLOSES #1468, CLOSES #1469, CLOSES #1470

This commit is contained in:
bryanthaboi
2026-08-17 10:27:14 -04:00
parent 45519ad550
commit 8c9af95598
11 changed files with 186 additions and 10 deletions
+27
View File
@@ -132,6 +132,33 @@ do
check(cat.species[1] < cat.species[2], "species sorted")
end
-- RomExtractorGen2 stamps generation/source beside the id-keyed records, and
-- they sort last because lowercase follows uppercase. #1466
do
local gold = {
pokemon = { generation = 2, source = "ROM", CHIKORITA = { name = "CHIKORITA" } },
items = { generation = 2, source = "ROM", POTION = { name = "POTION" } },
moves = {
generation = 2, source = "ROM:Moves + MoveNames",
TACKLE = { pp = 35 }, ZAP_CANNON = { pp = 5 },
},
}
local cat = Catalog.build(gold)
eq(#cat.moves, 2, "gold move catalog holds only real moves")
eq(cat.moves[#cat.moves], "ZAP_CANNON", "and the last entry is a move, not a scalar")
for _, list in pairs(cat) do
for _, id in ipairs(list) do
check(id ~= "generation" and id ~= "source",
"no provenance scalar reached a catalog: " .. tostring(id))
end
end
local S = { data = gold, cat = cat }
local mon = { moves = { { id = "ZAP_CANNON", pp = 5 } } }
check(require("Ops").cycleMove(S, mon, 1), "cycling off the last move succeeds")
eq(mon.moves[1].id, "TACKLE", "and wraps to the first move instead of a scalar")
end
do
local events = Catalog.scrapeEvents("data/scripts", "data/generated/trainer_headers.lua")
check(#events > 50, "scraped events")