Tome Bolt(魔弹)

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

基本信息

属性 值 来源
注册实体名 TwilightForest:tftomebolt(全小写) TwilightForestMod.java:801-808
实体 ID 常量 idVehicleSpawnTomeBolt = 4 TwilightForestMod.java:182
注册形式 EntityRegistry.registerModEntity 直调(不经 TFCreatures)→ 无刷怪蛋 TwilightForestMod.java:801
追踪距离 / 更新频率 150 / 5,sendsVelocityUpdates = true 同上 :805-807
类 twilightforest.entity.EntityTFTomeBolt(96 行) entity/EntityTFTomeBolt.java:14
父类 net.minecraft.entity.projectile.EntityThrowable 同上 :14
尺寸 本类未调用 setSize 同上(全文检索无 setSize)
所属结构 不属于任何结构;发射者是使用魔法攻击 AI 的生物(EntityTFDeathTome) EntityTFDeathTome.java:33

数值

属性 值 来源
直接伤害 6(DamageSource.causeThrownDamage(this, getThrower())) EntityTFTomeBolt.java:66-67
重力 getGravityVelocity 0.003F 同上 :42-44
移动减速强度 和平 3 / 普通 7 / 困难 9 同上 :69-70
移动减速时长 potionStrength × 20 tick,等级恒为 1(II 级) 同上 :73
拖尾粒子 每 tick 5 个 crit 同上 :49-56
命中粒子 8 个 iconcrack_<Items.fire_charge> 同上 :79-88
发射初速 / 精度 0.6 / 6.0 EntityAITFMagicAttack.java:170
攻击冷却 60 tick EntityTFDeathTome.java:33
追踪距离 / 更新频率 150 / 5 TwilightForestMod.java:805-807

maxHealth / movementSpeed:本类继承 EntityThrowable,是无生命值的投射物, 源码中不存在这些属性设置(EntityTFTomeBolt.java 全文无 applyEntityAttributes)。

AI 行为 / 特殊机制

发射者:EntityAITFMagicAttack 的 TOME = 2 分支 (EntityAITFMagicAttack.java:139-145)。全 mod 只有 EntityTFDeathTome 使用该分支, 且它传的是字面量 2 而不是常量 TOME(EntityTFDeathTome.java:33)。

命中效果:onImpact 只对 EntityLivingBase 生效 —— 造成 6 点投掷伤害, 且仅在伤害成功返回 true 时追加 Potion.moveSlowdown(:62-77)。减速强度按世界难度 (和平 3 / 普通 7 / 困难 9),时长为强度 × 20 tick —— 和平模式下反而最短。

逻辑上有一处反直觉:和平难度 potionStrength = 3、困难 = 9,但源码用 if (potionStrength > 0) 保护(:71),三档都 > 0,因此三个难度都会减速, 只是和平模式减速时间最短。

命中后消失:无论是否命中生物,播完 8 个粒子就 setDead() (setDead() 包在 if (!worldObj.isRemote) 里,:90-92)。

不可反弹:onImpact 没有分支处理攻击者,弹幕无法被反射。

每 tick 拖尾:onUpdate 先 super.onUpdate() 再 makeTrail(),尾迹是 5 个 crit 粒子 (:31-36、:49-56)。

相关条目