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)。
相关条目
- Giant Miner(巨人矿工) - 本类的父类
- Giant’s Sword(巨人的剑) - 本实体的掉落物