Vis Channel
基本信息
| 属性 | 值 |
|---|---|
| NBT ID | vis_channel(主键) |
| 别名 ID | Vis Channel |
| 研究页 | WAND_AUGMENTATION_VIS_CHANNEL |
| 注魔配方名 | TM_WA_VIS_CHANNEL |
| 注魔不稳定性 | 10(5 种改装中最低) |
| 前置改装 | 无(getPrerequisiteAugmentations() 返回 null) |
| 杖身兼容 | 全部(isCompatibleWith(WandRod) 恒 true) |
| 实际效果 | 已实现 —— Vis 消耗 × 0.9 |
效果
通过两个 @ModifyExpressionValue 注入点同时压低法杖的基础与特殊消耗修正:
@ModifyExpressionValue(method = "getConsumptionModifier",
at = @At(value = "INVOKE", target = "Lthaumcraft/api/wands/WandCap;getBaseCostModifier()F"))
private float tm$baseCostModifier(float modifier, @Local(name = "is", argsOnly = true) ItemStack is) {
return tm$visChannel(is, modifier);
}
// 同样注入 getSpecialCostModifier()
@Unique
private float tm$visChannel(ItemStack stack, float modifier) {
return WandHelper.hasAugmentation(stack, AugmentationVisChannel.INSTANCE) ? modifier * 0.9f : modifier;
}
位置:mixins/late/thaumcraft/common/items/wands/MixinItemWandCasting_Augmentations.java:37-58。两处都读同一个 argsOnly 局部变量 is(ItemWandCasting.getConsumptionModifier 的法杖栈参数),保证同一次判定。
由于注入的是 WandCap 的 base / special 成本修正相乘路径,getConsumptionModifier 的两个分量各降 10%,对最终消耗的净效果接近但不一定精确等于 ×0.9(取决于 base 与 special 的相对权重)。
注魔配方
| 项 | 值 |
|---|---|
| 要素需求 | TOOL 16 / MAGIC 24 / WATER 64 / ORDER 48 / METAL 16 |
| 不稳定性 | 10 |
| 材料 | ConfigItems.itemResource meta 2 × 1 + meta 3 × 2 |
| 中心物品 | ConfigItems.itemWandCasting meta 32767 |
数值
| 数值 | 值 |
|---|---|
| Vis 消耗倍率 | × 0.9(modifier * 0.9f,float) |
| 注入点 | 2(getBaseCostModifier / getSpecialCostModifier) |
| 注魔不稳定性 | 10 |
| 要素 | TOOL 16 / MAGIC 24 / WATER 64 / ORDER 48 / METAL 16 |
| 材料数量 | 3 |
| 前置改装 | 无 |
源码缺陷
handleAugmentation空实现(wand/augmentation/AugmentationVisChannel.java:60),同 Charge Buffer,效果完全依赖 mixin。- 净折扣不等于 0.9。文档注释写「10% discount to vis cost」(
MixinItemWandCasting_Augmentations.java:35),但同时压低 base 与 special 两个分量后,实际节省比例取决于二者乘积结构;getConsumptionModifier的完整语义属 Thaumcraft 本体,本条目不外推。 - 无任何一方在
getMaxVis侧联动 —— Charge Buffer 升容量、本条降消耗,两者可叠加但源码未做任何配平。
相关条目
- Charge Buffer - 另一条已实现改装(升容量)
- Taint Capping - 唯一不依赖 mixin 的已实现改装
- Tainted Core - 无实现
- Contact Discharge - 无实现