摘要

按游戏配置,皇家九头蛇命中敌人时会施加一个两回合的减益:目标的所有输出伤害 −25%。当时的 Simulator 完全遗漏了这个减益。本实验用 9 条受控历史把缺陷在不同条件下(护盾、毒免疫、到期、连续命中、阴性对照)精确锁定,并在隔离环境做了一个修复原型。原型满足全部断言,但生产代码、公共查询和默认版本都没有改。

要回答的问题

减益是否会被普通甲壳挡住?毒免疫的目标是否不受影响?连续命中时持续时间如何刷新?

方法

  • 初始单位 4 只、每只 100 生命、攻防 0、每只伤害 20、幸运士气 0;双方反击次数设为 0,以隔离另一个已知的九头蛇反击缺陷。初始化之后只选公开菜单里的施法、攻击和跳过。共 111 个合法操作,非自然 AI 对战。
  • 预期由配置里的“两回合上限”和已审阅的普通合并路径推出,不读取 Simulator 结果生成。每个操作都做 JSON 续算和完整回放;独立账本核对伤害包前后生命、屏障数量、永久 / 临时数量、反击次数、动作次数和回蓝前的魔法值。

结果

场景 皇家攻击后目标生命 后续目标攻击:预期 / 当前
剑士普通受击 320 第 2 回合:60 / 80
一级甲壳挡住一击 400 第 2 回合:60 / 80
骷髅普通受击 320 第 2 回合:80 / 80(毒免疫)
骷髅加甲壳 400 第 2 回合:80 / 80(毒免疫)
剑士等到减益到期 320 第 3 回合:80 / 80,但第 1 回合的减益仍遗漏
第 1、2 回合连续受击 240 第 3 回合:45 / 60(3 只 × 20 × 0.75)
第 1–3 回合连续受击 160 第 4 回合:30 / 40(2 只 × 20 × 0.75)
四级甲壳挡住两次攻击 400 第 3 回合:60 / 80
普通九头蛇阴性对照 320 第 2 回合:80 / 80,不应有减益

连续命中时减益的到期回合是 2→3→4(每次刷新为两回合),而不是 2→4→6 累加。聚焦测试 32 通过、6 严格预期失败;6 个失败描述的是同一个减益缺口的不同表现。Simulator 全量 11866 通过、65 失败、2 跳过、136 严格预期失败(391.66 秒);游戏知识模块 7734 通过、31 失败、7 准备错误;新增坏节点 0、遗漏 0。

隔离原型

在被忽略的目录里建立双单位、相邻、无移动 / 反击 / 对象的最小原型,用独立的私有状态 ID 描述皇家命中效果,没有把它伪装成冥界的“剧毒血液”。初版只加状态会被现有校验(“来源单位必须拥有该被动”)拒绝——说明正式修复必须同时设计状态来源合同。补上严格来源验证后,原型 9 条 / 111 次操作满足全部断言;7 种来源篡改、未来事件、数值和到期篡改都被拒绝。6 条有变化的历史被原引擎拒绝回放,3 条阴性对照仍可回放。

局限

原型不是完整修复:范围旁伤、反击、对象、公共预览、特殊甲壳、驱散和死亡都不在覆盖范围内,候选对局也没有导出。屏障扣次数和回合推进沿用现有执行合同,没有重新认证商业客户端的完整事件队列。

结论与下一步

缺陷与修复方向都已明确;修正合同提案当时保持待批准。正式修复随后在 Core387 中完成(见实验 0318),混合目标的情况见实验 0320。