Ready for release
Release Creation / build (release) Successful in 43s

This commit is contained in:
2026-06-12 20:53:44 +02:00
parent efe37b8a96
commit a53c7ace53
98 changed files with 1171 additions and 289 deletions
+97
View File
@@ -0,0 +1,97 @@
<div class="mgt2-npc-result">
<div class="npc-header">
<h3>
<i class="fas fa-handshake"></i>
{{#if relationChanged}}
{{lookupRelationKey originalRelationKey}}{{relation.label}}
{{else}}
{{relation.label}}
{{/if}}
</h3>
</div>
<div class="npc-pill-row">
<span class="npc-pill">{{relation.label}}</span>
<span class="npc-pill npc-pill-muted">Score net : {{netScore}}</span>
</div>
<div class="npc-card-grid">
<div class="npc-card-block">
<div class="npc-card-title">Affinité ({{affinity.value}}/6)</div>
<div class="npc-roll-line">{{affinity.formula}}{{affinity.roll}}</div>
<div class="npc-card-value">{{affinity.label}}</div>
<div class="npc-subline">{{affinity.description}}</div>
</div>
<div class="npc-card-block">
<div class="npc-card-title">Inimitié ({{inimity.value}}/6)</div>
<div class="npc-roll-line">{{inimity.formula}}{{inimity.roll}}</div>
<div class="npc-card-value">-{{inimity.value}}{{inimity.label}}</div>
<div class="npc-subline">{{inimity.description}}</div>
</div>
</div>
<div class="npc-card-grid">
<div class="npc-card-block">
<div class="npc-card-title">Pouvoir ({{power.value}}/6)</div>
<div class="npc-card-value">{{power.label}}</div>
<div class="npc-subline">{{power.description}}</div>
</div>
<div class="npc-card-block">
<div class="npc-card-title">Influence ({{influence.value}}/6)</div>
<div class="npc-card-value">{{influence.label}}</div>
<div class="npc-subline">{{influence.description}}</div>
</div>
</div>
{{#if specialCharacteristics.length}}
<div class="npc-section">
<div class="npc-section-title">Caractéristiques spéciales</div>
{{#each specialCharacteristics}}
<div class="ae-special-entry">
<div class="ae-special-header">
<span class="npc-inline-roll">D{{d66}}</span>
<span>{{text}}</span>
</div>
{{#if rerollNote}}
<div class="ae-special-detail">{{rerollNote}}</div>
{{/if}}
{{#if swapNote}}
<div class="ae-special-detail">{{swapNote}}</div>
{{/if}}
{{#if narrativeText}}
<div class="ae-special-detail ae-narrative">{{narrativeText}}</div>
{{/if}}
{{#if newRelationKey}}
<div class="ae-special-detail">La relation devient : {{lookupRelationKey newRelationKey}}</div>
{{/if}}
<div class="ae-special-mods">
{{#if appliedDeltas.affinity}}
<span class="ae-mod ae-mod-{{#if (gt appliedDeltas.affinity 0)}}pos{{else}}neg{{/if}}">
Affinité {{formatSigned appliedDeltas.affinity}}
</span>
{{/if}}
{{#if appliedDeltas.inimity}}
<span class="ae-mod ae-mod-{{#if (gt appliedDeltas.inimity 0)}}pos{{else}}neg{{/if}}">
Inimitié {{formatSigned appliedDeltas.inimity}}
</span>
{{/if}}
{{#if appliedDeltas.power}}
<span class="ae-mod ae-mod-{{#if (gt appliedDeltas.power 0)}}pos{{else}}neg{{/if}}">
Pouvoir {{formatSigned appliedDeltas.power}}
</span>
{{/if}}
{{#if appliedDeltas.influence}}
<span class="ae-mod ae-mod-{{#if (gt appliedDeltas.influence 0)}}pos{{else}}neg{{/if}}">
Influence {{formatSigned appliedDeltas.influence}}
</span>
{{/if}}
</div>
</div>
{{/each}}
</div>
{{/if}}
<div class="npc-footer">
<small>Généré par le module {{MODULE_ID}}</small>
</div>
</div>
+59
View File
@@ -13,6 +13,9 @@
<a class="item {{#if (eq activeTab "traveller")}}active{{/if}}" data-tab="traveller">
<i class="fas fa-user-astronaut"></i> PNJ Détaillé
</a>
<a class="item {{#if (eq activeTab "ally-enemy")}}active{{/if}}" data-tab="ally-enemy">
<i class="fas fa-handshake"></i> Alliés & Ennemis
</a>
</nav>
<section class="tab-content">
@@ -232,6 +235,62 @@
</button>
</div>
</div>
<div class="tab {{#if (eq activeTab "ally-enemy")}}active{{/if}}" data-tab="ally-enemy">
<h3><i class="fas fa-handshake"></i> Alliés, Contacts, Rivaux et Ennemis</h3>
<p class="npc-intro">Génère une relation avec Affinité, Inimitié, Pouvoir et Influence selon les règles du Livre de l'Équipage.</p>
<fieldset>
<legend>Type de relation</legend>
<div class="form-group-row">
<div class="form-group">
<label for="ae-relation">Relation de base</label>
<select id="ae-relation" name="ae.relation">
{{#each relations}}
<option value="{{key}}" {{#if (eq ../ae.relation key)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
<div class="form-group checkbox-group">
<label>
<input type="checkbox" name="ae.includeSpecial" {{#if ae.includeSpecial}}checked{{/if}}>
Inclure les caractéristiques spéciales (jet 2D, 8+)
</label>
</div>
</fieldset>
<fieldset>
<legend>Création de fiche d'acteur</legend>
<div class="form-group checkbox-group">
<label>
<input type="checkbox" name="ae.createActor" {{#if ae.createActor}}checked{{/if}}>
Créer une fiche PNJ dans les Acteurs
</label>
</div>
<div class="form-group-row">
<div class="form-group">
<label for="ae-actorName">Nom de la fiche <span class="hint">(facultatif)</span></label>
<input id="ae-actorName" name="ae.actorName" type="text" value="{{ae.actorName}}" placeholder="PNJ — Rival">
</div>
</div>
<div class="form-group checkbox-group">
<label>
<input type="checkbox" name="ae.openCreatedActor" {{#if ae.openCreatedActor}}checked{{/if}}>
Ouvrir automatiquement la fiche créée
</label>
</div>
</fieldset>
<div class="form-footer">
<button type="button" class="btn-calculate" data-action="generate-ally-enemy">
<i class="fas fa-dice-d6"></i> Générer la relation
</button>
</div>
</div>
</section>
</form>