Nettoyage des templates de travail
This commit is contained in:
@@ -1,114 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet compagnie-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom de compagnie" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Capitaine, pouvoir partagé et liens forgés dans l'Exil</p>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.power.cssClass}}" data-tab="power">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.pouvoir"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.powerName"}}</label>
|
||||
<input name="system.power.name" type="text" value="{{system.power.name}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.reserveSongesCompagnie"}}</label>
|
||||
<input name="system.power.sharedDreamPoints" type="number" value="{{system.power.sharedDreamPoints}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.activation"}}</label>
|
||||
<input name="system.power.activationCondition" type="text" value="{{system.power.activationCondition}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineVisible"}}</label>
|
||||
<input name="system.power.captainVisible" type="checkbox" {{checked system.power.captainVisible}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineTemoin"}}</label>
|
||||
<input name="system.power.captainNeedsWitness" type="checkbox" {{checked system.power.captainNeedsWitness}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{formInput systemFields.power.fields.description enriched=enriched.power.description value=system.power.description name="system.power.description" toggled=true}}
|
||||
<div class="section-title-row">
|
||||
<h3>Items de pouvoir</h3>
|
||||
<button type="button" data-action="createItem" data-type="pouvoircompagnie">+ {{localize "TYPES.Item.pouvoircompagnie"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each powers as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.activationCondition}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{#if primaryPower}}
|
||||
<div class="help-text">{{primaryPower.name}} — {{primaryPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.members.cssClass}}" data-tab="members">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.membres"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<select name="system.captainId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.captainOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.captainId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<select name="system.ombreDuTourmentId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.shadowOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.ombreDuTourmentId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text">Sélectionnez le capitaine et l'ombre du tourment parmi les personnages du monde.</p>
|
||||
{{#if captain}}<p><strong>Capitaine :</strong> {{captain.name}}</p>{{/if}}
|
||||
{{#if shadow}}<p><strong>Ombre :</strong> {{shadow.name}}</p>{{/if}}
|
||||
<ul class="reference-list">
|
||||
{{#each members as |member|}}
|
||||
<li>{{member.name}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.liensNarratifs"}}</h2>
|
||||
<p class="help-text">{{localize "LESOUBLIES.ui.readOnlyCollection"}}</p>
|
||||
<ul class="reference-list">
|
||||
{{#each links as |link|}}
|
||||
<li><strong>{{link.label}}</strong> — {{link.sourceLabel}} -> {{link.targetLabel}} {{link.details}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.description enriched=enriched.description value=system.description name="system.description" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.notes enriched=enriched.notes value=system.notes name="system.notes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,113 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet compagnie-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom de compagnie" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.power.cssClass}}" data-tab="power">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.pouvoir"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.powerName"}}</label>
|
||||
<input name="system.power.name" type="text" value="{{system.power.name}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.reserveSongesCompagnie"}}</label>
|
||||
<input name="system.power.sharedDreamPoints" type="number" value="{{system.power.sharedDreamPoints}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.activation"}}</label>
|
||||
<input name="system.power.activationCondition" type="text" value="{{system.power.activationCondition}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineVisible"}}</label>
|
||||
<input name="system.power.captainVisible" type="checkbox" {{checked system.power.captainVisible}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineTemoin"}}</label>
|
||||
<input name="system.power.captainNeedsWitness" type="checkbox" {{checked system.power.captainNeedsWitness}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{formInput systemFields.power.fields.description enriched=enriched.power.description value=system.power.description name="system.power.description" toggled=true}}
|
||||
<div class="section-title-row">
|
||||
<h3>Items de pouvoir</h3>
|
||||
<button type="button" data-action="createItem" data-type="pouvoircompagnie">+ {{localize "TYPES.Item.pouvoircompagnie"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each powers as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.activationCondition}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{#if primaryPower}}
|
||||
<div class="help-text">{{primaryPower.name}} — {{primaryPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.members.cssClass}}" data-tab="members">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.membres"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<select name="system.captainId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.captainOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.captainId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<select name="system.ombreDuTourmentId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.shadowOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.ombreDuTourmentId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text">Sélectionnez le capitaine et l'ombre du tourment parmi les personnages du monde.</p>
|
||||
{{#if captain}}<p><strong>Capitaine :</strong> {{captain.name}}</p>{{/if}}
|
||||
{{#if shadow}}<p><strong>Ombre :</strong> {{shadow.name}}</p>{{/if}}
|
||||
<ul class="reference-list">
|
||||
{{#each members as |member|}}
|
||||
<li>{{member.name}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.liensNarratifs"}}</h2>
|
||||
<p class="help-text">{{localize "LESOUBLIES.ui.readOnlyCollection"}}</p>
|
||||
<ul class="reference-list">
|
||||
{{#each links as |link|}}
|
||||
<li><strong>{{link.label}}</strong> — {{link.sourceLabel}} -> {{link.targetLabel}} {{link.details}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.description enriched=enriched.description value=system.description name="system.description" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.notes enriched=enriched.notes value=system.notes name="system.notes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,115 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet compagnie-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom de compagnie" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.power.cssClass}}" data-tab="power">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.pouvoir"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.powerName"}}</label>
|
||||
<input name="system.power.name" type="text" value="{{system.power.name}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.reserveSongesCompagnie"}}</label>
|
||||
<input name="system.power.sharedDreamPoints" type="number" value="{{system.power.sharedDreamPoints}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.activation"}}</label>
|
||||
<input name="system.power.activationCondition" type="text" value="{{system.power.activationCondition}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineVisible"}}</label>
|
||||
<input name="system.power.captainVisible" type="checkbox" {{checked system.power.captainVisible}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineTemoin"}}</label>
|
||||
<input name="system.power.captainNeedsWitness" type="checkbox" {{checked system.power.captainNeedsWitness}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{formInput systemFields.power.fields.description enriched=enriched.power.description value=system.power.description name="system.power.description" toggled=true}}
|
||||
<div class="section-title-row">
|
||||
<h3>Items de pouvoir</h3>
|
||||
<button type="button" data-action="createItem" data-type="pouvoircompagnie">+ {{localize "TYPES.Item.pouvoircompagnie"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each powers as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.activationCondition}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{#if primaryPower}}
|
||||
<div class="help-text">{{primaryPower.name}} — {{primaryPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.members.cssClass}}" data-tab="members">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.membres"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<select name="system.captainId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.captainOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.captainId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<select name="system.ombreDuTourmentId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.shadowOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.ombreDuTourmentId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text">Sélectionnez le capitaine et l'ombre du tourment parmi les personnages du monde.</p>
|
||||
{{#if captain}}<p><strong>Capitaine :</strong> {{captain.name}}</p>{{/if}}
|
||||
{{#if shadow}}<p><strong>Ombre :</strong> {{shadow.name}}</p>{{/if}}
|
||||
<ul class="reference-list">
|
||||
{{#each members as |member|}}
|
||||
<li>{{member.name}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.liensNarratifs"}}</h2>
|
||||
<p class="help-text">{{localize "LESOUBLIES.ui.readOnlyCollection"}}</p>
|
||||
<ul class="reference-list">
|
||||
{{#each links as |link|}}
|
||||
<li><strong>{{link.label}}</strong> — {{link.sourceLabel}} -> {{link.targetLabel}} {{link.details}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.description enriched=enriched.description value=system.description name="system.description" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.notes enriched=enriched.notes value=system.notes name="system.notes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,115 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet compagnie-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<p class="sheet-kicker">Blason de la compagnie</p>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom de compagnie" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Capitaine, pouvoir partagé et liens forgés dans l'Exil</p>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.power.cssClass}}" data-tab="power">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.pouvoir"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.powerName"}}</label>
|
||||
<input name="system.power.name" type="text" value="{{system.power.name}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.reserveSongesCompagnie"}}</label>
|
||||
<input name="system.power.sharedDreamPoints" type="number" value="{{system.power.sharedDreamPoints}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.activation"}}</label>
|
||||
<input name="system.power.activationCondition" type="text" value="{{system.power.activationCondition}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineVisible"}}</label>
|
||||
<input name="system.power.captainVisible" type="checkbox" {{checked system.power.captainVisible}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaineTemoin"}}</label>
|
||||
<input name="system.power.captainNeedsWitness" type="checkbox" {{checked system.power.captainNeedsWitness}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{formInput systemFields.power.fields.description enriched=enriched.power.description value=system.power.description name="system.power.description" toggled=true}}
|
||||
<div class="section-title-row">
|
||||
<h3>Items de pouvoir</h3>
|
||||
<button type="button" data-action="createItem" data-type="pouvoircompagnie">+ {{localize "TYPES.Item.pouvoircompagnie"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each powers as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.activationCondition}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{#if primaryPower}}
|
||||
<div class="help-text">{{primaryPower.name}} — {{primaryPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.members.cssClass}}" data-tab="members">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.membres"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<select name="system.captainId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.captainOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.captainId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<select name="system.ombreDuTourmentId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.shadowOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.ombreDuTourmentId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text">Sélectionnez le capitaine et l'ombre du tourment parmi les personnages du monde.</p>
|
||||
{{#if captain}}<p><strong>Capitaine :</strong> {{captain.name}}</p>{{/if}}
|
||||
{{#if shadow}}<p><strong>Ombre :</strong> {{shadow.name}}</p>{{/if}}
|
||||
<ul class="reference-list">
|
||||
{{#each members as |member|}}
|
||||
<li>{{member.name}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.liensNarratifs"}}</h2>
|
||||
<p class="help-text">{{localize "LESOUBLIES.ui.readOnlyCollection"}}</p>
|
||||
<ul class="reference-list">
|
||||
{{#each links as |link|}}
|
||||
<li><strong>{{link.label}}</strong> — {{link.sourceLabel}} -> {{link.targetLabel}} {{link.details}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.description enriched=enriched.description value=system.description name="system.description" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.notes enriched=enriched.notes value=system.notes name="system.notes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,160 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet creature-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Créatures du Petit Peuple, du Cauchemar et des frontières</p>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openRoll">{{localize "LESOUBLIES.rolls.test"}}</button>
|
||||
<button type="button" data-action="openConfrontation">{{localize "LESOUBLIES.rolls.confrontation"}}</button>
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.categorie"}}</label><input name="system.biodata.categorie" type="text" value="{{system.biodata.categorie}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.taille"}}</label><select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.creatureSizeOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select><span>{{derived.sizeLabel}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.vie"}}</label><input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{derived.hpMax}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.hpAffichage"}}</label><input name="system.hp.display" type="text" value="{{system.hp.display}}" {{#if isPlayMode}}disabled{{/if}} /><span>{{derived.hpDisplay}}</span></div>
|
||||
<div class="field-row"><label>Protection</label><input name="system.protection" type="number" value="{{system.protection}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.songes"}}</label><input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsSonges"}}</label><input name="system.songes.points" type="number" value="{{system.songes.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.songes.max}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.cauchemar"}}</label><input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsCauchemar"}}</label><input name="system.cauchemar.points" type="number" value="{{system.cauchemar.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.cauchemar.max}}</span></div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.degats"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.damage enriched=enriched.statblock.damage value=system.statblock.damage name="system.statblock.damage" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.reglesSpeciales"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.special enriched=enriched.statblock.special value=system.statblock.special name="system.statblock.special" toggled=true}}
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.aptitudes.cssClass}}" data-tab="aptitudes">
|
||||
<section class="sheet-card profiles-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.profilsOptionnels"}}</h2>
|
||||
<div class="profile-grid">
|
||||
{{#each system.profils as |value key|}}
|
||||
<div class="profile-cell">
|
||||
<button type="button" data-action="rollProfile" data-profile-key="{{key}}">{{profileLabel key}}</button>
|
||||
<input name="system.profils.{{key}}" type="number" value="{{value}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
{{#if (count group.items)}}
|
||||
<div class="group-block">
|
||||
<h3>{{group.label}}</h3>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{entry.item.name}}</strong><div>{{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button><button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.combat.cssClass}}" data-tab="combat">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesSonges"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellSonges enriched=enriched.statblock.spellSonges value=system.statblock.spellSonges name="system.statblock.spellSonges" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesCauchemar"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellCauchemar enriched=enriched.statblock.spellCauchemar value=system.statblock.spellCauchemar name="system.statblock.spellCauchemar" toggled=true}}
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.tradition}} / {{item.system.polarity}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<h2>Habitat</h2>
|
||||
{{formInput systemFields.biodata.fields.habitat enriched=enriched.biodata.habitat value=system.biodata.habitat name="system.biodata.habitat" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.gmnotes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,159 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet creature-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openRoll">{{localize "LESOUBLIES.rolls.test"}}</button>
|
||||
<button type="button" data-action="openConfrontation">{{localize "LESOUBLIES.rolls.confrontation"}}</button>
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.categorie"}}</label><input name="system.biodata.categorie" type="text" value="{{system.biodata.categorie}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.taille"}}</label><select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.creatureSizeOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select><span>{{derived.sizeLabel}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.vie"}}</label><input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{derived.hpMax}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.hpAffichage"}}</label><input name="system.hp.display" type="text" value="{{system.hp.display}}" {{#if isPlayMode}}disabled{{/if}} /><span>{{derived.hpDisplay}}</span></div>
|
||||
<div class="field-row"><label>Protection</label><input name="system.protection" type="number" value="{{system.protection}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.songes"}}</label><input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsSonges"}}</label><input name="system.songes.points" type="number" value="{{system.songes.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.songes.max}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.cauchemar"}}</label><input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsCauchemar"}}</label><input name="system.cauchemar.points" type="number" value="{{system.cauchemar.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.cauchemar.max}}</span></div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.degats"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.damage enriched=enriched.statblock.damage value=system.statblock.damage name="system.statblock.damage" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.reglesSpeciales"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.special enriched=enriched.statblock.special value=system.statblock.special name="system.statblock.special" toggled=true}}
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.aptitudes.cssClass}}" data-tab="aptitudes">
|
||||
<section class="sheet-card profiles-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.profilsOptionnels"}}</h2>
|
||||
<div class="profile-grid">
|
||||
{{#each system.profils as |value key|}}
|
||||
<div class="profile-cell">
|
||||
<button type="button" data-action="rollProfile" data-profile-key="{{key}}">{{profileLabel key}}</button>
|
||||
<input name="system.profils.{{key}}" type="number" value="{{value}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
{{#if (count group.items)}}
|
||||
<div class="group-block">
|
||||
<h3>{{group.label}}</h3>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{entry.item.name}}</strong><div>{{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button><button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.combat.cssClass}}" data-tab="combat">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesSonges"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellSonges enriched=enriched.statblock.spellSonges value=system.statblock.spellSonges name="system.statblock.spellSonges" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesCauchemar"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellCauchemar enriched=enriched.statblock.spellCauchemar value=system.statblock.spellCauchemar name="system.statblock.spellCauchemar" toggled=true}}
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.tradition}} / {{item.system.polarity}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<h2>Habitat</h2>
|
||||
{{formInput systemFields.biodata.fields.habitat enriched=enriched.biodata.habitat value=system.biodata.habitat name="system.biodata.habitat" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.gmnotes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,161 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet creature-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openRoll">{{localize "LESOUBLIES.rolls.test"}}</button>
|
||||
<button type="button" data-action="openConfrontation">{{localize "LESOUBLIES.rolls.confrontation"}}</button>
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.categorie"}}</label><input name="system.biodata.categorie" type="text" value="{{system.biodata.categorie}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.taille"}}</label><select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.creatureSizeOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select><span>{{derived.sizeLabel}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.vie"}}</label><input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{derived.hpMax}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.hpAffichage"}}</label><input name="system.hp.display" type="text" value="{{system.hp.display}}" {{#if isPlayMode}}disabled{{/if}} /><span>{{derived.hpDisplay}}</span></div>
|
||||
<div class="field-row"><label>Protection</label><input name="system.protection" type="number" value="{{system.protection}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.songes"}}</label><input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsSonges"}}</label><input name="system.songes.points" type="number" value="{{system.songes.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.songes.max}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.cauchemar"}}</label><input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsCauchemar"}}</label><input name="system.cauchemar.points" type="number" value="{{system.cauchemar.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.cauchemar.max}}</span></div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.degats"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.damage enriched=enriched.statblock.damage value=system.statblock.damage name="system.statblock.damage" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.reglesSpeciales"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.special enriched=enriched.statblock.special value=system.statblock.special name="system.statblock.special" toggled=true}}
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.aptitudes.cssClass}}" data-tab="aptitudes">
|
||||
<section class="sheet-card profiles-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.profilsOptionnels"}}</h2>
|
||||
<div class="profile-grid">
|
||||
{{#each system.profils as |value key|}}
|
||||
<div class="profile-cell">
|
||||
<button type="button" data-action="rollProfile" data-profile-key="{{key}}">{{profileLabel key}}</button>
|
||||
<input name="system.profils.{{key}}" type="number" value="{{value}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
{{#if (count group.items)}}
|
||||
<div class="group-block">
|
||||
<h3>{{group.label}}</h3>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{entry.item.name}}</strong><div>{{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button><button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.combat.cssClass}}" data-tab="combat">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesSonges"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellSonges enriched=enriched.statblock.spellSonges value=system.statblock.spellSonges name="system.statblock.spellSonges" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesCauchemar"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellCauchemar enriched=enriched.statblock.spellCauchemar value=system.statblock.spellCauchemar name="system.statblock.spellCauchemar" toggled=true}}
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.tradition}} / {{item.system.polarity}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<h2>Habitat</h2>
|
||||
{{formInput systemFields.biodata.fields.habitat enriched=enriched.biodata.habitat value=system.biodata.habitat name="system.biodata.habitat" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.gmnotes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,161 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet creature-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<p class="sheet-kicker">Bestiaire de la Terra</p>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Créatures du Petit Peuple, du Cauchemar et des frontières</p>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openRoll">{{localize "LESOUBLIES.rolls.test"}}</button>
|
||||
<button type="button" data-action="openConfrontation">{{localize "LESOUBLIES.rolls.confrontation"}}</button>
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.categorie"}}</label><input name="system.biodata.categorie" type="text" value="{{system.biodata.categorie}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.taille"}}</label><select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.creatureSizeOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select><span>{{derived.sizeLabel}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.vie"}}</label><input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{derived.hpMax}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.hpAffichage"}}</label><input name="system.hp.display" type="text" value="{{system.hp.display}}" {{#if isPlayMode}}disabled{{/if}} /><span>{{derived.hpDisplay}}</span></div>
|
||||
<div class="field-row"><label>Protection</label><input name="system.protection" type="number" value="{{system.protection}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.songes"}}</label><input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsSonges"}}</label><input name="system.songes.points" type="number" value="{{system.songes.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.songes.max}}</span></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.ui.cauchemar"}}</label><input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.pointsCauchemar"}}</label><input name="system.cauchemar.points" type="number" value="{{system.cauchemar.points}}" {{#if isPlayMode}}disabled{{/if}} /><span>/ {{system.cauchemar.max}}</span></div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.degats"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.damage enriched=enriched.statblock.damage value=system.statblock.damage name="system.statblock.damage" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.reglesSpeciales"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.special enriched=enriched.statblock.special value=system.statblock.special name="system.statblock.special" toggled=true}}
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.aptitudes.cssClass}}" data-tab="aptitudes">
|
||||
<section class="sheet-card profiles-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.profilsOptionnels"}}</h2>
|
||||
<div class="profile-grid">
|
||||
{{#each system.profils as |value key|}}
|
||||
<div class="profile-cell">
|
||||
<button type="button" data-action="rollProfile" data-profile-key="{{key}}">{{profileLabel key}}</button>
|
||||
<input name="system.profils.{{key}}" type="number" value="{{value}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
{{#if (count group.items)}}
|
||||
<div class="group-block">
|
||||
<h3>{{group.label}}</h3>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{entry.item.name}}</strong><div>{{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button><button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.combat.cssClass}}" data-tab="combat">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesSonges"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellSonges enriched=enriched.statblock.spellSonges value=system.statblock.spellSonges name="system.statblock.spellSonges" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.sortilegesCauchemar"}}</h2>
|
||||
{{formInput systemFields.statblock.fields.spellCauchemar enriched=enriched.statblock.spellCauchemar value=system.statblock.spellCauchemar name="system.statblock.spellCauchemar" toggled=true}}
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.tradition}} / {{item.system.polarity}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<h2>Habitat</h2>
|
||||
{{formInput systemFields.biodata.fields.habitat enriched=enriched.biodata.habitat value=system.biodata.habitat name="system.biodata.habitat" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.gmnotes"}}</h2>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,279 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,284 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.compagnie"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
{{#if derived.compagnie}}
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openLinkedActor" data-actor-id="{{derived.compagnie.id}}">Ouvrir la compagnie</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,283 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.compagnie"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
{{#if activeCompanyPower}}
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}} :</strong> {{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</p>
|
||||
{{/if}}
|
||||
{{#if derived.compagnie}}
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openLinkedActor" data-actor-id="{{derived.compagnie.id}}">Ouvrir la compagnie</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,283 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.compagnie"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
{{#if activeCompanyPower}}
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}} :</strong> {{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</p>
|
||||
{{/if}}
|
||||
{{#if derived.compagnie}}
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openLinkedActor" data-actor-id="{{derived.compagnie.id}}">Ouvrir la compagnie</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card skills-ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block skills-group">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list skills-item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card skill-card">
|
||||
<div class="skill-card-main">
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<span class="skill-summary">Base {{entry.item.system.base}} · {{group.label}} {{group.profileValue}} · {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</span>
|
||||
</div>
|
||||
<div class="item-controls skill-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,289 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.compagnie"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
{{#if activeCompanyPower}}
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}} :</strong> {{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</p>
|
||||
{{/if}}
|
||||
{{#if derived.compagnie}}
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openLinkedActor" data-actor-id="{{derived.compagnie.id}}">Ouvrir la compagnie</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card skills-ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
<div class="skills-columns">
|
||||
{{#each skillColumns as |column|}}
|
||||
<div class="skills-column">
|
||||
{{#each column as |group|}}
|
||||
<div class="group-block skills-group">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list skills-item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card skill-card">
|
||||
<div class="skill-card-main">
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<span class="skill-summary">Base {{entry.item.system.base}} · {{group.label}} {{group.profileValue}} · {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</span>
|
||||
</div>
|
||||
<div class="item-controls skill-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,358 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-3">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card reserve-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.threadReserves"}}</h2>
|
||||
<div class="reserve-grid">
|
||||
<div class="reserve-panel">
|
||||
<h3>{{localize "LESOUBLIES.labels.personalReserve"}}</h3>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadSonges"}}</label>
|
||||
<input name="system.reserves.songesThreads" type="number" value="{{system.reserves.songesThreads}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadCauchemar"}}</label>
|
||||
<input name="system.reserves.cauchemarThreads" type="number" value="{{system.reserves.cauchemarThreads}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.emptyGlobes"}}</label>
|
||||
<input name="system.reserves.emptyGlobes" type="number" value="{{system.reserves.emptyGlobes}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="reserve-panel reserve-panel--company">
|
||||
<h3>{{localize "LESOUBLIES.labels.companyReserve"}}</h3>
|
||||
{{#if derived.compagnie}}
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadSonges"}}</label>
|
||||
<span>{{derived.companyReserves.songesThreads}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadCauchemar"}}</label>
|
||||
<span>{{derived.companyReserves.cauchemarThreads}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.emptyGlobes"}}</label>
|
||||
<span>{{derived.companyReserves.emptyGlobes}}</span>
|
||||
</div>
|
||||
|
||||
<div class="transfer-list">
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.threadSonges"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="songesThreads">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="songesThreads">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.threadCauchemar"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="cauchemarThreads">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="cauchemarThreads">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.emptyGlobes"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="emptyGlobes">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="emptyGlobes">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<p class="help-text">Liez une compagnie pour gérer une réserve commune de fils et de globes.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<p class="help-text">Les dépenses en fils rendent automatiquement autant de globes vides à la réserve utilisée.</p>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.compagnie"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
{{#if activeCompanyPower}}
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}} :</strong> {{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</p>
|
||||
{{/if}}
|
||||
{{#if derived.compagnie}}
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openLinkedActor" data-actor-id="{{derived.compagnie.id}}">Ouvrir la compagnie</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card skills-ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
<div class="skills-columns">
|
||||
{{#each skillColumns as |column|}}
|
||||
<div class="skills-column">
|
||||
{{#each column as |group|}}
|
||||
<div class="group-block skills-group">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list skills-item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card skill-card">
|
||||
<div class="skill-card-main">
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<span class="skill-summary">Base {{entry.item.system.base}} · {{group.label}} {{group.profileValue}} · {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</span>
|
||||
</div>
|
||||
<div class="item-controls skill-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,360 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.compagnie"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
{{#if activeCompanyPower}}
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}} :</strong> {{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</p>
|
||||
{{/if}}
|
||||
{{#if derived.compagnie}}
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openLinkedActor" data-actor-id="{{derived.compagnie.id}}">Ouvrir la compagnie</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card skills-ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
<div class="skills-columns">
|
||||
{{#each skillColumns as |column|}}
|
||||
<div class="skills-column">
|
||||
{{#each column as |group|}}
|
||||
<div class="group-block skills-group">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list skills-item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card skill-card">
|
||||
<div class="skill-card-main">
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<span class="skill-summary">Base {{entry.item.system.base}} · {{group.label}} {{group.profileValue}} · {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</span>
|
||||
</div>
|
||||
<div class="item-controls skill-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card reserve-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.threadReserves"}}</h2>
|
||||
<div class="reserve-grid">
|
||||
<div class="reserve-panel">
|
||||
<h3>{{localize "LESOUBLIES.labels.personalReserve"}}</h3>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadSonges"}}</label>
|
||||
<input name="system.reserves.songesThreads" type="number" value="{{system.reserves.songesThreads}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadCauchemar"}}</label>
|
||||
<input name="system.reserves.cauchemarThreads" type="number" value="{{system.reserves.cauchemarThreads}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.emptyGlobes"}}</label>
|
||||
<input name="system.reserves.emptyGlobes" type="number" value="{{system.reserves.emptyGlobes}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="reserve-panel reserve-panel--company">
|
||||
<h3>{{localize "LESOUBLIES.labels.companyReserve"}}</h3>
|
||||
{{#if derived.compagnie}}
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadSonges"}}</label>
|
||||
<span>{{derived.companyReserves.songesThreads}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadCauchemar"}}</label>
|
||||
<span>{{derived.companyReserves.cauchemarThreads}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.emptyGlobes"}}</label>
|
||||
<span>{{derived.companyReserves.emptyGlobes}}</span>
|
||||
</div>
|
||||
|
||||
<div class="transfer-list">
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.threadSonges"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="songesThreads">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="songesThreads">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.threadCauchemar"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="cauchemarThreads">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="cauchemarThreads">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.emptyGlobes"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="emptyGlobes">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="emptyGlobes">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<p class="help-text">Liez une compagnie pour gérer une réserve commune de fils et de globes.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<p class="help-text">Les dépenses en fils rendent automatiquement autant de globes vides à la réserve utilisée.</p>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,363 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.compagnie"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
{{#if activeCompanyPower}}
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}} :</strong> {{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</p>
|
||||
{{/if}}
|
||||
{{#if derived.compagnie}}
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openLinkedActor" data-actor-id="{{derived.compagnie.id}}">Ouvrir la compagnie</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card skills-ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
<div class="skills-columns">
|
||||
{{#each skillColumns as |column|}}
|
||||
<div class="skills-column">
|
||||
{{#each column as |group|}}
|
||||
<div class="group-block skills-group">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list skills-item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card skill-card">
|
||||
<div class="skill-card-main">
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<span class="skill-summary">Base {{entry.item.system.base}} · {{group.label}} {{group.profileValue}} · {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</span>
|
||||
{{#if entry.domains.length}}
|
||||
<span class="skill-summary">Domaines : {{join entry.domains ", "}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="item-controls skill-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card reserve-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.threadReserves"}}</h2>
|
||||
<div class="reserve-grid">
|
||||
<div class="reserve-panel">
|
||||
<h3>{{localize "LESOUBLIES.labels.personalReserve"}}</h3>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadSonges"}}</label>
|
||||
<input name="system.reserves.songesThreads" type="number" value="{{system.reserves.songesThreads}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadCauchemar"}}</label>
|
||||
<input name="system.reserves.cauchemarThreads" type="number" value="{{system.reserves.cauchemarThreads}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.emptyGlobes"}}</label>
|
||||
<input name="system.reserves.emptyGlobes" type="number" value="{{system.reserves.emptyGlobes}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="reserve-panel reserve-panel--company">
|
||||
<h3>{{localize "LESOUBLIES.labels.companyReserve"}}</h3>
|
||||
{{#if derived.compagnie}}
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadSonges"}}</label>
|
||||
<span>{{derived.companyReserves.songesThreads}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.threadCauchemar"}}</label>
|
||||
<span>{{derived.companyReserves.cauchemarThreads}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.emptyGlobes"}}</label>
|
||||
<span>{{derived.companyReserves.emptyGlobes}}</span>
|
||||
</div>
|
||||
|
||||
<div class="transfer-list">
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.threadSonges"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="songesThreads">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="songesThreads">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.threadCauchemar"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="cauchemarThreads">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="cauchemarThreads">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="transfer-row" data-transfer-row>
|
||||
<strong>{{localize "LESOUBLIES.labels.emptyGlobes"}}</strong>
|
||||
<input type="number" min="1" value="1" data-transfer-amount />
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="transferThread" data-direction="toCompany" data-resource-key="emptyGlobes">{{localize "LESOUBLIES.labels.toCompany"}}</button>
|
||||
<button type="button" data-action="transferThread" data-direction="toActor" data-resource-key="emptyGlobes">{{localize "LESOUBLIES.labels.toActor"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<p class="help-text">Liez une compagnie pour gérer une réserve commune de fils et de globes.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<p class="help-text">Les dépenses en fils rendent automatiquement autant de globes vides à la réserve utilisée.</p>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card identity-card identity-card--compact">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="identity-grid">
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,274 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<p class="sheet-kicker">Chronique d'un Oublié</p>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Petit Peuple, Songes, Cauchemar et destin de compagnie</p>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="creation-slots" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">—</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">{{localize "LESOUBLIES.ui.edit"}}</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">{{localize "LESOUBLIES.ui.delete"}}</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="creation-slot-body">
|
||||
{{#if slot.item}}
|
||||
<img class="creation-slot-image" src="{{slot.item.img}}" alt="{{slot.item.name}}" />
|
||||
<p class="help-text">{{slot.filledHint}}</p>
|
||||
{{else}}
|
||||
<p class="help-text">{{slot.emptyHint}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,274 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<p class="sheet-kicker">Chronique d'un Oublié</p>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Petit Peuple, Songes, Cauchemar et destin de compagnie</p>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="creation-slots" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">—</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">{{localize "LESOUBLIES.ui.edit"}}</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">{{localize "LESOUBLIES.ui.delete"}}</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="creation-slot-body">
|
||||
{{#if slot.item}}
|
||||
<img class="creation-slot-image" src="{{slot.item.img}}" alt="{{slot.item.name}}" />
|
||||
<p class="help-text">{{slot.filledHint}}</p>
|
||||
{{else}}
|
||||
<p class="help-text">{{slot.emptyHint}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,273 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Petit Peuple, Songes, Cauchemar et destin de compagnie</p>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="creation-slots" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">—</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">{{localize "LESOUBLIES.ui.edit"}}</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">{{localize "LESOUBLIES.ui.delete"}}</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="creation-slot-body">
|
||||
{{#if slot.item}}
|
||||
<img class="creation-slot-image" src="{{slot.item.img}}" alt="{{slot.item.name}}" />
|
||||
<p class="help-text">{{slot.filledHint}}</p>
|
||||
{{else}}
|
||||
<p class="help-text">{{slot.emptyHint}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,272 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="creation-slots" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">—</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">{{localize "LESOUBLIES.ui.edit"}}</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">{{localize "LESOUBLIES.ui.delete"}}</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="creation-slot-body">
|
||||
{{#if slot.item}}
|
||||
<img class="creation-slot-image" src="{{slot.item.img}}" alt="{{slot.item.name}}" />
|
||||
<p class="help-text">{{slot.filledHint}}</p>
|
||||
{{else}}
|
||||
<p class="help-text">{{slot.emptyHint}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,264 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,266 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,278 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,277 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<button class="mode-button mode-button--icon" type="button" data-action="toggleSheet" title="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}" aria-label="{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}">
|
||||
<i class="fa-solid {{#if isEditMode}}fa-eye{{else}}fa-pen-to-square{{/if}}"></i>
|
||||
</button>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
</div>
|
||||
<div class="creation-slots creation-slots--header" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot creation-slot--compact {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">Glisser ici</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls item-controls--compact">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">Mod.</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">X</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<div class="group-header">
|
||||
<h3>{{group.label}}</h3>
|
||||
<label class="profile-badge">
|
||||
<span>{{localize "LESOUBLIES.labels.profil"}}</span>
|
||||
<input name="system.profils.{{group.id}}" type="number" value="{{group.profileValue}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</label>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} + {{group.label}} {{group.profileValue}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<p class="help-text">Aucune arme équipée.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,281 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet personnage-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{actor.img}}" title="{{actor.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<p class="sheet-kicker">Chronique d'un Oublié</p>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<p class="sheet-subtitle">Petit Peuple, Songes, Cauchemar et destin de compagnie</p>
|
||||
<div class="sheet-actions">
|
||||
<button type="button" data-action="openRoll">{{localize "LESOUBLIES.rolls.test"}}</button>
|
||||
<button type="button" data-action="openConfrontation">{{localize "LESOUBLIES.rolls.confrontation"}}</button>
|
||||
<button type="button" data-action="openInitiative">{{localize "LESOUBLIES.rolls.initiative"}}</button>
|
||||
<button type="button" data-action="openThreadHarvest">Récolte de fils</button>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="sheet-tabs" aria-label="Navigation de la fiche">
|
||||
{{#each tabs as |tab|}}
|
||||
<button type="button" class="sheet-tab-button {{tab.cssClass}}" data-action="switchTab" data-tab="{{tab.id}}">
|
||||
<i class="{{tab.icon}}"></i>
|
||||
<span>{{tab.label}}</span>
|
||||
</button>
|
||||
{{/each}}
|
||||
</nav>
|
||||
|
||||
<section class="sheet-tab {{tabs.overview.cssClass}}" data-tab="overview">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card summary-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.derivedOverview"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.taille"}}</label>
|
||||
<select name="system.size.value" {{#if isPlayMode}}disabled{{/if}}>
|
||||
{{#each choiceSets.personnageSizeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.size.value)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<span>{{derived.sizeLabel}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.vie"}}</label>
|
||||
<input name="system.hp.value" type="number" value="{{system.hp.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>/ {{derived.hpMax}}</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="system.songes.value" type="number" value="{{system.songes.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.songes.points}} / {{system.songes.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteSonges"}}</label>
|
||||
<input name="system.songes.debt" type="number" value="{{system.songes.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditSonges"}}</label>
|
||||
<input name="system.songes.xpCredit" type="number" value="{{system.songes.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="system.cauchemar.value" type="number" value="{{system.cauchemar.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
<span>{{system.cauchemar.points}} / {{system.cauchemar.max}} pts</span>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.detteCauchemar"}}</label>
|
||||
<input name="system.cauchemar.debt" type="number" value="{{system.cauchemar.debt}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.creditCauchemar"}}</label>
|
||||
<input name="system.cauchemar.xpCredit" type="number" value="{{system.cauchemar.xpCredit}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.xp"}}</label>
|
||||
<input name="system.experience.value" type="number" value="{{system.experience.value}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ecorces"}}</label>
|
||||
<input name="system.money.ecorces" type="number" value="{{system.money.ecorces}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.ombreDuTourment"}}</label>
|
||||
<input name="system.flagsNarratifs.ombreDuTourment" type="checkbox" {{checked system.flagsNarratifs.ombreDuTourment}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.identite"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.age"}}</label>
|
||||
<input name="system.biodata.age" type="number" value="{{system.biodata.age}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.sexe"}}</label>
|
||||
<input name="system.biodata.sexe" type="text" value="{{system.biodata.sexe}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.motsCles"}}</label>
|
||||
<input name="system.biodata.motscles" type="text" value="{{system.biodata.motscles}}" {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.capitaine"}}</label>
|
||||
<input name="system.flagsNarratifs.isCaptain" type="checkbox" {{checked system.flagsNarratifs.isCaptain}} {{#if isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card creation-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.creation"}}</h2>
|
||||
<div class="creation-slots" data-creation-drop-zone>
|
||||
{{#each creationSlots as |slot|}}
|
||||
<article class="creation-slot {{#if slot.item}}is-filled{{else}}is-empty{{/if}}" data-drop-creation-type="{{slot.type}}">
|
||||
<div class="creation-slot-header">
|
||||
<div>
|
||||
<p class="creation-slot-kicker">{{slot.label}}</p>
|
||||
{{#if slot.item}}
|
||||
<strong class="creation-slot-name">{{slot.item.name}}</strong>
|
||||
{{else}}
|
||||
<strong class="creation-slot-name">—</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if slot.item}}
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="editItem" data-item-id="{{slot.item.id}}">{{localize "LESOUBLIES.ui.edit"}}</button>
|
||||
{{#unless @root.isPlayMode}}
|
||||
<button type="button" data-action="removeCreationItem" data-type="{{slot.type}}">{{localize "LESOUBLIES.ui.delete"}}</button>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="creation-slot-body">
|
||||
{{#if slot.item}}
|
||||
<img class="creation-slot-image" src="{{slot.item.img}}" alt="{{slot.item.name}}" />
|
||||
<p class="help-text">{{slot.filledHint}}</p>
|
||||
{{else}}
|
||||
<p class="help-text">{{slot.emptyHint}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.compagnie"}}</label>
|
||||
<select name="system.references.compagnieId" {{#if isPlayMode}}disabled{{/if}}>
|
||||
<option value="">—</option>
|
||||
{{#each choiceSets.companyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.system.references.compagnieId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text"><strong>{{localize "LESOUBLIES.labels.compagnie"}} :</strong> {{#if derived.compagnie}}{{derived.compagnie.name}}{{else}}—{{/if}}</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="sheet-card profiles-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.profils"}}</h2>
|
||||
<div class="profile-grid">
|
||||
{{#each system.profils as |value key|}}
|
||||
<div class="profile-cell">
|
||||
<button type="button" data-action="rollProfile" data-profile-key="{{key}}">{{profileLabel key}}</button>
|
||||
<input name="system.profils.{{key}}" type="number" value="{{value}}" {{#if @root.isPlayMode}}disabled{{/if}} />
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.skills.cssClass}}" data-tab="skills">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.competences"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="competence">+ {{localize "TYPES.Item.competence"}}</button>
|
||||
</div>
|
||||
{{#each skillGroups as |group|}}
|
||||
<div class="group-block">
|
||||
<h3>{{group.label}}</h3>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<div>Base {{entry.item.system.base}} - {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.actions.cssClass}}" data-tab="actions">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.combat"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="openCombatPreset" data-preset="encourager">Encourager</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="intimider">Intimider</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="evaluer">Évaluer</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="maitriser">Maîtriser</button>
|
||||
<button type="button" data-action="openCombatPreset" data-preset="seDeplacer">Se déplacer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.magie"}}</h2>
|
||||
<button type="button" data-action="createItem" data-type="sortilege">+ {{localize "TYPES.Item.sortilege"}}</button>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button>
|
||||
<button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button>
|
||||
<button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button>
|
||||
</div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.equipment.cssClass}}" data-tab="equipment">
|
||||
<section class="sheet-card ledger-card">
|
||||
<div class="section-title-row">
|
||||
<h2>{{localize "LESOUBLIES.ui.equipement"}}</h2>
|
||||
<div class="embed-buttons">
|
||||
<button type="button" data-action="createItem" data-type="arme">+ {{localize "TYPES.Item.arme"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="armure">+ {{localize "TYPES.Item.armure"}}</button>
|
||||
<button type="button" data-action="createItem" data-type="equipement">+ {{localize "TYPES.Item.equipement"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="sheet-tab {{tabs.notes.cssClass}}" data-tab="notes">
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.ui.notes"}}</h2>
|
||||
<label>{{localize "LESOUBLIES.labels.description"}}</label>
|
||||
{{formInput systemFields.biodata.fields.description enriched=enriched.biodata.description value=system.biodata.description name="system.biodata.description" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.notes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.notes enriched=enriched.biodata.notes value=system.biodata.notes name="system.biodata.notes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.gmnotes"}}</label>
|
||||
{{formInput systemFields.biodata.fields.gmnotes enriched=enriched.biodata.gmnotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
|
||||
<label>{{localize "LESOUBLIES.labels.liensNarratifs"}}</label>
|
||||
{{formInput systemFields.visions enriched=enriched.visions value=system.visions name="system.visions" toggled=true}}
|
||||
{{#if activeCompanyPower}}
|
||||
<label>{{localize "LESOUBLIES.labels.pouvoirCompagnieActif"}}</label>
|
||||
<div class="help-text">{{activeCompanyPower.name}} — {{activeCompanyPower.system.activationCondition}}</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,7 +0,0 @@
|
||||
<div class="les-oublies-chat">
|
||||
<h3>{{label}}</h3>
|
||||
<p><strong>{{actor.name}}</strong> lance les dés de Songes et de Cauchemar.</p>
|
||||
<p>Songes : <strong>{{songesDie}}</strong> | Cauchemar : <strong>{{cauchemarDie}}</strong></p>
|
||||
<p>Cible : <strong>{{target}}</strong> | Résultat retenu : <strong>{{selected}}</strong></p>
|
||||
<p>{{#if success}}Succès{{else}}Échec{{/if}}</p>
|
||||
</div>
|
||||
@@ -1,141 +0,0 @@
|
||||
<div class="les-oublies-roll-dialog">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card">
|
||||
<h2>{{attackTitle}}</h2>
|
||||
<div class="field-row">
|
||||
<label>Arme</label>
|
||||
<input type="text" value="{{#if weapon}}{{weapon.name}}{{else}}Arme improvisée{{/if}}" disabled />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Compétence</label>
|
||||
<select name="attackerSkill">
|
||||
{{#each attackSkills as |skill|}}
|
||||
<option value="{{skill.value}}" {{#if (eq skill.value @root.values.attackerSkill)}}selected{{/if}}>{{skill.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Circonstance</label>
|
||||
<select name="difficultyPreset">
|
||||
<option value="0">Aucune (0)</option>
|
||||
{{#each difficultyOptions as |entry|}}
|
||||
<option value="{{entry.value}}">{{entry.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Ajustement libre</label>
|
||||
<input name="customDifficulty" type="number" value="{{values.customDifficulty}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.rolls.rollMode"}}</label>
|
||||
<select name="attackerRollMode">
|
||||
{{#each rollModes as |mode|}}
|
||||
<option value="{{mode.value}}" {{#if (eq mode.value @root.values.attackerRollMode)}}selected{{/if}}>{{mode.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.rolls.extraDie"}}</label>
|
||||
<select name="attackerExtraDie">
|
||||
{{#each extraDieModes as |mode|}}
|
||||
<option value="{{mode.value}}" {{#if (eq mode.value @root.values.attackerExtraDie)}}selected{{/if}}>{{mode.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Prime</label>
|
||||
<select name="primeId">
|
||||
{{#each primeOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.values.primeId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Pénalité</label>
|
||||
<select name="penaltyId">
|
||||
{{#each penaltyOptions as |option|}}
|
||||
<option value="{{option.value}}" {{#if (eq option.value @root.values.penaltyId)}}selected{{/if}}>{{option.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<p class="help-text">{{localize "LESOUBLIES.rolls.resourceState"}} : Songes {{attackerResources.songesPoints}} / {{attackerResources.songesValue}} · Cauchemar {{attackerResources.cauchemarPoints}} / {{attackerResources.cauchemarValue}}</p>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card">
|
||||
<h2>{{localize "LESOUBLIES.rolls.defender"}}</h2>
|
||||
<div class="field-row">
|
||||
<label>Cible</label>
|
||||
<input name="defenderLabel" type="text" value="{{values.defenderLabel}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Réaction</label>
|
||||
<select name="defenderSkill">
|
||||
{{#each reactionSkills as |skill|}}
|
||||
<option value="{{skill.value}}" {{#if (eq skill.value @root.values.defenderSkill)}}selected{{/if}}>{{skill.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Score défense</label>
|
||||
<input name="defenderScore" type="number" value="{{values.defenderScore}}" {{#if targetActor}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Difficulté défense</label>
|
||||
<input name="defenderDifficulty" type="number" value="{{values.defenderDifficulty}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.rolls.rollMode"}}</label>
|
||||
<select name="defenderRollMode">
|
||||
{{#each rollModes as |mode|}}
|
||||
<option value="{{mode.value}}" {{#if (eq mode.value @root.values.defenderRollMode)}}selected{{/if}}>{{mode.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.rolls.extraDie"}}</label>
|
||||
<select name="defenderExtraDie">
|
||||
{{#each extraDieModes as |mode|}}
|
||||
<option value="{{mode.value}}" {{#if (eq mode.value @root.values.defenderExtraDie)}}selected{{/if}}>{{mode.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Protection</label>
|
||||
<input name="targetProtection" type="number" value="{{values.targetProtection}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Dégâts de base</label>
|
||||
<input name="baseDamage" type="number" value="{{values.baseDamage}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Libellé dégâts</label>
|
||||
<input name="baseDamageLabel" type="text" value="{{values.baseDamageLabel}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Appliquer à la cible</label>
|
||||
<input name="applyToTarget" type="checkbox" {{checked values.applyToTarget}} {{#unless targetActor}}disabled{{/unless}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Notes</label>
|
||||
<input name="notes" type="text" value="{{values.notes}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.songes"}}</label>
|
||||
<input name="defenderSongesValue" type="number" value="{{defenderResources.songesValue}}" {{#if targetActor}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.pointsSonges"}}</label>
|
||||
<input name="defenderSongesPoints" type="number" value="{{defenderResources.songesPoints}}" {{#if targetActor}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.ui.cauchemar"}}</label>
|
||||
<input name="defenderCauchemarValue" type="number" value="{{defenderResources.cauchemarValue}}" {{#if targetActor}}disabled{{/if}} />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.labels.pointsCauchemar"}}</label>
|
||||
<input name="defenderCauchemarPoints" type="number" value="{{defenderResources.cauchemarPoints}}" {{#if targetActor}}disabled{{/if}} />
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,44 +0,0 @@
|
||||
<div class="les-oublies-roll-dialog">
|
||||
<div class="sheet-grid sheet-grid-2">
|
||||
<section class="sheet-card">
|
||||
<h2>{{spell.name}}</h2>
|
||||
<div class="field-row"><label>Tradition</label><input type="text" value="{{spell.system.tradition}}" disabled /></div>
|
||||
<div class="field-row"><label>Compétence</label><input type="text" value="{{skillLabel spell.system.skillKey}}" disabled /></div>
|
||||
<div class="field-row"><label>Polarité</label><input type="text" value="{{spell.system.polarity}}" disabled /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.preparation"}}</label><input type="text" value="{{spell.system.preparation}}" disabled /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.duree"}}</label><input type="text" value="{{spell.system.duration}}" disabled /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.portee"}}</label><input type="text" value="{{spell.system.range}}" disabled /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.aire"}}</label><input type="text" value="{{spell.system.area}}" disabled /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.cumul"}}</label><input type="text" value="{{spell.system.stacking}}" disabled /></div>
|
||||
<p class="help-text">{{#if isMetierMatch}}Le métier de l'acteur couvre ce sortilège : le coût de base s'applique.{{else}}Le métier de l'acteur ne couvre pas ce sortilège : le coût est doublé conformément aux règles.{{/if}}</p>
|
||||
</section>
|
||||
|
||||
<section class="sheet-card">
|
||||
<h2>Activation</h2>
|
||||
<div class="field-row">
|
||||
<label>Coût réglé</label>
|
||||
<input name="actualCost" type="number" value="{{values.actualCost}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Type de ressource</label>
|
||||
<select name="paymentMode">
|
||||
<option value="points" {{#if (eq values.paymentMode "points")}}selected{{/if}}>Points</option>
|
||||
<option value="fils" {{#if (eq values.paymentMode "fils")}}selected{{/if}}>Fils</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Coût effectif</label>
|
||||
<input type="text" value="{{effectiveCostLabel}}" disabled />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Cible / scène</label>
|
||||
<input name="targetLabel" type="text" value="{{values.targetLabel}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Notes</label>
|
||||
<input name="notes" type="text" value="{{values.notes}}" />
|
||||
</div>
|
||||
<p class="help-text">{{localize "LESOUBLIES.rolls.resourceState"}} : Songes {{resources.songesPoints}} / {{resources.songesValue}} · Cauchemar {{resources.cauchemarPoints}} / {{resources.cauchemarValue}}</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,42 +0,0 @@
|
||||
<div class="les-oublies-roll-dialog">
|
||||
<section class="sheet-card">
|
||||
<h2>Récolte de fils</h2>
|
||||
<div class="field-row">
|
||||
<label>Type de fil</label>
|
||||
<select name="threadType">
|
||||
<option value="songes" {{#if (eq values.threadType "songes")}}selected{{/if}}>Songes</option>
|
||||
<option value="cauchemar" {{#if (eq values.threadType "cauchemar")}}selected{{/if}}>Cauchemar</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Nombre de fils</label>
|
||||
<input name="threadCount" type="number" min="1" value="{{values.threadCount}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.rolls.rollMode"}}</label>
|
||||
<select name="rollMode">
|
||||
{{#each rollModes as |mode|}}
|
||||
<option value="{{mode.value}}" {{#if (eq mode.value @root.values.rollMode)}}selected{{/if}}>{{mode.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>{{localize "LESOUBLIES.rolls.extraDie"}}</label>
|
||||
<select name="extraDie">
|
||||
{{#each extraDieModes as |mode|}}
|
||||
<option value="{{mode.value}}" {{#if (eq mode.value @root.values.extraDie)}}selected{{/if}}>{{mode.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Dormeur</label>
|
||||
<input name="sleeperLabel" type="text" value="{{values.sleeperLabel}}" />
|
||||
</div>
|
||||
<div class="field-row">
|
||||
<label>Notes</label>
|
||||
<input name="notes" type="text" value="{{values.notes}}" />
|
||||
</div>
|
||||
<p class="help-text">Difficulté : -3 par fil supplémentaire. Dégâts subis : 1 par fil souhaité. En cas d'échec, plus aucune récolte possible sur ce dormeur cette nuit.</p>
|
||||
<p class="help-text">{{localize "LESOUBLIES.rolls.resourceState"}} : Songes {{resources.songesPoints}} / {{resources.songesValue}} · Cauchemar {{resources.cauchemarPoints}} / {{resources.cauchemarValue}}</p>
|
||||
</section>
|
||||
</div>
|
||||
@@ -1,26 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet item-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{item.img}}" title="{{item.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<p class="sheet-kicker">Arsenal</p>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{item.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</header>
|
||||
<section class="sheet-card summary-card">
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.categorie"}}</label><select name="system.category" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.weaponCategoryOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.category)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.origine"}}</label><select name="system.origin" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.weaponOriginOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.origin)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select></div>
|
||||
<div class="field-row"><label>Dégâts</label><input name="system.damage" type="text" value="{{system.damage}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.portee"}}</label><input name="system.range" type="text" value="{{system.range}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.prix"}}</label><input name="system.price" type="number" value="{{system.price}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.quantite"}}</label><input name="system.quantity" type="number" value="{{system.quantity}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.equipe"}}</label><input name="system.equipped" type="checkbox" {{checked system.equipped}} {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<p><strong>Race restreinte :</strong> {{system.restrictedRace}}</p>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.description enriched=enriched.description value=system.description name="system.description" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.notes enriched=enriched.notes value=system.notes name="system.notes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
@@ -1,23 +0,0 @@
|
||||
<section class="{{cssClass}} les-oublies-sheet item-sheet" autocomplete="off">
|
||||
<header class="sheet-header hero-banner">
|
||||
<img class="profile-img" data-edit="img" data-action="editImage" src="{{item.img}}" title="{{item.name}}" />
|
||||
<div class="header-fields hero-copy">
|
||||
<p class="sheet-kicker">Savoir-faire</p>
|
||||
<h1 class="sheet-title"><input name="name" type="text" value="{{item.name}}" placeholder="Nom" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||
<button class="mode-button" type="button" data-action="toggleSheet">{{#if isEditMode}}{{localize "LESOUBLIES.ui.playMode"}}{{else}}{{localize "LESOUBLIES.ui.editMode"}}{{/if}}</button>
|
||||
</div>
|
||||
</header>
|
||||
<section class="sheet-card summary-card">
|
||||
<div class="field-row"><label>Key</label><select name="system.key" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.skillOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.key)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.profil"}}</label><select name="system.profileKey" {{#if isPlayMode}}disabled{{/if}}>{{#each choiceSets.profileOptions as |option|}}<option value="{{option.value}}" {{#if (eq option.value @root.system.profileKey)}}selected{{/if}}>{{option.label}}</option>{{/each}}</select></div>
|
||||
<div class="field-row"><label>{{localize "LESOUBLIES.labels.base"}}</label><input name="system.base" type="number" value="{{system.base}}" {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>Fermée</label><input name="system.closed" type="checkbox" {{checked system.closed}} {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
<div class="field-row"><label>À domaines</label><input name="system.domainSkill" type="checkbox" {{checked system.domainSkill}} {{#if isPlayMode}}disabled{{/if}} /></div>
|
||||
</section>
|
||||
<section class="sheet-card notes-card">
|
||||
<h2>{{localize "LESOUBLIES.labels.description"}}</h2>
|
||||
{{formInput systemFields.description enriched=enriched.description value=system.description name="system.description" toggled=true}}
|
||||
<h2>{{localize "LESOUBLIES.labels.notes"}}</h2>
|
||||
{{formInput systemFields.notes enriched=enriched.notes value=system.notes name="system.notes" toggled=true}}
|
||||
</section>
|
||||
</section>
|
||||
Reference in New Issue
Block a user