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
This commit is contained in:
2026-08-07 14:40:42 +02:00
parent ef86b2637c
commit 8dd5d02994
8 changed files with 169 additions and 31 deletions
+6
View File
@@ -31,6 +31,12 @@
<input type="radio" name="repairMode" value="fortune">
<span>{{ localize "VERMINE.reliability_repair_fortune" }}</span>
</label>
{{#if hasBrokenCoque}}
<label class="reliability-option">
<input type="radio" name="repairMode" value="coque">
<span>{{ localize "VERMINE.reliability_repair_coque" max=coqueMax }}</span>
</label>
{{/if}}
</div>
</div>
<div class="form-group">
+13 -6
View File
@@ -6,12 +6,19 @@
</span>
</h3>
<h4>
{{#each item.system.traits as | trait index|}}
<span data-tooltip="{{trait.description}}">{{trait.name}}
{{#if trait.value}}
<input type="number" class="hexa" value="{{trait.value}}" name="system.traits.{{index}}.value">
{{/if}}
</span>
{{#each item.system.traits as |trait key|}}
{{#if trait}}
{{#with (lookup ../config.traits key)}}
<span data-tooltip="{{this.description}}">{{this.name}}
{{#if trait.max}}
<em class="trait-count">({{trait.value}}/{{trait.max}})</em>
{{/if}}
{{#if trait.value}}
<input type="number" class="hexa" value="{{trait.value}}" name="system.traits.{{key}}.value">
{{/if}}
</span>
{{/with}}
{{/if}}
{{/each}}
</h4>
</div>
+7
View File
@@ -8,15 +8,22 @@
<span class="reliability-meta-item"><strong>{{ localize "VERMINE.reliability_skill" }}:</strong> {{skillLabel}}</span>
<span class="reliability-meta-item"><strong>{{ localize "VERMINE.difficulty" }}:</strong> {{difficulty}}</span>
{{#if handicap}}<span class="reliability-meta-item"><strong>{{ localize "VERMINE.handicap" }}:</strong> +{{handicap}}</span>{{/if}}
{{#if pratiqueHandicap}}<span class="reliability-meta-item"><strong>{{ localize "VERMINE.handicap" }}:</strong> +{{pratiqueHandicap}}</span>{{/if}}
</div>
{{#if autoSuccess}}
<p class="reliability-note">{{ localize "VERMINE.reliability_auto_success" }}</p>
{{else}}
<ul class="flexrow reliability-results">
{{#each results}}
<li class="reliability-die {{#if this.isSuccess}}success{{/if}}">{{this.value}}</li>
{{/each}}
</ul>
{{/if}}
<div class="reliability-summary flexrow flex-wrap">
<span><strong>{{ localize "VERMINE.reliability_successes" }}:</strong> {{successes}} / {{required}}</span>
<span><strong>{{ localize "VERMINE.reliability_result" }}:</strong> {{resultLabel}}</span>
</div>
{{#if fortuneNote}}<p class="reliability-note">{{fortuneNote}}</p>{{/if}}
{{#if bienConcuNote}}<p class="reliability-note">{{bienConcuNote}}</p>{{/if}}
{{#if pratiqueNote}}<p class="reliability-note">{{pratiqueNote}}</p>{{/if}}
</div>