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.
| Source | Quantité |
|---|---|
| Élimination d'un mob ordinaire, hors boss | 1 avec 1 % de probabilité par élimination |
| Scorpion de portail normal | 10-15, garanti |
| Scorpion de portail élite | 15-24, garanti |
| Scorpion de portail cauchemar | 25-35, garanti |
| Boss final du mode Challenge | round(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'âme | 50, 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élioration | Clé de commande | Plafond | Effet |
|---|---|---|---|
| PV de départ | hp | 4 | Niveau 0 : 10 PV de base, puis +2 PV par niveau. Maximum : 18 PV. |
| Chance de départ | luck | 4 | Niveau 0 : 0 chance, puis +2 par niveau. Maximum : 8. |
| Vitesse de départ | speed | 4 | Multiplicateur de marche appliqué à BASE_WALK_SPEED. Niveau 0 : ×1,00, puis +0,05 par niveau. Maximum : ×1,20. |
| Emplacements d'armes | weaponslots | 1 | Niveau 0 : 1 emplacement. Niveau 1 : 2 emplacements. |
| Emplacements de passifs | passiveslots | 3 | Niveau 0 : 2 emplacements, puis +1 par niveau. Maximum : 5 emplacements. |
| Vies supplémentaires | extralives | 2 | Réanimations Second souffle en réserve. Niveau 1 : 1 vie. Niveau 2 : 2 vies. |
| Jetons de bannissement | bantokens | 3 | Jetons 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 relance | rerolltokens | 3 | Jetons 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 |
|---|---|
| 1 | 10 |
| 2 | 25 |
| 3 | 63 |
| 4 | 156 |
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.