- combat-tracker.hbs + fight.mjs : alignés sur le CSS core v14 (header/tracker/footer, boutons <button>), attitudes/couleurs PJ-PNJ conservées, menu contextuel combatant réparé - less/combat.less (nouveau) : styles custom tracker + footer sticky des dialogues - handicap des 3 dialogues de jet étendu jusqu'à III - dialogue d'attaque : champ « Malus temporaires » (malus sur les jets) - checkbox/radio : flex: 0 0 auto global (fin des icônes étirées — ex. « Deuxième action » 228px → 24px) - TEST_COMBAT.md : plan de test combat rejouable (S1-S8, tout PASS)
9.4 KiB
Plan de test — Combat Vermine2047 (rejouable)
Base : règles de combat (Kit de Survie p.44-52, regles/2047_KitDeSurvie-DEF.txt) et moteur VermineExchange/CombatDialog/VermineCombatTracker.
Ce plan décrit le setup reproductible, les scénarios, les valeurs attendues (déterministes : pools, difficultés, formules) et la procédure de validation. Les jets de dés restent aléatoires ; on valide la mécanique, pas un résultat chiffré précis.
Prérequis
- Monde Vermine2047 sur
https://localhost:31000, connecté en Gamemaster. - Scène « AA » (
49tnX0ynTzztVkxy) avec tokens PJ / PNJ (+ token Créature ajouté). - Dés en main : chaque jet via l'UI crée une carte de chat (animations 3D possibles).
Acteurs (setup reproductible)
| Acteur | Type | ID | Réglages |
|---|---|---|---|
| Personnage | PJ (character) | f6qo5ubEnrSrtcfM |
Vigueur 3, Précision 2, Réflexes 2 · Mêlée 3, Corps-à-corps 2, Armes à feu 3 · Equipé : TEST Epée (lame 3), TEST Fusil (balle 4, mun. 10, 5/50 m), TEST Gilet (Protection 2, Mobilité 1) |
| PNJ | PNJ (npc) | EsksoLF7SV6yx7ZM |
Menace 2 (Attaque 4), Expérience 3 (contact « 5,7 ou 9 », action 4), Rôle 3 (Protection 3) · Equipé : TEST Hache (lame 3), TEST Armure (Protection 3) |
| Créature | Créature | 4CCdIWBHSqgApmlR |
Attaque 7, Dommages 5, Vigueur 4, Protection 2, Statut combat Difficulté 7 · Equipée : TEST Morsure (choc 4 + Vigueur) |
Pools de dés attendus (SkillLevels : lvl2→pool1/reroll1, lvl3→pool2/reroll1)
| Jet | Pool | Difficulté |
|---|---|---|
| PJ contact (Épée, Mêlée 3) | 3 + 2 = 5D | 5 / 7 / 9 |
| PJ distance (Fusil, AF 3) | 2 + 2 = 4D | Portée : courte 5 / moyenne 7 / longue 9 |
| PJ esquive | 2 + 1 = 3D | = difficulté attaque |
| PJ parade | 3 + 2 = 5D | = difficulté attaque |
| PNJ attaque (Menace 2) | 4D | 5 / 7 / 9 |
| PNJ défense | 4D (action) | = difficulté attaque |
| Créature attaque (Morsure) | 7D | = statut combat (7) |
| Créature défense | passive (pas de jet, difficulté verrouillée 7) | — |
Seuils de blessure (netDamage)
| Acteur | Légère | Grave | Mortelle |
|---|---|---|---|
| PJ | ≥ 1 | ≥ 4 | ≥ 8 |
| PNJ | ≥ 2 | ≥ 5 | ≥ 8 |
| Créature | ≥ 2 | ≥ 4 | ≥ 6 |
Formules de résolution (vérifiées par le moteur)
- Dégâts bruts = Dommages de base + réussites de l'attaquant.
- Dégâts nets = max(0, bruts − Protection du défenseur). La Protection est la somme des défenses équipées (PNJ : TEST Armure 3 ; la « Protection » de rôle n'est PAS une défense équipée). Parade : seule la protection utilisée compte.
- Blessure : catégorie dont le seuil est ≤ dégâts nets (la plus haute).
- Défense : ≥ réussites attaquant → paré/esquivé (0 dégât) ; 1+ de plus → touché.
Scénarios
S1 — Création du combat et initiative
- Créer un combat « TEST COMBAT » ; ajouter les combatants PJ + PNJ + Créature.
rollAll(): toutes les initiatives sont jetées (formuleXd10cs>=7).
- Attendu : combatantCount = 3 ; chaque combatant a une initiative non nulle ;
turn/roundcohérents aprèsstartCombat. - Validation : ⬜
S2 — Attaque PJ → PNJ au contact (Épée)
- Cibler le token PNJ. Ouvrir l'attaque via l'icône « Attaque » de la fiche PJ (équipement → TEST Epée).
- Vérifier le pool 5D (Vigueur 3 + Mêlée) et les difficultés 5/7/9.
- Lancer (difficulté 7). Défense PNJ : Esquive (4D).
- « Résoudre » : dégâts bruts = 3 + réussites PJ ; nets = bruts − 3 (Protection PNJ).
- Attendu : pool affiché 5D, difficulté 7 ; résolution = formules ci-dessus ; si touché → blessure Légère (≥2) / Grave (≥5) / Mortelle (≥8).
- Validation : ⬜
S3 — Attaque PJ → Créature à distance (Fusil)
- Cibler le token Créature. Attaque via TEST Fusil.
- Vérifier le pool 4D, difficulté de Portée (choisir Moyenne = 7).
- Lancer. La créature ne peut pas défendre (défense passive ; pas de bouton Esquive/Parade sur sa ligne).
- Attendu : pool 4D, difficulté 7 ; carte créature = « Défense passive » ; résolution = 4 + réussites − 2 (Protection créature) ; seuils créature 2/4/6.
- Validation : ⬜
S4 — Attaque PNJ → PJ (Hache)
- Cibler le token PJ. Attaque via la Hache du PNJ.
- Vérifier le pool 4D (Menace 2) et les difficultés 5/7/9.
- Défense PJ : Parade (5D, Vigueur + Mêlée) — choisir Parade.
- Attendu : pool 4D ; parade 5D ; si touché → 3 + réussites − 2 (TEST Gilet) ; seuils PJ 1/4/8.
- Validation : ⬜
S5 — Attaque Créature → PJ (Morsure)
- Cibler le token PJ. Attaque via TEST Morsure de la créature.
- Vérifier le pool 7D, difficulté verrouillée 7 (statut combat).
- Défense PJ : Esquive (3D).
- Attendu : pool 7D, difficulté 7 verrouillée ; dégâts de base = 4 + Vigueur 4 = 8 ; nets = 8 + réussites − 2 ; seuils PJ 1/4/8.
- Validation : ⬜
S6 — Traits de combat
- Rafale (3) : case « Tir en rafale » sur le Fusil → difficulté +2 (7→9) ; si jet réussi, +3 réussites affichées (« réussites automatiques ») ; si échec, pas de bonus.
- Rapide (2) : arme avec Rapide → note « le défenseur subit 2 Handicap(s) » ; la défense du PNJ s'ouvre avec handicap II pré-rempli.
- Lourd (4) : équiper un objet Lourd 4 au PJ (Vigueur 3 < 4) → malus -1D dans le pool (dialogue + ligne « Malus Lourd »).
- Portée (8) : arme Portée 8, Vigueur 4 → « Portée effective : 32 m » affichée.
- Incapacitant (7) : sur la carte d'échange, bouton « Jet de Santé (7) » → ouvre un jet de Santé vs 7.
- Zone (6) : note « Zone (6 m) » + bouton « Appliquer aux cibles de la zone ».
- Validation : ⬜
S7 — Tracker (gestion)
- Bouton + (createCombat) : crée un nouveau combat.
- Clic droit sur un combatant → menu contextuel (Mettre à jour / Effacer / Relancer / Supprimer) ; le bouton poubelle par combatant supprime aussi.
- Poubelle d'en-tête (deleteCombat) : supprime le combat.
- Footer : Commencer (startCombat), tours (←/→), rounds (←/→), Terminer (endCombat).
- Validation : ⬜
S8 — Nettoyage
- Supprimer les combats de test, les items « TEST * », restaurer les compétences PJ (0), retirer le token Créature.
Rapport d'exécution
Chaque scénario : note PASS si les valeurs attendues sont vérifiées, FAIL sinon (avec l'écart). Les chiffres aléatoires (dés) sont relevés tels quels.
S1 — Combat & initiative — PASS
3 combatants ajoutés ; initiatives jetées (PJ 1, PNJ 0, Créature 0) ; startCombat → round 1 ; ordre du tour = initiative décroissante (Personnage, PNJ, Créature).
S2 — PJ→PNJ contact (Épée) — PASS
- Dialogue : pool 5D (Vigueur 3 + Mêlée 3), difficultés [5,7,9], dégâts de base 3.
- Attaque (difficulté 7) → 2 réussites. Défense PNJ Esquive 4D (action) → 0 réussite.
- Résolution : Touché, bruts 3+2=5, nets 5 (PNJ sans défense équipée → 0 protection) → Blessure grave (seuil 5).
- Application :
majorWound0→1, « Blessure appliquée ». - Note : la « Protection 3 » du rôle PNJ n'est pas une défense équipée → non déduite.
S3 — PJ→Créature distance (Fusil) — PASS
- Dialogue : pool 4D (Précision 2 + AF 3), difficulté verrouillée 7 (cible créature).
- Créature : pas de bouton défense → « Défense passive ».
- Résolution : attaque 3 réussites → Touché, bruts 4+3=7 − protection 2 = 5 → Blessure grave (seuil créature 4).
S4 — PNJ→PJ (Hache) — PASS
- Dialogue PNJ : pool 4D (Menace 2), difficultés [5,7,9].
- Défense PJ Parade : pool 5D (Vigueur 3 + Mêlée 3), difficulté 7, compétence Mêlée.
- Résolution : attaque 2, défense 2 → Paré, aucun dégât (réussites défense ≥ attaque).
S5 — Créature→PJ (Morsure) — PASS
- Dialogue : pool 7D (attaque), difficulté verrouillée 7 (statut combat), dégâts de base 8 (4 + Vigueur 4).
- Défense PJ Esquive : pool 3D (Réflexes 2 + Corps-à-corps 2), difficulté 7.
- Résolution (défense 0) : Touché, bruts 8+4=12 − protection 2 = 10 → Blessure mortelle (seuil 8).
- Bonus : le malus de blessure d'une créature blessée est bien appliqué (deadlyWound=1 → −3D, pool 7→4).
S6 — Traits de combat — PASS
- Rafale (3) : case → difficulté +2 (7→9) ; jet raté → aucun bonus (total 0) ; jet réussi → +3 réussites (total = brut + 3, ligne « réussites automatiques »).
- Rapide (2) : note sur la carte ; dialogue de défense → handicap II pré-rempli.
- Lourd (4) : Vigueur 3 < 4 → malus −1D (pool breakdown « Malus Lourd »).
- Portée (8) : portée effective = 8 × Vigueur 3 = 24 m.
- Incapacitant (7) / Zone (6) : boutons « Jet de Santé » / « Appliquer aux cibles de la zone » présents sur la carte.
S7 — Tracker — PASS (onglet combat actif requis)
Bouton + → nouveau combat ; suppression combatant (bouton poubelle + menu contextuel clic-droit) ; footer Commencer → round 1 ; boutons tours/rounds ; Terminer → round 0 ; poubelle d'en-tête → suppression du combat.
S8 — Nettoyage — PASS
Combats de test supprimés, items « TEST * » retirés, compétences PJ restaurées, token Créature retiré.