Portraits et corrections sur valeurs des PNJ
Some checks failed
Release Creation / build (release) Failing after 1m24s

This commit is contained in:
2026-04-12 11:52:17 +02:00
parent 7a2be0cc0e
commit 44cc07db73
91 changed files with 4612 additions and 212 deletions

View File

@@ -1,92 +1,122 @@
<div class="tab biography {{tab.cssClass}}" data-group="sheet" data-tab="biography">
{{!-- Description Physique --}}
<div class="biography-section">
<div class="section-header">{{localize "CELESTOPOL.Actor.descriptionPhysique"}}</div>
{{formInput systemFields.descriptionPhysique enriched=enrichedDescriptionPhysique value=system.descriptionPhysique name="system.descriptionPhysique" toggled=true}}
</div>
{{!-- Description Psychologique --}}
<div class="biography-section">
<div class="section-header">{{localize "CELESTOPOL.Actor.descriptionPsychologique"}}</div>
{{formInput systemFields.descriptionPsychologique enriched=enrichedDescriptionPsychologique value=system.descriptionPsychologique name="system.descriptionPsychologique" toggled=true}}
</div>
{{!-- Notes --}}
<div class="notes-section">
<div class="section-header">{{localize "CELESTOPOL.Actor.notes"}}</div>
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
</div>
{{!-- Section XP --}}
<div class="xp-section">
<div class="section-header">{{localize "CELESTOPOL.XP.title"}}</div>
<div class="xp-counters">
<div class="xp-counter">
<label>{{localize "CELESTOPOL.XP.actuel"}}</label>
{{formInput systemFields.xp.fields.actuel value=system.xp.actuel name="system.xp.actuel"}}
<div class="biography-layout">
<div class="biography-main">
{{!-- Description Physique --}}
<div class="biography-section">
<div class="section-header">{{localize "CELESTOPOL.Actor.descriptionPhysique"}}</div>
{{formInput systemFields.descriptionPhysique enriched=enrichedDescriptionPhysique value=system.descriptionPhysique name="system.descriptionPhysique" toggled=true}}
</div>
<div class="xp-counter xp-depense-counter">
<label>{{localize "CELESTOPOL.XP.depense"}}</label>
<span class="xp-depense-value">{{system.xp.depense}}</span>
{{!-- Description Psychologique --}}
<div class="biography-section">
<div class="section-header">{{localize "CELESTOPOL.Actor.descriptionPsychologique"}}</div>
{{formInput systemFields.descriptionPsychologique enriched=enrichedDescriptionPsychologique value=system.descriptionPsychologique name="system.descriptionPsychologique" toggled=true}}
</div>
{{!-- Historique --}}
<div class="biography-section">
<div class="section-header">{{localize "CELESTOPOL.Actor.historique"}}</div>
{{formInput systemFields.historique enriched=enrichedHistorique value=system.historique name="system.historique" toggled=true}}
</div>
{{!-- Notes --}}
<div class="notes-section">
<div class="section-header">{{localize "CELESTOPOL.Actor.notes"}}</div>
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
</div>
{{!-- Section XP --}}
<div class="xp-section">
<div class="section-header">{{localize "CELESTOPOL.XP.title"}}</div>
<div class="xp-counters">
<div class="xp-counter">
<label>{{localize "CELESTOPOL.XP.actuel"}}</label>
{{formInput systemFields.xp.fields.actuel value=system.xp.actuel name="system.xp.actuel"}}
</div>
<div class="xp-counter xp-depense-counter">
<label>{{localize "CELESTOPOL.XP.depense"}}</label>
<span class="xp-depense-value">{{system.xp.depense}}</span>
</div>
{{#if isPlayMode}}
<button type="button" class="xp-btn-depenser" data-action="depenseXp">
<i class="fa-solid fa-coins"></i> {{localize "CELESTOPOL.XP.depenser"}}
</button>
{{/if}}
</div>
{{!-- Log des dépenses --}}
{{#unless xpLogEmpty}}
<table class="xp-log-table">
<thead>
<tr>
<th>{{localize "CELESTOPOL.XP.date"}}</th>
<th>{{localize "CELESTOPOL.XP.raison"}}</th>
<th>{{localize "CELESTOPOL.XP.montant"}}</th>
{{#if isEditMode}}<th></th>{{/if}}
</tr>
</thead>
<tbody>
{{#each system.xp.log}}
<tr>
<td class="xp-date">{{this.date}}</td>
<td class="xp-raison">{{this.raison}}</td>
<td class="xp-montant">{{this.montant}}</td>
{{#if ../isEditMode}}
<td class="xp-suppr-cell">
<button type="button" class="xp-btn-suppr" data-action="supprimerXpLog"
data-idx="{{@index}}" title="{{localize 'CELESTOPOL.XP.supprimer'}}">
<i class="fa-solid fa-trash"></i>
</button>
</td>
{{/if}}
</tr>
{{/each}}
</tbody>
</table>
{{/unless}}
{{!-- Tableau de référence des coûts --}}
<details class="xp-ref">
<summary>{{localize "CELESTOPOL.XP.refTitle"}}</summary>
<table class="xp-ref-table">
<thead>
<tr>
<th>{{localize "CELESTOPOL.XP.refAmelioration"}}</th>
<th>{{localize "CELESTOPOL.XP.refCout"}}</th>
</tr>
</thead>
<tbody>
<tr><td>{{localize "CELESTOPOL.XP.refAugmenterSpec"}}</td><td>{{localize "CELESTOPOL.XP.refCoutNiveau"}}</td></tr>
<tr><td>{{localize "CELESTOPOL.XP.refAcquerirAspect"}}</td><td>5</td></tr>
<tr><td>{{localize "CELESTOPOL.XP.refAugmenterAspect"}}</td><td>5</td></tr>
<tr><td>{{localize "CELESTOPOL.XP.refAcquerirAttribut"}}</td><td>{{localize "CELESTOPOL.XP.refCoutAttributTotal"}}</td></tr>
</tbody>
</table>
</details>
</div>
{{#if isPlayMode}}
<button type="button" class="xp-btn-depenser" data-action="depenseXp">
<i class="fa-solid fa-coins"></i> {{localize "CELESTOPOL.XP.depenser"}}
</button>
{{/if}}
</div>
{{!-- Log des dépenses --}}
{{#unless xpLogEmpty}}
<table class="xp-log-table">
<thead>
<tr>
<th>{{localize "CELESTOPOL.XP.date"}}</th>
<th>{{localize "CELESTOPOL.XP.raison"}}</th>
<th>{{localize "CELESTOPOL.XP.montant"}}</th>
{{#if isEditMode}}<th></th>{{/if}}
</tr>
</thead>
<tbody>
{{#each system.xp.log}}
<tr>
<td class="xp-date">{{this.date}}</td>
<td class="xp-raison">{{this.raison}}</td>
<td class="xp-montant">{{this.montant}}</td>
{{#if ../isEditMode}}
<td class="xp-suppr-cell">
<button type="button" class="xp-btn-suppr" data-action="supprimerXpLog"
data-idx="{{@index}}" title="{{localize 'CELESTOPOL.XP.supprimer'}}">
<i class="fa-solid fa-trash"></i>
</button>
</td>
{{/if}}
</tr>
{{/each}}
</tbody>
</table>
{{/unless}}
{{!-- Tableau de référence des coûts --}}
<details class="xp-ref">
<summary>{{localize "CELESTOPOL.XP.refTitle"}}</summary>
<table class="xp-ref-table">
<thead>
<tr>
<th>{{localize "CELESTOPOL.XP.refAmelioration"}}</th>
<th>{{localize "CELESTOPOL.XP.refCout"}}</th>
</tr>
</thead>
<tbody>
<tr><td>{{localize "CELESTOPOL.XP.refAugmenterSpec"}}</td><td>{{localize "CELESTOPOL.XP.refCoutNiveau"}}</td></tr>
<tr><td>{{localize "CELESTOPOL.XP.refAcquerirAspect"}}</td><td>5</td></tr>
<tr><td>{{localize "CELESTOPOL.XP.refAugmenterAspect"}}</td><td>5</td></tr>
<tr><td>{{localize "CELESTOPOL.XP.refAcquerirAttribut"}}</td><td>{{localize "CELESTOPOL.XP.refCoutAttributTotal"}}</td></tr>
</tbody>
</table>
</details>
<aside class="biography-portrait-panel">
<div class="section-header">{{localize "CELESTOPOL.Actor.portraitImage"}}</div>
<div class="biography-portrait-preview">
{{#if hasBiographyPortrait}}
<img src="{{biographyPortrait}}" alt="{{actor.name}}" class="biography-portrait-image">
{{else}}
<div class="biography-portrait-empty">{{localize "CELESTOPOL.Actor.portraitImageEmpty"}}</div>
{{/if}}
</div>
<div class="biography-portrait-actions">
<button type="button" class="biography-portrait-send" data-action="sendBiographyPortrait" {{#unless hasBiographyPortrait}}disabled{{/unless}}>
<i class="fa-solid fa-image"></i> {{localize "CELESTOPOL.Actor.sendPortraitToChat"}}
</button>
</div>
{{#if isEditMode}}
<div class="biography-portrait-field">
<file-picker type="image" name="system.portraitImage" value="{{system.portraitImage}}"></file-picker>
</div>
<p class="biography-portrait-hint">{{localize "CELESTOPOL.Actor.portraitImageHint"}}</p>
{{/if}}
</aside>
</div>
</div>