- Onglets item (Anomalie/Aspect/Attribut): correction tabGroups + data-group sur chaque <a> et <section> - Onglets acteur (PJ/PNJ): tab.cssClass dans les templates pour l'état actif initial - Message de tchat: alignement des noms de variables _getChatCardData <-> chat-message.hbs - actorName, actorImg, success/failure, diceResults, statLabel/skillLabel localisés - difficultyLabel et moonPhaseLabel localisés depuis SYSTEM - Dialogue de jet (roll-dialog.hbs): correction noms variables + min/max modificateur - lang/fr.json: ajout Roll.title, Roll.roll, clés Moon (minuscules), Difficulty (unknown/ardu) - character.mjs: passage statLabel à CelestopolRoll.prompt() - global.less: padding + overflow-y sur .tab pour contenu visible - item-scores.hbs: passage system=system au partial + suppression garde isEditable - Templates anomaly/aspect/attribute: passage system=system au partial item-scores - chat-message.mjs: getHTML() → renderHTML() (dépréciation FVTT v13) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
65 lines
2.8 KiB
Handlebars
65 lines
2.8 KiB
Handlebars
<div class="character-main sheet-part">
|
|
<header class="sheet-header">
|
|
<div class="portrait" data-action="editImage" data-edit="img">
|
|
<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="header-stats-row">
|
|
<div class="header-stat initiative">
|
|
<label>{{localize "CELESTOPOL.Actor.initiative"}}</label>
|
|
<span class="stat-value">{{system.initiative}}</span>
|
|
</div>
|
|
<div class="header-stat anomaly">
|
|
<label>{{localize "CELESTOPOL.Actor.anomaly"}}</label>
|
|
{{#if isEditMode}}
|
|
<select name="system.anomaly.type">
|
|
{{#each anomalyTypes as |atype key|}}
|
|
<option value="{{key}}" {{#if (eq key ../system.anomaly.type)}}selected{{/if}}>{{localize atype.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
<input type="number" name="system.anomaly.value" value="{{system.anomaly.value}}" min="0" max="8" class="anomaly-value">
|
|
{{else}}
|
|
<span>{{localize system.anomaly.type}} {{#if system.anomaly.value}}({{system.anomaly.value}}){{/if}}</span>
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
|
|
{{!-- Attributs personnage (Entregent, Fortune, Rêve, Vision) --}}
|
|
<div class="perso-attributs">
|
|
{{#each system.attributs as |attr key|}}
|
|
<div class="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>/</span>
|
|
<input type="number" name="system.attributs.{{key}}.max" value="{{attr.max}}" min="0" class="attr-max">
|
|
{{else}}
|
|
<span class="attr-display">{{attr.value}} / {{attr.max}}</span>
|
|
{{/if}}
|
|
</div>
|
|
{{/each}}
|
|
</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>
|