Tâche 0 : - item.mjs : champ equipped sur items génériques + toggle fiche - nouveau module/system/traits.mjs (helpers partagés : equippedItems, lourdMalus, mobilityHandicap, feticheItem…) Phase 2 — Combat : - Lourd : malus cumulés auto (Vigueur < n) dans le dialogue + pool - Rapide : handicap (n) pré-rempli dans la défense (character + PNJ) + note carte - Rafale : case tir en rafale (+2 difficulté), +n réussites si réussi (bonusOnSuccess) - Portée : portée effective n × Vigueur affichée - Maniable/Mobilité : note de rappel (dialogue + carte) - Incapacitant : bouton « Jet de Santé (n) » sur la carte d'échange - getLabel() : libellés caractéristiques/compétences localisés Phase 3 — Jets d'action : - Ponctuel : annule jusqu'à n Handicaps, consommé au jet (Traits supprimé à 0) - Pratique : outil sélectionné +2D au lieu de +1D - Intimidant : case « Brandit » → -1D Psychologie ou Relance 1D - Malus : champ « Malus temporaires » manuel déduit du pool - Durée : note « n tours » sur la carte de jet d'arme - roll() : transmission effectiveRange/mobilityHandicap/ponctuelUsed/intimidant (corrige l'affichage Portée/Mobilité) Phase 4 — Acteur : - Fétiche : +1D Effort ET Sang-Froid (max dérivé, config corrigé), alerte 2+ fétiches, action « Perdre le fétiche » (-2D, max -1D persistant feticheLoss) - Zone : note + bouton « Appliquer aux cibles de la zone » (#onApplyZone) CSS : styles LESS pour les nouvelles classes (fetiche-block, exchange-reminder/zone, traits-reminder, tool-bonus/ponctuel, duree-note) i18n : 29 clés fr/en TRAITS_PLAN.md : plan complet cochée
4.1 KiB
4.1 KiB
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
- fait
- à faire
- [~] en cours
Tâche 0 — Prérequis communs
item.mjs: champequippedsur items génériques + toggle ficheitem-item-sheet.hbs- nouveau
module/system/traits.mjs: helpers partagés (equippedItems,lourdMalus,mobilityNote,feticheItem…)
Phase 1 — Réparations (reliability.mjs + dialogue)
- 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) - Pratique : Handicap +I aux réparations (required +1, note sur la carte)
- Coque réparable : épuisement →
{ value: 0, max: n }; mode « Réparer la coque » dans le dialogue (jet vscoque.max) ; affichage(0/n)sur la fiche - É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 + pool breakdown (ligne « Malus Lourd ») - Rapide (n) : handicap (n) défenseur pré-rempli (locks.handicap) + note sur carte d'échange
- Rafale (n) : case « Tir en rafale » → difficulté +2, +n réussites si réussi (
bonusOnSuccess) - Portée : portée effective × Vigueur (n × vigor) affichée (dialogue + carte)
- Maniable / Mobilité : note de rappel dialogue combat + carte (handicap de mobilité cumulé, Maniable l'annule)
- Incapacitant (n) : bouton « Jet de Santé (n) » sur carte d'échange (RollDialog santé vs n)
getLabel(): libellés caractéristiques/compétences localisés dans le tchat (bonus du jet de Santé)
Phase 3 — Jets d'action (rollDialog.mjs + roll-dialog.hbs)
- Ponctuel (n) : outil sélectionné → annule jusqu'à n Handicaps ; consommé au jet (décrément, Trait supprimé à 0) ; note carte
- Pratique (jets) : outil sélectionné → +2D au lieu de +1D (badge « +2D » dans le dialogue)
- Intimidant : case « Brandit (X) » → −1D Psychologie si compétence psychologie, sinon Relance 1D ; note carte
- Malus (n) : champ « Malus temporaires » (saisie manuelle) déduit du pool + ligne carte
- Durée (n) : note « effet pendant n tours de combat » sur carte de jet d'arme
- Fix
roll(): transmission des paramètres étendus (ponctuelUsed,intimidant,effectiveRange,mobilityHandicap) au message — corrige aussi l'affichage Portée/Mobilité en Phase 2
Phase 4 — Acteur (character.mjs + fiche)
- Fétiche : config « ou »→« et » ; +1D Effort ET Sang-Froid (max dérivé) ; alerte 2+ fétiches (bandeau fiche) ; action « Perdre le fétiche » (−2D valeurs, +1 perte max persistant
experience.feticheLoss, retire le Trait) - Zone (n) : note carte d'échange + bouton « Appliquer aux cibles de la zone » (#onApplyZone : résout et applique la blessure à toutes les cibles)
Transverse
- i18n fr/en pour la Phase 1
- 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)
- ESLint (0 erreur sur les fichiers modifiés) + tests navigateur Phase 2 (Lourd, Rapide+défense, Rafale conditionnel, Portée, Mobilité, Incapacitant, toggle equip)
- ESLint (0 erreur sur les fichiers modifiés) + tests navigateur Phase 3 (Pratique +2D, Ponctuel annulation+consommation, Intimidant psychologie/relance, Malus temporaires, Durée, transmission roll())
- ESLint (0 erreur sur les fichiers modifiés) + tests navigateur Phase 4 (Fétiche helpers + UI, Zone note/bouton + #onApplyZone) — modèle réserves + champ feticheLoss effectifs au reload