天境敌对生物
基本信息
天境敌对生物共 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.feather1–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);可骑乘;可丢史维特球互动 |
| 针叶花 | 掉落箭毒花瓣 |