Refonte complète : dialogues de jet + messages de chat

- Nouveau layout roll-dialog.hbs : header, grille lune 3×3,
  sélecteur visibility, ligne Destin avec compteur disponible,
  preview formule améliorée
- Fix JS : data-moon-bonus sur chaque option, formule − si négatif
- Fix roll.mjs : passe destActuel au dialog, déduit automatiquement
  1 point de Destin (system.destin.lvl++) après chaque jet avec Destin
- character.mjs : passe destActuel = 8 - destin.lvl au prompt()
- chat-message.hbs : icônes résultat (✦✦/✖✖ pour critiques), label
  Formule, margin-badge right-aligned vs difficulté left-aligned
- roll.less : refonte complète couleurs (#0c4c0c/#e07b00), grille lune,
  destin row, visibility subtil, bandeau critiques améliorés
- lang/fr.json : clés Roll.visibility*, destinAvailable, destinNone,
  destinBonus, formula

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-29 00:34:27 +01:00
parent c540b17e70
commit ad85ecf4bf
6 changed files with 389 additions and 234 deletions

View File

@@ -11,9 +11,7 @@
{{#if statLabel}}<span class="stat-lbl">{{statLabel}}</span><span class="sep"> </span>{{/if}}
<span class="skill-lbl">{{skillLabel}}</span>
</span>
{{#if woundLabel}}
<span class="wound-info">⚠ {{woundLabel}}</span>
{{/if}}
{{#if woundLabel}}<span class="wound-info">⚠ {{woundLabel}}</span>{{/if}}
</div>
<div class="moon-badge" title="{{moonPhaseLabel}}">
<span class="moon-sym">{{moonSymbol}}</span>
@@ -21,7 +19,7 @@
</div>
</div>
{{!-- Dés --}}
{{!-- Zone dés --}}
<div class="dice-zone">
{{#each diceResults as |die|}}
<span class="die-face d6 {{#if (eq die 6)}}max{{/if}}{{#if (eq die 1)}}min{{/if}}">{{die}}</span>
@@ -30,30 +28,33 @@
{{!-- Formule détaillée --}}
<div class="formula-line">
<span class="fl-label">{{localize "CELESTOPOL.Roll.formula"}} :</span>
<span class="fl-ndice">{{nbDice}}d6</span>
<span class="fl-eq"> = </span>
<span class="fl-sum">{{diceSum}}</span>
{{#if moonBonus}}
<span class="fl-op"> + </span>
<span class="fl-moon" title="{{moonPhaseLabel}}">{{moonSymbol}} {{moonBonus}}</span>
<span class="fl-op">+</span>
<span class="fl-moon" title="{{moonPhaseLabel}}">{{moonSymbol}}{{moonBonus}}</span>
{{/if}}
{{#if modifier}}
<span class="fl-op"> {{#if (gt modifier 0)}}+{{else}}{{/if}} </span>
<span class="fl-op">{{#if (gt modifier 0)}}+{{else}}{{/if}}</span>
<span class="fl-mod">{{abs modifier}}</span>
{{/if}}
{{#if aspectMod}}
<span class="fl-op"> {{#if (gt aspectMod 0)}}+{{else}}{{/if}} </span>
<span class="fl-asp" title="{{localize "CELESTOPOL.Roll.usedAspect"}}">✦ {{abs aspectMod}}</span>
<span class="fl-op">{{#if (gt aspectMod 0)}}+{{else}}{{/if}}</span>
<span class="fl-asp" title="{{localize "CELESTOPOL.Roll.usedAspect"}}">✦{{abs aspectMod}}</span>
{{/if}}
<span class="fl-sep"> = </span>
<span class="fl-sep">=</span>
<span class="fl-total">{{total}}</span>
</div>
{{!-- Seuil et marge --}}
<div class="threshold-line">
<span class="vs-label">vs</span>
<span class="diff-label">{{difficultyLabel}}</span>
<span class="diff-val">({{difficultyValue}})</span>
<span class="vs-wrap">
<span class="vs-label">vs</span>
<span class="diff-label">{{difficultyLabel}}</span>
<span class="diff-val">({{difficultyValue}})</span>
</span>
{{#if margin}}
<span class="margin-badge {{#if marginAbove}}above{{else}}below{{/if}}">
{{#if marginAbove}}+{{/if}}{{margin}}
@@ -61,26 +62,28 @@
{{/if}}
</div>
{{!-- Infos bonus (Destin utilisé) --}}
{{!-- Infos bonus (Destin, Aspect) --}}
{{#if useDestin}}
<div class="used-info">
<span class="used-destin"> {{localize "CELESTOPOL.Roll.usedDestin"}}</span>
<span class="used-destin"> {{localize "CELESTOPOL.Roll.usedDestin"}}</span>
</div>
{{/if}}
{{!-- Bandeau résultat --}}
<div class="roll-result-banner {{resultClass}}">
{{#if isCriticalSuccess}}
<span class="result-icon">✦</span>
<span class="result-icon">✦</span>
<span class="result-label">{{localize "CELESTOPOL.Roll.criticalSuccess"}}</span>
<span class="result-desc">{{localize "CELESTOPOL.Roll.criticalSuccessDesc"}}</span>
{{else if isSuccess}}
<span class="result-icon">✦</span>
<span class="result-label">{{localize "CELESTOPOL.Roll.success"}}</span>
{{else if isCriticalFailure}}
<span class="result-icon">✖</span>
<span class="result-icon">✖</span>
<span class="result-label">{{localize "CELESTOPOL.Roll.criticalFailure"}}</span>
<span class="result-desc">{{localize "CELESTOPOL.Roll.criticalFailureDesc"}}</span>
{{else if isFailure}}
<span class="result-icon">✖</span>
<span class="result-label">{{localize "CELESTOPOL.Roll.failure"}}</span>
{{/if}}
</div>