Fire Beetle(喷火甲虫)

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

基本信息

属性 值 来源
注册实体名 TwilightForest:Fire Beetle TwilightForestMod.java:582
实体 ID 常量 idMobFireBeetle = 206 TwilightForestMod.java:1108
蛋色 主 0x1d0b00 / 副 0xcb6f25 TwilightForestMod.java:584-585
类 twilightforest.entity.EntityTFFireBeetle(252 行) entity/EntityTFFireBeetle.java:26
父类 EntityMob,实现 IBreathAttacker EntityTFFireBeetle.java:26
体型 setSize(1.1F, .75F)(扁平,像甲虫) EntityTFFireBeetle.java:35
眼高 0.25F EntityTFFireBeetle.java:228-231
生物属性 EnumCreatureAttribute.ARTHROPOD(节肢动物,免疫毒) EntityTFFireBeetle.java:236-239
所属结构 大型空心丘陵 / 迷宫(hill3、labyrinth) TFFeature.java:156, 166

数值

属性 值 来源
maxHealth 25 EntityTFFireBeetle.java:73
movementSpeed 0.23 EntityTFFireBeetle.java:74
attackDamage 4 EntityTFFireBeetle.java:75
喷火持续 BREATH_DURATION 10 tick EntityTFFireBeetle.java:28
喷火伤害 BREATH_DAMAGE 2 EntityTFFireBeetle.java:29
喷火范围 5F EntityTFFireBeetle.java:38
喷火冷却 30 tick EntityTFFireBeetle.java:38
喷火触发概率 0.1F EntityTFFireBeetle.java:38
喷火时渲染亮度 15728880(满亮度) EntityTFFireBeetle.java:192-200
阴影大小 1.1F EntityTFFireBeetle.java:222-226
垂直朝向速度 500 EntityTFFireBeetle.java:217-220

AI 行为

EntityTFFireBeetle.java:37-44:

槽位 Goal 说明
0 EntityAISwimming 涉水
2 EntityAITFBreathAttack(1.0F, 5F, 30, 0.1F) 喷火:速度 1.0、范围 5、冷却 30、概率 0.1
3 EntityAIAttackOnCollide(EntityPlayer, 1.0F, false) 撞击玩家
6 EntityAIWander(1.0F) 游荡
7 EntityAIWatchClosest / EntityAILookIdle 两行都被注释(EntityTFFireBeetle.java:41-42)
target 1 EntityAIHurtByTarget(false) 被打后反击
target 2 EntityAINearestAttackableTarget(EntityPlayer) 主动索敌玩家

特殊机制

喷火(IBreathAttacker)

  • doBreathAttack(EntityTFFireBeetle.java:245-250):对不免疫火焰的目标 造成 DamageSource.inFire 2 点伤害并点燃 10 tick。
  • 状态存在 DataWatcher 键 17(EntityTFFireBeetle.java:54-57), setBreathing(true) 写入 127(第 128-135 行)。
  • 喷火时每 tick 在嘴前 0.9 格生成 2 个 flame 粒子 (EntityTFFireBeetle.java:146-171),并播放 mob.ghast.fireball 音效(第 182-190 行)。

声音 —— 全部借用蜘蛛

方法 音效 来源
getLivingSound() null(无待机音) EntityTFFireBeetle.java:81-84
getHurtSound() mob.spider.say EntityTFFireBeetle.java:89-92
getDeathSound() mob.spider.death EntityTFFireBeetle.java:97-100
脚步声 mob.spider.step EntityTFFireBeetle.java:105-108

掉落与成就

  • getDropItem() 返回 Items.gunpowder(火药,EntityTFFireBeetle.java:110-113), 本类没有覆写 dropFewItems,走原版 EntityMob 的掉落逻辑。
  • 在暮色森林维度内被玩家击杀触发 twilightHunter(EntityTFFireBeetle.java:205-212)。

相关条目