hathora-et-labora-game
Version:
Game logic reducer for Uwe Rosenberg's Ora et Labora
50 lines (49 loc) • 1.5 kB
TypeScript
import { Cost, GameCommandEnum, GameConfigCountry, GameConfigLength, GameState, LandEnum, NextUseClergy, Rondel, SettlementRound } from './types';
export declare const FEATURE_LEN: number;
export type FeatureSpec = {
featureLen: number;
height: number;
width: number;
gridAnchor: number;
maxPlayers: number;
tileChannels: number;
vocabCapacity: number;
tile: {
landOffset: number;
landLen: number;
erectionIdChannel: number;
clergyOffset: number;
clergyLen: number;
};
categorical: {
name: string;
tileChannel: number;
capacity: number;
vocab: string[];
}[];
offsets: {
players: number[];
frame: number;
shared: number;
playerResources: number;
playerWonders: number;
playerClergy: number;
playerSettlements: number;
playerGrid: number;
};
vocab: {
erections: string[];
buildings: string[];
settlements: string[];
lands: LandEnum[];
commands: GameCommandEnum[];
resources: (keyof Required<Cost>)[];
rondelKeys: (keyof Omit<Rondel, 'pointingBefore'>)[];
settlementRounds: SettlementRound[];
nextUses: NextUseClergy[];
lengths: GameConfigLength[];
countries: GameConfigCountry[];
};
};
export declare const featureSpec: FeatureSpec;
export declare const encode: (state: GameState, perspective?: number) => Float32Array;