🌳
pt0/gamesapp/serverF/telgame/aiDrawF.mjs
9export const aiDraw = async () => {
10 const {existingGame, assignedStackName, descriptionText} = getReqGameActionCtx()
11 const isCorrect = getIsAssignedStack().isCorrectStack
12 if (!isCorrect) { betLog('aiDraw:!correct', {assignedStackName}); return }
14 if (existingGame.settings && !existingGame.settings.aiDrawEnabled) return
15 if (!existingGame.settings?.aiDrawingAfterFirstHumanDescript) return
16 if (isTestGame({existingGame}) && !aiDrawMockCtx.getStore()?.useMock) return
18 const {paperStacks, playerStatesA} = getGamePlayerStatesPaperStacks({existingGame})
19 const stack = paperStacks[assignedStackName]
20 const rLen = stack.responses.length
22 if (rLen !== 2) { betLog('aiDraw:len', {assignedStackName, rLen}); return }
23 if (!respHasDrawing(stack.responses[1])) { betLog('aiDraw:!drawing', {assignedStackName}); return }
25 const playerCount = playerStatesA.length
26 if (playerCount % 2 === 1) { betLog('aiDraw:odd', {playerCount}); return }
28 if (!descriptionText) { betLog('aiDraw:!desc', {assignedStackName}); return }
30 betLog('aiDraw:go', {assignedStackName, playerCount, descriptionText: descriptionText.slice(0, 40)})
31 const result = await aiDrawDescription({descriptionText})
32 betLog('aiDraw:result', {assignedStackName, ok: !!result?.ipfsCid})
33 return result