MegaBlock Survivors 元进度
MegaBlock Survivors 拥有一套对局之间的进度层,称为 灵魂回响(Soul Echoes)。灵魂回响在对局中收集,在 灵魂回响圣坛(Soul Echo Shrine) 中花费,用于永久提升玩家在未来所有对局中的起手配置。
持久化状态保存在 plugins/MegaBlockSurvivors/meta_progression.yml 中,以玩家 UUID 为键。保存为同步执行,因此当调用返回时,磁盘上的状态一定反映了最新的变更。
获得灵魂回响
对局内的主要来源是 Soul Shard Cache POI 奖励。每一个 cache 都会直接为玩家的元进度余额增加灵魂回响,并在聊天栏显示一行反馈。任何尚未结算的对局内余额也会在对局拆卸时一并加入。
打开圣坛
/mbs meta
打开灵魂回响圣坛对话框。该对话框会展示:
- 当前灵魂回响余额。
- 每条升级路线的当前等级、上限、当前生效数值、下一级预览以及下一级所需价格。
- 每条路线对应的购买按钮(或
MAXED指示)。
/mbs meta upgrade <track>
为指定路线购买一级,并重新打开对话框,从而可以连续购买多次升级。
升级路线
| 路线 | 指令键 | 上限 | 效果 |
|---|---|---|---|
| 初始 HP | hp | 4 | 等级 0 = 10 HP(基准),每级 +2 HP。满级:18 HP。 |
| 初始幸运 | luck | 4 | 等级 0 = 0 幸运,每级 +2 幸运。满级:8。 |
| 初始速度 | speed | 4 | 在 BASE_WALK_SPEED 上的步行速度乘数。等级 0 = 1.00x,每级 +0.05。满级:1.20x。 |
| 武器槽位 | weaponslots | 1 | 等级 0 = 1 槽,等级 1 = 2 槽。 |
| 被动槽位 | passiveslots | 3 | 等级 0 = 2 槽,每级 +1。满级:5 槽。 |
| 额外生命 | extralives | 2 | 预存的 Second Wind 复活次数。等级 1 = 1 条命,等级 2 = 2 条命。 |
| 禁用代币 | bantokens | 3 | 每场对局的代币,可在剩余对局中将一种奖励选项从奖励池中永久移除。 |
| 重摇代币 | rerolltokens | 3 | 每场对局的代币,可重新抽取当前的奖励三连。 |
价格曲线
大多数路线使用默认的几何曲线:
cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))
| 目标等级 | 价格(灵魂回响) |
|---|---|
| 1 | 10 |
| 2 | 25 |
| 3 | 63 |
| 4 | 156 |
额外生命 经过手动调校,使用固定的价格表:第一条命 100,第二条命 200。
禁用 / 重摇机制
禁用与重摇路线会授予可在升级奖励界面消耗的每场对局代币:
- 禁用 —— 消耗一枚禁用代币,把所选装备类型加入本场对局的「已禁用」集合。奖励池构建器会在该场对局中此后每一次奖励抽取时过滤掉已禁用的类型。可用于把你完全不打算升级的被动从池中移走,让槽位继续提供别的选项。
- 重摇 —— 消耗一枚重摇代币,根据(去除已禁用类型后的)奖励池重新抽取当前的奖励三连。不会永久改变奖励池。
两个按钮显示在奖励界面的标题行上,旁边附有剩余代币数量(X bans X rerolls)。如果两条路线均未解锁,则改为显示更简洁的「Pick your reward!」标题。
代币余额会在每场对局开始时重置为元进度路线决定的数值——它们不会跨场累计。
存储格式
meta_progression.yml 的布局:
players:
<player-uuid>:
soulEchoes: 0
tracks:
startingHp: 0
startingLuck: 0
startingSpeed: 0
weaponSlots: 0
passiveSlots: 0
extraLives: 0
banTokens: 0
rerollTokens: 0
缓存为并发结构,每次 MetaProgressionManager.save() 运行时(购买时、对局结束的回响结算时、插件停用时)都会刷写到磁盘。
重置进度
游戏内没有用于清空元进度的指令。要为某位玩家(或所有人)重置,请停止服务器并编辑 / 删除 meta_progression.yml 中对应的段落。