伤害
概述
在Factorio,实体有生命,可以死亡/被破坏,有抗性。伤害被定义为通过使用攻击来降低实体的生命的概念,例如用枪对它射击,或者食人虫咬它。一个实体的抗性将确切地定义实体将从任意攻击中减免多少伤害。
玩家的的最大生命值是250(没有能量盾)。其他实体的生命值被列在它们各自的条目中。
成就
伤害的概念直接与下列成就有关:
你确定你有驾照? 撞倒树木一百棵(100)。 |
放火烧山,牢底坐穿! 烧毁树木一万棵(10k)。 |
摧枯拉朽之势 撞毁虫巢十个(10)。 |
金钟罩铁布衫 单次受到500点以上伤害并存活下来。 |
迷之归西 被行进中的机车撞死。 |
伤害类型
伤害类型 | 用于 |
---|---|
物理伤害 | 手枪、冲锋枪子弹(标准弹匣/穿甲弹匣/贫铀弹匣),霰弹枪 (标准霰弹/穿甲霰弹),食人虫,斧头 (铁斧镐/钢斧镐),防御无人机 |
碰撞伤害 | 碰撞(内燃机车/汽车的) |
火焰伤害 | 火焰喷射器 |
腐蚀伤害 | 沙虫,喷吐虫 |
毒性伤害 | 剧毒胶囊 |
爆炸伤害 | 标准火箭弹,爆炸火箭弹,标准手雷],集束手雷 |
激光伤害 | 激光炮塔, 掩护机器人/进攻机器人, 个人激光防御模块 |
穿透力
穿透力存在于坦克弹药和穿甲霰弹。它决定了在不能够继续前进之前,发射物能对敌人HP敌人造成多少伤害。为了穿透敌人,敌人必须被发射物杀死,杀死的伤害必须小于当前的穿透力。[1] 所处理的伤害也降低穿透力。例如,用一个有300穿透力的炮弹攻击一个有75生命值的中型食人虫,意味着炮弹将穿透4个中型食人虫,杀死它们,并且仍能摧毁/伤害又一个目标。
抗性
抗性有两方面:
减少,或"flat"抗性
减少抗性减少了指定数值的伤害,只要造成的伤害不会小于1。如果结果伤害会小于1,则使用另一个公式。 设R表示flat抗性,D表示输入伤害,m为计算flat抗性后修正伤害。然后
如果 R+1<D
M=D-R
否则如果 D>1
M=1/(R-D+2)
否则
M=1/(R+1)
.
如果flat抗性匹配或超过原始伤害,则修正伤害渐近为0,如下面的示例表所示:
伤害 | flat抗性 | 修正伤害(有着0%抗性) |
---|---|---|
5 | 0 | 5 |
5 | 1 | 4 |
5 | 2 | 3 |
5 | 3 | 2 |
5 | 4 | 1 |
5 | 5 | 1/2 |
5 | 6 | 1/3 |
5 | 7 | 1/4 |
5 | 8 | 1/5 |
... | ... | ... |
百分位抗性
百分位抗性减少了指定百分比的伤害。当两种抗性都存在时它被应用于flat抗性之后,从而改变上面的“修正伤害”值,将其降低指定的百分比。如果该值为100%,则该实体免疫伤害。作为一个例子,一个拥有25%物理伤害抗性的实体被用100物理伤害的一颗子弹击中,会受到75伤害而不是100。 设M表示从上述适用公式导出的修正伤害,P表示百分数抗性(以小数形式,所以25%=0.25),F表示最终伤害,然后
F=M*(1-P)
在Factorio,抗性以下列方式显示:
减免抗性/百分比抗性
所以,一个显示10/20%的火焰抗性的实体意味着该实体具有10的flat抗性和20%百分位火焰抗性。因此,如果所说的实体要受到30火焰伤害,那么在应用抗性后之后,它们会受到16伤害。
计算如下:
D=30, R=10, 所以 R+1=21<D=30, 然后我们对M使用上面第一个公式:
M=30-10=20
然后因为 P=20%=0.2, 我们获得
F=20*(1-0.2)=20*0.8=16
组合公式
用D表示原始输入伤害(适用类型的),R表示flat抗性(对适用类型的伤害),P表示小数形式的百分数抗性(对相同类型的伤害)(例如20%=0.2),并用F表示对目标的最终伤害(适用类型的)。
如果 R+1<D
F = (D - R) * (1 - P)
否则如果 D>1
F = (1 - P) / (R-D+2)
否则
F = (1 - P) / (R+1)