docs(rules): conformance journal round 13 - objects/inventory (out of scope -> modeled)

Sunder now uses object hardness/HP with the SRD broken condition (usable at
-2), steal transfers real carried items and unarmed disarm auto-picks up the
dropped weapon. Objects/inventory leave the out-of-scope list; skills,
nonlethal, splash, 3D flight and the transcript remain. Gate 1861.
This commit is contained in:
2026-09-20 16:10:00 +02:00
parent d0f7f3a107
commit 5911602736
2 changed files with 11 additions and 4 deletions
+1 -1
View File
@@ -2092,7 +2092,7 @@ Limites de sorts (conformance D6-D9, documentées plutôt que bricolées) :
La gate de validation complète (tests + lint + types) : La gate de validation complète (tests + lint + types) :
```bash ```bash
uv run pytest -q # 1850 tests uv run pytest -q # 1861 tests
uv run ruff check src tests uv run ruff check src tests
uv run basedpyright src # mode strict uv run basedpyright src # mode strict
``` ```
+10 -3
View File
@@ -26,7 +26,7 @@ résiduel**.
| Contrôle | Résultat | | Contrôle | Résultat |
|---|---| |---|---|
| `uv run pytest -q` | 1850 tests verts | | `uv run pytest -q` | 1861 tests verts |
| `uv run ruff check src tests` (`select=ALL`) | conforme | | `uv run ruff check src tests` (`select=ALL`) | conforme |
| `uv run basedpyright src` (strict) | 0 erreur | | `uv run basedpyright src` (strict) | 0 erreur |
| Transcript doré depuis la passe 1 | inchangé | | Transcript doré depuis la passe 1 | inchangé |
@@ -203,6 +203,13 @@ Une passe de vérification adversariale a confirmé que les 15 correctifs High/M
| `f6292f8` | `arcane_caster` / `armor_spell_failure` posés depuis les feuilles (liche, Thrune, misty, nairda arcaniques) | | `f6292f8` | `arcane_caster` / `armor_spell_failure` posés depuis les feuilles (liche, Thrune, misty, nairda arcaniques) |
| `9f72948` | README synchronisé | | `9f72948` | README synchronisé |
### Correctifs de la passe 13 — objets / inventaire (sortis du hors-périmètre)
| Commit | Objet |
|---|---|
| `74f5d64` | **Sunder réel** : statistiques d'objet par arme (dureté/PV SRD, +2/+2 par point d'amélioration) ; dégâts réels de l'attaque moins la dureté ; arme *broken* à ≤ moitié des PV, détruite à 0 ; **arme cassée utilisable à −2** avec critique sur 20 naturel ×2 (réconcilié avec le *misfire*/*quick_clear*) |
| `d0f7f3a` | **`carried_items`** (objets portés, non tenus) sur le modèle + données depuis les feuilles ; **Steal** transfère réellement un objet porté ; **récupération** d'une arme lâchée (pickup au désarmement à mains nues) |
> **Registre des sorts clos** : les 35 derniers sorts ont été vérifiés champ par champ contre le KB — **0 divergence** (niveaux, sauvegardes, RM, portées, zones, formules conformes). Seuls 2 sorts sont absents du KB (`create_alcool`, `hidden_diplomacy`) et 1 nit de description subsiste (`detect_poison` mentionne « acid »). > **Registre des sorts clos** : les 35 derniers sorts ont été vérifiés champ par champ contre le KB — **0 divergence** (niveaux, sauvegardes, RM, portées, zones, formules conformes). Seuls 2 sorts sont absents du KB (`create_alcool`, `hidden_diplomacy`) et 1 nit de description subsiste (`detect_poison` mentionne « acid »).
### Passe 1 — sorts de buff, mouvement/grille, morts-vivants, armes naturelles ### Passe 1 — sorts de buff, mouvement/grille, morts-vivants, armes naturelles
@@ -330,7 +337,6 @@ ne pas être confondues avec des bogues.
|---|---| |---|---|
| **Squeeze** (se serrer dans un passage étroit) | La largeur de couloir n'est pas comparée à la taille ; une créature bloquée par son footprint l'est sans option de squeeze payante | | **Squeeze** (se serrer dans un passage étroit) | La largeur de couloir n'est pas comparée à la taille ; une créature bloquée par son footprint l'est sans option de squeeze payante |
| **Acrobatics « Tumbling »** (traverser une case ennemie sans AoO) | Le moteur n'a pas de système de compétences | | **Acrobatics « Tumbling »** (traverser une case ennemie sans AoO) | Le moteur n'a pas de système de compétences |
| **Objets / inventaire** (`Steal`, `Sunder`) | Le modèle n'a pas de piste d'objets (tenu vs porté, PV/dureté d'objet) — seule l'usure d'arme simplifiée existe |
| **Système de compétences** (Perception opposée, Discrétion, Acrobaties) | Pas de sous-système de compétences (hors `dex_skills`/bonus statiques) | | **Système de compétences** (Perception opposée, Discrétion, Acrobaties) | Pas de sous-système de compétences (hors `dex_skills`/bonus statiques) |
| **Créature inerte très grande = obstacle à 2 cases** | Les cases d'une créature inactive ne bloquent pas et ne coûtent pas double | | **Créature inerte très grande = obstacle à 2 cases** | Les cases d'une créature inactive ne bloquent pas et ne coûtent pas double |
| **Échec d'incantation du personnage sourd (20 %)** | Modélisé : composante verbale + condition `deafened` → jet de d20% ≤ 20 | | **Échec d'incantation du personnage sourd (20 %)** | Modélisé : composante verbale + condition `deafened` → jet de d20% ≤ 20 |
@@ -391,7 +397,8 @@ Constats explicitement contrôlés et **confirmés conformes** :
| 10 | Sorts utilitaires résiduels (lot 4) : guidance, resistance, virtue, stabilize, spiritual_weapon, saving_finale | `bg_9c989e12` | 4 implémentés, 2 différés | 4 correctifs (`08f9af9`..`f788613`) | | 10 | Sorts utilitaires résiduels (lot 4) : guidance, resistance, virtue, stabilize, spiritual_weapon, saving_finale | `bg_9c989e12` | 4 implémentés, 2 différés | 4 correctifs (`08f9af9`..`f788613`) |
| 11 | **Hors périmètre — alignement** : champ + dérivées, Shard of Chaos / Spear of Purity, Protection from Evil/Law (+communales) | `bg_1a3b0faa`, `bg_6980098f`, `bg_07b3d604` | 3 correctifs | Alignement **sorti du hors-périmètre** | | 11 | **Hors périmètre — alignement** : champ + dérivées, Shard of Chaos / Spear of Purity, Protection from Evil/Law (+communales) | `bg_1a3b0faa`, `bg_6980098f`, `bg_07b3d604` | 3 correctifs | Alignement **sorti du hors-périmètre** |
| 12 | **Hors périmètre — composantes & ASF** : composantes sur 107 sorts, sourd 20 %, échec d'armure, `arcane_caster` | `bg_02d4b4e3`, `bg_84baec1d` | 4 correctifs | Composantes/ASF **sortis du hors-périmètre** | | 12 | **Hors périmètre — composantes & ASF** : composantes sur 107 sorts, sourd 20 %, échec d'armure, `arcane_caster` | `bg_02d4b4e3`, `bg_84baec1d` | 4 correctifs | Composantes/ASF **sortis du hors-périmètre** |
| 13+ | Hors périmètre restant : objets/inventaire (Steal/Sunder), compétences, pv non létaux, armes à éclaboussures, vol 3D, rendu du transcript | — | — | À reprendre | | 13 | **Hors périmètre — objets/inventaire** : Sunder réel (dureté/PV), Steal, récupération d'arme | `bg_f9c69e32`, `bg_44d81a98` | 2 correctifs | Objets/inventaire **sortis du hors-périmètre** |
| 14+ | Hors périmètre restant : compétences, pv non létaux, armes à éclaboussures, vol 3D, rendu du transcript | — | — | À reprendre |
--- ---