Files
sanctuary-beta/docs/progression-inline-beta013.md
2026-09-15 09:29:11 +02:00

7.8 KiB
Raw Permalink Blame History

beta.013 — compétences sur une ligne et prix du prestige

Ticket sur codex/progression-inline-costs, demandé le 13 septembre 2026. Contrat préalable à l'implémentation.

Résultat attendu

Chaque compétence occupe une ligne : icône, nom, jauge ASCII, valeur/plafond, retrait opérateur et achat. Les colonnes s'adaptent à la largeur disponible ; les noms trop longs défilent dans leur cellule et restent complets au survol. Les aptitudes gardent leur panneau distinct et leur défilement.

Les sept achats coûtent par défaut 1, 2, 4, 8, 16, 32, 48 niveaux. L'Inventaire utilise les cinq premiers. Le dernier achat passe ainsi de 64 à 48. Le New Game+ exige toujours les six compétences au maximum et donne, par défaut, un prestige et une charge personnelle. Une charge fonde une faction de deux places ; rejoindre sur invitation ne demande pas de prestige. La page Factions explique où gagner les charges et mène à la page Cycle. Les règles de faction restent celles de beta.011, configurables côté serveur.

Ajouts demandés pendant le ticket : après un prestige, toutes les cases visibles de récupération sont grisées, même vides et même dans les deux rangées supplémentaires. Les objets restent lisibles et récupérables. Ce repère suit l'inventaire personnel, les conteneurs et leur défilement ; aucune règle de transfert ne change. La fiche Habitant ajoute au nom le prestige en chiffres romains (Poupoutain I, Poupoutain II), sans changer le pseudo enregistré.

La carte conserve son image lors d'un rafraîchissement réseau et les relevés déjà reçus lors d'un déplacement. Le cache en mémoire est borné à 16 384 chunks et disparaît à la fermeture, au changement de dimension/mode ou au retrait des droits. Les sauvegardes Atlas et le protocole de lecture restent identiques. Le repère personnel utilise le sprite natif du locator et la couleur de l'habitant. Les marqueurs du locator se superposent à la barre dXP native : le fond et le remplissage dexpérience restent visibles derrière les points. Le serveur renseigne la couleur de l'habitant dans son icône native de waypoint à la connexion et à la restauration ; aucun changement de portée, de furtivité ou de permissions du locator. Cette propriété native est conservée avec les données Minecraft du joueur, sans nouveau format Sanctuary.

La molette agit selon le survol : hotbar → sélection horizontale ; stockage débloqué → rotation des rangées ; offres de villageois → défilement natif. Le titre dinventaire et les cases de récupération gardent le défilement des rangées masquées dans les grands conteneurs. Tab/Maj+Tab restent disponibles. Les rotations utilisent le protocole beta.012 ; une courte file bornée attend les confirmations serveur et sannule à la fermeture du menu. Aucun objet porté par le curseur ni glisser-déposer ne déclenche de rotation.

Migration de configuration

La configuration de progression passe au schéma 3. Lors du chargement par le serveur, les schémas 1 et 2 sont repris : seule la courbe exactement égale à [1,2,4,8,16,32,64] devient [1,2,4,8,16,32,48]. Une courbe personnalisée reste intacte, ainsi que les autres réglages. Le schéma 1 reçoit toujours le prix Atlas par défaut de 4, selon le contrat beta.005.

La configuration migrée est validée puis enregistrée atomiquement en vérifiant que le fichier d'origine n'a pas changé. Un fichier invalide est refusé, jamais remplacé par les valeurs par défaut. Le schéma 3 n'est pas réécrit au rechargement ; une courbe choisie explicitement dans ce schéma, y compris avec un prix final de 64, reste la décision du serveur. Client et serveur utilisent beta.013 ensemble.

Les données des habitants ne changent pas de format. Aucun rang, achat, date, objet, aptitude, faction, charge ou prestige n'est retiré. Les achats existants gardent leurs prix : le retrait opérateur d'un rang payé 64 rembourse 64 ; un nouvel achat de ce rang coûte ensuite 48 avec la nouvelle courbe par défaut. Aucune modification du terrain ni de la génération. Export local pour essai.

