Thrown Axe(飞斧)

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

基本信息

属性 值 来源
注册实体名 TwilightForest:tfthrownaxe(全小写) TwilightForestMod.java:849-856
实体 ID 常量 idVehicleSpawnThrownAxe = 10 TwilightForestMod.java:188
注册形式 EntityRegistry.registerModEntity 直调(不经 TFCreatures)→ 无刷怪蛋 TwilightForestMod.java:849
追踪距离 / 更新频率 80 / 3,sendsVelocityUpdates = true 同上 :853-855
类 twilightforest.entity.boss.EntityTFThrownAxe(77 行) entity/boss/EntityTFThrownAxe.java:9
父类 net.minecraft.entity.projectile.EntityThrowable 同上 :9
尺寸 setSize(0.5F, 0.5F)(两个构造函数都设) 同上 :15、:20
所属结构 不属于任何结构;只由 TileEntityTFKnightPhantomsSpawner 生成的幻影骑士投掷。TFFeature 的刷怪表里没有幻影骑士 EntityTFKnightPhantom.java:425、TileEntityTFKnightPhantomsSpawner.java:46

数值

属性 值 来源
直接伤害 PROJECTILE_DAMAGE 6 EntityTFThrownAxe.java:11
初速 func_70182_d 0.1F 同上 :67-69
重力 getGravityVelocity 0.001F 同上 :74-76
碰撞边界 getCollisionBorderSize 1.0F 同上 :59-62
撞击粒子 8 个 largesmoke 同上 :39-41
发射速度 / 精度 0.75F / 1.0F EntityTFKnightPhantom.java:427-429
发射高度 height × 0.82,水平偏移 1.0 EntityTFKnightPhantom.java:410-413
发射频率 ticksProgress % 4 == 0 EntityTFKnightPhantom.java:324-326
追踪距离 / 更新频率 80 / 3 TwilightForestMod.java:853-855

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

AI 行为 / 特殊机制

发射者:EntityTFKnightPhantom.launchAxeAt() 是全 mod 唯一的构造点 (EntityTFKnightPhantom.java:425)。只有持 TFItems.knightlyAxe 的幻影骑士克隆体 会发射 —— 武器由 setNumber(i) 按 i % 3 分配:0 = 骑士剑、1 = 骑士斧、2 = 骑士镐 (EntityTFKnightPhantom.java:817-826)。发射前播 random.bow 音效。

穿体不伤:onImpact 命中 EntityTFKnightPhantom 时把 passThru 置 true (:27-30)—— 既不造成伤害,也不消失(:43-45)。效果是斧头能穿过幻影骑士 自己的其它克隆体,不误伤。

正常命中:其它实体吃 6 点 DamageSource.causeThrownDamage(this, getThrower()) 伤害, 然后 setDead()(:32-45)。

可被玩家攻击 / 反弹:canBeCollidedWith() 强制返回 true,getCollisionBorderSize() 拉到 1.0F,源码注释写明是「让玩家能攻击并反弹这发弹幕」(:48-62)。 反弹后伤害来源会变成反弹的玩家。

不产生爆炸:只播 8 个 largesmoke 粒子,不改地形。

相关条目