249 lines
12 KiB
Handlebars
249 lines
12 KiB
Handlebars
{{!-- templates/damage-wizard.hbs --}}
|
||
<div class="dw-root {{#if isClash}}dw-clash{{else}}dw-unilateral{{/if}}">
|
||
|
||
{{!-- ═══════════════════════════════════════════════════════════════ --}}
|
||
{{!-- ZONE PRINCIPALE 3 COLONNES --}}
|
||
{{!-- ═══════════════════════════════════════════════════════════════ --}}
|
||
<div class="dw-main">
|
||
|
||
{{!-- ── COLONNE GAUCHE : ATTAQUANT ─────────────────────────────── --}}
|
||
<div class="dw-col dw-col-attacker">
|
||
<div class="dw-col-header dw-header-attacker">
|
||
<span class="dw-header-label">{{attacker.name}}</span>
|
||
</div>
|
||
|
||
{{!-- Stats --}}
|
||
<div class="dw-stats-block">
|
||
<div class="dw-stat-row">
|
||
<span class="dw-stat-lbl">HP</span>
|
||
<div class="dw-bar-wrap"><div class="dw-bar dw-bar-hp" style="width:{{attacker.hpPercent}}%"></div></div>
|
||
<span class="dw-stat-val">{{attacker.hpValue}}/{{attacker.hpMax}}</span>
|
||
</div>
|
||
<div class="dw-stat-row">
|
||
<span class="dw-stat-lbl">STG</span>
|
||
<div class="dw-bar-wrap"><div class="dw-bar dw-bar-stg" style="width:{{attacker.staggerPercent}}%"></div></div>
|
||
<span class="dw-stat-val">{{attacker.staggerValue}}/{{attacker.staggerMax}}</span>
|
||
</div>
|
||
<div class="dw-stat-inline">
|
||
<span class="dw-stat-lbl">💡</span><span class="dw-stat-val">{{attacker.lightValue}}/{{attacker.lightMax}}</span>
|
||
<span class="dw-stat-lbl" style="margin-left:8px;">💜</span><span class="dw-stat-val">{{attacker.emotion}}</span>
|
||
</div>
|
||
</div>
|
||
|
||
{{!-- Compétence --}}
|
||
{{#if attacker.skillName}}
|
||
<div class="dw-skill-row">
|
||
<img class="dw-skill-icon" src="{{attacker.skillImg}}" alt="{{attacker.skillName}}" />
|
||
<span class="dw-skill-label">{{attacker.skillName}}</span>
|
||
</div>
|
||
{{/if}}
|
||
|
||
{{!-- Dés de l'attaquant --}}
|
||
{{#if matchupRows}}
|
||
{{#each matchupRows}}
|
||
{{#if (eq this.side "atk")}}
|
||
<div class="dw-die-card dw-verdict-bg-{{this.verdict}}">
|
||
<img class="dw-die-img" src="systems/sotc/assets/dice types/{{this.dieType}}.png" alt="{{this.dieType}}"/>
|
||
<span class="dw-die-type dw-tag-{{this.dieType}}">{{this.dieType}}</span>
|
||
<span class="dw-die-score">{{this.power}}</span>
|
||
<span class="dw-die-formula-sm">{{this.formulaDisplay}}</span>
|
||
</div>
|
||
{{/if}}
|
||
{{/each}}
|
||
{{else}}
|
||
{{#if attacker.dice}}
|
||
{{#each attacker.dice}}
|
||
<div class="dw-die-card dw-die-card-preview">
|
||
<img class="dw-die-img" src="systems/sotc/assets/dice types/{{this.type}}.png" alt="{{this.type}}"/>
|
||
<span class="dw-die-type dw-tag-{{this.type}}">{{this.type}}</span>
|
||
<span class="dw-die-formula-sm">{{this.formula}}</span>
|
||
</div>
|
||
{{/each}}
|
||
{{/if}}
|
||
{{/if}}
|
||
</div>
|
||
|
||
{{!-- ── COLONNE CENTRE : RÉSOLUTION ──────────────────────────────── --}}
|
||
<div class="dw-col dw-col-resolution">
|
||
<div class="dw-col-header dw-header-resolution">
|
||
<span class="dw-header-label">Résolution</span>
|
||
</div>
|
||
|
||
{{#if matchupRows}}
|
||
{{#each matchupRows}}
|
||
<div class="dw-matchup dw-matchup-{{this.side}}">
|
||
|
||
{{!-- Ligne principale : type + score VS type + score --}}
|
||
<div class="dw-matchup-main">
|
||
<span class="dw-matchup-tag dw-tag-{{this.dieType}}">{{this.dieType}}</span>
|
||
<span class="dw-matchup-score">{{this.power}}</span>
|
||
|
||
{{#if (eq this.clashType "clash")}}
|
||
<span class="dw-matchup-vs">⚔</span>
|
||
<span class="dw-matchup-tag dw-tag-{{this.oppType}}">{{this.oppType}}</span>
|
||
<span class="dw-matchup-score">{{this.oppPower}}</span>
|
||
{{else}}
|
||
<span class="dw-matchup-unopposed">— sans opposition —</span>
|
||
{{/if}}
|
||
</div>
|
||
|
||
{{!-- Verdict --}}
|
||
<div class="dw-matchup-verdict dw-verdict-chip-{{this.verdict}}">
|
||
{{#if (eq this.verdict "off-win")}}✓ VICTOIRE{{/if}}
|
||
{{#if (eq this.verdict "off-lose")}}✗ DÉFAITE{{/if}}
|
||
{{#if (eq this.verdict "tie")}}= ÉGALITÉ{{/if}}
|
||
{{#if (eq this.verdict "off-win-vs-block")}}✓ vs Block{{/if}}
|
||
{{#if (eq this.verdict "off-lose-vs-block")}}↑ Block WIN{{/if}}
|
||
{{#if (eq this.verdict "off-win-vs-evade")}}✓ vs Evade{{/if}}
|
||
{{#if (eq this.verdict "off-lose-vs-evade")}}🔄 Evade WIN{{/if}}
|
||
{{#if (eq this.verdict "block-win-vs-off")}}🛡 Block WIN{{/if}}
|
||
{{#if (eq this.verdict "block-lose-vs-off")}}🛡↓ Block LOSE{{/if}}
|
||
{{#if (eq this.verdict "block-win-vs-def")}}🛡 Block WIN{{/if}}
|
||
{{#if (eq this.verdict "block-lose-vs-def")}}🛡↓ Block LOSE{{/if}}
|
||
{{#if (eq this.verdict "evade-win-vs-off")}}🔄 RECYCLÉ{{/if}}
|
||
{{#if (eq this.verdict "evade-lose-vs-off")}}↓ Evade LOSE{{/if}}
|
||
{{#if (eq this.verdict "evade-win-vs-def")}}💚 Stagger Regain{{/if}}
|
||
{{#if (eq this.verdict "evade-lose-vs-def")}}↓ Evade LOSE{{/if}}
|
||
{{#if (eq this.verdict "unopposed-off")}}◆ SANS OPP.{{/if}}
|
||
{{#if (eq this.verdict "unopposed-saved")}}💾 SAUVEGARDÉ{{/if}}
|
||
{{#if (eq this.verdict "unopposed-counter-noop")}}— Counter inactif{{/if}}
|
||
</div>
|
||
|
||
{{!-- Effets --}}
|
||
{{#if this.effects.length}}
|
||
<div class="dw-matchup-effects">
|
||
{{#each this.effects}}<span class="dw-effect-tag">{{this}}</span>{{/each}}
|
||
</div>
|
||
{{/if}}
|
||
|
||
</div>
|
||
{{/each}}
|
||
{{else}}
|
||
<div class="dw-resolution-hint">Lance les dés pour voir la résolution</div>
|
||
{{/if}}
|
||
</div>
|
||
|
||
{{!-- ── COLONNE DROITE : DÉFENSEUR ─────────────────────────────── --}}
|
||
<div class="dw-col dw-col-defender">
|
||
<div class="dw-col-header dw-header-defender">
|
||
<span class="dw-header-label">{{defender.name}}</span>
|
||
</div>
|
||
|
||
{{!-- Stats --}}
|
||
<div class="dw-stats-block">
|
||
<div class="dw-stat-row">
|
||
<span class="dw-stat-lbl">HP</span>
|
||
<div class="dw-bar-wrap"><div class="dw-bar dw-bar-hp" style="width:{{defender.hpPercent}}%"></div></div>
|
||
<span class="dw-stat-val">{{defender.hpValue}}/{{defender.hpMax}}</span>
|
||
</div>
|
||
<div class="dw-stat-row">
|
||
<span class="dw-stat-lbl">STG</span>
|
||
<div class="dw-bar-wrap"><div class="dw-bar dw-bar-stg" style="width:{{defender.staggerPercent}}%"></div></div>
|
||
<span class="dw-stat-val">{{defender.staggerValue}}/{{defender.staggerMax}}</span>
|
||
</div>
|
||
<div class="dw-stat-inline">
|
||
<span class="dw-stat-lbl">💡</span><span class="dw-stat-val">{{defender.lightValue}}/{{defender.lightMax}}</span>
|
||
<span class="dw-stat-lbl" style="margin-left:8px;">💜</span><span class="dw-stat-val">{{defender.emotion}}</span>
|
||
</div>
|
||
</div>
|
||
|
||
{{!-- Compétence défenseur --}}
|
||
{{#if isClash}}
|
||
{{#if defender.skillName}}
|
||
<div class="dw-skill-row">
|
||
<img class="dw-skill-icon" src="{{defender.skillImg}}" alt="{{defender.skillName}}" />
|
||
<span class="dw-skill-label">{{defender.skillName}}</span>
|
||
</div>
|
||
{{else}}
|
||
<div class="dw-skill-row dw-skill-none"><span class="dw-skill-label">— Aucune compétence —</span></div>
|
||
{{/if}}
|
||
{{else}}
|
||
<div class="dw-skill-row dw-skill-none"><span class="dw-skill-label">— Attaque directe —</span></div>
|
||
{{/if}}
|
||
|
||
{{!-- Dés du défenseur --}}
|
||
{{#if matchupRows}}
|
||
{{#each matchupRows}}
|
||
{{#if (eq this.side "def")}}
|
||
<div class="dw-die-card dw-verdict-bg-{{this.verdict}}">
|
||
<img class="dw-die-img" src="systems/sotc/assets/dice types/{{this.dieType}}.png" alt="{{this.dieType}}"/>
|
||
<span class="dw-die-type dw-tag-{{this.dieType}}">{{this.dieType}}</span>
|
||
<span class="dw-die-score">{{this.power}}</span>
|
||
<span class="dw-die-formula-sm">{{this.formulaDisplay}}</span>
|
||
</div>
|
||
{{/if}}
|
||
{{/each}}
|
||
{{else}}
|
||
{{#if isClash}}
|
||
{{#if defender.dice}}
|
||
{{#each defender.dice}}
|
||
<div class="dw-die-card dw-die-card-preview">
|
||
<img class="dw-die-img" src="systems/sotc/assets/dice types/{{this.type}}.png" alt="{{this.type}}"/>
|
||
<span class="dw-die-type dw-tag-{{this.type}}">{{this.type}}</span>
|
||
<span class="dw-die-formula-sm">{{this.formula}}</span>
|
||
</div>
|
||
{{/each}}
|
||
{{/if}}
|
||
{{/if}}
|
||
{{/if}}
|
||
</div>
|
||
|
||
</div>{{!-- /.dw-main --}}
|
||
|
||
{{!-- ═══════════════════════════════════════════════════════════════ --}}
|
||
{{!-- BARRE INFÉRIEURE --}}
|
||
{{!-- ═══════════════════════════════════════════════════════════════ --}}
|
||
<div class="dw-footer">
|
||
|
||
{{#if clashResult}}
|
||
<div class="dw-summary">
|
||
{{!-- Dégâts sur le défenseur --}}
|
||
<span class="dw-summary-line">
|
||
🎯 <strong>{{defender.name}}</strong> →
|
||
<span class="dw-sum-hp">HP −{{clashResult.atkHpDamage}}</span>
|
||
<span class="dw-sum-stg">Stagger −{{clashResult.atkStaggerDamage}}</span>
|
||
{{#if clashResult.defStaggerRegain}}
|
||
<span class="dw-sum-gain">Stagger +{{clashResult.defStaggerRegain}}</span>
|
||
{{/if}}
|
||
</span>
|
||
{{!-- Dégâts sur l'attaquant (clash) --}}
|
||
{{#if isClash}}
|
||
<span class="dw-summary-line">
|
||
🎯 <strong>{{attacker.name}}</strong> →
|
||
<span class="dw-sum-hp">HP −{{clashResult.defHpDamage}}</span>
|
||
<span class="dw-sum-stg">Stagger −{{clashResult.defStaggerDamage}}</span>
|
||
{{#if clashResult.atkStaggerRegain}}
|
||
<span class="dw-sum-gain">Stagger +{{clashResult.atkStaggerRegain}}</span>
|
||
{{/if}}
|
||
</span>
|
||
{{/if}}
|
||
{{!-- PE --}}
|
||
{{#if clashResult.atkPE}}
|
||
<span class="dw-summary-line dw-pe-line">
|
||
💜 PE :
|
||
<strong>{{attacker.name}}</strong> +{{clashResult.atkPE}}
|
||
{{#if isClash}}<strong>{{defender.name}}</strong> +{{clashResult.defPE}}{{/if}}
|
||
</span>
|
||
{{/if}}
|
||
{{!-- Dés sauvegardés --}}
|
||
{{#if clashResult.defSavedDice}}
|
||
<span class="dw-summary-line dw-saved-line">💾 {{defender.name}} → Saved Defense Die (état 2)</span>
|
||
{{/if}}
|
||
{{#if clashResult.atkSavedDice}}
|
||
<span class="dw-summary-line dw-saved-line">💾 {{attacker.name}} → Saved Defense Die (état 2)</span>
|
||
{{/if}}
|
||
</div>
|
||
{{/if}}
|
||
|
||
<div class="dw-footer-btns">
|
||
<button class="dw-foot-btn dw-foot-cancel">✕ Annuler</button>
|
||
{{#if hasRolled}}
|
||
<button class="dw-foot-btn dw-foot-apply">✔ Appliquer</button>
|
||
{{else}}
|
||
<button class="dw-foot-btn dw-foot-roll">🎲 Lancer les dés</button>
|
||
{{/if}}
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|