37 lines
1.7 KiB
TypeScript
37 lines
1.7 KiB
TypeScript
import type { FunctionDocumentationEntry } from '../types';
|
||
|
||
/**
|
||
* battle_use_skill
|
||
*
|
||
* 后端单行为战斗模型的技能释放入口。每个技能 option 复用同一个
|
||
* functionId,具体技能必须由 runtimePayload.skillId 指定。
|
||
*/
|
||
export const BATTLE_USE_SKILL_FUNCTION: FunctionDocumentationEntry = {
|
||
id: 'battle_use_skill',
|
||
domain: 'state',
|
||
title: '释放技能',
|
||
source: 'src/data/functionCatalog/state/battleUseSkill.ts',
|
||
summary: '后端单行为战斗模型中的指定技能释放 function。',
|
||
detailedDescription:
|
||
'这个 functionId 可以对应多个技能 option 实例。前端只展示技能名和不可用原因,后端根据 runtimePayload.skillId 校验蓝量、冷却并结算本次技能效果。',
|
||
trigger: '仅在 battle 状态下由后端按角色技能列表生成,可能携带 disabled 状态。',
|
||
execution:
|
||
'前端透传 runtimePayload.skillId,Rust 后端经 story battle facade 调用 module-combat 校验技能并完成一次技能动作结算。',
|
||
result:
|
||
'更新 MP、技能冷却、敌我 HP 和下一轮战斗 options;若战斗结束,再触发脱战剧情推理。',
|
||
state: 'battle',
|
||
category: 'battle',
|
||
active: true,
|
||
runtime: {
|
||
storyMode: 'local_only',
|
||
uiMode: 'none',
|
||
executor:
|
||
'server-rs/crates/module-combat/src/lib.rs -> resolve_combat_action',
|
||
animationNote: '根据技能 option 播放一次技能演出,不在本 function 内追加多回合动作。',
|
||
storyNote:
|
||
'战斗未结束时使用本次技能结算文本;只有战斗结束才请求新剧情。',
|
||
uiNote: '每个技能是一个后端下发的独立 option,必须携带 skillId。',
|
||
compactDetailText: '释放一个指定技能',
|
||
},
|
||
};
|