feat(traits): tâche 0 + phases 2-4 — automatisation complète des Traits

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
This commit is contained in:
2026-08-07 15:30:41 +02:00
parent 8dd5d02994
commit ef01651b1d
21 changed files with 770 additions and 63 deletions
+29
View File
@@ -163,6 +163,35 @@
"pools": "Reserves",
"dice_pool": "Dice pool",
"pool_malus": "Wound penalty",
"pool_wound": "Wound penalty",
"pool_lourd": "Heavy penalty",
"lourd_malus_note": "Heavy penalty: -{malus}D (Vigor too low for equipped Heavy items)",
"effective_range": "Effective range",
"traits_mobility_note": "Mobility Handicap: +{handicap} (equipped non-Maniable protection)",
"rafale_check": "Burst fire (Difficulty +2, +{rafaleValue} successes if successful)",
"rapide_note": "Fast ({handicap}): the defender suffers {handicap} Handicap(s)",
"incapacitant_roll": "Health roll",
"intimidant": "Intimidating",
"intimidant_check": "Wield ({intimidantName}) — Intimidating",
"intimidant_psychology": "1D penalty (Psychology)",
"intimidant_reroll": "1D reroll",
"temporary_malus": "Temporary penalties",
"pool_temp_malus": "Temporary penalties",
"pool_psychology": "Psychology penalty",
"ponctuel": "One-shot",
"ponctuel_used": "cancels {value} Handicap(s)",
"duree": "Duration",
"duree_note": "effect for {value} combat turns",
"fetiche": "Fetish",
"fetiche_bonus": "Effort and Composure reserves +1D",
"fetiche_multiple": "A character can only possess a single Fetish object",
"fetiche_none": "No equipped Fetish object",
"fetiche_lost": "Fetish lost: reserves 2D, max 1D",
"fetiche_lost_penalty": "Fetish lost: reserves reduced by 1D",
"lose_fetiche": "Lose the fetish",
"zone_note": "Area ({value} m): everyone in the area suffers the damage",
"zone_apply": "Apply to targets in the area",
"zone_applied": "Area: {count} wound(s) applied",
"auto_successes": "automatic successes",
"self_control": "Self-control",
"effort": "Effort",