KingBlueSlime
蓝色史莱姆王。⚠️ 已订正:注册名、刷新频率、整个 Size 变体表(源码中不存在)、死亡掉落机制多处错误。
基本信息
| 属性 | 值 |
|---|---|
| 实体 ID | TConstruct:KingSlime(注册名 KingSlime) |
| 实体 ID 数字 | 14 |
| 实体类 | tconstruct.world.entity.KingBlueSlime |
| 父类 | SlimeBase + 实现 IBossDisplayData |
| 跟踪距离 | 64 |
| 更新频率 | 5 ticks |
| 经验值 | 500 |
| 是否可清除 | 否(canDespawn() 返回 false) |
| 掉落工具部件 metadata | 17 |
已订正 1:
实体 ID原文写作tconstruct.KingBlueSlime——取自类名而非注册串。 证据:TinkerWorld.java:358registerModEntity(KingBlueSlime.class, "KingSlime", 14, TConstruct.instance, 64, 5, true)。 已订正 2:原文刷新频率 60 ticks错,实测为 5。 已订正 3:原文Size 变体数 5 种并附「1~5 级、HP 100→1600、伤害倍率 ×1.0→×3.0、掉落 1→5 件」整张表——该表完全不存在于源码,是编造的。
⚠️ Size 变体:原文表格已作废
本类覆写了 initializeSlime(),硬编码 size = 8:
@Override
protected void initializeSlime() {
this.yOffset = 0.0F;
this.slimeJumpDelay = this.rand.nextInt(120) + 40;
this.setSlimeSize(8);
}
证据:KingBlueSlime.java:43-49。因此只有 1 种体型(size 8),不存在等级梯度。
同时覆写了 getMaxHealthForSize() 返回常量 100,与 size 无关(父类 SlimeBase 的 min(size²+8, 49) 公式被完全覆盖):
@Override
protected float getMaxHealthForSize() { return 100; }
证据:KingBlueSlime.java:51-54。
原文「最大生命值(基础)100 HP(按 size 缩放)」——「100 HP」正确,「按 size 缩放」错误,因为该常量对任何 size 都返回 100。
| 属性 | 正确值 |
|---|---|
| Size | 固定 8(无变体) |
| 最大生命值 | 固定 100,不随 size 变化 |
行为
- 不能清除:
canDespawn()返回false(KingBlueSlime.java:56-58)——原文正确 - Boss 血条:实现
IBossDisplayData——原文正确 - 粒子:
blueslime;跳跃间隔rand.nextInt(120) + 40
已订正:原文称有「跳跃攻击:根据 size 属性计算跳跃伤害」和「压缩攻击:落地时造成范围伤害」——源码中均无此逻辑。 证据:
SlimeBase.fall(float distance)被覆写为空实现,注释明写「we call the event for proper behaviour with other stuff / but don’t calc damage or anything」,即落地不产生任何伤害(SlimeBase.java:207-212)。SlimeBase中也无跳跃伤害计算。
死亡机制
已订正:原文只笼统写「击杀后掉落随机工具」。
死亡时不分裂成次级史莱姆,而是喷出 15–20 只(15 + rand.nextInt(6))size 1 的普通 BlueSlime,并给它们初速度(SlimeBase 父类的分裂逻辑被 setDead() 覆写取代)。证据:KingBlueSlime.java:60-81。
掉落物
已订正:原文写「工具掉落:击杀后掉落随机工具」,但完全没提被强制写入的数值和额外掉落。
从 TConstructRegistry.tools 随机抽一个 ToolCore,用其部件各取 metadata 17 拼装成一件成品工具,然后强制覆写 NBT:
| NBT 字段 | 强制值 |
|---|---|
Attack |
5 + tool.getDamageVsEntity(null) |
TotalDurability |
2500 |
BaseDurability |
2500 |
MiningSpeed |
1400 |
另:20% 概率额外掉落 TinkerArmor.heartCanister metadata 1(rand.nextInt(5) == 0)。证据:KingBlueSlime.java:84-115。
工具名走本地化键 tool.<toolname>.kingslime,缺失时回退为 tool.kingslimeprefix + 工具本地化名。