25 lines
616 B
TypeScript
25 lines
616 B
TypeScript
|
|
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);
|
||
|
|
}
|