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 升容量、本条降消耗,两者可叠加但源码未做任何配平。

相关条目