动作工作流
动作工作流是 Monoceros 的核心执行单元。你可以在 workflow/action/ 目录下用 YAML 定义工作流,每个文件描述一条节点链,节点按顺序执行并共享上下文变量。
基本结构
resource-version: 1
id: combat.hit-feedback
failure-policy: continue
nodes:
- id: log-hit
type: log
message: "战斗命中反馈触发"
- id: set-damage
type: set
key: damage
value: 10
- id: run-script
type: script
script: action.combat.hit-feedback
YAML 字段说明
| 字段 | 说明 |
|---|---|
resource-version | 资源版本号,当前为 1 |
id | 工作流 ID,全局唯一,建议使用 域.名称 格式 |
failure-policy | 节点执行失败时的处理策略 |
nodes | 有序节点列表 |
每个节点包含以下基础字段:
| 字段 | 说明 |
|---|---|
id | 节点 ID,在当前工作流内唯一 |
type | 节点类型,决定执行逻辑 |
| 其他字段 | 由节点类型决定的配置参数 |
失败策略
当某个节点执行出错时,failure-policy 决定工作流的行为:
| 策略 | 行为 |
|---|---|
STOP | 立即中止整个工作流 |
CONTINUE | 忽略错误,继续执行后续节点 |
SKIP_NODE | 跳过出错的节点,继续执行下一个 |
节点执行与上下文
所有节点按定义顺序依次执行,共享同一个上下文(Context)。上下文是一个键值存储空间,节点可以通过 set 节点写入变量,后续节点可以读取这些变量。
每个节点执行后会产生一个结果,决定工作流的下一步行为:
| 结果 | 行为 |
|---|---|
Continue | 继续执行下一个节点 |
Delay | 异步等待指定时间后继续 |
Branch | 条件跳转到其他工作流 |
Break | 立即中止当前工作流 |
文件组织
工作流文件放在 workflow/action/ 目录下,支持子目录。文件名不影响工作流 ID,ID 由 YAML 中的 id 字段决定。
workflow/
action/
combat/
hit-feedback.yml
skill-chain.yml
region/
enter-dungeon.yml
所有工作流支持热重载,修改文件后执行重载命令即可生效。
完整的内建节点列表见 内建节点。