|
一、研究背景
帝国中兵种相克永远是帝国最吸引人的地方之一,而兵种相克的参数一直是帝国中未解之谜,吸引了众多人展开讨论。前人的研究中,其研究框架基本上是“附加攻击型”,即大多采用“某兵种对某兵种具有多少点的附加攻击”,而对兵种的界定标准混杂,有时会产生混乱或错误。本篇研究的创新之处在于,采用全体的框架体系描述帝国中伤害的实现机制,把以前所谓近身攻击、远程攻击、近身防御、远程防御、附加伤害、附加防御,甚至有些文章使用到“反附加攻击”等一类术语统一起来。帝国的内部实现机制表明,所有的“附加伤害”实现机制与基础伤害并无二致,统一起来并找出公式是完全可行的。
二、假设与约定
本文资料来源于AoFE(失落的帝国)2.1版的数据文件。因为AoFE对AoC1.0C版做了若干修正,所以本文部分数据不适用于AoC1.0C版。使用GeniEd v0.2和Advanced Genie Editor v1.6程序获取数据。
本文不考虑以下问题对兵种攻击/防御的影响:
1.科技(某些科技会使兵种改变,如所有精锐升级科技,当作两种不同兵种看待);
2.时代(例如讨论精锐近卫军,虽然它帝王时代才会出现,但讨论时我们不认为它获得了封建时代和城堡时代的兵工厂科技加成,仍只讨论兵种本身的裸参数);
3.民族特色与加成;
4.地形地势影响;
5.某些特殊情形不在本文范畴内讨论,如诸葛弩连发(本文只讨论第一发)、弩炮穿刺攻击(本文只讨论受全伤害的第一个目标)、践踏伤害、投石车递减范围伤害。
概括来说,本文讨论的是在同一地势下,未受任何科技、时代或民族加成的单位攻击时伤害的判定机制。至于其他特殊攻击情形,我会进一步研究,结论成熟后再行发布。目前可以暂时粗略指出,兵工厂的科技升级指的是升级【3.基础远程攻击】【4.基础近身攻击】类型的攻击/防御属性,至于其他科技,各有不同作用,不能一概而论,不属于本文内容。
三、模型构建
帝国所有单位的攻击/防御属性可以分为24种类型,它们分别是:
1.步兵类;
2.龟船类;
3.基础远程攻击;
4.基础近身攻击;
5.战象类;
6.骑兵类;
7.建筑类;
8.防御建筑类;
9.有害生物类;
10.弓箭兵类;
11.船和骆驼类;
12.冲车类;
13.树类;
14.特色单位类;
15.攻城武器类;
16.标准建筑类;
17.城墙类;
18.火药类;
19.野猪类;
20.僧侣类;
21.城堡类;
22.枪兵类;
23.骑射手类;
24.雄鹰战士类。
需要注意的是,该分类是对兵种的攻击/防御所作的分类,与兵种本身并无任何关系。从下文的讨论可以得知,兵种本身的分类可以看作与其防御属性分类相同。
每个兵种具有0个至多个攻击属性,具有0个至多个防御属性。每项属性由类别和值构成。设某项攻击属性值为A,某项防御属性值为D,则A和D可以看作兵种及属性类别的函数,即A=A(兵种,i),D=D(兵种,i),其中i=1,2,…,24。以下的讨论中,我们举戟兵单挑甲胄骑兵为例,这场战斗能很好地说明问题。从附表的【兵营单位】及【城堡单位】栏,可以找到戟兵和甲胄骑兵的攻防参数如下:
戟兵 HP:60
====攻击数据====
雄鹰战士类 1
标准建筑类 1
战象类 28
基础近身攻击 6
骑兵类 32
船和骆驼类 17
====防御数据====
枪兵类 0
步兵类 0
基础近身防御 0
基础远程防御 0
甲胄骑兵 HP:110
====攻击数据====
步兵类 9
基础近身攻击 9
====防御数据====
基础近身防御 2
骑兵类 12
基础远程防御 1
特色单位类 0
根据模型,我们可以写出:
A(戟兵,4)=6
A(戟兵,5)=28
A(戟兵,6)=32
A(戟兵,11)=17
A(戟兵,16)=1
A(戟兵,24)=1
D(戟兵,1)=0
D(戟兵,3)=0
D(戟兵,4)=0
D(戟兵,22)=0
A(甲胄骑兵,1)=9
A(甲胄骑兵,4)=9
D(甲胄骑兵,3)=1
D(甲胄骑兵,4)=2
D(甲胄骑兵,6)=12
D(甲胄骑兵,14)=0
需要注意的是,某项数值为0和某项数值没有定义有着本质区别。比如,甲胄骑兵的步兵类防御数值未定义,而不是0。即D(甲胄骑兵,1)无意义,而非D(甲胄骑兵,1)=0。
下面,我们便可以得出某个单位(进攻者)对另外一个单位(防御者)单次攻击造成的伤害的公式:
进攻者对防御者的单次伤害=Σ(i=1->24)[A(进攻者,i)-D(防御者,i)]
注1:其中每一个求和项最小值为0,不能为负数。
注2:如果最终所得总和为0,那么伤害为1。
注3:有些单位的防御数据前带有(本单位会受到所有类型的攻击伤害)标志,表明该单位会受到攻击者所有攻击类型值加和的伤害。例如用重型冲车打灰狼柯鲁,伤害为200+4+65-0=269。【感谢 Sd.无心插柳 提醒我这一点】
利用以上公式,我们可以计算出,戟兵对甲胄骑兵单次伤害为
[A(戟兵,4)-D(甲胄骑兵,4)=4]+[A(戟兵,6)-D(甲胄骑兵,6)=20]=24
同样可以计算出,甲胄骑兵对戟兵单次伤害为
[A(甲胄骑兵,1)-D(戟兵,1)=9]+[A(甲胄骑兵,4)-D(戟兵,4)=9]=18
举一个极端的例子特别说明一下,【清真寺】和【ID:566】这两个单位无任何防御参数,这样所有类型的攻击均与其防御类型无法对应,公式求出的和为0,所以,任何单位对于这两个单位的单次伤害都是1。
以下简要点出几处帝国中比较有趣的设定,有兴趣的同学可以自行尝试一下。
1.帝国把船和骆驼的防御当作一种类型处理,即第11类船和骆驼类,所以帝王骆驼远防到了5还是那么怕箭塔,叉叉打船永远给力,预热射击科技对骆驼也有可观效果。
2.英雄破坏者也具有船和骆驼类的防御属性,所以他们很怕箭塔。
3.炮舰对步兵类、骑兵类、弓箭兵类、攻城武器类、建筑类均有攻击参数,所以显示的攻击力数值低估了其能力。
4.龟甲船并没有特色单位类防御属性,所以日本武士不会对其造成加成伤害。
5.村民对建筑类、防御建筑类均有攻击参数,所以是前期拆塔不错的选择。
6.冲车的近身防御是-3,但只能显示为0。
7.展开的投石机具有冲车类的防御属性。
8.奴隶骑兵具有的防御属性种类实在太多了,所以怕掷矛,怕箭塔,怕叉叉贴身,不过一般被人忽略的是,奴隶骑兵的骑兵类防御数值其实很高,叉叉对奴隶骑兵的伤害主要是通过骆驼类属性体现出来的。
9.苏丹亲兵没有对步兵类攻击属性。
10.火炮塔攻击属性是远程攻击,所以有了很多人惊奇或抱怨的冲车投石机推炮塔事件。
11.城堡不具有防御建筑类防御属性,具有独有的城堡类防御属性。
12.神之弓和坏邻居展开后不具有攻城武器类防御属性。
13.两个步行的英雄:斯基台人、圣女贞德都有骑兵类防御属性。
14.两个骑马的匈奴王都具有步兵类防御属性,阿提拉具有对野猪类的攻击属性。
15.李舜臣将军不具有龟船类、特色单位类防御属性。
16.野猪具有对步兵类和骑兵类的攻击属性。
17.测试单位攻城塔具有很多项负值防御属性。
|
|