33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import type { FunctionDocumentationEntry } from '../types';
|
||
|
||
/**
|
||
* npc_fight
|
||
*
|
||
* 与眼前 NPC 直接开战的强制冲突 function。
|
||
*/
|
||
export const NPC_FIGHT_FUNCTION: FunctionDocumentationEntry = {
|
||
id: 'npc_fight',
|
||
domain: 'npc',
|
||
title: '与对方战斗',
|
||
source: 'src/data/functionCatalog/npc/npcFight.ts',
|
||
summary: '把当前 NPC 交互直接导向敌对战斗。',
|
||
detailedDescription:
|
||
'无论对方原本是中立还是敌对,选择这个 function 都表示玩家主动接受或制造正面冲突,后续会切到 NPC 战斗模式。',
|
||
trigger: '在敌对 NPC 遭遇或普通 NPC 交互菜单里都可能出现。',
|
||
execution:
|
||
'点击后会切换 currentBattleNpcId / currentNpcBattleMode,并进入本地战斗结算链路。',
|
||
result:
|
||
'交互界面转为战斗,战后会按 fight_victory 等结果处理掉落、好感和任务推进。',
|
||
active: true,
|
||
runtime: {
|
||
storyMode: 'special_sequence',
|
||
uiMode: 'none',
|
||
executor:
|
||
'src/hooks/rpg-runtime-story/useRpgRuntimeNpcInteraction.ts -> handleNpcInteraction',
|
||
animationNote: '切到 NPC 战斗模式后,由战斗播放链路驱动后续动画。',
|
||
storyNote: '不会先弹窗,直接把当前 encounter 切成战斗态并进入后续结算。',
|
||
uiNote: '不弹 modal,直接进入战斗。',
|
||
compactDetailText: '战斗决胜负',
|
||
},
|
||
};
|