Aller au contenu principal

Méta-progression de MegaBlock Survivors

MegaBlock Survivors propose une progression entre les parties fondée sur les Soul Echoes, ou échos d'âme. Ils sont récoltés pendant les parties et dépensés au Sanctuaire des échos d'âme pour améliorer durablement l'équipement de départ des parties suivantes.

L'état persistant est enregistré dans plugins/MegaBlockSurvivors/meta_progression.yml, par UUID de joueur. Les sauvegardes sont synchrones et remplacent le fichier de manière atomique. Si la sauvegarde d'un achat échoue, le coût et l'amélioration sont annulés. Les Échos d'âme gagnés restent en mémoire après un échec de sauvegarde, mais peuvent être perdus au redémarrage tant qu'une sauvegarde ultérieure n'a pas réussi. Un échec de chargement conserve l'état en mémoire et bloque les sauvegardes et les achats jusqu'à un rechargement réussi. Consultez les erreurs de persistance dans les logs du serveur.

Gagner des Soul Echoes​

Les Soul Echoes apparaissent en partie sous forme d'objets LAPIS_LAZULI nommés Soul Echo. Ils s'empilent dans l'inventaire et sont transférés vers le solde persistant à la fermeture de la partie. Ce transfert les identifie uniquement par leur matériau : tout le lapis-lazuli de cet inventaire est donc consommé et comptabilisé, y compris celui apporté depuis l'extérieur. Séparez l'inventaire du mini-jeu des inventaires de survie.

SourceQuantité
Élimination d'un mob ordinaire, hors boss1 avec 1 % de probabilité par élimination
Scorpion de portail normal10-15, garanti
Scorpion de portail élite15-24, garanti
Scorpion de portail cauchemar25-35, garanti
Boss final du mode Challengeround(100 * 1.5^tributes), soit 100 sans tribut, puis 150 / 225 / environ 338 avec 1 / 2 / 3 tributs de boss
Point d'intérêt Cache de fragments d'âme50, ajoutés immédiatement au solde persistant, sans attendre le transfert de fin de partie

Les mobs de l'armée fantôme sont privés de récompenses et ne donnent rien.

Ouvrir le sanctuaire​

/mbs meta

Cette commande ouvre le dialogue du Sanctuaire des échos d'âme, qui présente :

  • le solde actuel de Soul Echoes
  • pour chaque amélioration, son niveau actuel, son plafond, sa statistique effective, l'aperçu du niveau suivant et son coût
  • un bouton d'achat par amélioration, ou l'indicateur MAXED
/mbs meta upgrade <track>

Achète un niveau de l'amélioration indiquée, puis rouvre le dialogue pour permettre des achats successifs.

Les achats sont également autorisés pendant une partie. Les limites d'emplacements d'armes et de passifs lisent la progression actuelle et peuvent donc changer pendant cette partie. Les PV, la chance et la vitesse de départ, les vies et les jetons de bannissement et de relance sont copiés à l'initialisation du joueur. Acheter ces améliorations ne renouvelle ni ne modifie leurs valeurs de départ dans une partie déjà commencée.

Améliorations permanentes​

AméliorationClé de commandePlafondEffet
PV de départhp4Niveau 0 : 10 PV de base, puis +2 PV par niveau. Maximum : 18 PV.
Chance de départluck4Niveau 0 : 0 chance, puis +2 par niveau. Maximum : 8.
Vitesse de départspeed4Multiplicateur de marche appliqué à BASE_WALK_SPEED. Niveau 0 : ×1,00, puis +0,05 par niveau. Maximum : ×1,20.
Emplacements d'armesweaponslots1Niveau 0 : 1 emplacement. Niveau 1 : 2 emplacements.
Emplacements de passifspassiveslots3Niveau 0 : 2 emplacements, puis +1 par niveau. Maximum : 5 emplacements.
Vies supplémentairesextralives2Réanimations Second souffle en réserve. Niveau 1 : 1 vie. Niveau 2 : 2 vies.
Jetons de bannissementbantokens3Jetons accordés à chaque partie pour filtrer un type d'équipement des tirages suivants, sous réserve du recours en cas de pool épuisé décrit ci-dessous.
Jetons de relancererolltokens3Jetons accordés à chaque partie pour renouveler les trois récompenses proposées.

Courbe des coûts​

La plupart des améliorations utilisent cette progression géométrique :

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

Niveau viséCoût en Soul Echoes
110
225
363
4156

Les vies supplémentaires utilisent un barème fixe ajusté séparément : 100 pour la première vie, 200 pour la seconde.

Bannissement et relance​

Les améliorations Bannissement et Relance donnent des jetons utilisables sur tous les écrans de récompense : montée de niveau, coffre et sablier. Chaque écran mémorise son type de pool avant de proposer les boutons. Relancer sur un coffre tire donc de nouveaux passifs ; relancer sur un sablier utilise le pool complet.

  • Bannir — consomme un jeton et ajoute le type d'équipement choisi à l'ensemble des types bannis pour la partie. Le constructeur du pool les exclut des tirages suivants et de sa première solution de secours. Si tous les types du pool de secours sont bannis, un dernier recours restaure le pool non filtré : il n'est donc pas garanti qu'un type banni ne revienne jamais lorsque le pool est épuisé. Cela permet notamment d'écarter un passif que vous ne souhaitez pas améliorer pour voir d'autres propositions.
  • Relancer — consomme un jeton et tire trois nouvelles récompenses dans le pool tenant compte des bannissements, sans le modifier durablement.

Les quantités restantes apparaissent dans l'en-tête : Pick your reward! | X bans X rerolls. Le bannissement utilise un bouton par choix, « Ban <name> », sous chacune des trois propositions. La relance utilise un bouton unique pour tout l'écran. Chaque commande est entièrement masquée lorsque son nombre de jetons atteint zéro. Sans aucun jeton, l'en-tête affiche simplement « Pick your reward! ».

Au début de chaque partie, les jetons sont réinitialisés au nombre déterminé par les améliorations permanentes. Les jetons non dépensés ne sont pas reportés.

Format de stockage​

Structure 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 accepte les accès concurrents. Il est écrit sur disque à chaque appel à MetaProgressionManager.save(), lors d'un achat, du transfert d'échos en fin de partie, du ramassage d'une Cache de fragments d'âme ou de la désactivation du plugin.

Réinitialiser la progression​

Aucune commande en jeu ne permet d'effacer la méta-progression. Pour réinitialiser un joueur ou tout le monde, arrêtez le serveur et modifiez ou supprimez la section concernée dans meta_progression.yml.