Files
sanctuary-beta/docs/familiar-interactions-beta020.md
2026-09-15 09:29:11 +02:00

129 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.020 — interactions, lecture des œufs et plongeon
Ticket du 13 septembre 2026, branche `codex/familiar-interactions-beta020`.
**Livraison locale beta.020 vérifiée — 13 septembre 2026.**
## Demande retenue
- Maj + clic droit sur un joueur : monter sur sa tête. Sur un animal : le porter,
puis refaire le geste pour le déposer. Le porteur est ralenti et les coups entre
porteur et passager sont interdits. Une seule place, sans empilement dans beta.020 ; les piles sont ajoutées par
[beta.027](player-stacks-beta027.md).
- Caresser le familier ne produit que des cœurs. Le clic gauche provoque une
réaction visuelle de coup sans retirer de vie. Préférer son modèle bébé natif.
[beta.029](familiar-hit-feedback-beta029.md) ajoute le cri de lespèce et le recul.
- Nommer l’œuf à lenclume ou utiliser une étiquette sur son propre familier.
Le nom appartient à l’œuf ; déséquiper l’œuf fait disparaître le compagnon.
- Nom de l’œuf coloré par rareté : blanc, jaune, vert, bleu, violet.
Linfobulle présente les noms cryptiques du passif et de lactif. Laptitude
**Étude des familiers**, à quatre niveaux, révèle les explications.
- Retirer l’écran Familier des aptitudes et le bouton dactivation du pouvoir.
Les réglages et le carnet rejoignent Habitant. Les aides alliées sont acceptées
par défaut ; leur réglage reste personnel.
- Saut en sprint, puis touche Sallonger en vol : plongeon vers lavant, une
impulsion par saut. Larrivée au sol ou dans leau termine cette posture.
[beta.028](dive-until-collision-beta028.md) retire ensuite la limite de durée
et ajoute explicitement les collisions au plafond.
- Taille aléatoire propre à chaque œuf, avec des familiers minuscules ou géants.
## Contrat de données
Les pièces jointes existantes, leurs schémas et les identifiants des œufs restent
stables. Un nouveau reçu indépendant `sanctuary:companion_study`, schéma 1,
conserve lachat de laptitude après mort et prestige. Absent : aptitude verrouillée.
Invalide ou version inconnue : reçu conservé, achat et révélation refusés.
Les choix daide déjà enregistrés sont conservés ; labsence d’état utilise
le nouveau défaut accepté. Les noms utilisent le composant natif `CUSTOM_NAME`.
Le portage et le plongeon sont temporaires. Aucun animal nest converti en objet,
dupliqué ou remplacé : son UUID, ses équipements et ses données restent ceux de
lentité native. Les animaux portés sont sauvegardés comme entités indépendantes,
sans enregistrer le portage dans les données dun joueur. Une déconnexion, mort
ou transition de dimension termine le portage. Aucun monde personnel nest
modifié par les outils de développement.
Client et serveur beta.020 doivent être installés ensemble. Cette livraison
conserve les prix et recharges des 88 pouvoirs et les règles dobtention des œufs.
Le premier équipement dun œuf sans taille ajoute au composant natif
`minecraft:custom_data` une entrée `sanctuary:familiar_size`, composée de
`schema: 1` et `per_mille: 120..6000`. Les autres données de lobjet restent
intactes. Les anciens œufs reçoivent ce trait lorsquils sont équipés, sans
parcours des mondes ni conversion des inventaires existants. Un œuf équipé
occupe une case unique ; les œufs dune pile sont individualisés lors de leur
équipement. Une copie de l’œuf déjà individualisé garde sa taille.
Le trait voyage avec lobjet lors dun don, dun renommage, dune mort ou dun
prestige, et survit à la sauvegarde/reconnexion. Une entrée inconnue ou invalide
est conservée telle quelle ; le rendu utilise alors la taille ordinaire.
## Pouvoirs de perception et téléportations
Les détections de blocs connus, le sonar, les circuits et les marques restent
visibles derrière les parois. Les téléportations Endermite / Enderman peuvent
traverser les murs ; le point darrivée reste libre et soutenu, dans la portée
et les zones autorisées. Le freinage dune chute efface sa distance accumulée :
un atterrissage après le ralentissement ne réapplique pas les dégâts antérieurs.
Une nouvelle chute après la fin du pouvoir accumule à nouveau sa propre distance.
## Gestes dans le jeu
Maj + clic droit prend un animal ou monte sur un joueur. Un nouveau Maj + clic
droit dépose le passager même avec la main vide, sans devoir viser au-dessus de
sa propre tête. Le joueur porté relâche Maj puis appuie de nouveau pour descendre.
Le porteur se déplace 25 % moins vite ; la réduction disparaît dès quil est libre.
Les chats, loups et perroquets utilisent une pose assise ; les autres animaux
reposent au-dessus de la tête. Lespace occupé est vérifié avant de les porter.
Les noms utilisent l’œuf et l’étiquette natifs. Les modèles bébés sont choisis
lorsquun modèle bébé existe dans Minecraft ; aucune intelligence hostile nest
appliquée au familier. La caresse garde uniquement les cœurs. Le coup léger est
une animation, sans dégâts, enchantement offensif ni usure de larme.
Linfobulle native affiche la rareté et deux noms deffets. **Progression → Étude
des familiers** coûte 4 niveaux et ajoute les explications aux infobulles. Aucun
mod Item Description supplémentaire nest nécessaire pour cet affichage.
**Habitant** contient le choix daide alliée et le carnet. **G** reste la touche
reconfigurable du pouvoir ; aucun bouton dactivation dans ces menus.
## Tailles des familiers
La taille est tirée par le serveur une seule fois, indépendamment de lespèce et
de la rareté. Elle multiplie le modèle réduit du familier, bébé lorsque possible :
| Fréquence | Multiplicateur visuel |
| --- | --- |
| 90 % | ×0,65 à ×1,50 |
| 5 % | ×0,12 à ×0,35 |
| 5 % | ×2,50 à ×6,00 |
Linfobulle indique Minuscule, Petit, Ordinaire, Grand ou Colossal après le
premier équipement. Le nom affiché suit la hauteur du modèle et les volants
géants sestompent en fonction de leur encombrement visuel. Les pouvoirs,
la vitesse et le corps utilisé pour la navigation restent identiques : la
taille visuelle ne bloque pas le compagnon dans une porte et ne modifie pas
l’équilibrage de son œuf. La zone dinteraction reste celle du familier mobile.
## Vérifications de livraison
- `./gradlew check build assemblePack -PsanctuaryFocusedTests=familiar,companions,accessories,movement,progression,cycle,mining,building,inventory,inventoryflow,sorting,tutorial` : contrôles purs et **104 tests serveur réussis**.
- Portage joueur/animal, position sur la tête, coups interdits, ralentissement, sauvegarde native sans duplication ni véhicule-joueur enregistré, dépose et conflit avec double-Maj.
- Achat de l’Étude facturé une fois, sauvegarde/rechargement, mort et prestige réel ; données invalides conservées et refus historique des aides maintenu.
- Taille tirée une fois, distribution bornée, données étrangères conservées, sauvegarde et transfert de l’œuf à un autre habitant sans changement de taille.
- Plongeon autorisé après départ en sprint, sans deuxième impulsion en vol ; sortie dans leau sans déverrouiller Nage. Poule freinant une chute déjà accumulée, nouvelle chute native ; sonar derrière un mur et téléportation au travers vers un espace libre.
- Deux parcours client natifs dans de nouveaux mondes de développement, graine 42 : achat et infobulles, Habitant aux échelles 2/3/4, Maj + clic droit réel pour porter/déposer, chat bébé assis, plongeon avec une touche reconfigurée et rendu horizontal, synchronisation de taille et captures des extrêmes.
- Les 88 modèles sont extraits à deux instants, puis aux multiplicateurs ×0,12 et ×6. Éclairage, fondu du corps et des yeux des volants, activation réelle avec G, recharge commune et échange de villageois restent validés.
- Le MRpack et les JAR sont contrôlés : CRC, versions exactes, identité du mod embarqué et de Demeure imbriqué, FR/EN, 88 passifs/actifs et leurs noms cryptiques, absence de code de test, sources identiques à celles du build. Les anciens PNG et lexport beta.019 restent inchangés.
Ces essais ne remplacent pas un équilibrage collectif des 88 paires de pouvoirs.
Le rendu et les gestes de portage ont été observés sur un client intégré ; les
interactions entre deux joueurs sont couvertes côté serveur, sans essai visuel
à deux clients. Lobtention des œufs, les rangs IIII et Anomaly restent à définir.
Aucune installation personnelle ni aucun canal de mise à jour na été modifié.
Export : [Sanctuary-beta.020.mrpack](../build/Sanctuary-beta.020.mrpack).
Reçu : `build/familiar020-artifact.json` ; captures : `build/familiar020-evidence/`.
SHA-256 MRpack : `98d1cdb8aa5b7b5249a4e23eabea963aff394cb416d8d78f7bc1bf49450c9e78`.
SHA-256 JAR : `3ec020eb381653f4cc53dad719338db9ec534c83f1c1a8552f0c77d42d3e739b`.