129 lines
8.8 KiB
Markdown
129 lines
8.8 KiB
Markdown
# 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 l’espèce et le recul.
|
||
- Nommer l’œuf à l’enclume 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.
|
||
L’infobulle présente les noms cryptiques du passif et de l’actif. L’aptitude
|
||
**Étude des familiers**, à quatre niveaux, révèle les explications.
|
||
- Retirer l’écran Familier des aptitudes et le bouton d’activation 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 S’allonger en vol : plongeon vers l’avant, une
|
||
impulsion par saut. L’arrivée au sol ou dans l’eau 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 l’achat de l’aptitude 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 d’aide déjà enregistrés sont conservés ; l’absence 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 n’est converti en objet,
|
||
dupliqué ou remplacé : son UUID, ses équipements et ses données restent ceux de
|
||
l’entité native. Les animaux portés sont sauvegardés comme entités indépendantes,
|
||
sans enregistrer le portage dans les données d’un joueur. Une déconnexion, mort
|
||
ou transition de dimension termine le portage. Aucun monde personnel n’est
|
||
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 d’obtention des œufs.
|
||
|
||
Le premier équipement d’un œ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 l’objet restent
|
||
intactes. Les anciens œufs reçoivent ce trait lorsqu’ils sont équipés, sans
|
||
parcours des mondes ni conversion des inventaires existants. Un œuf équipé
|
||
occupe une case unique ; les œufs d’une pile sont individualisés lors de leur
|
||
équipement. Une copie de l’œuf déjà individualisé garde sa taille.
|
||
|
||
Le trait voyage avec l’objet lors d’un don, d’un renommage, d’une mort ou d’un
|
||
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 d’arrivée reste libre et soutenu, dans la portée
|
||
et les zones autorisées. Le freinage d’une 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 qu’il est libre.
|
||
Les chats, loups et perroquets utilisent une pose assise ; les autres animaux
|
||
reposent au-dessus de la tête. L’espace 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
|
||
lorsqu’un modèle bébé existe dans Minecraft ; aucune intelligence hostile n’est
|
||
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 l’arme.
|
||
|
||
L’infobulle native affiche la rareté et deux noms d’effets. **Progression → Étude
|
||
des familiers** coûte 4 niveaux et ajoute les explications aux infobulles. Aucun
|
||
mod Item Description supplémentaire n’est nécessaire pour cet affichage.
|
||
**Habitant** contient le choix d’aide alliée et le carnet. **G** reste la touche
|
||
reconfigurable du pouvoir ; aucun bouton d’activation dans ces menus.
|
||
|
||
## Tailles des familiers
|
||
|
||
La taille est tirée par le serveur une seule fois, indépendamment de l’espè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 |
|
||
|
||
L’infobulle 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 s’estompent 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 d’interaction 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 l’eau 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 l’export 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. L’obtention des œufs, les rangs I–III et Anomaly restent à définir.
|
||
Aucune installation personnelle ni aucun canal de mise à jour n’a é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`.
|