Vérifications

Les tests de contrat vérifient la reprise des schémas 1/2, la conservation d'une courbe personnalisée, le refus d'un fichier corrompu et l'absence de réécriture du schéma 3. Un achat historique à 64 est remboursé à 64, tandis qu'un nouvel achat du même rang coûte 48. Les tests de Minage et Construction attendent désormais 111 niveaux pour les sept rangs, au lieu de 127.

Le parcours graphique natif passe avec Minecraft 26.3-pre-2, Fabric Loader 0.19.5, Fabric API 0.160.0+26.3 et Java 25 :

./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
  -PsanctuaryInlineClientTests=true -PsanctuaryInventoryClientTests=true
  • Colonnes alignées en français et en anglais, GUI 1 et automatique, ainsi qu'en fenêtre de 640 × 480 (GUI logique 320 × 240). Les jauges, valeurs et boutons ont les mêmes abscisses pour les six compétences.
  • Bouton + absent sans XP, dernier achat refusé à 47 et accepté à 48 niveaux ; retrait opérateur puis remboursement. Parcours explicatif Factions → Cycle.
  • Véritable confirmation New Game+ : prestige I sur la fiche, nom enregistré inchangé, objets conservés. Les 45 cases de récupération dessinées sont grisées, y compris les cases vides et supplémentaires ; coffres de trois et six rangées contrôlés aux deux extrémités de leur défilement.
  • Un relevé hors de la zone de capture passive reste dessiné pendant un glisser, son relâchement et 150 ticks de rafraîchissement ; le centre choisi reste fixe. Le retrait des droits opérateur vide bien la vue concernée.
  • La carte emploie le sprite natif. Un waypoint reçu par le protocole Minecraft apparaît à yXP 2, dans sa couleur, avec fond et remplissage XP présents et sans fond de locator supplémentaire. La couleur projetée côté serveur est également contrôlée. Ce test utilise un waypoint de laboratoire, pas une session multijoueur à trente personnes.
  • Dispatch natif de la molette : sélection de case synchronisée au serveur, rotations avant/arrière et plusieurs crans en attente, Tab/Maj+Tab ; vingt offres dans un menu de commerce natif défilent sans modifier la hotbar, et les gestes sur l'inventaire ne font pas défiler les offres.

Journal graphique : build/progression013-client-delivery.log ; les 17 captures sont conservées dans build/progression013-evidence/. Les mondes de laboratoire et les classes de test restent dans les dossiers de développement ignorés. Les menus de mods communautaires extérieurs ne font pas partie de ce contrôle.

La livraison finale réussit :

./gradlew check build assemblePack :sanctuary:runGameTest \
  -PsanctuaryFocusedTests=progression,map,demeure,mining,building,inventory,cycle,inventoryflow

50/50 tests natifs serveur passent, avec les contrôles de contrat du projet. Journal : build/progression013-delivery-verified.log (BUILD SUCCESSFUL, 4 min 10 s). La première passe avait signalé uniquement les deux anciens totaux de 127 niveaux dans les tests de Minage et Construction, corrigés pour 111.

Artefact d'essai

Sanctuary-beta.013.mrpack, 2 503 734 octets. Export packwiz après le build final ; versions internes beta.013, JAR embarqué identique au build, Demeure imbriqué identique à son module, absence de classes de test, dépendance Fabric API, ressources et clés FR/EN vérifiées. Les exports beta.003 à beta.012 gardent leurs empreintes précédentes.

  • SHA-256 MRpack : 3e4348ea2817d3fb45e432cfbd5feb01e84d29e3938e3b08370c7dc6eca77398.
  • SHA-256 JAR Sanctuary : 28e8a486053cc83dd4a8375f805deaf8922c2282e6c995e53ba7c4e6599f62ce.
  • Reçu : build/progression013-artifact.json.

Cet export local ne publie pas le canal packwiz et ne synchronise pas l'installation Prism personnelle.