# beta.019 — pouvoirs des 88 familiers Ticket ouvert le 13 septembre 2026, branche `codex/companion-powers-beta019`. ### États ajoutés et déplacements La livraison inclut les déplacements propres aux familles : vol orbital du Dragon, vol du Wither et des Ghasts, nage et difficultés des aquatiques hors de l’eau. Le familier reste temporaire, invincible et sans combat autonome. Les cycles de culture et de four utilisent de nouvelles pièces jointes JSON versionnées `sanctuary:companion_crop_cycles` sur le niveau et `sanctuary:companion_furnace_cycle` sur le four. Absence : aucun cycle antérieur crédité. Un cycle déjà entamé ne gagne pas de propriétaire rétroactivement. La présence continue, le même propriétaire et le même équipement sont vérifiés ; quitter la zone, changer de lien ou arrêter le serveur invalide le cycle en cours. Les fractions ne sont jamais transférées à un nouveau cycle. Aucun objet, résultat, carburant, niveau d’XP ou bloc de sauvegarde existant n’est converti. Un JSON invalide ou d’une version future est conservé et bloque seulement ce bonus. Les nouveaux tags peuvent être ignorés lors d’un retour à beta.018. La guérison du zombie-villageois reçoit un booléen persistant indépendant, `sanctuary:companion_cure_used`, absent par défaut, limitant Veille à une fois. Les devis, choix de troc et plateformes sont temporaires et ne survivent pas à une déconnexion. Un choix de troc abandonné perd ses deux lingots déjà offerts ; il ne fournit aucun des deux résultats. **Livraison locale beta.019 vérifiée — 13 septembre 2026.** Le créateur autorise l’implémentation des 88 passifs et 88 actifs de la [proposition v1](companion-powers-balance-proposal.md), et la correction du rendu noirci des compagnons. Les rangs I–III, les soins faisant évoluer le lien et les œufs Anomaly à contreparties sont explicitement reportés au prochain ticket. Aucun malus solaire ou autre malus historique n’est ajouté aux œufs ordinaires. ## Contrat de stockage et de migration Les accessoires beta.018 et leurs identifiants restent inchangés. Aucun monde, chunk ou objet d’une installation personnelle n’est converti par les outils de développement. Les nouvelles données se créent uniquement quand le serveur du mod exécutera les nouvelles fonctionnalités. Le lien actif et les délais des pouvoirs utilisent un état joueur indépendant, versionné et persistant, copié à la mort et conservé au New Game+. L’absence de cet état signifie lien non acheté, aucune recharge. Une version inconnue ou des données invalides désactivent les pouvoirs de ce joueur sans effacer son état. L’achat utilise les niveaux réellement disponibles côté serveur. Les identifiants et achats des anciennes aptitudes ne sont pas renommés et leur stockage n’est pas réécrit pour ajouter ce lien indépendant. Les recharges reposent sur les échéances du serveur et sont communes au slot. Le déséquipement interrompt les améliorations temporaires. Reconnexion, mort et prestige ne donnent pas de nouvelle charge. Les améliorations de soin et d’air possèdent aussi leur récupération par bénéficiaire. La configuration dédiée `config/sanctuary/companion-powers.json` propose les valeurs v1, les cinq raretés et les réglages serveur. Les clients reçoivent une vue bornée de leur propre état. Les cibles, ressources, droits, dégâts et transactions sont contrôlés côté serveur. Le consentement aux effets alliés est explicite et révocable ; l’appartenance à une faction ne le remplace pas. Les œufs natifs restent les objets de test déjà utilisés en beta.018. L’obtention des essences en survie et leur forme inerte sont un chantier distinct de l’activation des pouvoirs demandée ici : aucun œuf natif n’est distribué par un advancement et aucune récompense d’acquisition n’est inventée. ## Livraison et vérifications La livraison comprend une interface FR/EN lisible pour le lien actif, le familier équipé, sa rareté, ses deux effets, sa recharge et son raccourci. Le rendu est contrôlé dans le client avec les modèles natifs et leur lumière ambiante ; la couverture des scénarios est détaillée ci-dessous. Les vérifications couvrent les transactions, les interruptions, le PvP, les portées, l’absence de chargement distant, les capacités initiales et maximales, les échanges d’œufs, la mort et le prestige. Les pouvoirs et leurs vérifications sont [recensés individuellement](companion-powers-beta019-coverage.md). Une déclaration de registre ou une description affichée ne prouve pas à elle seule que son effet fonctionne. `check build` et `assemblePack` sont exécutés pour la livraison locale beta.019. Le canal packwiz et Prism ne sont pas modifiés sans demande de mise à jour correspondante. ## Utilisation de la version d’essai Équiper un œuf dans sa case de familier. Son passif s’active après **10 secondes** avec le même œuf. **B → Progression → Aptitudes → Lien actif** coûte **4 niveaux** par défaut ; **G**, configurable dans Contrôles, déclenche le pouvoir. Le panneau **Familier** indique la rareté, le passif, l’actif, les conditions et la recharge. Il contient le consentement aux effets alliés et un bouton opérateur pour préparer un nouvel essai. Les achats, temps de recharge et récupérations soin/air sont stockés séparément des compétences et conservés à la mort et au prestige. Viser ce sur quoi agir : coffre, monstre, villageois ou surface. Les objets nécessaires se prennent dans les rangées ouvertes. Le villageois ouvre un devis aux prix et stocks natifs ; le Piglin offre deux tirages après paiement. Un choix en attente peut être rouvert dans le panneau Familier, par exemple après avoir libéré une case. Les relevés marchands s’affichent dans le carnet. Les équipes Minecraft et les membres d’une même faction Sanctuary sont exclus des cibles offensives. Recevoir les aides reste un consentement personnel, indépendant de la faction. Les poussées offensives PvP sont désactivées dans ce premier portage, comme prévu par la proposition. Les familiers utilisent des navigations terrestres, volantes ou aquatiques ; le Dragon décrit une orbite, le Wither et les Ghasts restent en vol. Poissons, calmars, gardiens, dauphins et nautiles nagent dans l’eau et se débattent au sol. Grenouilles, lapins et cubes bondissent ; les amphibies peuvent aussi nager. Ces déplacements sont propres au compagnon : aucune IA hostile native n’est importée. Le rendu réutilise les modèles et animations natifs, avec l’éclairage calculé à la position réelle du petit compagnon. Les anciens proxys non tickés conservaient une position précédente à l’origine, ce qui faussait l’échantillonnage de lumière. ## Limites de cette première implémentation Les rangs I–III, œufs Anomaly, malus et évolution par les soins restent au prochain ticket. L’obtention des œufs en survie reste à concevoir. Aucun équilibrage de partie à 30 joueurs ni comportement de chaque actif en toutes circonstances n’est revendiqué. La [couverture](companion-powers-beta019-coverage.md) distingue les scénarios vérifiés des essais à poursuivre. La lumière du calmar luisant est une indication visuelle personnelle sur les surfaces cubiques exposées, sans modifier la lumière du monde ni les règles de spawn. Les signaux redstone sont un relevé du circuit au déclenchement. Les variantes de poissons tropicaux doivent avoir été observées personnellement ; leur mémoire utilise une note `seen_fish_v1` bornée, dérivée des identifiants natifs de motif et de couleurs. Ces indices ne révèlent aucune entrée via l’Atlas. Les permissions passent par les règles natives et le point d’intégration `CompanionWorld.ALLOW` ; les futurs claims devront s’y raccorder. ## Proximité du joueur et transparence Les familiers volants passent progressivement de transparents à opaques entre **0,6 et 3,5 blocs** du regard du joueur. La distance à la caméra est également prise en compte en troisième personne. La courbe est continue et adoucie aux extrémités : aucun changement brutal d’opacité au seuil. Le corps et les couches des yeux partagent ce fondu, y compris pour le Dragon et le Wither. Le fondu appartient uniquement au rendu du familier volant. Il n’agit ni sur les monstres du monde ni sur les collisions, pouvoirs ou déplacements. La couleur et le matériau translucide sont inscrits dans chaque modèle envoyé au rendu différé ; l’opacité ne reste jamais active pour l’entité suivante. ## Vérifications de livraison - `./gradlew check build assemblePack -PsanctuaryFocusedTests=companions,accessories,movement,progression,cycle,mining,building,inventory,inventoryflow,sorting,tutorial` : contrôles purs et **91 tests serveur réussis**. - Parcours client natif sur un nouveau monde Sanctuary de développement, graine 42 : achat à quatre niveaux, consentement, interface aux échelles 2/3/4, touche G et recharge après changement d’œuf, puis devis de villageois avec paiement réel. - Extraction des 88 modèles natifs à deux instants ; éclairage et échelle contrôlés. Pour chaque volant, vérification du matériau translucide et de l’alpha des couches du corps et des yeux, sans effet sur l’entité suivante. Captures de proximité à 4 / 2 / 0,8 blocs. - Le catalogue ne constitue pas une validation exhaustive du gameplay des 88 paires. Voir la [couverture par espèce](companion-powers-beta019-coverage.md). - MRpack contrôlé : CRC, versions, JAR embarqué identique au build, Demeure imbriqué identique, FR/EN, 88 passifs et 88 actifs, absence de tests. Les PNG existants et l’export beta.018 gardent leurs empreintes. Export : [Sanctuary-beta.019.mrpack](../build/Sanctuary-beta.019.mrpack). Reçu : `build/companion019-artifact.json`. SHA-256 MRpack : `ba3a7a0ceb1a9a71c135cdb5ddeacb431969eb2e8fd32d8bfaf5fab0e34d3bd3`. SHA-256 JAR : `e27cb61fdb1d55fec88f86cb8e9696eca6ca12a923129843208afbff6a6efc71`.