Files
Genarrative/src/data/functionCatalog/state/idleRestFocus.ts
2026-04-28 19:36:39 +08:00

67 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
},
},
};