Files
aibis-dream/Docs/HuoShan/Test_Huoshan_flowchart.md
2026-04-14 16:11:10 +08:00

11 KiB
Raw Permalink Blame History

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. 转1:销售模块转动完成 → 语义合成完成
  3. 转2:销售模块转动完成 → 语言审查通过
  4. 转3:销售模块转动完成 → 检测异常 → 进入处理器 → lock_knob → 查询异常进程 → 查看安装日志 → unlock_knob → 等待旋钮
  5. 旋钮失败 → 处理器单次调节失败(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_taskTaskToDo--
测试模式 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, 结束对话