11 KiB
11 KiB
Test_Huoshan Yarn 完整流程图(Debug 用)
基于
Test_Huoshan.yarnproject及所有.yarn文件生成
0. Yarn Graph 布局说明
节点已按逻辑分组,position 与 tags 便于在 Yarn Editor 中浏览:
| 区域 | X 范围 | 内容 |
|---|---|---|
| 核心枢纽 | 300 | Start → VarsInit → Center(竖直) |
| Stage1 | 100 | 诊室开场(左列) |
| Stage2 主流程 | 150-450 | 检查表达→滤波器→情绪(中) |
| Stage2 分支 | 50-650 | 检查记忆/逻辑/视觉(插线入口上方) |
| 插线桥接 | 50-650, y=600 | Emo/Speak/Logic/Color/Memory/EyePlugIn |
| Stage3 销售 | 100-350 | 步进→转动完成→安装日志→旋钮(左中) |
| 销售桥接 | 550 | 销售模块转动完成、处理器单次调节失败 |
| Stage4-8 | 500 | 各 Stage 入口与结束(右列竖直) |
| 波形工具 | 700 | 波形_* 节点(最右) |
colorID 含义: 1=入口, 2=Stage, 3=主流程/Expression, 4=变量, 5=销售, 6=波形, 7=桥接, 8=通用
1. 主流程总览
flowchart TB
subgraph entry ["入口"]
Start --> VarsInit
VarsInit --> Center
end
subgraph center ["Center 调度 (按 $gameStage)"]
Center -->|1| Stage1
Center -->|2| Stage2
Center -->|3| Stage3
Center -->|4| Stage4
Center -->|5| Stage5
Center -->|6| Stage6
Center -->|7| Stage7
Center -->|8| Stage8
Center -->|100| 测试
Center -->|999| NextYarn
end
subgraph stage_flow ["Stage 流转"]
Stage1 --> S1_end["gameStage=2"]
Stage2 --> S2_end["gameStage=3"]
Stage3 --> S3_end["gameStage=4"]
Stage4 --> S4_end["gameStage=5"]
Stage5 --> S5_end["gameStage=6"]
Stage6 --> S6_end["gameStage=7"]
Stage7 --> S7_end["gameStage=8"]
Stage8 --> S8_end["gameStage=999"]
S1_end --> Center
S2_end --> Center
S3_end --> Center
S4_end --> Center
S5_end --> Center
S6_end --> Center
S7_end --> Center
S8_end --> Center
end
2. 变量初始化 (VarsInit)
| 变量 | 说明 |
|---|---|
$gameStage |
当前流程阶段 (1-8, 100=测试, 999=结束) |
$TaskToDo |
待完成任务数 |
$emoChecked / $memoryChecked / $logicChecked / $eyeChecked / $speakerChecked / $colorChecked / $expressionChecked |
各模块首次检查标记 |
$emoDeepChecked / $expressionSentenceGet / $hasTimestamp |
深入检查标记 |
$currentSocket / $PlugCount / $PlugAll |
插线相关 |
$salesTurnIndex |
销售模块转动轮次 (1-based) |
$knobFailCount |
旋钮调节失败次数 |
3. Stage 1 - 诊室开场
flowchart LR
Stage1 --> 开头对话
开头对话 -->|"set $gameStage=2"| Center
- 内容:火山说笑话、发热 → 去诊室
4. Stage 2 - 后脑检查(插线)
flowchart TB
Stage2["Stage2 入口"]
Stage2 --> Task["Task: 检查表达模块"]
Task --> 检查表达
subgraph 表达流程
检查表达 -->|"gameStage==2"| 表达完成["完成Task\nModuleHightLight Speak→color\nTask: 检查滤波器"]
表达完成 --> 检查销售模块
end
检查销售模块 -->|"gameStage==2"| 滤波器完成["波形分析\n发现锯齿波\nTask: 检查情绪模块"]
滤波器完成 --> 检查情绪
subgraph 情绪与波形
检查情绪 --> 条件{"speakerChecked &&\ncolorChecked"}
条件 -->|是| 查询情绪波形["对比预测波形与真实情绪\n发现对不上"]
条件 -->|否| 结束
查询情绪波形 --> 结束Stage2["结束Stage2\ngameStage=3"]
end
检查表达 -.->|其他插线| 检查记忆
检查表达 -.->|其他插线| 检查逻辑
检查表达 -.->|其他插线| 检查视觉
检查表达 -.->|其他插线| 检查情绪
Stage2 插线入口(EventNode):
| 插线节点 | jump 目标 |
|---|---|
| EmoPlugIn | 检查情绪 |
| SpeakPlugIn | 检查表达 |
| LogicPlugIn | 检查逻辑 |
| SalePlugIn | 检查销售模块 |
| MemoryPlugIn | 检查记忆 |
| EyePlugIn | 检查视觉 |
关键顺序(gameStage==2): 表达 → 滤波器 → 情绪(情绪需 speaker+color 都检查过才会对比波形 → 结束Stage2)
5. Stage 3 - 滤波器深入(步进 + 销售模块)
flowchart TB
Stage3["Stage3 入口\nTask: 检查滤波器处理链路"]
Stage3 --> 步进查看模式
subgraph 步进流程["步进流程(Yarn 仅显示情绪输入,其余由转动监听驱动)"]
步进查看模式 --> 步进_情绪输入["步进_情绪输入\n显示原始情绪波形\n转动发条来检测吧"]
步进_情绪输入 -->|"等待 SalesManager\n转动完成事件"| 销售模块转动完成
end
subgraph EventNode_销售["销售模块转动完成(EventNode 仅桥接,分发到 Stage3)"]
销售模块转动完成["销售模块转动完成"]
销售模块转动完成 -->|salesTurnIndex==1| 语义合成["销售转动_语义合成"]
销售模块转动完成 -->|salesTurnIndex==2| 语言审查["销售转动_语言审查"]
销售模块转动完成 -->|salesTurnIndex==3| 异常检测["销售转动_异常检测"]
end
subgraph 安装日志与旋钮["调取安装日志 → 解锁旋钮 → 监听旋钮"]
异常检测 --> 查询异常进程["查询异常进程\n情绪修改器组件"]
查询异常进程 --> 查看安装日志["查看安装日志\n3年无复查"]
查看安装日志 -->|"unlock_knob\n节点结束,等待旋钮"| 等待旋钮["KnobController 监听"]
等待旋钮 -->|"用户转动超阈值"| 处理器单次调节失败
end
subgraph EventNode_旋钮["旋钮失败时 KnobController 跳入(EventNode 仅桥接)"]
处理器单次调节失败["处理器单次调节失败\n<<jump 旋钮调节失败>>"]
处理器单次调节失败 --> 旋钮调节失败
end
subgraph 旋钮调节失败_Stage3["旋钮调节失败 (Stage3)"]
旋钮调节失败["旋钮调节失败"]
旋钮调节失败 -->|knobFailCount==1| 重试["再试一次\nreset_knob"]
旋钮调节失败 -->|knobFailCount>=2| 最终失败["lock_knob + 叙事\njump 结束Stage3"]
end
Stage3 关键流程:
- 步进_情绪输入 结束 → 对话暂停,等待玩家转动发条
- 转1:销售模块转动完成 → 语义合成完成
- 转2:销售模块转动完成 → 语言审查通过
- 转3:销售模块转动完成 → 检测异常 → 进入处理器 → lock_knob → 查询异常进程 → 查看安装日志 → unlock_knob → 等待旋钮
- 旋钮失败 → 处理器单次调节失败(1次重试)→ 处理器功率调节失败 → 结束Stage3
6. Stage 4 - 表达模块 RAM
flowchart TB
Stage4["Stage4 入口\nTask: 检查表达模块"]
Stage4 --> 检查表达
检查表达 -->|"gameStage==4"| RAM发现["发现未释放log\nRAM溢出"]
RAM发现 --> 结束Stage4["结束Stage4\ngameStage=5"]
7. Stage 5 - 诊室对话
flowchart TB
Stage5["Stage5 入口"]
Stage5 --> 诊室对话["诊室对话\n火山承认+达成共识"]
诊室对话 --> 结束Stage5["结束Stage5\ngameStage=6"]
8. Stage 6 - 释放 RAM
flowchart TB
Stage6["Stage6 入口\nTask: 释放表达模块RAM"]
Stage6 --> 检查表达
检查表达 -->|"gameStage==6"| 释放log["释放log\n自动释放 log1/2/3"]
释放log --> 手动释放["遇到被干扰log\n进入手动释放"]
手动释放 --> 手动释放log["手动释放log\nswitch Expression"]
手动释放log --> LOG1["LOG1: 哈哈|嘿嘿|呵呵 → 我很害怕"]
LOG1 --> LOG1梳理完成
LOG1梳理完成 --> LOG2["LOG2: ... → 她都是为了我"]
LOG2 --> LOG2梳理完成
LOG2梳理完成 --> LOG3["LOG3: ... → 我不想再继续逃了"]
LOG3 --> LOG疏通全部完成
LOG疏通全部完成 --> 结束Stage6["结束Stage6\ngameStage=7"]
9. Stage 7 - 最终检查
flowchart TB
Stage7["Stage7 入口\nTaskToDo=2"]
Stage7 --> Task1["Task: 检查表达模块"]
Stage7 --> Task2["Task: 检查滤波器"]
检查表达 -->|"gameStage==7"| 表达OK["完成Task\nTaskToDo--"]
检查销售模块 -->|"gameStage==7"| 滤波器OK["完成Task\nTaskToDo--"]
表达OK --> 判断1{"TaskToDo==0?"}
滤波器OK --> 判断1
判断1 -->|是| 结束Stage7["结束Stage7\ngameStage=8"]
判断1 -->|否| 继续["继续等待另一项完成"]
10. Stage 8 - 结束对话
flowchart TB
Stage8["Stage8 入口"]
Stage8 --> 结束对话["结束对话\n火山说出真话"]
结束对话 -->|"gameStage=999"| Center
11. EventNode 与波形节点
flowchart TB
subgraph 插线入口
EmoPlugIn
SpeakPlugIn
LogicPlugIn
SalePlugIn
MemoryPlugIn
EyePlugIn
end
subgraph 销售相关
销售模块转动完成
处理器单次调节失败
处理器功率调节失败
end
subgraph 波形
波形_显示并连接
波形_显示情绪
波形_显示滤波器输出
波形_隐藏
end
12. Debug 检查清单
| 现象 | 可能原因 | 检查点 |
|---|---|---|
| 流程卡住 | $gameStage 未正确更新 |
Center 各 Stage 分支 |
| Stage2 不推进 | 表达/滤波器/情绪未按顺序完成 | 检查表达→滤波器→情绪,以及 speakerChecked+colorChecked |
| Stage3 步进不走 | 未从滤波器进入步进;或 SalesManager 未触发转动完成 | 检查销售模块 gameStage==3 的「进入步进查看模式」;检查 totalTurns≥3、crankCompleteNode |
| 销售模块无反馈 | SalesManager/KnobController 未跳转 | EventNode: 销售模块转动完成、处理器单次调节失败 |
| Stage4 无法进 | 需从 Stage3 结束 或 处理器功率调节失败 | 结束Stage3 与 处理器功率调节失败 都 <<jump 结束Stage3>> |
| Stage6 手动释放卡住 | Expression 模块/start_expression | start_expression 完成节点 |
| Stage7 TaskToDo 不清零 | 表达/滤波器 有一项未完成 | 两项都需 complete_task 且 TaskToDo-- |
| 测试模式 | gameStage=100 | 测试 节点直接进入 Sales+EmotionWave |
13. 文件与节点索引
| 文件 | 节点 |
|---|---|
| Center.yarn | Start, VarsInit, Center, 测试 |
| EventNode.yarn | EmoPlugIn, SpeakPlugIn, LogicPlugIn, SalePlugIn, MemoryPlugIn, EyePlugIn, 销售模块转动完成, 处理器单次调节失败(桥接), 波形_* |
| Stage1.yarn | Stage1, 开头对话 |
| Stage2.yarn | Stage2, 检查表达, 检查销售模块, 检查情绪, 检查记忆, 检查逻辑, 检查视觉, 结束Stage2 |
| Stage3.yarn | Stage3, 步进查看模式, 步进_情绪输入, 销售转动_语义合成/语言审查/异常检测, 查询异常进程, 查看安装日志, 旋钮调节失败, 结束Stage3 |
| Stage4.yarn | Stage4, 结束Stage4 |
| Stage5.yarn | Stage5, 结束Stage5 |
| Stage6.yarn | Stage6, 手动释放log, LOG1/2/3梳理完成, LOG疏通全部完成, 结束Stage6 |
| Stage7.yarn | Stage7, 结束Stage7 |
| Stage8.yarn | Stage8, 结束对话 |