Files
mgt2-compendium-amiral-denisov/templates/traveller-npc-dialog.hbs
T
uberwald 4f53d903eb Ajout de la commande /gennpc pour générer des PNJ Traveller
Implémentation complète du générateur de PNJ Traveller basé sur :
https://github.com/carloscasalar/traveller-npc-generator

Fonctionnalités :
- Génération de caractéristiques selon 4 catégories de citoyens
- Distribution des compétences selon 6 niveaux d'expérience
- 14 rôles différents avec priorités de caractéristiques spécifiques
- Génération de noms aléatoires (masculin/féminin/neutre)
- Création de fiche d'acteur mgt2e avec toutes les compétences
- Interface utilisateur avec dialogue Handlebars
- Commande /gennpc dans le chat

Fichiers ajoutés :
- scripts/data/travellerNpcGenerator.js (données et constantes)
- scripts/travellerNpcGenerator.js (logique métier)
- scripts/TravellerNpcDialog.js (interface utilisateur)
- templates/traveller-npc-dialog.hbs (template dialogue)
- templates/traveller-npc-result.hbs (template résultat)
- styles/traveller-npc.css (styles spécifiques)

Fichiers modifiés :
- scripts/npc.js (intégration de la commande)
- module.json (ajout des nouveaux scripts et styles)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-27 23:09:43 +02:00

110 lines
3.8 KiB
Handlebars

<form class="mgt2-traveller-npc-form">
<h3><i class="fas fa-user-astronaut"></i> Générateur de PNJ Traveller</h3>
<p class="traveller-npc-intro">
Génère un personnage non-joueur selon les règles du générateur Traveller,
avec caractéristiques, compétences et rôle aléatoires ou personnalisés.
</p>
<fieldset>
<legend>Identité du PNJ</legend>
<div class="form-group checkbox-group">
<label>
<input type="checkbox" name="useRandomName" {{#if useRandomName}}checked{{/if}}>
Utiliser un nom aléatoire
</label>
</div>
<div class="form-group-row name-fields {{#if useRandomName}}hidden{{/if}}">
<div class="form-group">
<label for="firstName">Prénom</label>
<input id="firstName" name="firstName" type="text" value="{{firstName}}" placeholder="John">
</div>
<div class="form-group">
<label for="surname">Nom de famille</label>
<input id="surname" name="surname" type="text" value="{{surname}}" placeholder="Smith">
</div>
<div class="form-group">
<button type="button" class="btn-small" data-action="randomize-name" title="Générer un nom aléatoire">
<i class="fas fa-dice-d6"></i>
</button>
</div>
</div>
<div class="form-group-row">
<div class="form-group">
<label for="gender">Genre</label>
<select id="gender" name="gender">
{{#each genders}}
<option value="{{key}}" {{#if (eq ../gender key)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
<div class="form-group">
<label for="role">Rôle <span class="required">*</span></label>
<select id="role" name="role" required>
{{#each roles}}
<option value="{{key}}" {{#if (eq ../role key)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
</fieldset>
<fieldset>
<legend>Caractéristiques et Expérience</legend>
<div class="form-group-row">
<div class="form-group">
<label for="citizenCategory">Catégorie de citoyen</label>
<select id="citizenCategory" name="citizenCategory">
{{#each citizenCategories}}
<option value="{{key}}" {{#if (eq ../citizenCategory key)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<div class="hint">{{description}}</div>
</div>
<div class="form-group">
<label for="experience">Niveau d'expérience</label>
<select id="experience" name="experience">
{{#each experienceLevels}}
<option value="{{key}}" {{#if (eq ../experience key)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<div class="hint">{{description}}</div>
</div>
</div>
</fieldset>
<fieldset>
<legend>Création de fiche d'acteur</legend>
<div class="form-group checkbox-group">
<label>
<input type="checkbox" name="createActor" {{#if createActor}}checked{{/if}}>
Créer une fiche PNJ dans les Acteurs
</label>
</div>
<div class="form-group-row">
<div class="form-group">
<label for="actorName">Nom de la fiche <span class="hint">(facultatif)</span></label>
<input id="actorName" name="actorName" type="text" value="{{actorName}}" placeholder="PNJ — Pilote">
</div>
</div>
<div class="form-group checkbox-group">
<label>
<input type="checkbox" name="openCreatedActor" {{#if 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-traveller-npc">
<i class="fas fa-dice-d6"></i> Générer le PNJ Traveller
</button>
</div>
</form>