Files
games/packages/shared/games/index.ts

26 lines
594 B
TypeScript

import * as renaissance from "./renaissance";
import simple from "./simple";
export type Game<
C extends { game: string },
S,
A,
E extends { error: any },
V
> = {
title: string;
rules: string;
init: (config: C) => S;
resolveAction: (p: { config: C; state: S; action: A }) => S | E;
getView: (p: { config: C; state: S; humanKey: string }) => V;
resolveQuit: (p: { config: C; state: S; humanKey: string }) => S;
};
const games = {
// renaissance,
simple,
} satisfies { [key: string]: Game<any, any, any, any, any> };
export default games;
export type GameId = keyof typeof games;