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.inFire2 点伤害并点燃 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)。
相关条目
- Adherent(追随者) - 同为节肢/远程型小怪
- Worldgen Features(世界生成特性) - 本实体的刷怪点