MegaBlock Survivors メタプログレッション
MegaBlock Survivors では、試合をまたいで残る成長要素として Soul Echoes を使います。試合中に集め、Soul Echo Shrine で使うと、次回以降の初期装備や能力を恒久的に強化できます。
データはプレイヤー UUID をキーとして plugins/MegaBlockSurvivors/meta_progression.yml に保存されます。保存は同期処理で、ファイルをアトミックに置き換えます。購入の保存に失敗した場合は、消費した通貨とアップグレードの両方が元に戻ります。獲得した Soul Echoes は保存失敗後もメモリに残りますが、その後の保存が成功するまでは再起動で失われる可能性があります。読み込みに失敗した場合は既存のメモリ上の状態を保持し、正常に再読み込みできるまで保存と購入を停止します。保存や読み込みのエラーはサーバーログで確認してください。
Soul Echoes の獲得
Soul Echoes は試合中に Soul Echo という名前の LAPIS_LAZULI としてドロップします。インベントリに蓄積され、試合の終了処理で永続残高に加算されます。この処理は素材だけで識別するため、持ち込んだ通常のラピスラズリを含むインベントリ内のすべてのラピスラズリを消費して数えます。ミニゲーム用インベントリはサバイバル用と分けてください。
| 入手元 | 量 |
|---|---|
| 通常 (非ボス) モブの撃破 | 撃破ごとに 1% の抽選で 1 |
| ポータルスコーピオン -- Normal | 10〜15、確定 |
| ポータルスコーピオン -- Elite | 15〜24、確定 |
| ポータルスコーピオン -- Nightmare | 25〜35、確定 |
| ラストボス (Challenge モード) | round(100 * 1.5^tributes) -- Tribute なしで 100、Boss Tribute 1 / 2 / 3 個で 150 / 225 / 約 338 |
| Soul Shard Cache POI | 50。即座に永続残高へ預け入れられます (試合終了時のフラッシュを経由しません) |
Ghost Army のモブは報酬が無効化されており、何もドロップしません。
シュラインを開く
/mbs meta
Soul Echo Shrine ダイアログを開きます。ダイアログには以下が表示されます:
- 現在の Soul Echo 残高。
- 各アップグレードトラックの現在レベル、上限、現在の実効ステータス、次レベルのプレビュー、次レベルのコスト。
- トラックごとの購入ボタン (または
MAXED表示)。
/mbs meta upgrade <track>
指定したトラックを 1 レベル購入し、ダイアログを再度開きます。これにより複数のアップグレードを連続して購入できます。
試合中の購入も可能です。武器とパッシブのスロット上限は現在の進行データを参照するため、その試合中にも変わります。初期 HP、幸運、速度、残機、Ban と Reroll のトークンはプレイヤーの初期化時にコピーされます。これらを購入しても、進行中の試合で補充されたり初期値が変わったりすることはありません。
アップグレードトラック
| トラック | コマンドキー | 上限 | 効果 |
|---|---|---|---|
| Starting HP | hp | 4 | Lv 0 = 10 HP (基準)、レベル毎に +2 HP。最大: 18 HP。 |
| Starting Luck | luck | 4 | Lv 0 = 幸運 0、レベル毎に +2 幸運。最大: 8。 |
| Starting Speed | speed | 4 | BASE_WALK_SPEED に対する移動速度倍率。Lv 0 = 1.00 倍、レベル毎に +0.05。最大: 1.20 倍。 |
| Weapon Slots | weaponslots | 1 | Lv 0 = 1 スロット、Lv 1 = 2 スロット。 |
| Passive Slots | passiveslots | 3 | Lv 0 = 2 スロット、レベル毎に +1。最大: 5 スロット。 |
| Extra Lives | extralives | 2 | 保管された Second Wind リバイブ。Lv 1 = 1 ライフ、Lv 2 = 2 ライフ。 |
| Ban Tokens | bantokens | 3 | 試合ごとに付与され、以後の抽選から装備タイプを除外するトークン。ただし候補が尽きた場合は、後述の代替抽選が適用されます。 |
| Reroll Tokens | rerolltokens | 3 | 現在の報酬トリオを引き直すラン単位のトークン。 |
コストカーブ
ほとんどのトラックは既定の等比カーブを使用します:
cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))
| 目標レベル | コスト (Soul Echoes) |
|---|---|
| 1 | 10 |
| 2 | 25 |
| 3 | 63 |
| 4 | 156 |
Extra Lives は手動調整されており、代わりに固定スケジュールを使用します: 1 ライフ目は 100、2 ライフ目は 200。
Ban / Reroll の仕組み
Ban トラックと Reroll トラックは、プレイヤーが あらゆる 報酬画面 -- レベルアップ、チェスト、砂時計 -- から消費できるラン単位のトークンを付与します。各画面はボタンを提示する前に自身のプールタイプを保存するため、チェスト画面での Reroll はパッシブを引き直し、砂時計画面での Reroll は全プールを引き直します。
- Ban — トークンを 1 つ消費し、選んだ装備タイプをその試合の禁止リストに追加します。以後の抽選と最初の代替候補から除外されますが、代替候補がすべて禁止されている場合、最後の処理で未除外の候補一覧に戻ります。候補が尽きたときまで再登場を防ぐ保証はありません。強化したくないパッシブを除外し、別の選択肢を出したい場合に使えます。
- Reroll -- Reroll トークンを 1 つ消費し、(Ban 後の) プールから現在の 3 つの報酬を引き直します。プールへの恒久的な変更はありません。
残りの数は報酬画面のヘッダー行に表示されます (Pick your reward! | X bans X rerolls)。Ban は スロットごと のボタンで、3 つの選択肢それぞれの下に「Ban <name>」のコントロールが 1 つずつ付きます。一方 Reroll は画面全体に 1 つのボタンです。各コントロールは対応するトークン数が 0 になると完全に非表示になり、トークンが一切ない場合はヘッダーがシンプルな「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() が実行されるたびに (購入時、試合終了時の Echo フラッシュ時、Soul Shard Cache の取得時、プラグイン無効化時) ディスクへフラッシュされます。
進行のリセット
メタプログレッションを消去するゲーム内コマンドはありません。特定のプレイヤー (または全員) についてリセットするには、サーバーを停止し meta_progression.yml の該当セクションを編集または削除してください。