RimWorld 代码机制:伤害机制与伤害类型

这里旋风,本篇是对游戏原版中所有伤害机制展开研究分析。
这里是总结部分,玩家们可以查看总结来迅速了解每种伤害机制的特点。而后篇的机制详情则留给有兴趣且有一定理解能力的研究者参考。
总结由我分析代码后给出,仅为个人表达,不作为权威参考
伤害除去一些不常用的类型,剩余的几种比较重要的有:

烧伤:点燃目标
割伤:当命中体表时容易断指、断肢,当命中内部器官时有贯穿机制,但贯穿效果不如刺伤。
刺伤:极度倾向于命中内部器官,且贯穿机制伤害很高。
钝伤:容易一下子砸烂一大堆外部器官,同时对硬质部位有较高效果。并且可能造成额外眩晕。
抓伤:倾向于在体表造成较多较浅的伤口,当命中内部器官时有贯穿机制,但贯穿效果不如割伤,远不如刺伤。
咬伤:没什么特点,倾向于在体表造成单个伤口。
子弹伤:没什么特点,造成单个伤口。
炸伤:没什么特点,造成单个伤口。
箭伤:没什么特点,造成单个伤口。
击晕和电磁脉冲:不会有伤口,每1点伤害造成0.5秒的晕眩。
===========================================
以下为机制详情:
伤害类型决定了伤口类型、护甲类型、伤害文本等数据
伤害机制决定了伤害会在生物的哪些部位产生伤口
伤口类型决定了健康页面看到的伤口,会影响出血率,疼痛率,伤疤率和感染率等,这里不做研究
一个伤害类型必定有一个伤害机制,多个伤害类型可能有相同的伤害机制
括号里的是伤害机制的class名和伤害类型的defName,方便各位mod作者参考


伤口(DamageWorker_AddInjury):
伤害大小:若"伤口允许扩展"(目前原版没有任何伤害启用了该机制),则总伤害平均分配给2~4个小伤口,否则仅一个伤口负责所有总伤害
伤口目标:若未指定则随机选择未缺失的身体部件,直接对目标部位造成伤口,
外部部位减伤:当受伤目标为外部器官且不是躯干时,若本次攻击可能直接摧毁目标器官(如断肢),则会出现一定程度的减伤
部分伤害类型存在"允许从内部伤害直至外部"的机制:当受伤目标为内部器官时,直连到外部均会受伤。(如命中心脏,则心脏和躯干都会受到一次该伤害)

>所属类型

烧伤(Burn):不点燃,默认伤害为10,伤口为烧伤,护甲类型为热能
刮伤(TornadoScratch):龙卷风的伤害,伤口类型为刮伤,护甲类型为锐器,允许从内部伤害直至外部
处决(ExecutionCut):处决的伤害,伤口类型为处决的割伤,无视护甲
手术伤(SurgicalCut):手术事故的伤害,伤口类型为手术伤,无视护甲
压伤(Crush):伤口类型为压伤(对皮肤转为割伤),护甲类型为钝器,允许从内部伤害直至外部
炸伤(Bomb):默认伤害为50,伤口类型为炸伤,护甲类型为锐器,允许从内部伤害直至外部,对不可通过的建筑物4倍伤害,对可通过的建筑物2倍伤害,对植物4倍伤害,对墙(Wall)额外2倍伤害(共计8倍)
炸伤(BombSuper):同炸伤(Bomb),默认伤害为550,默认停顿效果2.0,默认穿透130%
共振(Thump):破城炮的伤害,默认伤害为5,伤口类型为压伤,允许从内部伤害直至外部,对不可通过的建筑物15倍伤害,对可通过的建筑物7.5倍伤害,对植物4倍伤害,对墙(Wall)额外2倍伤害(共计30倍),对石头额外4倍伤害(共计60倍)
刺伤(RangedStab):远程武器的刺伤,伤害机制相较于近战的刺伤比较普通。伤口类型为刺伤,护甲类型为锐器。
子弹伤(Bullet):伤口类型为枪伤,护甲类型为锐器,允许从内部伤害直至外部
箭伤(Arrow):伤口类型为箭伤,护甲类型为锐器,允许从内部伤害直至外部
箭伤(ArrowHighVelocity):伤口类型为刺伤,护甲类型为锐器,允许从内部伤害直至外部

DamageWorker_AddInjury的子类:

火焰(DamageWorker_Flame):
伤害机制同DamageWorker_AddInjury
伤害后根据目标是否能着火、是否已经着火、易燃性等因素,概率地点燃目标
如果目标因此被摧毁,那么留下灰烬;如果被烧毁的是植物,那么留下烧焦的植物
>所属类型【烧伤(Flame):点燃,默认伤害为10,伤口为烧伤,护甲类型为热能】

冻伤(DamageWorker_Frostbite):
伤害机制同DamageWorker_AddInjury,但跳过了外部部位减伤,使得冻伤形成断肢断指更为容易
>所属类型【冻伤(Frostbite):仅在低温下会形成该伤害,目标取决于生物的身体部位。伤口类型为冻伤,无视护甲,允许从内部伤害直至外部】


