boardgame-phaser/packages/sts-like-viewer/src/state/inventory.ts

25 lines
616 B
TypeScript
Raw Normal View History

import { mutableSignal } from "boardgame-core";
import {
createGridInventory,
createItemIn,
data,
GameItemMeta,
} from "boardgame-core/samples/slay-the-spire-like";
function genId() {
return Math.random().toString(16).slice(-8);
}
export type InventorySignal = ReturnType<typeof createInventorySignal>;
export function createInventorySignal() {
const inventory = createGridInventory<GameItemMeta>(4, 6);
const startingItems = data.desert.getStartingItems();
for (const data of startingItems) {
createItemIn(inventory, `${data.id}-${genId()}`, data);
}
return mutableSignal(inventory);
}