diff --git a/packs/tables-pnj/000071.ldb b/packs/tables-pnj/000071.ldb new file mode 100644 index 0000000..fd65f85 Binary files /dev/null and b/packs/tables-pnj/000071.ldb differ diff --git a/packs/tables-pnj/000067.log b/packs/tables-pnj/000072.log similarity index 58% rename from packs/tables-pnj/000067.log rename to packs/tables-pnj/000072.log index 5416674..445ff7e 100644 Binary files a/packs/tables-pnj/000067.log and b/packs/tables-pnj/000072.log differ diff --git a/packs/tables-pnj/000073.ldb b/packs/tables-pnj/000073.ldb new file mode 100644 index 0000000..b57ee9c Binary files /dev/null and b/packs/tables-pnj/000073.ldb differ diff --git a/packs/tables-pnj/LOG b/packs/tables-pnj/LOG index 0be51f9..07c1b56 100644 --- a/packs/tables-pnj/LOG +++ b/packs/tables-pnj/LOG @@ -46,3 +46,9 @@ 2026/05/28-00:37:26.109453 7f3e6effd6c0 Delete type=2 #64 2026/05/28-00:37:26.109722 7f3e6effd6c0 Delete type=2 #66 2026/05/28-00:37:26.109828 7f3e6effd6c0 Delete type=2 #68 +2026/05/28-00:48:03.393850 7f3e6effd6c0 Level-0 table #71: started +2026/05/28-00:48:03.411976 7f3e6effd6c0 Level-0 table #71: 1806724 bytes OK +2026/05/28-00:48:03.419030 7f3e6effd6c0 Delete type=0 #67 +2026/05/28-00:52:05.605289 7f3e6effd6c0 Level-0 table #73: started +2026/05/28-00:52:05.629208 7f3e6effd6c0 Level-0 table #73: 1856591 bytes OK +2026/05/28-00:52:05.635297 7f3e6effd6c0 Delete type=0 #70 diff --git a/packs/tables-pnj/MANIFEST-000048 b/packs/tables-pnj/MANIFEST-000048 index 3cc5bd3..25f3c24 100644 Binary files a/packs/tables-pnj/MANIFEST-000048 and b/packs/tables-pnj/MANIFEST-000048 differ diff --git a/scripts/mgt2eSkills.js b/scripts/mgt2eSkills.js index d7c0a1d..e681802 100644 --- a/scripts/mgt2eSkills.js +++ b/scripts/mgt2eSkills.js @@ -112,13 +112,34 @@ export function setSkillLevel(skills, skillFqn, level) { if (!skillId || !skills?.[skillId]) return skills; const numericLevel = Number(level ?? 0); - const skill = foundry.utils.mergeObject(skills[skillId], { trained: numericLevel > 0 || skills[skillId].trained }); + let skill = foundry.utils.deepClone(skills[skillId]); - if (specialityId && skill.specialities?.[specialityId]) { - skill.specialities[specialityId] = foundry.utils.mergeObject(skill.specialities[specialityId], { - value: Math.max(Number(skill.specialities[specialityId].value ?? 0), numericLevel), - }); + // Marquer la compétence comme entraînée si niveau > 0 + skill.trained = numericLevel > 0 || skill.trained; + + if (specialityId) { + // Créer l'objet specialities s'il n'existe pas + if (!skill.specialities) { + skill.specialities = {}; + } + // Créer la spécialité si elle n'existe pas + if (!skill.specialities[specialityId]) { + skill.specialities[specialityId] = { + value: 0, + trained: false, + default: skill.default || null + }; + } + // Appliquer le niveau à la spécialité + skill.specialities[specialityId] = foundry.utils.mergeObject( + skill.specialities[specialityId], + { + value: Math.max(Number(skill.specialities[specialityId].value ?? 0), numericLevel), + trained: true + } + ); } else { + // Compétence sans spécialité skill.value = Math.max(Number(skill.value ?? 0), numericLevel); } diff --git a/scripts/travellerNpcGenerator.js b/scripts/travellerNpcGenerator.js index 10e058e..ff7f04f 100644 --- a/scripts/travellerNpcGenerator.js +++ b/scripts/travellerNpcGenerator.js @@ -58,7 +58,8 @@ const MODULE_ID = 'mgt2-compendium-amiral-denisov'; const SKILL_MAPPING = { // Pilotage - MgT2e a une compétence "pilot" (confirmé par les références) // Corrigé : Small Craft = Petits vaisseaux (pas Aéronef léger) - 'Pilot-Spacecraft': 'pilot.vaisseau_spatial', + // Vaisseaux spatiaux au pluriel (correspond au nom dans mgt2e) + 'Pilot-Spacecraft': 'pilot.vaisseaux_spatiaux', 'Pilot-Small Craft': 'pilot.petits_vaisseaux', 'Pilot': 'pilot', 'Flyer': 'pilot.aeronef_atmospherique',