天境敌对生物

基本信息

天境敌对生物共 5 种进入生物群系刷怪表,另有 2 种仅在地牢中出现。

注册名 实体 ID 类 中文名 碰撞箱 生命值 刷怪表
aether_legacy:cockatrice 7 EntityCockatrice 鸡块 1.0 × 2.0 10 是(权重 100)
aether_legacy:zephyr 9 EntityZephyr 西风 4.0 × 4.0 未显式设置 是(权重 50)
aether_legacy:aechor_plant 10 EntityAechorPlant 针叶花 随机 未显式设置 是(权重 20)
aether_legacy:whirlwind 20 EntityWhirlwind 旋风 0.6 × 0.8 10.0 是(权重 10)
aether_legacy:swet 6 EntitySwet 史维特 0.8 × 0.8 25.0 是(权重 10)
aether_legacy:sentry 8 EntitySentry 哨卫 0.85 × 0.85 未显式设置 否
aether_legacy:mimic 11 EntityMimic 拟箱怪 1.0 × 2.0 未显式设置 否

碰撞箱来源:EntityCockatrice.java:32、EntityZephyr.java:32、EntityWhirlwind.java:52、EntitySwet.java:41、EntitySentry.java:37、EntityMimic.java:30。刷怪权重见 AetherBiome.java:69-73。

哨卫与拟箱怪不在 AetherBiome 的任何刷怪表中 —— 它们由地牢生成与陷阱单独放置。

功能

哨卫(EntitySentry)

哨卫是地牢的守卫,默认处于沉睡状态。它用 dataWatcher 的第 20 号槽位记录状态(EntitySentry.java:44):

this.dataWatcher.addObject(20, new Byte((byte) 0));
...
this.dataWatcher.updateObject(20, (byte) (awake ? 1 : 0));

isAwake() 判定为 getWatchableObjectByte(20) == (byte) 1(EntitySentry.java:226)。该状态会被序列化到存档(EntitySentry.java 的 writeEntityToNBT / readEntityFromNBT)。

哨卫可由雕纹石陷阱唤醒,刷出位置为 x+2, y+1, z+2(BlockDungeonTrap.java:33)。

针叶花(EntityAechorPlant)

针叶花的体型随机(EntityAechorPlant.java:34):

this.setSize(this.rand.nextInt(4) + 1);
this.setSize(0.75F + ((float) this.getSize() * 0.125F), 0.5F + ((float) this.getSize() * 0.075F));

因此有 4 种体型(1–4),对应不同的碰撞箱与外观。其尺寸会被写入 NBT(EntityAechorPlant.java:186)并通过 setSize(int) 恢复(:189-190)。被击败时 setHealth(0.0F)(:107)触发死亡流程。

掉落物为 aechor_petal(箭毒花瓣),见天境材料。

鸡块(EntityCockatrice)

  • 生命值 10(EntityCockatrice.java:49)
  • 掉落原版羽毛 Items.feather 1–4 个(EntityCockatrice.java:185-186:this.dropItem(Items.feather, 1 + this.rand.nextInt(4)))
  • 是天境数量最多的敌对生物(刷怪权重 100)

西风(EntityZephyr)

碰撞箱 4.0 × 4.0,是天境体型最大的敌对生物,空中移动。掉落 BlocksAether.aercloud × 1(EntityZephyr.java:184-185)。

旋风(EntityWhirlwind)

生命值 10.0(EntityWhirlwind.java:84),有两个 dataWatcher 槽位:

槽位 含义 来源
20 是否邪恶 EntityWhirlwind.java:91、:104
21 等级(初值 15) EntityWhirlwind.java:92、:96、:100

史维特(EntitySwet)

生命值 25.0(EntitySwet.java:63),是天境敌对生物中生命值最高的常规怪。

史维特的类继承是「被动」但刷怪表是「敌对」 —— 源码中两处不一致,此处按实际行为记录:

  • 类继承:EntitySwet extends EntityMountable(EntitySwet.java:24)→ EntityAetherAnimal → EntityAnimal,即原版被动生物基类
  • 刷怪表:注册在 AetherBiome.addMobEntry(AetherBiome.java:73)→ spawnableMonsterList,即敌对刷怪表
  • 行为:onUpdate 中存在主动索敌逻辑,setAttackTarget(entityplayer)(EntitySwet.java:222),且会主动清除友方目标(:100-102)

因此实战中史维特会主动攻击玩家。其刷怪概率走 AetherConfig.getSwetSpawnrate()(EntitySwet.java:442,默认 40)。

拟箱怪(EntityMimic)

拟箱怪对应方块 aether_legacy:chest_mimic(拟箱怪)。它掉落原版箱子(EntityMimic.java:90-91):

dropItem(Item.getItemFromBlock(Blocks.chest), 1);

右键拟箱怪方块会唤醒它(BlockMimicChest.java:28)。

经验值

EntityAetherMob 构造时统一设 this.experienceValue = 5(EntityAetherMob.java:21),天境敌对生物的基础经验值为 5。

数值

数值名 值 来源
敌对生物种类(刷怪表) 5 AetherBiome.java:69-73
鸡块生命值 10 EntityCockatrice.java:49
鸡块羽毛掉落 1–4 EntityCockatrice.java:186
旋风生命值 10.0 EntityWhirlwind.java:84
史维特生命值 25.0 EntitySwet.java:63
西风碰撞箱 4.0 × 4.0 EntityZephyr.java:32
哨卫碰撞箱 0.85 × 0.85 EntitySentry.java:37
针叶花体型档数 4(1–4) EntityAechorPlant.java:34
基础经验值 5 EntityAetherMob.java:21
史维特刷怪概率配置 40 AetherConfig.java:174-175
鸡块刷怪概率配置 45 AetherConfig.java:171-173
西风刷怪概率配置 65 AetherConfig.java:168-170
针叶花刷怪概率配置 55 AetherConfig.java:176-178
旋风刷怪概率配置 55 AetherConfig.java:179-181

交互

生物 特殊交互
哨卫 靠近唤醒;被雕纹石陷阱刷出
拟箱怪 右键拟箱怪方块唤醒
史维特 主动索敌(setAttackTarget,EntitySwet.java:222);可骑乘;可丢史维特球互动
针叶花 掉落箭毒花瓣

相关条目