下载 App
【开发日志】《规则怪谈:造局者》6
昨天 15:30
P5 | 规则差分与 NPC的AI 补强
目标
① 规则图鉴应该「从关卡中获得」而不是全部可见,且每关应有更多差分规则;
② 独活 AI 太弱,只会逃或发呆。
7.1 规则数据驱动重构
- 新增 Sim/RuleSpec.lua:把 RuleEngine 里 18 段硬编码的规则骨架抽成配置表,每行声明 event / ruleId / fact / requires / chance / trigger / flavor / resist / discover / scenarios。
- RuleEngine.RunEvent 成为统一解释器:前置条件 → 记事实 → 发现规则 → 概率判定 → 触发后果。保留原 24 个公开函数签名作为薄封装,调用点零改动。
- 按关卡差分:RuleSpec.Get(event, scenarioId) 优先返回绑当前关卡的那条规格,没有则回退通用。
7.2 关卡专属内容
| 层 | 数量 | 说明 |
| 关卡专属规矩(GhostRules) | 34 条 | 15 关 × 2–3 条,挂到已有 trigger 上,零引擎代码 |
| 关卡专属场景规格(RuleSpec) | 4 条 | 地铁 / 洗衣店的数脚步、电台 / 殡仪馆的休整 |
| 规则独特后果(RuleEffects) | 18 条 | 恐惧倍率 / 额外伤势 / 掉道具,让每条规则各有各的疼法 |
| 关卡专属文字 | 15 套 | 医院「夜班不许出声」、老宅「过祠必拜」、地铁「黄线内别站」等 |
- 规则图鉴「未发现」态:未发现的规则只显示 ??? + 风险 + 关联区域,不剧透原文;已发现优先排序。
7.3 三个机制缺陷修复
- 同触发点只结算最重一条 → 低风险规矩成死代码(14 个触发点共 35 条通用规矩永不触发)。改为按风险加权随机(高 4 / 中 2 / 低 1,走 world.rng 可复现)。
- 7 条孤儿规矩(无鬼携带 + 无关卡绑定)全部安排归属,并加断言防漂移。
- RuleEngine 硬编码 404 节点 id,导致走廊类规则在其余 14 关根本不触发;改为按节点标签(corridor / anomaly)查节点。
7.4 人数分档行为与独活 AI
- 唯一口径 Behavior.AliveCount(死者与已撤离者都不算)→ solo / pair / normal 三档。
- 独活(solo)性格分化:胆小者崩溃线 −0.10;胆大/尽责者转 Lone(孤军奋战),恐惧系数 0.6。
- 独活主动战斗:有反制道具且胆大 ≥0.65 或职责 ≥0.70 时,会生成「压制」候选与「逼近鬼房」候选,不再无条件短路逃跑。
- 资源牵引:站在有资源的房间时 100% 翻柜(此前 38%),探索候选权重从 0.90 提到 1.15。















