Files
sanctuary-beta/docs/swimming-recipebook-beta017.md
2026-09-15 09:29:11 +02:00

147 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# beta.017 — aptitudes Nage/Sallonger/Repos et retrait du livre de recettes
Ticket du 13 septembre 2026, branche `codex/swimming-recipebook-beta017`.
Contrat préalable aux changements de progression et d'interface.
## Nage
Nouvelle aptitude achetable `swimming`, libellés **Nage / Swimming**, coût par
défaut **4 niveaux** réglable par `swimmingCost` côté serveur. Elle reste dans
la liste des aptitudes et suit leur conservation générale après mort et New Game+.
Les six compétences au maximum suffisent toujours au prestige.
Sans cette aptitude, les joueurs Sanctuary en survie/aventure gardent les
mouvements lents dans l'eau, la flottabilité et la possibilité de remonter.
Le sprint aquatique et la posture de nage rapide sont refusés sur les deux
côtés logiques, y compris en entrant dans l'eau alors qu'on court. Sur terre,
le sprint reste disponible selon la faim. Après achat, le sprint aquatique
suit les règles de faim existantes : plus de six points de nourriture.
Respiration, bulles vanilla, bateaux, rampement dans les petits espaces et
mouvements des animaux restent inchangés. Créatif/spectateur et joueurs sans
progression Sanctuary gardent leur comportement natif.
## Sallonger
Nouvelle aptitude `lying`, **Sallonger / Lie down**, 4 niveaux par défaut,
configurable par `lyingCost`. **W** bascule la position et se configure dans
Contrôles → Sanctuary. Le défaut résout la lettre W selon la disposition active
du clavier, y compris AZERTY ; les raccourcis personnalisés restent prioritaires.
Elle autorise la posture basse native et le déplacement
lent au sol. La touche relève le personnage quand l'espace le permet ; les
collisions natives gardent la posture basse sous un plafond trop bas.
Pas de sommeil, soin ou changement d'heure. L'entrée dans l'eau, le vol,
le véhicule, le lit ou la mort arrêtent la position volontaire.
La posture temporaire utilise `sanctuary:lying` synchronisé du serveur aux
clients qui voient le joueur, sans persistance ni copie à la mort. L'aptitude,
elle, reste dans l'historique et après le prestige. La requête réseau contient
un état souhaité et une révision ; le serveur vérifie l'achat et la position
au sol avant de l'accepter. En créatif, on peut tester la posture sans achat.
## Se reposer
Aptitude distincte `resting`, **Se reposer / Rest**, 4 niveaux par défaut, coût
`restingCost`. **Maj + W** (Maj + la touche configurée pour Sallonger) commence
ou arrête le repos. W seul quitte également toute position basse. V reste libre
pour le vocal. Le repos permet sa propre posture immobile, sans imposer un autre
achat ; Sallonger autorise séparément la posture mobile au sol.
Survie/aventure : toutes les **200 ticks serveur (10 secondes à 20 TPS)**,
récupérer **1 point de vie (un demi-cœur)** contre **1 point de faim (une demi-barre)**.
Aucun soin si la santé est pleine ou si la faim est vide ; aucune consommation
sans soin. Le repos n'affecte ni le temps ni le point de réapparition. Bouger,
recevoir des dégâts, quitter le sol ou entrer dans une situation incompatible
interrompt le repos. Le délai recommence à chaque nouvelle séance, sans soin
immédiat en répétant la touche. Le créatif permet de tester la posture sans
produire de soin artificiel. La régénération naturelle de Minecraft garde ses règles.
### Migration additive
`ProgressRecord` passe de 8 à 9 et ajoute `swimming: false`, `lying: false` et `resting: false` aux anciens habitants,
sans changer leurs achats, XP, compétences, aptitudes, révision ou prestige.
L'achat ajoute une preuve dans l'historique ; le New Game+ la conserve.
Les événements historiques du journal de cycle restent intacts, leurs données
de progression sont lues avec la migration existante étendue. Aucun ancien
journal n'est réécrit. Les états inconnus/corrompus restent refusés.
La configuration de progression passe de 4 à 5 : ajouter `swimmingCost: 4`, `lyingCost: 4` et `restingCost: 4`,
conserver tous les autres réglages. Écriture atomique uniquement lors de cette
migration ou création initiale. Capacité réseau `sanctuary:swimming_v1` :
client et serveur beta.017 ensemble. Requête `sanctuary:lying` pour la posture (0 debout, 1 allongé, 2 repos). Aucun monde personnel n'est modifié.
## Livre de recettes
Quand le mod est installé, retirer le bouton et le panneau natifs des écrans
Inventaire, Établi, Four, Haut-fourneau et Fumoir, y compris un ancien réglage
« livre ouvert ». Retirer aussi les recettes fantômes du panneau et les toasts
qui demandent de consulter le livre. Conserver les grilles, les sorties de
fabrication, les recettes serveur, leurs statistiques et les advancements.
La fabrication manuelle reste libre, selon la règle de jeu existante.
L'intégration d'une version modifiée de Just Enough Items révélant ses recettes
selon les advancements Minecraft constitue la direction suivante ; ce ticket
n'installe pas JEI et ne prétend pas implémenter ce catalogue. Son intégration
exige une version compatible avec Minecraft 26.3-pre-2 et son propre contrat
révélation/catalogue. Le Blocodex reste utilisable.
## Prix des compétences
Le texte `1/7` (ou `3/10`) à côté de chaque jauge ASCII est remplacé par le prix
serveur du prochain rang, par exemple `4 niv.` / `4 lv.`. Au maximum : `Max.`.
La jauge conserve la position actuelle, le bouton + garde son contrôle d'XP et
le bouton reste réservé aux opérateurs. Les colonnes partagent la largeur
nécessaire aux prix de la configuration, y compris dans une petite interface.
## Son des Premiers pas
Chaque étape récompensée par de l'XP joue le son vanilla de ramassage d'expérience
pour le joueur concerné. Le serveur envoie ce son avec le gain effectif : pas de
répétition sur une étape déjà validée, à la reconnexion ou si la récompense vaut
zéro. Les réglages audio de Minecraft restent appliqués. Aucun nouveau fichier
sonore, attachement ou message réseau Sanctuary n'est nécessaire.
## Livraison et vérifications
Le 13 septembre 2026, avec Java 25, Minecraft **26.3-pre-2**, Fabric Loader
**0.19.5** et Fabric API **0.160.0+26.3** :
- `./gradlew check build assemblePack -PsanctuaryFocusedTests=progression,mining,building,inventory,cycle,inventoryflow,sorting,tutorial,movement` :
contrôles purs et **62 tests serveur réussis**, 4 min 24 s ;
journal `build/movement017-check-build.log`.
- Après les derniers ajouts son/clavier,
`./gradlew check build assemblePack -PsanctuaryFocusedTests=progression,tutorial,movement` :
**15 tests serveur réussis**, tous les contrôles purs et assemblage validés,
4 min 20 s ; `build/movement017-final-build.log`.
- `./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryMovementClientTests=true` :
parcours client natif réussi en 1 min 33 s ; `build/movement017-final-client.log`.
Monde jetable de graine **42**, capture des interfaces FR/EN : achat des trois
aptitudes, déplacement lent et remontée avant achat, nage rapide après achat,
W selon la disposition du clavier, Maj+W, soin après dix secondes, interruption
par mouvement, remappage sur G, absence de conflit avec le double-Maj pour
s'asseoir, cinq écrans sans livre à deux échelles et fabrication manuelle réelle.
Le client reçoit un son d'XP à l'ouverture de l'inventaire et un autre lors de
la fabrication des planches ; vingt répétitions du signal n'en produisent aucun.
Les six lignes affichent le prix serveur du prochain rang, sans ratio redondant.
Les tests serveur utilisent un monde de développement de graine **0** et couvrent
aussi les paquets périmés/refusés, les coûts, la faim, les délais de repos,
l'absence de changement d'heure, les dégâts, les modes de jeu, les données
temporaires non sauvegardées et la conservation des aptitudes après mort/New Game+.
Les contrôles purs vérifient les migrations additives, les réglages personnalisés
et le refus des nouveaux champs corrompus. Les premiers essais de clic client
utilisaient le code souris 0 ; la version native exige `MOUSE_BUTTON_LEFT` (1).
La correction porte sur le test ; la fabrication native était fonctionnelle.
Export local : [Sanctuary-beta.017.mrpack](../build/Sanctuary-beta.017.mrpack),
**2 567 056 octets**. Vérificateur `build/verify-beta017-pack.py`, reçu
`build/movement017-artifact.json` : ZIP/CRC, versions internes, JAR et Demeure
imbriqué identiques aux builds, dépendances, mixins, textes FR/EN et six PNG
identiques aux sources du resource pack. Les exports beta.003016 restent identiques.
SHA-256 MRpack : `4f07c8070aa2b3f5b256f070a236b0fd56b37d7ec8ddc974a30dc7dfc1f8a41a`.
SHA-256 JAR : `058ce9f24ff15da2c362a92fef648deeaee9019e7f177c503dee096666429325`.
Le pack contient les récompenses et textures beta.016 ; la respiration du HUD
reste vanilla. Aucune installation personnelle ni canal packwiz publié n'a été
modifié. JEI et la révélation de son catalogue par advancements restent à développer.