彩蛋物品(ItemNovelty)

基本信息

属性 值
枚举 greymerk.roguelike.treasure.loot.provider.ItemNovelty(treasure/loot/provider/ItemNovelty.java:17)
常量数 28
名字表 28 项 Map<String, ItemNovelty>,全小写(:42-70)
查询方法 getItemByName(String)(:81)、get(ItemNovelty)(:86)、getItem(ItemNovelty)(:91)
物品来源 全部是原版物品,不注册任何新 Item
指令入口 /roguelike give <名字>

这 28 件物品以开发组与贡献者命名(Greymerk、Zisteau、Dinnerbone、Notch、Etho、Eniko 等),是 mod 的彩蛋集合。没有任何一件是 mod 自建的物品类型 —— getItem 全部返回 new ItemStack(Items.*) 或 new ItemStack(Blocks.*)。

物品表

名字 列是 /roguelike give 接受的小写参数(names 静态表,:42-70)。枚举 列是内部常量。

名字 枚举 实际物品 出现处
greymerk GREYMERK 铁斧 getItem
nebriscrown NEBRISCROWN 金头盔 getItem
nebrissword NULL 钻石剑 getItem;Loot.java:151
zisteaupants MANPANTS 皮裤子 getItem
zisteausign ZISTEAUSIGN 告示牌 getItem
avidya AVIDYA 奶桶 getItem;Potion.java:30
ashlea ASHLEA 曲奇 getItem;Loot.java:122
kurt KURT 皮靴 getItem
amlp AMLP 剪刀 getItem;Loot.java:130
cleo CLEO 生鱼 getItem
enikosword ENIKOSWORD 钻石剑 getItem
enikobow ENIKOBOW 弓 getItem;Loot.java:161
bdoubleo BDOUBLEO 钻石锹 getItem
guude GUUDE 唱片 record_13 getItem
rleahy RLEAHY 面包 getItem
etho ETHO 木镐 getItem
baj BAJ 金锄 getItem
docm DOCM 鱼竿 getItem
ginger GINGER 熟鸡肉 getItem
vechs VECHS 木棍 getItem
notch NOTCH 苹果 getItem
quantumleap QUANTUMLEAP 海绵块 getItem
generikb GENERIKB 烤土豆 getItem
fourles FOURLES 染料(meta 3) getItem
dinnerbone DINNERBONE 骨头 getItem;Loot.java:132
grim GRIM 腐肉 getItem
mmillss MMILLSS 仙人掌 getItem
valandrah VALANDRAH 铁剑 getItem;Loot.java:153

⚠️ 常量名与发放名不是一一对应:MANPANTS 的名字是 zisteaupants(多个 a),NULL 的名字是 nebrissword(枚举名完全无关)。按枚举名去输 give null 或 give manpants 都会得到 “Failed: No such item”。

在战利品与怪物装备中的产出

Loot.addEquipment 按 level 概率投放 6 件彩蛋装备(全部在主手槽 0):

条件 物品 来源
僵尸且 rand.nextInt(20)==0 且再 rand.nextInt(20)==0 ASHLEA(曲奇) treasure/loot/Loot.java:122
僵尸且 level > 1 且 rand.nextInt(50) == 0 AMLP(剪刀) treasure/loot/Loot.java:130
僵尸且 level > 2 且 rand.nextInt(50) == 0 DINNERBONE(骨头) treasure/loot/Loot.java:132
近战且 level > 2 且 rand.nextInt(10) == 0 NULL(钻石剑) treasure/loot/Loot.java:151
近战且 level > 0 且 rand.nextInt(5) == 0 VALANDRAH(铁剑) treasure/loot/Loot.java:153
远程且 level > 2 且 rand.nextInt(50) == 0 ENIKOBOW(弓) treasure/loot/Loot.java:161

另有一处与战利品无关的产出:Potion.getRandom 有 1/200 概率直接返回 AVIDYA(奶桶)而非药水(treasure/loot/Potion.java:29-31)。

⚠️ Loot.addEquipment 的调用链当前不可达,详见 怪物装备。上述六处概率在实际游戏中不会触发。

数值

数值名 值 来源
枚举常量数 28 treasure/loot/provider/ItemNovelty.java:18-46
names.put 条目数 28 treasure/loot/provider/ItemNovelty.java:51-78
自建 Item 类型数 0 getItem 全部返回 new ItemStack(Items.*/Blocks.*)
AVIDYA 出现概率 1/200 treasure/loot/Potion.java:29
NULL 出现概率 1/10(需 level > 2) treasure/loot/Loot.java:151
VALANDRAH 出现概率 1/5(需 level > 0) treasure/loot/Loot.java:153
ENIKOBOW 出现概率 1/50(需 level > 2) treasure/loot/Loot.java:161
ASHLEA 出现概率 1/20 × 1/20(僵尸) treasure/loot/Loot.java:119,121
AMLP 出现概率 1/50(需 level > 1,僵尸) treasure/loot/Loot.java:130
DINNERBONE 出现概率 1/50(需 level > 2,僵尸) treasure/loot/Loot.java:132
getItem 缺失名字的返回值 null treasure/loot/provider/ItemNovelty.java:82
get 返回的权重 0 treasure/loot/provider/ItemNovelty.java:87

交互

操作 效果
/roguelike give <名字> 在执行者脚下掉落 1 件,delayBeforeCanPickup = 0 可立即拾取(util/CommandSpawnDungeon.java:111-117)
/roguelike give <不存在的名字> 回报 “Failed: No such item”(util/CommandSpawnDungeon.java:113)
非玩家执行者 getCommandSenderAsPlayer 抛 PlayerNotFoundException,回报 “Failed: Player error”(util/CommandSpawnDungeon.java:105-110)

相关条目