ef7fe6e2bd
Corrections critiques implémentées: - Remplacement du cache global mutable par ModuleCache - Binding des méthodes dans TravellerNpcDialog - Suppression des ré-exports circulaires - Validation complète des options - Correction: Duplicate export de TravellerNpcDialog et openTravellerNpcDialog - Correction: distributeSkillLevels ne supprime plus les spécialisations (ex: Pilot-Spacecraft ET Pilot-Small Craft sont maintenant conservées) Améliorations majeures: - Optimisation de l'algorithme de distribution des compétences (single-pass) - Optimisation de la génération des caractéristiques (priorité-based) - Gestion d'erreur améliorée avec TravellerNpcError - Création de TravellerNpcUtils.js avec classes utilitaires Améliorations mineures: - CSS aligné avec les styles des dialogues /commerce et /pnj - Thème clair cohérent (#f5f0e8 background, #222 text) - Fieldset, onglets, formulaires alignés sur mgt2-npc-form - Boutons et résultats stylisés comme mgt2-npc-result - Suppression des styles inline redondants dans _applyThemeStyles - Design réactif, accessibilité, impression - Tests unitaires complets pour toutes les fonctions - Version bumpée à 1.3.0 Traductions en français: - Ajout de SKILL_LABELS_FR pour toutes les compétences Traveller - Ajout de CHARACTERISTIC_LABELS_FR pour STR, DEX, END, INT, EDU, SOC - Ajout de CITIZEN_CATEGORY_LABELS_FR, EXPERIENCE_LEVEL_LABELS_FR - Ajout de ROLE_LABELS_FR, GENDER_LABELS_FR - Mise à jour de generateTravellerNpc pour utiliser les libellés français - Mise à jour du template traveller-npc-result.hbs pour afficher labelFr - Mise à jour du template traveller-npc-dialog.hbs avec libellés français - Mise à jour de TravellerNpcDialog._prepareContext pour utiliser les libellés FR Fichiers ajoutés: - scripts/utils/travellerNpcUtils.js - scripts/tests/travellerNpcGenerator.test.js Fichiers modifiés: - scripts/data/travellerNpcGenerator.js (+ traductions FR) - scripts/travellerNpcGenerator.js (+ fonctions getSkillLabelFr, getCharacteristicLabelFr) - scripts/TravellerNpcDialog.js (libellés FR dans _prepareContext) - scripts/npc.js - styles/traveller-npc.css - templates/traveller-npc-dialog.hbs - templates/traveller-npc-result.hbs - module.json Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
173 lines
4.2 KiB
JSON
173 lines
4.2 KiB
JSON
{
|
|
"id": "mgt2-compendium-amiral-denisov",
|
|
"title": "MgT2e - Compendium Amiral Denisov",
|
|
"version": "1.3.0",
|
|
"compatibility": {
|
|
"minimum": "13",
|
|
"verified": "13",
|
|
"maximum": "14"
|
|
},
|
|
"description": "Module de compendium et d'outils Mongoose Traveller 2e pour FoundryVTT écrit par JdR.Ninja.\nInclut les commandes /commerce, /pnj, /rencontre, /mission et /gennpc pour automatiser le commerce, les PNJ rapides, les rencontres, les contrats aléatoires et la génération de PNJ Traveller selon les règles du générateur officiel, en s'appuyant sur les compétences natives des fiches.",
|
|
"esmodules": [
|
|
"scripts/commerce.js",
|
|
"scripts/npc.js",
|
|
"scripts/utils/travellerNpcUtils.js",
|
|
"scripts/data/travellerNpcGenerator.js",
|
|
"scripts/travellerNpcGenerator.js",
|
|
"scripts/TravellerNpcDialog.js",
|
|
"scripts/mgt2eMigration.js",
|
|
"scripts/npcRollTableSync.js",
|
|
"scripts/mgt2eSkills.js"
|
|
],
|
|
"styles": [
|
|
"styles/commerce.css",
|
|
"styles/npc.css",
|
|
"styles/traveller-npc.css"
|
|
],
|
|
"packs": [
|
|
{
|
|
"name": "armures",
|
|
"label": "Armures",
|
|
"path": "packs/armures",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "competences",
|
|
"label": "Références de compétences",
|
|
"path": "packs/competences",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "maladie-poison-and-blessure",
|
|
"label": "Maladie, Poison & Blessure",
|
|
"path": "packs/maladie-poison-and-blessure",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "objet",
|
|
"label": "Objets",
|
|
"path": "packs/objet",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "equipement",
|
|
"label": "Équipement",
|
|
"path": "packs/equipement",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "ordinateur",
|
|
"label": "Ordinateur",
|
|
"path": "packs/ordinateur",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "contenant-sac-coffre",
|
|
"label": "Contenant (sac, coffre)",
|
|
"path": "packs/contenant-sac-coffre",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "espece",
|
|
"label": "Espèce",
|
|
"path": "packs/espece",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "journal",
|
|
"label": "Journal Psioniques",
|
|
"path": "packs/journal",
|
|
"type": "JournalEntry",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "armes",
|
|
"label": "Armes",
|
|
"path": "packs/armes",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "talents-psioniques",
|
|
"label": "Talents psioniques",
|
|
"path": "packs/talents-psioniques",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "carrieres",
|
|
"label": "Carrières",
|
|
"path": "packs/carrieres",
|
|
"type": "Item",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "tables-pnj",
|
|
"label": "Tables PNJ & Rencontres",
|
|
"path": "packs/tables-pnj",
|
|
"type": "RollTable",
|
|
"system": "mgt2e",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
}
|
|
]
|
|
}
|