Aller au contenu principal

Méta-Progression de MegaBlock Survivors

MegaBlock Survivors dispose d'une couche de progression entre les parties appelée Soul Echoes. Les Soul Echoes sont collectés pendant les parties et dépensés au Sanctuaire des Échos d'Âme pour améliorer de manière permanente l'équipement de départ du joueur dans toutes ses parties futures.

L'état persistant se trouve dans plugins/MegaBlockSurvivors/meta_progression.yml, indexé par UUID du joueur. Les sauvegardes sont synchrones, de sorte que l'état sur disque reflète toujours la dernière modification au retour de l'appel.

Gagner des Soul Echoes

La source principale en match est la récompense POI Cache de Fragments d'Âme. Chaque cache ajoute directement des Soul Echoes au solde de méta-progression du joueur et affiche une ligne de retour dans le chat. Tout solde en cours de partie non flushé est également ajouté à la fin du match.

Ouvrir le sanctuaire

/mbs meta

Ouvre le dialogue du Sanctuaire des Échos d'Âme. Le dialogue affiche :

  • Le solde actuel de Soul Echoes.
  • Pour chaque piste d'amélioration : niveau actuel, plafond, statistique effective actuelle, aperçu du prochain niveau et coût du prochain niveau.
  • Un bouton d'achat par piste (ou un indicateur MAXED).
/mbs meta upgrade <track>

Achète un seul niveau sur la piste nommée et rouvre le dialogue afin que plusieurs améliorations puissent être achetées à la suite.

Pistes d'amélioration

PisteClé de commandePlafondEffet
PV de Départhp4Niv. 0 = 10 PV (référence), +2 PV par niveau. Maxé : 18 PV.
Chance de Départluck4Niv. 0 = 0 chance, +2 chance par niveau. Maxé : 8.
Vitesse de Départspeed4Multiplicateur de vitesse de marche sur BASE_WALK_SPEED. Niv. 0 = 1,00x, +0,05 par niveau. Maxé : 1,20x.
Emplacements d'Armesweaponslots1Niv. 0 = 1 emplacement, Niv. 1 = 2 emplacements.
Emplacements de Passifspassiveslots3Niv. 0 = 2 emplacements, +1 par niveau. Maxé : 5 emplacements.
Vies Supplémentairesextralives2Réanimations Second Wind en réserve. Niv. 1 = 1 vie, Niv. 2 = 2 vies.
Jetons de Bannissementbantokens3Jetons par partie qui retirent définitivement une option de récompense du pool pour le reste de la partie.
Jetons de Relancererolltokens3Jetons par partie qui retirent un nouveau trio de récompenses.

Courbe de coût

La plupart des pistes utilisent la courbe géométrique par défaut :

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

Niveau cibleCoût (Soul Echoes)
110
225
363
4156

Vies Supplémentaires est ajusté à la main et utilise plutôt un barème fixe : 100 pour la première vie, 200 pour la deuxième.

Mécaniques de Bannissement / Relance

Les pistes Bannissement et Relance accordent des jetons par partie que le joueur peut dépenser depuis l'écran de récompense de montée de niveau :

  • Bannir -- consomme un jeton de bannissement et ajoute le type d'équipement choisi à un ensemble « banni » valable pour toute la partie. Le constructeur de pool filtre les types bannis de chaque tirage de récompense ultérieur dans cette partie. Utile pour retirer un passif que vous n'avez pas envie d'améliorer afin que son emplacement continue de proposer autre chose.
  • Relancer -- consomme un jeton de relance et retire un nouveau trio de récompenses depuis le pool (post-bannissements). Aucun changement permanent du pool.

Les deux boutons apparaissent sur la ligne d'en-tête de l'écran de récompense aux côtés du nombre de jetons restants (X bans X rerolls). Si aucune des deux pistes n'est débloquée, un en-tête plus simple « Pick your reward! » est affiché à la place.

Les soldes de jetons sont réinitialisés à la valeur déterminée par la piste de méta-progression au début de chaque match -- ils ne sont pas reportés.

Format de stockage

Disposition 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

Le cache est concurrent et est flushé sur disque chaque fois que MetaProgressionManager.save() s'exécute (à l'achat, au flush des échos en fin de match, et à la désactivation du plugin).

Réinitialiser la progression

Il n'existe pas de commande en jeu pour effacer la méta-progression. Pour réinitialiser pour un joueur (ou pour tout le monde), arrêtez le serveur et modifiez / supprimez la section concernée dans meta_progression.yml.