Compare commits
7 Commits
foundryvtt
...
foundryvtt
| Author | SHA1 | Date | |
|---|---|---|---|
| d557fac83f | |||
| f07ef0b01d | |||
| 301cc830bc | |||
| 786afeab74 | |||
| e0383def30 | |||
| 7dc51444f0 | |||
| 752a6701c0 |
@@ -5,9 +5,6 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "../WFRP4e-FoundryVTT"
|
"path": "../WFRP4e-FoundryVTT"
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "../WarhammerLibrary-FVTT"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"settings": {}
|
"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.ExpReceivedNoReason":"Vous avez reçu <b>{amount}</b> points d'expérience",
|
||||||
"CHAT.CriticalDeflection":"Déviation de Critique",
|
"CHAT.CriticalDeflection":"Déviation de Critique",
|
||||||
"CHAT.DamageToArmour":"1 Dommages appliqués à {item} ({type})",
|
"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.SpeciesSkills" : "Impossible d'ajouter des compétences pour les races",
|
||||||
"Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races",
|
"Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races",
|
||||||
@@ -2348,6 +2352,8 @@
|
|||||||
"EFFECT.AffectTheSourceOfFearName":"Tests qui affectent {name}",
|
"EFFECT.AffectTheSourceOfFearName":"Tests qui affectent {name}",
|
||||||
"EFFECT.DeletingEffectItems":"Suppression des items d'effets: {items}",
|
"EFFECT.DeletingEffectItems":"Suppression des items d'effets: {items}",
|
||||||
"EFFECT.BlackpowderShock":"Contre-coup de Poudre Noire",
|
"EFFECT.BlackpowderShock":"Contre-coup de Poudre Noire",
|
||||||
|
"EFFECT.BonusModifier":"Modificateur de Bonus",
|
||||||
|
"EFFECT.CharacteristicsBonus":"Caractéristiques (Modificateur de Bonus)",
|
||||||
|
|
||||||
"GRIEVANCE.Warning1":"Attention",
|
"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)",
|
"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",
|
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
|
||||||
"version": "9.3.5",
|
"version": "9.4.2",
|
||||||
"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-4-2.zip",
|
||||||
"id": "wh4-fr-translation",
|
"id": "wh4-fr-translation",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "13",
|
"minimum": "13",
|
||||||
|
|||||||
@@ -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,8 +424,10 @@ 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;
|
||||||
|
if ( trait_en.system?.description?.value && trait_fr.system?.description?.value) {
|
||||||
trait_en.system.description.value = trait_fr.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
@@ -1 +1 @@
|
|||||||
MANIFEST-001259
|
MANIFEST-001299
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2026/01/07-15:26:43.527176 7f93eaffd6c0 Recovering log #1257
|
2026/03/04-00:01:24.197108 7f56f9bff6c0 Recovering log #1297
|
||||||
2026/01/07-15:26:43.536993 7f93eaffd6c0 Delete type=3 #1255
|
2026/03/04-00:01:24.207650 7f56f9bff6c0 Delete type=3 #1295
|
||||||
2026/01/07-15:26:43.537037 7f93eaffd6c0 Delete type=0 #1257
|
2026/03/04-00:01:24.207718 7f56f9bff6c0 Delete type=0 #1297
|
||||||
2026/01/07-15:53:28.412551 7f93e9ffb6c0 Level-0 table #1262: started
|
2026/03/04-00:08:22.861497 7f54e37ef6c0 Level-0 table #1302: started
|
||||||
2026/01/07-15:53:28.412580 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK
|
2026/03/04-00:08:22.861539 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||||
2026/01/07-15:53:28.419118 7f93e9ffb6c0 Delete type=0 #1260
|
2026/03/04-00:08:22.902864 7f54e37ef6c0 Delete type=0 #1300
|
||||||
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/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/07-15:09:19.276373 7f93eaffd6c0 Recovering log #1253
|
2026/02/26-22:04:24.137615 7f63f7fff6c0 Recovering log #1293
|
||||||
2026/01/07-15:09:19.291800 7f93eaffd6c0 Delete type=3 #1251
|
2026/02/26-22:04:24.149067 7f63f7fff6c0 Delete type=3 #1291
|
||||||
2026/01/07-15:09:19.291847 7f93eaffd6c0 Delete type=0 #1253
|
2026/02/26-22:04:24.149129 7f63f7fff6c0 Delete type=0 #1293
|
||||||
2026/01/07-15:13:49.642315 7f93e9ffb6c0 Level-0 table #1258: started
|
2026/02/26-22:04:46.481770 7f61f6fff6c0 Level-0 table #1298: started
|
||||||
2026/01/07-15:13:49.642358 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK
|
2026/02/26-22:04:46.481795 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||||
2026/01/07-15:13:49.649460 7f93e9ffb6c0 Delete type=0 #1256
|
2026/02/26-22:04:46.488240 7f61f6fff6c0 Delete type=0 #1296
|
||||||
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/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-001261
|
MANIFEST-001301
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2026/01/07-15:26:43.539401 7f93ebfff6c0 Recovering log #1259
|
2026/03/04-00:01:24.215723 7f56f93fe6c0 Recovering log #1299
|
||||||
2026/01/07-15:26:43.549699 7f93ebfff6c0 Delete type=3 #1257
|
2026/03/04-00:01:24.225890 7f56f93fe6c0 Delete type=3 #1297
|
||||||
2026/01/07-15:26:43.549758 7f93ebfff6c0 Delete type=0 #1259
|
2026/03/04-00:01:24.225964 7f56f93fe6c0 Delete type=0 #1299
|
||||||
2026/01/07-15:53:28.419273 7f93e9ffb6c0 Level-0 table #1264: started
|
2026/03/04-00:08:22.071002 7f54e37ef6c0 Level-0 table #1304: started
|
||||||
2026/01/07-15:53:28.419304 7f93e9ffb6c0 Level-0 table #1264: 0 bytes OK
|
2026/03/04-00:08:22.071038 7f54e37ef6c0 Level-0 table #1304: 0 bytes OK
|
||||||
2026/01/07-15:53:28.426268 7f93e9ffb6c0 Delete type=0 #1262
|
2026/03/04-00:08:22.104811 7f54e37ef6c0 Delete type=0 #1302
|
||||||
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/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/07-15:09:19.293766 7f93ea7fc6c0 Recovering log #1255
|
2026/02/26-22:04:24.151462 7f640d3fe6c0 Recovering log #1295
|
||||||
2026/01/07-15:09:19.310998 7f93ea7fc6c0 Delete type=3 #1253
|
2026/02/26-22:04:24.164087 7f640d3fe6c0 Delete type=3 #1293
|
||||||
2026/01/07-15:09:19.311072 7f93ea7fc6c0 Delete type=0 #1255
|
2026/02/26-22:04:24.164148 7f640d3fe6c0 Delete type=0 #1295
|
||||||
2026/01/07-15:13:49.675722 7f93e9ffb6c0 Level-0 table #1260: started
|
2026/02/26-22:04:46.511516 7f61f6fff6c0 Level-0 table #1300: started
|
||||||
2026/01/07-15:13:49.675750 7f93e9ffb6c0 Level-0 table #1260: 0 bytes OK
|
2026/02/26-22:04:46.511542 7f61f6fff6c0 Level-0 table #1300: 0 bytes OK
|
||||||
2026/01/07-15:13:49.682225 7f93e9ffb6c0 Delete type=0 #1258
|
2026/02/26-22:04:46.518083 7f61f6fff6c0 Delete type=0 #1298
|
||||||
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/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-001259
|
MANIFEST-001299
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2026/01/07-15:26:43.564495 7f93eb7fe6c0 Recovering log #1257
|
2026/03/04-00:01:24.249439 7f56e3fff6c0 Recovering log #1297
|
||||||
2026/01/07-15:26:43.574446 7f93eb7fe6c0 Delete type=3 #1255
|
2026/03/04-00:01:24.259919 7f56e3fff6c0 Delete type=3 #1295
|
||||||
2026/01/07-15:26:43.574512 7f93eb7fe6c0 Delete type=0 #1257
|
2026/03/04-00:01:24.259974 7f56e3fff6c0 Delete type=0 #1297
|
||||||
2026/01/07-15:53:28.432738 7f93e9ffb6c0 Level-0 table #1262: started
|
2026/03/04-00:08:22.139094 7f54e37ef6c0 Level-0 table #1302: started
|
||||||
2026/01/07-15:53:28.432770 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK
|
2026/03/04-00:08:22.139129 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||||
2026/01/07-15:53:28.439930 7f93e9ffb6c0 Delete type=0 #1260
|
2026/03/04-00:08:22.192132 7f54e37ef6c0 Delete type=0 #1300
|
||||||
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/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/07-15:09:19.333002 7f93ea7fc6c0 Recovering log #1253
|
2026/02/26-22:04:24.183291 7f640dbff6c0 Recovering log #1293
|
||||||
2026/01/07-15:09:19.348597 7f93ea7fc6c0 Delete type=3 #1251
|
2026/02/26-22:04:24.198373 7f640dbff6c0 Delete type=3 #1291
|
||||||
2026/01/07-15:09:19.348662 7f93ea7fc6c0 Delete type=0 #1253
|
2026/02/26-22:04:24.198448 7f640dbff6c0 Delete type=0 #1293
|
||||||
2026/01/07-15:13:49.682345 7f93e9ffb6c0 Level-0 table #1258: started
|
2026/02/26-22:04:46.518228 7f61f6fff6c0 Level-0 table #1298: started
|
||||||
2026/01/07-15:13:49.682371 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK
|
2026/02/26-22:04:46.518251 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||||
2026/01/07-15:13:49.688691 7f93e9ffb6c0 Delete type=0 #1256
|
2026/02/26-22:04:46.524767 7f61f6fff6c0 Delete type=0 #1296
|
||||||
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/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-001259
|
MANIFEST-001299
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2026/01/07-15:26:43.514726 7f93ea7fc6c0 Recovering log #1257
|
2026/03/04-00:01:24.180286 7f56e3fff6c0 Recovering log #1297
|
||||||
2026/01/07-15:26:43.524436 7f93ea7fc6c0 Delete type=3 #1255
|
2026/03/04-00:01:24.190010 7f56e3fff6c0 Delete type=3 #1295
|
||||||
2026/01/07-15:26:43.524498 7f93ea7fc6c0 Delete type=0 #1257
|
2026/03/04-00:01:24.190063 7f56e3fff6c0 Delete type=0 #1297
|
||||||
2026/01/07-15:53:28.406072 7f93e9ffb6c0 Level-0 table #1262: started
|
2026/03/04-00:08:22.033573 7f54e37ef6c0 Level-0 table #1302: started
|
||||||
2026/01/07-15:53:28.406116 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK
|
2026/03/04-00:08:22.033610 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||||
2026/01/07-15:53:28.412401 7f93e9ffb6c0 Delete type=0 #1260
|
2026/03/04-00:08:22.070732 7f54e37ef6c0 Delete type=0 #1300
|
||||||
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/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/07-15:09:19.258501 7f93eb7fe6c0 Recovering log #1253
|
2026/02/26-22:04:24.123515 7f640d3fe6c0 Recovering log #1293
|
||||||
2026/01/07-15:09:19.274117 7f93eb7fe6c0 Delete type=3 #1251
|
2026/02/26-22:04:24.135202 7f640d3fe6c0 Delete type=3 #1291
|
||||||
2026/01/07-15:09:19.274190 7f93eb7fe6c0 Delete type=0 #1253
|
2026/02/26-22:04:24.135283 7f640d3fe6c0 Delete type=0 #1293
|
||||||
2026/01/07-15:13:49.656004 7f93e9ffb6c0 Level-0 table #1258: started
|
2026/02/26-22:04:46.488408 7f61f6fff6c0 Level-0 table #1298: started
|
||||||
2026/01/07-15:13:49.656029 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK
|
2026/02/26-22:04:46.488442 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||||
2026/01/07-15:13:49.662317 7f93e9ffb6c0 Delete type=0 #1256
|
2026/02/26-22:04:46.495308 7f61f6fff6c0 Delete type=0 #1296
|
||||||
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/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-001259
|
MANIFEST-001299
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2026/01/07-15:26:43.501310 7f93eb7fe6c0 Recovering log #1257
|
2026/03/04-00:01:24.164425 7f56f93fe6c0 Recovering log #1297
|
||||||
2026/01/07-15:26:43.512173 7f93eb7fe6c0 Delete type=3 #1255
|
2026/03/04-00:01:24.174481 7f56f93fe6c0 Delete type=3 #1295
|
||||||
2026/01/07-15:26:43.512224 7f93eb7fe6c0 Delete type=0 #1257
|
2026/03/04-00:01:24.174536 7f56f93fe6c0 Delete type=0 #1297
|
||||||
2026/01/07-15:53:28.398067 7f93e9ffb6c0 Level-0 table #1262: started
|
2026/03/04-00:08:21.946425 7f54e37ef6c0 Level-0 table #1302: started
|
||||||
2026/01/07-15:53:28.398117 7f93e9ffb6c0 Level-0 table #1262: 0 bytes OK
|
2026/03/04-00:08:21.946466 7f54e37ef6c0 Level-0 table #1302: 0 bytes OK
|
||||||
2026/01/07-15:53:28.405830 7f93e9ffb6c0 Delete type=0 #1260
|
2026/03/04-00:08:21.989164 7f54e37ef6c0 Delete type=0 #1300
|
||||||
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/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/07-15:09:19.238733 7f93ebfff6c0 Recovering log #1253
|
2026/02/26-22:04:24.106231 7f640dbff6c0 Recovering log #1293
|
||||||
2026/01/07-15:09:19.256250 7f93ebfff6c0 Delete type=3 #1251
|
2026/02/26-22:04:24.120853 7f640dbff6c0 Delete type=3 #1291
|
||||||
2026/01/07-15:09:19.256331 7f93ebfff6c0 Delete type=0 #1253
|
2026/02/26-22:04:24.120905 7f640dbff6c0 Delete type=0 #1293
|
||||||
2026/01/07-15:13:49.649560 7f93e9ffb6c0 Level-0 table #1258: started
|
2026/02/26-22:04:46.475371 7f61f6fff6c0 Level-0 table #1298: started
|
||||||
2026/01/07-15:13:49.649585 7f93e9ffb6c0 Level-0 table #1258: 0 bytes OK
|
2026/02/26-22:04:46.475399 7f61f6fff6c0 Level-0 table #1298: 0 bytes OK
|
||||||
2026/01/07-15:13:49.655885 7f93e9ffb6c0 Delete type=0 #1256
|
2026/02/26-22:04:46.481643 7f61f6fff6c0 Delete type=0 #1296
|
||||||
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/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-000902
|
MANIFEST-000942
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2026/01/07-15:26:43.552530 7f93eaffd6c0 Recovering log #900
|
2026/03/04-00:01:24.231380 7f56f9bff6c0 Recovering log #940
|
||||||
2026/01/07-15:26:43.562158 7f93eaffd6c0 Delete type=3 #898
|
2026/03/04-00:01:24.242231 7f56f9bff6c0 Delete type=3 #938
|
||||||
2026/01/07-15:26:43.562231 7f93eaffd6c0 Delete type=0 #900
|
2026/03/04-00:01:24.242297 7f56f9bff6c0 Delete type=0 #940
|
||||||
2026/01/07-15:53:28.426399 7f93e9ffb6c0 Level-0 table #905: started
|
2026/03/04-00:08:22.105094 7f54e37ef6c0 Level-0 table #945: started
|
||||||
2026/01/07-15:53:28.426431 7f93e9ffb6c0 Level-0 table #905: 0 bytes OK
|
2026/03/04-00:08:22.105137 7f54e37ef6c0 Level-0 table #945: 0 bytes OK
|
||||||
2026/01/07-15:53:28.432585 7f93e9ffb6c0 Delete type=0 #903
|
2026/03/04-00:08:22.138651 7f54e37ef6c0 Delete type=0 #943
|
||||||
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/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/07-15:09:19.313936 7f93eaffd6c0 Recovering log #896
|
2026/02/26-22:04:24.166725 7f63f7fff6c0 Recovering log #936
|
||||||
2026/01/07-15:09:19.330494 7f93eaffd6c0 Delete type=3 #894
|
2026/02/26-22:04:24.181007 7f63f7fff6c0 Delete type=3 #934
|
||||||
2026/01/07-15:09:19.330571 7f93eaffd6c0 Delete type=0 #896
|
2026/02/26-22:04:24.181079 7f63f7fff6c0 Delete type=0 #936
|
||||||
2026/01/07-15:13:49.669421 7f93e9ffb6c0 Level-0 table #901: started
|
2026/02/26-22:04:46.525121 7f61f6fff6c0 Level-0 table #941: started
|
||||||
2026/01/07-15:13:49.669459 7f93e9ffb6c0 Level-0 table #901: 0 bytes OK
|
2026/02/26-22:04:46.525166 7f61f6fff6c0 Level-0 table #941: 0 bytes OK
|
||||||
2026/01/07-15:13:49.675608 7f93e9ffb6c0 Delete type=0 #899
|
2026/02/26-22:04:46.532271 7f61f6fff6c0 Delete type=0 #939
|
||||||
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/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'});
|
||||||
@@ -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})
|
||||||
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)"))
|
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
|
||||||
if (name.includes("(") && !name.toLowerCase().includes("(any)"))
|
if (name.includes("(") && !name.toLowerCase().includes("(any)")) {
|
||||||
{
|
|
||||||
let terrain = name.split("(")[1].split(")")[0]
|
let terrain = name.split("(")[1].split(")")[0]
|
||||||
tests = tests.replace("the Terrain", terrain)
|
tests = tests.replace("the Terrain", terrain)
|
||||||
}
|
}
|
||||||
else // If no sense specified, provide dialog choice
|
else // If no sense specified, provide dialog choice
|
||||||
{
|
{
|
||||||
let choice = await ItemDialog.create(ItemDialog.objectToArray({
|
let choice = await ItemDialog.create(ItemDialog.objectToArray({
|
||||||
coastal : "Littoral",
|
coastal: "Littoral",
|
||||||
deserts : "Déserts",
|
deserts: "Déserts",
|
||||||
marshes : "Marécages",
|
marshes: "Marécages",
|
||||||
rocky : "Rocailleux",
|
rocky: "Rocailleux",
|
||||||
tundra : "Toundra",
|
tundra: "Toundra",
|
||||||
woodlands : "Régions boisées"
|
woodlands: "Régions boisées"
|
||||||
}, this.item.img), 1, "Choisissez un Terrain");
|
}, this.item.img), 1, "Choisissez un Terrain");
|
||||||
if (choice[0])
|
if (choice[0]) {
|
||||||
{
|
|
||||||
name = `${name.split("(")[0].trim()} (${choice[0].name})`
|
name = `${name.split("(")[0].trim()} (${choice[0].name})`
|
||||||
tests = tests.replace("Terrain", choice[0].name + " Terrain")
|
tests = tests.replace("Terrain", choice[0].name + " Terrain")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.effet.updateSource({name})
|
this.effect.updateSource({ name })
|
||||||
this.item.updateSource({name, "system.tests.value" : tests})
|
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"));
|
||||||
@@ -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);
|
||||||
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});
|
||||||
@@ -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é)
|
||||||
{
|
{
|
||||||
|
|||||||
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"));
|
||||||
@@ -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);
|
||||||
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})
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -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);
|
||||||
|
|||||||
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")})
|
||||||
|
}
|
||||||
@@ -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é)
|
||||||
{
|
{
|
||||||
|
|||||||
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})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
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"
|
||||||
@@ -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);
|
||||||
|
|||||||
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)
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
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;
|
||||||
@@ -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é)
|
||||||
{
|
{
|
||||||
|
|||||||
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")
|
||||||
|
}
|
||||||
@@ -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',
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user