Infinity Booster Card

基本信息

属性 值
注册名 ae2wct:infinityBoosterCard
源码类 ItemInfinityBooster(items/ItemInfinityBooster.java)
最大堆叠 1(setMaxStackSize(1),:27)
效果 setMaxItemUseDuration → 1(:45-48)

作用

无限距离增强卡。lang 描述:Allows a linked AE2 Wireless Crafting Terminal to be used at any distance and across dimensions.——解除距离与维度限制。

未安装时,Wireless Crafting Terminal 的 hasEffect() 返回 false;安装后返回 true,物品获得附魔光效(:62-65 的 checkForBooster)。

安装方式:作为插槽式升级卡装入终端本体(BoosterSlot),不是普通装备。

lang tooltip 明确提示:Only works when in Wireless Crafting Terminal slot!

状态查询

终端 GUI 可显示增强卡状态,四种状态各有 tooltip(en_US.lang):

状态键 含义
LinkStatus 链接状态
Installed / NotInstalled 已安装 / 未安装
Active / Inactive 激活 / 未激活

⚠️ 源码缺陷:掉率配置被当作绝对整数

boosterDropChance 的 lang 描述为 “Chance that Wither will drop Infinity Booster Card (in %-100=always drop)”——明确承诺是百分比,100 = 必掉。但实际代码(CommonProxy.onMobDrop,:166-187):

if (event.entity instanceof EntityWither) {
    Random rand = new Random();
    int n = rand.nextInt();
    if (n <= Reference.WCT_BOOSTER_DROPCHANCE) {   // WCT_BOOSTER_DROPCHANCE = 50
        event.drops.add(drop);
    }
}

rand.nextInt()(无参)返回 [−2 147 483 648, 2 147 483 647] 全域均匀分布的 int,而不是 [0, chance)。把 n 与一个小整数(默认 50)比较,得到:

P(drop) = (chance + 2^31) / 2^32
配置值 实际掉率 期望(按配置描述) 偏差
1 ≈ 50.0000000% 1% +49 个百分点
50(默认) ≈ 50.0000000% 50% ≈ 0
100 ≈ 50.0000000% 100% −50 个百分点

默认 50 恰好「碰巧正确」,但把配置改成 1 或 100 都几乎不会改变实际结果——因为在一个 ±21 亿的均匀分布上做小整数阈值比较,概率恒在 50% 附近。把 100 理解为「必掉」是语义写反。

正确写法应为 rand.nextInt(100) < chance。

凋灵 vs 末影龙

同段代码中两种生物的处理不对称:

生物 判定
EntityDragon(末影龙) 无条件必掉(只有 event.drops.add(drop),无概率判断)
EntityWither(凋灵) 走上述错误的概率判断

两者共用同一个 drop 对象实例(非 new 两次),但末影龙分支完全绕开了概率逻辑。

触发条件

整个掉落逻辑被三重条件包裹(:167):

if (!Reference.WCT_EASYMODE_ENABLED && Reference.WCT_BOOSTER_ENABLED && Reference.WCT_BOOSTERDROP_ENABLED)

即简单模式下不掉落(因为简单模式可合成)。

配方

模式 配方形状
简单 3×3 环绕:SpatialIO方块 / MultiMaterial:42 / CraftingStorage:3
困难 简单模式下无配方,只能靠掉落

简单模式配方(RecipeHandler.java:57-62)为 ShapedOreRecipe:

  • a = appliedenergistics2:tile.BlockSpatialPylon(Spatial IO 口)
  • b = appliedenergistics2:item.ItemMultiMaterial meta 42
  • c = appliedenergistics2:tile.BlockCraftingStorage meta 3
  • d = ItemMultiMaterial meta 48,e = tile.BlockWireless

相关条目