Fix scripts !

This commit is contained in:
2026-01-29 11:43:28 +01:00
parent 0e8237c233
commit 752a6701c0
104 changed files with 195 additions and 193 deletions

View File

@@ -8,7 +8,7 @@
} }
], ],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr", "url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
"version": "9.3.5", "version": "9.3.6",
"esmodules": [ "esmodules": [
"wh4_fr.js", "wh4_fr.js",
"modules/babele-register.js", "modules/babele-register.js",
@@ -120,7 +120,7 @@
} }
], ],
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-3-5.zip", "download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-3-6.zip",
"id": "wh4-fr-translation", "id": "wh4-fr-translation",
"compatibility": { "compatibility": {
"minimum": "13", "minimum": "13",

View File

@@ -248,16 +248,16 @@ Hooks.once('init', () => {
let translw = translItem?.name || undefined let translw = translItem?.name || undefined
if (translw && translw != s1) { if (translw && translw != s1) {
let res2 = re.exec(translw); let res2 = re.exec(translw);
transl = res2[1] + "(" + subword + ")"; transl = res2[1].trim() + " (" + subword + ")";
} else { } else {
s1 = res[1].trim() + " ( )"; s1 = res[1].trim() + " ( )";
translItem = game.babele.translate(compData.metadata.id, { name: s1, type: "skill" }, true) translItem = game.babele.translate(compData.metadata.id, { name: s1, type: "skill" }, true)
translw = translItem?.name || undefined translw = translItem?.name || undefined
if(translw) { if(translw) {
let res2 = re.exec(translw); let res2 = re.exec(translw);
transl = res2[1] + "(" + subword + ")"; transl = res2[1].trim() + " (" + subword + ")";
} else { } else {
transl = res[1] + " (" + subword + ")"; transl = res[1].trim() + " (" + subword + ")";
} }
} }
} }
@@ -366,7 +366,7 @@ Hooks.once('init', () => {
translItem = game.babele.translate(compData.metadata.id, { name: s1 }, true) translItem = game.babele.translate(compData.metadata.id, { name: s1 }, true)
let translw = translItem?.name || undefined let translw = translItem?.name || undefined
if (translw && translw != s1) { if (translw && translw != s1) {
transl = translw + " (" + subword + ")"; transl = translw.trim() + " (" + subword + ")";
} }
} }
} }
@@ -424,7 +424,9 @@ Hooks.once('init', () => {
if (trait_fr?.name && trait_fr?.name != name_en) { if (trait_fr?.name && trait_fr?.name != name_en) {
trait_fr.name = trait_fr.name || trait_en.name trait_fr.name = trait_fr.name || trait_en.name
trait_en.name = nbt + trait_fr.name + special; trait_en.name = nbt + trait_fr.name + special;
trait_en.system.description.value = trait_fr.system.description.value; if ( trait_en.system?.description?.value) {
trait_en.system.description.value = trait_fr.system.description.value;
}
if (trait_en.system?.specification && isNaN(trait_en.system.specification.value)) { // This is a string, so translate it if (trait_en.system?.specification && isNaN(trait_en.system.specification.value)) { // This is a string, so translate it
//console.log("Translating : ", trait_en.system.specification.value); //console.log("Translating : ", trait_en.system.specification.value);
trait_en.system.specification.value = game.i18n.localize(trait_en.system.specification.value.trim()); trait_en.system.specification.value = game.i18n.localize(trait_en.system.specification.value.trim());

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
MANIFEST-001259 MANIFEST-001279

View File

@@ -1,7 +1,7 @@
2026/01/07-15:26:43.527176 7f93eaffd6c0 Recovering log #1257 2026/01/29-10:58:42.937989 7fac277fe6c0 Recovering log #1277
2026/01/07-15:26:43.536993 7f93eaffd6c0 Delete type=3 #1255 2026/01/29-10:58:42.947978 7fac277fe6c0 Delete type=3 #1275
2026/01/07-15:26:43.537037 7f93eaffd6c0 Delete type=0 #1257 2026/01/29-10:58:42.948038 7fac277fe6c0 Delete type=0 #1277
2026/01/07-15:53:28.412551 7f93e9ffb6c0 Level-0 table #1262: started 2026/01/29-11:43:15.082893 7fa9a6fef6c0 Level-0 table #1282: started
2026/01/07-15:53:28.412580 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK 2026/01/29-11:43:15.082936 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
2026/01/07-15:53:28.419118 7f93e9ffb6c0 Delete type=0 #1260 2026/01/29-11:43:15.089469 7fa9a6fef6c0 Delete type=0 #1280
2026/01/07-15:53:28.432727 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end) 2026/01/29-11:43:15.099933 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/01/07-15:09:19.276373 7f93eaffd6c0 Recovering log #1253 2026/01/29-10:52:14.344493 7fac277fe6c0 Recovering log #1273
2026/01/07-15:09:19.291800 7f93eaffd6c0 Delete type=3 #1251 2026/01/29-10:52:14.354354 7fac277fe6c0 Delete type=3 #1271
2026/01/07-15:09:19.291847 7f93eaffd6c0 Delete type=0 #1253 2026/01/29-10:52:14.354436 7fac277fe6c0 Delete type=0 #1273
2026/01/07-15:13:49.642315 7f93e9ffb6c0 Level-0 table #1258: started 2026/01/29-10:55:44.810919 7fa9a6fef6c0 Level-0 table #1278: started
2026/01/07-15:13:49.642358 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK 2026/01/29-10:55:44.810962 7fa9a6fef6c0 Level-0 table #1278: 0 bytes OK
2026/01/07-15:13:49.649460 7f93e9ffb6c0 Delete type=0 #1256 2026/01/29-10:55:44.820672 7fa9a6fef6c0 Delete type=0 #1276
2026/01/07-15:13:49.662442 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end) 2026/01/29-10:55:44.820811 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-001261 MANIFEST-001281

View File

@@ -1,7 +1,7 @@
2026/01/07-15:26:43.539401 7f93ebfff6c0 Recovering log #1259 2026/01/29-10:58:42.950367 7fac277fe6c0 Recovering log #1279
2026/01/07-15:26:43.549699 7f93ebfff6c0 Delete type=3 #1257 2026/01/29-10:58:42.959516 7fac277fe6c0 Delete type=3 #1277
2026/01/07-15:26:43.549758 7f93ebfff6c0 Delete type=0 #1259 2026/01/29-10:58:42.959596 7fac277fe6c0 Delete type=0 #1279
2026/01/07-15:53:28.419273 7f93e9ffb6c0 Level-0 table #1264: started 2026/01/29-11:43:14.910167 7fa9a6fef6c0 Level-0 table #1284: started
2026/01/07-15:53:28.419304 7f93e9ffb6c0 Level-0 table #1264: 0 bytes OK 2026/01/29-11:43:14.910204 7fa9a6fef6c0 Level-0 table #1284: 0 bytes OK
2026/01/07-15:53:28.426268 7f93e9ffb6c0 Delete type=0 #1262 2026/01/29-11:43:14.916676 7fa9a6fef6c0 Delete type=0 #1282
2026/01/07-15:53:28.440100 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end) 2026/01/29-11:43:14.924493 7fa9a6fef6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/01/07-15:09:19.293766 7f93ea7fc6c0 Recovering log #1255 2026/01/29-10:52:14.356741 7fac27fff6c0 Recovering log #1275
2026/01/07-15:09:19.310998 7f93ea7fc6c0 Delete type=3 #1253 2026/01/29-10:52:14.366627 7fac27fff6c0 Delete type=3 #1273
2026/01/07-15:09:19.311072 7f93ea7fc6c0 Delete type=0 #1255 2026/01/29-10:52:14.366686 7fac27fff6c0 Delete type=0 #1275
2026/01/07-15:13:49.675722 7f93e9ffb6c0 Level-0 table #1260: started 2026/01/29-10:55:44.821680 7fa9a6fef6c0 Level-0 table #1280: started
2026/01/07-15:13:49.675750 7f93e9ffb6c0 Level-0 table #1260: 0 bytes OK 2026/01/29-10:55:44.821714 7fa9a6fef6c0 Level-0 table #1280: 0 bytes OK
2026/01/07-15:13:49.682225 7f93e9ffb6c0 Delete type=0 #1258 2026/01/29-10:55:44.835173 7fa9a6fef6c0 Delete type=0 #1278
2026/01/07-15:13:49.688884 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end) 2026/01/29-10:55:44.835325 7fa9a6fef6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-001259 MANIFEST-001279

View File

@@ -1,7 +1,7 @@
2026/01/07-15:26:43.564495 7f93eb7fe6c0 Recovering log #1257 2026/01/29-10:58:42.977033 7fac3cbfe6c0 Recovering log #1277
2026/01/07-15:26:43.574446 7f93eb7fe6c0 Delete type=3 #1255 2026/01/29-10:58:42.986296 7fac3cbfe6c0 Delete type=3 #1275
2026/01/07-15:26:43.574512 7f93eb7fe6c0 Delete type=0 #1257 2026/01/29-10:58:42.986342 7fac3cbfe6c0 Delete type=0 #1277
2026/01/07-15:53:28.432738 7f93e9ffb6c0 Level-0 table #1262: started 2026/01/29-11:43:14.924604 7fa9a6fef6c0 Level-0 table #1282: started
2026/01/07-15:53:28.432770 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK 2026/01/29-11:43:14.924660 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
2026/01/07-15:53:28.439930 7f93e9ffb6c0 Delete type=0 #1260 2026/01/29-11:43:14.930959 7fa9a6fef6c0 Delete type=0 #1280
2026/01/07-15:53:28.446625 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end) 2026/01/29-11:43:14.954971 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/01/07-15:09:19.333002 7f93ea7fc6c0 Recovering log #1253 2026/01/29-10:52:14.382212 7fac27fff6c0 Recovering log #1273
2026/01/07-15:09:19.348597 7f93ea7fc6c0 Delete type=3 #1251 2026/01/29-10:52:14.391540 7fac27fff6c0 Delete type=3 #1271
2026/01/07-15:09:19.348662 7f93ea7fc6c0 Delete type=0 #1253 2026/01/29-10:52:14.391602 7fac27fff6c0 Delete type=0 #1273
2026/01/07-15:13:49.682345 7f93e9ffb6c0 Level-0 table #1258: started 2026/01/29-10:55:44.848192 7fa9a6fef6c0 Level-0 table #1278: started
2026/01/07-15:13:49.682371 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK 2026/01/29-10:55:44.848229 7fa9a6fef6c0 Level-0 table #1278: 0 bytes OK
2026/01/07-15:13:49.688691 7f93e9ffb6c0 Delete type=0 #1256 2026/01/29-10:55:44.858087 7fa9a6fef6c0 Delete type=0 #1276
2026/01/07-15:13:49.688891 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end) 2026/01/29-10:55:44.858262 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-001259 MANIFEST-001279

