Appearance
Rewards
奖励、宝箱与商店
这页把两类奖励拆开看:地图上生成的奖励建筑,以及战斗胜利后从怪物身上结算的经验、金币和宝箱。
每层奖励列表
这里说的是地牢地图上生成的奖励点。它们和“怪物击杀奖励”是两条不同流程:地图奖励先生成、再摆放;击杀奖励在战斗胜利后结算。
1. 固定商店每层先放入 3 个 Shop,作为基础经济入口。
2. 治疗分支再决定是 HealingPool 加少量 HealthPack,还是直接生成更多 HealthPack。
3. 服务建筑Monastery、Blacksmith、SmoothieShack 三选一。
4. 普通奖励最后追加 RandomRange(2, 4) 个 GenerateRewardName 结果。
| 楼层组 | 奖励名 | 概率 |
|---|---|---|
| 第 1 层 | 宝箱 / Treasure Chest | 40% |
| 第 1 层 | 治疗包 / Health Pack | 15% |
| 第 1 层 | 商店 / Shop | 15% |
| 第 1 层 | 地精囤积者 / Goblin Hoarder | 10% |
| 第 1 层 | 铁匠 / Blacksmith | 5% |
| 第 1 层 | 治疗池 / Healing Pool | 5% |
| 第 1 层 | 修道院 / Monastery | 5% |
| 第 1 层 | 果昔小屋 / Smoothie Shack | 5% |
| 第 2 层以后 | 宝箱 / Treasure Chest | 40% |
| 第 2 层以后 | 治疗包 / Health Pack | 15% |
| 第 2 层以后 | 商店 / Shop | 15% |
| 第 2 层以后 | 铁匠 / Blacksmith | 5% |
| 第 2 层以后 | 地精囤积者 / Goblin Hoarder | 5% |
| 第 2 层以后 | 治疗池 / Healing Pool | 5% |
| 第 2 层以后 | 拟态宝箱 / Mimic Chest | 5% |
| 第 2 层以后 | 修道院 / Monastery | 5% |
| 第 2 层以后 | 果昔小屋 / Smoothie Shack | 5% |
怪物击杀奖励
这是战斗胜利后从怪物身上结算的奖励,不是地图上的 TreasureChest / Shop / Blacksmith 等地牢奖励建筑。当前恢复代码里,难度不会直接改怪物击杀金币或经验。
一句话规则杀怪一定结算经验;然后结算金币,或在满足条件时用怪物身上的宝箱替代金币。宝箱不是额外加一次金币奖励。
1. 等级写入奖励字段Monster.LevelTo 把等级夹到 1-10,并写入基础经验和金币均值。
2. 先记录经验Monster.Defeated 调 ProcessKill;普通战斗会延迟到战斗结束后触发升级检查。
3. 判断是否出宝箱有 storedChest、goldMult 为 1.0,且 RandomFloat 小于 0.1 时,显示 a treasure chest!。
4. 否则掉金币普通金币按 RandomNormal(mean, mean * 0.1) 抽样并取整,低于 1 时按 1 结算。
经验Experience
普通怪物的基础经验等于怪物等级。等级会先夹到 1-10,再乘以怪物自己的 expMult。
金币Gold
先按等级得到金币均值,再经过 ModifyGoldDrops。实际掉落按均值上下小幅波动,最低为 1 金币。
宝箱替代金币Chest Roll
怪物身上已有 storedChest 且 goldMult 为 1.0 时,击杀有 10% 用宝箱替代普通金币。
怪物宝箱内容Loot
怪物宝箱固定 1 件,调用 GenerateLoot(1)。这一件走 CardFinder 抽卡,不使用普通宝箱的 1/2/3 件数量表。
| 项目 | 规则 |
|---|---|
| 经验EXP | Monster.LevelTo 保存 exp = int(ExpValue(level) * expMult)。普通怪物的 ExpValue(level) 就是等级值,所以 1-10 级分别给 1-10 经验。 |
| 金币均值Gold Mean | 先保存 gold = int(GoldValue(level) * goldMult),击杀时再经过 DungeonPlayer.ModifyGoldDrops 修正。Miserly Minuet 等效果会在这里影响均值。 |
| 金币随机Gold Roll | 实际金币用 Game.RandomNormal(mean, mean * 0.1) 抽样并取整;低于 1 时按 1 金币结算。 |
| 宝箱替代金币10% Roll | Monster.Defeated 先掷 RandomFloat;若小于 0.1,且怪物身上已有 storedChest,且 goldMult 为 1.0,则显示“a treasure chest!”并用宝箱替代普通金币。经验仍照常获得。 |
| 怪物宝箱内容GenerateLoot(1) | GenerateMonsterChest 调用 TreasureChest.GenerateLoot(1),因此固定 1 件,第一件走 CardFinder 抽卡;它不是普通宝箱的 1/2/3 件掉落表。 |
金币和经验表
表里的金币是均值;最终金币还会走随机波动和 ModifyGoldDrops。宝箱触发时,这次普通金币会被宝箱替代。
| 怪物等级 | 经验EXP | 金币均值Gold |
|---|---|---|
| 1 | 1 | 3 |
| 2 | 2 | 6 |
| 3 | 3 | 9 |
| 4 | 4 | 10 |
| 5 | 5 | 11 |
| 6 | 6 | 12 |
| 7 | 7 | 14 |
| 8 | 8 | 17 |
| 9 | 9 | 20 |
| 10 | 10 | 25 |
玩家升级经验
普通战斗在 Monster.Defeated 中先记录经验;随后 Dungeon.WinFight / SaveDungeon 之后再调用 GainExp(0),触发延迟升级检查。
| 目标玩家等级 | 所需经验Required EXP |
|---|---|
| 1 | 0 |
| 2 | 2 |
| 3 | 4 |
| 4 | 7 |
| 5 | 12 |
| 6 | 20 |
| 7 | 25 |
| 8 | 30 |
| 9 | 35 |
| 10 | 45 |
成就和难度后处理
| 条件 | 额外奖励 | 说明 |
|---|---|---|
| DRAGON1 | TreasureChest x1每层额外宝箱 | 成就奖励:每层额外发现一个宝箱。 |
| STEPS1 | HealthPack x1每层额外治疗包 | 成就奖励:每层额外发现一个治疗包。 |
| Grizzly Bear | HealthPack x1默认难度补充 | 默认难度后处理。 |
| Kitten | HealingPool x1加 TreasureChest x1 | 低难度补偿:额外 HealingPool 和 TreasureChest,但不能获得成就点。 |
宝箱
| 步骤 | 规则 |
|---|---|
| 件数Item Count | 普通宝箱先决定数量:1 件约 85%,2 件约 13%,3 件约 2%。 |
| 第一件First Item | 第一件必定调用 CardFinder 抽卡。 |
| 后续件Extra Items | 第二、三件各自判断:45% 转金币,55% 再抽卡。 |
| 顺序 | 生成完全部 loot 后,用 Utility.Shuffle 洗牌。 |
商店
| 项目 | 规则 |
|---|---|
| 商品档位Slots | 商店固定构造 1、3、5 三个商品档位。 |
| 抽卡入口CardFinder | 每个档位调用 CardFinder,minAffinity 为 0。 |
| 重复处理 | 重复商品会重抽;商品列表最后洗牌。 |
| 价格特殊 | Master Thief 天赋会让商店物品免费。 |







