彩蛋物品(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) |
相关条目
/roguelike指令 -give子指令的完整行为- 战利品表 - 这些物品的产出通道
- 怪物装备 -
Loot.addEquipment的调用链(当前不可达)