View File

@@ -1,7 +1,7 @@
2026/01/07-15:26:43.514726 7f93ea7fc6c0 Recovering log #1257 2026/01/29-10:58:42.926104 7fac277fe6c0 Recovering log #1277
2026/01/07-15:26:43.524436 7f93ea7fc6c0 Delete type=3 #1255 2026/01/29-10:58:42.935779 7fac277fe6c0 Delete type=3 #1275
2026/01/07-15:26:43.524498 7f93ea7fc6c0 Delete type=0 #1257 2026/01/29-10:58:42.935842 7fac277fe6c0 Delete type=0 #1277
2026/01/07-15:53:28.406072 7f93e9ffb6c0 Level-0 table #1262: started 2026/01/29-11:43:14.916846 7fa9a6fef6c0 Level-0 table #1282: started
2026/01/07-15:53:28.406116 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK 2026/01/29-11:43:14.916889 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
2026/01/07-15:53:28.412401 7f93e9ffb6c0 Delete type=0 #1260 2026/01/29-11:43:14.924373 7fa9a6fef6c0 Delete type=0 #1280
2026/01/07-15:53:28.419261 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end) 2026/01/29-11:43:14.924501 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/01/07-15:09:19.258501 7f93eb7fe6c0 Recovering log #1253 2026/01/29-10:52:14.331605 7fac3d3ff6c0 Recovering log #1273
2026/01/07-15:09:19.274117 7f93eb7fe6c0 Delete type=3 #1251 2026/01/29-10:52:14.341908 7fac3d3ff6c0 Delete type=3 #1271
2026/01/07-15:09:19.274190 7f93eb7fe6c0 Delete type=0 #1253 2026/01/29-10:52:14.341974 7fac3d3ff6c0 Delete type=0 #1273
2026/01/07-15:13:49.656004 7f93e9ffb6c0 Level-0 table #1258: started 2026/01/29-10:55:44.799059 7fa9a6fef6c0 Level-0 table #1278: started
2026/01/07-15:13:49.656029 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK 2026/01/29-10:55:44.799092 7fa9a6fef6c0 Level-0 table #1278: 0 bytes OK
2026/01/07-15:13:49.662317 7f93e9ffb6c0 Delete type=0 #1256 2026/01/29-10:55:44.809892 7fa9a6fef6c0 Delete type=0 #1276
2026/01/07-15:13:49.662464 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end) 2026/01/29-10:55:44.810048 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-001259 MANIFEST-001279

