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, }, };