Finalisation complète du système Vermine2047 pour FoundryVTT v14
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>
This commit is contained in:
@@ -10,30 +10,75 @@
|
||||
</h1>
|
||||
<div class="resource-content flexrow row text-right">
|
||||
<label for="system.pack.value" class="resource-label">{{ localize 'ADVERSITY.pack'}}</label>
|
||||
<input type="number" name="system.pack.value" value="{{system.pack.value}}" data-dtype="Number" min="0" max="3" />
|
||||
<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.threat.value" class="resource-label">{{ localize 'ADVERSITY.pattern'}}</label>
|
||||
<label for="system.pattern.value" class="resource-label">{{ localize 'ADVERSITY.pattern'}}</label>
|
||||
<div class="resource-content">
|
||||
<input type="number" name="system.pattern.value" value="{{system.pattern.value}}" data-dtype="Number" min="1" max="4" />
|
||||
<span>({{ patternLevel "label" system.pattern.value }})</span>
|
||||
<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.experience.value" class="resource-label">{{ localize 'ADVERSITY.size'}}</label>
|
||||
<label for="system.size.value" class="resource-label">{{ localize 'ADVERSITY.size'}}</label>
|
||||
<div class="resource-content">
|
||||
<input type="number" name="system.size.value" value="{{system.size.value}}" data-dtype="Number" min="0" max="3" />
|
||||
<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.cr" class="resource-label">{{ localize 'ADVERSITY.role'}}</label>
|
||||
<label for="system.role.value" class="resource-label">{{ localize 'ADVERSITY.role'}}</label>
|
||||
<div class="resource-content">
|
||||
<input type="number" name="system.role.value" value="{{system.role.value }}" data-dtype="Number" min="1" max="3"/>
|
||||
<span>({{ roleLevel "label" system.role.value }})</span>
|
||||
<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>
|
||||
|
||||
@@ -53,6 +98,101 @@
|
||||
|
||||
{{!-- 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}}
|
||||
@@ -66,4 +206,3 @@
|
||||
|
||||
</section>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -9,24 +9,54 @@
|
||||
<div class="resource flex-group-center">
|
||||
<label for="system.threat.value" class="resource-label">{{ localize 'ADVERSITY.threat'}}</label>
|
||||
<div class="resource-content">
|
||||
<input type="number" name="system.threat.value" value="{{system.threat.value}}" data-dtype="Number" min="1" max="4" />
|
||||
<span>({{ threatLevel "label" system.threat.value }})</span>
|
||||
<select
|
||||
name="system.threat.value"
|
||||
id="system.threat.value"
|
||||
data-dtype="Number"
|
||||
>
|
||||
{{#each ../config.npcThreatLevels}}
|
||||
<option
|
||||
value="{{@key}}"
|
||||
{{#ife @key ../system.threat.value}}selected{{/ife}}
|
||||
>{{localize this.label}} ({{@key}})</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="resource flex-group-center">
|
||||
<label for="system.experience.value" class="resource-label">{{ localize 'ADVERSITY.experience'}}</label>
|
||||
<div class="resource-content">
|
||||
<input type="number" name="system.experience.value" value="{{system.experience.value}}" data-dtype="Number" min="1" max="4" />
|
||||
<span>({{ experienceLevel "label" system.experience.value }})</span>
|
||||
<select
|
||||
name="system.experience.value"
|
||||
id="system.experience.value"
|
||||
data-dtype="Number"
|
||||
>
|
||||
{{#each ../config.npcExperienceLevels}}
|
||||
<option
|
||||
value="{{@key}}"
|
||||
{{#ife @key ../system.experience.value}}selected{{/ife}}
|
||||
>{{localize this.label}} ({{@key}})</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="resource flex-group-center">
|
||||
<label for="system.cr" class="resource-label">{{ localize 'ADVERSITY.role'}}</label>
|
||||
<label for="system.role.value" class="resource-label">{{ localize 'ADVERSITY.role'}}</label>
|
||||
<div class="resource-content">
|
||||
<input type="number" name="system.role.value" value="{{system.role.value }}" data-dtype="Number" min="1" max="4"/>
|
||||
<span>({{ roleLevel "label" system.role.value }})</span>
|
||||
<select
|
||||
name="system.role.value"
|
||||
id="system.role.value"
|
||||
data-dtype="Number"
|
||||
>
|
||||
{{#each ../config.npcRoleLevels}}
|
||||
<option
|
||||
value="{{@key}}"
|
||||
{{#ife @key ../system.role.value}}selected{{/ife}}
|
||||
>{{localize this.label}} ({{@key}})</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -51,9 +81,13 @@
|
||||
<div class="mdb">
|
||||
<h4 class="align-center">{{ localize 'ADVERSITY.threat'}}</h4>
|
||||
<ul class="unstyled">
|
||||
<li>{{ localize 'ADVERSITY.attack'}} {{ threatLevel "attack" system.threat.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.vigor'}} {{ threatLevel "vigor" system.threat.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.wounds'}} {{ threatLevel "minorWound" system.threat.value }}/{{ threatLevel "majorWound" system.threat.value }}/{{ threatLevel "deadlyWound" system.threat.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.attack'}} {{ npcThreatLevel "attack" system.threat.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.vigor'}} {{ npcThreatLevel "vigor" system.threat.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.wounds'}}
|
||||
{{ npcThreatLevel "minorWound" system.threat.value }}/
|
||||
{{ npcThreatLevel "majorWound" system.threat.value }}/
|
||||
{{ npcThreatLevel "deadlyWound" system.threat.value }}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -64,19 +98,19 @@
|
||||
<label for="system.skills" class="">{{ localize "ADVERSITY.skills" }}</label>
|
||||
<input type="text" name="system.skills" value="{{ system.skills }}" data-dtype="String"/>
|
||||
</li>
|
||||
<li>{{ localize 'ADVERSITY.action'}} {{ experienceLevel "action" system.experience.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.specialties'}} {{ experienceLevel "specialties" system.experience.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.rerolls'}} {{ experienceLevel "rerolls" system.experience.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.contact'}} {{ experienceLevel "contact" system.experience.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.action'}} {{ npcExperienceLevel "action" system.experience.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.specialties'}} {{ npcExperienceLevel "specialties" system.experience.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.rerolls'}} {{ npcExperienceLevel "rerolls" system.experience.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.contact'}} {{ npcExperienceLevel "contact" system.experience.value }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mdb">
|
||||
<h4 class="align-center">{{ localize 'ADVERSITY.role'}}</h4>
|
||||
<ul class="unstyled">
|
||||
<li>{{ localize 'ADVERSITY.reaction'}} {{ roleLevel "reaction" system.role.value }} + {{ roleLevel "reaction_bonus" system.role.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.pools'}} {{ roleLevel "pools" system.role.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.gear'}} {{ roleLevel "gear" system.role.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.protection'}} {{ roleLevel "protection" system.role.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.reaction'}} {{ npcRoleLevel "reaction" system.role.value }} + {{ npcRoleLevel "reaction_bonus" system.role.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.pools'}} {{ npcRoleLevel "pools" system.role.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.gear'}} {{ npcRoleLevel "gear" system.role.value }}</li>
|
||||
<li>{{ localize 'ADVERSITY.protection'}} {{ npcRoleLevel "protection" system.role.value }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
@@ -98,4 +132,3 @@
|
||||
|
||||
</section>
|
||||
</form>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user