MegaBlock Survivors Meta-Progression
MegaBlock Survivors hat eine Fortschrittsschicht zwischen den Durchläufen, die Soul Echoes heißt. Soul Echoes werden während der Matches gesammelt und am Soul-Echo-Schrein ausgegeben, um die Startausrüstung des Spielers für alle zukünftigen Durchläufe dauerhaft zu verbessern.
Der persistente Zustand liegt in plugins/MegaBlockSurvivors/meta_progression.yml, indiziert nach Spieler-UUID. Speichervorgänge sind synchron, sodass der Festplatten-Zustand beim Rückkehrzeitpunkt des Aufrufs stets die aktuelle Änderung widerspiegelt.
Soul Echoes verdienen
Die primäre Quelle innerhalb eines Matches ist die POI-Belohnung Soul Shard Cache. Jeder Cache fügt direkt Soul Echoes zum Meta-Progression-Guthaben des Spielers hinzu und zeigt eine Feedback-Zeile im Chat. Jeglicher noch nicht gebuchter Guthabenstand innerhalb des Durchlaufs wird zudem beim Match-Abbau hinzugefügt.
Den Schrein öffnen
/mbs meta
Öffnet den Soul-Echo-Schrein-Dialog. Der Dialog zeigt:
- Aktuelles Soul-Echo-Guthaben.
- Für jeden Upgrade-Track: aktuelles Level, Maximum, aktuell wirksamer Statuswert, Vorschau auf das nächste Level und Kosten des nächsten Levels.
- Eine Kaufschaltfläche pro Track (oder eine
MAXED-Anzeige).
/mbs meta upgrade <track>
Kauft eine einzelne Stufe auf dem benannten Track und öffnet den Dialog erneut, sodass mehrere Upgrades direkt hintereinander gekauft werden können.
Upgrade-Tracks
| Track | Command-Key | Cap | Effekt |
|---|---|---|---|
| Starting HP | hp | 4 | Lvl 0 = 10 HP (Standard), +2 HP pro Level. Maxed: 18 HP. |
| Starting Luck | luck | 4 | Lvl 0 = 0 Glück, +2 Glück pro Level. Maxed: 8. |
| Starting Speed | speed | 4 | Multiplikator auf die Laufgeschwindigkeit (BASE_WALK_SPEED). Lvl 0 = 1,00x, +0,05 pro Level. Maxed: 1,20x. |
| Weapon Slots | weaponslots | 1 | Lvl 0 = 1 Slot, Lvl 1 = 2 Slots. |
| Passive Slots | passiveslots | 3 | Lvl 0 = 2 Slots, +1 pro Level. Maxed: 5 Slots. |
| Extra Lives | extralives | 2 | Hinterlegte Second-Wind-Wiederbelebungen. Lvl 1 = 1 Leben, Lvl 2 = 2 Leben. |
| Ban Tokens | bantokens | 3 | Pro-Durchlauf-Tokens, die eine Belohnungsoption für den Rest des Durchlaufs dauerhaft aus dem Pool entfernen. |
| Reroll Tokens | rerolltokens | 3 | Pro-Durchlauf-Tokens, die das aktuelle Belohnungs-Trio neu ziehen. |
Kostenkurve
Die meisten Tracks verwenden die geometrische Standardkurve:
cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))
| Ziel-Level | Kosten (Soul Echoes) |
|---|---|
| 1 | 10 |
| 2 | 25 |
| 3 | 63 |
| 4 | 156 |
Extra Lives ist handgetunt und verwendet stattdessen einen festen Plan: 100 für das erste Leben, 200 für das zweite.
Bann-/Reroll-Mechanik
Die Tracks Bann und Reroll gewähren Pro-Durchlauf-Tokens, die der Spieler vom Level-Up-Belohnungsbildschirm aus ausgeben kann:
- Bann -- verbraucht einen Bann-Token und fügt den gewählten Ausrüstungstyp einer durchlaufweit gültigen "Bann"-Liste hinzu. Der Pool-Builder filtert verbannte Typen aus allen zukünftigen Belohnungs-Würfen dieses Durchlaufs. Nützlich, um ein Passiv auszuschließen, an dessen Upgrade kein Interesse besteht, damit dessen Slot weiterhin etwas anderes anbietet.
- Reroll -- verbraucht einen Reroll-Token und zieht das aktuelle Belohnungs-Trio aus dem (post-Bann-)Pool neu. Keine permanente Pool-Änderung.
Beide Schaltflächen erscheinen auf der Kopfzeile des Belohnungsbildschirms neben den verbleibenden Token-Anzahlen (X bans X rerolls). Ist keiner der Tracks freigeschaltet, wird stattdessen eine schlichtere Kopfzeile "Pick your reward!" angezeigt.
Die Token-Bestände werden zu Beginn jedes Matches auf den vom Meta-Progression-Track bestimmten Wert zurückgesetzt -- sie werden nicht übertragen.
Speicherformat
Layout von 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
Der Cache ist nebenläufig und wird bei jedem Aufruf von MetaProgressionManager.save() auf die Festplatte geschrieben (beim Kauf, beim Soul-Echo-Flush am Match-Ende und beim Deaktivieren des Plugins).
Fortschritt zurücksetzen
Es gibt keinen In-Game-Befehl, um die Meta-Progression zu löschen. Um sie für einen Spieler (oder für alle) zurückzusetzen, den Server stoppen und den entsprechenden Abschnitt in meta_progression.yml bearbeiten oder löschen.