摘要
九头蛇有一个被动能力“生齿不息”:每次真正受伤后攻击 +1(皇家九头蛇 +2),这个加成会永久保留。本实验用 10 条受控战斗历史检查它在三种情况下是否正确:被护盾(甲壳)挡住的伤害、连续多轮受伤、以及受伤后立即进入自己的回合并再生生命。结果全部符合独立预期;本批只增加测试与来源保护,没有修改生产代码。
要回答的问题
“伤害被挡住”算不算受伤?增攻能否跨回合保留?如果生命马上被再生补满,增攻会不会被一起抹掉?
方法
- 三种九头蛇分别搭配无盾、一级甲壳(一层护盾)、四级甲壳(两层护盾)。九头蛇与骷髅都是 4 只、每只 100 生命、攻防 0、每只固定伤害 20、幸运士气 0。骷髅免疫毒,避免把另一种毒血减伤混进算术;所有反击次数为 0。骷髅每轮攻击一次,共三轮,之后跳过到第 5 轮结束。
- 初始化之后只走合法操作,不注入状态、不改生命。共 151 个合法操作、30 次主动攻击;逐包核对来源、目标、伤前 / 伤后生命、实际伤害,行动后核对基础 / 有效攻击、数量、反击次数,并做 JSON 续算和完整回放。
- 游戏知识模块另做原生事件审阅,区分“真正受伤”和“伤害失败”两种回调,避免接错。
结果
| 甲壳 | 三次伤害包 | 普通 / 冥界最终增攻 | 皇家最终增攻 |
|---|---|---|---|
| 无 | 80、80、80 | +3 | +6 |
| 一级单层 | 0、80、80 | +2 | +4 |
| 四级双层 | 0、0、80 | +1 | +2 |
护盾耗尽后受伤立即恢复增攻;闲置两轮后永久增攻仍在。第 10 条历史刻意让冥界九头蛇受伤后马上轮到自己行动并再生:伤害包后生命 320,回到自己回合时 400,但攻击仍依次 +1、+2、+3。净生命差为零不代表没受伤。
聚焦检查 34 项通过(Simulator 19 + 来源 15)。Simulator 全量 11904 通过、65 失败、2 跳过、144 严格预期失败(401.66 秒);游戏知识模块 7750 通过、31 失败、7 准备错误。与上一批逐节点比较,新增坏节点 0、遗漏 0。
失败与负结果
测试初稿把“返回状态”当成“伤害包结束状态”,误把紧接着的回合再生和英雄回蓝判为异常。改为分阶段明确预期后通过,没有为此修改生产代码。原生研究中,此前认定的受伤委托偏移其实是“伤害失败”,本批已更正。
局限
本批只检查行动之后的边界,没有认证行动内部的原生反击时点。零伤、致死、复活、复制和同一操作多包仍需单独认证。这些通过项也不证明九头蛇横扫、皇家减益或反击链已修复。
结论与下一步
生齿不息在护盾、多轮和再生边界上的表现已有可复现的证据。下一步追完整的属性重算与反击读取链,再决定反击时的增攻应提前还是推迟(见实验 0316)。
Comments