Move items with Select and browse the party's moves

In the start menu's pack, Select marks an item and asks where it should
go; A or Select on another row moves it there, merging stacks of the
same item unless either holds 99, and B ends the move. The packs that
GIVE and the PC open ignore Select, as in the original.

Left and right on the MOVE screen show the previous or next party
member's moves, skipping Eggs, unless a move is being moved.

Part of #27

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Sébastien QUEROLandClaude Opus 5.5 committed 2026-10-03 00:56:51 +02:00
1 parent 397dcef44c
commit e2dc5ba520
9 files changed
+362 -34

No files matched your search

+31
View File
@@ -508,6 +508,37 @@ test("Headbutt shakes a tree and a sleeping Hoothoot falls out", async ({
await expect(screen).toHaveAttribute("data-map", "24:3");
});
test("Select moves an item within the pack", async ({ page }) => {
await start(page, "candy");
const choices = page.locator("#dialogue-choice"),
pack = page.locator("#mart");
await page.keyboard.press("Enter");
await choices.getByRole("option", { name: /^PACK/ }).click();
const entries = pack.locator("#mart-menu button");
await expect(entries.first()).toContainText("POTION");
// Select on the highlighted Potions, down to the Rare Candy, Select.
await page.keyboard.press("ShiftLeft");
await expect(page.locator("#mart-prompt")).toHaveText(
"Where should this be moved to?",
);
await expect(entries.first()).toContainText("▷POTION");
await page.keyboard.press("ArrowDown");
await page.keyboard.press("ShiftLeft");
await expect(page.locator("#mart-prompt")).toHaveText("");
await expect(entries.nth(0)).toContainText("RARE CANDY");
await expect(entries.nth(1)).toContainText("POTION");
// B leaves the pack, then the start menu, which commits the change.
await page.keyboard.press("KeyZ");
await expect(pack).toBeHidden();
await page.keyboard.press("KeyZ");
await page.clock.runFor(500);
await expect(page.locator("#native-dialogue")).toBeHidden();
const { state } = await backup(page);
expect(state.bag.items.map((slot: { item: number }) => slot.item)).toEqual([
0x20, 18,
]);
});
test("the Old Rod hooks a Magikarp from New Bark Town's shore", async ({
page,
}) => {