Rework fiches, jets de dés et CSS

This commit is contained in:
2026-04-03 16:22:51 +02:00
parent e001ec0dc9
commit 1fb80f6abe
21 changed files with 3091 additions and 1316 deletions

View File

@@ -1,138 +1,304 @@
<div class="chat-message-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<h4 class="chat-actor-name">{{alias}}</h4>
</div>
<div class="mournblade-chat-result">
<hr />
{{#if actionImg}}
<div>
<img class="chat-icon" src="{{actionImg}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol"></div>
<div>
<ul>
<li class="mournblade-cyd2-roll">
<strong>Attribut</strong> : {{attr.label}} ({{attr.value}})
</li>
{{#if attr2}}
<li><strong>Attribut</strong> : {{attr2.label}} ({{attr2.value}})</li>
{{/if}} {{#if competence}}
<li>
<strong>Compétence</strong> : {{competence.name}}
({{competence.system.niveau}})
</li>
{{/if}} {{#if selectedMaitrise}}
<li><strong>Maitrise</strong> : {{selectedMaitrise.name}}</li>
{{/if}} {{#if arme}}
<li>
<strong>Arme</strong> : {{arme.name}} (+{{arme.system.bonusmaniementoff}})
</li>
{{!-- Header avec acteur --}}
<div class="chat-result-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<li><strong>Formule</strong> : {{diceFormula}}</li>
<li><strong>Résultat du dé</strong> : {{diceResult}}</li>
{{#if bonusRoll}}
<li><strong>{{textBonus}}</strong> : +{{bonusRoll.total}}</li>
{{/if}}
<li><strong>Total</strong> : {{finalResult}}</li>
{{#if attaqueCharge}}
<li>
Vous avez chargé : vos adversaires bénéficient de +3 pour vous attaquer
</li>
{{/if}} {{#if difficulte}}
<li><strong>SD</strong> : {{difficulte}}</li>
{{#if isSuccess}}
<li class="chat-success">Succés...</li>
{{#if attaqueDesarme}}
<li>Vous désarmez votre adversaire ! Son arme tombe hors de sa portée.</li>
{{/if}} {{else}}
<li class="chat-failure">Echec...</li>
{{/if}} {{/if}} {{#if isHeroique}}
<li class="chat-success">Héroïque !!!</li>
{{#if attaqueDesarme}}
<li>
... Et en plus vous récupérez l'arme de votre adversaire dans votre main
(si vous le souhaitez) !.
</li>
{{/if}} {{/if}} {{#if isDramatique}}
<li class="chat-failure">Dramatique !!!</li>
{{/if}} {{#if isInit}}
<li>Initiative stockée !</li>
{{/if}} {{#if isSuccess}} {{#if immobiliser}} {{#if isHeroique}}
<li>
Votre cible est immobilisée, et vous pouvez faire une action complexe.
</li>
{{else}}
<li>Votre cible est immobilisée.</li>
{{/if}} {{/if}} {{#if desengager}} {{#if isSuccess}}
<li>Vous vous désengagez de votre adversaire.</li>
{{else}}
<li>
Vous ne parvenez pas à vous désengager de votre adversaire, il a un bonus
de +3 pour vous attaquer
</li>
{{/if}} {{/if}} {{#if repousser}} {{#if isHeroique}}
<li>Votre cible est repoussée de 3 mètres et tombe au sol.</li>
{{else}}
<li>Votre cible tombe au sol.</li>
{{/if}} {{/if}} {{#if assomer}} {{#if isHeroique}}
<li>Votre cible est assomée pour [[/r 1d10+10]] minutes.</li>
{{else}}
<li>Votre cible est assomée pour [[/r 1d10]] minutes.</li>
{{/if}} {{/if}} {{#if coupBas}}
<li>
La cible a reçu 2 adversités bleues et a perdu 1 niveau de combativité
(auto).
</li>
{{#if isHeroique}}
<li>Et votre cible perd sa prochaine action complexe.</li>
{{/if}} {{/if}} {{#if arme}} {{#if contenir}} {{#if isHeroique}}
<li>
Aucun dégât, mais tous les adversaires dont le Seuil de Défense + 10 est
atteint ou dépassé par le résultat de la manœuvre ne peuvent déclarer
dattaque contre le personnage lors de leur prochaine action complexe (à
ce tour de jeu ou au suivant).
</li>
{{else}}
<li>
Aucun dégât, mais la cible de cette manœuvre ne peut pas déclarer
dattaque contre vous lors de sa prochaine action complexe (à ce tour de
jeu ou au suivant).
</li>
{{/if}} {{else}} {{#if (eq nbCombativitePerdu "vaincu")}}
<li>Votre adversaire est vaincu !</li>
{{else}}
<li>
Votre adversaire a perdu {{nbCombativitePerdu}} Etat de Combativité (auto)
</li>
{{#if (not arme.system.onlevelonly)}}
<button class="chat-card-button roll-chat-degat">Dégats de l'arme</button>
{{#if coupDevastateur}}
<button class="chat-card-button roll-chat-degat-devastateur">
Dégats de l'arme avec Coup Dévastateur
</button>
{{/if}} {{/if}} {{/if}} {{/if}} {{/if}} {{/if}} {{#each predilections as
|pred key|}}
<li>
{{#if (and (and pred.acquise (not pred.maitrise)) (not pred.used))}}
<button
class="chat-card-button predilection-reroll"
data-predilection-index="{{key}}"
>
Predilection : {{pred.name}}
</button>
<div class="header-info">
<h4 class="actor-name">{{alias}}</h4>
{{#if competence}}
<div class="action-title">
<i class="fas fa-dice-d10"></i>
{{competence.name}}
{{#if rune}}{{rune.name}}{{else if arme}}{{arme.name}}{{/if}}
</div>
{{else if attr}}
<div class="action-title">
<i class="fas fa-dice-d10"></i>
{{attr.label}}{{#if attr2}} / {{attr2.label}}{{/if}}
</div>
{{/if}}
</li>
{{/each}}
</ul>
</div>
</div>
{{!-- Résultat principal --}}
<div class="result-main">
<div class="result-display">
<div class="dice-result">
<i class="fas fa-dice"></i>
<span class="dice-value">{{diceResult}}</span>
</div>
{{#if isD20Impair}}
<div class="dice-result d20-impair">
<i class="fas fa-exclamation-circle"></i>
<span class="dice-value">D20 impair → valeur dé : 0</span>
</div>
{{/if}}
<div class="total-result">
<span class="total-label">Total</span>
<span class="total-value">{{finalResult}}</span>
</div>
{{#if difficulte}}
<div class="difficulty">
<span class="difficulty-label">SD</span>
<span class="difficulty-value">{{difficulte}}</span>
</div>
{{/if}}
</div>
{{!-- Badge de résultat --}}
{{#if difficulte}}
<div class="result-badge-container">
{{#if isHeroique}}
<div class="result-badge heroique">
<i class="fas fa-star"></i> HÉROÏQUE !
</div>
{{else if isDramatique}}
<div class="result-badge dramatique">
<i class="fas fa-skull"></i> DRAMATIQUE !
</div>
{{else if isSuccess}}
<div class="result-badge success">
<i class="fas fa-check"></i> Succès
</div>
{{else}}
<div class="result-badge failure">
<i class="fas fa-times"></i> Échec
</div>
{{/if}}
</div>
{{/if}}
</div>
{{!-- Détails du jet --}}
<div class="result-details">
<div class="detail-row">
<span class="detail-label">Formule :</span>
<span class="detail-value">{{diceFormula}}</span>
</div>
{{#if attr}}
<div class="detail-row">
<span class="detail-label">{{attr.label}} :</span>
<span class="detail-value">{{attr.value}}</span>
</div>
{{/if}}
{{#if attr2}}
<div class="detail-row">
<span class="detail-label">{{attr2.label}} :</span>
<span class="detail-value">{{attr2.value}}</span>
</div>
{{/if}}
{{#if competence}}
<div class="detail-row">
<span class="detail-label">{{competence.name}} :</span>
<span class="detail-value">{{competence.system.niveau}}</span>
</div>
{{/if}}
{{#if selectedMaitrise}}
<div class="detail-row">
<span class="detail-label">Maîtrise :</span>
<span class="detail-value">{{selectedMaitrise.name}}</span>
</div>
{{/if}}
{{#if arme}}
<div class="detail-row">
<span class="detail-label">Arme :</span>
<span class="detail-value">{{arme.name}} (+{{arme.system.bonusmaniementoff}})</span>
</div>
{{/if}}
{{#if rune}}
<div class="detail-row">
<span class="detail-label">Rune :</span>
<span class="detail-value">{{rune.name}}{{#if rune.system.formule}}{{rune.system.formule}}{{/if}}</span>
</div>
<div class="detail-row">
<span class="detail-label">Mode :</span>
<span class="detail-value">{{runemode}}</span>
</div>
<div class="detail-row">
<span class="detail-label">Pouvoir / Durée :</span>
<span class="detail-value">{{runeame}} pts → {{runeduree}} action(s) complexe(s)</span>
</div>
<div class="detail-row">
<span class="detail-label">Coût en Âme :</span>
<span class="detail-value">{{runeAmeCout}} pts</span>
</div>
{{/if}}
{{#if bonusRoll}}
<div class="detail-row bonus">
<span class="detail-label">{{textBonus}} :</span>
<span class="detail-value">+{{bonusRoll.total}}</span>
</div>
{{/if}}
</div>
{{!-- Effets et conséquences --}}
{{#if rune}}
<div class="result-effects">
{{#if isSuccess}}
{{#if isHeroique}}
<div class="effect-item">
<i class="fas fa-star"></i>
La rune {{rune.name}} est activée avec une puissance héroïque — la résistance est impossible !
</div>
{{else}}
<div class="effect-item">
<i class="fas fa-magic"></i>
La rune {{rune.name}} est activée avec succès.
</div>
{{/if}}
{{else}}
{{#if isDramatique}}
<div class="effect-item">
<i class="fas fa-skull"></i>
Échec dramatique : la rune échoue — les forces du chaos se déchaînent !
</div>
{{else}}
<div class="effect-item">
<i class="fas fa-times-circle"></i>
Échec simple : la rune n'a aucun effet.
</div>
{{/if}}
{{/if}}
</div>
{{else}}
{{!-- Effets et conséquences --}}
{{#if isSuccess}}
<div class="result-effects">
{{#if attaqueCharge}}
<div class="effect-item">
<i class="fas fa-horse"></i>
Vous avez chargé : vos adversaires bénéficient de +3 pour vous attaquer.
</div>
{{/if}}
{{#if attaqueDesarme}}
<div class="effect-item">
{{#if isHeroique}}
<i class="fas fa-hand-rock"></i>
Vous désarmez votre adversaire <em>et</em> récupérez son arme (si vous le souhaitez) !
{{else}}
<i class="fas fa-hand-rock"></i>
Vous désarmez votre adversaire ! Son arme tombe hors de sa portée.
{{/if}}
</div>
{{/if}}
{{#if immobiliser}}
<div class="effect-item">
{{#if isHeroique}}
<i class="fas fa-lock"></i>
Votre cible est immobilisée — vous pouvez faire une action complexe.
{{else}}
<i class="fas fa-lock"></i>
Votre cible est immobilisée.
{{/if}}
</div>
{{/if}}
{{#if repousser}}
<div class="effect-item">
{{#if isHeroique}}
<i class="fas fa-arrow-right"></i>
Votre cible est repoussée de 3 mètres et tombe au sol.
{{else}}
<i class="fas fa-arrow-right"></i>
Votre cible tombe au sol.
{{/if}}
</div>
{{/if}}
{{#if assomer}}
<div class="effect-item">
{{#if isHeroique}}
<i class="fas fa-dizzy"></i>
Votre cible est assommée pour [[/r 1d10+10]] minutes.
{{else}}
<i class="fas fa-dizzy"></i>
Votre cible est assommée pour [[/r 1d10]] minutes.
{{/if}}
</div>
{{/if}}
{{#if coupBas}}
<div class="effect-item">
<i class="fas fa-exclamation-circle"></i>
La cible reçoit 2 adversités bleues et perd 1 niveau de combativité (auto).
{{#if isHeroique}}
<br/><i class="fas fa-plus"></i> Votre cible perd aussi sa prochaine action complexe.
{{/if}}
</div>
{{/if}}
{{#if arme}}
{{#if contenir}}
<div class="effect-item">
{{#if isHeroique}}
<i class="fas fa-shield"></i>
Tous les adversaires dont le SD+10 est atteint ne peuvent pas déclarer d'attaque lors de leur prochaine action complexe.
{{else}}
<i class="fas fa-shield"></i>
La cible ne peut pas vous attaquer lors de sa prochaine action complexe.
{{/if}}
</div>
{{else}}
{{#if (eq nbCombativitePerdu "vaincu")}}
<div class="effect-item">
<i class="fas fa-skull-crossbones"></i>
Votre adversaire est <strong>vaincu</strong> !
</div>
{{else}}
<div class="effect-item">
<i class="fas fa-bolt"></i>
Votre adversaire a perdu <strong>{{nbCombativitePerdu}}</strong> état(s) de combativité (auto).
</div>
{{#if (not arme.system.onlevelonly)}}
<div class="damage-buttons">
<button class="chat-card-button roll-chat-degat">
<i class="fas fa-burst"></i> Dégâts de l'arme
</button>
{{#if coupDevastateur}}
<button class="chat-card-button roll-chat-degat-devastateur">
<i class="fas fa-fire"></i> Dégâts avec Coup Dévastateur
</button>
{{/if}}
</div>
{{/if}}
{{/if}}
{{/if}}
{{/if}}
</div>
{{else}}
{{!-- Conséquences d'un échec --}}
{{#if desengager}}
<div class="result-effects">
<div class="effect-item">
<i class="fas fa-exclamation-triangle"></i>
Vous ne parvenez pas à vous désengager — malus de -5 à votre défense ce tour et le suivant.
</div>
</div>
{{/if}}
{{#if isInit}}
<div class="result-effects">
<div class="effect-item">
<i class="fas fa-clock"></i>
Initiative stockée !
</div>
</div>
{{/if}}
{{/if}}
{{/if}}
{{!-- Prédilections (boutons de relance) --}}
{{#each predilections as |pred key|}}
{{#if (and (and pred.acquise (not pred.maitrise)) (not pred.used))}}
<div class="predilection-section">
<button class="chat-card-button predilection-reroll" data-predilection-index="{{key}}">
<i class="fas fa-redo"></i> Prédilection : {{pred.name}}
</button>
</div>
{{/if}}
{{/each}}
</div>