Lich Bomb(巫妖炸弹)

事实基准:/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。

基本信息

属性 值 来源
注册实体名 TwilightForest:tflichbomb(全小写,无空格) TwilightForestMod.java:817-824
实体 ID 常量 idVehicleSpawnLichBomb = 6 TwilightForestMod.java:184
注册形式 EntityRegistry.registerModEntity 直调(不经 TFCreatures) TwilightForestMod.java:817
追踪距离 / 更新频率 150 / 3 TwilightForestMod.java:821-822
类 twilightforest.entity.boss.EntityTFLichBomb entity/boss/EntityTFLichBomb.java(131 行)
父类 net.minecraft.entity.projectile.EntityThrowable 同上 :9

数值

属性 值 来源
爆炸威力 explosionPower 2F EntityTFLichBomb.java:94
爆炸是否破坏方块 / 点燃 否 / 否(两个 false) 同上 :95
弹速 func_40077_c 0.35F 同上 :26-28
重力 getGravityVelocity 0.001F 同上 :104-106
碰撞边界 getCollisionBorderSize 1.0F 同上 :71-73
拖尾粒子 每 tick 1 个 flame 同上 :37-49

AI 行为 / 特殊机制

发射者:EntityTFLich.java:575 —— 暮色巫妖用 setThrowableHeading(tx, ty, tz, projectile.func_40077_c(), 1.0F) 发射 (EntityTFLich.java:576),同样伴随 mob.ghast.fireball 音效。

始终燃烧:isBurning() 恒返回 true(:54-57)——飞行途中就在烧。

爆炸(explode() :93-98):

float explosionPower = 2F;
this.worldObj.newExplosion(this, this.posX, this.posY, this.posZ, explosionPower, false, false);

不破坏方块、不点燃生物,是纯伤害型爆炸;爆完立即 setDead()。

触发时机(onImpact :109-129)——碰到下列目标会穿过而不爆:

穿透目标 行号
其它 EntityTFLichBolt :113-117
EntityTFLichBomb :113-117
EntityTFLich(任何巫妖,包括影分身) :120-122

玩家可引爆:canBeCollidedWith() 恒 true(:62-65)、 getCollisionBorderSize() 返回 1.0F(:70-73)。 被攻击时 attackEntityFrom 不是反射而是直接引爆(:78-91): damagesource.getEntity() != null 就调 explode() 并返回 true, 否则返回 false。这是玩家唯一能主动触发的伤害来源, 但也因此——想引爆就必须先承受它自己的爆炸。

拖尾:makeTrail 放 1 个 flame 粒子,速度按 motion 偏移并反向 -0.25 缩放(:37-49)。

刷怪蛋:走 EntityRegistry.registerModEntity 直调,不进入 TFCreatures.entityEggs,无刷怪蛋。

相关条目