hathora-et-labora-game
Version:
Game logic reducer for Uwe Rosenberg's Ora et Labora
14 lines (11 loc) • 520 B
text/typescript
import { lensPath, set } from 'ramda'
import { GameCommandEnum, GameState, StateReducer } from '../../types'
const frameBonusActions = lensPath(['frame', 'bonusActions'])
export const checkSoloSettlementReady: StateReducer = (state) =>
state &&
// if we start the frame with buildings, only allow building them, otherwise only allow settle (or commit)
set<GameState, GameCommandEnum[]>(
frameBonusActions,
state.buildings!.length !== 0 ? [GameCommandEnum.BUILD] : [GameCommandEnum.SETTLE],
state
)