伤害算法

录入:EvilP 作者: 翻译:
录入时间:2022-05-23 22:25:34 最后修改时间:2022-05-27 11:11:44

征服之歌的兵种伤害和英雄无敌3简直如出一辙。

  • 增加兵种伤害值属性的宝物科技之类优先于下面的计算,直接先加在基础伤害属性上;
  • 首先是随机伤害取值,先判定取值次数,兵种数量小于13则取值实际数量,大于13则取13(英雄无敌3是取10次),然后在最小伤害值和最大伤害值之间随机生成伤害值,生成(取值次数)次,所有结果相加再除以取值次数得到平均伤害值;这样做的结果是实际伤害值的随机结果会更倾向于正态分布而不是均匀分布,也就是实际伤害会更倾向平均值;
  • 第二步,得出的平均伤害值乘以部队数量得到基础总伤害值;
  • 第三步,基础总伤害值乘以0.1得出下限伤害值,乘以3得出上限伤害值;
  • 第四步,乘以攻防修正值,这里的攻防修正算法和英雄无敌一样,也就修正比例不同,攻击高于防御则每1点加1%伤害,反之则每1点减0.5%伤害;
  • 第四步,乘以其它伤害修正,包括防御方的伤害抵抗系数,高台的增伤/减伤系数,远程兵种是否致命射程的增伤,和是否移动过的减伤,其它比如战斗训练的比例伤害加成,均为直接相乘;
  • 第五步,先和第三步的最大值对比,取小的那个,再和最小值对比,取大的一个;
  • 然后四舍五入取整并确保取值至少为1;
  • 游戏源代码见页底,模拟器如下,行使者的攻击可以直接叠加到兵种攻防上一起填;

攻击方


%





防守方


%