View File

@@ -1,7 +1,7 @@
2026/01/07-15:26:43.501310 7f93eb7fe6c0 Recovering log #1257 2026/01/29-10:58:42.911172 7fac3cbfe6c0 Recovering log #1277
2026/01/07-15:26:43.512173 7f93eb7fe6c0 Delete type=3 #1255 2026/01/29-10:58:42.922025 7fac3cbfe6c0 Delete type=3 #1275
2026/01/07-15:26:43.512224 7f93eb7fe6c0 Delete type=0 #1257 2026/01/29-10:58:42.922081 7fac3cbfe6c0 Delete type=0 #1277
2026/01/07-15:53:28.398067 7f93e9ffb6c0 Level-0 table #1262: started 2026/01/29-11:43:14.903068 7fa9a6fef6c0 Level-0 table #1282: started
2026/01/07-15:53:28.398117 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK 2026/01/29-11:43:14.903107 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
2026/01/07-15:53:28.405830 7f93e9ffb6c0 Delete type=0 #1260 2026/01/29-11:43:14.910024 7fa9a6fef6c0 Delete type=0 #1280
2026/01/07-15:53:28.412533 7f93e9ffb6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end) 2026/01/29-11:43:14.924484 7fa9a6fef6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/01/07-15:09:19.238733 7f93ebfff6c0 Recovering log #1253 2026/01/29-10:52:14.318846 7fac277fe6c0 Recovering log #1273
2026/01/07-15:09:19.256250 7f93ebfff6c0 Delete type=3 #1251 2026/01/29-10:52:14.328479 7fac277fe6c0 Delete type=3 #1271
2026/01/07-15:09:19.256331 7f93ebfff6c0 Delete type=0 #1253 2026/01/29-10:52:14.328545 7fac277fe6c0 Delete type=0 #1273
2026/01/07-15:13:49.649560 7f93e9ffb6c0 Level-0 table #1258: started 2026/01/29-10:55:44.787338 7fa9a6fef6c0 Level-0 table #1278: started
2026/01/07-15:13:49.649585 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK 2026/01/29-10:55:44.787395 7fa9a6fef6c0 Level-0 table #1278: 0 bytes OK
2026/01/07-15:13:49.655885 7f93e9ffb6c0 Delete type=0 #1256 2026/01/29-10:55:44.798087 7fa9a6fef6c0 Delete type=0 #1276
2026/01/07-15:13:49.662454 7f93e9ffb6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end) 2026/01/29-10:55:44.798228 7fa9a6fef6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

View File

@@ -1 +1 @@
MANIFEST-000902 MANIFEST-000922

View File

