Loyal Zombie(忠诚的僵尸)
事实基准:
/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。
基本信息
| 属性 | 值 | 来源 |
|---|---|---|
| 注册实体名 | TwilightForest:Loyal Zombie |
TwilightForestMod.java:519-520 |
| 实体 ID 常量 | idMobLoyalZombie = 193 |
TwilightForestMod.java:1096 |
| 蛋色 | 无 | 走 3 参数重载 TFCreatures.java:44-50,不写 entityEggs |
| 刷怪蛋 | 无 | 同上 —— 只能用僵尸权杖召唤 |
| 类 | twilightforest.entity.EntityTFLoyalZombie(166 行) |
entity/EntityTFLoyalZombie.java:28 |
| 父类 | net.minecraft.entity.passive.EntityTameable |
同上 :28 |
| 体型 | setSize(0.6F, 1.8F) |
EntityTFLoyalZombie.java:34 |
| 生物属性 | EnumCreatureAttribute.UNDEAD |
EntityTFLoyalZombie.java:163-165 |
| 所属结构 | 不属于任何结构,仅由僵尸权杖生成 | item/ItemTFZombieWand.java:44 |
注册走的是
registerTFCreature(Class, String, int)三参数重载, 该重载没有entityEggs.put(...)(TFCreatures.java:44-50), 所以创造模式物品栏里没有忠诚僵尸刷怪蛋。
数值
| 属性 | 值 | 来源 |
|---|---|---|
maxHealth |
40.0 | EntityTFLoyalZombie.java:61 |
movementSpeed |
0.3 | EntityTFLoyalZombie.java:62 |
近战伤害(attackEntityAsMob) |
7 | EntityTFLoyalZombie.java:69 |
击飞 motionY 加成 |
+0.2 | EntityTFLoyalZombie.java:74 |
固定护甲值 getTotalArmorValue |
3 | EntityTFLoyalZombie.java:107-109 |
自燃时长 setFire |
100 tick(5 秒) | EntityTFLoyalZombie.java:89 |
attackDamage 属性 |
源码中未设置,沿用 EntityTameable 链上的父类默认 —— 检索方式:EntityTFLoyalZombie.java 全文无 attackDamage 出现 |
— |
AI 行为 / 特殊机制
生命倒计时(EntityTFLoyalZombie.java:84-93):onLivingUpdate 每 tick 检查身上
没有 Potion.damageBoost,就立刻 setFire(100) 并反复续期。方法上的 javadoc
写明「效果是我们在 60 秒寿命结束后不久就死」—— 也就是说它一出生就在烧,
且火伤会不断续期,召唤后约 60 秒必定烧死。玩家喝力量药水(伤害增强)可以阻止。
掉落:getDropItem() 返回 Item.getItemById(0)(空气,:155-157),
本类未覆写 dropFewItems —— 不掉落任何东西。
驯服语义:虽然父类是 EntityTameable,但本类没有任何驯服 UI,
createChild 直接 return null(:51-53),canDespawn 被覆写为
!this.isTamed()(:99-101)—— 也就是说永远无法被驯服,因而永不消失。
AI 目标(:36-46):游泳(1)、扑跳(3, 0.4F)、近战(4)、跟随主人(5, 1.0D/10.0F/2.0F)、
游荡(7)、注视玩家(9, 8.0F)、呆站(9);仇恨:主人被伤(1)、为主人复仇(2)、
被伤还击(3, true)、攻击其他 EntityMob(4, 距离 0)。因无法驯服,
「跟随主人 / 为主人复仇」两组目标在正常玩法里永远不会触发。
声音:mob.zombie.say / mob.zombie.hurt / mob.zombie.death,
脚步声 mob.zombie.step(音量 0.15F,音调 1.0F)(:122-149)。
死代码:构造函数里两行旧版贴图/速度赋值被注释掉
(:32-33 // this.texture = ...、// this.moveSpeed = 0.3F;)——
moveSpeed 的生效值来自 applyEntityAttributes(:62)。
成就:本类没有 onDeath 覆写,因此不触发 twilightHunter
(与同为暮色森林生物的 Redcap / Minotaur 等不同)。
相关条目
- Scepter of Zombie(僵尸权杖) - 唯一的生成方式,暮色三权杖之一
- Twilight Lich(暮色巫妖) - 掉落僵尸权杖的黑暗高塔塔主
- Death Tome(死亡之书) - 黑暗高塔内的远程魔法书怪