Files
fvtt-celestopol/templates/roll-dialog.hbs
LeRatierBretonnier 79a68ee9ab feat: jets d'attaque depuis les armes (combat en opposition)
- Bouton ⚔ Attaquer sur chaque arme (onglet Équipement, mode Jeu)
- rollAttack(itemId) dans character.mjs : jet Échauffourée vs Corps PNJ
- Dialog combat : input numérique 'Corps du PNJ' à la place du sélect difficulté
- computeResult() : margin===0 → résultat 'tie' (égalité) en combat
- Mêlée échec → blessure joueur auto-cochée (comme résistance)
- Distance échec → simple raté, pas de blessure joueur
- Chat message : infos arme, bandeau égalité, desc succès/échec combat
- CSS : bandeau 'tie' (brun doré), zone arme dans dialog
- i18n : CELESTOPOL.Combat.* (attack, corpsPnj, tie, successHit, etc.)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 00:29:29 +02:00

154 lines
6.0 KiB
Handlebars
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div class="roll-dialog-content">
{{!-- En-tête : acteur + domaine + formule de base --}}
<div class="roll-info-block">
<div class="roll-actor">{{actorName}}</div>
{{!-- Arme (mode combat) --}}
{{#if isCombat}}
<div class="roll-weapon-line">
<span class="weapon-icon">⚔</span>
<span class="weapon-name">{{weaponName}}</span>
<span class="weapon-degats">+{{weaponDegats}}</span>
</div>
{{/if}}
<div class="roll-skill-line">
{{#if statLabel}}<span class="stat-label">{{localize statLabel}}</span><span class="sep"> </span>{{/if}}
<span class="skill-label">{{localize skillLabel}}</span>
</div>
<div class="roll-dice-summary">
<div class="dice-breakdown">
<span class="base-dice">2d8</span>
<span class="plus-sign"> + </span>
<span class="dval">{{skillValue}}</span>
{{#if woundMalus}}
<span class="dminus"> {{abs woundMalus}}</span>
{{/if}}
</div>
{{#if woundLabel}}
<div class="wound-info">⚠ {{woundLabel}}</div>
{{/if}}
</div>
</div>
<div class="roll-form-rows">
{{!-- Difficulté : sélect standard OU input Corps PNJ en combat --}}
{{#if isCombat}}
<div class="form-row-line form-corps-pnj">
<label for="corpsPnj">{{localize "CELESTOPOL.Combat.corpsPnj"}}</label>
<input type="number" id="corpsPnj" name="corpsPnj" value="7" min="1" max="30" class="corps-pnj-input">
</div>
{{else}}
<div class="form-row-line">
<label for="difficulty">{{localize "CELESTOPOL.Roll.difficulty"}}</label>
<select id="difficulty" name="difficulty">
{{#each difficultyChoices as |diff key|}}
<option value="{{key}}" {{#if (eq key ../defaultDifficulty)}}selected{{/if}}>
{{localize diff.label}}{{#if diff.value}} ({{diff.value}}){{/if}}
</option>
{{/each}}
</select>
</div>
{{/if}}
{{!-- Options non disponibles en test de résistance --}}
{{#unless isResistance}}
{{!-- Modificateur & Aspect côte à côte --}}
<div class="form-two-col">
<div class="form-row-line">
<label for="modifier">{{localize "CELESTOPOL.Roll.modifier"}}</label>
<select id="modifier" name="modifier">
{{#each modifierChoices as |choice|}}
<option value="{{choice.value}}" {{#if (eq choice.id "malaise")}}selected{{/if}}>{{choice.label}}</option>
{{/each}}
</select>
</div>
<div class="form-row-line">
<label for="aspectModifier">{{localize "CELESTOPOL.Roll.aspect"}}</label>
<select id="aspectModifier" name="aspectModifier">
{{#each aspectChoices as |choice|}}
<option value="{{choice.value}}" {{#if (eq choice.value 0)}}selected{{/if}}>{{choice.label}}</option>
{{/each}}
</select>
</div>
</div>
{{!-- Dé de la Lune --}}
<div class="form-moon-row">
<label class="moon-toggle" for="rollMoonDie">
<input type="checkbox" id="rollMoonDie" name="rollMoonDie" {{#if defaultRollMoonDie}}checked{{/if}}>
<span class="moon-icon">🌑</span>
<span class="moon-text">{{localize "CELESTOPOL.Roll.rollMoonDie"}}</span>
</label>
</div>
{{!-- Destin (3d8) — seulement si jauge pleine --}}
<div class="form-destin-row {{#unless destGaugeFull}}destin-disabled{{/unless}}">
<label class="destin-toggle" for="useDestin">
<input type="checkbox" id="useDestin" name="useDestin" {{#unless destGaugeFull}}disabled{{/unless}}>
<span class="destin-icon">✦</span>
<span class="destin-text">
<span class="destin-main">{{localize "CELESTOPOL.Roll.destin"}}</span>
<span class="destin-bonus">{{localize "CELESTOPOL.Roll.destinBonus"}}</span>
</span>
{{#if destGaugeFull}}
<span class="destin-badge full">{{localize "CELESTOPOL.Roll.destGaugeFull"}}</span>
{{else}}
<span class="destin-badge empty">{{localize "CELESTOPOL.Roll.destGaugeEmpty"}}</span>
{{/if}}
</label>
</div>
{{!-- Puiser dans ses ressources — affiché dynamiquement via JS si malus --}}
<div class="form-puiser-row" id="puiser-row" style="display:none">
<label class="puiser-toggle" for="puiserRessources">
<input type="checkbox" id="puiserRessources" name="puiserRessources">
<span class="puiser-icon">💪</span>
<span class="puiser-text">
<span class="puiser-main">{{localize "CELESTOPOL.Roll.puiser"}}</span>
<span class="puiser-sub">{{localize "CELESTOPOL.Roll.puiserDesc"}}</span>
</span>
<span class="puiser-cost">+1 <i class="fas fa-face-sad-tear"></i></span>
</label>
</div>
{{!-- Fortune (1d8+8) — seulement si Fortune > 0 --}}
{{#if fortuneValue}}
<div class="form-fortune-row">
<label class="fortune-toggle" for="useFortune">
<input type="checkbox" id="useFortune" name="useFortune">
<span class="fortune-icon">⚜</span>
<span class="fortune-text">
<span class="fortune-main">{{localize "CELESTOPOL.Roll.fortune"}}</span>
<span class="fortune-bonus">{{localize "CELESTOPOL.Roll.fortuneBonus"}}</span>
</span>
<span class="fortune-badge">{{fortuneValue}}</span>
</label>
</div>
{{/if}}
{{/unless}}{{!-- /isResistance --}}
{{!-- Visibilité --}}
<div class="form-row-line form-visibility">
<label for="visibility">{{localize "CELESTOPOL.Roll.visibility"}}</label>
<select id="visibility" name="visibility">
<option value="publicroll">{{localize "CELESTOPOL.Roll.visibilityPublic"}}</option>
<option value="gmroll">{{localize "CELESTOPOL.Roll.visibilityGM"}}</option>
<option value="selfroll">{{localize "CELESTOPOL.Roll.visibilitySelf"}}</option>
</select>
</div>
</div>
{{!-- Prévisualisation formule --}}
<div class="dice-preview">
<span class="preview-label">{{localize "CELESTOPOL.Roll.formula"}}</span>
<span class="preview-formula" id="preview-formula">2d8</span>
</div>
</div>