@@ -1,7 +1,7 @@
2026/01/07-15:26:43.552530 7f93eaffd6c0 Recovering log #900 2026/01/29-10:58:42.964451 7fac3cbfe6c0 Recovering log #920
2026/01/07-15:26:43.562158 7f93eaffd6c0 Delete type=3 #898 2026/01/29-10:58:42.974523 7fac3cbfe6c0 Delete type=3 #918
2026/01/07-15:26:43.562231 7f93eaffd6c0 Delete type=0 #900 2026/01/29-10:58:42.974583 7fac3cbfe6c0 Delete type=0 #920
2026/01/07-15:53:28.426399 7f93e9ffb6c0 Level-0 table #905: started 2026/01/29-11:43:14.948296 7fa9a6fef6c0 Level-0 table #925: started
2026/01/07-15:53:28.426431 7f93e9ffb6c0 Level-0 table #905: 0 bytes OK 2026/01/29-11:43:14.948359 7fa9a6fef6c0 Level-0 table #925: 0 bytes OK
2026/01/07-15:53:28.432585 7f93e9ffb6c0 Delete type=0 #903 2026/01/29-11:43:14.954859 7fa9a6fef6c0 Delete type=0 #923
2026/01/07-15:53:28.440113 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2026/01/29-11:43:14.955000 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2026/01/07-15:09:19.313936 7f93eaffd6c0 Recovering log #896 2026/01/29-10:52:14.369127 7fac277fe6c0 Recovering log #916
2026/01/07-15:09:19.330494 7f93eaffd6c0 Delete type=3 #894 2026/01/29-10:52:14.379523 7fac277fe6c0 Delete type=3 #914
2026/01/07-15:09:19.330571 7f93eaffd6c0 Delete type=0 #896 2026/01/29-10:52:14.379589 7fac277fe6c0 Delete type=0 #916
2026/01/07-15:13:49.669421 7f93e9ffb6c0 Level-0 table #901: started 2026/01/29-10:55:44.836202 7fa9a6fef6c0 Level-0 table #921: started
2026/01/07-15:13:49.669459 7f93e9ffb6c0 Level-0 table #901: 0 bytes OK 2026/01/29-10:55:44.836244 7fa9a6fef6c0 Level-0 table #921: 0 bytes OK
2026/01/07-15:13:49.675608 7f93e9ffb6c0 Delete type=0 #899 2026/01/29-10:55:44.847287 7fa9a6fef6c0 Delete type=0 #919
2026/01/07-15:13:49.688874 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2026/01/29-10:55:44.847494 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

View File

@@ -16,6 +16,6 @@ if (location)
let roll = await new Roll("max(1, 1d10 - @system.characteristics.t.bonus)", this.actor).roll() let roll = await new Roll("max(1, 1d10 - @system.characteristics.t.bonus)", this.actor).roll()
roll.toMessage(this.script.getChatData({flavor : `${this.effet.name} (Durée)`})); roll.toMessage(this.script.getChatData({flavor : `${this.effect.name} (Durée)`}));
this.effet.updateSource({"duration.rounds" : roll.total}) this.effect.updateSource({"duration.rounds" : roll.total})

View File

@@ -1,6 +1,6 @@
if (!this.item.name.includes("(") || this.item.system.Tests.value.includes("Terrain") || this.item.system.Tests.value.toLowerCase().includes("(any)")) if (!this.item.name.includes("(") || this.item.system.tests.value.includes("Terrain") || this.item.system.tests.value.toLowerCase().includes("(any)"))
{ {
let Tests = this.item.system.Tests.value let Tests = this.item.system.tests.value
let name = this.item.name let name = this.item.name
// If name already specifies, make sure Tests value reflects that // If name already specifies, make sure Tests value reflects that
@@ -26,6 +26,6 @@ if (!this.item.name.includes("(") || this.item.system.Tests.value.includes("Terr
} }
} }
this.effet.updateSource({name}) this.effect.updateSource({name})
this.item.updateSource({name, "system.tests.value" : tests}) this.item.updateSource({name, "system.tests.value" : tests})
} }

View File

