Progressão permanente do MegaBlock Survivors
O MegaBlock Survivors tem um sistema de progressão entre partidas chamado Ecos de Alma. Os jogadores recolhem estes ecos durante as partidas e gastam-nos no Santuário dos Ecos de Alma para melhorar permanentemente as condições iniciais de todas as partidas futuras.
Os dados ficam em plugins/MegaBlockSurvivors/meta_progression.yml, identificados pelo UUID do jogador. As gravações são síncronas e substituem o ficheiro de forma atómica. Se a gravação de uma compra falhar, o custo e a melhoria são revertidos. Os Ecos de Alma ganhos permanecem em memória após uma falha de gravação, mas podem perder-se ao reiniciar enquanto uma gravação posterior não tiver sucesso. Uma falha de leitura preserva o estado em memória e bloqueia gravações e compras até um recarregamento bem-sucedido. Consulte os erros de persistência no registo do servidor.
Obter Ecos de Alma
Durante a partida, os ecos aparecem como objetos LAPIS_LAZULI com o nome Soul Echo. Acumulam-se no inventário e são transferidos para o saldo persistente quando a partida termina. Esta transferência identifica-os apenas pelo material: todo o lápis-lazúli desse inventário é consumido e contabilizado, incluindo o lápis-lazúli normal levado para a partida. Mantenha o inventário do minijogo separado dos inventários de sobrevivência.
| Origem | Quantidade |
|---|---|
| Morte de uma criatura normal, sem ser boss | 1, com 1% de probabilidade por morte. |
| Escorpião do portal, Normal | 10 a 15, garantidos. |
| Escorpião do portal, Elite | 15 a 24, garantidos. |
| Escorpião do portal, Pesadelo | 25 a 35, garantidos. |
| Boss final, modo Desafio | round(100 * 1.5^tributes): 100 sem tributos; 150, 225 ou aproximadamente 338 com 1, 2 ou 3 Tributos de Boss. |
| Ponto de interesse Reserva de Fragmentos de Alma | 50, depositados imediatamente no saldo persistente, sem esperar pelo fim da partida. |
As criaturas do Exército de Fantasmas têm as recompensas desativadas e não deixam objetos.
Abrir o santuário
/mbs meta
Abre a caixa de diálogo do Santuário dos Ecos de Alma, que mostra:
- O saldo atual de ecos.
- O nível atual e máximo de cada melhoria, o valor efetivo do atributo, a previsão do nível seguinte e o respetivo custo.
- Um botão de compra por melhoria, ou o indicador
MAXEDquando chegou ao máximo.
/mbs meta upgrade <track>
Compra um nível da melhoria indicada e reabre a caixa de diálogo, permitindo fazer várias compras consecutivas.
Também é possível comprar durante uma partida. Os limites de espaços para armas e objetos passivos consultam o registo de progresso atual e podem mudar nessa partida. A vida, sorte e velocidade iniciais, as vidas adicionais e as fichas de exclusão e novo sorteio são copiadas ao inicializar o jogador. Comprar essas melhorias não repõe nem altera os respetivos valores iniciais numa partida já começada.
Melhorias disponíveis
| Melhoria | Chave do comando | Limite | Efeito |
|---|---|---|---|
| Vida inicial | hp | 4 | Nível 0: 10 de vida; mais 2 por nível, até 18. |
| Sorte inicial | luck | 4 | Nível 0: 0 de sorte; mais 2 por nível, até 8. |
| Velocidade inicial | speed | 4 | Multiplicador da velocidade de caminhada sobre BASE_WALK_SPEED. Nível 0: ×1,00; mais 0,05 por nível, até ×1,20. |
| Espaços para armas | weaponslots | 1 | Nível 0: um espaço; nível 1: dois espaços. |
| Espaços para objetos passivos | passiveslots | 3 | Nível 0: dois espaços; mais um por nível, até cinco. |
| Vidas adicionais | extralives | 2 | Renascimentos Segundo Fôlego guardados. Nível 1: uma vida; nível 2: duas vidas. |
| Fichas de exclusão | bantokens | 3 | Fichas por partida para filtrar um tipo de equipamento dos sorteios seguintes, sujeitas à alternativa para conjuntos esgotados descrita abaixo. |
| Fichas de novo sorteio | rerolltokens | 3 | Fichas por partida para sortear novamente o trio atual de recompensas. |
Evolução dos custos
A maioria das melhorias usa a curva geométrica predefinida:
cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))
| Nível pretendido | Custo em Ecos de Alma |
|---|---|
| 1 | 10 |
| 2 | 25 |
| 3 | 63 |
| 4 | 156 |
As vidas adicionais usam custos fixos definidos individualmente: 100 para a primeira e 200 para a segunda.
Exclusões e novos sorteios
Estas melhorias concedem fichas que podem ser gastas em qualquer ecrã de recompensas: subida de nível, baú ou ampulheta. Cada ecrã guarda o seu tipo de conjunto antes de apresentar os botões. Assim, um novo sorteio num baú volta a escolher entre os objetos passivos; numa ampulheta, usa o conjunto completo.
- Excluir: consome uma ficha e acrescenta o tipo de equipamento selecionado ao conjunto de excluídos da partida. O sistema filtra esses tipos nos sorteios posteriores e na primeira seleção de recurso. Se todos os tipos desse conjunto de recurso estiverem excluídos, uma última alternativa repõe o conjunto sem filtros. Por isso, a exclusão não garante que uma opção nunca volte quando as alternativas se esgotam. É útil para retirar um objeto passivo que não pretenda melhorar e obter outras propostas nesse espaço.
- Sortear novamente: consome uma ficha e volta a escolher as três recompensas a partir do conjunto com as exclusões aplicadas. Não altera permanentemente esse conjunto.
As quantidades restantes aparecem no cabeçalho (Pick your reward! | X bans X rerolls). A exclusão tem um botão por opção, identificado como "Ban <name>", abaixo de cada uma das três recompensas. O novo sorteio tem um único botão para o ecrã. Cada controlo desaparece quando as respetivas fichas chegam a zero. Sem fichas, o cabeçalho volta a mostrar apenas a instrução para escolher a recompensa.
No início de cada partida, as quantidades de fichas são repostas conforme as melhorias permanentes. As fichas não usadas não transitam.
Formato de armazenamento
Estrutura 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
A cache suporta acesso concorrente e é gravada em disco sempre que MetaProgressionManager.save() é executado: nas compras, na transferência dos ecos no fim da partida, ao recolher uma Reserva de Fragmentos de Alma e ao desativar o plugin.
Repor o progresso
Não existe um comando no jogo para apagar a progressão permanente. Para a repor para um jogador ou para todos, pare o servidor e edite ou apague a secção correspondente em meta_progression.yml.