激素药水
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | 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),结果才是激素药水。