Files
fvtt-celestopol/templates/character-main.hbs
LeRatierBretonnier 9dbd614c5a feat: gestion de l'expérience (XP)
- Schéma xp dans CelestopolCharacter : actuel (éditable), log[] ({montant, raison, date}), depense (calculé dans prepareDerivedData)
- Bouton 'Dépenser XP' → DialogV2 (montant + raison) : décrémente actuel, logge l'entrée
- Suppression d'entrée de log avec remboursement des points (mode édition)
- Section XP en haut de l'onglet Biographie : compteurs, tableau du log, référentiel des coûts
- i18n : section CELESTOPOL.XP.* complète
- CSS : .xp-section avec compteurs, tableau de log et accordéon de référence

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-31 00:33:59 +02:00

95 lines
4.2 KiB
Handlebars

<div class="character-main sheet-part">
<header class="sheet-header">
<div class="portrait" data-action="editImage">
<img src="{{actor.img}}" alt="{{actor.name}}" class="actor-portrait {{#unless isEditMode}}click-to-edit{{/unless}}">
</div>
<div class="header-fields">
<div class="charname">
{{#if isEditMode}}
<input type="text" name="name" value="{{actor.name}}" placeholder="{{localize 'CELESTOPOL.Actor.name'}}">
{{else}}
<h1 class="actor-name">{{actor.name}}</h1>
{{/if}}
</div>
<div class="concept-row">
{{#if isEditMode}}
<input type="text" name="system.concept" value="{{system.concept}}" placeholder="{{localize 'CELESTOPOL.Actor.concept'}}">
{{else}}
<span class="concept-display">{{system.concept}}</span>
{{/if}}
</div>
<div class="identity-row">
<div class="identity-field">
<label>{{localize "CELESTOPOL.Actor.metier"}}</label>
{{#if isEditMode}}
<input type="text" name="system.metier" value="{{system.metier}}" placeholder="{{localize 'CELESTOPOL.Actor.metier'}}">
{{else}}
<span>{{system.metier}}</span>
{{/if}}
</div>
<div class="identity-field">
<label>{{localize "CELESTOPOL.Actor.origine"}}</label>
{{#if isEditMode}}
<input type="text" name="system.biodata.origine" value="{{system.biodata.origine}}" placeholder="{{localize 'CELESTOPOL.Actor.origine'}}">
{{else}}
<span>{{system.biodata.origine}}</span>
{{/if}}
</div>
<div class="identity-field">
<label>{{localize "CELESTOPOL.Actor.age"}}</label>
{{#if isEditMode}}
<input type="text" name="system.biodata.age" value="{{system.biodata.age}}" placeholder="{{localize 'CELESTOPOL.Actor.age'}}">
{{else}}
<span>{{system.biodata.age}}</span>
{{/if}}
</div>
<div class="identity-field">
<label>{{localize "CELESTOPOL.Actor.faction"}}</label>
{{#if isEditMode}}
<input type="text" name="system.faction" value="{{system.faction}}" placeholder="{{localize 'CELESTOPOL.Actor.faction'}}">
{{else}}
<span>{{system.faction}}</span>
{{/if}}
</div>
</div>
<div class="header-stats-row">
<div class="header-stat initiative">
<label>{{localize "CELESTOPOL.Actor.initiative"}}</label>
<span class="stat-value">{{system.initiative}}</span>
</div>
{{!-- Attributs personnage (Entregent, Fortune, Rêve, Vision) --}}
{{#each system.attributs as |attr key|}}
<div class="header-stat perso-attr">
<label>{{localize (concat "CELESTOPOL.Attribut." key)}}</label>
{{#if ../isEditMode}}
<input type="number" name="system.attributs.{{key}}.value" value="{{attr.value}}" min="0" class="attr-val">
<span class="attr-sep">/</span>
<input type="number" name="system.attributs.{{key}}.max" value="{{attr.max}}" min="0" class="attr-max">
{{else}}
<span class="attr-display">{{attr.value}}<span class="attr-sep">/</span>{{attr.max}}</span>
{{/if}}
</div>
{{/each}}
{{#with (lookup woundLevels system.blessures.lvl) as |wound|}}
{{#if wound.id}}
<div class="header-stat wound-status-badge wound-level-{{wound.id}}">
<label>{{localize "CELESTOPOL.Wound.status"}}</label>
<span class="wound-value">
<span class="wound-label">{{localize wound.label}}</span>
{{#if wound.duration}}<span class="wound-duration"> — {{localize wound.duration}}</span>{{/if}}
{{#if wound.malus}}<span class="wound-malus"> ({{wound.malus}})</span>{{/if}}
</span>
</div>
{{/if}}
{{/with}}
</div>
</div>
<div class="header-buttons">
<a class="toggle-sheet" data-action="toggleSheet" title="{{#if isEditMode}}{{localize 'CELESTOPOL.Sheet.playMode'}}{{else}}{{localize 'CELESTOPOL.Sheet.editMode'}}{{/if}}">
<i class="fas {{#if isEditMode}}fa-eye{{else}}fa-edit{{/if}}"></i>
</a>
</div>
</header>
</div>