招魂术算法
招魂术可以将阵亡敌军驱役为骷髅兵,所有被击杀的敌方生物都计入在内,包括被牺牲的,镜像的,召唤的,甚至是战争机器。
机制
- 如果战后队伍满 7 队,且只有骷髅战士没骷髅兵,则会招得骷髅战士。
- 有宝物亡灵护身符、吸血鬼披风、死神靴分别增加 5% / 10% / 15% 的驱役比例。
- 三件宝物可以组合成鬼王斗蓬,合成此宝后,招魂的生物不再仅是骷髅,而是根据招魂术等级变为行尸、幽灵或尸巫。计算规则不变,但需用新生物的生命值进行生命值计算,因此实际数量会减少。
- 如果部队的 7 个格子已满,且其中已有招魂生物的升级形态(如骷髅勇士),则招魂出的会是升级兵种,但数量会变为正常数量的 2/3(向上取整)。这与生命值无关,是直接的数量惩罚。
- 在有鬼王斗蓬的情况下,无招魂术的英雄也能按 30% 招魂出骷髅兵。
算法
- 基础计算:招魂术的效果百分比由技能等级、英雄特长、建筑和宝物共同叠加,上限为100%。
- 分队计算:战场上的每支敌方部队都会单独计算可招魂的数量,最后将各队结果相加。
- 双重限制与生命值效率:每支队伍的招魂数量受以下两种算法约束,并取其中数值较小的一个作为结果:
- 按数量计算:招魂数量 = 该部队死亡数量 × 招魂效果百分比。计算结果向下取整。
- 按生命值计算:招魂数量 = (该部队总生命值 × 招魂效果百分比) ÷ 骷髅兵生命值(6点)。计算结果向下取整。
- 对于生命值低于6的生物(如农民HP=1),会有一个效率惩罚,即上述公式中的生命值效率修正。
具体计算示例
假设英雄拥有高级招魂术(基础30%),无其他加成。
对战高生命值部队:消灭一队100个十字军(HP=35)。
按数量计算:100 × 30% = 30个
按生命值计算:(100 × 35 × 30%) ÷ 6 = 1050 ÷ 6 = 175个
最终招魂30个骷髅兵(取较小值)。
如果这100个十字军分为三队(34, 33, 33):
第一队:34 × 30% = 10.2→ 10个
第二队:33 × 30% = 9.9→ 9个
第三队:33 × 30% = 9.9→ 9个
最终招魂 10 + 9 + 9 = 28个骷髅兵。可见分队导致收益降低。
对战低生命值部队:消灭100个农民(HP=1)。
按数量计算:100 × 30% = 30个
按生命值计算:(100 × 1 × 30%) ÷ 6 = 30 ÷ 6 = 5个
最终仅招魂5个骷髅兵(取较小值)。