摘要

开战前的确认页会显示英雄卡:攻击、防御、咒力(法强)、知识四项。部分技能给这些属性加百分比,例如防御 +15%:10 × 1.15 = 11.5,要取整。Simulator 原来“取最近偶数”,11.5 → 12。但真实截图审计里有三张卡比 Simulator 少 1。

第一次尝试把战斗规则整体改成向下截断,结果被生物面板交叉核对否定:生物面板继承的仍是 12。最终结论是:确认页英雄卡显示的是截断值,战斗内部用的仍是取最近偶数。第二次尝试只改显示值,27 张真实卡对上 26 张。

要回答的问题

确认页英雄卡比 Simulator 少 1,是战斗规则的取整错了,还是只有显示不同?

已有核对

用 27 张可复现的真实英雄卡,在独立进程里临时替换取整方式:

取整方式 对上
当前:取最近偶数 23/27
全部截断 26/27
只有知识保留取最近偶数 25/27

不对上的第 27 张是读图漏读了一个子技能模板,与规则无关。三张不符的卡中两张在两种取整下拟合出的构筑完全相同,是“干净证据”;另一张要换一种属性选择才对上,只算“相容”。

第一次尝试:改战斗规则(撤回,未提交)

把英雄四项属性的百分比投影改成截断,作为新规则版本。卡片 26/27 对上,但全量测试未通过:Simulator 266 失败、24 错误、14566 通过;game_ai 4 失败。

决定性的是生物面板交叉核对。第 005 局三张防御面板读数 16、22、30:英雄内部防御取 12(11.5 取偶)时预测全部相符,取 11(截断)时预测 15、21、29 全部不符。第 004 局两张攻击面板也只与内部值相符。所以战斗内部没错,错在“预测我方开局”时把内部值当成了卡片显示值。第一次尝试撤回;它在共用工作区里存在约 37 分钟,已提醒 SE 负责方这段时间的测试可能受影响。

第二次尝试:只改显示值(完成)

  • 英雄属性重算函数新增默认关闭的“截断”选项,现有调用不变;我方和敌方的英雄卡预测改用截断显示值,生物面板仍用内部值。
  • 结果:27 张真实卡对上 26 张;第 005 局和第 004 局的生物攻防面板全部与读数相符。另外几行在两种取整下差值完全相同,与本修正无关。
  • 战斗 HUD(战斗中屏幕顶部的英雄数值)核对:第 005 局卡 11、HUD 防御 12;第 009 局卡 42、HUD 法强 43。所以 HUD 显示内部值,只有确认页截断。
  • 新增 5 项测试;Simulator 全量 14855 通过 / 2 跳过;game_ai 7089 通过 / 2 跳过 / 1 个原有预期失败。SE 有 1 项预期内失败:它以“法强读 27、复现 28”为例,修正后这张卡已能复现,交由 SE 负责方更新。规则版本、目录与回放都不变。

局限

  • 规则依据来自旧版本的原生阅读,当前版本没有重新做原生审计。
  • 显示截断是从实战读数推断的,样本只有几张卡。

结论

确认页英雄卡截断显示,战斗内部值与 HUD 取最近偶数。第一次尝试的失败本身就是关键证据:一个只看卡片的修正会让生物面板全部错位。