@@ -83,7 +83,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -1,4 +1,4 @@
let test = await args.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : " - " + this.effet.name, context : {failure: "Gain de 1 état Sonné"}}) let test = await args.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : " - " + this.effect.name, context : {failure: "Gain de 1 état Sonné"}})
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -69,7 +69,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -44,7 +44,7 @@ for (let trait of traits)
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("ag", {skipTargets: true, appendTitle : ` - ${this.effet.name}`}); let test = await this.actor.setupCharacteristic("ag", {skipTargets: true, appendTitle : ` - ${this.effect.name}`});
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -106,7 +106,7 @@ if (ride)
items = items.concat({name : "Chaos Steed", type: "trapping", "system.trappingType.value" : "misc"}, skill) items = items.concat({name : "Chaos Steed", type: "trapping", "system.trappingType.value" : "misc"}, skill)
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -69,7 +69,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -69,7 +69,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : " - " + this.effet.name, context : {failure: "GAin d'1 état Sonné"}}) let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : " - " + this.effect.name, context : {failure: "GAin d'1 état Sonné"}})
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -17,7 +17,7 @@ if (actor.itemTypes.skill.find(s => s.name === "Savoir (Océans)")) {
} }
let Test = await actor.setupSkill('Calme', { let Test = await actor.setupSkill('Calme', {
appendTitle: ` ${this.effet.name}`, appendTitle: ` ${this.effect.name}`,
skipTargets: true, skipTargets: true,
fields: {difficulty: 'easy'}, fields: {difficulty: 'easy'},
characteristic: 'wp', characteristic: 'wp',

View File

@@ -2,4 +2,4 @@ let roll = await new Roll("1d10").roll()
roll.toMessage(this.script.getChatData({flavor : `Lâche ${dropped.map(i => i.name).join(", ")}!`})); roll.toMessage(this.script.getChatData({flavor : `Lâche ${dropped.map(i => i.name).join(", ")}!`}));
this.effet.updateSource({"duration.rounds" : roll.total}) this.effect.updateSource({"duration.rounds" : roll.total})

View File

@@ -16,13 +16,13 @@ let test = await actor.setupCharacteristic("s", {
await Test.roll(); await Test.roll();
if (Test.succeeded) { if (Test.succeeded) {
let SL = parseInt(Test.result.SL); let SL = parseInt(Test.result.SL);
let name = this.effet.name.replace(/\d+/, rating => parseInt(rating) - SL); let name = this.effect.name.replace(/\d+/, rating => parseInt(rating) - SL);
await this.effet.update({name}); await this.effect.update({name});
} }
let rating = parseInt(this.effet.name.match(/\d+/)?.[0]); let rating = parseInt(this.effect.name.match(/\d+/)?.[0]);
if (rating <= 1) { if (rating <= 1) {
const scriptData = this.effet.system.scriptData const scriptData = this.effect.system.scriptData
scriptData[2].trigger = ''; scriptData[2].trigger = '';
await this.effet.update({disabled: true, "system.scriptData": scriptData}); await this.effect.update({disabled: true, "system.scriptData": scriptData});
} }

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("s", {appendTitle : ` - ${this.effet.name}`, fields : {difficulty : "difficult"}}); let test = await this.actor.setupCharacteristic("s", {appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "difficult"}});
await Test.roll(); await Test.roll();

View File

@@ -41,7 +41,7 @@ let traits = [ {name:`, {permanent : true})
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effet.name}`}) let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
await Test.roll(); await Test.roll();
if (Test.succeeded) if (Test.succeeded)
{ {

View File

@@ -3,12 +3,12 @@ if (args.attackerTest.data.preData.characteristic !== "s") return;
const SL = args.opposedTest.data.opposeResult.differenceSL; const SL = args.opposedTest.data.opposeResult.differenceSL;
const targetId = this.effet.getFlag("wfrp4e", "target"); const targetId = this.effect.getFlag("wfrp4e", "target");
const target = canvas.scene.tokens.get(targetId); const target = canvas.scene.tokens.get(targetId);
if (SL > 4) { if (SL > 4) {
args.opposedTest.data.opposeResult.other.push(`<b>${args.defenderTest.actor.name}</b> a été forcé de laisser partir <b>${target.name}</b>.`); args.opposedTest.data.opposeResult.other.push(`<b>${args.defenderTest.actor.name}</b> a été forcé de laisser partir <b>${target.name}</b>.`);
return await this.effet.delete(); return await this.effect.delete();
} }
if (SL > 0) { if (SL > 0) {

View File

@@ -24,7 +24,7 @@ async function rollTable(characteristics, formula, name) {
} }
const characteristics = new Set(); const characteristics = new Set();
await rollTable(characteristics, "2d10", this.effet.name) await rollTable(characteristics, "2d10", this.effect.name)
if (characteristics.has("*")) { if (characteristics.has("*")) {
characteristics.delete("*"); characteristics.delete("*");
@@ -41,4 +41,4 @@ if (characteristics.has("*")) {
characteristics.add(result); characteristics.add(result);
} }
this.effet.setFlag("wfrp4e", "characteristicsToSwap", Array.from(characteristics)); this.effect.setFlag("wfrp4e", "characteristicsToSwap", Array.from(characteristics));

View File

@@ -18,4 +18,4 @@ let roll = await new Roll("1d10").roll()
roll.toMessage(this.script.getChatData({flavor : `Lâche ${dropped.map(i => i.name).join(", ")}!`})); roll.toMessage(this.script.getChatData({flavor : `Lâche ${dropped.map(i => i.name).join(", ")}!`}));
this.effet.updateSource({"duration.rounds" : roll.total}) this.effect.updateSource({"duration.rounds" : roll.total})

View File

@@ -27,7 +27,7 @@ else
if (choice.length) if (choice.length)
{ {
let changes = foundry.utils.deepClone(this.effet.changes); let changes = foundry.utils.deepClone(this.effect.changes);
for(let training of choice) for(let training of choice)
{ {
@@ -62,7 +62,7 @@ if (choice.length)
case "guard" : case "guard" :
let territorial = await fromUuid("Compendium.wfrp4e-core.items.Item.JIAe7i7dqTQBu4do"); let territorial = await fromUuid("Compendium.wfrp4e-core.items.Item.JIAe7i7dqTQBu4do");
await this.actor.createEmbeddedDocuments("Item", [territorial], {fromEffect: this.effet.id}) await this.actor.createEmbeddedDocuments("Item", [territorial], {fromEffect: this.effect.id})
foundry.utils.setProperty(args, "options.keepId", true); foundry.utils.setProperty(args, "options.keepId", true);
break; break;
@@ -83,6 +83,6 @@ if (choice.length)
break; break;
} }
} }
this.effet.updateSource({name : `${this.effet.name} (${choice.map(i => i.name).join(", ")})`, changes, "flags.wfrp4e.trained" : choice.map(i => i.id)}) this.effect.updateSource({name : `${this.effect.name} (${choice.map(i => i.name).join(", ")})`, changes, "flags.wfrp4e.trained" : choice.map(i => i.id)})
this.item.updateSource({"system.specification.value" : `${choice.map(i => i.name).join(", ")}`}) this.item.updateSource({"system.specification.value" : `${choice.map(i => i.name).join(", ")}`})
} }

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effet.name}`}) let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -1,5 +1,5 @@
if (this.actor.Species.toLowerCase() != "skaven") { if (this.actor.Species.toLowerCase() != "skaven") {
this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - Utilise ${this.effet.name}`, fields: { difficulty: "difficult" } }).then(async Test => { this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - Utilise ${this.effect.name}`, fields: { difficulty: "difficult" } }).then(async Test => {
await Test.roll() await Test.roll()
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("wp", {fields: {difficulty : "average"}, skipTargets: true, appendTitle : ` - ${this.effet.name}`}) let test = await this.actor.setupCharacteristic("wp", {fields: {difficulty : "average"}, skipTargets: true, appendTitle : ` - ${this.effect.name}`})
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effet.name}`, fields : {difficulty : "difficult"}}) let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "difficult"}})
await test.roll(); await test.roll();
if (test.failed) if (test.failed)
{ {

View File

@@ -8,7 +8,7 @@ if (test.failed && (test.result.roll % 11 == 0 || test.result.roll == 100))
} }
else else
{ {
let points = this.effet.sourceTest.result.overcast.usage.other.current; let points = this.effect.sourceTest.result.overcast.usage.other.current;
this.actor.update({"system.status.corruption.value" : this.actor.system.status.corruption.value - points}) this.actor.update({"system.status.corruption.value" : this.actor.system.status.corruption.value - points})
this.script.message(`Perd de ${points} de Corruption`) this.script.message(`Perd de ${points} de Corruption`)
} }

View File

@@ -70,7 +70,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("ag", {skipTargets: true, appendTitle : ` - ${this.effet.name}`, context: { failure: "Goes Prone" }}) let test = await this.actor.setupCharacteristic("ag", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, context: { failure: "Goes Prone" }})
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -12,4 +12,4 @@ while (locations.length < 2)
locationText = locations.map(i => game.wfrp4e.config.locations[i]).join(", ") locationText = locations.map(i => game.wfrp4e.config.locations[i]).join(", ")
this.item.updateSource({name : this.item.name += ` (${locationText})`, "flags.wfrp4e.locations" : locations}) this.item.updateSource({name : this.item.name += ` (${locationText})`, "flags.wfrp4e.locations" : locations})
this.effet.updateSource({"flags.wfrp4e.locations" : locations}) this.effect.updateSource({"flags.wfrp4e.locations" : locations})

