Ender

基本信息

属性 值
类名 atomicstryker.infernalmobs.common.modifiers.MM_Ender
注册名 InfernalMobs:Ender
显示前缀 enderborn / tricky
显示后缀 the EnderBorn / the Trickster
触发机制 onHurt (受击瞬移 + 反伤)
冷却时间 15000 ms
反伤倍率 0.75
最大反伤 10.0

功能

Ender 词缀让怪物在被攻击时瞬移到攻击者身后约 16 格距离,并对攻击者施加部分反伤。

实现细节:

  1. teleportToEntity:计算与攻击者反向向量,destX/Y/Z 在 ±4 (XZ) / ±8 (Y) 范围内随机偏移,最远距攻击者 16 格
  2. teleportTo:先放到目标坐标,然后向下扫描直到落地;再检查 getCollidingBoundingBoxes / isAnyLiquid / checkBlockCollision 三项是否清空;成功则播放 128 个末影人粒子 + mob.endermen.portal 音效
  3. 反伤通过 attackEntityFrom(DamageSource.causeMobDamage(mob), min(maxReflectDamage, damage × 0.75)) 施加
  4. 完整伤害(super.onHurt 传入 0)被吃掉,所以原攻击对 Ender 怪物不产生伤害

互斥与防护

  • 使用 isInfiniteLoop(mob, attacker) 检查避免两个 Ender 怪物互相瞬移-反伤-瞬移的死循环
  • 若瞬移失败(无地面/液体/方块阻挡),放弃整次攻击

触发方式

触发 行为
怪物受击 冷却内瞬移到攻击者身后,反伤 75% 伤害(上限 10),自身吃 0 伤害

数值

数值 默认值 配置项
冷却时间(毫秒) 15000 MM_Ender.coolDownMillis
反伤倍率 0.75 MM_Ender.enderReflectMultiplier
最大反伤 10.0 MM_Ender.enderReflectMaxDamage(≤0 不限)
瞬移距离 16 格 telDist = 16.0D
瞬移 XZ 抖动 ±4 源码常量
瞬移 Y 抖动 ±8 源码常量

相关条目

  • Ninja - 类似但瞬移到攻击者近处
  • Vengeance - 反伤但不瞬移