# 玩法系统对齐与回归证据

记录日期：2026-10-09。当前优先级为玩法系统，其次才是界面 1:1。这里的“对齐”指浏览器执行本地缓存的 **v103 原版规则与配置**，并检验主要状态转换；不代表所有道具组合、随机事件和平台能力都已通过双端验收。

最新结果：**117个不同检查项通过，最新结果0项失败。** 核心81项、模式入口复核及扩展检查按名称合并，同名取最后一次；每次完整JSON、时间、SHA-256与被替代结果均保留，旧拾取诊断不计入验收。数量不代表所有玩法100%完成。最新系统边界见 [所有玩法验收账本](10-gameplay-parity-audit.md)。

## 实现与验证方法

战斗、维修、怪物成长与撤退、淘汰和结算都继续执行原 bundle，没有另写简化规则。源码依据见 [原包玩法契约](05-gameplay-source-contracts.md)。新增 [回归入口](http://127.0.0.1:4109/qa/) 在独立 iframe 中运行原引擎，使用内存存档，日常试玩存档不参与测试。

每项记录实际地图、模式、怪物等级/血量/伤害、控制器、角色存活、原时钟及原胜负事件。测试在正式规则入口调用后观察结果，不直接调用结算函数制造成功。主怪管理器的结束标志与整局结算不同：伥鬼阵营清除主怪后标志为真，但没有胜负事件、结算面板或全局清理；报告分别记录 `monsterEnded` 与 `settled`。完整原始结果见 [已保存结果](../../references/qa/verified.html) 和 [JSON](../../references/qa/gameplay-verified.json)。通过数量与每项结果以这些记录为准。

**自然时间与边界准备必须分开读。** 普通入场保留真实30秒倒计时，孙小美首波保留60＋25秒；撤退沿原寻路移动、抵达、回血并重新寻敌。扩展普通/森林上床沿原碰撞步行和附近交互，没有改角色坐标或零余额前置。其他伤害、经验、资源与技能时间测试明确准备边界；部分后续波次和救援期限逐拍调用原handler，不称作完整自然存活录像。

![117项玩法回归汇总](../../references/screenshots/gameplay-regression-117.jpg)

## 新增特殊系统证据

剧情5验证变卖退款和原转鬼实体；6验证代付账本；10验证高血/地狱捕获失败、低血成功、释放异步复活和10币结算；11验证库存扣除、三项候选和原选择；12验证50金币建造、1秒收益、攻击态和128上限。七怪补齐黑洞真实迁移动画、分身离场、暴食速度及各种主动技能边界。猎梦者实际按钮、三次魔盒不重复、10/15币装备购买和满包扣款已回归。

孙小美补齐圣剑2–11级逐级费用与充能、实际御剑按钮和完整胜利轨迹、4000电力捕获与5秒迁移、真实遗产收益与低血取消、真正死亡及救援期限失败。森林补齐原生成器费用拒绝、三掉落、忙保护及原拖放实体。全部原始证据在合并报告中按项展开；未穷尽锦囊12种效果、魔盒19种效果、全部蛙变种和策略组合。

另有 [源码与素材一致性证明](../../references/qa/original-parity.json)：32模块逆向移除三个已声明桥接后与原件逐字节相等，328个素材/配置内容不变。它证明原玩法实现保留完整，不能替代双端输入、平台环境和所有动态分支验收。

## 核心闭环

| 项目 | 核查行为与证据边界 |
|---|---|
| 匹配与上床 | 使用原匹配名册、准备与开局入口；原床位绑定本地角色 |
| 倒计时与战斗 | 普通模式真实倒计时、入场状态、目标/路径；原怪物攻击扣门血且不误结算 |
| 手动维修 | 五次恢复合计最大门血的 50% × 原房间倍率；重复点击冷却防重入；20 秒前后与满血上限 |
| 维修台 | 原建筑创建入口；每秒最大门血 2% × 原维修/房间倍率。由测试准备建筑和受损门，不声称购买资源全过程已覆盖 |
| 怪物成长 | 等于经验阈值不升级；严格超过后升级、经验清零，血量与伤害按原配置下标 |
| 低血撤退 | 受击跨过原阈值，沿实际路径抵达恢复点；按原时间回血至满后重新寻敌 |
| 门破与淘汰 | 门受击→门破；仅门破不结算；原怪物击破床→本地死亡→失败事件与结算 |
| 胜利 | 原怪物受击死亡→胜利事件→结算；模拟停止、循环定时器清理 |
| 领奖与重开 | 失败界面原领奖返回入口；显示金币与余额变化一致；同一游戏实例重新匹配后本地角色恢复存活 |
| 时间条件 | 原服务器时间回调与缓存可用；时间来自本机，保留原开放时段条件，不能视为真实服务器校时 |

## 首轮核心覆盖（历史81项，扩展以第10报告为准）

| 模式 | 当前回归范围 | 没有由此证明的部分 |
|---|---|---|
| 普通 | 完整核心闭环 | 高等级随机怪物、全部随机地图/装备组合 |
| 猎梦者 | 原默认地图开局、消灭住户获胜、怪物死亡失败 | 玩家技能/装备全过程、每日地图轮换的全部组合 |
| 伥鬼与天使 | 地图 1 开局、主怪死亡胜利、本地死亡保留转化选择；扣碎片后原伥鬼/天使转化；两阵营清除主怪后的不同结算行为；本地伥鬼死亡与淘汰全部幸存者的胜负 | 两阵营持续对抗、转化后的全部技能，天使死亡后的继续流程、全部装备与随机组合 |
| 剧情 | 地图 2–12 的初始化与胜负边界；地图 7 按盟友死亡触发特殊胜利 | 借款/花钱/回收/技能商店/限时目标等每张图的完整策略路径 |
| 七怪夜谈 | pol 0–6，对应实际地图 13–19，各自开局与胜负事件 | 七怪所有技能、交叉装备和连续难度提升 |
| 孙小美不能死 | 地图 24 开局、御剑中间状态→原动画完成→胜利、本地死亡失败 | 圣剑从零经济充能、多波复苏与全部技能组合；充能值为边界准备 |
| 森林有鬼 | 地图 25 开局、胜负边界；原零余额账本前置后自然运行检查 | 完整森林经济、自动入房与生成器初始化顺序的实机对照 |

原局外配置还列出“彻底疯狂”“战斗天使”“火力不足”。仅有配置名称不等于可用模式：v103 的猎梦者选图启动 `guj(index)`、伥鬼选图启动 `pus(index)` 都只在 `index === 0` 时开局。其他配置行没有相应按钮启动行为，因此没有强行新增规则让其可玩，也不计入已通过选图模式。猎梦者另有原内部字段 `ciu.qlj`，当日首局后可影响每日图；其地图 21 内部分支尚未纳入此轮选图验收。剧情 2 是原配置可用的冰雪地图，单独补测后纳入结果。

## 回归中发现并处理的问题

1. **原实例初始化顺序。** 必须等待首页和匹配组件完成，再设置模式和地图；过早设置会被首页重置。测试读取实际 `cea.yie`，避免把普通地图字段当成当前地图。
2. **伤害保护。** 怪物入场前不可受伤。早期直接攻击未得到胜利是原规则保护生效；回归现保留这一断言，并等待原入场事件后才测试击杀。
3. **森林账本与自然移动。** 首轮直接上床测试使用原rqg建立账本；扩展已改用原碰撞和附近交互步行上床，未预置零余额，全部房间自然收入保持有限数值。导航读原通行节点quv，而非根据建筑图层判断障碍。
4. **浏览器音效取消。** 原 Laya 未处理 `HTMLMediaElement.play()` 的 Promise；随后的暂停导致 `AbortError`。平台适配只接住播放取消并记录 `__mediaCancellations`，其余媒体异常仍抛出，游戏错误仍使回归失败。
5. **离线时间接口。** 原时间请求使用 Laya HttpRequest，不能由三份静态配置的请求桥接覆盖。浏览器仅对两个原时间地址回传本机时间，保留原解析、缓存、日期与时段判断。没有绕过模式解锁。

## 原版证据与尚未完成的验收

[原版失败结算无损 PNG](../../references/screenshots/native-loss-rules-20261009.png) 为 686×1306，显示本局奖励 17 蜜獾币；原版返回后余额从 216 变为 233。不是 Web 测试截图。

[240 秒原窗口录像](../../references/recordings/native-rules-replay-20261009.mov) 与 [48 帧时间导航](../../references/recordings/native-rules-replay-navigation/index.json) 保留匹配、倒计时和走廊事件。13,732 视频帧，实际约 57.18 fps。自动摇杆拖动未产生本地角色位移，录像未覆盖原版上床后的维修与通关。因此仍缺 **微信原版与 Web 相同输入、相同条件的战斗闭环对照**；现有回归不替代这项证据。

广告、支付、分享、真实排行榜、远端解锁和真实服务器奖励未接入。普通浏览器分支可能发放演示奖励，不能当作真实广告服务。七模式的开局和终局通过，也不能宣称每个模式的全部特有规则已完成回归。下一阶段应沿上述未覆盖项逐条补真实交互和自然对局证据，再做画面与动画的逐帧验收。

新增15分钟原窗口录像及30秒导航抽帧仅停留商城，没有新增原版战斗闭环证据。原摇杆自动拖动仍未产生位移；微信原版上床后的同输入对照需用户协助完成，不能用Web边界准备替代。
