Progresión permanente de MegaBlock Survivors
MegaBlock Survivors tiene una progresión entre partidas basada en los ecos de alma. Se recogen durante las partidas y se gastan en el santuario de ecos de alma para mejorar permanentemente las condiciones iniciales del jugador en todas las partidas futuras.
El estado persistente se guarda en plugins/MegaBlockSurvivors/meta_progression.yml, con el UUID del jugador como clave. Los guardados son síncronos y reemplazan el archivo de forma atómica. Si falla el guardado de una compra, se revierten tanto el coste como la mejora. Los Ecos de Alma ganados permanecen en memoria tras un fallo de guardado, pero pueden perderse al reiniciar hasta que un guardado posterior tenga éxito. Un fallo de carga conserva el estado en memoria y bloquea los guardados y las compras hasta una recarga correcta. Consulta los errores de persistencia en el registro del servidor.
Obtener ecos de alma
Los ecos de alma aparecen durante la partida como objetos LAPIS_LAZULI con la etiqueta Soul Echo. Se acumulan en el inventario del jugador y se transfieren al saldo persistente al cerrar la partida. La transferencia los identifica únicamente por su material, por lo que consume y cuenta todo el lapislázuli del inventario, incluido el normal que se haya llevado a la partida. Mantén el inventario del minijuego separado de los inventarios de supervivencia.
| Fuente | Cantidad |
|---|---|
| Matar cualquier mob normal que no sea jefe | 1, con una probabilidad del 1% por baja |
| Escorpión del portal: normal | 10-15, garantizados |
| Escorpión del portal: élite | 15-24, garantizados |
| Escorpión del portal: pesadilla | 25-35, garantizados |
| Jefe final del modo Desafío | round(100 * 1.5^tributes): 100 sin tributos, 150 / 225 / ~338 con 1 / 2 / 3 tributos al jefe |
| Punto de interés alijo de fragmentos de alma | 50, ingresados inmediatamente en el saldo persistente, sin esperar a la transferencia final de la partida |
Los mobs del ejército fantasma tienen las recompensas deshabilitadas y no sueltan nada.
Abrir el santuario
/mbs meta
Abre el diálogo del santuario de ecos de alma, que muestra:
- El saldo actual de ecos de alma.
- El nivel actual y máximo de cada línea de mejora, su estadística efectiva actual, una vista previa del siguiente nivel y su coste.
- Un botón de compra por línea o el indicador
MAXED.
/mbs meta upgrade <track>
Compra un nivel de la línea indicada y vuelve a abrir el diálogo para permitir varias compras consecutivas.
También se puede comprar durante una partida. Los límites de ranuras de armas y objetos pasivos consultan el registro de progreso actual y pueden cambiar en esa misma partida. La salud, suerte y velocidad iniciales, las vidas y las fichas de veto y nueva tirada se copian al inicializar al jugador; comprar esas mejoras no repone ni cambia sus valores iniciales en una partida ya empezada.
Líneas de mejora
| Línea | Clave del comando | Máximo | Efecto |
|---|---|---|---|
| Salud inicial | hp | 4 | Nivel 0 = 10 puntos de salud de base; +2 por nivel. Máximo: 18. |
| Suerte inicial | luck | 4 | Nivel 0 = 0 de suerte; +2 por nivel. Máximo: 8. |
| Velocidad inicial | speed | 4 | Multiplicador de velocidad al caminar sobre BASE_WALK_SPEED. Nivel 0 = 1.00x; +0.05 por nivel. Máximo: 1.20x. |
| Ranuras de armas | weaponslots | 1 | Nivel 0 = 1 ranura; nivel 1 = 2 ranuras. |
| Ranuras de objetos pasivos | passiveslots | 3 | Nivel 0 = 2 ranuras; +1 por nivel. Máximo: 5 ranuras. |
| Vidas extra | extralives | 2 | Resurrecciones de Segundo aliento guardadas. Nivel 1 = 1 vida; nivel 2 = 2 vidas. |
| Fichas de veto | bantokens | 3 | Fichas por partida que filtran un tipo de equipamiento de las tiradas posteriores, con la excepción de conjunto agotado descrita abajo. |
| Fichas de nueva tirada | rerolltokens | 3 | Fichas por partida que renuevan el trío actual de recompensas. |
Curva de costes
La mayoría de las líneas usan la curva geométrica predeterminada:
cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))
| Nivel objetivo | Coste en ecos de alma |
|---|---|
| 1 | 10 |
| 2 | 25 |
| 3 | 63 |
| 4 | 156 |
Las vidas extra tienen costes fijos ajustados manualmente: 100 para la primera y 200 para la segunda.
Mecánicas de veto y nueva tirada
Las líneas de veto y nueva tirada conceden fichas por partida que se pueden gastar desde cualquier pantalla de recompensas: subida de nivel, cofre o reloj de arena. La pantalla guarda el tipo de conjunto que usa antes de ofrecer los botones; por eso, una nueva tirada en un cofre vuelve a elegir objetos pasivos, y en un reloj de arena vuelve a elegir del conjunto completo.
- Vetar: consume una ficha de veto y añade el tipo de equipamiento elegido a un conjunto de vetados que dura toda la partida. El generador filtra esos tipos de las tiradas posteriores y de su primera selección alternativa. Si todos los tipos de ese conjunto alternativo están vetados, una última alternativa restaura el conjunto sin filtrar, por lo que no se garantiza que un tipo nunca reaparezca cuando se agoten las opciones. Es útil para eliminar un objeto pasivo que no quieras mejorar y hacer que su opción ofrezca algo distinto.
- Nueva tirada: consume una ficha y vuelve a elegir el trío actual de recompensas del conjunto tras aplicar los vetos. No cambia permanentemente el conjunto.
Los contadores restantes aparecen en la cabecera de la pantalla de recompensas: Pick your reward! | X bans X rerolls. Vetar es un botón por opción, con un control para vetar <name> debajo de cada una de las tres opciones, mientras que Nueva tirada es un único botón para toda la pantalla. Cada control desaparece por completo al llegar su contador a cero; cuando no quedan fichas, la cabecera vuelve a mostrar únicamente la invitación a elegir recompensa.
Los saldos de fichas se restablecen al valor determinado por la línea de progresión permanente al empezar cada partida; no se acumulan de una partida a otra.
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é admite acceso concurrente y se escribe en disco cada vez que se ejecuta MetaProgressionManager.save(): al comprar, al transferir los ecos al terminar una partida, al recoger una Soul Shard Cache y al deshabilitar el plugin.
Reiniciar el progreso
No hay un comando del juego para borrar la progresión permanente. Para reiniciar la de un jugador o la de todos, detén el servidor y edita o elimina la sección correspondiente de meta_progression.yml.