Combination Rings(组合戒指 / 咒法师戒指)

基本信息

属性 值
注册名 randomboubles:combinationRing
meta 数 9(0–8)
分类 ItemCombinationRings → ItemBaubleRingBase
实现接口 IVisDiscountGear + IRunicArmor
饰品槽位 戒指槽
堆叠 1
磨损 0,setNoRepair()

这是 mod 中 meta 最多的一件物品:把单一要素戒指的折扣扩展到多个要素, 并在最高 3 个 meta 上追加符文护盾与免疫。

数值(全部读自 getVisDiscount / getRarity / getRunicCharge)

meta 名称 生效要素 折扣 稀有度 符文充能 免疫凋零/毒
0 Spellcaster’s Ring of the Sky Aer / Ignis / Ordo 3 uncommon 0 否
1 Exotic Ring of the Sky 同上 5 rare 0 否
2 Runeforged Ring of the Sky 同上 7 epic 0 否
3 Spellslinger’s Ring of the Earth Aqua / Terra / Perditio 3 uncommon 0 否
4 Exotic Ring of the Earth 同上 5 rare 0 否
5 Runeforged Ring of the Earth 同上 7 epic 0 否
6 Thaumaturge’s Ring 全部 6 要素 3 uncommon 2 是
7 Exotic Thaumaturge’s Ring 全部 6 要素 6 rare 4 是
8 Runeforged Thaumaturge’s Ring 全部 6 要素 10 epic 6 是

功能

  • 多要素折扣:aspectVisDiscount()(ItemCombinationRings.java:134-145) 把折扣限定在指定要素集合内,集合外一律返回 0。 注意集合是按 Aspect 常量枚举判定的,不依赖 getPrimalAspects() 下标。
  • 符文护盾:getRunicCharge()(:203-211)使 meta 6/7/8 计入 Thaumcraft 符文护甲总充能,从而可叠加 Runic Shield 附魔。 穿戴/脱下时置 runicEventHandler.isDirty = true 强制重算。
  • 免疫:meta ≥ 6 时每 20 tick(每秒)检查并移除凋零与中毒效果 (onWornTick,:170-186)。这是清除已存在效果,不是持续抵抗—— 抗性来源仍需另配。

合成链

meta 配方 ID 类型 主材料 关键要素
0 RBSPELLCASTERSRINGOFTHESKY 增强注入 meta 3(大地) AIR 128 / ORDER 128 / FIRE 128 / MAGIC 128 / AURA 96 / ENERGY 64
1 RBEXOTICRINGOFTHESKY 增强注入 meta 0(天空) 同上
2 RBRUNEFORGEDRINGOFTHESKY 增强注入 meta 1(天空) AIR 256 / ORDER 256 / FIRE 256 / MAGIC 256 / AURA 192 / ENERGY 64
3 RBSPELLSLINGERSRINGOFTHEEARTH 增强注入 meta 0(天空) EARTH 128 / ENTROPY 128 / WATER 128 / MAGIC 128 / AURA 96 / ENERGY 64
4 RBEXOTICRINGOFTHEEARTH 增强注入 meta 3(大地) 同上
5 RBRUNEFORGEDRINGOFTHEEARTH 增强注入 meta 4(大地) EARTH 256 / ENTROPY 256 / WATER 256 / MAGIC 256 / AURA 192 / ENERGY 64
6 RBTHAUMATURGESRING 增强注入 meta 2 或 meta 5 六大要素各 512 / MAGIC 512 / AURA 384 / ENERGY 128
7 RBEXOTICTHAUMATURGESRING 原生注入 meta 6 六大要素各 768 / MAGIC 768 / AURA 384 / ENERGY 256
8 RBRUNEFORGEDTHAUMATURGESRING 原生注入 meta 7 六大要素各 1024 / MAGIC 1024 / AURA 768 / ENERGY 512

原初珍珠消耗规则(returnXxxPearl 替换表,InfusionRecipes.java:26-52):

  • 装 WitchingGadgets → 返还「无源珍珠」WGContent.ItemMaterial meta 12
  • 装 GTNH(dreamcraft)→ 返还「惰性珍珠碎片」NHItemList.PrimordialPearlFragment
  • 否则 → 原初珍珠 meta 3 原样返还
  • meta 7 与 meta 8 使用原生 ThaumcraftApi.addInfusionCraftingRecipe, 没有任何 replacement → 原初珍珠被完全消耗。

源码核对(2026-10-01 审计)

  • 注册:BaubleItems.java:46-47。
  • ⚠️ 折扣不是 3/5/7 递推。getVisDiscount(:147-157)的 case 为 0,3,6 -> 3、1,4 -> 5、2,5 -> 7、7 -> 6、8 -> 10。 meta 7 = 6、meta 8 = 10,若按前两组外推写成 5/7 即为编造。 en_US.lang 的 item.combinationRing.7.discount=6、.8.discount=10 可交叉验证。
  • ⚠️ meta 6 配了 2 条同名配方:RBTHAUMATURGESRING 与 RBTHAUMATURGESRING2 (InfusionRecipes.java:418-440 与 :441-463),配方 ID 字符串完全相同 (均为 "RBTHAUMATURGESRING"),仅主材料一个用 meta 2 另一个用 meta 5。 研究页只对应其中一条。⚠️ 疑似 bug:ID 重复可能导致其中一条被 Thaumcraft 覆盖或报冲突。
  • ⚠️ 源码缺陷(死代码):ItemCombinationRings.java:28 Random _mRnd = new Random(); 声明后全类无任何引用(grep 确认仅此一处)。 命名也不符合 Java 规范。
  • ⚠️ aspectVisDiscount 的 default -> true(:143)在 meta ∈ [0,8] 时不可达 (RING_COUNT = 9),属防御性分支。
  • 贴图 randomboules:rings/AspectRing_{0,1,2} 为 3 帧动态贴图 (AspectRing_*.png.mcmeta),按 meta 分三组:0–2 / 3–5 / 6–8。