Meta-Progresión de MegaBlock Survivors
MegaBlock Survivors tiene una capa de progresión entre partidas llamada Soul Echoes. Los Soul Echoes se recolectan durante las partidas y se gastan en el Soul Echo Shrine para mejorar permanentemente el equipamiento inicial del jugador en todas las partidas futuras.
El estado persistente vive en plugins/MegaBlockSurvivors/meta_progression.yml, indexado por UUID de jugador. Los guardados son síncronos, por lo que el estado en disco siempre refleja el último cambio cuando la llamada retorna.
Ganar Soul Echoes
La fuente principal dentro de una partida es la recompensa POI Soul Shard Cache. Cada caché añade Soul Echoes directamente al balance de meta-progresión del jugador y muestra una línea de feedback en el chat. Cualquier balance dentro de la partida no sincronizado también se añade al cerrar la partida.
Abrir el Santuario
/mbs meta
Abre el diálogo del Soul Echo Shrine. El diálogo muestra:
- Balance actual de Soul Echoes.
- El nivel actual de cada pista de mejora, su tope, la stat efectiva actual, una vista previa del siguiente nivel y el coste del siguiente nivel.
- Un botón de compra por pista (o un indicador
MAXED).
/mbs meta upgrade <track>
Compra un único nivel en la pista indicada y vuelve a abrir el diálogo para que se puedan comprar múltiples mejoras consecutivas.
Pistas de Mejora
| Pista | Clave de comando | Tope | Efecto |
|---|---|---|---|
| Starting HP | hp | 4 | Nv. 0 = 10 HP (base), +2 HP por nivel. Maximizado: 18 HP. |
| Starting Luck | luck | 4 | Nv. 0 = 0 suerte, +2 suerte por nivel. Maximizado: 8. |
| Starting Speed | speed | 4 | Multiplicador de velocidad de caminar sobre BASE_WALK_SPEED. Nv. 0 = 1.00x, +0.05 por nivel. Maximizado: 1.20x. |
| Weapon Slots | weaponslots | 1 | Nv. 0 = 1 ranura, Nv. 1 = 2 ranuras. |
| Passive Slots | passiveslots | 3 | Nv. 0 = 2 ranuras, +1 por nivel. Maximizado: 5 ranuras. |
| Extra Lives | extralives | 2 | Revivificaciones Second Wind guardadas. Nv. 1 = 1 vida, Nv. 2 = 2 vidas. |
| Ban Tokens | bantokens | 3 | Tokens por partida que eliminan permanentemente una opción de recompensa del pool durante el resto de la partida. |
| Reroll Tokens | rerolltokens | 3 | Tokens por partida que vuelven a tirar el trío de recompensas actual. |
Curva de Coste
La mayoría de las pistas usan la curva geométrica por defecto:
cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))
| Nivel objetivo | Coste (Soul Echoes) |
|---|---|
| 1 | 10 |
| 2 | 25 |
| 3 | 63 |
| 4 | 156 |
Extra Lives está ajustado manualmente y usa un calendario fijo en su lugar: 100 para la primera vida, 200 para la segunda.
Mecánicas de Ban / Reroll
Las pistas Ban y Reroll otorgan tokens por partida que el jugador puede gastar desde la pantalla de recompensas al subir de nivel:
- Ban (Vetar) -- consume un token de veto y añade el tipo de equipamiento elegido a un conjunto de "vetados" durante toda la partida. El constructor del pool filtra los tipos vetados de cada futura tirada de recompensa en esa partida. Útil para eliminar una pasiva que no tienes interés en mejorar, de modo que esa ranura siga ofreciendo algo distinto.
- Reroll (Re-tirar) -- consume un token de re-tirada y vuelve a sacar el trío actual de recompensas del pool (post-vetos). No hay cambio permanente en el pool.
Ambos botones aparecen en la línea de cabecera de la pantalla de recompensas junto con los contadores de tokens restantes (X bans X rerolls). Si ninguna de las pistas está desbloqueada, se muestra en su lugar una cabecera más simple "Pick your reward!".
Los balances de tokens se reinician al valor determinado por la pista de meta-progresión al inicio de cada partida -- no se acumulan entre partidas.
Formato de Almacenamiento
Estructura de 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
La caché es concurrente y se vuelca a disco cada vez que se ejecuta MetaProgressionManager.save() (al comprar, al sincronizar los echoes al final de la partida y al deshabilitar el plugin).
Reiniciar el Progreso
No existe un comando dentro del juego para borrar la meta-progresión. Para reiniciar para un jugador (o para todos), detén el servidor y edita / elimina la sección relevante en meta_progression.yml.