自定义附魔

基本信息

属性 值
注册类 thaumic.tinkerer.common.enchantment.ModEnchantments.initEnchantments()
调用点 TTCommonProxy.java:148(init() 生命周期)
附魔数量 14
附魔名常量 thaumic.tinkerer.common.lib.LibEnchantNames
ID 常量与默认值 thaumic.tinkerer.common.lib.LibEnchantIDs(可在配置中改写,见 配置)
基类 thaumic.tinkerer.common.enchantment.EnchantmentMod
附魔台可用 否 —— EnchantmentMod.canApplyAtEnchantingTable() 恒返回 false(EnchantmentMod.java:30-33),只能由 Enchanter 施加

基类 EnchantmentMod 用构造参数 maxLevel 覆写 getMaxLevel()(EnchantmentMod.java:21-23),因此各附魔的等级上限由子类 super(...) 决定。

数值

14 个附魔全部在 EnchantmentManager.initEnchantmentData() 中以 vanilla = false 注册(EnchantmentManager.java:180-274)。下表「1 级要素」为注册时传入的基础值,实际消耗按等级放大,放大公式见 附魔要素定价。

附魔 ID 默认 最高等级 适用类型 1 级要素 研究键
Ascent Boost 220 4 armor_legs ENTROPY 8 + AIR 10 TTENCH_ASCENT_BOOST
Slow Fall 221 3 armor_feet ORDER 8 + AIR 10 TTENCH_SLOW_FALL
Auto Smelt 222 1 digger ENTROPY 20 + FIRE 30 TTENCH_AUTO_SMELT
Desintegrate 223 1 digger ENTROPY 25 + AIR 10 + EARTH 10 TTENCH_DESINTEGRATE
Quick Draw 224 2 bow ORDER 10 + AIR 10 + WATER 5 TTENCH_QUICK_DRAW
Vampirism 225 2 weapon ENTROPY 8 + FIRE 10 + WATER 10 TTENCH_VAMPIRISM
Focused Strike 169 5 weapon ORDER 12 + AIR 10 + WATER 10 TTENCH_VAMPIRISM ⚠
Dispersed Strikes 166 5 weapon ENTROPY 12 + FIRE 10 + EARTH 10 TTENCH_VAMPIRISM ⚠
Valiance 173 5 weapon ORDER 12 + FIRE 10 + EARTH 10 TTENCH_VAMPIRISM ⚠
Final Strike 168 5 weapon ENTROPY 16 + FIRE 16 TTENCH_VAMPIRISM ⚠
Tunnel 172 5 digger EARTH 16 + ORDER 16 TTENCH_VAMPIRISM ⚠
Shatter 167 5 digger EARTH 16 + ENTROPY 16 TTENCH_VAMPIRISM ⚠
Shockwave 171 5 armor_feet EARTH 16 + AIR 16 TTENCH_VAMPIRISM ⚠
Pounce 170 5 armor_legs EARTH 16 + AIR 16 TTENCH_VAMPIRISM ⚠

ID 与等级来源:LibEnchantIDs.java:11-24(ID)与各子类 super(par1, max, type)。

⚠ 8 个附魔的研究键与 Vampirism 相同

LibResearch 为其中 8 个附魔定义了独立的研究键(KEY_ENCHANT_DISPERSED_STRIKE、KEY_ENCHANT_FINAL_STRIKE、KEY_ENCHANT_FOCUSED_STRIKE、KEY_ENCHANT_POUNCE、KEY_ENCHANT_TUNNEL、KEY_ENCHANT_SHOCKWAVE、KEY_ENCHANT_SHATTER、KEY_ENCHANT_VALIANCE,见 LibResearch.java),但 EnchantmentManager 注册这 8 个附魔时全部传入 LibResearch.KEY_ENCHANT_VAMPIRISM(EnchantmentManager.java:218-274)。

后果是可验证的:EnchantmentManager.canEnchantmentBeUsed()(EnchantmentManager.java:290-295)以该键查询研究完成状态,因此这 8 个附魔的解锁条件全部绑定到 TTENCH_VAMPIRISM 这一条研究上;它们各自的研究键在本仓库内没有任何构造点(见 研究总览)。

记录口径:上述为代码事实陈述。仓库内没有测试、注释或提交信息表明这是有意为之,故不断言其为缺陷。

⚠ Dispersed Strikes 被注册两次

EnchantmentManager.java:225-231 与 EnchantmentManager.java:232-238 是两段完全相同的 registerExponentialCostData(ModEnchantments.dispersedStrikes, …) 调用,参数一致。registerData() 以 (effectId, level) 为键覆盖写入(EnchantmentManager.java:313-317),因此重复注册不改变最终数据。

声明但未实例化的字段

ModEnchantments 声明了 18 个 public static Enchantment 字段,initEnchantments() 只赋值 14 个。以下 3 个从未被赋值,也未在本仓库任何位置被读取:

字段 状态
filtration 声明于 ModEnchantments.java,无赋值点、无读取点
imbued 同上
resolute 同上

相关条目

  • 附魔要素定价 - 同一 EnchantmentManager 管理的 24 个原版附魔要素重定价表与放大公式
  • Enchanter - 唯一可施加这 14 个附魔的方块
  • 配置:附魔 ID - 14 个附魔 ID 的配置键与默认值