Files
vermine2047/TRAITS_PLAN.md
T
uberwald 8dd5d02994 feat(traits): phase 1 — réparations (Bien conçu, Pratique, Coque réparable)
- Coque : épuisée stockée {value:0, max:n} au lieu de null → réparable ; nouveau mode « Réparer la coque » (difficulté = coque.max) dans le dialogue ; affichage (0/n) sur la fiche
- Bien conçu : Réussite automatique en réparation classique (restauration complète) ; +1 Fiabilité à la 1ère réparation de fortune réussie (compteur traits.bien_conçu.value)
- Pratique : Handicap +I sur toutes les réparations (required +1, note sur la carte)
- i18n fr/en (9 clés)
- TRAITS_PLAN.md : suivi du plan d'automatisation des Traits
2026-08-07 14:40:42 +02:00

44 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Plan d'automatisation des Traits — Suivi
Base : `regles/regles_traits.txt` (et KitDeSurvie p.70-71, 39).
Implémenté déjà : `cassant`, `coque` (absorption), `etanche` (immersion) dans `module/system/reliability.mjs`.
Décisions utilisateur : Fétiche +1D sur les **deux** Réserves · Malus/Durée = **saisie manuelle** · Handicap de Mobilité = **note de rappel** · Items génériques = **flag équipé OK**.
## Légende
- [x] fait
- [ ] à faire
- [~] en cours
## Tâche 0 — Prérequis communs
- [ ] `item.mjs` : champ `equipped` sur items génériques + toggle fiche `item-item-sheet.hbs`
- [ ] nouveau `module/system/traits.mjs` : helpers partagés (`equippedItems`, `lourdMalus`, `mobilityNote`, `feticheItem`…)
## Phase 1 — Réparations (reliability.mjs + dialogue)
- [x] **Bien conçu** : succès auto en réparation classique (restauration complète) + 1ʳᵉ réparation de fortune rend +1 Fiabilité (compteur `traits.bien_conçu.value`)
- [x] **Pratique** : Handicap +I aux réparations (required +1, note sur la carte)
- [x] **Coque réparable** : épuisement → `{ value: 0, max: n }` ; mode « Réparer la coque » dans le dialogue (jet vs `coque.max`) ; affichage `(0/n)` sur la fiche
- [x] **Étanche** : rien de plus (immersion gérée ; gaz/maladie hors scope)
## Phase 2 — Combat (combatDialog.mjs, exchange.mjs)
- [ ] **Lourd** : malus auto (`lourdMalus()`) dans dialogue combat
- [ ] **Rapide (n)** : handicap (n) défenseur pré-rempli + note carte d'échange
- [ ] **Rafale (n)** : case « Tir en rafale » → difficulté +2, +n réussites si réussi
- [ ] **Portée** : portée effective × Vigueur (archery/throwing) affichée
- [ ] **Maniable / Mobilité** : note de rappel dialogue combat + jets athlétiques
- [ ] **Incapacitant (n)** : bouton « Jet de Santé vs (n) » sur carte d'échange
## Phase 3 — Jets d'action (rollDialog.mjs + roll-dialog.hbs)
- [ ] **Ponctuel (n)** : select outil → annule n Handicaps, décrémente, supprime à 0
- [ ] **Pratique (jets)** : select d'outil → +1D / +2D si Pratique (remplace checkbox `usingTools`)
- [ ] **Intimidant** : case « Brandit » → malus 1D Psychologie ou note relance
- [ ] **Malus (n)** : champ « Malus temporaires » (saisie manuelle) déduit du pool
- [ ] **Durée (n)** : note « effet pendant n tours » sur carte de jet d'arme
## Phase 4 — Acteur (character.mjs + fiche)
- [ ] **Fétiche** : +1D Effort ET Sang-Froid (corriger config « ou » → « et ») ; alerte 2+ fétiches ; action « Perdre le fétiche » (2D, max 1D)
- [ ] **Zone (n)** : note carte d'échange + bouton « Appliquer aux cibles de la zone »
## Transverse
- [x] i18n fr/en pour la Phase 1
- [x] ESLint (0 erreur sur les fichiers modifiés) + tests navigateur Phase 1 (coque, réparation coque, Bien conçu classique/fortune, Pratique, dialogue, affichage fiche)