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.ItemMaterialmeta 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:28Random _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。