# beta.025 — barres d’expérience des compétences Ticket sur `codex/skill-xp-bars-beta025`. ## Affichage Dans **Blocodex → Progression**, les six compétences gardent chacune leur ligne : icône, nom, grande barre d’XP, retrait opérateur et achat. La barre utilise les sprites Minecraft `hud/experience_bar_background` et `hud/experience_bar_progress` : le resource pack peut donc modifier ensemble ce rendu et celui du HUD. Le prix du prochain achat en **niveaux** apparaît au centre, avec le nombre vert et le contour noir du compteur d’expérience natif. Il reste visible sans XP ; le bouton **+** apparaît lorsque l’achat est possible. Une barre complète n’affiche plus de prix ni de texte « Max ». Le bouton **−** opérateur rembourse toujours le prix effectivement payé pour le dernier rang. Le remplissage représente les paliers de compétence, indépendamment de l’XP disponible. Le palier initial occupe une part : `(rang + 1) / (plafond + 1)`. Ainsi toutes les barres commencent légèrement remplies, y compris Minage et Construction, puis avancent à chaque achat. Le survol explique ce principe et conserve le détail de la capacité et du prochain effet, en français et en anglais. La barre prend la largeur restante de la ligne. Les noms longs peuvent défiler sur une petite interface ; leur infobulle conserve le nom et les capacités. Le panneau des aptitudes garde son défilement indépendant. ## Portée Affichage uniquement : prix, progression serveur, remboursements, prestige, protocole et sauvegardes restent identiques. L’inventaire garde **six rangées** ; un palier supplémentaire reste une idée à discuter. Aucun monde existant n’est modifié. JEI et l’optimisation du chargement de beta.024 sont conservés. ## Vérifications et livraison `./gradlew check build assemblePack -PsanctuaryFocusedTests=progression,inventory,cycle` réussit : **24 tests serveur** et les contrôles de contrat du projet passent. Le parcours graphique natif dédié réussit avec : ```sh ./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \ -PsanctuarySkillsClientTests=true ``` Six barres alignées en français/anglais, GUI 1, 2 et automatique, fenêtre de 640 × 480 et défilement jusqu’à l’Inventaire. Achat réel du dernier rang refusé à 47 niveaux puis accepté à 48, remboursement opérateur exact, barres pleines sans nouvel achat et retour entre onglets. Les dix captures ont été inspectées ; elles sont conservées dans `build/skills025-evidence/`. Le test fixe explicitement l’XP à zéro après l’admission, car les Premiers pas peuvent déjà en avoir donné. Le client de développement a nécessité de désactiver sa VSync après un blocage OpenGL au démarrage ; aucun réglage personnel modifié. L’export est contrôlé : ZIP, version interne, JAR et 1 253 classes identiques au build, dépendances Demeure/JEI imbriquées identiques, absence de classes de test. Seuls l’écran Progression et le nouveau composant de barre changent dans le code compilé Sanctuary par rapport à beta.024. Les autres classes, notamment les règles de progression, l’inventaire et le terrain, sont identiques. Le MRpack beta.024 conserve son empreinte. [Sanctuary-beta.025.mrpack](../build/Sanctuary-beta.025.mrpack), **4 765 821 octets**. SHA-256 : `0601841b46da38656c00a2f88a690883b9066e886af7b0a3ba6df7677bae0ef7`. Reçu : `build/skills025-artifact.json`. Journaux : `build/skills025-check.log` et `build/skills025-client.log`. Export local ; canal packwiz et installation Prism personnelle non modifiés.