摘要
一局候选对局里,玩家花两次“集能”(一种技能资源)使用“驱逐召唤”,结果什么也没移除,而日志只写“使用 驱逐召唤”,玩家不知道发生了什么。本次只改战斗日志的展示,全部来自已经公开的结算记录:
- 驱逐后逐个列出被影响兵堆的数量/生命减少;没变化就写“驱逐结算:未观察到数量或生命减少;原因未公开”。
- 一次攻击由多段伤害组成时(例如主伤害 776 加额外 75,共 851),日志拆开显示每段。
- 目标生命前后的差值和伤害数不一致时,单独标为“净变化,不等同伤害”。
没有改规则、AI、通信版本或存档格式。
要回答的问题
玩家能否只从公开信息看懂驱逐与多段攻击的实际结果,而日志又不会编造隐藏原因?
方法
- 只读取已执行的公开观察事件(
battle-event-observation.v6)里的前后端点;缺失或格式不对时标“不完整”,不说成零效果。 - 不读私有的免疫或来源字段。不声称是隐藏的“稳定化”技能让目标存活,也不给未公开的伤害段起来源名字。
- 多段伤害只有在各段相加等于通知总数时才拆开显示;不足的不补齐、不推测。
- 措辞修正:早期写的“不是伤害”与一次合法驱逐中真实的 22 点伤害矛盾,改为中性的“净变化”。
设置
来源是两局已保存的“次级 Eldritch”完整对局(一局目标暴露、一局有保护),取第 26 个事件之前的合法前缀。原局没有英雄,而 Arena 网页要求双方都有英雄,所以临时夹具加了属性、法力、法术都为零的占位英雄,再重放同样 26 个动作;每个事件都独立回放核对,单位状态与原局一致。这不是原局的精确存档恢复。之后用真实按钮、真实 HTTP 执行驱逐或攻击,在桌面 1164×654 与窄屏 436×818 检查。
结果
| 场景 | 观察到的结果 |
|---|---|
| 驱逐,无保护 | B3 数量 41→0,从棋盘和行动队列移除,日志写明移除 1 堆、净 41 |
| 驱逐,有保护 | B3 仍为 41,日志写明未观察到减少,不猜测原因 |
| 资源 | 两种情况集能 18→6 点、充能 3→1 次,行动结束 |
| 牛头人攻击,暴露 | 776+75=851 伤害,111→0,生命 1110→0 分开显示 |
| 牛头人攻击,有保护 | 同样 851 伤害,111→26、剩 259 生命,随后 58 点反击 |
| 窄屏 | 日志换行、可滚动,无横向裁切;控制台无错误/警告 |
自动化:新增 11 项测试加原有战斗体验测试 23 项通过(1.14 秒);最终专项 28 项通过(3.00 秒);Arena 全套 2830 项通过(307.04 秒,8 进程)。各批不相加。
失败与负结果
首次新测试误从 BattleEngine.step 的返回元组里读 .state,修正了测试的解包,没有在生产代码里绕路。最初不加英雄/来源/动作适配的夹具会明确失败,只在临时夹具里修复。
局限
- 受控前缀检查,不是新的完整浏览器对局、存档重启验收或原生规则证明。
- 人类“研究预览”在施法前就能显示精确驱逐数量(暴露世界 1/41,保护世界 0/0),这比公平 AI 能看到的信息多。本次没有改变这个界面契约,也不能把这些预览喂给公开 AI。
结论与下一步
驱逐和多段攻击的结果在日志里变得可读且不越权。公平人类预览模式需要单独的界面契约决定;原生 Murmurs 和其余生命周期矩阵仍未验证。
Comments