割伤(DamageWorker_Cut)
伤口目标:选择外部部位。
机制详情:
>当命中外部部位时:
由该部件的下级和上级随机挑选部位(如命中手臂则选取躯干、手指等),连同初始部位一起作为目标部位
总伤害会因目标部位变多而稀释,作为最终伤害
外部部位减伤:当受伤目标为外部器官且不是躯干时,若本次攻击可能直接摧毁目标器官(如断肢),则会出现一定程度的减伤
对目标部位造成最终伤害
>当命中内部器官时:
该器官设为初始目标,列出该器官直至外部的所有部位(如命中脑子,则列出脑子-颅骨-头),这些部位均为目标部位
总伤害除以目标部位的个数,作为每个部位的最终伤害。
初始目标造成最终伤害的一半,其余所有目标部位造成最终伤害。
>所属类型【割伤(Cut):伤口类型为割伤(硬质为破裂),护甲类型为锐器,允许从内部伤害直至外部】


钝伤(DamageWorker_Blunt)
伤口目标:选择外部部位。
机制详情:
命中后概率对目标造成Stun的晕眩
对目标部位造成伤害,若伤害溢出,则溢出的伤害继续伤害上级部件
若最后的部件不是内部器官且是“硬质”(甲壳,装甲),则有概率对该部件的下级部件中,随机挑选一个是“硬质”的内部器官进行二次伤害
>所属类型【钝伤(Blunt):伤口类型为压伤(皮肤为淤伤,硬质为破裂),护甲类型为钝器,允许从内部伤害直至外部,晕眩持续2秒
,钝伤(Demolish):伤口类型为压伤(皮肤为淤伤,硬质为破裂),护甲类型为钝器,允许从内部伤害直至外部,晕眩持续2秒,对不可通过的建筑物造成7.5倍伤害,其余建筑物造成10倍伤害】


刺伤(DamageWorker_Stab)
伤口目标:有概率强制选择内部器官
机制详情:
外部部位减伤:当受伤目标为外部器官且不是躯干时,若本次攻击可能直接摧毁目标器官(如断肢),则会出现一定程度的减伤
>当命中部位时:
该器官设为初始目标,列出该器官直至外部的所有部位(如命中脑子,则列出脑子-颅骨-头),这些部位均为目标部位
若目标部位仅有1个,那么该部位承受所有总伤害,代码结束
若目标部位有多个,总伤害除以目标部位的个数,作为每个部位的最终伤害。
初始目标造成最终伤害的75%,其余所有目标部位造成最终伤害的40%。
>所属类型【刺伤(Stab):伤口类型为刺伤(硬质为破裂),护甲类型为锐器,60%概率强制命中内部器官
钝伤(Poke,依然是刺伤的伤害机制):伤口类型为压伤(皮肤为淤伤,硬质为破裂),护甲类型为钝器,允许从内部伤害直至外部,晕眩持续2秒,60%概率强制命中内部器官】


抓伤(DamageWorker_Scratch)
伤口目标:有概率强制选择内部器官
机制详情:
>当命中外部部位时:
由该部件的下级和上级随机挑选部位(如命中手臂则选取躯干、手指等),作为额外的目标部位
对目标部位造成初始伤害乘以分裂倍率
>当命中内部器官时:
该器官设为初始目标,列出该器官直至外部的所有部位(如命中脑子,则列出脑子-颅骨-头),这些部位均为目标部位
初始伤害除以目标部位的个数,作为每个部位的最终伤害。
每个部位造成最终伤害
>所属类型【抓伤(Scratch):伤口类型为抓伤(硬质为破裂),护甲类型为锐器,允许从内部伤害直至外部,分裂倍率0.67
,毒击(ScratchToxic):伤口类型为抓伤(硬质为破裂),护甲类型为锐器,允许从内部伤害直至外部,分裂倍率0.67,命中后根据目标的体型和毒物敏感性造成"中毒",默认情况下每点伤害有1.5%的严重性】


咬伤(DamageWorker_Bite)
伤口目标:选择外部部位
机制详情:同DamageWorker_AddInjury
>所属类型【咬伤(Bite):伤口类型为咬伤(硬质为破裂),护甲类型为锐器,允许从内部伤害直至外部
,毒咬伤(ToxicBite):伤口类型为咬伤(硬质为破裂),护甲类型为锐器,允许从内部伤害直至外部,命中后根据目标的体型和毒物敏感性造成"中毒",默认情况下每点伤害有1.5%的严重性】


普通伤害类型(DamageWorker):该类型不会对生物体造成损伤,只会对其他带有血的(如建筑、材料等)物体造成伤害
>所属类型【老化(Deterioration):仅用于物品老化,无伤害
开采(Mining):仅用于开采,无伤害
腐烂(Rotting):仅用于物品腐烂,无伤害
烟(Smoke):默认伤害0,无伤害
电磁脉冲(EMP):默认伤害50,无伤害,对机械生物造成每1点伤害0.5秒的眩晕。机械生物每次被EMP均会产生36.7秒的适应,适应期间无法再次EMP。】
普通伤害类型的子类:

熄灭(DamageWorker_Extinguish)
每点伤害减少0.01的火焰尺寸
>所属类型【熄灭(Extinguish):默认伤害999999,无伤害】


击晕(DamageWorker_Stun)
>所属类型【击晕(Stun):默认伤害20,无伤害,对生物造成每1点伤害0.5秒的眩晕。】

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值