Slime Blob(史莱姆团)
事实基准:
/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。
基本信息
| 属性 | 值 | 来源 |
|---|---|---|
| 注册实体名 | TwilightForest:tfslimeblob(全小写,与类名 SlimeProjectile 无关) |
TwilightForestMod.java:833-840 |
| 实体 ID 常量 | idVehicleSpawnSlimeBlob = 8 |
TwilightForestMod.java:186 |
| 注册形式 | EntityRegistry.registerModEntity 直调(不经 TFCreatures)→ 无刷怪蛋 |
TwilightForestMod.java:833 |
| 追踪距离 / 更新频率 | 150 / 3,sendsVelocityUpdates = true |
同上 :837-839 |
| 类 | twilightforest.entity.EntityTFSlimeProjectile(91 行) |
entity/EntityTFSlimeProjectile.java:9 |
| 父类 | net.minecraft.entity.projectile.EntityThrowable |
同上 :9 |
| 尺寸 | 本类未调用 setSize |
同上(全文检索无 setSize) |
| 所属结构 | 不属于任何结构本身;唯一发射者是史莱姆甲虫 | EntityAITFMagicAttack.java:153-159 |
数值
| 属性 | 值 | 来源 |
|---|---|---|
重力 getGravityVelocity |
0.006F | EntityTFSlimeProjectile.java:29-31 |
| 命中伤害 | 0 —— 伤害块整段被注释掉,属死代码 | 同上 :61-67 |
| 拖尾粒子 | 每 tick 2 个 slime,三轴偏移 ±0.5 |
同上 :34-41 |
| 爆开粒子 | 8 个 slime,x/z = nextGaussian × 0.05、y = nextDouble × 0.2 |
同上 :72-81 |
| 爆开音效 | mob.slime.big,音量 1.0F,音高 1 / (rand × 0.4 + 0.8) |
同上 :84 |
| 发射初速 / 精度 | 0.6 / 6.0 | EntityAITFMagicAttack.java:170 |
| 攻击冷却 | 30 tick | EntityTFSlimeBeetle.java:38 |
maxHealth/damage/movementSpeed:本类继承EntityThrowable, 是无生命值的投射物,源码中不存在这些属性设置(EntityTFSlimeProjectile.java全文无applyEntityAttributes),故不列。
AI 行为 / 特殊机制
唯一发射者:EntityAITFMagicAttack 的 SLIME = 4 分支,全 mod 仅此一处
new EntityTFSlimeProjectile(EntityAITFMagicAttack.java:153-159)。
发射者固定为 EntityTFSlimeBeetle。
每 tick 拖尾:onUpdate 先跑 super.onUpdate() 再 makeTrail(),尾迹是 2 个 slime 粒子
(:20-25、:33-41)。
命中即爆:onImpact 无条件调用 pop() —— 生成 8 个 slime 粒子、播放
mob.slime.big,然后 setDead()(:58-89)。粒子与音效在客户端也会播,
setDead() 包在 if (!worldObj.isRemote) 里(:86-88)。
可被打爆:attackEntityFrom 被覆写 —— 任何伤害来源都会 setBeenAttacked() 后
pop() 并返回 true(:46-53)。注意它不向攻击者弹射,也没有造成任何伤害,
“Reflect!” 的注释与实际行为不符。
反射无效:本类没有 splash / 反射逻辑,被打中只是原地消失。
相关条目
- Slime Beetle(史莱姆甲虫) - 唯一发射者
- Tome Bolt(魔弹) - 同一套 AI 的 TOME 分支,会造成 6 点伤害
- Lich Bolt(巫妖魔弹) - 同一套 AI 的 LICH 分支