Initial release for FoundryVTT

This commit is contained in:
2026-04-13 15:53:13 +02:00
parent f61cbf0b78
commit 1ff1425777
193 changed files with 11270 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<section class="dnc-chat-card dnc-chat-card-chaos">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Chaos</p>
<h2>{{title}}</h2>
<p class="chat-card-subtitle">La magie opere malgre l'echec ; le MJ determine les consequences.</p>
</div>
<div class="chat-card-total">
<span>Jet</span>
<strong>{{value}}</strong>
</div>
</header>
<div class="chat-pill-row">
<span class="chat-pill success">Sort maintenu</span>
<span class="chat-pill">Avant {{before}}</span>
<span class="chat-pill">Apres {{after}}</span>
</div>
{{#if chaosEntry}}
<div class="chat-chaos-result">
<p class="chat-chaos-result-title">{{value}} · {{chaosEntry.title}}</p>
<p class="chat-note">{{chaosEntry.effect}}</p>
</div>
{{/if}}
{{#if degraded}}
<p class="chat-note warning">Le de du Chaos descend d'un cran.</p>
{{/if}}
{{#if exhausted}}
<p class="chat-note warning">Le de du Chaos est trop faible pour etre reutilise dans le Donjon.</p>
{{/if}}
</section>

View File

@@ -0,0 +1,29 @@
<section class="dnc-chat-card dnc-chat-card-damage dnc-chat-card-damage-application">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Application</p>
<h2>{{title}}</h2>
<p class="chat-card-subtitle">{{subtitle}}</p>
</div>
<div class="chat-card-total">
<span>PV</span>
<strong>{{total}}</strong>
</div>
</header>
<div class="chat-pill-row">
<span class="chat-pill">Brut {{incoming}}</span>
{{#if useArmor}}<span class="chat-pill {{#if armorAbsorbed}}success{{else}}failure{{/if}}">{{armorLabel}} {{armorAbsorbed}}</span>{{/if}}
<span class="chat-pill success">Encaisse {{total}}</span>
</div>
{{#if sourceLabel}}<p class="chat-note"><strong>Source</strong> : {{sourceLabel}}</p>{{/if}}
{{#if useArmor}}
<p class="chat-note">
{{#if armorAvailable}}
<strong>{{armorLabel}}</strong> : {{armorBefore}} -> {{armorAfter}}
{{else}}
<strong>Armure</strong> : aucune protection enregistrée
{{/if}}
</p>
{{/if}}
<p class="chat-note"><strong>PV</strong> : {{pvBefore}} -> {{pvAfter}} / {{pvMax}}</p>
</section>

View File

@@ -0,0 +1,48 @@
<section class="dnc-chat-card dnc-chat-card-damage">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Impact</p>
<h2>{{title}}</h2>
{{#if subtitle}}<p class="chat-card-subtitle">{{subtitle}}</p>{{/if}}
</div>
<div class="chat-card-total">
<span>Total</span>
<strong>{{total}}</strong>
</div>
</header>
<div class="chat-pill-row">
{{#if modeLabel}}<span class="chat-pill">{{modeLabel}}</span>{{/if}}
<span class="chat-pill success">Dé {{keptDieLabel}}</span>
{{#if bonus}}<span class="chat-pill">Bonus +{{bonus}}</span>{{/if}}
</div>
<p class="chat-formula">{{formula}}</p>
{{#if rollDieLabels.[1]}}
<div class="chat-keyline">
<span class="chat-keyline-label">Dés</span>
<p class="roll-values">{{#each rollDieLabels}}<span>{{this}}</span>{{/each}}</p>
</div>
{{/if}}
<p class="chat-note"><strong>Base</strong> : {{baseDamage}}{{#if bonus}} · <strong>Bonus</strong> : +{{bonus}}{{/if}}</p>
<div class="chat-targeting">
<label class="chat-control">
<span class="chat-keyline-label">Cible</span>
<select class="chat-select" data-role="damage-target" {{#unless hasTargets}}disabled{{/unless}}>
{{#if hasTargets}}
{{#each targets}}
<option value="{{this.tokenUuid}}">{{this.label}}</option>
{{/each}}
{{else}}
<option value="">Aucune cible sur la scène</option>
{{/if}}
</select>
</label>
<div class="chat-actions chat-actions-inline">
<button type="button" class="chat-action-button" data-action="applyDamage" data-damage="{{total}}" data-use-armor="false" data-source-label="{{sourceLabel}}" {{#unless hasTargets}}disabled{{/unless}}>
<i class="fa-solid fa-heart-crack"></i> Appliquer
</button>
<button type="button" class="chat-action-button" data-action="applyDamage" data-damage="{{total}}" data-use-armor="true" data-source-label="{{sourceLabel}}" {{#unless hasTargets}}disabled{{/unless}}>
<i class="fa-solid fa-shield-halved"></i> Avec armure
</button>
</div>
</div>
</section>

View File

@@ -0,0 +1,17 @@
<section class="dnc-chat-card dnc-chat-card-favor">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Reseau</p>
<h2>{{title}}</h2>
{{#if subtitle}}<p class="chat-card-subtitle">{{subtitle}}</p>{{/if}}
</div>
<div class="chat-card-seal {{#if autoSpent}}failure{{else}}success{{/if}}">
{{kindLabel}}
</div>
</header>
<div class="chat-pill-row">
<span class="chat-pill">Avant {{before}}</span>
<span class="chat-pill">Apres {{after}}</span>
</div>
<p class="chat-note">{{note}}</p>
</section>

View File

@@ -0,0 +1,23 @@
<section class="dnc-chat-card dnc-chat-card-hit-dice">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Vitalite</p>
<h2>{{title}}</h2>
<p class="chat-card-subtitle">{{actorName}}</p>
</div>
<div class="chat-card-total">
<span>Total</span>
<strong>{{total}}</strong>
</div>
</header>
<div class="chat-pill-row">
<span class="chat-pill">DV {{formula}}</span>
</div>
<p class="chat-formula">{{formula}}</p>
{{#if dieValues.length}}
<div class="chat-keyline">
<span class="chat-keyline-label">Des</span>
<p class="roll-values">{{#each dieValues}}<span>{{this}}</span>{{/each}}</p>
</div>
{{/if}}
</section>

View File

@@ -0,0 +1,43 @@
<section class="dnc-chat-card dnc-chat-card-initiative">
<header class="initiative-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Ordre de marche</p>
<h2>{{title}}</h2>
<p class="chat-card-subtitle">{{actorName}}</p>
{{#if modeLabel}}<p class="chat-card-subtitle">{{modeLabel}}</p>{{/if}}
</div>
<div class="initiative-total">
<span class="initiative-total-label">Total</span>
<strong>{{total}}</strong>
</div>
</header>
<div class="initiative-breakdown">
<div class="initiative-part">
<span class="initiative-part-label">d20</span>
<strong>{{die}}</strong>
</div>
<div class="initiative-operator">+</div>
<div class="initiative-part">
<span class="initiative-part-label">DEX</span>
<strong>{{dex}}</strong>
</div>
<div class="initiative-operator">+</div>
<div class="initiative-part">
<span class="initiative-part-label">Bonus</span>
<strong>{{bonus}}</strong>
</div>
</div>
<p class="initiative-formula">{{formula}}</p>
{{#if dieValues.[1]}}
<p class="roll-values">Lancers : {{#each dieValues}}<span>{{this}}</span>{{/each}}</p>
{{/if}}
{{#if syncedCombat}}
<div class="initiative-sync">
<span class="chat-pill success">Combat synchronise</span>
<p>{{syncedCombat.name}} · rang {{syncedCombat.rank}} / {{syncedCombat.total}}</p>
</div>
{{/if}}
</section>

View File

@@ -0,0 +1,20 @@
<section class="dnc-chat-card dnc-chat-card-item">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Objet</p>
<h2>{{item.name}}</h2>
<p class="chat-card-subtitle">{{item.type}}</p>
</div>
</header>
<div class="chat-item-body">
{{#if item.img}}<img class="chat-item-image" src="{{item.img}}" alt="{{item.name}}">{{/if}}
<div class="chat-item-content">
<div class="chat-pill-row">
{{#if usageLabel}}<span class="chat-pill">De d'usage {{usageLabel}}</span>{{/if}}
{{#if item.system.degats}}<span class="chat-pill">Degats {{item.system.degats}}</span>{{/if}}
</div>
{{#if item.system.effet}}<p class="chat-note"><strong>Effet</strong> : {{item.system.effet}}</p>{{/if}}
</div>
</div>
{{#if item.system.description}}<div class="chat-description">{{{item.system.description}}}</div>{{/if}}
</section>

View File

@@ -0,0 +1,38 @@
<section class="dnc-chat-card dnc-chat-card-roll">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Resolution</p>
<h2>{{title}}</h2>
{{#if subtitle}}<p class="chat-card-subtitle">{{subtitle}}</p>{{/if}}
</div>
<div class="chat-card-seal {{#if success}}success{{else}}failure{{/if}}">
{{#if success}}OK{{else}}KO{{/if}}
</div>
</header>
<div class="chat-pill-row">
<span class="chat-pill {{#if success}}success{{else}}failure{{/if}}">{{#if success}}Reussite{{else}}Echec{{/if}}</span>
{{#if modeLabel}}<span class="chat-pill">{{modeLabel}}</span>{{/if}}
{{#if favorLabel}}<span class="chat-pill">Faveur {{favorLabel}}</span>{{/if}}
{{#if targetPillLabel}}<span class="chat-pill">{{targetPillLabel}} {{targetPillValue}}</span>{{else}}<span class="chat-pill">Cible {{target}}</span>{{/if}}
{{#if keptPillLabel}}<span class="chat-pill">{{keptPillLabel}} {{keptPillValue}}</span>{{else}}<span class="chat-pill">Garde {{kept}}</span>{{/if}}
</div>
<div class="chat-keyline">
<span class="chat-keyline-label">Lancers</span>
<p class="roll-values">{{#each values}}<span>{{this}}</span>{{/each}}</p>
</div>
{{#if favorNote}}
<p class="chat-note"><strong>Faveur</strong> : {{favorNote}}</p>
{{/if}}
{{#if showDamageButton}}
<div class="chat-actions">
<button type="button" class="chat-action-button" data-action="rollChatDamage" data-item-uuid="{{itemUuid}}">
<i class="fa-solid fa-burst"></i> Lancer les degats
</button>
</div>
{{/if}}
<ul class="chat-details chat-details-ornate">
{{#each details}}
<li><strong>{{this.label}}</strong> : {{this.value}}</li>
{{/each}}
</ul>
</section>

View File

@@ -0,0 +1,72 @@
<section class="dnc-chat-card dnc-chat-card-spell">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Magie</p>
<h2>{{title}}</h2>
{{#if subtitle}}<p class="chat-card-subtitle">{{subtitle}}</p>{{/if}}
</div>
<div class="chat-card-seal {{#if success}}success{{else}}failure{{/if}}">
{{#if success}}OK{{else}}KO{{/if}}
</div>
</header>
<div class="chat-pill-row">
<span class="chat-pill {{#if success}}success{{else}}failure{{/if}}">{{#if success}}Reussite{{else}}Echec{{/if}}</span>
{{#if modeLabel}}<span class="chat-pill">{{modeLabel}}</span>{{/if}}
{{#if favorLabel}}<span class="chat-pill">Faveur {{favorLabel}}</span>{{/if}}
<span class="chat-pill">{{targetPillLabel}} {{targetPillValue}}</span>
<span class="chat-pill">Jet {{keptPillValue}}</span>
</div>
<div class="chat-keyline">
<span class="chat-keyline-label">Lancers</span>
<p class="roll-values">{{#each values}}<span>{{this}}</span>{{/each}}</p>
</div>
{{#if autoDisadvantage}}
<p class="chat-note">
<strong>Desavantage automatique</strong> :
{{#if autoDisadvantageCanceled}}
le cout du sort depasse le rang du lanceur, mais une faveur l'a annule.
{{else}}
le cout du sort depasse le rang du lanceur.
{{/if}}
</p>
{{/if}}
{{#if favorNote}}
<p class="chat-note"><strong>Faveur</strong> : {{favorNote}}</p>
{{/if}}
{{#if focusValue}}
<p class="chat-note">
<strong>Focus</strong> : {{focusValue}} depuis {{focusBeforeLabel}}
{{#if focusSpent}} · {{focusSpent}} utilise{{/if}}
· {{focusRemaining}} restant
{{#if focusDegraded}} · le focus descend a {{focusAfterLabel}}{{/if}}
{{#if focusRolled}} · premier sort de la scene{{/if}}
</p>
{{else}}
{{#if focusRolled}}
<p class="chat-note"><strong>Focus</strong> : aucun apport pour cette scene.</p>
{{/if}}
{{/if}}
<p class="chat-note"><strong>PV depenses</strong> : {{spentPv}} · <strong>PV restants</strong> : {{remainingPv}}</p>
{{#if specialNote}}
<p class="chat-note warning">{{specialNote}}</p>
{{/if}}
{{#if showDamageButton}}
<div class="chat-actions">
<button type="button" class="chat-action-button" data-action="rollChatDamage" data-item-uuid="{{itemUuid}}">
<i class="fa-solid fa-burst"></i> Lancer les degats
</button>
</div>
{{/if}}
{{#if showChaosButton}}
<div class="chat-actions">
<button type="button" class="chat-action-button" data-action="rollSpellChaos" data-actor-uuid="{{actorUuid}}" data-item-uuid="{{itemUuid}}">
<i class="fa-solid fa-dice-d20"></i> Risquer le Chaos
</button>
</div>
{{/if}}
<ul class="chat-details chat-details-ornate">
{{#each details}}
<li><strong>{{this.label}}</strong> : {{this.value}}</li>
{{/each}}
</ul>
</section>

View File

@@ -0,0 +1,26 @@
<section class="dnc-chat-card dnc-chat-card-usage">
<header class="chat-card-header">
<div class="chat-card-heading">
<p class="chat-card-kicker">Usure</p>
<h2>{{title}}</h2>
</div>
<div class="chat-card-seal {{#if degraded}}failure{{else}}success{{/if}}">
{{#if degraded}}-1{{else}}STABLE{{/if}}
</div>
</header>
<div class="chat-pill-row">
{{#if modeLabel}}<span class="chat-pill">{{modeLabel}}</span>{{/if}}
<span class="chat-pill">Resultat {{value}}</span>
<span class="chat-pill">Avant {{before}}</span>
<span class="chat-pill">Apres {{after}}</span>
</div>
{{#if values.[1]}}
<div class="chat-keyline">
<span class="chat-keyline-label">Lancers</span>
<p class="roll-values">{{#each values}}<span>{{this}}</span>{{/each}}</p>
</div>
{{/if}}
{{#if protectionStored}}<p class="chat-note">Protection stockee pour ce combat : <strong>{{protectionStored}}</strong>.</p>{{/if}}
{{#if degraded}}<p class="chat-note">La ressource s'amenuise.</p>{{else}}<p class="chat-note">La ressource tient bon.</p>{{/if}}
{{#if exhausted}}<p class="warning">La ressource est epuisee.</p>{{/if}}
</section>