摘要
“化身召唤”是一个英雄技能:英雄可以召唤一个化身单位作战。一份英雄属性来源报告写道“化身召唤:法强 +1、攻防各 −1”。用户质疑:这些数值是不是召唤物继承英雄属性的系数,而不是英雄本人的属性变化?
只读核查确认用户是对的。安装数据中这三项的类型是“兵种属性”(unitStat),接收者只有三种化身;原生代码静态审阅也表明它们是兵种字段。Simulator 却把它们当作英雄属性加到英雄身上。用户授权后修复:英雄卡和普通兵种不再变化,化身攻击等于英雄法强。
要回答的问题
这三项数值作用在谁身上?Simulator 的现行实现错在哪里,影响多大?
证据
- 安装数据:技能三个等级的加成类型都是兵种属性,接收者限定为三种化身,参数为“英雄法强系数 1.0、英雄攻击系数 −1.0、英雄防御系数 −1.0”,另外授予化身法术。
- 原生代码静态审阅:这些是兵种字段;兵种攻击 += 截断(英雄法强 × 法强系数 + 英雄攻击 × (1 + 攻击系数))。审阅原文称其为“兵种继承系数,不是加到英雄攻防上”。但该审阅没有覆盖化身,接收者过滤在原生代码里的路径没有追踪。
- 技能说明:化身基础攻防为 0,“每点咒力攻击 +1”。按上式,攻击 = 法强 × 1 + 英雄攻击 × 0,与说明一致。
- Simulator 对战斗魔法和流浪军队的类似字段都已按继承系数实现,只有化身召唤被当成英雄属性。这个解读是 2026 年 9 月重构时带进来的,没有找到实战或原生依据。
修复前的最小对照
| 英雄卡 攻 / 防 / 法强 | 弩手攻击 | 侍从攻击 | |
|---|---|---|---|
| 不带化身召唤 | 17 / 0 / 2 | 22 | 21 |
| 带化身召唤 | 16 / 0 / 3 | 21 | 20 |
防御基准已经是 0,所以 −1 被 0 下限遮住了。施放化身后:化身攻击 3、伤害 34;按安装公式应为攻击 2、伤害 10 + 2×8 = 26。
影响:带化身召唤时全军普通兵种攻防 −1,所有法术按法强 +1 计算,化身也偏高。恶魔之爪、恶魔之冠、心跳三件宝物的加减项在安装数据里是真正的英雄属性,不受牵连。
修复
- 不再给化身召唤加英雄属性;合同检查要求英雄增量为 0。
- 战斗输入版本从 v4 升到 v5;选秀机制不变,保存的战斗记录存的是初始状态,回放不受影响。
- 选秀界面文案改为“化身不继承英雄攻击与防御,改按英雄咒力 ×1 计入攻击”。
- 安装数据审计工具同时核对接收者。
修复后:带不带化身召唤,英雄卡都是 17 / 0 / 2,弩手 22、侍从 21;化身攻击 2、防御 0、伤害 26。按新语义更新了 6 项写着旧误读的测试,例如另一种权威子技能场景下化身伤害 46 → 32。
局限
- 真实画面未确认:审计重建的 29 局真实对战里,我方没有一局带化身召唤,没有确认页、兵种面板或化身面板的截图。
- 接收者过滤在原生代码里的执行路径没有追踪。
结论
这三项是只作用于化身的继承系数。之前的属性来源测量本身没错,错的是被测量的规则和对它的解释。
Comments