Compare commits
11 Commits
foundryvtt
...
foundryvtt
| Author | SHA1 | Date | |
|---|---|---|---|
| f07ef0b01d | |||
| 301cc830bc | |||
| 786afeab74 | |||
| e0383def30 | |||
| 7dc51444f0 | |||
| 752a6701c0 | |||
| 0e8237c233 | |||
| df26a699a0 | |||
| 0a1fa37e49 | |||
| 5b7fba4c87 | |||
| d710061eeb |
11
foundryvtt-wh4-lang-fr-fr.code-workspace
Normal file
11
foundryvtt-wh4-lang-fr-fr.code-workspace
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
},
|
||||
{
|
||||
"path": "../WFRP4e-FoundryVTT"
|
||||
}
|
||||
],
|
||||
"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.4",
|
||||
"version": "9.4.1",
|
||||
"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-4.zip",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-4-1.zip",
|
||||
"id": "wh4-fr-translation",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
|
||||
@@ -231,7 +231,7 @@ const __check_fix_wrong_modules = (chatFlag, patchFinished) => {
|
||||
}
|
||||
} else if (game.user.isGM && patchFinished) {
|
||||
ChatMessage.create({
|
||||
content: "<div>Les modules WFRP4E ont été <strong>patchés avec succés</strong>. Vous pouvez y aller et que <strong>Shallya vous garde !</strong><div><div>Changements v9.3.4 : <ul><li>Ajout de la commande /voyage !</li><li>Améliorations de la commande /auberge</li><li>Très grosses mise à jour des scripts d'Effets et de leur traduction</li></ul></div>",
|
||||
content: "<div>Les modules WFRP4E ont été <strong>patchés avec succés</strong>. Vous pouvez y aller et que <strong>Shallya vous garde !</strong><div><div>Changements v9.3.5 : <ul><li>Ajout de la commande /voyage !</li><li>Améliorations de la commande /auberge</li><li>Les joueurs doivent désormais pouvoir créer leur persos</li><li>Très grosses mise à jour des scripts d'Effets et de leur traduction</li></ul></div>",
|
||||
user: game.user.id,
|
||||
whisper: ChatMessage.getWhisperRecipients("GM")
|
||||
});
|
||||
@@ -385,7 +385,9 @@ Hooks.on('ready', () => {
|
||||
"doom": "Maudit (-40)"
|
||||
}
|
||||
|
||||
game.wfrp4e.warnDialog.render(true, { focus: true, left: 20, top: 20 });
|
||||
if (game.user.isGM) {
|
||||
game.wfrp4e.warnDialog.render(true, { focus: true, left: 20, top: 20 });
|
||||
}
|
||||
//setTimeout( __check_fix_wrong_modules, 2000, true, false);
|
||||
setTimeout(__check_fix_wrong_modules, 20000, true, true);
|
||||
setTimeout(__add_actors_translation, 21000, false, true);
|
||||
|
||||
@@ -248,16 +248,16 @@ Hooks.once('init', () => {
|
||||
let translw = translItem?.name || undefined
|
||||
if (translw && translw != s1) {
|
||||
let res2 = re.exec(translw);
|
||||
transl = res2[1] + "(" + subword + ")";
|
||||
transl = res2[1].trim() + " (" + subword + ")";
|
||||
} else {
|
||||
s1 = res[1].trim() + " ( )";
|
||||
translItem = game.babele.translate(compData.metadata.id, { name: s1, type: "skill" }, true)
|
||||
translw = translItem?.name || undefined
|
||||
if(translw) {
|
||||
let res2 = re.exec(translw);
|
||||
transl = res2[1] + "(" + subword + ")";
|
||||
transl = res2[1].trim() + " (" + subword + ")";
|
||||
} 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)
|
||||
let translw = translItem?.name || undefined
|
||||
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) {
|
||||
trait_fr.name = trait_fr.name || trait_en.name
|
||||
trait_en.name = nbt + trait_fr.name + special;
|
||||
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?.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
|
||||
//console.log("Translating : ", trait_en.system.specification.value);
|
||||
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-001251
|
||||
MANIFEST-001295
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-15:05:51.801144 7f93ebfff6c0 Recovering log #1249
|
||||
2026/01/07-15:05:51.812047 7f93ebfff6c0 Delete type=3 #1247
|
||||
2026/01/07-15:05:51.812099 7f93ebfff6c0 Delete type=0 #1249
|
||||
2026/01/07-15:06:45.486999 7f93e9ffb6c0 Level-0 table #1254: started
|
||||
2026/01/07-15:06:45.487020 7f93e9ffb6c0 Level-0 table #1254: 0 bytes OK
|
||||
2026/01/07-15:06:45.493208 7f93e9ffb6c0 Delete type=0 #1252
|
||||
2026/01/07-15:06:45.493509 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: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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-14:19:22.396531 7f93ebfff6c0 Recovering log #1245
|
||||
2026/01/07-14:19:22.406238 7f93ebfff6c0 Delete type=3 #1243
|
||||
2026/01/07-14:19:22.406300 7f93ebfff6c0 Delete type=0 #1245
|
||||
2026/01/07-15:04:29.638874 7f93e9ffb6c0 Level-0 table #1250: started
|
||||
2026/01/07-15:04:29.638900 7f93e9ffb6c0 Level-0 table #1250: 0 bytes OK
|
||||
2026/01/07-15:04:29.650961 7f93e9ffb6c0 Delete type=0 #1248
|
||||
2026/01/07-15:04:29.667055 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:02:13.939121 7f640dbff6c0 Recovering log #1289
|
||||
2026/02/26-22:02:13.988348 7f640dbff6c0 Delete type=3 #1287
|
||||
2026/02/26-22:02:13.988418 7f640dbff6c0 Delete type=0 #1289
|
||||
2026/02/26-22:03:13.280219 7f61f6fff6c0 Level-0 table #1294: started
|
||||
2026/02/26-22:03:13.280273 7f61f6fff6c0 Level-0 table #1294: 0 bytes OK
|
||||
2026/02/26-22:03:13.287523 7f61f6fff6c0 Delete type=0 #1292
|
||||
2026/02/26-22:03:13.287733 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-001253
|
||||
MANIFEST-001297
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-15:05:51.814570 7f93ea7fc6c0 Recovering log #1251
|
||||
2026/01/07-15:05:51.824155 7f93ea7fc6c0 Delete type=3 #1249
|
||||
2026/01/07-15:05:51.824233 7f93ea7fc6c0 Delete type=0 #1251
|
||||
2026/01/07-15:06:45.493731 7f93e9ffb6c0 Level-0 table #1256: started
|
||||
2026/01/07-15:06:45.493762 7f93e9ffb6c0 Level-0 table #1256: 0 bytes OK
|
||||
2026/01/07-15:06:45.500998 7f93e9ffb6c0 Delete type=0 #1254
|
||||
2026/01/07-15:06:45.529036 7f93e9ffb6c0 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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-14:19:22.408420 7f93ea7fc6c0 Recovering log #1247
|
||||
2026/01/07-14:19:22.419450 7f93ea7fc6c0 Delete type=3 #1245
|
||||
2026/01/07-14:19:22.419496 7f93ea7fc6c0 Delete type=0 #1247
|
||||
2026/01/07-15:04:29.689520 7f93e9ffb6c0 Level-0 table #1252: started
|
||||
2026/01/07-15:04:29.689548 7f93e9ffb6c0 Level-0 table #1252: 0 bytes OK
|
||||
2026/01/07-15:04:29.701802 7f93e9ffb6c0 Delete type=0 #1250
|
||||
2026/01/07-15:04:29.713438 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
2026/02/26-22:02:13.990565 7f640d3fe6c0 Recovering log #1291
|
||||
2026/02/26-22:02:14.041205 7f640d3fe6c0 Delete type=3 #1289
|
||||
2026/02/26-22:02:14.041341 7f640d3fe6c0 Delete type=0 #1291
|
||||
2026/02/26-22:03:13.287859 7f61f6fff6c0 Level-0 table #1296: started
|
||||
2026/02/26-22:03:13.287883 7f61f6fff6c0 Level-0 table #1296: 0 bytes OK
|
||||
2026/02/26-22:03:13.294100 7f61f6fff6c0 Delete type=0 #1294
|
||||
2026/02/26-22:03:13.315154 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-001251
|
||||
MANIFEST-001295
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-15:05:51.839318 7f93eaffd6c0 Recovering log #1249
|
||||
2026/01/07-15:05:51.849796 7f93eaffd6c0 Delete type=3 #1247
|
||||
2026/01/07-15:05:51.849857 7f93eaffd6c0 Delete type=0 #1249
|
||||
2026/01/07-15:06:45.501213 7f93e9ffb6c0 Level-0 table #1254: started
|
||||
2026/01/07-15:06:45.501269 7f93e9ffb6c0 Level-0 table #1254: 0 bytes OK
|
||||
2026/01/07-15:06:45.508204 7f93e9ffb6c0 Delete type=0 #1252
|
||||
2026/01/07-15:06:45.529072 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: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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-14:19:22.434524 7f93ea7fc6c0 Recovering log #1245
|
||||
2026/01/07-14:19:22.444128 7f93ea7fc6c0 Delete type=3 #1243
|
||||
2026/01/07-14:19:22.444200 7f93ea7fc6c0 Delete type=0 #1245
|
||||
2026/01/07-15:04:29.701936 7f93e9ffb6c0 Level-0 table #1250: started
|
||||
2026/01/07-15:04:29.701958 7f93e9ffb6c0 Level-0 table #1250: 0 bytes OK
|
||||
2026/01/07-15:04:29.713305 7f93e9ffb6c0 Delete type=0 #1248
|
||||
2026/01/07-15:04:29.713449 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:02:14.115468 7f640cbfd6c0 Recovering log #1289
|
||||
2026/02/26-22:02:14.169882 7f640cbfd6c0 Delete type=3 #1287
|
||||
2026/02/26-22:02:14.169955 7f640cbfd6c0 Delete type=0 #1289
|
||||
2026/02/26-22:03:13.301545 7f61f6fff6c0 Level-0 table #1294: started
|
||||
2026/02/26-22:03:13.301610 7f61f6fff6c0 Level-0 table #1294: 0 bytes OK
|
||||
2026/02/26-22:03:13.307921 7f61f6fff6c0 Delete type=0 #1292
|
||||
2026/02/26-22:03:13.315187 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-001251
|
||||
MANIFEST-001295
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-15:05:51.788330 7f93eaffd6c0 Recovering log #1249
|
||||
2026/01/07-15:05:51.798442 7f93eaffd6c0 Delete type=3 #1247
|
||||
2026/01/07-15:05:51.798508 7f93eaffd6c0 Delete type=0 #1249
|
||||
2026/01/07-15:06:45.480176 7f93e9ffb6c0 Level-0 table #1254: started
|
||||
2026/01/07-15:06:45.480197 7f93e9ffb6c0 Level-0 table #1254: 0 bytes OK
|
||||
2026/01/07-15:06:45.486885 7f93e9ffb6c0 Delete type=0 #1252
|
||||
2026/01/07-15:06:45.493497 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: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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-14:19:22.383713 7f93eb7fe6c0 Recovering log #1245
|
||||
2026/01/07-14:19:22.394171 7f93eb7fe6c0 Delete type=3 #1243
|
||||
2026/01/07-14:19:22.394305 7f93eb7fe6c0 Delete type=0 #1245
|
||||
2026/01/07-15:04:29.651336 7f93e9ffb6c0 Level-0 table #1250: started
|
||||
2026/01/07-15:04:29.651360 7f93e9ffb6c0 Level-0 table #1250: 0 bytes OK
|
||||
2026/01/07-15:04:29.666893 7f93e9ffb6c0 Delete type=0 #1248
|
||||
2026/01/07-15:04:29.667066 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:02:13.889590 7f63f7fff6c0 Recovering log #1289
|
||||
2026/02/26-22:02:13.936962 7f63f7fff6c0 Delete type=3 #1287
|
||||
2026/02/26-22:02:13.937017 7f63f7fff6c0 Delete type=0 #1289
|
||||
2026/02/26-22:03:13.273521 7f61f6fff6c0 Level-0 table #1294: started
|
||||
2026/02/26-22:03:13.273553 7f61f6fff6c0 Level-0 table #1294: 0 bytes OK
|
||||
2026/02/26-22:03:13.280005 7f61f6fff6c0 Delete type=0 #1292
|
||||
2026/02/26-22:03:13.287724 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-001251
|
||||
MANIFEST-001295
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-15:05:51.775857 7f93ea7fc6c0 Recovering log #1249
|
||||
2026/01/07-15:05:51.785876 7f93ea7fc6c0 Delete type=3 #1247
|
||||
2026/01/07-15:05:51.785947 7f93ea7fc6c0 Delete type=0 #1249
|
||||
2026/01/07-15:06:45.473201 7f93e9ffb6c0 Level-0 table #1254: started
|
||||
2026/01/07-15:06:45.473242 7f93e9ffb6c0 Level-0 table #1254: 0 bytes OK
|
||||
2026/01/07-15:06:45.480074 7f93e9ffb6c0 Delete type=0 #1252
|
||||
2026/01/07-15:06:45.493481 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: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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-14:19:22.369653 7f93ebfff6c0 Recovering log #1245
|
||||
2026/01/07-14:19:22.381041 7f93ebfff6c0 Delete type=3 #1243
|
||||
2026/01/07-14:19:22.381133 7f93ebfff6c0 Delete type=0 #1245
|
||||
2026/01/07-15:04:29.629205 7f93e9ffb6c0 Level-0 table #1250: started
|
||||
2026/01/07-15:04:29.629243 7f93e9ffb6c0 Level-0 table #1250: 0 bytes OK
|
||||
2026/01/07-15:04:29.638743 7f93e9ffb6c0 Delete type=0 #1248
|
||||
2026/01/07-15:04:29.667035 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:02:13.830812 7f640d3fe6c0 Recovering log #1289
|
||||
2026/02/26-22:02:13.887231 7f640d3fe6c0 Delete type=3 #1287
|
||||
2026/02/26-22:02:13.887289 7f640d3fe6c0 Delete type=0 #1289
|
||||
2026/02/26-22:03:13.266764 7f61f6fff6c0 Level-0 table #1294: started
|
||||
2026/02/26-22:03:13.266813 7f61f6fff6c0 Level-0 table #1294: 0 bytes OK
|
||||
2026/02/26-22:03:13.273358 7f61f6fff6c0 Delete type=0 #1292
|
||||
2026/02/26-22:03:13.287711 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-000894
|
||||
MANIFEST-000938
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-15:05:51.826614 7f93ebfff6c0 Recovering log #892
|
||||
2026/01/07-15:05:51.837158 7f93ebfff6c0 Delete type=3 #890
|
||||
2026/01/07-15:05:51.837206 7f93ebfff6c0 Delete type=0 #892
|
||||
2026/01/07-15:06:45.521984 7f93e9ffb6c0 Level-0 table #897: started
|
||||
2026/01/07-15:06:45.522031 7f93e9ffb6c0 Level-0 table #897: 0 bytes OK
|
||||
2026/01/07-15:06:45.528836 7f93e9ffb6c0 Delete type=0 #895
|
||||
2026/01/07-15:06:45.529100 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: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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/07-14:19:22.421981 7f93eb7fe6c0 Recovering log #888
|
||||
2026/01/07-14:19:22.432249 7f93eb7fe6c0 Delete type=3 #886
|
||||
2026/01/07-14:19:22.432317 7f93eb7fe6c0 Delete type=0 #888
|
||||
2026/01/07-15:04:29.679197 7f93e9ffb6c0 Level-0 table #893: started
|
||||
2026/01/07-15:04:29.679221 7f93e9ffb6c0 Level-0 table #893: 0 bytes OK
|
||||
2026/01/07-15:04:29.689398 7f93e9ffb6c0 Delete type=0 #891
|
||||
2026/01/07-15:04:29.713429 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:02:14.050871 7f640dbff6c0 Recovering log #932
|
||||
2026/02/26-22:02:14.109358 7f640dbff6c0 Delete type=3 #930
|
||||
2026/02/26-22:02:14.109436 7f640dbff6c0 Delete type=0 #932
|
||||
2026/02/26-22:03:13.308043 7f61f6fff6c0 Level-0 table #937: started
|
||||
2026/02/26-22:03:13.308070 7f61f6fff6c0 Level-0 table #937: 0 bytes OK
|
||||
2026/02/26-22:03:13.315010 7f61f6fff6c0 Delete type=0 #935
|
||||
2026/02/26-22:03:13.315204 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,2 +0,0 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.weczkAMPlTjX7lqU")
|
||||
this.actor.createEmbeddedDocuments("Item", [item])
|
||||
@@ -1 +0,0 @@
|
||||
return args.item?.system?.isRanged && args.data.targets[0]?.actor?.sizeNum < 3
|
||||
@@ -1,25 +0,0 @@
|
||||
// The imbiber immediately
|
||||
// takes 3 Poisoned Conditions that cannot be resisted at first,
|
||||
await this.actor.addCondition("poisoned", 3)
|
||||
|
||||
// recovers a number of Wounds equal to their Toughness Bonus,
|
||||
await this.actor.modifyWounds(this.actor.system.characteristics.t.bonus)
|
||||
|
||||
// and acquires the Regenerate Creature Trait.
|
||||
const hasRegenerate = this.actor.has("Regenerate")
|
||||
if (hasRegenerate === undefined) {
|
||||
fromUuid("Compendium.wfrp4e-core.items.SfUUdOGjdYpr3KSR").then(trait => {
|
||||
let traitItem = trait.toObject()
|
||||
this.actor.createEmbeddedDocuments("Item", [traitItem], {fromEffect: this.effect.id})
|
||||
})
|
||||
}
|
||||
|
||||
this.script.scriptMessage(`<p><strong>${this.actor.prototypeToken.name}</strong> has
|
||||
<ul>
|
||||
<li>gained 3 Poisoned Conditions that cannot be resisted at first</li>
|
||||
<li>recovered ${this.actor.system.characteristics.t.bonus} Wounds</li>
|
||||
<li>acquired the Regenerate Creature Trait.</li>
|
||||
</ul>
|
||||
It’s up to Ranald if their regenerating can outpace their poisoning.</p>
|
||||
<p>When all Poisoned Conditions are lost, so too is Regenerate.</p>`,
|
||||
{ whisper: ChatMessage.getWhisperRecipients("GM"), blind: true })
|
||||
@@ -1 +0,0 @@
|
||||
this.actor.addCondition("blinded", 3)
|
||||
@@ -1,4 +0,0 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.8piWcBKFlQ2J1E3A")
|
||||
let data = item.toObject();
|
||||
data.system.location.key= this.item.system.location.key
|
||||
this.actor.createEmbeddedDocuments("Item", [data])
|
||||
@@ -1,5 +0,0 @@
|
||||
if (!args.flags.quietenedApplied)
|
||||
{
|
||||
args.fields.modifier += 10;
|
||||
args.flags.quietenedApplied = true
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
return !args.options.terror && !args.extendedTest?.flags.wfrp4e?.fear
|
||||
@@ -1,22 +0,0 @@
|
||||
let spells = await warhammer.utility.findAllItems("spell", "Loading Spells")
|
||||
|
||||
let text = (await game.wfrp4e.tables.rollTable("random-caster", {hideDSN: true})).result
|
||||
|
||||
lore = Array.from(text.matchAll(/{(.+?)}/gm))[0][1]
|
||||
|
||||
if (text == "GM's Choice")
|
||||
{
|
||||
return this.script.scriptNotification(text)
|
||||
}
|
||||
|
||||
if (spellsWithLore.length > 0)
|
||||
{
|
||||
let spellsWithLore = spells.filter(i => game.wfrp4e.config.magicLores[i.system.lore.value] == lore)
|
||||
let selectedSpell = spellsWithLore[Math.floor(CONFIG.Dice.randomUniform() * spellsWithLore.length)]
|
||||
this.script.scriptNotification(selectedSpell.name);
|
||||
this.actor.createEmbeddedDocuments("Item", [selectedSpell])
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.notifications.notify(`Could not find ${lore} spell. Try Again`)
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.4CMKeDTDrRQZbPIJ")
|
||||
let fixation = (await game.wfrp4e.tables.rollTable("fixations"))
|
||||
let data = item.toObject();
|
||||
data.system.specification.value = fixation.result;
|
||||
this.item.updateSource({name : this.item.name += ` (${fixation.result})`});
|
||||
this.actor.createEmbeddedDocuments("Item", [data], {fromEffect : this.effect.id})
|
||||
@@ -1 +0,0 @@
|
||||
return !["t", "wp"].includes(args.characteristic)
|
||||
@@ -1,18 +0,0 @@
|
||||
let table = game.wfrp4e.tables.findTable("mutatephys");
|
||||
if (!table)
|
||||
{
|
||||
return ui.notifications.error("Mutation table not found, please ensure a table with the `mutatephys` key is imported in the world.")
|
||||
}
|
||||
let result = (await table.roll()).results[0];
|
||||
let uuid = `Compendium.${result.documentCollection}.${result.documentId}`
|
||||
let item = await fromUuid(uuid);
|
||||
|
||||
if (item)
|
||||
{
|
||||
this.script.scriptNotification(`${item.name} added`)
|
||||
this.actor.createEmbeddedDocuments("Item", [item])
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.notifications.error("Item could not be found: " + uuid)
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
let location = this.item.system.location.key;
|
||||
|
||||
if (location)
|
||||
{
|
||||
let dropped = this.item.system.weaponsAtLocation;
|
||||
|
||||
if (dropped.length)
|
||||
{
|
||||
this.script.scriptNotification(`Dropped ${dropped.map(i => i.name).join(", ")}!`)
|
||||
for(let weapon of dropped)
|
||||
{
|
||||
await weapon.system.toggleEquip();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let roll = await new Roll("max(1, 1d10 - @system.characteristics.t.bonus)", this.actor).roll()
|
||||
|
||||
roll.toMessage(this.script.getChatData({flavor : `${this.effect.name} (Duration)`}));
|
||||
|
||||
this.effect.updateSource({"duration.rounds" : roll.total})
|
||||
@@ -1,9 +0,0 @@
|
||||
if (args.skill?.name != game.i18n.localize("NAME.Gossip"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
args.data.canReverse = true; // 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
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
if (args.applyAP && args.modifiers.ap.metal)
|
||||
{
|
||||
args.modifiers.ap.ignored += args.modifiers.ap.metal
|
||||
args.modifiers.ap.details.push("<strong>" + this.effect.name + "</strong>: Ignore Metal (" + args.modifiers.ap.metal + ")");
|
||||
args.modifiers.ap.metal = 0
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.GbDyBCu8ZjDp6dkj")
|
||||
let data = item.toObject();
|
||||
this.actor.createEmbeddedDocuments("Item", [data], {fromEffect : this.effect.id})
|
||||
@@ -1,10 +0,0 @@
|
||||
let item1 = await fromUuid("Compendium.wfrp4e-core.items.3S4OYOZLauXctmev")
|
||||
let item2 = await fromUuid("Compendium.wfrp4e-core.items.7mCcI3q7hgWcmbBU")
|
||||
|
||||
let data1 = item1.toObject();
|
||||
data1.system.location.key = this.item.system.location.key
|
||||
|
||||
let data2 = item2.toObject();
|
||||
data2.system.location.key = this.item.system.location.key
|
||||
|
||||
this.actor.createEmbeddedDocuments("Item", [data1, data2], {fromEffect: this.effect.id})
|
||||
@@ -1 +0,0 @@
|
||||
args.fields.modifier -= 20;
|
||||
@@ -1,7 +0,0 @@
|
||||
if (!args.flags.strikeToStun)
|
||||
{
|
||||
args.flags.strikeToStun = true
|
||||
args.fields.modifier += 20;
|
||||
args.fields.hitLocation = "head";
|
||||
}
|
||||
args.fields.successBonus++;
|
||||
@@ -1 +0,0 @@
|
||||
return args.options.terror || args.extendedTest?.flags.wfrp4e?.fear
|
||||
@@ -1,6 +0,0 @@
|
||||
let type = this.item.getFlag("wfrp4e", "breath");
|
||||
|
||||
if (["fire", "electricity", "poison"].includes(type))
|
||||
{
|
||||
args.applyAP = false;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
args.fields.modifier -= 20
|
||||
@@ -1,7 +0,0 @@
|
||||
let state = !this.effect.disabled;
|
||||
this.effect.update({"disabled": state});
|
||||
|
||||
if (state)
|
||||
return ui.notifications.info("EFFECT.CreatureBackInWater", {localize: true})
|
||||
|
||||
return ui.notifications.info("EFFECT.CreatureOutOfWater", {localize: true});
|
||||
@@ -1,31 +0,0 @@
|
||||
if (!this.item.name.includes("(") || this.item.system.tests.value.includes("Terrain"))
|
||||
{
|
||||
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("("))
|
||||
{
|
||||
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 : "Coastal",
|
||||
deserts : "Deserts",
|
||||
marshes : "Marshes",
|
||||
rocky : "Rocky",
|
||||
tundra : "Tundra",
|
||||
woodlands : "Woodlands"
|
||||
}, this.item.img), 1, "Choose Terrain");
|
||||
if (choice[0])
|
||||
{
|
||||
name = `${name.split("(")[0].trim()} (${choice[0].name})`
|
||||
tests = tests.replace("the Terrain", choice[0].name + " Terrain")
|
||||
}
|
||||
}
|
||||
|
||||
this.effect.updateSource({name})
|
||||
this.item.updateSource({name, "system.tests.value" : tests})
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
let characteristics = {
|
||||
"ws" : 5,
|
||||
"bs" : 5,
|
||||
"s" : 5,
|
||||
"t" : 0,
|
||||
"i" : 5,
|
||||
"ag" : 5,
|
||||
"dex" : 5,
|
||||
"int" : 0,
|
||||
"wp" : 5,
|
||||
"fel" : 5
|
||||
}
|
||||
let items = []
|
||||
|
||||
let updateObj = this.actor.toObject();
|
||||
|
||||
let talents = (await Promise.all([game.wfrp4e.tables.rollTable("talents"), game.wfrp4e.tables.rollTable("talents"), game.wfrp4e.tables.rollTable("talents")])).map(i => i.text)
|
||||
|
||||
for (let ch in characteristics)
|
||||
{
|
||||
updateObj.system.characteristics[ch].modifier += characteristics[ch];
|
||||
}
|
||||
|
||||
for (let talent of talents)
|
||||
{
|
||||
let talentItem = await game.wfrp4e.utility.findTalent(talent)
|
||||
if (talentItem)
|
||||
{
|
||||
items.push(talentItem.toObject());
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.notifications.warn(`Could not find ${talent}`, {permanent : true})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
await this.actor.update(updateObj)
|
||||
this.actor.createEmbeddedDocuments("Item", items);
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
return args.characteristic != "t"
|
||||
@@ -1 +0,0 @@
|
||||
args.actor.details.move.run += 4
|
||||
@@ -1,2 +0,0 @@
|
||||
await this.actor.addCondition("ablaze", 2)
|
||||
await this.script.scriptMessage(await this.actor.applyBasicDamage(this.effect.sourceTest.result.damage, {suppressMsg: true}))
|
||||
@@ -1 +0,0 @@
|
||||
return args.characteristic != "wp"
|
||||
@@ -1,6 +0,0 @@
|
||||
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` ${this.effect.name}`})
|
||||
await test.roll()
|
||||
if (test.succeeded)
|
||||
{
|
||||
this.effect.delete();
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
args.options.cardsharp = true;
|
||||
@@ -1,5 +0,0 @@
|
||||
if (args.opposedTest.result.hitloc.value == this.item.system.location.key && args.totalWoundLoss > 0)
|
||||
{
|
||||
args.actor.addCondition("bleeding", 2);
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
return ["ws", "bs", "s", "ag", "t", "dex"].includes(args.characteristic)
|
||||
@@ -1,7 +0,0 @@
|
||||
let test = await args.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : " - " + this.effect.name, context : {failure: "Gained a Stunned Condition"}})
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
args.actor.addCondition("stunned")
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
this.actor.status.addArmour(1, {source: this.effect, magical : true})
|
||||
@@ -1 +0,0 @@
|
||||
this.script.scriptNotification(`Cannot enter ${this.effect.name}!`);
|
||||
@@ -1,3 +0,0 @@
|
||||
let healed = parseInt(this.effect.sourceTest.result.SL)
|
||||
this.actor.modifyWounds(healed)
|
||||
this.script.scriptMessage(`Healed ${healed} Wounds`)
|
||||
@@ -1,20 +0,0 @@
|
||||
let damage = this.effect.sourceActor.hasCondition("fatigued") ? 6 : 10;
|
||||
|
||||
let loc = "body"
|
||||
|
||||
let APatLoc = this.actor.system.status.armour[loc];
|
||||
|
||||
let metalAP = APatLoc.layers.reduce((metal, layer) => metal += ((layer.metal && !layer.magical) ? layer.value : 0), 0)
|
||||
|
||||
let APused = Math.max(0, APatLoc.value - metalAP); // remove metal AP at location;
|
||||
|
||||
damage -= (APused + this.actor.system.characteristics.t.bonus)
|
||||
|
||||
let msg = await this.actor.applyBasicDamage(damage, {suppressMsg : true, damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL});
|
||||
msg += ` (ignored ${metalAP} metal AP on ${game.wfrp4e.config.locations[loc]})`
|
||||
this.script.scriptMessage(msg)
|
||||
|
||||
let test = await this.actor.setupSkill("Endurance", {fields : {difficulty : "difficult"}, appendTitle : ` - ${this.effect.name}`});
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
this.actor.addCondition("stunned");
|
||||
@@ -1 +0,0 @@
|
||||
args.options.ballockKnife = true;
|
||||
@@ -1,2 +0,0 @@
|
||||
if (args.effect.conditionId == "bleeding")
|
||||
args.data.damage -= 1
|
||||
@@ -1,10 +0,0 @@
|
||||
let choice = await ItemDialog.create(ItemDialog.objectToArray(game.wfrp4e.config.locations), 1, "Choose Location");
|
||||
|
||||
let location = choice[0].id;
|
||||
|
||||
let itemTargeted = this.actor.items.get(this.effect.getFlag("wfrp4e", "itemTargets")[0])
|
||||
|
||||
if (itemTargeted)
|
||||
{
|
||||
itemTargeted.update({[`system.APdamage.${location}`] : itemTargeted.system.APdamage[location] + 1})
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
return args.options.reload
|
||||
@@ -1,4 +0,0 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.eWPN3CV2Eddwz8aM")
|
||||
let data = item.toObject();
|
||||
data.system.location.value = "Back"
|
||||
this.actor.createEmbeddedDocuments("Item", [data], {fromEffect: this.effect.id})
|
||||
@@ -1 +0,0 @@
|
||||
game.wfrp4e.utility.postCorruptionTest(this.item.system.specification.value, {speaker : {alias: this.actor.prototypeToken.name}})
|
||||
@@ -1 +0,0 @@
|
||||
return args.item?.system.attackType
|
||||
@@ -1 +0,0 @@
|
||||
return !["fel"].includes(args.characteristic)
|
||||
@@ -1 +0,0 @@
|
||||
args.fields.slBonus += this.actor.system.characteristics.wp.bonus
|
||||
@@ -1,8 +0,0 @@
|
||||
if (isNaN(parseInt(this.item.system.specification.value)))
|
||||
{
|
||||
let value = await ValueDialog.create("Enter Armour value", this.effect.name);
|
||||
if (value)
|
||||
{
|
||||
this.item.updateSource({"system.specification.value" : value});
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
if (!["rLeg", "lLeg"].includes(this.effect.getFlag("wfrp4e", "location")))
|
||||
return true;
|
||||
|
||||
if (args.options.dodge)
|
||||
{
|
||||
args.abort = true;
|
||||
this.script.scriptNotification("Cannot Dodge!")
|
||||
}
|
||||
return ["t", "int", "wp", "fel"].includes(args.characteristic)
|
||||
@@ -1,9 +0,0 @@
|
||||
if (args.weapon && this.item.system.usesLocation(args.weapon))
|
||||
{
|
||||
args.bleedingHand = true;
|
||||
let success = await this.effect.manualScripts[0].execute({actor: this.actor})
|
||||
if (!success)
|
||||
{
|
||||
args.abort = true;
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
if (this.item.system.quantity.value)
|
||||
{
|
||||
this.item.update({"system.quantity.value" : this.item.system.quantity.value - 0.25})
|
||||
let actor = Array.from(game.user.targets)[0]?.actor || this.actor;
|
||||
actor.applyEffect({effectData : [this.item.effects.contents[1].convertToApplied()]})
|
||||
}
|
||||
else
|
||||
{
|
||||
this.script.scriptNotification("None left!", "error")
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
if (args.test.isFumble)
|
||||
{
|
||||
args.test.result.other.push("@Table[doomrocket-fumble]")
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.qn4ZpvTQIX4rcJDl");
|
||||
let data = item.toObject();
|
||||
data.system.location.key = this.item.system.location.key
|
||||
this.actor.createEmbeddedDocuments("Item", [data], {fromEffect: this.effect.id})
|
||||
@@ -1 +0,0 @@
|
||||
args.prefillModifiers.difficulty = "hard"
|
||||
@@ -1,6 +0,0 @@
|
||||
if (args.opposedTest.result.winner == "attacker") {
|
||||
if (args.opposedTest.defenderTest.weapon && args.opposedTest.defenderTest.item.properties.qualities.shield) {
|
||||
ui.notifications.notify(`<b>${this.effect.name}</b>: Gained ${this.item.Advances} Advantage`)
|
||||
this.actor.setAdvantage(this.item.Advances)
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
let currentCareer = this.actor.system.currentCareer;
|
||||
if (!currentCareer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
let talents = ["Aethyric Attunement",
|
||||
"Arcane Magic (Any)",
|
||||
"Chaos Magic (Tzeentch)",
|
||||
"Fast Hands",
|
||||
"Instinctive Diction",
|
||||
"Magical Sense",
|
||||
"Petty Magic",
|
||||
"Second Sight",
|
||||
"War Wizard",
|
||||
"Witch!"].filter(t => !currentCareer.system.talents.includes(t))
|
||||
|
||||
currentCareer.system.talents = currentCareer.system.talents.concat(talents)
|
||||
@@ -1,3 +0,0 @@
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.9GNpAqgsKzxZKJpp")
|
||||
let data = item.toObject();
|
||||
this.actor.createEmbeddedDocuments("Item", [data], {fromEffect : this.effect.id})
|
||||
@@ -1,2 +0,0 @@
|
||||
args.data.canReverse = true;
|
||||
args.options.fieldDressing = true;
|
||||
@@ -1,6 +0,0 @@
|
||||
let wounds = this.actor.system.status.wounds
|
||||
if (wounds.value == 0)
|
||||
return this.script.scriptNotification("No effect at 0 Wounds", "error")
|
||||
|
||||
this.script.scriptNotification(`Healed ${this.actor.characteristics.t.bonus} Wounds`)
|
||||
await this.actor.modifyWounds(this.actor.characteristics.t.bonus)
|
||||
@@ -1,4 +0,0 @@
|
||||
if (args.item.type == "spell")
|
||||
{
|
||||
args.item.cn.value = Math.floor(args.item.cn.value / 2)
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
return !args.options.handling
|
||||
@@ -1 +0,0 @@
|
||||
this.script.scriptMessage(await this.actor.applyBasicDamage(8, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_AP, suppressMsg: true}))
|
||||
@@ -1,3 +0,0 @@
|
||||
args.actor.system.details.move.value += 2;
|
||||
args.actor.system.status.carries.max = Math.floor(args.actor.system.status.carries.max * 0.5);
|
||||
args.actor.system.details.price.gc *= 1.1;
|
||||
@@ -1 +0,0 @@
|
||||
args.fields.successBonus += 1;
|
||||
@@ -1,9 +0,0 @@
|
||||
if (args.test.options.cardsharp && args.test.succeeded)
|
||||
{
|
||||
|
||||
let SL = Math.floor(args.test.target / 10) - Math.floor(args.test.result.roll / 10)
|
||||
let ones = Number(args.test.result.roll.toString().split("").pop())
|
||||
|
||||
if (ones > SL)
|
||||
args.test.result.other.push(`<span class="hide-option"><b>${this.effect.name}</b>: ${ones + args.test.successBonus + args.test.slBonus} SL</span>`)
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user