自定义附魔
基本信息
| 属性 | 值 |
|---|---|
| 注册类 | 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 |
同上 |