Saltar para o conteúdo principal

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.

OrigemQuantidade
Morte de uma criatura normal, sem ser boss1, com 1% de probabilidade por morte.
Escorpião do portal, Normal10 a 15, garantidos.
Escorpião do portal, Elite15 a 24, garantidos.
Escorpião do portal, Pesadelo25 a 35, garantidos.
Boss final, modo Desafioround(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 Alma50, 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 MAXED quando 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​

MelhoriaChave do comandoLimiteEfeito
Vida inicialhp4Nível 0: 10 de vida; mais 2 por nível, até 18.
Sorte inicialluck4Nível 0: 0 de sorte; mais 2 por nível, até 8.
Velocidade inicialspeed4Multiplicador 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 armasweaponslots1Nível 0: um espaço; nível 1: dois espaços.
Espaços para objetos passivospassiveslots3Nível 0: dois espaços; mais um por nível, até cinco.
Vidas adicionaisextralives2Renascimentos Segundo Fôlego guardados. Nível 1: uma vida; nível 2: duas vidas.
Fichas de exclusãobantokens3Fichas por partida para filtrar um tipo de equipamento dos sorteios seguintes, sujeitas à alternativa para conjuntos esgotados descrita abaixo.
Fichas de novo sorteiorerolltokens3Fichas 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 pretendidoCusto em Ecos de Alma
110
225
363
4156

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.