import { AnimationState } from '../../../types'; import type { StateFunctionRuntimeSource } from '../types'; /** * idle_rest_focus * * 空闲状态下的原地恢复动作。它不会推进遭遇,而是给玩家一个 * 在非战斗场景里回收少量血蓝的缓冲回合。 */ export const IDLE_REST_FOCUS_FUNCTION_SOURCE: StateFunctionRuntimeSource = { definition: { id: 'idle_rest_focus', state: 'idle', category: 'recovery', text: '原地调息恢复', description: '暂时停步整理呼吸,恢复少量生命与灵力,继续保持空闲状态。', visual: { playerAnimation: AnimationState.IDLE, playerMoveMeters: 0, playerOffsetY: 0, playerFacing: 'right', scrollWorld: false, }, effect: { healAmount: 10, manaRestore: 15, sceneShift: 0, enterBattle: false, }, }, promptDescription: '原地调息、休整或恢复状态,文案可以自然改写,但仍要保持这是恢复。', documentation: { id: 'idle_rest_focus', domain: 'state', title: '原地调息恢复', source: 'src/data/functionCatalog/state/idleRestFocus.ts', summary: '空闲阶段用于回血回蓝的恢复 function。', detailedDescription: '它承担非战斗状态下的短暂停步与内息整理,让玩家不推进主线遭遇,也能通过一回合修整状态。', trigger: '仅在 idle 状态下参与候选,并会在生命或灵力偏低时提升优先级。', execution: '不推动场景前进,effect 直接提供 healAmount 与 manaRestore,确保结果稳定由本地规则控制。', result: '适合战后休整、资源吃紧,或玩家想稳一下再继续探路时使用。', state: 'idle', category: 'recovery', active: true, }, runtime: { buildSuggestedActionText({ metrics }) { if (metrics.playerHpRatio <= 0.35) { return '原地打坐恢复气血'; } if (metrics.playerManaRatio <= 0.35) { return '盘坐调息恢复灵力'; } return '原地调息整理状态'; }, getPriority({ metrics }) { return metrics.playerHpRatio <= 0.35 || metrics.playerManaRatio <= 0.35 ? 8 : 2; }, }, };