|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Statut : fait (vérification automatisée : scripts/lint_exigences.py vert sans exception ajoutée, scripts/lint_lots.py vert, Doxygen vert). Prérequis : aucun. Prérequis de toute la filière contenu, à commencer par le LOT-30.
Écrire les cinq documents de spécification que vingt lots citaient sans qu'ils existent, et éteindre l'échec volontaire du lint d'exigences.
Le dépôt comptait 13 familles réelles pour 269 exigences, et cinq familles fantômes — EX-CNT-*, EX-DND-*, EX-RPG-*, EX-CBT-*, EX-INV-* — référencées par la feuille de route sans qu'aucun document ne les porte. Le garde-fou avait été réparé avant ce lot (FAMILY_REF_RE dans lint_exigences.py), ce qui rendait la CI rouge à dessein jusqu'à ce que les documents existent. Ce lot est ce qui la remet au vert — et c'est la seule façon légitime de le faire.
Cinq documents, 69 exigences, insérés dans l'ordre de lecture de specifications.md :
| Document | Famille | Exigences | Ce qu'il fixe |
|---|---|---|---|
| Specification/regles-dnd.md | EX-DND-* | 15 | Le jet d20, les caractéristiques, la maîtrise, le temps et le repos, les conditions, les échelles |
| Specification/rpg.md | EX-RPG-* | 17 | La fiche comme agrégat dérivé, espèces, classes et ressources, progression, options, sorts |
| Specification/combat.md | EX-CBT-* | 14 | Bascule, tour, espace, attaque et dégâts, agonie et mort, l'adversaire |
| Specification/inventaire.md | EX-INV-* | 8 | Emplacements d'équipement, encombrement, monnaie, commerce, butin |
| Specification/contenu.md | EX-CNT-* | 15 | Provenance, contrats, extraction, ce qu'une donnée promet, assets, contrôle |
Et la rubrique « Exigences couvertes » posée sur les 25 lots qui les implémentent — quinze lots de la filière et dix lots absorbés de la section 11. Elle manquait à toutes les sections de lot, faute de familles à citer.
Le moteur porte des mécanismes, la donnée porte des valeurs. C'est la règle qui traverse les cinq documents, et elle a une conséquence qu'il fallait écrire noir sur blanc : le catalogue sera complet longtemps avant le moteur. D'où EX-CNT-030 et EX-CNT-031 — une donnée déclare les mécanismes qu'elle exige, le moteur refuse en le disant ce qu'il ne sait pas honorer. Un catalogue complet qui ment sur ce qui est jouable coûte plus cher qu'un catalogue incomplet qui le dit.
Trois généricités décident de la faisabilité du programme, et elles sont écrites comme telles :
Deux exigences héritées sont contredites explicitement, plutôt que contournées : EX-CBT-042 (la mort hors combat n'est pas « redémarrer le niveau ») et EX-RPG-032 (aucune progression liée au franchissement d'un tableau). Leur retrait effectif appartient au LOT-67 ; ce lot pose la définition qui les remplacera, sans quoi le retrait n'aurait rien à mettre à la place.
Ce que ce lot n'a pas fait, et qui n'était pas dans son périmètre : retirer les exigences de plateforme (LOT-67), désambiguïser les 208 renvois de numéros hérités (LOT-78), écrire la brique de chargement (LOT-79).