🌳
pt0/gamesapp/serverF/telgame/actionUtilsF.mjs
1import * as _ from 'lodash-es'
7export const getIsAssignedStack = () => {
8 const {existingGame, assignedStackName, sessId} = getReqGameActionCtx()
10 const expectedAssignedStackName = _.get(existingGame, ['playerStates', sessId, 'assignedStackName'])
11 const isCorrectStack = expectedAssignedStackName == assignedStackName
12 return {isCorrectStack, expectedAssignedStackName, assignedStackName}
15export const guardIsAssignedStack = () => {
16 if (isReplayGameCtx.getStore()) return true
17 const {existingGame, sessId} = getReqGameActionCtx()
19 const {expectedAssignedStackName, assignedStackName, isCorrectStack} = getIsAssignedStack()
20 if (!isCorrectStack) {
21 const submittingPlayerName = existingGame.playerStates[sessId]?.publicState?.playerAlias
22 silPubErr('Your task has changed — please try again')
23 }
24 return isCorrectStack
27export const getPlayerStateAssStack = () => {
28 const {assignedStackName, sessId, existingGame} = getReqGameActionCtx()
30 const playerState = _.get(existingGame, ['playerStates', sessId])
31 const stack = _.get(existingGame, ['hiddenState', 'paperStacks', assignedStackName])
32 if (!playerState) throPtErr('!playerState', {assignedStackName, sessId})
33 if (!stack) throPtErr('!stack', {assignedStackName, sessId})
34 const {playerAlias} = playerState.publicState
36 return {playerState, stack, playerAlias}