Mise à jour des compendiums et scripts pour v14

- Mise à jour des manifestes et logs des packs
- Modification des scripts NPC (NpcDialog.js, travellerNpcGenerator.js, npc.js)
- Mise à jour de la description du module pour refléter l'onglet 'PNJ Détaillé'

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-05-28 00:47:11 +02:00
parent 76870c27bf
commit 9453c15d58
87 changed files with 581 additions and 390 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
"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.",
"description": "Module de compendium et d'outils Mongoose Traveller 2e pour FoundryVTT écrit par JdR.Ninja.\nInclut les commandes /commerce, /pnj, /rencontre et /mission pour automatiser le commerce, les PNJ rapides, les rencontres et les contrats aléatoires. La fenêtre /pnj inclut un onglet 'PNJ Détaillé' pour 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",
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000075
MANIFEST-000084
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.659414 7fdf5b7fe6c0 Recovering log #73
2026/05/24-16:50:54.670747 7fdf5b7fe6c0 Delete type=3 #71
2026/05/24-16:50:54.670783 7fdf5b7fe6c0 Delete type=0 #73
2026/05/24-17:30:55.121088 7fdf5affd6c0 Level-0 table #78: started
2026/05/24-17:30:55.125303 7fdf5affd6c0 Level-0 table #78: 9864 bytes OK
2026/05/24-17:30:55.131248 7fdf5affd6c0 Delete type=0 #76
2026/05/24-17:30:55.131416 7fdf5affd6c0 Manual compaction at level-0 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.131452 7fdf5affd6c0 Manual compaction at level-1 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at '!items!yoIqL0RQEnzNVJB6' @ 161 : 1
2026/05/24-17:30:55.131457 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.134712 7fdf5affd6c0 Generated table #79@1: 29 keys, 10438 bytes
2026/05/24-17:30:55.134726 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 10438 bytes
2026/05/24-17:30:55.141487 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.141544 7fdf5affd6c0 Delete type=2 #70
2026/05/24-17:30:55.141639 7fdf5affd6c0 Delete type=2 #78
2026/05/24-17:30:55.187693 7fdf5affd6c0 Manual compaction at level-1 from '!items!yoIqL0RQEnzNVJB6' @ 161 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.414164 7f3e6f7fe6c0 Recovering log #82
2026/05/27-23:11:58.424222 7f3e6f7fe6c0 Delete type=3 #80
2026/05/27-23:11:58.424274 7f3e6f7fe6c0 Delete type=0 #82
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:27:59.998100 7f5a46ffd6c0 Recovering log #68
2026/05/18-20:28:00.055719 7f5a46ffd6c0 Delete type=3 #66
2026/05/18-20:28:00.055824 7f5a46ffd6c0 Delete type=0 #68
2026/05/18-20:29:47.499128 7f5a467fc6c0 Level-0 table #74: started
2026/05/18-20:29:47.499199 7f5a467fc6c0 Level-0 table #74: 0 bytes OK
2026/05/18-20:29:47.505640 7f5a467fc6c0 Delete type=0 #72
2026/05/18-20:29:47.505916 7f5a467fc6c0 Manual compaction at level-0 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.505957 7f5a467fc6c0 Manual compaction at level-1 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.639035 7f3e6f7fe6c0 Recovering log #77
2026/05/27-14:31:25.648169 7f3e6f7fe6c0 Delete type=3 #75
2026/05/27-14:31:25.648196 7f3e6f7fe6c0 Delete type=0 #77
2026/05/27-14:33:21.786747 7f3e6effd6c0 Level-0 table #83: started
2026/05/27-14:33:21.786766 7f3e6effd6c0 Level-0 table #83: 0 bytes OK
2026/05/27-14:33:21.793932 7f3e6effd6c0 Delete type=0 #81
2026/05/27-14:33:21.800554 7f3e6effd6c0 Manual compaction at level-0 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.800579 7f3e6effd6c0 Manual compaction at level-1 from '!folders!673DRfEBYUliGnKJ' @ 72057594037927935 : 1 .. '!items!yoIqL0RQEnzNVJB6' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000174
MANIFEST-000183
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.546518 7fdf5b7fe6c0 Recovering log #172
2026/05/24-16:50:54.556572 7fdf5b7fe6c0 Delete type=3 #170
2026/05/24-16:50:54.556614 7fdf5b7fe6c0 Delete type=0 #172
2026/05/24-17:30:54.977322 7fdf5affd6c0 Level-0 table #177: started
2026/05/24-17:30:54.980526 7fdf5affd6c0 Level-0 table #177: 3210 bytes OK
2026/05/24-17:30:54.986935 7fdf5affd6c0 Delete type=0 #175
2026/05/24-17:30:55.016293 7fdf5affd6c0 Manual compaction at level-0 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.016335 7fdf5affd6c0 Manual compaction at level-1 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at '!items!wpBopoosZiWXjlKD' @ 78 : 1
2026/05/24-17:30:55.016340 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.019483 7fdf5affd6c0 Generated table #178@1: 6 keys, 3210 bytes
2026/05/24-17:30:55.019496 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 3210 bytes
2026/05/24-17:30:55.026070 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.026126 7fdf5affd6c0 Delete type=2 #169
2026/05/24-17:30:55.026250 7fdf5affd6c0 Delete type=2 #177
2026/05/24-17:30:55.052180 7fdf5affd6c0 Manual compaction at level-1 from '!items!wpBopoosZiWXjlKD' @ 78 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.290859 7f3e6f7fe6c0 Recovering log #181
2026/05/27-23:11:58.307573 7f3e6f7fe6c0 Delete type=3 #179
2026/05/27-23:11:58.307626 7f3e6f7fe6c0 Delete type=0 #181
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:27:59.309876 7f5a477fe6c0 Recovering log #167
2026/05/18-20:27:59.371762 7f5a477fe6c0 Delete type=3 #165
2026/05/18-20:27:59.371874 7f5a477fe6c0 Delete type=0 #167
2026/05/18-20:29:47.416279 7f5a467fc6c0 Level-0 table #173: started
2026/05/18-20:29:47.416343 7f5a467fc6c0 Level-0 table #173: 0 bytes OK
2026/05/18-20:29:47.425598 7f5a467fc6c0 Delete type=0 #171
2026/05/18-20:29:47.425873 7f5a467fc6c0 Manual compaction at level-0 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.425920 7f5a467fc6c0 Manual compaction at level-1 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.531736 7f3ebd7ff6c0 Recovering log #176
2026/05/27-14:31:25.541455 7f3ebd7ff6c0 Delete type=3 #174
2026/05/27-14:31:25.541507 7f3ebd7ff6c0 Delete type=0 #176
2026/05/27-14:33:21.722465 7f3e6effd6c0 Level-0 table #182: started
2026/05/27-14:33:21.722495 7f3e6effd6c0 Level-0 table #182: 0 bytes OK
2026/05/27-14:33:21.728923 7f3e6effd6c0 Delete type=0 #180
2026/05/27-14:33:21.735721 7f3e6effd6c0 Manual compaction at level-0 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.735741 7f3e6effd6c0 Manual compaction at level-1 from '!items!8xqChkoKK7i0c9M1' @ 72057594037927935 : 1 .. '!items!wpBopoosZiWXjlKD' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000058
MANIFEST-000067
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.686699 7fdf5bfff6c0 Recovering log #56
2026/05/24-16:50:54.695982 7fdf5bfff6c0 Delete type=3 #54
2026/05/24-16:50:54.696016 7fdf5bfff6c0 Delete type=0 #56
2026/05/24-17:30:55.150957 7fdf5affd6c0 Level-0 table #61: started
2026/05/24-17:30:55.154345 7fdf5affd6c0 Level-0 table #61: 4273 bytes OK
2026/05/24-17:30:55.160772 7fdf5affd6c0 Delete type=0 #59
2026/05/24-17:30:55.187706 7fdf5affd6c0 Manual compaction at level-0 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.210353 7fdf5affd6c0 Manual compaction at level-1 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at '!items!vJInnoigCTJzuY2S' @ 126 : 1
2026/05/24-17:30:55.210359 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.213753 7fdf5affd6c0 Generated table #62@1: 16 keys, 4273 bytes
2026/05/24-17:30:55.213776 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 4273 bytes
2026/05/24-17:30:55.220661 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.220738 7fdf5affd6c0 Delete type=2 #53
2026/05/24-17:30:55.220857 7fdf5affd6c0 Delete type=2 #61
2026/05/24-17:30:55.237555 7fdf5affd6c0 Manual compaction at level-1 from '!items!vJInnoigCTJzuY2S' @ 126 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.442577 7f3e6f7fe6c0 Recovering log #65
2026/05/27-23:11:58.452097 7f3e6f7fe6c0 Delete type=3 #63
2026/05/27-23:11:58.452144 7f3e6f7fe6c0 Delete type=0 #65
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:28:00.170623 7f5a477fe6c0 Recovering log #51
2026/05/18-20:28:00.231017 7f5a477fe6c0 Delete type=3 #49
2026/05/18-20:28:00.231120 7f5a477fe6c0 Delete type=0 #51
2026/05/18-20:29:47.515216 7f5a467fc6c0 Level-0 table #57: started
2026/05/18-20:29:47.515280 7f5a467fc6c0 Level-0 table #57: 0 bytes OK
2026/05/18-20:29:47.522604 7f5a467fc6c0 Delete type=0 #55
2026/05/18-20:29:47.522854 7f5a467fc6c0 Manual compaction at level-0 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.522882 7f5a467fc6c0 Manual compaction at level-1 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.663213 7f3e6f7fe6c0 Recovering log #60
2026/05/27-14:31:25.672282 7f3e6f7fe6c0 Delete type=3 #58
2026/05/27-14:31:25.672315 7f3e6f7fe6c0 Delete type=0 #60
2026/05/27-14:33:21.794049 7f3e6effd6c0 Level-0 table #66: started
2026/05/27-14:33:21.794078 7f3e6effd6c0 Level-0 table #66: 0 bytes OK
2026/05/27-14:33:21.800426 7f3e6effd6c0 Delete type=0 #64
2026/05/27-14:33:21.808266 7f3e6effd6c0 Manual compaction at level-0 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.831733 7f3e6effd6c0 Manual compaction at level-1 from '!items!57vgsVVCy9MRKM2M' @ 72057594037927935 : 1 .. '!items!vJInnoigCTJzuY2S' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000177
MANIFEST-000186
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.559278 7fdf5bfff6c0 Recovering log #175
2026/05/24-16:50:54.569235 7fdf5bfff6c0 Delete type=3 #173
2026/05/24-16:50:54.569273 7fdf5bfff6c0 Delete type=0 #175
2026/05/24-17:30:54.996524 7fdf5affd6c0 Level-0 table #180: started
2026/05/24-17:30:55.000122 7fdf5affd6c0 Level-0 table #180: 30255 bytes OK
2026/05/24-17:30:55.006363 7fdf5affd6c0 Delete type=0 #178
2026/05/24-17:30:55.016315 7fdf5affd6c0 Manual compaction at level-0 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.041863 7fdf5affd6c0 Manual compaction at level-1 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at '!items!yqjKyTCgpclCuHyK' @ 544 : 1
2026/05/24-17:30:55.041874 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.045796 7fdf5affd6c0 Generated table #181@1: 39 keys, 30255 bytes
2026/05/24-17:30:55.045823 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 30255 bytes
2026/05/24-17:30:55.051904 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.051997 7fdf5affd6c0 Delete type=2 #172
2026/05/24-17:30:55.052110 7fdf5affd6c0 Delete type=2 #180
2026/05/24-17:30:55.062783 7fdf5affd6c0 Manual compaction at level-1 from '!items!yqjKyTCgpclCuHyK' @ 544 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.309946 7f3ebcffe6c0 Recovering log #184
2026/05/27-23:11:58.320486 7f3ebcffe6c0 Delete type=3 #182
2026/05/27-23:11:58.320525 7f3ebcffe6c0 Delete type=0 #184
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:27:59.380990 7f5a47fff6c0 Recovering log #170
2026/05/18-20:27:59.439837 7f5a47fff6c0 Delete type=3 #168
2026/05/18-20:27:59.439975 7f5a47fff6c0 Delete type=0 #170
2026/05/18-20:29:47.426912 7f5a467fc6c0 Level-0 table #176: started
2026/05/18-20:29:47.426974 7f5a467fc6c0 Level-0 table #176: 0 bytes OK
2026/05/18-20:29:47.437378 7f5a467fc6c0 Delete type=0 #174
2026/05/18-20:29:47.437633 7f5a467fc6c0 Manual compaction at level-0 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.437658 7f5a467fc6c0 Manual compaction at level-1 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.544106 7f3ebd7ff6c0 Recovering log #179
2026/05/27-14:31:25.554048 7f3ebd7ff6c0 Delete type=3 #177
2026/05/27-14:31:25.554071 7f3ebd7ff6c0 Delete type=0 #179
2026/05/27-14:33:21.729016 7f3e6effd6c0 Level-0 table #185: started
2026/05/27-14:33:21.729040 7f3e6effd6c0 Level-0 table #185: 0 bytes OK
2026/05/27-14:33:21.735577 7f3e6effd6c0 Delete type=0 #183
2026/05/27-14:33:21.735798 7f3e6effd6c0 Manual compaction at level-0 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.735816 7f3e6effd6c0 Manual compaction at level-1 from '!items!04MdBSzwkYWUMJBC' @ 72057594037927935 : 1 .. '!items!yqjKyTCgpclCuHyK' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000112
MANIFEST-000120
+3 -7
View File
@@ -1,7 +1,3 @@
2026/05/24-16:50:54.623242 7fdf5bfff6c0 Recovering log #110
2026/05/24-16:50:54.633193 7fdf5bfff6c0 Delete type=3 #108
2026/05/24-16:50:54.633252 7fdf5bfff6c0 Delete type=0 #110
2026/05/24-17:30:55.081463 7fdf5affd6c0 Level-0 table #115: started
2026/05/24-17:30:55.081487 7fdf5affd6c0 Level-0 table #115: 0 bytes OK
2026/05/24-17:30:55.087560 7fdf5affd6c0 Delete type=0 #113
2026/05/24-17:30:55.097957 7fdf5affd6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.375862 7f3e6ffff6c0 Recovering log #118
2026/05/27-23:11:58.385912 7f3e6ffff6c0 Delete type=3 #116
2026/05/27-23:11:58.385947 7f3e6ffff6c0 Delete type=0 #118
+7 -7
View File
@@ -1,7 +1,7 @@
2026/05/18-20:27:59.766699 7f5a47fff6c0 Recovering log #106
2026/05/18-20:27:59.824574 7f5a47fff6c0 Delete type=3 #104
2026/05/18-20:27:59.824666 7f5a47fff6c0 Delete type=0 #106
2026/05/18-20:29:47.472932 7f5a467fc6c0 Level-0 table #111: started
2026/05/18-20:29:47.473002 7f5a467fc6c0 Level-0 table #111: 0 bytes OK
2026/05/18-20:29:47.479740 7f5a467fc6c0 Delete type=0 #109
2026/05/18-20:29:47.479998 7f5a467fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.604521 7f3ebd7ff6c0 Recovering log #114
2026/05/27-14:31:25.613630 7f3ebd7ff6c0 Delete type=3 #112
2026/05/27-14:31:25.613651 7f3ebd7ff6c0 Delete type=0 #114
2026/05/27-14:33:21.767043 7f3e6effd6c0 Level-0 table #119: started
2026/05/27-14:33:21.767067 7f3e6effd6c0 Level-0 table #119: 0 bytes OK
2026/05/27-14:33:21.773608 7f3e6effd6c0 Delete type=0 #117
2026/05/27-14:33:21.780095 7f3e6effd6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000119
MANIFEST-000128
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.597446 7fdf5b7fe6c0 Recovering log #117
2026/05/24-16:50:54.607335 7fdf5b7fe6c0 Delete type=3 #115
2026/05/24-16:50:54.607379 7fdf5b7fe6c0 Delete type=0 #117
2026/05/24-17:30:55.052370 7fdf5affd6c0 Level-0 table #122: started
2026/05/24-17:30:55.056355 7fdf5affd6c0 Level-0 table #122: 20248 bytes OK
2026/05/24-17:30:55.062721 7fdf5affd6c0 Delete type=0 #120
2026/05/24-17:30:55.081449 7fdf5affd6c0 Manual compaction at level-0 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.087647 7fdf5affd6c0 Manual compaction at level-1 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at '!items!zRJfxioYBRq4iSBR' @ 258 : 1
2026/05/24-17:30:55.087653 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.091676 7fdf5affd6c0 Generated table #123@1: 42 keys, 19863 bytes
2026/05/24-17:30:55.091690 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 19863 bytes
2026/05/24-17:30:55.097740 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.097812 7fdf5affd6c0 Delete type=2 #114
2026/05/24-17:30:55.097896 7fdf5affd6c0 Delete type=2 #122
2026/05/24-17:30:55.104450 7fdf5affd6c0 Manual compaction at level-1 from '!items!zRJfxioYBRq4iSBR' @ 258 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.349736 7f3e6ffff6c0 Recovering log #126
2026/05/27-23:11:58.359183 7f3e6ffff6c0 Delete type=3 #124
2026/05/27-23:11:58.359211 7f3e6ffff6c0 Delete type=0 #126
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:27:59.596317 7f5a47fff6c0 Recovering log #112
2026/05/18-20:27:59.649784 7f5a47fff6c0 Delete type=3 #110
2026/05/18-20:27:59.649914 7f5a47fff6c0 Delete type=0 #112
2026/05/18-20:29:47.456954 7f5a467fc6c0 Level-0 table #118: started
2026/05/18-20:29:47.457019 7f5a467fc6c0 Level-0 table #118: 0 bytes OK
2026/05/18-20:29:47.463638 7f5a467fc6c0 Delete type=0 #116
2026/05/18-20:29:47.463868 7f5a467fc6c0 Manual compaction at level-0 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.463950 7f5a467fc6c0 Manual compaction at level-1 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.580201 7f3ebd7ff6c0 Recovering log #121
2026/05/27-14:31:25.589450 7f3ebd7ff6c0 Delete type=3 #119
2026/05/27-14:31:25.589494 7f3ebd7ff6c0 Delete type=0 #121
2026/05/27-14:33:21.747566 7f3e6effd6c0 Level-0 table #127: started
2026/05/27-14:33:21.747585 7f3e6effd6c0 Level-0 table #127: 0 bytes OK
2026/05/27-14:33:21.754474 7f3e6effd6c0 Delete type=0 #125
2026/05/27-14:33:21.760899 7f3e6effd6c0 Manual compaction at level-0 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.760915 7f3e6effd6c0 Manual compaction at level-1 from '!folders!8swFcTr6RH7BnGiu' @ 72057594037927935 : 1 .. '!items!zRJfxioYBRq4iSBR' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000112
MANIFEST-000120
+3 -7
View File
@@ -1,7 +1,3 @@
2026/05/24-16:50:54.634756 7fdfa8dfe6c0 Recovering log #110
2026/05/24-16:50:54.645375 7fdfa8dfe6c0 Delete type=3 #108
2026/05/24-16:50:54.645440 7fdfa8dfe6c0 Delete type=0 #110
2026/05/24-17:30:55.097965 7fdf5affd6c0 Level-0 table #115: started
2026/05/24-17:30:55.097985 7fdf5affd6c0 Level-0 table #115: 0 bytes OK
2026/05/24-17:30:55.104346 7fdf5affd6c0 Delete type=0 #113
2026/05/24-17:30:55.131378 7fdf5affd6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.388239 7f3e6f7fe6c0 Recovering log #118
2026/05/27-23:11:58.398684 7f3e6f7fe6c0 Delete type=3 #116
2026/05/27-23:11:58.398724 7f3e6f7fe6c0 Delete type=0 #118
+7 -7
View File
@@ -1,7 +1,7 @@
2026/05/18-20:27:59.838862 7f5a46ffd6c0 Recovering log #106
2026/05/18-20:27:59.893943 7f5a46ffd6c0 Delete type=3 #104
2026/05/18-20:27:59.894068 7f5a46ffd6c0 Delete type=0 #106
2026/05/18-20:29:47.480953 7f5a467fc6c0 Level-0 table #111: started
2026/05/18-20:29:47.481012 7f5a467fc6c0 Level-0 table #111: 0 bytes OK
2026/05/18-20:29:47.487588 7f5a467fc6c0 Delete type=0 #109
2026/05/18-20:29:47.487817 7f5a467fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.615623 7f3ebd7ff6c0 Recovering log #114
2026/05/27-14:31:25.625348 7f3ebd7ff6c0 Delete type=3 #112
2026/05/27-14:31:25.625369 7f3ebd7ff6c0 Delete type=0 #114
2026/05/27-14:33:21.761003 7f3e6effd6c0 Level-0 table #119: started
2026/05/27-14:33:21.761022 7f3e6effd6c0 Level-0 table #119: 0 bytes OK
2026/05/27-14:33:21.766953 7f3e6effd6c0 Delete type=0 #117
2026/05/27-14:33:21.780083 7f3e6effd6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000093
MANIFEST-000101
+3 -8
View File
@@ -1,8 +1,3 @@
2026/05/24-16:50:54.647193 7fdf5b7fe6c0 Recovering log #91
2026/05/24-16:50:54.656827 7fdf5b7fe6c0 Delete type=3 #89
2026/05/24-16:50:54.656870 7fdf5b7fe6c0 Delete type=0 #91
2026/05/24-17:30:55.114778 7fdf5affd6c0 Level-0 table #96: started
2026/05/24-17:30:55.114807 7fdf5affd6c0 Level-0 table #96: 0 bytes OK
2026/05/24-17:30:55.121001 7fdf5affd6c0 Delete type=0 #94
2026/05/24-17:30:55.131407 7fdf5affd6c0 Manual compaction at level-0 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.131437 7fdf5affd6c0 Manual compaction at level-1 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.400455 7f3ebd7ff6c0 Recovering log #99
2026/05/27-23:11:58.410587 7f3ebd7ff6c0 Delete type=3 #97
2026/05/27-23:11:58.410645 7f3ebd7ff6c0 Delete type=0 #99
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:27:59.909714 7f5a477fe6c0 Recovering log #87
2026/05/18-20:27:59.963841 7f5a477fe6c0 Delete type=3 #85
2026/05/18-20:27:59.963963 7f5a477fe6c0 Delete type=0 #87
2026/05/18-20:29:47.488790 7f5a467fc6c0 Level-0 table #92: started
2026/05/18-20:29:47.488852 7f5a467fc6c0 Level-0 table #92: 0 bytes OK
2026/05/18-20:29:47.496720 7f5a467fc6c0 Delete type=0 #90
2026/05/18-20:29:47.497943 7f5a467fc6c0 Manual compaction at level-0 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.498034 7f5a467fc6c0 Manual compaction at level-1 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.627132 7f3ebd7ff6c0 Recovering log #95
2026/05/27-14:31:25.636967 7f3ebd7ff6c0 Delete type=3 #93
2026/05/27-14:31:25.637002 7f3ebd7ff6c0 Delete type=0 #95
2026/05/27-14:33:21.773684 7f3e6effd6c0 Level-0 table #100: started
2026/05/27-14:33:21.773700 7f3e6effd6c0 Level-0 table #100: 0 bytes OK
2026/05/27-14:33:21.779958 7f3e6effd6c0 Delete type=0 #98
2026/05/27-14:33:21.786739 7f3e6effd6c0 Manual compaction at level-0 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.800533 7f3e6effd6c0 Manual compaction at level-1 from '!journal!26ZqV9BvS47hrLmV' @ 72057594037927935 : 1 .. '!journal.pages!26ZqV9BvS47hrLmV.ZS4936SEQUT9IA8i' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000119
MANIFEST-000128
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.573746 7fdf5bfff6c0 Recovering log #117
2026/05/24-16:50:54.583876 7fdf5bfff6c0 Delete type=3 #115
2026/05/24-16:50:54.583933 7fdf5bfff6c0 Delete type=0 #117
2026/05/24-17:30:55.026316 7fdf5affd6c0 Level-0 table #122: started
2026/05/24-17:30:55.029368 7fdf5affd6c0 Level-0 table #122: 1988 bytes OK
2026/05/24-17:30:55.035351 7fdf5affd6c0 Delete type=0 #120
2026/05/24-17:30:55.052192 7fdf5affd6c0 Manual compaction at level-0 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.062793 7fdf5affd6c0 Manual compaction at level-1 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at '!items!yleVHgRqGoYLvzxT' @ 56 : 1
2026/05/24-17:30:55.062796 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.065855 7fdf5affd6c0 Generated table #123@1: 8 keys, 1988 bytes
2026/05/24-17:30:55.065865 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 1988 bytes
2026/05/24-17:30:55.071780 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.071820 7fdf5affd6c0 Delete type=2 #114
2026/05/24-17:30:55.071877 7fdf5affd6c0 Delete type=2 #122
2026/05/24-17:30:55.087630 7fdf5affd6c0 Manual compaction at level-1 from '!items!yleVHgRqGoYLvzxT' @ 56 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.323722 7f3e6f7fe6c0 Recovering log #126
2026/05/27-23:11:58.334612 7f3e6f7fe6c0 Delete type=3 #124
2026/05/27-23:11:58.334668 7f3e6f7fe6c0 Delete type=0 #126
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:27:59.461881 7f5a46ffd6c0 Recovering log #112
2026/05/18-20:27:59.517849 7f5a46ffd6c0 Delete type=3 #110
2026/05/18-20:27:59.517983 7f5a46ffd6c0 Delete type=0 #112
2026/05/18-20:29:47.438640 7f5a467fc6c0 Level-0 table #118: started
2026/05/18-20:29:47.438693 7f5a467fc6c0 Level-0 table #118: 0 bytes OK
2026/05/18-20:29:47.445247 7f5a467fc6c0 Delete type=0 #116
2026/05/18-20:29:47.445955 7f5a467fc6c0 Manual compaction at level-0 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.446012 7f5a467fc6c0 Manual compaction at level-1 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.557570 7f3ebd7ff6c0 Recovering log #121
2026/05/27-14:31:25.567130 7f3ebd7ff6c0 Delete type=3 #119
2026/05/27-14:31:25.567150 7f3ebd7ff6c0 Delete type=0 #121
2026/05/27-14:33:21.735841 7f3e6effd6c0 Level-0 table #127: started
2026/05/27-14:33:21.735866 7f3e6effd6c0 Level-0 table #127: 0 bytes OK
2026/05/27-14:33:21.741712 7f3e6effd6c0 Delete type=0 #125
2026/05/27-14:33:21.760883 7f3e6effd6c0 Manual compaction at level-0 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.760906 7f3e6effd6c0 Manual compaction at level-1 from '!items!QHovFMj93BC7bqBu' @ 72057594037927935 : 1 .. '!items!yleVHgRqGoYLvzxT' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000112
MANIFEST-000120
+3 -7
View File
@@ -1,7 +1,3 @@
2026/05/24-16:50:54.586100 7fdfa8dfe6c0 Recovering log #110
2026/05/24-16:50:54.595631 7fdfa8dfe6c0 Delete type=3 #108
2026/05/24-16:50:54.595694 7fdfa8dfe6c0 Delete type=0 #110
2026/05/24-17:30:55.035470 7fdf5affd6c0 Level-0 table #115: started
2026/05/24-17:30:55.035483 7fdf5affd6c0 Level-0 table #115: 0 bytes OK
2026/05/24-17:30:55.041734 7fdf5affd6c0 Delete type=0 #113
2026/05/24-17:30:55.052200 7fdf5affd6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.337311 7f3ebcffe6c0 Recovering log #118
2026/05/27-23:11:58.347349 7f3ebcffe6c0 Delete type=3 #116
2026/05/27-23:11:58.347392 7f3ebcffe6c0 Delete type=0 #118
+7 -7
View File
@@ -1,7 +1,7 @@
2026/05/18-20:27:59.526598 7f5a94bff6c0 Recovering log #106
2026/05/18-20:27:59.589070 7f5a94bff6c0 Delete type=3 #104
2026/05/18-20:27:59.589252 7f5a94bff6c0 Delete type=0 #106
2026/05/18-20:29:47.448116 7f5a467fc6c0 Level-0 table #111: started
2026/05/18-20:29:47.448187 7f5a467fc6c0 Level-0 table #111: 0 bytes OK
2026/05/18-20:29:47.455433 7f5a467fc6c0 Delete type=0 #109
2026/05/18-20:29:47.455684 7f5a467fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.569405 7f3ebd7ff6c0 Recovering log #114
2026/05/27-14:31:25.578632 7f3ebd7ff6c0 Delete type=3 #112
2026/05/27-14:31:25.578657 7f3ebd7ff6c0 Delete type=0 #114
2026/05/27-14:33:21.741780 7f3e6effd6c0 Level-0 table #119: started
2026/05/27-14:33:21.741799 7f3e6effd6c0 Level-0 table #119: 0 bytes OK
2026/05/27-14:33:21.747507 7f3e6effd6c0 Delete type=0 #117
2026/05/27-14:33:21.760892 7f3e6effd6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000119
MANIFEST-000128
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.610807 7fdfa95ff6c0 Recovering log #117
2026/05/24-16:50:54.620344 7fdfa95ff6c0 Delete type=3 #115
2026/05/24-16:50:54.620394 7fdfa95ff6c0 Delete type=0 #117
2026/05/24-17:30:55.071908 7fdf5affd6c0 Level-0 table #122: started
2026/05/24-17:30:55.075519 7fdf5affd6c0 Level-0 table #122: 5396 bytes OK
2026/05/24-17:30:55.081331 7fdf5affd6c0 Delete type=0 #120
2026/05/24-17:30:55.097948 7fdf5affd6c0 Manual compaction at level-0 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.104470 7fdf5affd6c0 Manual compaction at level-1 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at '!items!yFvuDyV00NdojxGt' @ 93 : 1
2026/05/24-17:30:55.104477 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.108502 7fdf5affd6c0 Generated table #123@1: 15 keys, 5574 bytes
2026/05/24-17:30:55.108520 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 5574 bytes
2026/05/24-17:30:55.114469 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.114575 7fdf5affd6c0 Delete type=2 #114
2026/05/24-17:30:55.114702 7fdf5affd6c0 Delete type=2 #122
2026/05/24-17:30:55.131396 7fdf5affd6c0 Manual compaction at level-1 from '!items!yFvuDyV00NdojxGt' @ 93 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.362926 7f3ebd7ff6c0 Recovering log #126
2026/05/27-23:11:58.372894 7f3ebd7ff6c0 Delete type=3 #124
2026/05/27-23:11:58.372934 7f3ebd7ff6c0 Delete type=0 #126
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:27:59.682456 7f5a46ffd6c0 Recovering log #112
2026/05/18-20:27:59.750017 7f5a46ffd6c0 Delete type=3 #110
2026/05/18-20:27:59.750123 7f5a46ffd6c0 Delete type=0 #112
2026/05/18-20:29:47.464929 7f5a467fc6c0 Level-0 table #118: started
2026/05/18-20:29:47.465002 7f5a467fc6c0 Level-0 table #118: 0 bytes OK
2026/05/18-20:29:47.471758 7f5a467fc6c0 Delete type=0 #116
2026/05/18-20:29:47.472004 7f5a467fc6c0 Manual compaction at level-0 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.472035 7f5a467fc6c0 Manual compaction at level-1 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.591969 7f3ebd7ff6c0 Recovering log #121
2026/05/27-14:31:25.601963 7f3ebd7ff6c0 Delete type=3 #119
2026/05/27-14:31:25.601983 7f3ebd7ff6c0 Delete type=0 #121
2026/05/27-14:33:21.754559 7f3e6effd6c0 Level-0 table #127: started
2026/05/27-14:33:21.754583 7f3e6effd6c0 Level-0 table #127: 0 bytes OK
2026/05/27-14:33:21.760810 7f3e6effd6c0 Delete type=0 #125
2026/05/27-14:33:21.760994 7f3e6effd6c0 Manual compaction at level-0 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.773676 7f3e6effd6c0 Manual compaction at level-1 from '!folders!qrqRBmTP6UuS30DF' @ 72057594037927935 : 1 .. '!items!yFvuDyV00NdojxGt' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000021
MANIFEST-000048
+48 -50
View File
@@ -1,50 +1,48 @@
2026/05/24-16:50:54.697724 7fdfa8dfe6c0 Recovering log #18
2026/05/24-16:50:54.707598 7fdfa8dfe6c0 Delete type=3 #16
2026/05/24-16:50:54.707634 7fdfa8dfe6c0 Delete type=0 #18
2026/05/24-17:00:32.390913 7fdf5affd6c0 Level-0 table #24: started
2026/05/24-17:00:32.409568 7fdf5affd6c0 Level-0 table #24: 1225651 bytes OK
2026/05/24-17:00:32.416341 7fdf5affd6c0 Delete type=0 #22
2026/05/24-17:03:56.805332 7fdf5affd6c0 Level-0 table #26: started
2026/05/24-17:03:56.824851 7fdf5affd6c0 Level-0 table #26: 1099794 bytes OK
2026/05/24-17:03:56.831981 7fdf5affd6c0 Delete type=0 #23
2026/05/24-17:12:00.516549 7fdf5affd6c0 Level-0 table #28: started
2026/05/24-17:12:00.550743 7fdf5affd6c0 Level-0 table #28: 1268131 bytes OK
2026/05/24-17:12:00.582730 7fdf5affd6c0 Delete type=0 #25
2026/05/24-17:16:09.186372 7fdf5affd6c0 Level-0 table #30: started
2026/05/24-17:16:09.219830 7fdf5affd6c0 Level-0 table #30: 1432074 bytes OK
2026/05/24-17:16:09.258561 7fdf5affd6c0 Delete type=0 #27
2026/05/24-17:18:30.349891 7fdf5affd6c0 Level-0 table #32: started
2026/05/24-17:18:30.379065 7fdf5affd6c0 Level-0 table #32: 1608171 bytes OK
2026/05/24-17:18:30.388404 7fdf5affd6c0 Delete type=0 #29
2026/05/24-17:18:30.388776 7fdf5affd6c0 Compacting 4@0 + 1@1 files
2026/05/24-17:18:30.411581 7fdf5affd6c0 Generated table #33@0: 6650 keys, 986248 bytes
2026/05/24-17:18:30.411611 7fdf5affd6c0 Compacted 4@0 + 1@1 files => 986248 bytes
2026/05/24-17:18:30.420963 7fdf5affd6c0 compacted to: files[ 0 1 1 0 0 0 0 ]
2026/05/24-17:18:30.421191 7fdf5affd6c0 Delete type=2 #24
2026/05/24-17:18:30.421480 7fdf5affd6c0 Delete type=2 #26
2026/05/24-17:18:30.421601 7fdf5affd6c0 Delete type=2 #28
2026/05/24-17:18:30.421786 7fdf5affd6c0 Delete type=2 #30
2026/05/24-17:18:30.422133 7fdf5affd6c0 Delete type=2 #32
2026/05/24-17:21:12.979159 7fdf5affd6c0 Level-0 table #35: started
2026/05/24-17:21:13.003011 7fdf5affd6c0 Level-0 table #35: 1764850 bytes OK
2026/05/24-17:21:13.009270 7fdf5affd6c0 Delete type=0 #31
2026/05/24-17:30:55.160858 7fdf5affd6c0 Level-0 table #37: started
2026/05/24-17:30:55.180790 7fdf5affd6c0 Level-0 table #37: 1929143 bytes OK
2026/05/24-17:30:55.187168 7fdf5affd6c0 Delete type=0 #34
2026/05/24-17:30:55.187713 7fdf5affd6c0 Manual compaction at level-0 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 70890 : 1
2026/05/24-17:30:55.187715 7fdf5affd6c0 Compacting 2@0 + 1@1 files
2026/05/24-17:30:55.203256 7fdf5affd6c0 Generated table #38@0: 7978 keys, 1186513 bytes
2026/05/24-17:30:55.203267 7fdf5affd6c0 Compacted 2@0 + 1@1 files => 1186513 bytes
2026/05/24-17:30:55.209485 7fdf5affd6c0 compacted to: files[ 0 1 1 0 0 0 0 ]
2026/05/24-17:30:55.209584 7fdf5affd6c0 Delete type=2 #33
2026/05/24-17:30:55.209874 7fdf5affd6c0 Delete type=2 #35
2026/05/24-17:30:55.210245 7fdf5affd6c0 Delete type=2 #37
2026/05/24-17:30:55.237542 7fdf5affd6c0 Manual compaction at level-0 from '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 70890 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.237576 7fdf5affd6c0 Manual compaction at level-1 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 92964 : 1
2026/05/24-17:30:55.237582 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.258486 7fdf5affd6c0 Generated table #39@1: 7978 keys, 1186513 bytes
2026/05/24-17:30:55.258511 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 1186513 bytes
2026/05/24-17:30:55.264533 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.264684 7fdf5affd6c0 Delete type=2 #20
2026/05/24-17:30:55.264949 7fdf5affd6c0 Delete type=2 #38
2026/05/24-17:30:55.283063 7fdf5affd6c0 Manual compaction at level-1 from '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 92964 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.454344 7f3ebcffe6c0 Recovering log #44
2026/05/27-23:11:58.463285 7f3ebcffe6c0 Delete type=3 #40
2026/05/27-23:11:58.463300 7f3ebcffe6c0 Delete type=0 #44
2026/05/27-23:37:44.587645 7f3e6effd6c0 Level-0 table #51: started
2026/05/27-23:37:44.605872 7f3e6effd6c0 Level-0 table #51: 1343154 bytes OK
2026/05/27-23:37:44.612030 7f3e6effd6c0 Delete type=0 #49
2026/05/28-00:04:39.168329 7f3e6effd6c0 Level-0 table #53: started
2026/05/28-00:04:39.185209 7f3e6effd6c0 Level-0 table #53: 1393674 bytes OK
2026/05/28-00:04:39.191603 7f3e6effd6c0 Delete type=0 #50
2026/05/28-00:18:55.273857 7f3e6effd6c0 Level-0 table #55: started
2026/05/28-00:18:55.294346 7f3e6effd6c0 Level-0 table #55: 1451564 bytes OK
2026/05/28-00:18:55.300308 7f3e6effd6c0 Delete type=0 #52
2026/05/28-00:20:15.021651 7f3e6effd6c0 Level-0 table #57: started
2026/05/28-00:20:15.040525 7f3e6effd6c0 Level-0 table #57: 1496314 bytes OK
2026/05/28-00:20:15.046886 7f3e6effd6c0 Delete type=0 #54
2026/05/28-00:20:43.720521 7f3e6effd6c0 Level-0 table #59: started
2026/05/28-00:20:43.742455 7f3e6effd6c0 Level-0 table #59: 1546947 bytes OK
2026/05/28-00:20:43.748835 7f3e6effd6c0 Delete type=0 #56
2026/05/28-00:20:43.749387 7f3e6effd6c0 Compacting 4@0 + 1@1 files
2026/05/28-00:20:43.771709 7f3e6effd6c0 Generated table #60@0: 10302 keys, 1546947 bytes
2026/05/28-00:20:43.771721 7f3e6effd6c0 Compacted 4@0 + 1@1 files => 1546947 bytes
2026/05/28-00:20:43.777946 7f3e6effd6c0 compacted to: files[ 0 1 1 0 0 0 0 ]
2026/05/28-00:20:43.778171 7f3e6effd6c0 Delete type=2 #51
2026/05/28-00:20:43.778444 7f3e6effd6c0 Delete type=2 #53
2026/05/28-00:20:43.778777 7f3e6effd6c0 Delete type=2 #55
2026/05/28-00:20:43.778977 7f3e6effd6c0 Delete type=2 #57
2026/05/28-00:20:43.779160 7f3e6effd6c0 Delete type=2 #59
2026/05/28-00:21:51.457842 7f3e6effd6c0 Level-0 table #62: started
2026/05/28-00:21:51.479532 7f3e6effd6c0 Level-0 table #62: 1604425 bytes OK
2026/05/28-00:21:51.485724 7f3e6effd6c0 Delete type=0 #58
2026/05/28-00:30:27.802783 7f3e6effd6c0 Level-0 table #64: started
2026/05/28-00:30:27.823947 7f3e6effd6c0 Level-0 table #64: 1651065 bytes OK
2026/05/28-00:30:27.829721 7f3e6effd6c0 Delete type=0 #61
2026/05/28-00:35:01.919877 7f3e6effd6c0 Level-0 table #66: started
2026/05/28-00:35:01.987012 7f3e6effd6c0 Level-0 table #66: 1703060 bytes OK
2026/05/28-00:35:02.043369 7f3e6effd6c0 Delete type=0 #63
2026/05/28-00:37:26.052331 7f3e6effd6c0 Level-0 table #68: started
2026/05/28-00:37:26.076959 7f3e6effd6c0 Level-0 table #68: 1753179 bytes OK
2026/05/28-00:37:26.083119 7f3e6effd6c0 Delete type=0 #65
2026/05/28-00:37:26.083369 7f3e6effd6c0 Compacting 4@0 + 1@1 files
2026/05/28-00:37:26.103213 7f3e6effd6c0 Generated table #69@0: 11630 keys, 1753179 bytes
2026/05/28-00:37:26.103227 7f3e6effd6c0 Compacted 4@0 + 1@1 files => 1753179 bytes
2026/05/28-00:37:26.109075 7f3e6effd6c0 compacted to: files[ 0 1 1 0 0 0 0 ]
2026/05/28-00:37:26.109152 7f3e6effd6c0 Delete type=2 #60
2026/05/28-00:37:26.109336 7f3e6effd6c0 Delete type=2 #62
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
+25 -15
View File
@@ -1,15 +1,25 @@
2026/05/18-20:28:00.247967 7f5a94bff6c0 Recovering log #13
2026/05/18-20:28:00.322431 7f5a94bff6c0 Delete type=3 #11
2026/05/18-20:28:00.322531 7f5a94bff6c0 Delete type=0 #13
2026/05/18-20:29:47.524056 7f5a467fc6c0 Level-0 table #19: started
2026/05/18-20:29:47.536717 7f5a467fc6c0 Level-0 table #19: 417426 bytes OK
2026/05/18-20:29:47.544323 7f5a467fc6c0 Delete type=0 #17
2026/05/18-20:29:47.545004 7f5a467fc6c0 Manual compaction at level-0 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.545055 7f5a467fc6c0 Manual compaction at level-1 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 12474 : 1
2026/05/18-20:29:47.545064 7f5a467fc6c0 Compacting 1@1 + 1@2 files
2026/05/18-20:29:47.560513 7f5a467fc6c0 Generated table #20@1: 2998 keys, 417426 bytes
2026/05/18-20:29:47.560554 7f5a467fc6c0 Compacted 1@1 + 1@2 files => 417426 bytes
2026/05/18-20:29:47.567200 7f5a467fc6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/18-20:29:47.567433 7f5a467fc6c0 Delete type=2 #15
2026/05/18-20:29:47.567841 7f5a467fc6c0 Delete type=2 #19
2026/05/18-20:29:47.568160 7f5a467fc6c0 Manual compaction at level-1 from '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 12474 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.674162 7f3e6f7fe6c0 Recovering log #36
2026/05/27-14:31:25.684284 7f3e6f7fe6c0 Delete type=3 #21
2026/05/27-14:31:25.684327 7f3e6f7fe6c0 Delete type=0 #36
2026/05/27-14:32:13.276652 7f3e6effd6c0 Level-0 table #43: started
2026/05/27-14:32:13.292995 7f3e6effd6c0 Level-0 table #43: 1244894 bytes OK
2026/05/27-14:32:13.298790 7f3e6effd6c0 Delete type=0 #41
2026/05/27-14:33:21.808275 7f3e6effd6c0 Level-0 table #45: started
2026/05/27-14:33:21.824612 7f3e6effd6c0 Level-0 table #45: 1294793 bytes OK
2026/05/27-14:33:21.831380 7f3e6effd6c0 Delete type=0 #42
2026/05/27-14:33:21.838976 7f3e6effd6c0 Manual compaction at level-0 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 109340 : 1
2026/05/27-14:33:21.838980 7f3e6effd6c0 Compacting 1@0 + 1@1 files
2026/05/27-14:33:21.852317 7f3e6effd6c0 Generated table #46@0: 8642 keys, 1294793 bytes
2026/05/27-14:33:21.852331 7f3e6effd6c0 Compacted 1@0 + 1@1 files => 1294793 bytes
2026/05/27-14:33:21.859689 7f3e6effd6c0 compacted to: files[ 0 1 1 0 0 0 0 ]
2026/05/27-14:33:21.859935 7f3e6effd6c0 Delete type=2 #43
2026/05/27-14:33:21.860058 7f3e6effd6c0 Delete type=2 #45
2026/05/27-14:33:21.877111 7f3e6effd6c0 Manual compaction at level-0 from '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 109340 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.877144 7f3e6effd6c0 Manual compaction at level-1 from '!tables!BbXMbmHKcLJrBCmk' @ 72057594037927935 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 109340 : 1
2026/05/27-14:33:21.877150 7f3e6effd6c0 Compacting 1@1 + 1@2 files
2026/05/27-14:33:21.895679 7f3e6effd6c0 Generated table #47@1: 8642 keys, 1294793 bytes
2026/05/27-14:33:21.895699 7f3e6effd6c0 Compacted 1@1 + 1@2 files => 1294793 bytes
2026/05/27-14:33:21.901922 7f3e6effd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/27-14:33:21.902059 7f3e6effd6c0 Delete type=2 #39
2026/05/27-14:33:21.902514 7f3e6effd6c0 Delete type=2 #46
2026/05/27-14:33:21.908609 7f3e6effd6c0 Manual compaction at level-1 from '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 109340 : 1 .. '!tables.results!xe7x4qufBpzLaEby.zyJ49IY9JAmeIucJ' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000065
MANIFEST-000074
+3 -15
View File
@@ -1,15 +1,3 @@
2026/05/24-16:50:54.673462 7fdfa95ff6c0 Recovering log #63
2026/05/24-16:50:54.683865 7fdfa95ff6c0 Delete type=3 #61
2026/05/24-16:50:54.683923 7fdfa95ff6c0 Delete type=0 #63
2026/05/24-17:30:55.141699 7fdf5affd6c0 Level-0 table #68: started
2026/05/24-17:30:55.144973 7fdf5affd6c0 Level-0 table #68: 18651 bytes OK
2026/05/24-17:30:55.150867 7fdf5affd6c0 Delete type=0 #66
2026/05/24-17:30:55.187701 7fdf5affd6c0 Manual compaction at level-0 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
2026/05/24-17:30:55.227041 7fdf5affd6c0 Manual compaction at level-1 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at '!items!xFUyR7XECD8QJcIw' @ 231 : 1
2026/05/24-17:30:55.227053 7fdf5affd6c0 Compacting 1@1 + 1@2 files
2026/05/24-17:30:55.230678 7fdf5affd6c0 Generated table #69@1: 33 keys, 18651 bytes
2026/05/24-17:30:55.230696 7fdf5affd6c0 Compacted 1@1 + 1@2 files => 18651 bytes
2026/05/24-17:30:55.237297 7fdf5affd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2026/05/24-17:30:55.237359 7fdf5affd6c0 Delete type=2 #60
2026/05/24-17:30:55.237471 7fdf5affd6c0 Delete type=2 #68
2026/05/24-17:30:55.265203 7fdf5affd6c0 Manual compaction at level-1 from '!items!xFUyR7XECD8QJcIw' @ 231 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
2026/05/27-23:11:58.427900 7f3ebd7ff6c0 Recovering log #72
2026/05/27-23:11:58.438233 7f3ebd7ff6c0 Delete type=3 #70
2026/05/27-23:11:58.438292 7f3ebd7ff6c0 Delete type=0 #72
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/18-20:28:00.088714 7f5a94bff6c0 Recovering log #58
2026/05/18-20:28:00.147839 7f5a94bff6c0 Delete type=3 #56
2026/05/18-20:28:00.147945 7f5a94bff6c0 Delete type=0 #58
2026/05/18-20:29:47.507007 7f5a467fc6c0 Level-0 table #64: started
2026/05/18-20:29:47.507077 7f5a467fc6c0 Level-0 table #64: 0 bytes OK
2026/05/18-20:29:47.513818 7f5a467fc6c0 Delete type=0 #62
2026/05/18-20:29:47.514115 7f5a467fc6c0 Manual compaction at level-0 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
2026/05/18-20:29:47.514158 7f5a467fc6c0 Manual compaction at level-1 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
2026/05/27-14:31:25.650849 7f3e6f7fe6c0 Recovering log #67
2026/05/27-14:31:25.660624 7f3e6f7fe6c0 Delete type=3 #65
2026/05/27-14:31:25.660648 7f3e6f7fe6c0 Delete type=0 #67
2026/05/27-14:33:21.780104 7f3e6effd6c0 Level-0 table #73: started
2026/05/27-14:33:21.780129 7f3e6effd6c0 Level-0 table #73: 0 bytes OK
2026/05/27-14:33:21.786659 7f3e6effd6c0 Delete type=0 #71
2026/05/27-14:33:21.800546 7f3e6effd6c0 Manual compaction at level-0 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
2026/05/27-14:33:21.808253 7f3e6effd6c0 Manual compaction at level-1 from '!items!0ZfAXacF6oWS120o' @ 72057594037927935 : 1 .. '!items!xFUyR7XECD8QJcIw' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+174 -2
View File
@@ -1,6 +1,19 @@
import { formatCredits } from './tradeHelper.js';
import { createNpcActor, generateClientMission, generateEncounter, generateQuickNpc } from './npcHelper.js';
import { NPC_RELATIONS } from './data/npcTables.js';
import { generateAndCreateTravellerNpc } from './travellerNpcGenerator.js';
import { generateRandomName } from './data/travellerNpcGenerator.js';
import {
CITIZEN_CATEGORY_LIST,
EXPERIENCE_LEVEL_LIST,
ROLE_LIST,
GENDER_LIST,
DEFAULT_OPTIONS,
CITIZEN_CATEGORY_LABELS_FR,
EXPERIENCE_LEVEL_LABELS_FR,
ROLE_LABELS_FR,
GENDER_LABELS_FR
} from './data/travellerNpcGenerator.js';
const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api;
const MODULE_ID = 'mgt2-compendium-amiral-denisov';
@@ -41,6 +54,19 @@ export class NpcDialog extends HandlebarsApplicationMixin(ApplicationV2) {
context: options.context ?? 'starport',
includeFollowUp: true,
},
mission: {},
traveller: {
citizenCategory: DEFAULT_OPTIONS.citizenCategory,
experience: DEFAULT_OPTIONS.experience,
role: DEFAULT_OPTIONS.role,
gender: DEFAULT_OPTIONS.gender,
firstName: '',
surname: '',
useRandomName: true,
createActor: DEFAULT_OPTIONS.createActor,
actorName: '',
openCreatedActor: DEFAULT_OPTIONS.openCreatedActor,
},
};
}
@@ -50,6 +76,25 @@ export class NpcDialog extends HandlebarsApplicationMixin(ApplicationV2) {
...this._formData,
activeTab: this._activeTab,
relations: Object.entries(NPC_RELATIONS).map(([key, value]) => ({ key, label: value.label })),
citizenCategories: CITIZEN_CATEGORY_LIST.map(c => ({
key: c.key,
label: CITIZEN_CATEGORY_LABELS_FR[c.key] || c.label,
description: c.description
})),
experienceLevels: EXPERIENCE_LEVEL_LIST.map(e => ({
key: e.key,
label: EXPERIENCE_LEVEL_LABELS_FR[e.key] || e.label,
description: e.description
})),
roles: ROLE_LIST.map(r => ({
key: r.key,
label: ROLE_LABELS_FR[r.key] || r.label,
description: r.description
})),
genders: GENDER_LIST.map(g => ({
key: g.key,
label: GENDER_LABELS_FR[g.key] || g.label
})),
};
}
@@ -84,6 +129,27 @@ export class NpcDialog extends HandlebarsApplicationMixin(ApplicationV2) {
this._readForm(html);
this._activateTab($(event.currentTarget).data('tab'));
});
// Gestion des événements pour l'onglet PNJ Détaillé (Traveller)
html.find('[data-action="generate-traveller-npc"]').on('click', async (event) => {
event.preventDefault();
this._readForm(html);
await this._handleTravellerNpc();
});
html.find('[data-action="randomize-name"]').on('click', (event) => {
event.preventDefault();
this._randomizeTravellerName(html);
});
html.find('[name="traveller.useRandomName"]').on('change', (event) => {
const useRandom = event.target.checked;
this._formData.traveller.useRandomName = useRandom;
html.find('.traveller-name-fields').toggleClass('hidden', useRandom);
});
// Initialiser l'affichage des champs de nom pour l'onglet Traveller
html.find('.traveller-name-fields').toggleClass('hidden', this._formData.traveller.useRandomName);
}
_getForm() {
@@ -137,6 +203,18 @@ export class NpcDialog extends HandlebarsApplicationMixin(ApplicationV2) {
this._formData.npc.openCreatedActor = html.find('[name="npc.openCreatedActor"]').is(':checked');
this._formData.encounter.context = html.find('[name="encounter.context"]').val();
this._formData.encounter.includeFollowUp = html.find('[name="encounter.includeFollowUp"]').is(':checked');
// Données pour l'onglet PNJ Détaillé (Traveller)
this._formData.traveller.citizenCategory = html.find('[name="traveller.citizenCategory"]').val();
this._formData.traveller.experience = html.find('[name="traveller.experience"]').val();
this._formData.traveller.role = html.find('[name="traveller.role"]').val();
this._formData.traveller.gender = html.find('[name="traveller.gender"]').val();
this._formData.traveller.firstName = html.find('[name="traveller.firstName"]').val();
this._formData.traveller.surname = html.find('[name="traveller.surname"]').val();
this._formData.traveller.useRandomName = html.find('[name="traveller.useRandomName"]').is(':checked');
this._formData.traveller.createActor = html.find('[name="traveller.createActor"]').is(':checked');
this._formData.traveller.actorName = html.find('[name="traveller.actorName"]').val();
this._formData.traveller.openCreatedActor = html.find('[name="traveller.openCreatedActor"]').is(':checked');
}
async _handleNpc() {
@@ -162,14 +240,75 @@ export class NpcDialog extends HandlebarsApplicationMixin(ApplicationV2) {
await this._postToChatResult(result);
}
async _handleTravellerNpc() {
const button = $(this.element).find('[data-action="generate-traveller-npc"]');
const originalLabel = button.html();
try {
button.prop('disabled', true).html('<i class="fas fa-spinner fa-spin"></i> Génération...');
const generateOptions = {
citizenCategory: this._formData.traveller.citizenCategory,
experience: this._formData.traveller.experience,
role: this._formData.traveller.role,
gender: this._formData.traveller.gender,
createActor: this._formData.traveller.createActor,
actorName: this._formData.traveller.actorName,
openCreatedActor: this._formData.traveller.openCreatedActor
};
if (!this._formData.traveller.useRandomName && this._formData.traveller.firstName && this._formData.traveller.surname) {
generateOptions.firstName = this._formData.traveller.firstName;
generateOptions.surname = this._formData.traveller.surname;
}
const result = await generateAndCreateTravellerNpc(generateOptions);
if (result.success) {
await this._postToChatResult(result);
if (result.createdActor) {
ui.notifications.info(`Fiche PNJ Traveller créée : ${result.createdActor.name}`);
}
} else {
ui.notifications.error('Erreur lors de la génération du PNJ Traveller');
}
} catch (error) {
console.error(`${MODULE_ID} | Erreur lors de la génération du PNJ Traveller:`, error);
ui.notifications.error(`Erreur: ${error.message}`);
} finally {
button.prop('disabled', false).html(originalLabel);
}
}
_randomizeTravellerName(html) {
const name = generateRandomName(this._formData.traveller.gender);
html.find('[name="traveller.firstName"]').val(name.firstName);
html.find('[name="traveller.surname"]').val(name.surname);
this._formData.traveller.firstName = name.firstName;
this._formData.traveller.surname = name.surname;
this._formData.traveller.useRandomName = false;
html.find('[name="traveller.useRandomName"]').prop('checked', false);
html.find('.traveller-name-fields').removeClass('hidden');
}
async _postToChatResult(data) {
registerHandlebarsHelpers();
const html = await foundry.applications.handlebars.renderTemplate(`modules/${MODULE_ID}/templates/npc-result.hbs`, data);
// Déterminer quel template utiliser en fonction du type de données
let template = `modules/${MODULE_ID}/templates/npc-result.hbs`;
let resultType = 'npc-result';
if (data.type === 'traveller-npc' || data?.flags?.[MODULE_ID]?.type === 'traveller-npc-result') {
template = `modules/${MODULE_ID}/templates/traveller-npc-result.hbs`;
resultType = 'traveller-npc-result';
}
const html = await foundry.applications.handlebars.renderTemplate(template, data);
await ChatMessage.create({
content: html,
speaker: ChatMessage.getSpeaker(),
flags: { [MODULE_ID]: { type: 'npc-result' } },
flags: { [MODULE_ID]: { type: resultType } },
});
}
}
@@ -180,8 +319,41 @@ function registerHandlebarsHelpers() {
if (helpersRegistered) return;
helpersRegistered = true;
// Helpers existants pour NPC
Handlebars.registerHelper('eq', (a, b) => a === b);
Handlebars.registerHelper('join', (arr, sep) => (Array.isArray(arr) ? arr.join(sep) : ''));
Handlebars.registerHelper('formatCredits', (amount) => formatCredits(amount));
Handlebars.registerHelper('contains', (text, search) => String(text ?? '').includes(search));
// Helpers pour Traveller NPC
Handlebars.registerHelper('gt', (a, b) => a > b);
// Helper pour afficher le niveau de compétence avec un symbole
Handlebars.registerHelper('skillLevelSymbol', (level) => {
if (level === 0) return '';
if (level === 1) return '★';
if (level === 2) return '★★';
if (level === 3) return '★★★';
return `+${level}`;
});
// Helper pour formater le DM (Difficulté Modificateur)
Handlebars.registerHelper('formatDm', (value) => {
const dm = Math.floor((value - 6) / 3);
return dm >= 0 ? `+${dm}` : `${dm}`;
});
// Helper pour obtenir la classe CSS du niveau de compétence
Handlebars.registerHelper('skillLevelClass', (level) => {
if (level === 3) return 'skill-level-3';
if (level === 2) return 'skill-level-2';
if (level === 1) return 'skill-level-1';
return 'skill-level-0';
});
// Helper pour lookup dans un objet
Handlebars.registerHelper('lookup', (obj, key) => {
if (!obj || !key) return '';
return obj[key] !== undefined ? obj[key] : '';
});
}
+2 -2
View File
@@ -774,7 +774,7 @@ export const DEFAULT_OPTIONS = {
*/
export const SKILL_LABELS_FR = {
'Pilot-Spacecraft': 'Pilote Vaisseau spatial',
'Pilot-Small Craft': 'Pilote Aéronef léger',
'Pilot-Small Craft': 'Pilote Petits vaisseaux',
'Pilot': 'Pilote',
'Flyer': 'Pilote Aéronef atmosphérique',
'Astrogation': 'Astrogation',
@@ -804,7 +804,7 @@ export const SKILL_LABELS_FR = {
'Advocate': 'Plaidoyer',
'Diplomat': 'Diplomatie',
'Streetwise': 'Rues',
'Leadership': 'Direction',
'Leadership': 'Leadership',
'Science-Biology': 'Science Biologie',
'Science-Chemistry': 'Science Chimie',
'Science': 'Science',
+1 -38
View File
@@ -1,5 +1,4 @@
import { NpcDialog } from './NpcDialog.js';
import { openTravellerNpcDialog } from './TravellerNpcDialog.js';
import { syncNpcRollTables } from './npcRollTableSync.js';
import './mgt2eMigration.js';
@@ -10,10 +9,6 @@ function openNpcDialog(initialTab, options = {}) {
new NpcDialog({ initialTab, ...options }).render({ force: true });
}
function openTravellerNpcGenerator() {
openTravellerNpcDialog();
}
function registerNpcCommand(commandName, initialTab) {
if (!ChatLogV2?.CHAT_COMMANDS) {
console.warn(`${MODULE_ID} | ChatLog.CHAT_COMMANDS indisponible, commande /${commandName} non enregistrée`);
@@ -30,22 +25,6 @@ function registerNpcCommand(commandName, initialTab) {
console.log(`${MODULE_ID} | Commande /${commandName} enregistrée via ChatLog.CHAT_COMMANDS`);
}
function registerTravellerNpcCommand() {
if (!ChatLogV2?.CHAT_COMMANDS) {
console.warn(`${MODULE_ID} | ChatLog.CHAT_COMMANDS indisponible, commande /gennpc non enregistrée`);
return;
}
ChatLogV2.CHAT_COMMANDS.gennpc = {
rgx: new RegExp(`^\\/gennpc(?:\\s+(.*))?$`, 'i'),
fn: () => {
openTravellerNpcGenerator();
return false;
},
};
console.log(`${MODULE_ID} | Commande /gennpc enregistrée via ChatLog.CHAT_COMMANDS`);
}
Hooks.once('init', () => {
console.log(`${MODULE_ID} | Outils PNJ initialisés`);
@@ -64,12 +43,11 @@ Hooks.once('init', () => {
registerNpcCommand('pnj', 'npc');
registerNpcCommand('rencontre', 'encounter');
registerNpcCommand('mission', 'mission');
registerTravellerNpcCommand();
});
Hooks.once('ready', async () => {
await syncNpcRollTables();
console.log(`${MODULE_ID} | Outils PNJ prêts tapez /pnj, /rencontre, /mission ou /gennpc dans le chat`);
console.log(`${MODULE_ID} | Outils PNJ prêts tapez /pnj, /rencontre ou /mission dans le chat`);
});
/**
@@ -115,11 +93,6 @@ Hooks.on('renderChatInput', (app, html, data) => {
event.stopImmediatePropagation();
openNpcDialog('mission');
input.val('');
} else if (content?.startsWith('/gennpc')) {
event.preventDefault();
event.stopImmediatePropagation();
openTravellerNpcGenerator();
input.val('');
}
}
});
@@ -147,11 +120,6 @@ Hooks.on('preCreateChatMessage', (message, data, options) => {
openNpcDialog('mission');
return false; // Empêche la création du message
}
if (content === '/gennpc' || content?.startsWith('/gennpc ')) {
openTravellerNpcGenerator();
return false; // Empêche la création du message
}
});
// Gardé pour compatibilité v13
@@ -186,9 +154,4 @@ Hooks.on('chatMessage', (...args) => {
openNpcDialog('mission');
return false;
}
if (trimmed === '/gennpc' || trimmed?.startsWith('/gennpc ')) {
openTravellerNpcGenerator();
return false;
}
});
+75 -27
View File
@@ -49,61 +49,100 @@ const MODULE_ID = 'mgt2-compendium-amiral-denisov';
* Mapping des compétences Traveller vers mgt2e
* @type {Object<string, string>}
*/
// Mapping des compétences Traveller vers MgT2e
// IMPORTANT: MgT2e utilise des noms de compétences EN MINUSCULES (ex: pilot, electronics, gunner)
// basé sur les références dans npcHelper.js et mgt2eSkills.js
// Format: 'Compétence-Traveller' -> 'competence_mgt2e' ou 'competence_mgt2e.specialite'
// Les spécialités sont en minuscules avec underscores
// Si une spécialité n'existe pas dans MgT2e, setSkillLevel appliquera le niveau à la compétence parente
const SKILL_MAPPING = {
'Pilot-Spacecraft': 'pilot.spacecraft',
'Pilot-Small Craft': 'pilot.smallcraft',
// 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',
'Pilot-Small Craft': 'pilot.petits_vaisseaux',
'Pilot': 'pilot',
'Flyer': 'pilot.aeronef_atmospherique',
// Astrogation et Navigation (compétences séparées)
'Astrogation': 'astrogation',
'Electronics-Sensors': 'electronics.sensors',
'Navigation': 'navigation',
// Électronique - MgT2e a une compétence "electronics" (confirmé par npcHelper.js:34)
// Révisé : "computers" → "informatique" pour alignement avec le libellé FR
'Electronics-Sensors': 'electronics.capteurs',
'Electronics-Communications': 'electronics.communications',
'Electronics-Computers': 'electronics.computers',
'Electronics-Computers': 'electronics.informatique',
'Electronics': 'electronics',
'Gunner-Turrets': 'gunner.turrets',
'Gunner-Screens': 'gunner.screens',
'Gunner': 'gunner',
'Computers': 'electronics',
'Communications': 'electronics',
// Artillerie - MgT2e utilise "gunner" ou "guncombat" ?
// Dans npcHelper.js:37 on voit "guncombat", donc utilisons ça
'Gunner-Turrets': 'guncombat.tourelles',
'Gunner-Screens': 'guncombat.boucliers',
'Gunner': 'guncombat',
// Mécanique
'Mechanic': 'mechanic',
'Engineer-MDrive': 'engineer.mdrive',
'Engineer-Power': 'engineer.power',
'Engineer-JDrive': 'engineer.jdrive',
'Engineer-Life Support': 'engineer.lifesupport',
// Ingénierie - MgT2e utilise probablement "engineer"
'Engineer-MDrive': 'engineer.propulsion_manoeuvre',
'Engineer-Power': 'engineer.energie',
'Engineer-JDrive': 'engineer.propulsion_saut',
'Engineer-Life Support': 'engineer.support_vie',
'Engineer': 'engineer',
// Social et Administration - tous confirmés dans npcHelper.js
'Steward': 'steward',
'Carouse': 'carouse',
'Persuade': 'persuade',
'Broker': 'broker',
'Admin': 'admin',
'Computers': 'electronics.computers',
'Language': 'language',
'Advocate': 'advocate',
'Leadership': 'leadership',
'Medic': 'medic',
'Streetwise': 'streetwise',
'Diplomat': 'diplomat',
'Science-Biology': 'science.biology',
'Science-Chemistry': 'science.chemistry',
// Sciences
'Science-Biology': 'science.biologie',
'Science-Chemistry': 'science.chimie',
'Science': 'science',
'Deception': 'deception',
'Investigate': 'investigate',
// Combat - "guncombat" confirmé dans npcHelper.js:37
'Gun Combat': 'guncombat',
'Heavy Weapons': 'heavyweapons',
'Melee-Unarmed': 'melee.unarmed',
'Melee-Blade': 'melee.blade',
// Mêlée - "melee" confirmé dans npcHelper.js:37
'Melee-Unarmed': 'melee.sans_arme',
'Melee-Blade': 'melee.arme_blanche',
'Melee': 'melee',
'Athletics-Strength': 'athletics.strength',
'Athletics-Dexterity': 'athletics.dexterity',
// Athlétisme - probablement "athletics"
// Révisé : "dexterite" → "dextérité" (avec accent)
'Athletics-Strength': 'athletics.force',
'Athletics-Dexterity': 'athletics.dextérité',
'Athletics': 'athletics',
// Tactique et Exploration - "tactics" et "recon" confirmés dans npcHelper.js
'Tactics': 'tactics',
'Recon': 'recon',
'Survival': 'survival',
'Navigation': 'navigation',
'Stealth': 'stealth',
'Explosives': 'explosives',
'Communications': 'electronics.communications',
'Drive-Grav': 'drive.grav',
'Deception': 'deception',
'Investigate': 'investigate',
// Conduite - probablement "drive"
// Révisé : "gravite" → "gravité" (avec accent)
'Drive-Grav': 'drive.gravité',
'Drive': 'drive',
// Équipement - probablement "vaccsuit" ou similaire
'Vacc Suit': 'vaccsuit',
'Flyer': 'flyer',
'Art-Acting': 'art.acting',
// Art - probablement "art"
// Révisé : "jeu_d_acteur" → "jeu_acteur" (plus naturel)
'Art-Acting': 'art.jeu_acteur',
'Art-Instrument': 'art.instrument',
'Art': 'art'
};
@@ -114,7 +153,16 @@ const SKILL_MAPPING = {
* @returns {string} - Nom au format mgt2e
*/
function convertSkillToMgt2eFormat(skillName) {
return SKILL_MAPPING[skillName] || skillName.toLowerCase().replace(/-| /g, '.');
// Vérifier d'abord dans le mapping explicite
if (SKILL_MAPPING[skillName]) {
return SKILL_MAPPING[skillName];
}
// Si pas dans le mapping, essayer de deviner
// MgT2e utilise des noms en minuscules (ex: pilot, electronics, guncombat)
// 1. Remplacer les tirets et espaces par des points
// 2. Tout mettre en minuscules
return skillName.toLowerCase().replace(/-| /g, '.');
}
/**
+113
View File
@@ -10,6 +10,9 @@
<a class="item {{#if (eq activeTab "mission")}}active{{/if}}" data-tab="mission">
<i class="fas fa-briefcase"></i> Client & mission
</a>
<a class="item {{#if (eq activeTab "traveller")}}active{{/if}}" data-tab="traveller">
<i class="fas fa-user-astronaut"></i> PNJ Détaillé
</a>
</nav>
<section class="tab-content">
@@ -119,6 +122,116 @@
</button>
</div>
</div>
<div class="tab {{#if (eq activeTab "traveller")}}active{{/if}}" data-tab="traveller">
<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="traveller.useRandomName" {{#if traveller.useRandomName}}checked{{/if}}>
Utiliser un nom aléatoire
</label>
</div>
<div class="form-group-row traveller-name-fields {{#if traveller.useRandomName}}hidden{{/if}}">
<div class="form-group">
<label for="traveller-firstName">Prénom</label>
<input id="traveller-firstName" name="traveller.firstName" type="text" value="{{traveller.firstName}}" placeholder="John">
</div>
<div class="form-group">
<label for="traveller-surname">Nom de famille</label>
<input id="traveller-surname" name="traveller.surname" type="text" value="{{traveller.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="traveller-gender">Genre</label>
<select id="traveller-gender" name="traveller.gender">
{{#each genders}}
<option value="{{key}}" {{#if (eq ../traveller.gender key)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
<div class="form-group">
<label for="traveller-role">Rôle <span class="required">*</span></label>
<select id="traveller-role" name="traveller.role" required>
{{#each roles}}
<option value="{{key}}" {{#if (eq ../traveller.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="traveller-citizenCategory">Catégorie de citoyen</label>
<select id="traveller-citizenCategory" name="traveller.citizenCategory">
{{#each citizenCategories}}
<option value="{{key}}" {{#if (eq ../traveller.citizenCategory key)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<div class="hint">{{description}}</div>
</div>
<div class="form-group">
<label for="traveller-experience">Niveau d'expérience</label>
<select id="traveller-experience" name="traveller.experience">
{{#each experienceLevels}}
<option value="{{key}}" {{#if (eq ../traveller.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="traveller.createActor" {{#if traveller.createActor}}checked{{/if}}>
Créer une fiche PNJ dans les Acteurs
</label>
</div>
<div class="form-group-row">
<div class="form-group">
<label for="traveller-actorName">Nom de la fiche <span class="hint">(facultatif)</span></label>
<input id="traveller-actorName" name="traveller.actorName" type="text" value="{{traveller.actorName}}" placeholder="PNJ — Pilote">
</div>
</div>
<div class="form-group checkbox-group">
<label>
<input type="checkbox" name="traveller.openCreatedActor" {{#if traveller.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>
</div>
</section>
</form>