Pular para o conteúdo principal

Meta-Progressão do MegaBlock Survivors

O MegaBlock Survivors tem uma camada de progressão entre partidas chamada Ecos de Alma. Os Ecos de Alma são coletados durante as partidas e gastos no Santuário do Eco de Alma para melhorar permanentemente o loadout inicial do jogador em todas as partidas futuras.

O estado persistente fica em plugins/MegaBlockSurvivors/meta_progression.yml, indexado pelo UUID do jogador. As gravações são síncronas, então o estado em disco sempre reflete a última mudança quando a chamada retorna.

Ganhando Ecos de Alma

A fonte principal dentro da partida é a recompensa do POI Cache de Fragmentos de Alma. Cada cache adiciona Ecos de Alma diretamente ao saldo de meta-progressão do jogador e mostra uma linha de feedback no chat. Qualquer saldo dentro da partida ainda não contabilizado também é adicionado no encerramento da partida.

Abrindo o Santuário

/mbs meta

Abre o diálogo do Santuário do Eco de Alma. O diálogo exibe:

  • Saldo atual de Ecos de Alma.
  • Para cada trilha de melhoria, o nível atual, o limite, o atributo efetivo atual, a prévia do próximo nível e o custo do próximo nível.
  • Um botão de compra por trilha (ou um indicador MAXED).
/mbs meta upgrade <track>

Compra um único nível na trilha indicada e reabre o diálogo, para que várias melhorias possam ser adquiridas em sequência.

Trilhas de Melhoria

TrilhaChave de comandoLimiteEfeito
HP Inicialhp4Lvl 0 = 10 HP (linha base), +2 HP por nível. No máximo: 18 HP.
Sorte Inicialluck4Lvl 0 = 0 de sorte, +2 de sorte por nível. No máximo: 8.
Velocidade Inicialspeed4Multiplicador de velocidade de caminhada em BASE_WALK_SPEED. Lvl 0 = 1.00x, +0.05 por nível. No máximo: 1.20x.
Slots de Armaweaponslots1Lvl 0 = 1 slot, Lvl 1 = 2 slots.
Slots Passivospassiveslots3Lvl 0 = 2 slots, +1 por nível. No máximo: 5 slots.
Vidas Extrasextralives2Reanimações de Segundo Fôlego guardadas. Lvl 1 = 1 vida, Lvl 2 = 2 vidas.
Tokens de Banimentobantokens3Tokens por partida que removem permanentemente uma opção de recompensa do pool pelo restante da partida.
Tokens de Rerollrerolltokens3Tokens por partida que re-sorteiam o trio atual de recompensas.

Curva de Custo

A maioria das trilhas usa a curva geométrica padrão:

cost(targetLevel) = round(10 * 2.5^(targetLevel - 1))

Nível AlvoCusto (Ecos de Alma)
110
225
363
4156

A trilha Vidas Extras é ajustada manualmente e usa um cronograma fixo: 100 para a primeira vida e 200 para a segunda.

Mecânica de Banimento / Reroll

As trilhas de Banimento e Reroll concedem tokens por partida que o jogador pode gastar na tela de recompensa de level up:

  • Banir -- consome um token de banimento e adiciona o tipo de equipamento escolhido a um conjunto de "banidos" válido pela partida. O construtor do pool filtra os tipos banidos de todos os sorteios futuros de recompensa naquela partida. Útil para remover um passivo no qual você não tem interesse em melhorar, de modo que seu slot continue oferecendo outra coisa.
  • Reroll -- consome um token de reroll e re-sorteia o trio atual de recompensas a partir do pool (já com os bans aplicados). Não há mudança permanente no pool.

Ambos os botões aparecem na linha de cabeçalho da tela de recompensa, junto com as contagens restantes dos tokens (X bans X rerolls). Se nenhuma das trilhas estiver desbloqueada, um cabeçalho mais simples "Pick your reward!" é exibido no lugar.

Os saldos de tokens são reiniciados para o valor determinado pela trilha de meta-progressão no início de cada partida -- eles não são transferidos.

Formato de Armazenamento

Estrutura do 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

O cache é concorrente e é descarregado em disco toda vez que MetaProgressionManager.save() é executado (na compra, na contabilização de ecos ao final da partida e ao desabilitar o plugin).

Resetando o Progresso

Não há comando dentro do jogo para apagar a meta-progressão. Para resetar para um jogador (ou para todos), pare o servidor e edite / exclua a seção relevante em meta_progression.yml.