调制饮剂
基本信息
| 属性 | 值 |
|---|---|
| 注册类 | vazkii.botania.common.brew.ModBrews |
| 声明字段 | 21 个 public static Brew |
| 实际赋值 | 21 个(= new BrewMod / = new BrewModPotion) |
| 基础类 | vazkii.botania.api.brew.Brew |
| 实现类 | BrewMod(原版药水)与 BrewModPotion(Botania 自定义药水) |
| 自定义药水 | 7 个(ModPotions) |
| 配方 | ModBrewRecipes |
功能
调制饮剂(Brew)是 Botania 的自定义药水体系。它在原版 12 种效果之外扩展出 7 种专属药水,并为几乎每种原版效果提供"更强版本"(更长持续时间或更高等级)。
所有 21 个饮剂在 ModBrews.init() 中注册。第 21 个 warpWard 是条件注册,见下。
数值
原版效果衍生(13 个)
new BrewMod(name, color, manaCost, PotionEffect...) 的参数依次为:注册名、颜色、消耗法力、药水效果。
| 变量 | 显示名 | 颜色 | 法力消耗 | 效果(id, 持续 tick, 等级) |
|---|---|---|---|---|
speed |
Fleetfeet | 0x59B7FF |
4000 | moveSpeed 1800 / 1 |
strength |
Vigor | 0xEE3F3F |
4000 | damageBoost 1800 / 1 |
haste |
Adrenaline | 0xF4A432 |
4000 | digSpeed 1800 / 1 |
healing |
Mending | 0xFF5ECC |
6000 | heal 1 / 1 |
jumpBoost |
Upsurging | 0x32F46D |
4000 | jump 1800 / 1 |
regen |
Revitalization | 0xFD6488 |
7000 | regeneration 500 / 1 |
regenWeak |
Restoration | 0xFD6488 |
9000 | regeneration 2400 / 0 |
resistance |
Fortitude | 0xB44E17 |
4000 | resistance 1800 / 1 |
fireResistance |
Magmaskin | 0xF86900 |
4000 | fireResistance 9600 / 0 |
waterBreathing |
Gills | 0x84A7CF |
4000 | waterBreathing 9600 / 0 |
invisibility |
Cloaking | 0xAEAEAE |
8000 | invisibility 9600 / 0 |
nightVision |
Owlsight | 0x7C4BEB |
4000 | nightVision 9600 / 0 |
absorption |
Shielding | 0xF2EB23 |
7000 | Potion.field_76444_x 1800 / 3 |
absorption 额外调用 .setNotBloodPendantInfusable().setNotIncenseInfusable(),即不能被血坠与香附魔。
Overload(多效果)
overload(Overload)是唯一同时施加 4 种效果的饮剂(ModBrews.java:59):
| 参数 | 值 |
|---|---|
| 颜色 | 0x232323(近黑) |
| 法力消耗 | 12000(全表最高之一) |
| 效果 1 | damageBoost 1800 / 3 |
| 效果 2 | moveSpeed 1800 / 2 |
| 效果 3 | weakness 3600 / 2 |
| 效果 4 | hunger 200 / 2 |
Botania 自定义药水(7 个)
new BrewModPotion(name, manaCost, PotionEffect),效果来自 ModPotions(7 个自定义 Potion):
| 变量 | 显示名 | 法力消耗 | 效果(持续 tick, 等级) |
|---|---|---|---|
soulCross |
Crossed Souls | 10000 | ModPotions.soulCross 1800 / 0 |
featherfeet |
Feather Feet | 7000 | ModPotions.featherfeet 1800 / 0 |
emptiness |
Vanity’s Emptiness | 30000 | ModPotions.emptiness 7200 / 0 |
bloodthirst |
Crimson Shade | 20000 | ModPotions.bloodthrst 7200 / 0 |
allure |
Marine Allure | 2000 | ModPotions.allure 4800 / 0 |
clear |
Absolution | 4000 | ModPotions.clear 0 / 0 |
emptiness 的 30000 是全部 21 个饮剂中法力消耗最高的一个。clear 的持续时间为 0 —— 它是瞬发型(立即清除负面效果)。
注意
bloodthirst引用的药水字段在ModPotions中名为bloodthrst(少一个 “i”),这是源码中的实际拼写,非笔误转述。
条件注册的 warpWard
warpWard(Sane Thoughts)只在加载 Thaumcraft 时注册。它在 ModBrews.initTC() 中通过字符串匹配已有药水表来定位 Thaumcraft 的 warp ward 药水(ModBrews.java:68-78):
public static void initTC() {
Potion warpWardPotion = null;
for(Potion potion : Potion.potionTypes)
if(potion != null && potion.getName().equals("potion.warpward")) {
warpWardPotion = potion;
break;
}
if(warpWardPotion != null)
warpWard = new BrewMod(LibBrewNames.WARP_WARD, 0xFBBDFF, 25000,
new PotionEffect(warpWardPotion.id, 12000, 0)).setNotBloodPendantInfusable();
}
| 属性 | 值 |
|---|---|
| 颜色 | 0xFBBDFF |
| 法力消耗 | 25000 |
| 效果持续 | 12000 tick |
| 来源检测 | potion.getName().equals("potion.warpward") |
| 调用位置 | CommonProxy.postInit() 中 if(Botania.thaumcraftLoaded) { ModBrews.initTC(); ModBrewRecipes.initTC(); },CommonProxy.java:157-160 |
这是一个双重条件:warpWard 字段虽然无条件声明,但只有在 thaumcraftLoaded == true 且 Potion.potionTypes 中确实存在名为 potion.warpward 的药水时才被赋值。不满足时 warpWard 保持 null。
交互
| 触发 | 行为 |
|---|---|
| 调制 | 在酿造台(BlockBrewery)中用饮水瓶调制 |
| 饮用 | 施加对应 PotionEffect |
| 香附魔 | 多数饮剂可用香附魔;absorption 被 setNotIncenseInfusable() 排除 |
| 血坠附魔 | 多数饮剂可用血坠附魔;absorption 与 warpWard 被 setNotBloodPendantInfusable() 排除 |
| 显示名 | botania.brew.<name> 键,共 20 条 + botania.brew.fallback=Fallback |
计数交叉验证:ModBrews 声明 21 个 public static Brew 字段,21 处实例化赋值;lang 中 botania.brew.*(不含 fallback)为 20 条。差值 1 正是 warpWard —— 它在无 Thaumcraft 时无显示名条目,与上面的双重条件结论一致。
合成配方
配方由 ModBrewRecipes 注册,其中 initTC() 同样是 Thaumcraft 条件调用(CommonProxy.java:160)。具体配方行本次未逐条读取,标记为「无法核实」。