boardgame-core/src/core/part.ts

29 lines
547 B
TypeScript
Raw Normal View History

2026-04-02 15:59:27 +08:00
import {RNG} from "@/utils/rng";
2026-04-01 13:36:16 +08:00
export type Part = {
id: string;
2026-04-02 13:58:52 +08:00
sides?: number;
side?: number;
2026-04-01 13:36:16 +08:00
alignments?: string[];
alignment?: string;
regionId: string;
2026-04-01 13:36:16 +08:00
position: number[];
}
export function flip(part: Part) {
if(!part.sides) return;
part.side = ((part.side || 0) + 1) % part.sides;
2026-04-01 13:36:16 +08:00
}
export function flipTo(part: Part, side: number) {
if(!part.sides || side >= part.sides) return;
part.side = side;
2026-04-01 13:36:16 +08:00
}
export function roll(part: Part, rng: RNG) {
if(!part.sides) return;
part.side = rng.nextInt(part.sides);
2026-04-01 17:48:40 +08:00
}