Ice Snowball(寒冰雪球)
事实基准:
/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。
基本信息
| 属性 | 值 | 来源 |
|---|---|---|
| 注册实体名 | TwilightForest:tficesnowball(全小写,无空格) |
TwilightForestMod.java:889-896 |
| 实体 ID 常量 | idVehicleSpawnIceSnowball = 17 |
TwilightForestMod.java:193 |
| 注册形式 | EntityRegistry.registerModEntity 直调(不经 TFCreatures) |
TwilightForestMod.java:889 |
| 追踪距离 / 更新频率 | 150 / 3 | TwilightForestMod.java:893-894 |
| 类 | twilightforest.entity.EntityTFIceSnowball |
entity/EntityTFIceSnowball.java(93 行) |
| 父类 | net.minecraft.entity.projectile.EntityThrowable |
同上 :9 |
数值
| 属性 | 值 | 来源 |
|---|---|---|
DAMAGE 常量 |
8 —— 但伤害代码被注释,实际不生效 | EntityTFIceSnowball.java:11;注释见 :60-65 |
重力 getGravityVelocity |
0.006F | 同上 :30-32 |
| 飞行拖尾粒子 | 每 tick 2 个 snowballpoof |
同上 :36-41 |
| 爆散粒子 | 8 个 snowballpoof |
同上 :73-82 |
AI 行为 / 特殊机制
发射者:EntityTFIceShooter.attackEntityWithRangedAttack
(EntityTFIceShooter.java:131、:138-140)——本实体只有这一个发射来源。
⚠️ 本投射物不造成伤害。 onImpact 中本应调用
entityHit.attackEntityFrom(DamageSource.causeThrownDamage(...), DAMAGE) 的整段代码
被注释掉(:58-67),实际只剩一句 pop():
// if (par1MovingObjectPosition.entityHit != null && ... ) {
// if (par1MovingObjectPosition.entityHit.attackEntityFrom(
// DamageSource.causeThrownDamage(this, this.getThrower()), DAMAGE)) { ... } }
pop();
因此 DAMAGE = 8 这个常量在 1.7.10 中是死代码。
Stable Ice Core 的 attackDamage 3.0 只在近身接触时生效。
可被击落:attackEntityFrom 覆写为「一碰就 setBeenAttacked() + pop() + 返回 true」
(:45-52)——玩家可以打掉雪球,但打掉它并不会对攻击者造成任何伤害(不反弹)。
pop() 行为(:72-91):在原位置放 8 个 snowballpoof 粒子,
注释掉的 mob.slime.big 音效(:85-86)不生效,服务端 setDead()。
本类没有任何 explode() / 伤害结算方法。
刷怪蛋:走 EntityRegistry.registerModEntity 直调,不进入 TFCreatures.entityEggs,无刷怪蛋。
相关条目
- Stable Ice Core(稳定冰核) - 唯一发射本投射物的生物
- Unstable Ice Core(不稳定冰核) - 同塔的近战自爆版
- 冰霜高塔 - Stable Ice Core 的生成结构