激素药水

基本信息

属性 值
注册名 RandomThings:imbue
类 lumien.randomthings.Items.ItemImbue
变体数 6(metadata 0–5,一个类)
使用动作 EnumAction.drink(ItemImbue.java:36-38)
物品名 未翻译 —— zh_CN.lang:187 仍是 item.imbue.name=Flask
开关 Items.Imbues(RTConfiguration.java:229)

功能

激素药水是浸泡用试剂:把装备或物品放进激素药水酿造台浸泡,装备便获得对应的持续状态效果(源码中称"感染",zh_CN.lang:84-89)。

6 个变体在 ItemImbue 中硬编码为字符串数组(ItemImbue.java:26):

String[] names = new String[] { "poison", "experience", "fire", "wither", "weakness", "spectre" };

变体与对应效果

meta 内部名 中文物品名 颜色 对应感染效果
0 poison 毒性激素药水(zh_CN.lang:77) 10145074 毒性感染
1 experience 经验激素药水(:78) 14214234 经验感染
2 fire 火焰激素药水(:79) 16729344 火焰感染
3 wither 凋零激素药水(:80) 3881787 凋零感染
4 weakness 虚弱激素药水(:81) 16777215 虚弱感染
5 spectre 灵魂激素药水(:82) 12578815 灵魂感染

颜色取自 ModPotions.imbueColors 数组(ModPotions.java:25):

public static int[] imbueColors = new int[] { 10145074, 14214234, 16729344, 3881787, 16777215, 12578815 };

getColorFromItemStack 在 pass == 1(第二渲染层)固定返回纯白,其余层返回对应颜色,并开启默认混合(ItemImbue.java:41-50)。

药水效果

每个变体对应一个 PotionImbue,注册在 ModPotions.init()(ModPotions.java:27-45)。药水 ID 全部可配(PotionIds 分类,6 个键),默认 -1 表示自动分配空闲 ID(ModPotions.checkPotionID,:55-80):

  • 若配置为 -1 → 取第一个空闲槽位并写回配置
  • 若目标 ID 已被占用 → 记录日志并迁移到空闲 ID
  • 若 ID 超出 Potion.potionTypes 数组长度 → 通过 PotionAccessor 动态扩容(ModPotions.java:82-84)

完整效果数值见 激素效果。

数值

数值名 值
变体数 6
效果持续时间 ImbueDuration,默认 6000 tick = 5 分钟(RTConfiguration.java:103)
灵魂感染相位几率 SpectreImbueChance,默认 0.1(:91-97)
药水 ID 6 个可配键,默认自动分配
渲染层 2(requiresMultipleRenderPasses 返回 true,ItemImbue.java:53-55)

交互

触发 行为
酿造台浸泡 4 材料 + 水瓶 → 本物品(见 酿造台配方)
右键饮用 EnumAction.drink
感染判定 浸泡后装备带效果,灵魂感染有几率相位闪避

合成配方

本物品无 GameRegistry 配方,全部 6 种通过自定义的 ImbuingRecipeHandler 制作。配方表见 激素药水酿造台。

配方的浸泡对象是水瓶(Items.potionitem meta 0,Recipes.java:43),结果才是激素药水。

相关条目