diff --git a/packages/engine/src/game.ts b/packages/engine/src/game.ts index 91c7fca..1ce1aff 100644 --- a/packages/engine/src/game.ts +++ b/packages/engine/src/game.ts @@ -5689,18 +5689,15 @@ function doPickUpObject(prev: GameState, instanceId: string): CommandResult { } /** - * Physical, droppable objects beyond the object-type stones. Rulebook: - * "Movable objects include magic stones, treasure chests, the dagger, the - * large rock, and the wizardblade" — plus the expansion wands, which the - * rules expect to change hands ("its remaining charges go with it"; - * charges are keyed by instance, so they travel automatically). + * A physical, droppable object is anything the card face marks as one — + * the object-typed stones, and attack/neutral cards bearing the OBJECT + * subtype (dagger, rock, wizardblade — "this is most certainly an object", + * per its FAQ — the wands, the master key, the handful of tacks). Wand + * charges are keyed by instance, so they travel with a traded wand. */ -const MOVABLE_OBJECT_CARD_IDS = new Set([ - "dagger", "large-rock", "wizardblade", ...WAND_CARD_IDS, -]); - export function isMovableObject(cardId: string): boolean { - return cardDef(cardId).cardType === "object" || MOVABLE_OBJECT_CARD_IDS.has(cardId); + const def = cardDef(cardId); + return def.cardType === "object" || (def.subtypes?.includes("object") ?? false); } function doDropObject(prev: GameState, instanceId: string): CommandResult {