114 lines
6.7 KiB
Markdown
114 lines
6.7 KiB
Markdown
# FAM-CORE-01 à FAM-CATALOG-06 — refonte des 88 familiers
|
||
|
||
Le contrat des attaques et du Slime est remplacé en beta.044 : [audit](spawn-eggs-audit-beta044.md).
|
||
|
||
Branche `codex/spawn-eggs-v2-prototypes`. Les 88 œufs du document
|
||
[de conception](spawn-eggs-refonte-v2.md) sont inclus selon la réponse du créateur.
|
||
Le [catalogue chiffré](spawn-eggs-v2-catalogue-beta032.md) fixe les valeurs manquantes.
|
||
L’acquisition, les rangs et Anomaly restent des tickets suivants. État : livré localement dans beta.032, prêt pour les essais en partie.
|
||
|
||
## Contrat de migration additive
|
||
|
||
La demande d'implémentation porte sur les pouvoirs. Aucun terrain ni fichier de
|
||
monde existant n'est ouvert ou réécrit par les outils de développement.
|
||
À l'utilisation du mod, l'attachement joueur `sanctuary:companion_powers` reste
|
||
strictement au schéma 1 : achats, consentement, notes et échéances sont conservés.
|
||
Les anciennes échéances soin/air sont honorées jusqu'à leur expiration.
|
||
|
||
Un nouvel attachement indépendant `sanctuary:companion_budgets_v2` (schéma 1)
|
||
conserve les dépenses récentes par bénéficiaire et l'enveloppe de déplacement.
|
||
Il se crée paresseusement. Mort, prestige, reconnexion et changement d'œuf ne
|
||
remettent pas ce budget à zéro. Un état invalide bloque les pouvoirs concernés,
|
||
sans effacer les octets d'origine. Seul le bouton opérateur de préparation peut
|
||
réinitialiser explicitement ces budgets pour les essais.
|
||
|
||
Les fenêtres utilisent l'horloge serveur réelle comme la recharge existante.
|
||
Les dépenses sont regroupées par quarts de seconde, expirant à la fin du
|
||
quart : la borne est conservatrice, avec au plus 250 ms de délai supplémentaire.
|
||
Les soins sont débités à leur livraison effective ; les interruptions ne
|
||
facturent pas les soins non reçus. Les points d'air réellement économisés ou
|
||
rendus sont débités. Les plafonds suivent la capacité personnelle actuelle.
|
||
Un retour de l'horloge ne raccourcit pas les dépenses encore enregistrées.
|
||
|
||
Les configurations existantes restent schéma 1. Les anciennes valeurs de
|
||
recharge **encore identiques à leurs valeurs par défaut** sont remplacées par
|
||
les nouvelles ; les personnalisations, raretés et désactivations restent intactes.
|
||
Une copie `.pre-v2` précède cette écriture atomique. Un marqueur de migration
|
||
empêche de répéter l'opération : une valeur personnalisée ultérieure, même égale
|
||
à l'ancien défaut, reste respectée. Un fichier invalide reste intact.
|
||
|
||
Un retour vers un ancien binaire ne connaît pas les nouveaux budgets : sauvegarder
|
||
le monde avant mise à jour et restaurer cette sauvegarde pour un retour arrière.
|
||
Ne pas compter sur un aller-retour de binaires pour conserver ces nouveaux champs.
|
||
|
||
|
||
## Résultat jouable
|
||
|
||
Les 88 passifs, actifs, recharges et descriptions FR/EN sont repris dans le
|
||
catalogue chiffré. Les familles utilisent les mêmes règles de soin, d’air, de
|
||
garde et de déplacement par bénéficiaire, même en combinant plusieurs œufs.
|
||
Les variantes natives et certains petits effets secondaires historiques restent
|
||
compatibles ; le tableau décrit le pouvoir principal de chaque espèce.
|
||
|
||
Le coussin de laine apparaît au sol ; les brumes et poussières se déplacent
|
||
avec le souffle du Breeze sans renouveler leur durée ou leur contenu. La brume
|
||
de sorcière consomme une vraie potion et donne une dose native à une seule
|
||
personne. Les appuis et passages demandent de maintenir Maj pour accepter le
|
||
déplacement. Les potions, armes, outils, graines et stocks utilisés restent réels.
|
||
|
||
Les gestes de visée principaux montrent un aperçu de zone, le coût et les refus
|
||
serveur aux opérateurs et aux joueurs ayant étudié les familiers. Les effets
|
||
s’arrêtent au retrait de l’œuf, sauf la potion réelle déjà reçue. La touche G
|
||
agit une fois par pression ; maintenir la touche ne relance pas automatiquement.
|
||
|
||
Pour essayer : équiper un œuf dans la case Compagnon, acheter le Lien actif,
|
||
attendre les 10 secondes de stabilisation, puis utiliser G. L’Étude des familiers
|
||
révèle les explications ; l’outillage opérateur permet de préparer les essais.
|
||
Les recharges affichées suivent la configuration reçue du serveur.
|
||
|
||
Client et serveur doivent tous deux utiliser beta.032 : une capacité réseau v2
|
||
explicite évite qu’un ancien client rejoigne avec des règles incompatibles.
|
||
La génération, les identifiants des œufs et les autres formats restent inchangés.
|
||
|
||
## Vérifications et limites
|
||
|
||
`./gradlew check build assemblePack` avec la sélection native
|
||
`refonte,companions,familiar,carry,inventory,cycle` réussit : **85/85 tests serveur**,
|
||
dont 20 cas de refonte. Le contrôle couvre notamment la sauvegarde/relecture
|
||
native, la mort, le vrai New Game+, les délais hérités, la migration de configuration,
|
||
les budgets fractionnaires, les doses de potion, les 4 bénéficiaires distincts,
|
||
les gardes avec Résistance native, la résistance aux contrôles, l’abeille avec
|
||
sa graine et sa houe, le souffle d’un autre joueur et les transferts sans pertes.
|
||
Les 88 chemins d’action sont vérifiés : une action préparée ou un refus contextuel.
|
||
Cela ne constitue pas un essai positif exhaustif des 88 usages dans toutes les situations.
|
||
|
||
Le parcours `:sanctuary:runClientGameTest` avec `sanctuaryClientTests=true` et
|
||
`sanctuaryRefonteClientTests=true` réussit dans une nouvelle partie native :
|
||
touche G, réseau, coussin payé en laine, brume payée par une potion complète,
|
||
flacon rendu, bond du lapin sous Vitesse native et résolution des textes des
|
||
88 espèces en FR et EN. Les captures finales ont été relues dans
|
||
`build/refonte032-evidence/`. Le catalogue FR et les 88 recharges correspondent
|
||
aux ressources et constantes du binaire.
|
||
|
||
Une simulation pure de 30 bénéficiaires pendant 60 secondes de jeu valide les
|
||
plafonds et la taille bornée des journaux (129 ms dans cette exécution). Elle
|
||
ne simule pas 30 clients graphiques. Les essais ne remplacent pas une séance
|
||
d’équilibrage de 20 minutes en solo puis à 2–4 joueurs.
|
||
L’acquisition des œufs en survie, les rangs I–III et Anomaly restent à concevoir.
|
||
Aucun test de FPS avec 30 clients connectés n’est revendiqué.
|
||
|
||
|
||
## Artefact local
|
||
|
||
[Sanctuary-beta.032.mrpack](../build/Sanctuary-beta.032.mrpack), 4871119 octets.
|
||
|
||
SHA-256 : `5ca10e29b07a68926f518d71072d8d56b61e26c0182fadc2c508ef1fc79bcac5`.
|
||
Reçu : `build/refonte032-artifact.json`. Logs : `build/refonte032-check-final.log`
|
||
et `build/refonte032-client-final.log`.
|
||
|
||
Archive ZIP, versions internes, JAR embarqué et **1 303 classes compilées**
|
||
vérifiés. Comparaison avec beta.031 : seules les classes des familiers et leur
|
||
admission réseau changent ; autres ressources, classes Demeure et JAR JEI conservés.
|
||
L’ancien MRpack beta.031 conserve son empreinte. Aucun déploiement, canal packwiz
|
||
publié ou instance Prism personnelle modifié.
|