View File

@@ -138,6 +138,6 @@ arcane.forEach(i => {
}) })
let spells = [...petty, ...necromancy, ...arcane]; let spells = [...petty, ...necromancy, ...arcane];
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items.concat(spells)); this.actor.createEmbeddedDocuments("Item", items.concat(spells));

View File

@@ -8,7 +8,7 @@ if (stunned > this.actor.system.characteristics.t.bonus) {
const Test = await this.actor.setupSkill(game.i18n.localize("NAME.Cool"), { const Test = await this.actor.setupSkill(game.i18n.localize("NAME.Cool"), {
skipTargets: true, skipTargets: true,
appendTitle: ` - ${this.effet.name}`, appendTitle: ` - ${this.effect.name}`,
fields: {difficulty: "average"}, fields: {difficulty: "average"},
context: {failure: `Encaisse ${crit} à la tête.`} context: {failure: `Encaisse ${crit} à la tête.`}
}) })

View File

@@ -142,7 +142,7 @@ for (let spell of spells)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -25,7 +25,7 @@ filters = [
} }
] ]
let arcane = await ItemDialog.createFromFilters(filters, 12, {title : this.effet.name, text : "Choisissez 12 Sorts d'Arcane"}) let arcane = await ItemDialog.createFromFilters(filters, 12, {title : this.effect.name, text : "Choisissez 12 Sorts d'Arcane"})
let items = petty.map(i => i.toObject()).concat(arcane.map(i => { let items = petty.map(i => i.toObject()).concat(arcane.map(i => {
let spell = i.toObject(); let spell = i.toObject();

View File

@@ -96,7 +96,7 @@ if (ride)
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("i", {skipTargets: true, appendTitle : ` - ${this.effet.name}`, fields : {difficulty : "easy"}}) let test = await this.actor.setupCharacteristic("i", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "easy"}})
await Test.roll(); await Test.roll();
if (!Test.succeeded) if (!Test.succeeded)

View File

@@ -83,7 +83,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
console.log(">>>>>>><", items) console.log(">>>>>>><", items)

View File

@@ -70,7 +70,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -11,8 +11,8 @@ else
{ {
group = await ValueDialog.create({text : "Entrez le Groupe de Haine", title : "Groupe de Haine"}) group = await ValueDialog.create({text : "Entrez le Groupe de Haine", title : "Groupe de Haine"})
this.item.updateSource({name : this.item.name + ` (${group})`, "system.tests.value" : this.item.system.Tests.value.replace("Group", group)}) this.item.updateSource({name : this.item.name + ` (${group})`, "system.tests.value" : this.item.system.tests.value.replace("Group", group)})
this.effet.updateSource({name : this.effet.name + ` (${group})`}) this.effect.updateSource({name : this.effect.name + ` (${group})`})
} }

View File

@@ -1,4 +1,4 @@
if (args.effect.conditionId == "ablaze") if (args.effect.conditionId == "ablaze")
{ {
args.data.formula += ` + parseInt(this.effet.sourceTest.result.SL)` args.data.formula += ` + parseInt(this.effect.sourceTest.result.SL)`
} }

View File

@@ -4,6 +4,6 @@ this.script.notification(`Utilisé ${uses} fois`)
this.item.setFlag("wfrp4e", "uses", uses); this.item.setFlag("wfrp4e", "uses", uses);
if (uses >= 3) if (uses >= 3)
{ {
this.effet.update({"system.transferData.type" : "other"}) this.effect.update({"system.transferData.type" : "other"})
this.script.notification(`Utilisé`); this.script.notification(`Utilisé`);
} }

View File

@@ -8,7 +8,7 @@ if (SL >= 3)
difficulty = "vhard" difficulty = "vhard"
let test = await args.actor.setupCharacteristic("wp", {fields: {difficulty}, skipTargets: true, appendTitle : " - " + this.effet.name, context : {failure: "Reçoit un état Sonné"}}) let test = await args.actor.setupCharacteristic("wp", {fields: {difficulty}, skipTargets: true, appendTitle : " - " + this.effect.name, context : {failure: "Reçoit un état Sonné"}})
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -41,7 +41,7 @@ let traits = [ {name:`, {permanent : true})
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -11,7 +11,7 @@ if (this.item.system.tests.value.includes("(Groupe social)"))
} }
else else
{ {
let value = await ValueDialog.create({text : "Entrez le Groupe d'Étiquette", title : this.effet.name}); let value = await ValueDialog.create({text : "Entrez le Groupe d'Étiquette", title : this.effect.name});
if (value) if (value)
{ {
name = `${name.split("(")[0].trim()} (${value})` name = `${name.split("(")[0].trim()} (${value})`

View File

@@ -1,6 +1,6 @@
let amberTalons = foundry.utils.deepClone(game.wfrp4e.config.systemItems.unarmed); let amberTalons = foundry.utils.deepClone(game.wfrp4e.config.systemItems.unarmed);
amberTalons.name = "Serres d'ambre"; amberTalons.name = "Serres d'ambre";
amberTalons.img = this.effet.img; amberTalons.img = this.effect.img;
amberTalons.system.damage.value = "SB + WPB" amberTalons.system.damage.value = "SB + WPB"
amberTalons.system.equipped = true; amberTalons.system.equipped = true;
amberTalons.system.qualities.value.push({name : "magical"}) amberTalons.system.qualities.value.push({name : "magical"})

View File

@@ -1,7 +1,7 @@
if (args.totalWoundLoss > 0) if (args.totalWoundLoss > 0)
{ {
let test = await args.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effet.name}`, fields : {difficulty : "hard"}}) let test = await args.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "hard"}})
await test.roll() await test.roll()
if (test.failed) if (test.failed)
{ {

View File

@@ -12,15 +12,15 @@ if (turns > 0) {
return this.script.message(`<p><b>${speaker.alias}</b> continue de s'enrouler autour de <b>${target.name}</b>. Il pourra commencer à écraser dans ${turns} tours.</p>`); return this.script.message(`<p><b>${speaker.alias}</b> continue de s'enrouler autour de <b>${target.name}</b>. Il pourra commencer à écraser dans ${turns} tours.</p>`);
} }
if (this.actor.items.find(i => i.type === "extendedTest" && i.name === this.effet.name)) { if (this.actor.items.find(i => i.type === "extendedTest" && i.name === this.effect.name)) {
this.script.message(`<p><b>${speaker.alias}</b> peut reprendre l'écrasement de <b>${target.name}</b> avec le Test Étendu.</p>`); this.script.message(`<p><b>${speaker.alias}</b> peut reprendre l'écrasement de <b>${target.name}</b> avec le Test Étendu.</p>`);
return; return;
} }
const extendedTestData = { const extendedTestData = {
name: this.effet.name, name: this.effect.name,
type: "extendedTest", type: "extendedTest",
img: this.effet.img, img: this.effect.img,
system: { system: {
SL: { SL: {
current: 0, current: 0,
@@ -38,7 +38,7 @@ const extendedTestData = {
} }
}; };
const extendedTests = await this.actor.createEmbeddedDocuments("Item", [extendedTestData], {fromEffect: this.effet.id}); const extendedTests = await this.actor.createEmbeddedDocuments("Item", [extendedTestData], {fromEffect: this.effect.id});
const extendedTest = extendedTests[0]; const extendedTest = extendedTests[0];
this.script.message(`<p><b>${speaker.alias}</b> a fini de s'enrouler autour de <b>${target.name}</b>. Il peut maintenant commencer à écraser via le Test Étendu @UUID[${extendedTest.uuid}].</p>`); this.script.message(`<p><b>${speaker.alias}</b> a fini de s'enrouler autour de <b>${target.name}</b>. Il peut maintenant commencer à écraser via le Test Étendu @UUID[${extendedTest.uuid}].</p>`);

View File

@@ -116,7 +116,7 @@ for (let spell of spells)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -2,7 +2,7 @@ if (this.sourceActor.uuid === this.actor.uuid) return;
const test = await this.actor.setupCharacteristic("t", { const test = await this.actor.setupCharacteristic("t", {
skipTargets: true, skipTargets: true,
appendTitle: `${this.effet.name}`, appendTitle: `${this.effect.name}`,
fields: { fields: {
difficulty: "difficult" difficulty: "difficult"
}, },

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effet.name}`}) let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
await Test.roll(); await Test.roll();

View File

@@ -1,7 +1,7 @@
let tokenImg = ""; // Put path to token image here, inbetween the quotation marks let tokenImg = ""; // Put path to token image here, inbetween the quotation marks
if (tokenImg) if (tokenImg)
{ {
if (this.effet.getFlag("wfrp4e", "transformed")) if (this.effect.getFlag("wfrp4e", "transformed"))
{ {
await this.effect.setFlag("wfrp4e", "transformed", false); await this.effect.setFlag("wfrp4e", "transformed", false);
this.actor.getActiveTokens().forEach(t => t.document.update({texture : {src: this.actor.prototypeToken.texture.src}})); this.actor.getActiveTokens().forEach(t => t.document.update({texture : {src: this.actor.prototypeToken.texture.src}}));

View File

@@ -116,7 +116,7 @@ for (let spell of spells)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -18,7 +18,7 @@ do {
if (!choice) break; if (!choice) break;
const roll = new Roll("1d10"); const roll = new Roll("1d10");
await roll.toMessage({flavor: this.effet.name}); await roll.toMessage({flavor: this.effect.name});
if (roll.total >= 7) { if (roll.total >= 7) {
SL = -1; SL = -1;
@@ -28,4 +28,4 @@ do {
SL++; SL++;
} while (true); } while (true);
this.effet.setFlag("wfrp4e", "SL", SL); this.effect.setFlag("wfrp4e", "SL", SL);

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("t", { appendTitle: ` - ${this.effet.name}`, fields: { difficulty: "challenging" } }) let test = await this.actor.setupCharacteristic("t", { appendTitle: ` - ${this.effect.name}`, fields: { difficulty: "challenging" } })
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effet.name}`}) let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
await Test.roll(); await Test.roll();
// Kind of insane but whatever // Kind of insane but whatever

View File

@@ -108,7 +108,7 @@ if (ride)
items = items.concat({name : "Chaos Steed", type: "trapping", "system.trappingType.value" : "misc"}, skill) items = items.concat({name : "Chaos Steed", type: "trapping", "system.trappingType.value" : "misc"}, skill)
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
console.log(">>>>>>><", items) console.log(">>>>>>><", items)

View File

@@ -69,7 +69,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -1,5 +1,5 @@
let location = this.item.system.location.key let location = this.item.system.location.key
let test = await this.actor.setupCharacteristic("dex", {context : {failure : `<strong>${this.effect.name}</strong>: Lâchez l'objet!`}, skipTargets: true, appendTitle : " - " + this.effet.name, fields : {difficulty : "average"}}) let test = await this.actor.setupCharacteristic("dex", {context : {failure : `<strong>${this.effect.name}</strong>: Lâchez l'objet!`}, skipTargets: true, appendTitle : " - " + this.effect.name, fields : {difficulty : "average"}})
await Test.roll(); await Test.roll();

View File

@@ -96,7 +96,7 @@ if (ride)
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -9,7 +9,7 @@ else if (location == "rArm")
this.script.notification("Bras Droit") this.script.notification("Bras Droit")
} }
this.effet.updateSource({"flags.wfrp4e.location" : location}); this.effect.updateSource({"flags.wfrp4e.location" : location});
if (location) if (location)
{ {
@@ -29,4 +29,4 @@ let roll = await new Roll("1d10").roll()
roll.toMessage(this.script.getChatData({flavor : `Lâche ${dropped.map(i => i.name).join(", ")}!`})); roll.toMessage(this.script.getChatData({flavor : `Lâche ${dropped.map(i => i.name).join(", ")}!`}));
this.effet.updateSource({"duration.rounds" : roll.total}) this.effect.updateSource({"duration.rounds" : roll.total})

View File

@@ -83,7 +83,7 @@ for (let trapping of trappings)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
console.log(">>>>>>><", items) console.log(">>>>>>><", items)

View File

@@ -3,19 +3,19 @@ if (this.item.name.includes("(") && !this.item.name.toLowerCase().includes("(any
{ {
resistance = this.item.parenthesesText resistance = this.item.parenthesesText
} }
else else
{ {
resistance = await ValueDialog.create({text : "Entrez la Résistance", title : "Résistance"}) resistance = await ValueDialog.create({text : "Entrez la Résistance", title : "Résistance"})
if (resistance) if (resistance)
{ {
this.item.updateSource({name : `${this.item.name.split("(")[0].trim()} (${resistance})`}) this.item.updateSource({name : `${this.item.name.split("(")[0].trim()} (${resistance})`})
this.effet.updateSource({name : this.effet.name + ` (${resistance})`}) this.effect.updateSource({name : this.effect.name + ` (${resistance})`})
} }
} }
this.item.updateSource({"system.tests.value" : this.item.system.Tests.value.replace("the associated Threat", resistance)}) this.item.updateSource({"system.tests.value" : this.item.system.tests.value?.replace("la Menace associée", resistance) || resistance})
if (resistance && !this.effet.name.includes("(")) if (resistance && !this.effect.name.includes("("))
{ {
this.effect.updateSource({name : this.effect.name += ` (${resistance})`}) this.effect.updateSource({name : this.effect.name += ` (${resistance})`})
} }

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Cool"), {appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "difficult", slBonus : -1 * this.effet.sourceTest.result.SL}}) let test = await this.actor.setupSkill(game.i18n.localize("NAME.Cool"), {appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "difficult", slBonus : -1 * this.effect.sourceTest.result.SL}})
await Test.roll(); await Test.roll();
if (Test.succeeded) if (Test.succeeded)
{ {

View File

@@ -1,6 +1,6 @@
if (args.totalWoundLoss > 0) if (args.totalWoundLoss > 0)
{ {
args.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effet.name}`, fields: { difficulty: "difficult" } }).then(async Test => { args.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields: { difficulty: "difficult" } }).then(async Test => {
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effet.name}`, fields : {difficulty : "hard"}}) let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "hard"}})
await Test.roll(); await Test.roll();
if (Test.Échoué) if (Test.Échoué)
{ {

View File

@@ -142,7 +142,7 @@ for (let spell of spells)
} }
} }
updateObj.name = updateObj.name += " " + this.effet.name updateObj.name = updateObj.name += " " + this.effect.name
await this.actor.update(updateObj) await this.actor.update(updateObj)
this.actor.createEmbeddedDocuments("Item", items); this.actor.createEmbeddedDocuments("Item", items);

View File

@@ -2,7 +2,7 @@ if (!this.item.equipped.value) {
return this.script.notification(`Vous devez équiper le ${this.item.name} pour récupérer des points de blessures.`,"info") return this.script.notification(`Vous devez équiper le ${this.item.name} pour récupérer des points de blessures.`,"info")
} }
const runesOfRestoration = this.item.effects.contents.filter(e => e.name == this.effet.name) const runesOfRestoration = this.item.effects.contents.filter(e => e.name == this.effect.name)
const restorationWounds = parseInt(runesOfRestoration.length * this.actor.system.characteristics.t.bonus) const restorationWounds = parseInt(runesOfRestoration.length * this.actor.system.characteristics.t.bonus)
this.actor.modifyWounds(restorationWounds) this.actor.modifyWounds(restorationWounds)

View File

@@ -1,4 +1,4 @@
let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effet.name}`, fields : {difficulty : "vhard"}}); let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "vhard"}});
await Test.roll(); await Test.roll();
CorruptionMessageModel.createCorruptionMessage("minor", this.script.getChatData()) CorruptionMessageModel.createCorruptionMessage("minor", this.script.getChatData())

Some files were not shown because too many files have changed in this diff Show More