硝基苦力怕
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | NitroCreeper |
| 实体 ID | 2 |
| 实体类 | mods.natura.entity.NitroCreeper |
| 父类 | net.minecraft.entity.monster.EntityCreeper |
| 生成生物群系 | 所有下界群系(BiomeDictionary.Type.NETHER) |
| 生成权重 | 最小 8 / 默认 4 / 最大 6 |
| 追踪范围 | 64 |
| 更新频率 | 5 |
| 免疫 | 火焰(isImmuneToFire = true) |
| 开关 | enableNitroCreepers |
功能
硝基苦力怕是普通苦力怕的强化变体,核心差异在于爆炸威力大幅提升、引信时间大幅缩短,并且坠落即爆炸。
注册见 NContent.java:1971-1974:
EntityRegistry.registerModEntity(NitroCreeper.class, "NitroCreeper", 2, Natura.instance, 64, 5, true);
EntityRegistry.addSpawn(NitroCreeper.class, 8, 4, 6, EnumCreatureType.monster, nether);
爆炸威力
| 状态 | 爆炸威力 | 是否破坏地形 | 来源 |
|---|---|---|---|
| 普通 | 3.0 | 视 mobGriefing 游戏规则 |
NitroCreeper.java:96,44 |
充能(getPowered() 为真) |
20.0 | 视 mobGriefing |
NitroCreeper.java:94,42 |
作为对比,原版苦力怕普通爆炸为 4.0、充能为 6.0。这里的 3.0/20.0 均为源码中的 createExplosion 字面量。
注意:普通状态使用 flag(读取 mobGriefing),而坠落爆炸的非充能分支硬编码为 false(NitroCreeper.java:44):
if (this.getPowered()) {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 20f, flag);
} else {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 3f, false);
}
引信与难度
引信判定(NitroCreeper.java:83-87):
int difficulty = worldObj.difficultySetting.getDifficultyId();
int lengthBoost = 4 * (3 - difficulty);
int powered = this.getPowered() ? 12 : 0;
if (this.timeSinceIgnited >= this.fuseTime + difficulty + powered) {
| 难度 | 难度 ID | 引信总长(fuseTime 12 + difficulty) | 充能加成 |
|---|---|---|---|
| 和平 | 0 | 12 | +12 |
| 简单 | 1 | 13 | +12 |
| 普通 | 2 | 14 | +12 |
| 困难 | 3 | 15 | +12 |
lengthBoost 被计算但未参与最终判定,故不构成额外加成。
引信起始值 fuseTime = 12(NitroCreeper.java:14),并通过 NBT 键 Fuse 持久化(:55、:62-64)。
getCreeperFlashIntensity 的分母为 fuseTime - 2(:109)。
坠落爆炸
fall 被覆写(NitroCreeper.java:36-50):当坠落距离 > 5 时直接引爆并 setDead(),不再造成摔落伤害。充能状态威力 20.0 且遵循 mobGriefing,普通状态 3.0 且不破坏地形。
免疫与伤害
isImmuneToFire = true(:23)——免疫火焰- 被铁傀儡攻击时伤害被强制为 1000(必定秒杀),
attackEntityFrom中source.getEntity() instanceof EntityIronGolem时damage = 1000(:148-154)
掉落物
dropFewItems 覆写(:113-146):
| 状态 | 掉落数量 | 来源 |
|---|---|---|
| 普通 | rand(4) + 2(2–5),加 rand(looting + 1) |
:117-120 |
| 充能 | 额外 rand(40) + 20(20–59),加 rand(looting × 6 + 1) |
:130-133 |
充能时原版 TNT 掉落(:141-144)已被注释,故不炸药 TNT。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 引信时间 | 12 | NitroCreeper.java:14 |
| 普通爆炸威力 | 3.0 | NitroCreeper.java:96,44 |
| 充能爆炸威力 | 20.0 | NitroCreeper.java:94,42 |
| 引信难度加成 | +0 ~ +3(按难度 0–3) | NitroCreeper.java:87 |
| 引信充能加成 | +12 | NitroCreeper.java:85 |
| 坠落爆炸阈值 | 距离 > 5 | NitroCreeper.java:38 |
| 铁傀儡秒杀伤害 | 1000 | NitroCreeper.java:151 |
| 生成最小 / 默认 / 最大 | 8 / 4 / 6 | NContent.java:1973 |
| 追踪范围 / 更新频率 | 64 / 5 | NContent.java:1972 |
| 掉落(普通) | 2–5 | NitroCreeper.java:117 |
| 掉落(充能) | 20–59 | NitroCreeper.java:130 |
交互
| 触发 | 行为 |
|---|---|
| 引燃 | 按难度与充能状态计算引信,闪烁频率由 getCreeperFlashIntensity 驱动 |
| 铁傀儡攻击 | 受到 1000 点伤害,秒杀 |
| 坠落 > 5 格 | 立即爆炸并消失,不受摔落伤害 |
| 火焰伤害 | 免疫 |