计算原理
计数器每个节拍增加 1。达到 10 时,被动发布一次命中并重置计数器,因此中毒每 10 秒命中一次。该命中为单位最大生命值 x 中毒层数 x 0.01,为无伤害类型的固定数值。
生效时机: 只要效果位于单位身上,被动即订阅游戏的逻辑刷新节拍(正常速度下每秒一次)。
作用对象: 携带该效果的单位。该命中没有伤害类型,因此物理和魔法抗性都不适用于它。
工具提示不会告诉你的内容
- 1% 是方法中的常数,乘以层数。数据行的 FloatValues (1) 未被读取,因此提示文字中的数字只是偶然与代码相符。
- 随游戏发布的英文提示说的是每秒魔法伤害。代码和韩文设计说明都写的是每 10 秒无属性伤害。
- 叠加:通用效果施加器会为已有中毒的单位,将新层数增加至数据行的 MaxStack(100),并且没有任何针对中毒的特殊处理,因此设计说明中的"不可叠加"在代码中并不成立。每层为命中增加最大生命值的 1%。
- 在此版本中,没有任何技能数据行、特质或代码路径会施加中毒:AFFECTER_Poison 字面量仅由免疫检查和液体怪物被动加载。
- 自 build 25846389 起,当效果被带到新地图时,10 秒计数器不会被重置,因此下一次命中保持其时序。新的中毒仍从 0 开始。该标志为 PassiveAction.IsTransferAttach(+0x51),为此版本新增。其名称和 v0.4.29 补丁说明("进度状态和内部计时器……在据点与地下城之间移动时不会重置")表明,它在被动通过地图传送重新附加时被设置。在切片中未找到对其设置函数的直接调用(写入已内联),因此未追踪它被设置的确切时刻。
从 build 25846389 的游戏二进制读取。 AFFECTER_Poison.Passive_Poison.OnEnable@0x96BBB4, AFFECTER_Poison.Passive_Poison.Damage@0x96BDB4, AFFECTER_Poison.Passive_Poison.<DamageRoutine>d__5.MoveNext@0x96BF04, Refactor.Tick.DataApply.AffecterApplier.Apply@0xAB0634
伤害计算方法
中毒 造成 typeless 伤害,等于 每层 1% 目标最大生命值,每 10 秒一次;它没有伤害类型,因此任何抗性都无法减免。它最多可叠加至 100 层,数值取决于目标的最大生命值,而不是施法者的攻击力。持续时间由施加该效果的技能决定。
| 每次命中伤害 | 目标最大生命值的 1% |
| 伤害类型 | Typeless,不受抗性影响 |
| 叠加 | 最多 100 层 |
| 缩放依据 | 目标最大生命值 (非施法者的攻击力) |
| 跳间隔 | 10 秒 |
| 持续时间 | 由施加该效果的技能决定 |
效果
每层每 1 秒造成目标最大生命值 10% 的无属性伤害,因此任何抗性都无法减免它。最多叠加 100 层;随目标最大生命值缩放,而非施法者的攻击力。示例:对 500 生命值的目标施加一层,每 5 秒造成 10 点伤害。持续时间由施加它的技能决定。
原始数值: 1
属性
| 最大层数 | 最多叠加100层 |
| 极性 | 负面 |
| 有持续时间 | 是 |
| 绝对(不可移除) | 否 |
| 对玩家可见 | 是 |
| 可附着于建筑 | 否 |
引用来源
效果:
中毒免疫 (Trait)
中毒免疫
事件选项: 废弃魔力装置 ChoiceF28100
入手来源
施加方式: 由游戏系统自动施加。