60 lines
2.0 KiB
TypeScript
60 lines
2.0 KiB
TypeScript
import { AnimationState } from '../../../types';
|
|
import type { StateFunctionRuntimeSource } from '../types';
|
|
|
|
/**
|
|
* idle_observe_signs
|
|
*
|
|
* 空闲状态下的侦察动作。它把当前回合定义成“停下来观察”,
|
|
* 重点不是立刻推进,而是为后续选择生成可引用的观察结果。
|
|
*/
|
|
export const IDLE_OBSERVE_SIGNS_FUNCTION_SOURCE: StateFunctionRuntimeSource = {
|
|
definition: {
|
|
id: 'idle_observe_signs',
|
|
state: 'idle',
|
|
category: 'idle',
|
|
text: '停步观察动静',
|
|
description: '先收住脚步观察附近痕迹与风吹草动,判断前方是否有异样。',
|
|
visual: {
|
|
playerAnimation: AnimationState.IDLE,
|
|
playerMoveMeters: 0,
|
|
playerOffsetY: 0,
|
|
playerFacing: 'right',
|
|
scrollWorld: false,
|
|
},
|
|
effect: {
|
|
sceneShift: 0,
|
|
enterBattle: false,
|
|
},
|
|
},
|
|
promptDescription:
|
|
'停步观察周围动静、痕迹或征兆,文案可以自然改写,但仍要保持这是观察判断。',
|
|
documentation: {
|
|
id: 'idle_observe_signs',
|
|
domain: 'state',
|
|
title: '停步观察动静',
|
|
source: 'src/data/functionCatalog/state/idleObserveSigns.ts',
|
|
summary: '围绕侦察、判断和前情确认的空闲 function。',
|
|
detailedDescription:
|
|
'这个 function 不要求马上遇敌或推进,而是把回合用在收集线索、确认附近实体池与下一步风险上。',
|
|
trigger: '仅在 idle 状态下参与候选。',
|
|
execution:
|
|
'保持原地观察姿态,不推进 sceneShift;上层 prompt 会把这一回合视为观察请求,要求模型输出可延续的侦察结论。',
|
|
result: '适合进入未知区域前先看风向、脚印、气息或异响,减少盲走。',
|
|
state: 'idle',
|
|
category: 'idle',
|
|
active: true,
|
|
},
|
|
runtime: {
|
|
buildSuggestedActionText() {
|
|
return '停步观察附近的风吹草动';
|
|
},
|
|
buildDetailText() {
|
|
return '先确认附近是否潜伏着人影、怪物或其他值得靠近的东西。';
|
|
},
|
|
getPriority() {
|
|
return 4;
|
|
},
|
|
},
|
|
};
|
|
|