Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 301cc830bc | |||
| 786afeab74 |
@@ -1192,6 +1192,10 @@
|
||||
"CHAT.ExpReceivedNoReason":"Vous avez reçu <b>{amount}</b> points d'expérience",
|
||||
"CHAT.CriticalDeflection":"Déviation de Critique",
|
||||
"CHAT.DamageToArmour":"1 Dommages appliqués à {item} ({type})",
|
||||
"CHAT.CastSpell":"Incanter {spell}",
|
||||
"CHAT.Dispel":"Dissiper {spell}",
|
||||
"CHAT.DissolutionTable":"Lancer sur la Table de Dissolution du Corps et de l'Esprit pour votre Espèce:<br>@Table[corruption]",
|
||||
"CHAT.InvokePrayer":"Invoquer {prayer}",
|
||||
|
||||
"Error.SpeciesSkills" : "Impossible d'ajouter des compétences pour les races",
|
||||
"Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races",
|
||||
@@ -2348,6 +2352,8 @@
|
||||
"EFFECT.AffectTheSourceOfFearName":"Tests qui affectent {name}",
|
||||
"EFFECT.DeletingEffectItems":"Suppression des items d'effets: {items}",
|
||||
"EFFECT.BlackpowderShock":"Contre-coup de Poudre Noire",
|
||||
"EFFECT.BonusModifier":"Modificateur de Bonus",
|
||||
"EFFECT.CharacteristicsBonus":"Caractéristiques (Modificateur de Bonus)",
|
||||
|
||||
"GRIEVANCE.Warning1":"Attention",
|
||||
"GRIEVANCE.Warning2":": Cette information est envoyé sur l'espace Github, qui est un espace publique, donc le Tag Discord est préférable. Sinon, contactez moi (MooMan) directement. Si vous avez l'impression que le bug concerne le module FR, contactez LeRatierBretonnier (Discord Foundry FR)",
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
}
|
||||
],
|
||||
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
|
||||
"version": "9.3.7",
|
||||
"version": "9.4.0",
|
||||
"esmodules": [
|
||||
"wh4_fr.js",
|
||||
"modules/babele-register.js",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
MANIFEST-001283
|
||||
MANIFEST-001287
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.937265 7fac3cbfe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.947854 7fac3cbfe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.947908 7fac3cbfe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.237866 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.237897 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.274449 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305057 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
2026/01/29-22:56:42.449653 7f78b77fe6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.460601 7f78b77fe6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.460653 7f78b77fe6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.335489 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.335514 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.341828 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.348187 7f78b67fc6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-10:58:42.937989 7fac277fe6c0 Recovering log #1277
|
||||
2026/01/29-10:58:42.947978 7fac277fe6c0 Delete type=3 #1275
|
||||
2026/01/29-10:58:42.948038 7fac277fe6c0 Delete type=0 #1277
|
||||
2026/01/29-11:43:15.082893 7fa9a6fef6c0 Level-0 table #1282: started
|
||||
2026/01/29-11:43:15.082936 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
|
||||
2026/01/29-11:43:15.089469 7fa9a6fef6c0 Delete type=0 #1280
|
||||
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)
|
||||
2026/01/29-20:23:41.937265 7fac3cbfe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.947854 7fac3cbfe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.947908 7fac3cbfe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.237866 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.237897 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.274449 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305057 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001285
|
||||
MANIFEST-001289
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.951251 7fac277fe6c0 Recovering log #1283
|
||||
2026/01/29-20:23:41.961856 7fac277fe6c0 Delete type=3 #1281
|
||||
2026/01/29-20:23:41.961911 7fac277fe6c0 Delete type=0 #1283
|
||||
2026/01/29-20:30:28.274586 7fa9a6fef6c0 Level-0 table #1288: started
|
||||
2026/01/29-20:30:28.274614 7fa9a6fef6c0 Level-0 table #1288: 0 bytes OK
|
||||
2026/01/29-20:30:28.304924 7fa9a6fef6c0 Delete type=0 #1286
|
||||
2026/01/29-20:30:28.305066 7fa9a6fef6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
2026/01/29-22:56:42.465768 7f78b7fff6c0 Recovering log #1287
|
||||
2026/01/29-22:56:42.475309 7f78b7fff6c0 Delete type=3 #1285
|
||||
2026/01/29-22:56:42.475364 7f78b7fff6c0 Delete type=0 #1287
|
||||
2026/01/29-22:57:35.362417 7f78b67fc6c0 Level-0 table #1292: started
|
||||
2026/01/29-22:57:35.362439 7f78b67fc6c0 Level-0 table #1292: 0 bytes OK
|
||||
2026/01/29-22:57:35.369784 7f78b67fc6c0 Delete type=0 #1290
|
||||
2026/01/29-22:57:35.376148 7f78b67fc6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-10:58:42.950367 7fac277fe6c0 Recovering log #1279
|
||||
2026/01/29-10:58:42.959516 7fac277fe6c0 Delete type=3 #1277
|
||||
2026/01/29-10:58:42.959596 7fac277fe6c0 Delete type=0 #1279
|
||||
2026/01/29-11:43:14.910167 7fa9a6fef6c0 Level-0 table #1284: started
|
||||
2026/01/29-11:43:14.910204 7fa9a6fef6c0 Level-0 table #1284: 0 bytes OK
|
||||
2026/01/29-11:43:14.916676 7fa9a6fef6c0 Delete type=0 #1282
|
||||
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)
|
||||
2026/01/29-20:23:41.951251 7fac277fe6c0 Recovering log #1283
|
||||
2026/01/29-20:23:41.961856 7fac277fe6c0 Delete type=3 #1281
|
||||
2026/01/29-20:23:41.961911 7fac277fe6c0 Delete type=0 #1283
|
||||
2026/01/29-20:30:28.274586 7fa9a6fef6c0 Level-0 table #1288: started
|
||||
2026/01/29-20:30:28.274614 7fa9a6fef6c0 Level-0 table #1288: 0 bytes OK
|
||||
2026/01/29-20:30:28.304924 7fa9a6fef6c0 Delete type=0 #1286
|
||||
2026/01/29-20:30:28.305066 7fa9a6fef6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001283
|
||||
MANIFEST-001287
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.979254 7fac277fe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.990432 7fac277fe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.990499 7fac277fe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.407331 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.407362 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.441323 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.642713 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
2026/01/29-22:56:42.493062 7f78b6ffd6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.503149 7f78b6ffd6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.503203 7f78b6ffd6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.355694 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.355726 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.362323 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.376141 7f78b67fc6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-10:58:42.977033 7fac3cbfe6c0 Recovering log #1277
|
||||
2026/01/29-10:58:42.986296 7fac3cbfe6c0 Delete type=3 #1275
|
||||
2026/01/29-10:58:42.986342 7fac3cbfe6c0 Delete type=0 #1277
|
||||
2026/01/29-11:43:14.924604 7fa9a6fef6c0 Level-0 table #1282: started
|
||||
2026/01/29-11:43:14.924660 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
|
||||
2026/01/29-11:43:14.930959 7fa9a6fef6c0 Delete type=0 #1280
|
||||
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)
|
||||
2026/01/29-20:23:41.979254 7fac277fe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.990432 7fac277fe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.990499 7fac277fe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.407331 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.407362 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.441323 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.642713 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001283
|
||||
MANIFEST-001287
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.924353 7fac3d3ff6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.933825 7fac3d3ff6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.933878 7fac3d3ff6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.174496 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.174527 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.203862 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305039 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
2026/01/29-22:56:42.435103 7f78cc9ff6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.445358 7f78cc9ff6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.445414 7f78cc9ff6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.328574 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.328607 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.335392 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.348176 7f78b67fc6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-10:58:42.926104 7fac277fe6c0 Recovering log #1277
|
||||
2026/01/29-10:58:42.935779 7fac277fe6c0 Delete type=3 #1275
|
||||
2026/01/29-10:58:42.935842 7fac277fe6c0 Delete type=0 #1277
|
||||
2026/01/29-11:43:14.916846 7fa9a6fef6c0 Level-0 table #1282: started
|
||||
2026/01/29-11:43:14.916889 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
|
||||
2026/01/29-11:43:14.924373 7fa9a6fef6c0 Delete type=0 #1280
|
||||
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)
|
||||
2026/01/29-20:23:41.924353 7fac3d3ff6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.933825 7fac3d3ff6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.933878 7fac3d3ff6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.174496 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.174527 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.203862 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305039 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001283
|
||||
MANIFEST-001287
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.909492 7fac277fe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.920402 7fac277fe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.920469 7fac277fe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.203984 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.204007 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.237718 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305049 7fa9a6fef6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
2026/01/29-22:56:42.421350 7f78b6ffd6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.431020 7f78b6ffd6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.431080 7f78b6ffd6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.341932 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.341953 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.348055 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.348196 7f78b67fc6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-10:58:42.911172 7fac3cbfe6c0 Recovering log #1277
|
||||
2026/01/29-10:58:42.922025 7fac3cbfe6c0 Delete type=3 #1275
|
||||
2026/01/29-10:58:42.922081 7fac3cbfe6c0 Delete type=0 #1277
|
||||
2026/01/29-11:43:14.903068 7fa9a6fef6c0 Level-0 table #1282: started
|
||||
2026/01/29-11:43:14.903107 7fa9a6fef6c0 Level-0 table #1282: 0 bytes OK
|
||||
2026/01/29-11:43:14.910024 7fa9a6fef6c0 Delete type=0 #1280
|
||||
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)
|
||||
2026/01/29-20:23:41.909492 7fac277fe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.920402 7fac277fe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.920469 7fac277fe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.203984 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.204007 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.237718 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305049 7fa9a6fef6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000926
|
||||
MANIFEST-000930
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.966258 7fac3cbfe6c0 Recovering log #924
|
||||
2026/01/29-20:23:41.975859 7fac3cbfe6c0 Delete type=3 #922
|
||||
2026/01/29-20:23:41.975913 7fac3cbfe6c0 Delete type=0 #924
|
||||
2026/01/29-20:30:28.375267 7fa9a6fef6c0 Level-0 table #929: started
|
||||
2026/01/29-20:30:28.375310 7fa9a6fef6c0 Level-0 table #929: 0 bytes OK
|
||||
2026/01/29-20:30:28.407196 7fa9a6fef6c0 Delete type=0 #927
|
||||
2026/01/29-20:30:28.642703 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
2026/01/29-22:56:42.478978 7f78b77fe6c0 Recovering log #928
|
||||
2026/01/29-22:56:42.489559 7f78b77fe6c0 Delete type=3 #926
|
||||
2026/01/29-22:56:42.489615 7f78b77fe6c0 Delete type=0 #928
|
||||
2026/01/29-22:57:35.369875 7f78b67fc6c0 Level-0 table #933: started
|
||||
2026/01/29-22:57:35.369900 7f78b67fc6c0 Level-0 table #933: 0 bytes OK
|
||||
2026/01/29-22:57:35.376019 7f78b67fc6c0 Delete type=0 #931
|
||||
2026/01/29-22:57:35.376158 7f78b67fc6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-10:58:42.964451 7fac3cbfe6c0 Recovering log #920
|
||||
2026/01/29-10:58:42.974523 7fac3cbfe6c0 Delete type=3 #918
|
||||
2026/01/29-10:58:42.974583 7fac3cbfe6c0 Delete type=0 #920
|
||||
2026/01/29-11:43:14.948296 7fa9a6fef6c0 Level-0 table #925: started
|
||||
2026/01/29-11:43:14.948359 7fa9a6fef6c0 Level-0 table #925: 0 bytes OK
|
||||
2026/01/29-11:43:14.954859 7fa9a6fef6c0 Delete type=0 #923
|
||||
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)
|
||||
2026/01/29-20:23:41.966258 7fac3cbfe6c0 Recovering log #924
|
||||
2026/01/29-20:23:41.975859 7fac3cbfe6c0 Delete type=3 #922
|
||||
2026/01/29-20:23:41.975913 7fac3cbfe6c0 Delete type=0 #924
|
||||
2026/01/29-20:30:28.375267 7fa9a6fef6c0 Level-0 table #929: started
|
||||
2026/01/29-20:30:28.375310 7fa9a6fef6c0 Level-0 table #929: 0 bytes OK
|
||||
2026/01/29-20:30:28.407196 7fa9a6fef6c0 Delete type=0 #927
|
||||
2026/01/29-20:30:28.642703 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
Binary file not shown.
@@ -0,0 +1 @@
|
||||
return !args.skill?.name.includes(game.i18n.localize("NAME.Row")) && !args.skill?.name.includes(game.i18n.localize("NAME.Sail"));
|
||||
@@ -0,0 +1,4 @@
|
||||
if (!this.item.system.properties.qualities.fast)
|
||||
this.item.system.qualities.value.push({name : 'fast'});
|
||||
if (!this.item.system.properties.qualities.magical)
|
||||
this.item.system.qualities.value.push({name : 'magical'});
|
||||
@@ -0,0 +1,9 @@
|
||||
if (args.skill?.name != game.i18n.localize("NAME.Gossip"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
args.data.reversal = {allowed : true, if: "success"}; // Kind of a kludge here, the talent Tests has a specific condition, but the description simply says "any gossip test can be reversed" so check it here instead of submission
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
this.actor.setupSkill(game.i18n.localize("NAME.Cool"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`}).then(async test => {
|
||||
await test.roll()
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("stunned")
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,18 @@
|
||||
const balanced = game.i18n.localize("WFRP4E.YenluiBalanced");
|
||||
const light = game.i18n.localize("WFRP4E.YenluiLight");
|
||||
const dark = game.i18n.localize("WFRP4E.YenluiDark");
|
||||
|
||||
let newName, newDescription;
|
||||
|
||||
if (this.effect.name === game.i18n.localize("WFRP4E.YenluiDark")) {
|
||||
newName = game.i18n.localize("WFRP4E.YenluiBalanced");
|
||||
newDescription = game.i18n.localize("WFRP4E.YenluiBalancedDesc");
|
||||
} else if (this.effect.name === game.i18n.localize("WFRP4E.YenluiBalanced")) {
|
||||
newName = game.i18n.localize("WFRP4E.YenluiLight");
|
||||
newDescription = game.i18n.localize("WFRP4E.YenluiLightDesc");
|
||||
}
|
||||
|
||||
if (newName) {
|
||||
await this.effect.update({name: newName});
|
||||
await this.item.update({name: newName, "system.description.value": newDescription});
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return !args.skill?.name.includes(game.i18n.localize("NAME.Language"));
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name.includes(game.i18n.localize("NAME.Channelling")) || args.skill?.name == `${game.i18n.localize("NAME.Language")} (${game.i18n.localize("SPEC.Magick")})`
|
||||
@@ -0,0 +1,3 @@
|
||||
const qualities = foundry.utils.deepClone(args.item.system.qualities.value);
|
||||
qualities.push({name:"fine", value: 1});
|
||||
args.item?.update({"system.qualities.value": qualities});
|
||||
@@ -0,0 +1,19 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : " - " + this.effect.name})
|
||||
await test.roll();
|
||||
if (!test.succeeded)
|
||||
{
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.ZhMADOqoo0y8Q9bx")
|
||||
let data = item.toObject();
|
||||
if (this.item.system.location.key == "rLeg")
|
||||
{
|
||||
data.system.location.value = "Orteil Droit"
|
||||
data.system.location.key = "rToe";
|
||||
}
|
||||
else if (this.item.system.location.key == "lLeg")
|
||||
{
|
||||
data.system.location.value = "Orteil Gauche"
|
||||
data.system.location.key = "lToe";
|
||||
}
|
||||
this.actor.createEmbeddedDocuments("Item", [data])
|
||||
}
|
||||
this.effect.delete();
|
||||
@@ -0,0 +1,7 @@
|
||||
this.actor.setupSkill(game.i18n.localize("NAME.Cool"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`}).then(async test => {
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("stunned", 3)
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1 @@
|
||||
return !args.skill?.name?.includes(game.i18n.localize("NAME.Sail"))
|
||||
@@ -0,0 +1 @@
|
||||
return args.type != "channelling" && !args.skill?.name.includes(game.i18n.localize("NAME.Channelling"))
|
||||
@@ -0,0 +1,5 @@
|
||||
if (args.item.range && args.item.range.bands)
|
||||
{
|
||||
args.item.range.bands[game.i18n.localize("Long Range")].modifier = 0
|
||||
args.item.range.bands[game.i18n.localize("Extreme")].modifier /= 2
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
if (args.test.result.castOutcome == "success" && args.test.spell.system.lore.value.includes("high"))
|
||||
{
|
||||
this.effect.update({name: this.effect.setSpecifier(parseInt(this.effect.specifier - 1))})
|
||||
|
||||
this.script.message("La valeur de Protection est maintenant de " + (this.effect.specifier - 1), {flavor: this.effect.sourceItem.name})
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.Bribery") || args.skill?.name.includes(game.i18n.localize("NAME.Stealth"));
|
||||
@@ -0,0 +1 @@
|
||||
return args.item?.name != game.i18n.localize("NAME.Navigation")
|
||||
@@ -0,0 +1,9 @@
|
||||
if (args.totalWoundLoss > 0)
|
||||
{
|
||||
let test = await args.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await test.roll();
|
||||
if (test.failed && parseInt(args.sourceTest?.result.SL) > 0)
|
||||
{
|
||||
args.actor.addCondition("stunned", parseInt(args.sourceTest?.attackerTest.result.SL))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
let skill = `${game.i18n.localize("NAME.Trade")} (${this.item.parenthesesText})`
|
||||
let currentCareer = this.actor.system.currentCareer;
|
||||
let existingSkill = this.actor.itemTypes.skill.find(i => i.name == skill);
|
||||
|
||||
if (!currentCareer) return
|
||||
|
||||
|
||||
let inCurrentCareer = currentCareer.system.skills.concat(currentCareer.system.addedSkills).includes(skill);
|
||||
let craftsmanAdded = this.actor.getFlag("wfrp4e", "craftsmanAdded") || {};
|
||||
if (existingSkill && inCurrentCareer && !craftsmanAdded[existingSkill.name])
|
||||
{
|
||||
existingSkill.system.advances.costModifier = -5;
|
||||
}
|
||||
else
|
||||
{
|
||||
craftsmanAdded[skill] = true;
|
||||
currentCareer.system.addedSkills.push(skill);
|
||||
foundry.utils.setProperty(this.actor, "flags.wfrp4e.craftsmanAdded", craftsmanAdded)
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.9h82z72XGo9tfgQS")
|
||||
let data = item.toObject();
|
||||
data.name = data.name += ` (${game.i18n.localize("SPEC.Hearing")})`
|
||||
this.actor.createEmbeddedDocuments("Item", [data], {fromEffect : this.effect.id})
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name.includes(game.i18n.localize("NAME.Lore"));
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
|
||||
if (!["Goblin", "Orc"].includes(this.actor.system.details.species.value)) {
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), { appendTitle: ` - ${this.effect.name}` })
|
||||
await test.roll();
|
||||
if (test.failed) {
|
||||
let infection = await fromUuid("Compendium.wfrp4e-core.items.Item.1hQuVFZt9QnnbWzg")
|
||||
this.actor.createEmbeddedDocuments("Item", [infection])
|
||||
}
|
||||
}
|
||||
|
||||
// Since wounds change when the effect is deleted, need to wait until after
|
||||
// the max wounds have been recalculated to apply damage
|
||||
warhammer.utility.sleep(1000).then(async () => {
|
||||
let roll = await new Roll("1d10").roll({allowInteractive : false});
|
||||
|
||||
roll.toMessage(this.script.getChatData());
|
||||
this.script.message(await this.actor.applyBasicDamage(roll.total, { damageType: game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL, suppressMsg: true }))
|
||||
|
||||
})
|
||||
@@ -0,0 +1,18 @@
|
||||
let currentCareer = this.actor.system.currentCareer;
|
||||
if (!currentCareer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
let talents = [game.i18n.localize("NAME.AA"),
|
||||
`${game.i18n.localize("NAME.ArcaneMagic")} (${game.i18n.localize("SPEC.Any")})`,
|
||||
game.i18n.localize("NAME.ChaosMagic") + " " + "(Tzeentch)",
|
||||
game.i18n.localize("NAME.FastHands"),
|
||||
game.i18n.localize("NAME.ID"),
|
||||
game.i18n.localize("NAME.MagicalSense"),
|
||||
game.i18n.localize("NAME.PettyMagic"),
|
||||
game.i18n.localize("NAME.SecondSight"),
|
||||
game.i18n.localize("NAME.WarWizard"),
|
||||
game.i18n.localize("NAME.Witch")].filter(t => !currentCareer.system.talents.includes(t))
|
||||
|
||||
currentCareer.system.talents = currentCareer.system.talents.concat(talents)
|
||||
@@ -0,0 +1,3 @@
|
||||
const qualities = foundry.utils.deepClone(args.item.system.qualities.value);
|
||||
qualities.push({name:"lightweight"});
|
||||
args.item?.update({"system.qualities.value": qualities});
|
||||
@@ -0,0 +1,3 @@
|
||||
return !args.actor?.has(game.i18n.localize("NAME.Swarm")) ||
|
||||
![game.wfrp4e.config.actorSizeNums.tiny, game.wfrp4e.config.actorSizeNums.ltl]
|
||||
.includes(args.actor?.sizeNum)
|
||||
@@ -0,0 +1,14 @@
|
||||
if (Number(this.actor.system.details.age.value) > 870) {
|
||||
if (["t", "wp", "fel"].includes(args.characteristic))
|
||||
args.fields.slBonus -= 3;
|
||||
if (["ag", "dex", "int"].includes(args.characteristic))
|
||||
args.fields.slBonus -= 2;
|
||||
} else if (Number(this.actor.system.details.age.value) > 350) {
|
||||
if (["t", "wp"].includes(args.characteristic))
|
||||
args.fields.slBonus -= 2;
|
||||
if (["fel"].includes(args.characteristic))
|
||||
args.fields.slBonus -= 1;
|
||||
} else {
|
||||
if (["t", "wp"].includes(args.characteristic))
|
||||
args.fields.slBonus -= 1;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
this.effect.updateSource({name: this.effect.setSpecifier("9")});
|
||||
@@ -0,0 +1,44 @@
|
||||
let choice = await ItemDialog.create(ItemDialog.objectToArray(game.wfrp4e.config.locations, this.effect.img), 1, "Choose Location");
|
||||
if (choice[0])
|
||||
{
|
||||
this.effect.updateSource({name : `${this.effect.name} (${choice[0].name})`})
|
||||
this.effect.updateSource({"flags.wfrp4e.location" : choice[0].id})
|
||||
}
|
||||
|
||||
let location = choice[0].id;
|
||||
|
||||
if (["lArm", "rArm"].includes(location))
|
||||
{
|
||||
let dropped = this.actor.itemTypes.weapon.filter(i => i.isEquipped & i.system.usesHands.includes(location));
|
||||
|
||||
if (dropped.length)
|
||||
{
|
||||
this.script.notification(`Dropped ${dropped.map(i => i.name).join(", ")}!`)
|
||||
for(let weapon of dropped)
|
||||
{
|
||||
await weapon.system.toggleEquip();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (location == "body")
|
||||
{
|
||||
await this.actor.addCondition("fatigued");
|
||||
test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {fields : {difficulty : "hard"}, skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("prone");
|
||||
}
|
||||
}
|
||||
|
||||
if (location == "head")
|
||||
{
|
||||
await this.actor.addCondition("stunned");
|
||||
test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {fields : {difficulty : "average"}, skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("unconscious");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
args.abort = true;
|
||||
this.script.notification("Impossible d'attaquer cette cible !");
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name != game.i18n.localize("NAME.CharmAnimal") && !args.skill?.name.includes(game.i18n.localize("NAME.AnimalTraining"));
|
||||
@@ -0,0 +1 @@
|
||||
return !["NAME.Evaluate", "NAME.Gamble"].map(i => game.i18n.localize(i)).includes(args.skill?.name)
|
||||
@@ -0,0 +1,4 @@
|
||||
if (this.actor.hasCondition("surprised"))
|
||||
{
|
||||
this.actor.setupSkill(game.i18n.localize("NAME.Cool"), {fields : {difficulty : "average"}, skipTargets: true, appendTitle : " - " + this.effect.name}).then(test => test.roll())
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return this.effect.name !== game.i18n.localize("WFRP4E.YenluiLight")
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.ConsumeAlcohol");
|
||||
@@ -0,0 +1 @@
|
||||
return args.item?.system.isRanged;
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name != game.i18n.localize("NAME.Research") && !args.skill?.name?.includes(game.i18n.localize("NAME.Language"));
|
||||
@@ -0,0 +1 @@
|
||||
this.actor.addEffectItems("Compendium.wfrp4e-core.items.Item.EO05HX7jql0g605A", this.effect, {"system.specification.value": this.actor.system.characteristics.ag.value});
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name !== game.i18n.localize("NAME.Endurance");
|
||||
@@ -0,0 +1,10 @@
|
||||
this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields: {difficulty : "average"}}).then(async test =>
|
||||
{
|
||||
await test.roll()
|
||||
if (test.failed)
|
||||
{
|
||||
let char = Math.ceil(CONFIG.Dice.randomUniform() * 2) == 2 ? "s" : "t";
|
||||
this.script.message(`<strong>${this.actor.name}</strong> perd 1 point de ${game.wfrp4e.config.characteristics[char]}`)
|
||||
this.actor.update({[`system.characteristics.${char}.initial`] : this.actor.system.characteristics[char].initial - 1})
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name?.includes(game.i18n.localize("NAME.Language")) || args.type == "cast"
|
||||
@@ -0,0 +1,7 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "average"}, context : {failure: "1 Corruption Point Gained"}})
|
||||
await test.roll();
|
||||
if (test.failed && this.actor.type == "character")
|
||||
{
|
||||
this.actor.update({"system.status.corruption.value" : parseInt(this.actor.status.corruption.value) + 1})
|
||||
this.script.message("Gain de 1 point de Corruption", {whisper : ChatMessage.getWhisperRecipients("GM")})
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
if (args.totalWoundLoss > 0)
|
||||
{
|
||||
let test = await args.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : " - " + this.effect.name})
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
args.totalWoundLoss += 5;
|
||||
args.modifiers.other.push({label : this.effect.name, value : 5})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name != game.i18n.localize("NAME.Research");
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name.includes(game.i18n.localize("NAME.Channelling")) || args.type == "channelling" || args.skill?.name == game.i18n.localize("NAME.Charm") || args.skill?.name.includes(`${game.i18n.localize("NAME.Language")} (${game.i18n.localize("SPEC.Magick")})`) || args.type == "cast"
|
||||
@@ -0,0 +1 @@
|
||||
await this.effect.update({duration:{rounds: this.actor.system.characteristics.ws.bonus}});
|
||||
@@ -0,0 +1,9 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {fields: {difficulty : "average"}, appendTitle : " - Wounded"})
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
fromUuid("Compendium.wfrp4e-core.items.kKccDTGzWzSXCBOb").then(disease => {
|
||||
this.actor.createEmbeddedDocuments("Item", [disease.toObject()])
|
||||
this.script.scriptNotification("Gain de " + disease.name)
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return !args.item?.name.includes(game.i18n.localize("NAME.Stealth"))
|
||||
@@ -0,0 +1,2 @@
|
||||
const traits = this.actor.itemTypes.trait.filter(t => ["bestial", "skittish"].includes(s.name.toLowerCase()));
|
||||
trait.system.disabled = true;
|
||||
@@ -0,0 +1 @@
|
||||
return !([game.i18n.localize("NAME.AnimalCare"), game.i18n.localize("NAME.CharmAnimal")].includes(args.item?.name) || args.item?.name.includes(game.i18n.localize("NAME.Ride")) || args.item?.name.includes(game.i18n.localize("NAME.AnimalTraining")));
|
||||
@@ -0,0 +1,8 @@
|
||||
let bite = await fromUuid("Compendium.wfrp4e-core.items.pLW9SVX0TVTYPiPv")
|
||||
let sense = await fromUuid("Compendium.wfrp4e-core.items.9h82z72XGo9tfgQS")
|
||||
let biteData = bite.toObject();
|
||||
let senseData = sense.toObject();
|
||||
|
||||
biteData.system.specification.value = 6 - this.actor.characteristics.s.bonus;
|
||||
senseData.name = senseData.name += game.i18n.localize("SPEC.Smell")
|
||||
this.actor.createEmbeddedDocuments("Item", [biteData, senseData], {fromEffect : this.effect.id})
|
||||
@@ -0,0 +1,6 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("prone");
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
let roll = Math.ceil(CONFIG.Dice.randomUniform() * 10)
|
||||
if (args.test.isFumble && roll == 1 && !args.test.result.misfire)
|
||||
{
|
||||
args.test.result.misfire = game.i18n.localize("Misfire") + " (Rolled 1)"
|
||||
args.test.result.misfireDamage = eval(parseInt(args.test.result.roll.toString().split('').pop()) + args.test.item.Damage)
|
||||
}
|
||||
else if (args.test.isFumble && roll != 1)
|
||||
{
|
||||
args.test.result.other.push("Misfire Roll: " + roll)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
const deduct = this.effect.setFlag("wfrp4e", "failed");
|
||||
|
||||
if (!deduct) return;
|
||||
|
||||
this.actor.system.characteristics.ws.modifier -= 20;
|
||||
this.actor.system.characteristics.bs.modifier -= 20;
|
||||
@@ -0,0 +1,6 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields: {difficulty: "average"}});
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("prone")
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return args.type == "channelling" || args.skill?.name.includes(game.i18n.localize("NAME.Channelling"))
|
||||
@@ -0,0 +1 @@
|
||||
return ["NAME.Row", "NAME.Swim"].map(i => game.i18n.localize(i)).includes(args.skill?.name);
|
||||
@@ -0,0 +1 @@
|
||||
return !(args.skill?.name == game.i18n.localize("NAME.Bribery") || args.skill?.name.includes(game.i18n.localize("NAME.Stealth")))
|
||||
@@ -0,0 +1,21 @@
|
||||
if (args.totalWoundLoss <= 0) return;
|
||||
|
||||
const test = await this.actor.setupSkill(
|
||||
game.i18n.localize("NAME.Endurance"),
|
||||
{
|
||||
fields: {difficulty: "difficult"},
|
||||
skipTargets: true,
|
||||
appendTitle: ` — ${this.effect.name}`,
|
||||
},
|
||||
);
|
||||
|
||||
await test.roll();
|
||||
|
||||
if (test.failed) {
|
||||
const item = await fromUuid("Compendium.wfrp4e-core.items.Item.kKccDTGzWzSXCBOb");
|
||||
const data = item.toObject();
|
||||
|
||||
data.system.duration.active = true;
|
||||
|
||||
args.actor.createEmbeddedDocuments("Item", [data]);
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
if (args.item.type == "skill" && args.item.name == `${game.i18n.localize("NAME.Melee")} (${game.i18n.localize("SPEC.Basic")})`)
|
||||
{
|
||||
args.item.system.modifier.value += 20;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.Cool");
|
||||
@@ -0,0 +1 @@
|
||||
return args.item?.name == game.i18n.localize("NAME.Endurance");
|
||||
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.MeleeBrawling") || args.item?.weaponGroup?.value == "brawling"
|
||||
@@ -0,0 +1,6 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "easy"}})
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
await this.actor.addCondition("fatigued")
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
return ([game.i18n.localize("NAME.AnimalCare"), game.i18n.localize("NAME.CharmAnimal")].includes(args.item?.name) || args.item?.name.includes(game.i18n.localize("NAME.Ride")) || args.item?.name.includes(game.i18n.localize("NAME.AnimalTraining")));
|
||||
@@ -0,0 +1,6 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Endurance"), {fields : {difficulty : "hard"}, appendTitle : ` - ${this.effect.name}`, skipTargets: true});
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("poisoned");
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
let strLoss = Math.ceil(CONFIG.Dice.randomUniform() * 10)
|
||||
let tghLoss = Math.ceil(CONFIG.Dice.randomUniform() * 10)
|
||||
|
||||
if (!this.actor.has("Undead") && !this.actor.has("Daemonic"))
|
||||
{
|
||||
this.actor.setupSkill(game.i18n.localize("NAME.Cool"), { appendTitle: " - " + this.effect.name, fields: { difficulty: "average" }, context: { failure: `Lost ${strLoss} Strength and ${tghLoss} Toughness` } }).then(async test => {
|
||||
await test.roll();
|
||||
if (test.failed) {
|
||||
this.actor.update({ "system.characteristics.s.initial": this.actor.system.characteristics.s.initial - strLoss, "system.characteristics.t.initial": this.actor.system.characteristics.t.initial - tghLoss })
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
else {
|
||||
this.script.notification(`<strong>${this.actor.name}</strong> est immunisé contre ${this.effect.name}`)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
let damage = this.effect.sourceTest.result.damage;
|
||||
|
||||
if (this.actor.sizeNum >= game.wfrp4e.config.actorSizeNums.lrg)
|
||||
damage += 7; // goes from +8 to +15;
|
||||
|
||||
if (this.actor.has(game.i18n.localize("NAME.Unstable")))
|
||||
damage *= 2;
|
||||
|
||||
this.actor.applyDamage(damage, {
|
||||
loc: "roll",
|
||||
createMessage: this.script.getChatData()
|
||||
});
|
||||
@@ -0,0 +1 @@
|
||||
return !args.skill?.name?.includes(game.i18n.localize("NAME.Lore"))
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user