716c1b49ae
Implémentations majeures: - Classe GroupLink pour synchronisation bidirectionnelle acteurs↔groupes - Configuration complète des totems, PNJ et créatures - Redesign du RollDialog avec interface compacte et sélecteurs - Bonus/malus par domaine de totem - Réussites automatiques et seuils auto basés sur niveau de maîtrise - Choix du totem à garder avec recalcul des réussites - Conversion tous templates chat cards en .hbs - Fiches PNJ et Créature avec sélecteurs pour tous les niveaux - Documentation technique (ARCHITECTURE.md) et utilisateur (GUIDE_UTILISATEUR.md) - Mise à jour system.json pour compatibilité v14 - Tous les TODOs du README.md complétés Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
209 lines
8.3 KiB
Handlebars
209 lines
8.3 KiB
Handlebars
<form class="{{cssClass}} {{actor.type}} flexcol form" autocomplete="off">
|
|
|
|
{{!-- Sheet Header --}}
|
|
<header class="sheet-header">
|
|
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100"/>
|
|
<div class="header-fields">
|
|
<div class="resources grid grid-3col">
|
|
<h1 class="charname">
|
|
<input name="name" type="text" value="{{actor.name}}" placeholder="Nom"/>
|
|
</h1>
|
|
<div class="resource-content flexrow row text-right">
|
|
<label for="system.pack.value" class="resource-label">{{ localize 'ADVERSITY.pack'}}</label>
|
|
<select
|
|
name="system.pack.value"
|
|
id="system.pack.value"
|
|
data-dtype="Number"
|
|
>
|
|
<option value="0">{{localize 'VERMINE.none'}}</option>
|
|
{{#each ../config.creaturePackLevels}}
|
|
{{#if @key}}
|
|
<option
|
|
value="{{@key}}"
|
|
{{#ife @key ../system.pack.value}}selected{{/ife}}
|
|
>{{@key}}</option>
|
|
{{/if}}
|
|
{{/each}}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="resources grid grid-3col">
|
|
<div class="resource flex-group-center">
|
|
<label for="system.pattern.value" class="resource-label">{{ localize 'ADVERSITY.pattern'}}</label>
|
|
<div class="resource-content">
|
|
<select
|
|
name="system.pattern.value"
|
|
id="system.pattern.value"
|
|
data-dtype="Number"
|
|
>
|
|
{{#each ../config.creaturePatternLevels}}
|
|
<option
|
|
value="{{@key}}"
|
|
{{#ife @key ../system.pattern.value}}selected{{/ife}}
|
|
>{{localize this.label}} ({{@key}})</option>
|
|
{{/each}}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="resource flex-group-center">
|
|
<label for="system.size.value" class="resource-label">{{ localize 'ADVERSITY.size'}}</label>
|
|
<div class="resource-content">
|
|
<select
|
|
name="system.size.value"
|
|
id="system.size.value"
|
|
data-dtype="Number"
|
|
>
|
|
{{#each ../config.creatureSizeLevels}}
|
|
<option
|
|
value="{{@key}}"
|
|
{{#ife @key ../system.size.value}}selected{{/ife}}
|
|
>{{@key}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="resource flex-group-center">
|
|
<label for="system.role.value" class="resource-label">{{ localize 'ADVERSITY.role'}}</label>
|
|
<div class="resource-content">
|
|
<select
|
|
name="system.role.value"
|
|
id="system.role.value"
|
|
data-dtype="Number"
|
|
>
|
|
{{#each ../config.creatureRoleLevels}}
|
|
<option
|
|
value="{{@key}}"
|
|
{{#ife @key ../system.role.value}}selected{{/ife}}
|
|
>{{localize this.label}} ({{@key}})</option>
|
|
{{/each}}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
{{!-- Sheet Tab Navigation --}}
|
|
<nav class="sheet-tabs tabs" data-group="primary">
|
|
{{!-- Default tab is specified in actor-sheet.mjs --}}
|
|
<a class="item" data-tab="description">{{ localize 'VERMINE.abilities'}}</a>
|
|
<a class="item" data-tab="effects">{{ localize 'VERMINE.combat'}}</a>
|
|
</nav>
|
|
|
|
{{!-- Sheet Body --}}
|
|
<section class="sheet-body">
|
|
|
|
{{!-- Biography Tab --}}
|
|
<div class="tab stats" data-group="primary" data-tab="description">
|
|
<section class="grid grid-3col gap-md">
|
|
<div class="mdb">
|
|
<h4 class="align-center">{{ localize 'ADVERSITY.pattern'}}</h4>
|
|
<ul class="unstyled">
|
|
<li>{{ localize 'ADVERSITY.attack'}} {{ creaturePatternLevel "attack" system.pattern.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.damage'}} {{ creaturePatternLevel "damage" system.pattern.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.wounds'}}
|
|
{{ creaturePatternLevel "minorWound" system.pattern.value }}/
|
|
{{ creaturePatternLevel "majorWound" system.pattern.value }}/
|
|
{{ creaturePatternLevel "deadlyWound" system.pattern.value }}
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="mdb">
|
|
<h4 class="align-center">{{ localize 'ADVERSITY.size'}}</h4>
|
|
<ul class="unstyled">
|
|
<li>{{ localize 'ADVERSITY.attack'}} {{ creatureSizeLevel "attack" system.size.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.vigor'}} {{ creatureSizeLevel "vigor" system.size.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.wounds'}}
|
|
{{ creatureSizeLevel "minorWound" system.size.value }}/
|
|
{{ creatureSizeLevel "majorWound" system.size.value }}/
|
|
{{ creatureSizeLevel "deadlyWound" system.size.value }}
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="mdb">
|
|
<h4 class="align-center">{{ localize 'ADVERSITY.role'}}</h4>
|
|
<ul class="unstyled">
|
|
<li>{{ localize 'ADVERSITY.reaction'}} {{ creatureRoleLevel "reaction" system.role.value }} + {{ creatureRoleLevel "reaction_bonus" system.role.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.pools'}} {{ creatureRoleLevel "pools" system.role.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.gear'}} {{ creatureRoleLevel "gear" system.role.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.protection'}} {{ creatureRoleLevel "protection" system.role.value }}</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
<section class="grid grid-3col gap-md">
|
|
<div class="mdb">
|
|
<h4 class="align-center">{{ localize 'ADVERSITY.pack'}}</h4>
|
|
<ul class="unstyled">
|
|
<li>{{ localize 'ADVERSITY.attack'}} {{ creaturePackLevel "attack" system.pack.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.damage'}} {{ creaturePackLevel "damage" system.pack.value }}</li>
|
|
<li>{{ localize 'ADVERSITY.wounds'}}
|
|
{{ creaturePackLevel "minorWound" system.pack.value }}/
|
|
{{ creaturePackLevel "majorWound" system.pack.value }}/
|
|
{{ creaturePackLevel "deadlyWound" system.pack.value }}
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="mdb">
|
|
<h4 class="align-center">{{ localize 'ADVERSITY.skills'}}</h4>
|
|
<ul class="unstyled">
|
|
<li>
|
|
<input type="text" name="system.skills" value="{{ system.skills }}" data-dtype="String" placeholder="{{ localize 'ADVERSITY.skills' }}"/>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="mdb">
|
|
<h4 class="align-center">{{ localize 'VERMINE.modes'}}</h4>
|
|
<ul class="unstyled">
|
|
<li>
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
name="system.modes.survival"
|
|
{{#if system.modes.survival}}checked{{/if}}
|
|
data-dtype="Boolean"
|
|
/>
|
|
{{ localize 'GAME_MODES.survival' }}
|
|
</label>
|
|
</li>
|
|
<li>
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
name="system.modes.nightmare"
|
|
{{#if system.modes.nightmare}}checked{{/if}}
|
|
data-dtype="Boolean"
|
|
/>
|
|
{{ localize 'GAME_MODES.nightmare' }}
|
|
</label>
|
|
</li>
|
|
<li>
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
name="system.modes.apocalypse"
|
|
{{#if system.modes.apocalypse}}checked{{/if}}
|
|
data-dtype="Boolean"
|
|
/>
|
|
{{ localize 'GAME_MODES.apocalypse' }}
|
|
</label>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
<section class="flexcol col gap-md">
|
|
<h4 class="align-center">{{ localize 'IDENTITY.notes'}}</h4>
|
|
{{editor system.biography target="system.biography" button=true owner=owner editable=editable}}
|
|
</section>
|
|
</div>
|
|
|
|
{{!-- Active Effects Tab --}}
|
|
<div class="tab effects flexcol" data-group="primary" data-tab="effects">
|
|
{{> "systems/vermine2047/templates/actor/creature/creature-combat.hbs"}}
|
|
</div>
|
|
|
|
</section>
|
|
</form>
|