Files
Genarrative/src/data/functionCatalog/state/battleEscapeBreakout.ts
高物 c49c64896a
Some checks failed
CI / verify (push) Has been cancelled
初始仓库迁移
2026-04-04 23:57:06 +08:00

56 lines
2.0 KiB
TypeScript

import { AnimationState } from '../../../types';
import type { StateFunctionSource } from '../types';
/**
* battle_escape_breakout
*
* 战斗中的脱离动作。它不是继续换血,而是明确让主角放弃当前缠斗,
* 把叙事重心切到“拉开距离、甩开追击、离开战场”。
*/
export const BATTLE_ESCAPE_BREAKOUT_FUNCTION_SOURCE: StateFunctionSource = {
definition: {
id: 'battle_escape_breakout',
state: 'battle',
category: 'escape',
text: '逃跑:转身甩开',
description: '立刻放弃缠斗,转身拉开距离,冲向下一片区域。',
visual: {
playerAnimation: AnimationState.RUN,
playerMoveMeters: -0.6,
playerOffsetY: 0,
playerFacing: 'left',
scrollWorld: true,
monsterActionTemplate: '{monster}在后方死死咬住不放',
monsterAnimation: 'idle',
monsterMoveMeters: 0,
},
effect: {
escapeDurationMs: 5000,
escapeDistance: 5,
monsterLagStart: 0.52,
monsterLagEnd: 0.34,
sceneShift: 0,
enterBattle: false,
},
},
promptDescription:
'从当前战斗中脱身、拉开距离或撤离,文案可以自然改写,但仍要保持这是逃脱而不是继续交战。',
documentation: {
id: 'battle_escape_breakout',
domain: 'state',
title: '逃跑:转身甩开',
source: 'src/data/functionCatalog/state/battleEscapeBreakout.ts',
summary: '用于脱战、逃离和切离镜头压力的战斗 function。',
detailedDescription:
'它让回合从“继续打”切换到“先活下来”,并带出逃跑镜头、距离拉开和怪物追击落后的演出逻辑。',
trigger: '仅在 battle 状态下参与候选,并会在低血时提升优先级。',
execution:
'不追求伤害,而是提供 escapeDurationMs、escapeDistance 与 monsterLag 参数,驱动逃跑流程与镜头表现。',
result: '适合生命见底、资源不够,或玩家主动决定放弃当前战斗时使用。',
state: 'battle',
category: 'escape',
active: true,
},
};