Armored Giant(装甲巨人)

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

基本信息

属性 值 来源
注册实体名 TwilightForest:Armored Giant TwilightForestMod.java:739
实体 ID 常量 idMobArmoredGiant = 234 TwilightForestMod.java:1136
蛋色 主 0x239391 / 副 0x9a9a9a TwilightForestMod.java:741-742
类 twilightforest.entity.EntityTFArmoredGiant(26 行,全类只有 2 个方法) entity/EntityTFArmoredGiant.java:10
父类 twilightforest.entity.EntityTFGiantMiner entity/EntityTFArmoredGiant.java:10
所属结构 巨人工厂云端城堡 + 最终城堡 1 层 structures/trollcave/ComponentTFCloudCastle.java:163;TFFeature.java:220

数值

本类没有自己的 applyEntityAttributes() —— 全部属性继承自 Giant Miner(巨人矿工)(EntityTFGiantMiner.java:42-48):

属性 值 来源
maxHealth 80(继承,未覆盖) EntityTFGiantMiner.java:44
movementSpeed 0.23(继承,未覆盖) EntityTFGiantMiner.java:45
attackDamage 10(继承,未覆盖) EntityTFGiantMiner.java:46
followRange 40(继承,未覆盖) EntityTFGiantMiner.java:47
体型 宽高各 ×4(继承) EntityTFGiantMiner.java:26

源码中护甲没有折算进 attackDamage:石剑的攻击力加成不体现在属性表里, 但护甲值在战斗计算时会生效(Item.getItemAttributeModifiers())。

与父类的差异

本类全部逻辑只有 2 个方法(EntityTFArmoredGiant.java:12-25):

差异点 父类 Giant Miner Armored Giant 来源
主手 Items.stone_pickaxe Items.stone_sword EntityTFArmoredGiant.java:15
盔甲 无 铁头盔 / 铁胸甲 / 铁护腿 / 铁靴 EntityTFArmoredGiant.java:16-19
掉落 TFItems.giantPick TFItems.giantSword EntityTFArmoredGiant.java:23-25

装备槽位按 setCurrentItemOrArmor 的 0=主手、1=头、2=胸、3=腿、4=脚。

父类构造函数里的 Arrays.fill(this.equipmentDropChances, 0F)(EntityTFGiantMiner.java:39) 在 super() 返回时就已把全部槽位掉率清零,而本类的铁盔/铁甲等是在 super() 之后才写入的(EntityTFArmoredGiant.java:16-19)—— 因此这套护甲同样不掉落(源码中本类没有再重置过一次,但也不需要)。

结构投放

  • 巨人工厂云端城堡 (9, 0, 9) 处硬编码生成(ComponentTFCloudCastle.java:163-168), 并调用 makeNonDespawning() 阻止消失。
  • 最终城堡(finalCastle)1 层刷怪表中权重 10、1~1 只(TFFeature.java:220)。

相关条目