Infinity(无限弹药)
基本信息
| 属性 | 值 |
|---|---|
| 附魔本体 | 原版 net.minecraft.enchantment.Enchantment.infinity(SC2 不注册自有附魔) |
| 附魔 ID | 无法核实——NBT 存的是原版 effectId(ModuleEnchants.java:270),数值由 vanilla 决定,本仓无 vanilla 源码 |
| 内部类型 | ENCHANTMENT_TYPE.SHOOTER |
| 等级上限 | 无法核实——取自 getEnchantment().getMaxLevel()(ModuleEnchants.java:166)。原版 Infinity 上限为 1,SC2 未改写 |
| 基础价值 | 500(EnchantmentInfo.java:57) |
| 折算公式 | value = 2^(level-1) * rank1Value(EnchantmentInfo.java:39) |
⚠️ 审计订正
- 原文「附魔等级要求:30(顶级附魔)」——源码中不存在铁砧等级要求,此数值无出处,已删除。
- 原文「多余等级增加效果强度(具体为增加射击威力)」——纯属编造。
useInfinity()是纯布尔判定,等级高只多累积内部点数、不改变任何效果。已删除并补上正确语义。
效果
把「消耗弹药」开关直接关掉——取弹时把 flag 置回 false,跳过 stackSize--:
protected ItemStack getProjectileItem(boolean flag) {
if (flag && enchanter != null && enchanter.useInfinity()) {
flag = false;
}
...
if (flag) {
if (!getCart().hasCreativeSupplies()) {
getStack(i).stackSize--;
...
}
}
return projectile;
}
来源:ModuleShooter.java:317-341
- 判定是布尔而非分级:
useInfinity()返回getEnchantLevel(EnchantmentInfo.infinity) > 0(ModuleEnchants.java:65-67),≥1 级即完全免消耗,无任何强度提升 - 另一种免消耗途径:矿车装有 Creative Supplies 模块(ID 97,power 1,
ModuleData.java:1031)时同样不消耗,与 Infinity 无关
获取与生效方式
- 来源:附魔书(
EnchantmentInfo.java:61、EnchantmentInfo.java:85) - 载体:矿车上的 Enchanter 模块(ID 82,
ModuleData.java:943),3 格(ModuleEnchants.java:23) - 类型匹配:矿车上存在
ModuleShooter系模块才启用 SHOOTER 类型(ModuleShooter.java:51) - 不可附魔:模块物品
setMaxDamage(0)(ItemCartModule.java:25) - 损耗:每次射击固定扣 1 点内部值(
ModuleShooter.java:402-407)——Infinity 本身也会耗尽