摘要

Simulator(本项目的战斗规则引擎)在规则版本 Core378 已能按顺序结算凤凰横扫:一次攻击依次命中模板上的单位与场地物件,并在两个伤害包之间刷新属性。但给 AI 使用的“公开查询”只投影两个单位之间的交换,凡涉及横扫都返回“未知”。本文是一份接入前检查,把缺口对应到具体入口,并规定新查询应表达什么、首个验收矩阵包含什么。它只是审计,没有修改执行规则、公共字段或默认 AI(当时为 AI55)。后续实现见实验 0327 及之后的 v8 序列。

要回答的问题

执行既然正确,为什么不能把私有的结算回执直接交给 AI?公平的 AI 只能使用玩家可见信息:同一个公开画面可能对应不同的隐藏技能,查询结果必须对所有这些可能保持一致,并写明条件假设。

方法

只读核对四个入口的实际代码:公开攻击序列查询、公开伤害规则说明、公共观察格式、私有候选动作评估器,以及现有资源估值,逐一写出现状与缺口。

结果:缺口表

入口 现状 需要解决
公开攻击序列 v7 检查主击、反击、路线监视;遇到未支持横扫返回未知 新版本按模板顺序列出全部受击者,不改写 v7 含义
公开伤害规则说明 已为每个可见单位算出条件单包数值,但不决定谁被范围命中 复用逐目标结果按模板入选,包间变化后用更新局面重算
公共观察 v7 提供可见单位当前数值、己方资源 敌方隐藏加成和英雄来源不能因范围可见而公开
私有候选 v5 只计主目标损血减行动者损血 每个敌我受击者分别估值,物件与友军损血明确处理

新查询应表达什么

  • 不把全部损血塞进一个标量:每个条件分支有序列出目标,区分单位生命与物件耐久,以及己方/敌方/物件;物件耐久不能加进生命总量。
  • 每一包都读取更新后的局面;死亡会改变后续兵力、反击和追加是否可达。
  • “用平均伤害代入”不等于随机期望:基础伤害抽样偏向中部,还有取整、生命封顶、死亡取消,因此报告必须标明不是精确预览;未知合计保持空值,不能以 0 代替。
  • 隐藏来源、屏障、反射、复生等逐个定支持边界,不能在宽松分支中默认没有。

首个离线验收矩阵(计划)

三种凤凰、六方向、两种行奇偶、单位/物件主目标、主目标在模板首/中/尾、友军目标、物件阻挡与过期、第一包致死、屏障全挡、先制/普通反击、追加重新入选、路线监视与陷阱取消。公共验收还包括:隐藏世界不同但观察相同时结果相等、JSON 往返、版本拒绝、不调用引擎单步执行、旧 v1–v7 兼容。

局限与负结果

本审计不新增公开常量、字段或策略默认;精确接口须另按合同治理流程先记录决定。审计时“未接入”是当时状态,不能当作当前状态。

结论与下一步

“执行已有”和“公开预估仍缺”已对应到具体入口。下一步先定新版数据结构与兼容矩阵,再连接范围查询、候选评估和 Arena 展示;私有波次计算的第一步见实验 0327。