Upper Goblin Knight(上半身哥布林骑士)
事实基准:
/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。
基本信息
| 属性 | 值 | 来源 |
|---|---|---|
| 注册实体名 | TwilightForest:Upper Goblin Knight |
TwilightForestMod.java:670-673 |
| 实体 ID 常量 | idMobGoblinKnightUpper = 221 |
TwilightForestMod.java:1123 |
| 注册形式 | TFCreatures.registerTFCreature(Class, String, int) 3 参重载 |
TwilightForestMod.java:673 → TFCreatures.java:44-50 |
| 蛋色 | 未指定 —— 3 参重载最终以 TFEntityEggInfo(id, 0, 0) 入表 |
TFCreatures.java:49 |
| 类 | twilightforest.entity.EntityTFGoblinKnightUpper |
entity/EntityTFGoblinKnightUpper.java(437 行) |
| 父类 | net.minecraft.entity.monster.EntityMob |
同上 :33 |
| 尺寸 | setSize(1.1F, 1.3F) |
同上 :47 |
| 所属结构 | 骑士要塞(Knight Stronghold,tfStronghold 特性 ID 15) |
见下「生成方式」 |
数值
| 属性 | 值 | 来源 |
|---|---|---|
maxHealth |
30.0 | EntityTFGoblinKnightUpper.java:80 |
movementSpeed |
0.28 | 同上 :81 |
attackDamage |
4.0 | 同上 :82 |
攻击力 getAttackStrength 常态 |
8 | 同上 :218 |
攻击力 getAttackStrength 重矛期间 |
20 | 同上 :216 |
| 护甲加成 | +20 点,上限 20 | 同上 :419-425 |
| 盾牌承伤阈值 | 10(超过即判定破盾) | 同上 :35 SHIELD_DAMAGE_THRESHOLD |
| 盾牌耐久 | 累计 3 次 shieldHits 后碎裂 |
同上 :408-410 |
| 每区块生成上限 | 源码中未覆写(走 EntityMob 默认) |
— |
AI 行为 / 特殊机制
载具关系:Upper 永远骑在 Lower Goblin Knight 身上,由 Lower 在 onSpawnWithEgg /
onSpawnWithEggLoot 中生成并 mountEntity(this)(EntityTFGoblinKnightLower.java:112-116、
:126-130)。Upper 在 onUpdate 中把 Lower 的攻击目标同步给自己(EntityTFGoblinKnightUpper.java:147-150),
并把自己的 renderYawOffset 跟随 Lower(:231-233)。
重矛攻击:AI 任务 0 为 EntityAITFHeavySpearAttack(:49)。触发条件是 attackEntityAsMob
中 50% 概率(:256-261),置 heavySpearTimer = 60(:274)并向客户端广播状态字节 4;
客户端 handleHealthUpdate 收到字节 4 后同样把计时器设为 60(:236-244)。
计时器剩 25 时执行 landHeavySpearAttack(:156-160):在身前 dist = 1.25 处、
minY - 0.75 处放出 50 个 largesmoke 粒子(:182-193),并对
半径 radius = 1.5D 的 AABB(:196-199)内所有实体造成 super.attackEntityAsMob 伤害(:203-207)。
盾牌判定:attackEntityFrom 计算攻击者方位角差 difference(:301-305),
差值落在 >150 && <230(正后方)时由盾牌完全吸收并 takeHitOnShield(:310-313);
其余方向每次受击有 50% 概率累积破盾进度(:316-318)。盾牌状态下从骑乘体上落地会立即碎裂(:164-166)。
护甲判定:difference > 300 || difference < 60(正面来袭)时直接 breakArmor(:322-324),
渲染层按 3 段 Items.iron_chestplate 碎片表现(:342-348)。
免疫:骑乘状态下不受 DamageSource.inWall 窒息伤害(:284-286)。
挡下攻击时对骑乘体施加轻微击退并设置复仇目标(:376-395)。
掉落:getDropItem() 返回 TFItems.armor_shard(:433-435)—— 对应
Armor Shard(装甲碎片)。源码中未覆写 dropFewItems,
故除 armor_shard 外不掉落其它物品,也不掉 trophy。
生成方式:本类没有 TFFeature.addMonster 条目;它只能通过 Lower 搭载或刷怪蛋出现。
相关条目
- Armor Shard(装甲碎片) - 本实体掉落的唯一物品
- Transform Powder(变形粉) - 可把哥布林骑士类变回原版生物
- Twilight Lich(暮色巫妖) - 黑暗高塔塔主,同属高塔系敌人