Compare commits
4 Commits
foundryvtt
...
foundryvtt
| Author | SHA1 | Date | |
|---|---|---|---|
| d557fac83f | |||
| f07ef0b01d | |||
| 301cc830bc | |||
| 786afeab74 |
@@ -5,9 +5,6 @@
|
||||
},
|
||||
{
|
||||
"path": "../WFRP4e-FoundryVTT"
|
||||
},
|
||||
{
|
||||
"path": "../WarhammerLibrary-FVTT"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
|
||||
6
fr.json
6
fr.json
@@ -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)",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
}
|
||||
],
|
||||
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
|
||||
"version": "9.3.7",
|
||||
"version": "9.4.2",
|
||||
"esmodules": [
|
||||
"wh4_fr.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",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-3-7.zip",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-4-2.zip",
|
||||
"id": "wh4-fr-translation",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
MANIFEST-001283
|
||||
MANIFEST-001299
|
||||
|
||||
@@ -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/03/04-00:01:24.197108 7f56f9bff6c0 Recovering log #1297
|
||||
2026/03/04-00:01:24.207650 7f56f9bff6c0 Delete type=3 #1295
|
||||
2026/03/04-00:01:24.207718 7f56f9bff6c0 Delete type=0 #1297
|
||||
2026/03/04-00:08:22.861497 7f54e37ef6c0 Level-0 table #1302: started
|
||||
2026/03/04-00:08:22.861539 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||
2026/03/04-00:08:22.902864 7f54e37ef6c0 Delete type=0 #1300
|
||||
2026/03/04-00:08:22.939799 7f54e37ef6c0 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/02/26-22:04:24.137615 7f63f7fff6c0 Recovering log #1293
|
||||
2026/02/26-22:04:24.149067 7f63f7fff6c0 Delete type=3 #1291
|
||||
2026/02/26-22:04:24.149129 7f63f7fff6c0 Delete type=0 #1293
|
||||
2026/02/26-22:04:46.481770 7f61f6fff6c0 Level-0 table #1298: started
|
||||
2026/02/26-22:04:46.481795 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||
2026/02/26-22:04:46.488240 7f61f6fff6c0 Delete type=0 #1296
|
||||
2026/02/26-22:04:46.495528 7f61f6fff6c0 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-001301
|
||||
|
||||
@@ -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/03/04-00:01:24.215723 7f56f93fe6c0 Recovering log #1299
|
||||
2026/03/04-00:01:24.225890 7f56f93fe6c0 Delete type=3 #1297
|
||||
2026/03/04-00:01:24.225964 7f56f93fe6c0 Delete type=0 #1299
|
||||
2026/03/04-00:08:22.071002 7f54e37ef6c0 Level-0 table #1304: started
|
||||
2026/03/04-00:08:22.071038 7f54e37ef6c0 Level-0 table #1304: 0 bytes OK
|
||||
2026/03/04-00:08:22.104811 7f54e37ef6c0 Delete type=0 #1302
|
||||
2026/03/04-00:08:22.138957 7f54e37ef6c0 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/02/26-22:04:24.151462 7f640d3fe6c0 Recovering log #1295
|
||||
2026/02/26-22:04:24.164087 7f640d3fe6c0 Delete type=3 #1293
|
||||
2026/02/26-22:04:24.164148 7f640d3fe6c0 Delete type=0 #1295
|
||||
2026/02/26-22:04:46.511516 7f61f6fff6c0 Level-0 table #1300: started
|
||||
2026/02/26-22:04:46.511542 7f61f6fff6c0 Level-0 table #1300: 0 bytes OK
|
||||
2026/02/26-22:04:46.518083 7f61f6fff6c0 Delete type=0 #1298
|
||||
2026/02/26-22:04:46.532552 7f61f6fff6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001283
|
||||
MANIFEST-001299
|
||||
|
||||
@@ -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/03/04-00:01:24.249439 7f56e3fff6c0 Recovering log #1297
|
||||
2026/03/04-00:01:24.259919 7f56e3fff6c0 Delete type=3 #1295
|
||||
2026/03/04-00:01:24.259974 7f56e3fff6c0 Delete type=0 #1297
|
||||
2026/03/04-00:08:22.139094 7f54e37ef6c0 Level-0 table #1302: started
|
||||
2026/03/04-00:08:22.139129 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||
2026/03/04-00:08:22.192132 7f54e37ef6c0 Delete type=0 #1300
|
||||
2026/03/04-00:08:22.365177 7f54e37ef6c0 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/02/26-22:04:24.183291 7f640dbff6c0 Recovering log #1293
|
||||
2026/02/26-22:04:24.198373 7f640dbff6c0 Delete type=3 #1291
|
||||
2026/02/26-22:04:24.198448 7f640dbff6c0 Delete type=0 #1293
|
||||
2026/02/26-22:04:46.518228 7f61f6fff6c0 Level-0 table #1298: started
|
||||
2026/02/26-22:04:46.518251 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||
2026/02/26-22:04:46.524767 7f61f6fff6c0 Delete type=0 #1296
|
||||
2026/02/26-22:04:46.532566 7f61f6fff6c0 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-001299
|
||||
|
||||
@@ -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/03/04-00:01:24.180286 7f56e3fff6c0 Recovering log #1297
|
||||
2026/03/04-00:01:24.190010 7f56e3fff6c0 Delete type=3 #1295
|
||||
2026/03/04-00:01:24.190063 7f56e3fff6c0 Delete type=0 #1297
|
||||
2026/03/04-00:08:22.033573 7f54e37ef6c0 Level-0 table #1302: started
|
||||
2026/03/04-00:08:22.033610 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||
2026/03/04-00:08:22.070732 7f54e37ef6c0 Delete type=0 #1300
|
||||
2026/03/04-00:08:22.138944 7f54e37ef6c0 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/02/26-22:04:24.123515 7f640d3fe6c0 Recovering log #1293
|
||||
2026/02/26-22:04:24.135202 7f640d3fe6c0 Delete type=3 #1291
|
||||
2026/02/26-22:04:24.135283 7f640d3fe6c0 Delete type=0 #1293
|
||||
2026/02/26-22:04:46.488408 7f61f6fff6c0 Level-0 table #1298: started
|
||||
2026/02/26-22:04:46.488442 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||
2026/02/26-22:04:46.495308 7f61f6fff6c0 Delete type=0 #1296
|
||||
2026/02/26-22:04:46.495540 7f61f6fff6c0 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-001299
|
||||
|
||||
@@ -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/03/04-00:01:24.164425 7f56f93fe6c0 Recovering log #1297
|
||||
2026/03/04-00:01:24.174481 7f56f93fe6c0 Delete type=3 #1295
|
||||
2026/03/04-00:01:24.174536 7f56f93fe6c0 Delete type=0 #1297
|
||||
2026/03/04-00:08:21.946425 7f54e37ef6c0 Level-0 table #1302: started
|
||||
2026/03/04-00:08:21.946466 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||
2026/03/04-00:08:21.989164 7f54e37ef6c0 Delete type=0 #1300
|
||||
2026/03/04-00:08:21.989360 7f54e37ef6c0 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/02/26-22:04:24.106231 7f640dbff6c0 Recovering log #1293
|
||||
2026/02/26-22:04:24.120853 7f640dbff6c0 Delete type=3 #1291
|
||||
2026/02/26-22:04:24.120905 7f640dbff6c0 Delete type=0 #1293
|
||||
2026/02/26-22:04:46.475371 7f61f6fff6c0 Level-0 table #1298: started
|
||||
2026/02/26-22:04:46.475399 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||
2026/02/26-22:04:46.481643 7f61f6fff6c0 Delete type=0 #1296
|
||||
2026/02/26-22:04:46.495513 7f61f6fff6c0 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-000942
|
||||
|
||||
@@ -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/03/04-00:01:24.231380 7f56f9bff6c0 Recovering log #940
|
||||
2026/03/04-00:01:24.242231 7f56f9bff6c0 Delete type=3 #938
|
||||
2026/03/04-00:01:24.242297 7f56f9bff6c0 Delete type=0 #940
|
||||
2026/03/04-00:08:22.105094 7f54e37ef6c0 Level-0 table #945: started
|
||||
2026/03/04-00:08:22.105137 7f54e37ef6c0 Level-0 table #945: 0 bytes OK
|
||||
2026/03/04-00:08:22.138651 7f54e37ef6c0 Delete type=0 #943
|
||||
2026/03/04-00:08:22.138969 7f54e37ef6c0 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/02/26-22:04:24.166725 7f63f7fff6c0 Recovering log #936
|
||||
2026/02/26-22:04:24.181007 7f63f7fff6c0 Delete type=3 #934
|
||||
2026/02/26-22:04:24.181079 7f63f7fff6c0 Delete type=0 #936
|
||||
2026/02/26-22:04:46.525121 7f61f6fff6c0 Level-0 table #941: started
|
||||
2026/02/26-22:04:46.525166 7f61f6fff6c0 Level-0 table #941: 0 bytes OK
|
||||
2026/02/26-22:04:46.532271 7f61f6fff6c0 Delete type=0 #939
|
||||
2026/02/26-22:04:46.532577 7f61f6fff6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
1
scripts/0FNOq4J1AdPd2A0q.js
Normal file
1
scripts/0FNOq4J1AdPd2A0q.js
Normal file
@@ -0,0 +1 @@
|
||||
return !args.skill?.name.includes(game.i18n.localize("NAME.Row")) && !args.skill?.name.includes(game.i18n.localize("NAME.Sail"));
|
||||
4
scripts/0J1yHP1jkGR9y89H.js
Normal file
4
scripts/0J1yHP1jkGR9y89H.js
Normal file
@@ -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'});
|
||||
9
scripts/0YKQGbsKdHSmYGE7.js
Normal file
9
scripts/0YKQGbsKdHSmYGE7.js
Normal file
@@ -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
|
||||
}
|
||||
|
||||
7
scripts/0mrUnxzufYgsR0Ph.js
Normal file
7
scripts/0mrUnxzufYgsR0Ph.js
Normal file
@@ -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")
|
||||
}
|
||||
})
|
||||
18
scripts/11ir8nibM5HD69na.js
Normal file
18
scripts/11ir8nibM5HD69na.js
Normal file
@@ -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});
|
||||
}
|
||||
@@ -1,31 +1,28 @@
|
||||
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 name = this.item.name
|
||||
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 name = this.item.name
|
||||
|
||||
// If name already specifies, make sure Tests value reflects that
|
||||
if (name.includes("(") && !name.toLowerCase().includes("(any)"))
|
||||
{
|
||||
let terrain = name.split("(")[1].split(")")[0]
|
||||
tests = tests.replace("the Terrain", terrain)
|
||||
}
|
||||
else // If no sense specified, provide dialog choice
|
||||
{
|
||||
let choice = await ItemDialog.create(ItemDialog.objectToArray({
|
||||
coastal : "Littoral",
|
||||
deserts : "Déserts",
|
||||
marshes : "Marécages",
|
||||
rocky : "Rocailleux",
|
||||
tundra : "Toundra",
|
||||
woodlands : "Régions boisées"
|
||||
}, this.item.img), 1, "Choisissez un Terrain");
|
||||
if (choice[0])
|
||||
{
|
||||
name = `${name.split("(")[0].trim()} (${choice[0].name})`
|
||||
tests = tests.replace("Terrain", choice[0].name + " Terrain")
|
||||
}
|
||||
// If name already specifies, make sure Tests value reflects that
|
||||
if (name.includes("(") && !name.toLowerCase().includes("(any)")) {
|
||||
let terrain = name.split("(")[1].split(")")[0]
|
||||
tests = tests.replace("the Terrain", terrain)
|
||||
}
|
||||
else // If no sense specified, provide dialog choice
|
||||
{
|
||||
let choice = await ItemDialog.create(ItemDialog.objectToArray({
|
||||
coastal: "Littoral",
|
||||
deserts: "Déserts",
|
||||
marshes: "Marécages",
|
||||
rocky: "Rocailleux",
|
||||
tundra: "Toundra",
|
||||
woodlands: "Régions boisées"
|
||||
}, this.item.img), 1, "Choisissez un Terrain");
|
||||
if (choice[0]) {
|
||||
name = `${name.split("(")[0].trim()} (${choice[0].name})`
|
||||
tests = tests.replace("Terrain", choice[0].name + " Terrain")
|
||||
}
|
||||
}
|
||||
|
||||
this.effect.updateSource({name})
|
||||
this.item.updateSource({name, "system.tests.value" : tests})
|
||||
this.effect.updateSource({ name })
|
||||
this.item.updateSource({ name, "system.tests.value": tests })
|
||||
}
|
||||
1
scripts/1A87vGLh2PXH0rG0.js
Normal file
1
scripts/1A87vGLh2PXH0rG0.js
Normal file
@@ -0,0 +1 @@
|
||||
return !args.skill?.name.includes(game.i18n.localize("NAME.Language"));
|
||||
1
scripts/1LDSzXeO5CzXgTOc.js
Normal file
1
scripts/1LDSzXeO5CzXgTOc.js
Normal file
@@ -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")})`
|
||||
3
scripts/1XAilPQEyMWVPA5z.js
Normal file
3
scripts/1XAilPQEyMWVPA5z.js
Normal file
@@ -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});
|
||||
19
scripts/1kB2su7hLRYDhZ2H.js
Normal file
19
scripts/1kB2su7hLRYDhZ2H.js
Normal file
@@ -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();
|
||||
7
scripts/1mNkLj9JYNr3ofC6.js
Normal file
7
scripts/1mNkLj9JYNr3ofC6.js
Normal file
@@ -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)
|
||||
}
|
||||
})
|
||||
1
scripts/1wKVvxRTHOyV4Qdv.js
Normal file
1
scripts/1wKVvxRTHOyV4Qdv.js
Normal file
@@ -0,0 +1 @@
|
||||
return !args.skill?.name?.includes(game.i18n.localize("NAME.Sail"))
|
||||
1
scripts/22bW97lkvCqisfHX.js
Normal file
1
scripts/22bW97lkvCqisfHX.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.type != "channelling" && !args.skill?.name.includes(game.i18n.localize("NAME.Channelling"))
|
||||
5
scripts/23HgjCB1oecxANvA.js
Normal file
5
scripts/23HgjCB1oecxANvA.js
Normal file
@@ -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
|
||||
}
|
||||
6
scripts/23PDHNZEnihcEvdK.js
Normal file
6
scripts/23PDHNZEnihcEvdK.js
Normal file
@@ -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})
|
||||
}
|
||||
1
scripts/2AdSBXw7IwCiqawQ.js
Normal file
1
scripts/2AdSBXw7IwCiqawQ.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.Bribery") || args.skill?.name.includes(game.i18n.localize("NAME.Stealth"));
|
||||
1
scripts/2NLINicPQWbuvp2n.js
Normal file
1
scripts/2NLINicPQWbuvp2n.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.item?.name != game.i18n.localize("NAME.Navigation")
|
||||
9
scripts/2VNnVrtktdGUqXEV.js
Normal file
9
scripts/2VNnVrtktdGUqXEV.js
Normal file
@@ -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))
|
||||
}
|
||||
}
|
||||
19
scripts/2W9uMTT6iJhfQ044.js
Normal file
19
scripts/2W9uMTT6iJhfQ044.js
Normal file
@@ -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)
|
||||
}
|
||||
4
scripts/2WSN306tL4apjRtD.js
Normal file
4
scripts/2WSN306tL4apjRtD.js
Normal file
@@ -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})
|
||||
1
scripts/2hzDv8ROulOe1elK.js
Normal file
1
scripts/2hzDv8ROulOe1elK.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name.includes(game.i18n.localize("NAME.Lore"));
|
||||
20
scripts/2sDH6RvoOAR40oqH.js
Normal file
20
scripts/2sDH6RvoOAR40oqH.js
Normal file
@@ -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 }))
|
||||
|
||||
})
|
||||
18
scripts/2vTVR0quRZQtjNfQ.js
Normal file
18
scripts/2vTVR0quRZQtjNfQ.js
Normal file
@@ -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)
|
||||
3
scripts/2z6DazIpsfiRZHdl.js
Normal file
3
scripts/2z6DazIpsfiRZHdl.js
Normal file
@@ -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});
|
||||
3
scripts/2zpYzKVDNE5y9RLL.js
Normal file
3
scripts/2zpYzKVDNE5y9RLL.js
Normal file
@@ -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)
|
||||
14
scripts/32EPIAz7Qm71ut3m.js
Normal file
14
scripts/32EPIAz7Qm71ut3m.js
Normal file
@@ -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;
|
||||
}
|
||||
1
scripts/3AbonnSVfoSlGye8.js
Normal file
1
scripts/3AbonnSVfoSlGye8.js
Normal file
@@ -0,0 +1 @@
|
||||
this.effect.updateSource({name: this.effect.setSpecifier("9")});
|
||||
44
scripts/3JEzEzF1SeYA9lsV.js
Normal file
44
scripts/3JEzEzF1SeYA9lsV.js
Normal file
@@ -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");
|
||||
}
|
||||
}
|
||||
2
scripts/3VhUyqNY18PzeMKG.js
Normal file
2
scripts/3VhUyqNY18PzeMKG.js
Normal file
@@ -0,0 +1,2 @@
|
||||
args.abort = true;
|
||||
this.script.notification("Impossible d'attaquer cette cible !");
|
||||
1
scripts/3hfMQkUKYI4rCuBy.js
Normal file
1
scripts/3hfMQkUKYI4rCuBy.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name != game.i18n.localize("NAME.CharmAnimal") && !args.skill?.name.includes(game.i18n.localize("NAME.AnimalTraining"));
|
||||
1
scripts/3plV9WFqs2prfAdp.js
Normal file
1
scripts/3plV9WFqs2prfAdp.js
Normal file
@@ -0,0 +1 @@
|
||||
return !["NAME.Evaluate", "NAME.Gamble"].map(i => game.i18n.localize(i)).includes(args.skill?.name)
|
||||
4
scripts/3sfD1nedXLzuYoXJ.js
Normal file
4
scripts/3sfD1nedXLzuYoXJ.js
Normal file
@@ -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())
|
||||
}
|
||||
1
scripts/3z3m1pmw03DbQzcb.js
Normal file
1
scripts/3z3m1pmw03DbQzcb.js
Normal file
@@ -0,0 +1 @@
|
||||
return this.effect.name !== game.i18n.localize("WFRP4E.YenluiLight")
|
||||
1
scripts/454x3Q95pLvZm0Kx.js
Normal file
1
scripts/454x3Q95pLvZm0Kx.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.ConsumeAlcohol");
|
||||
1
scripts/49smPAj5J0INSFPI.js
Normal file
1
scripts/49smPAj5J0INSFPI.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.item?.system.isRanged;
|
||||
1
scripts/4FGKZk2f0xrmIDnp.js
Normal file
1
scripts/4FGKZk2f0xrmIDnp.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name != game.i18n.localize("NAME.Research") && !args.skill?.name?.includes(game.i18n.localize("NAME.Language"));
|
||||
1
scripts/4WQ25VsJSUZ2DeRB.js
Normal file
1
scripts/4WQ25VsJSUZ2DeRB.js
Normal file
@@ -0,0 +1 @@
|
||||
this.actor.addEffectItems("Compendium.wfrp4e-core.items.Item.EO05HX7jql0g605A", this.effect, {"system.specification.value": this.actor.system.characteristics.ag.value});
|
||||
1
scripts/4ZR7p8G3OzOBWx0L.js
Normal file
1
scripts/4ZR7p8G3OzOBWx0L.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name !== game.i18n.localize("NAME.Endurance");
|
||||
10
scripts/4fnTKgl0HW9ZrWyJ.js
Normal file
10
scripts/4fnTKgl0HW9ZrWyJ.js
Normal file
@@ -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})
|
||||
}
|
||||
})
|
||||
1
scripts/4iuTz0uInAfMaoGl.js
Normal file
1
scripts/4iuTz0uInAfMaoGl.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name?.includes(game.i18n.localize("NAME.Language")) || args.type == "cast"
|
||||
7
scripts/4pQW4WLyhjbZR85k.js
Normal file
7
scripts/4pQW4WLyhjbZR85k.js
Normal file
@@ -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")})
|
||||
}
|
||||
10
scripts/4rb7LfMq9CTnlrpn.js
Normal file
10
scripts/4rb7LfMq9CTnlrpn.js
Normal file
@@ -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})
|
||||
}
|
||||
}
|
||||
1
scripts/52mwb33mGrQjq89B.js
Normal file
1
scripts/52mwb33mGrQjq89B.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name != game.i18n.localize("NAME.Research");
|
||||
1
scripts/5Fe1ELaS6Gnvy0Cj.js
Normal file
1
scripts/5Fe1ELaS6Gnvy0Cj.js
Normal file
@@ -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"
|
||||
1
scripts/5QR83whGk4ZyuJcA.js
Normal file
1
scripts/5QR83whGk4ZyuJcA.js
Normal file
@@ -0,0 +1 @@
|
||||
await this.effect.update({duration:{rounds: this.actor.system.characteristics.ws.bonus}});
|
||||
9
scripts/5QjaPBFbv5rIYpla.js
Normal file
9
scripts/5QjaPBFbv5rIYpla.js
Normal file
@@ -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)
|
||||
})
|
||||
}
|
||||
1
scripts/5o1XiceC4rutjMms.js
Normal file
1
scripts/5o1XiceC4rutjMms.js
Normal file
@@ -0,0 +1 @@
|
||||
return !args.item?.name.includes(game.i18n.localize("NAME.Stealth"))
|
||||
2
scripts/5rlneScoI5feQ3Di.js
Normal file
2
scripts/5rlneScoI5feQ3Di.js
Normal file
@@ -0,0 +1,2 @@
|
||||
const traits = this.actor.itemTypes.trait.filter(t => ["bestial", "skittish"].includes(s.name.toLowerCase()));
|
||||
trait.system.disabled = true;
|
||||
1
scripts/5sI9iYh5j2nx2XyT.js
Normal file
1
scripts/5sI9iYh5j2nx2XyT.js
Normal file
@@ -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")));
|
||||
8
scripts/6JrUjs3g5x6bFnj3.js
Normal file
8
scripts/6JrUjs3g5x6bFnj3.js
Normal file
@@ -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})
|
||||
6
scripts/6V3qHON3mcerlBlB.js
Normal file
6
scripts/6V3qHON3mcerlBlB.js
Normal file
@@ -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");
|
||||
}
|
||||
11
scripts/6ZS1rQLkNvMDO0Fp.js
Normal file
11
scripts/6ZS1rQLkNvMDO0Fp.js
Normal file
@@ -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)
|
||||
}
|
||||
|
||||
6
scripts/6a5nBENmfxy93vGY.js
Normal file
6
scripts/6a5nBENmfxy93vGY.js
Normal file
@@ -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;
|
||||
6
scripts/6fElmBxTjdAaubbK.js
Normal file
6
scripts/6fElmBxTjdAaubbK.js
Normal file
@@ -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")
|
||||
}
|
||||
1
scripts/6qUKKep5vhFYmo1J.js
Normal file
1
scripts/6qUKKep5vhFYmo1J.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.type == "channelling" || args.skill?.name.includes(game.i18n.localize("NAME.Channelling"))
|
||||
1
scripts/6tjn0RH4VyOPFneS.js
Normal file
1
scripts/6tjn0RH4VyOPFneS.js
Normal file
@@ -0,0 +1 @@
|
||||
return ["NAME.Row", "NAME.Swim"].map(i => game.i18n.localize(i)).includes(args.skill?.name);
|
||||
1
scripts/715G1Bf0haOHvmYQ.js
Normal file
1
scripts/715G1Bf0haOHvmYQ.js
Normal file
@@ -0,0 +1 @@
|
||||
return !(args.skill?.name == game.i18n.localize("NAME.Bribery") || args.skill?.name.includes(game.i18n.localize("NAME.Stealth")))
|
||||
21
scripts/7BgJe9YkbHTh3ucm.js
Normal file
21
scripts/7BgJe9YkbHTh3ucm.js
Normal file
@@ -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]);
|
||||
}
|
||||
4
scripts/7Ck0fkzE4WQ62qVe.js
Normal file
4
scripts/7Ck0fkzE4WQ62qVe.js
Normal file
@@ -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;
|
||||
}
|
||||
1
scripts/7H6wYyJ6cpaoc2QQ.js
Normal file
1
scripts/7H6wYyJ6cpaoc2QQ.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.Cool");
|
||||
1
scripts/7VAhXHov6pR1SkgD.js
Normal file
1
scripts/7VAhXHov6pR1SkgD.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.item?.name == game.i18n.localize("NAME.Endurance");
|
||||
1
scripts/7e8FgQUF2oANANmx.js
Normal file
1
scripts/7e8FgQUF2oANANmx.js
Normal file
@@ -0,0 +1 @@
|
||||
return args.skill?.name == game.i18n.localize("NAME.MeleeBrawling") || args.item?.weaponGroup?.value == "brawling"
|
||||
6
scripts/7szLG4VALuuy1cPm.js
Normal file
6
scripts/7szLG4VALuuy1cPm.js
Normal file
@@ -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")
|
||||
}
|
||||
1
scripts/84IB8CWa55XzoAkv.js
Normal file
1
scripts/84IB8CWa55XzoAkv.js
Normal file
@@ -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")));
|
||||
6
scripts/86ivOsBQAuu0UmFg.js
Normal file
6
scripts/86ivOsBQAuu0UmFg.js
Normal file
@@ -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");
|
||||
}
|
||||
16
scripts/8ByuHnUZ4RNTdGVv.js
Normal file
16
scripts/8ByuHnUZ4RNTdGVv.js
Normal file
@@ -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}`)
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user