UNPKG

hathora-et-labora-game

Version:

Game logic reducer for Uwe Rosenberg's Ora et Labora

19 lines (16 loc) 644 B
import { always, curry, pipe } from 'ramda' import { match } from 'ts-pattern' import { allowFreeUsageToNeighborsOf, disableFurtherUsage } from '../board/frame' import { getCost, withActivePlayer } from '../board/player' import { BuildingEnum, GameState, StateReducer } from '../types' export const cottage = (): StateReducer => pipe( withActivePlayer(getCost({ malt: 1 })), disableFurtherUsage(BuildingEnum.Cottage), allowFreeUsageToNeighborsOf(BuildingEnum.Cottage) ) export const complete = curry((partial: string[], _state: GameState): string[] => match(partial) .with([], always([''])) .otherwise(always([])) )