Compare commits

..

150 Commits

Author SHA1 Message Date
9bb80cf7b0 rework readme 2022-09-06 13:43:31 +02:00
9f1dcea2d8 rework readme 2022-09-06 13:27:27 +02:00
3f1a10e75c rework ID 2022-09-02 14:54:01 +02:00
aef26eabcc rework ID 2022-09-02 14:53:24 +02:00
8f4db990f8 rework ID 2022-09-01 15:36:21 +02:00
2ee9723267 Sync with v10 2022-09-01 08:23:37 +02:00
45f92e05d9 Sync with v10 2022-09-01 08:23:29 +02:00
820cc10de2 Sync with v10 2022-09-01 08:18:00 +02:00
7e8c7e5be7 New careers + minors fixes 2022-08-04 09:38:20 +02:00
0f14c72e4d Sync to 5.4.0 2022-07-20 21:12:08 +02:00
cb718c8b05 Sync to 5.4.0 2022-07-20 21:11:32 +02:00
7572e20b64 Add new career 2022-07-19 22:34:53 +02:00
ad35a674f5 Add new career 2022-07-19 22:34:24 +02:00
7f9bd74345 Nouvelles carrières de UpInArms 2022-07-14 17:41:50 +02:00
6d57fe4c7f Fix EiS spells + core spells + Tzeentch domain - (again) 2022-06-29 11:17:22 +02:00
94724cfae1 Fix EiS spells + core spells + Tzeentch domain - (again) 2022-06-29 11:17:16 +02:00
1b67c6d9c6 Fix EiS spells + core spells + Tzeentch domain 2022-06-28 22:49:27 +02:00
e69a9d8ce1 Fix maladies effects 2022-06-24 00:02:52 +02:00
39f476cf82 Fix Dirty Fighting 2022-06-09 07:46:19 +02:00
7cc586a0e0 Update sync wfrp 5.3 2022-05-25 08:34:45 +02:00
bbf9ef3cd1 Update to v5.3.0 2022-05-24 21:51:58 +02:00
cbcf3c3f3d Migrate repo 2022-05-21 15:47:04 +02:00
d2c500ed03 Migrate repo 2022-05-21 15:43:49 +02:00
4360917ef3 Migrate repo 2022-05-21 15:41:29 +02:00
4f8bfd8ba3 Aligne EiS translation 2022-05-21 14:10:55 +02:00
bd9e7788df Aligne EiS translation 2022-05-19 22:17:15 +02:00
6eb05e5067 Fix sniper FR 2022-04-27 11:50:50 +02:00
961bfd118c Tables de vents pour DotR 2022-04-24 16:14:33 +02:00
f764dc9fff Fix maniement de deux armes 2022-04-19 17:42:10 +02:00
dc9e39708c Fix portebouclier 2022-04-15 19:04:34 +02:00
d598e05166 Fix portebouclier 2022-04-15 19:04:19 +02:00
8a2ff0f2cd Fix porte-bouclier 2022-04-13 21:08:14 +02:00
41b09b956b Fix async rolls 2022-04-12 00:17:26 +02:00
283712e15a Minot fix 2022-04-09 20:43:37 +02:00
e3119b2764 Merge branch 'correction_typo_fr_json' into 'v4'
Correction faute typographique

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!19
2022-04-09 18:40:03 +00:00
7ba60d60ed Correction faute typographique
Poster la quantiter -> Poster la quantité
2022-04-06 22:28:48 +02:00
f6f8f71001 Fix career + minor glitches 2022-03-30 13:38:01 +02:00
f65110f2a8 New difficulties 2022-03-23 23:19:58 +01:00
6fcfa72b59 v5.2 sync 2022-03-23 22:50:43 +01:00
6655bee0bc Merge branch 'correction_typo_altdorf' into 'v4'
Correction typo description Altdorf

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!18
2022-03-18 18:22:09 +00:00
8a8e3ac3e0 Correction typo description Altdorf 2022-03-16 23:57:53 +01:00
f85f368336 Minor fixes 2022-03-15 13:10:33 +01:00
9e6d6a343b Merge branch 'correction_esquive_et_monture' into 'v4'
Correction typo Esquive et Descendre de la monture

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!17
2022-03-10 21:17:04 +00:00
2e1df9c3e8 Correction typo Esquive et Descendre de la monture 2022-03-09 22:44:57 +01:00
4652dbcc8d Merge branch 'correction_empaleuse' into 'v4'
Correction typo description empaleuse.

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!16
2022-03-04 07:46:34 +00:00
54b0b52a94 Correction typo description empaleuse. 2022-03-02 23:58:05 +01:00
eefb17f549 Fix messages 2022-03-01 11:23:21 +01:00
93fd0ae3ff Merge branch 'correction_typos' into 'v4'
Correction faute typographique talent Combat Instinctif

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!15
2022-03-01 09:51:25 +00:00
5cbe028c6f Correction faute typographique talent Combat Instinctif 2022-02-27 20:38:24 +01:00
05b9ea87c2 Fix spells 2022-02-27 14:24:48 +01:00
e2b43130cd Align to 5.1.1 + FR stat parsing + fix sur prières + corrections typos 2022-02-26 08:48:49 +01:00
144ac00f7c Merge branch 'correction_typos' into 'v4'
Correction fautes typographiques

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!14
2022-02-24 13:34:29 +00:00
6ab851254a Correction fautes typographiques
- Talent Mains Agiles
- ErrorMoneyConvert
2022-02-23 22:54:16 +01:00
6c188b5cae Fix maladies pour v5 2022-02-21 22:55:10 +01:00
b3852f52b3 Use another server for measures 2022-02-19 09:30:28 +01:00
c9bcd0d8e6 Fix 63 - again 2 2022-02-14 20:16:41 +01:00
938ace62a4 Fix #63 - again 2022-02-14 13:59:57 +01:00
5062b92510 Fix #63 2022-02-13 19:35:19 +01:00
b4bf08eae6 Fix #62 2022-02-13 19:31:36 +01:00
b741fc2969 Fix Extenué 2022-02-12 21:33:32 +01:00
033dc334c1 Minor fixes in translation 2022-02-10 15:24:41 +01:00
2512fa1d2c Merge branch 'fix_typo_core_fr' into 'v4'
Correction de deux fautes typographiques dans les settings du module core

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!13
2022-02-10 14:01:32 +00:00
fd7deee32c Correction de deux fautes typographiques dans les settings du module core 2022-02-08 01:38:33 +01:00
46e9303d8b Wrong format in JSON 2022-02-03 13:05:00 +01:00
275d8dc3a4 Various fixes 2022-02-02 20:53:56 +01:00
d16d5ef76e Fix talent Sprinter 2022-02-01 22:41:49 +01:00
004c463c4e Sync 2022-01-31 14:09:41 +01:00
510540c2d1 Sync 2022-01-31 14:07:57 +01:00
04819e7a07 Sync 2022-01-31 07:20:23 +01:00
e3c9213969 Carrrièes, stat patch et log 2022-01-30 09:18:49 +01:00
222842d2e6 Sync carrières 2022-01-23 10:49:56 +01:00
1074297b37 Sync carrières 2022-01-23 10:10:32 +01:00
34dd029350 Traduction carrière 2022-01-19 19:59:54 +01:00
063808006f Merge branch 'traduction_carrieres' into 'v4'
Traduction carrieres

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!12
2022-01-19 18:59:01 +00:00
962554135f Traduction carrieres 2022-01-19 18:59:01 +00:00
c905ef9e89 New translations 2022-01-15 09:35:52 +01:00
67a262ee90 Merge branch 'description_carrieres' into 'v4'
Traduction de plusieurs carrières

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!10
2022-01-13 06:53:00 +00:00
832ffa61b1 Traduction de la carrière de Conseiller 2022-01-11 14:36:17 +01:00
3876de9ddf Traduction de la carrière d'Artiste 2022-01-11 11:08:10 +01:00
525f46a3bc Traduction de la carrière de Ratier 2022-01-11 10:50:19 +01:00
21a2c3dc91 Traduction de la carrière de Milicien 2022-01-11 10:48:59 +01:00
6d9aaf9655 BE fix + new careerdescription 2022-01-09 09:11:37 +01:00
7a4e5d9cdc BE fix + new careerdescription 2022-01-08 18:48:10 +01:00
9d427ceae2 BE fix + new careerdescription 2022-01-07 23:22:54 +01:00
e674a61639 Traduction de carrièes 2022-01-04 07:52:44 +01:00
a953d9f2cf Merge branch 'description_carrieres' into 'v4'
Traduction de plusieurs carrières

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!9
2022-01-04 06:52:11 +00:00
20cb4d7181 Traduction de la carrière de Mendiant 2022-01-02 01:11:50 +01:00
e50f6a5560 Traduction de la carrière de Marchand 2022-01-02 00:43:54 +01:00
f3c7b1867f Traduction de la carrière d'Enquêteur 2021-12-30 14:45:11 +01:00
501216842a Traduction de la carrière de Bourgeois 2021-12-29 23:02:40 +01:00
afca011758 Traduction de la carrière d'Artisan
- Traduction de la carrière d'Artisan
- Corrections mineures sur l'Agitateur:
  - Citadins -> Citadin
  - Sauts de ligne finaux
2021-12-29 22:40:26 +01:00
e61ae9fdef Merge branch 'description_carrieres' into 'v4'
Description de la carrière d'Agitateur

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!8
2021-12-29 08:36:28 +00:00
0e97de64fe Description de la carrière d'Agitateur 2021-12-29 02:37:41 +01:00
c0a5897c49 Ajout traduction des jobs, par Thargos 2021-12-28 10:47:03 +01:00
3b7b03f578 Ajout traduction des jobs, par Thargos 2021-12-28 10:45:38 +01:00
b7f25c99eb Ajout traduction des jobs, par Thargos 2021-12-28 10:41:35 +01:00
2a10424348 Merge branch 'v4' into 'v4'
Traduction de la table des jobs

See merge request LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr!7
2021-12-28 09:36:50 +00:00
681a1b64cb Traduction de la table des jobs 2021-12-28 09:36:50 +00:00
317a2c4116 Sync with lates doom + fix elfe sylvain 2021-12-25 12:24:14 +01:00
d844cc5079 Ajout table DotR 2021-12-24 15:06:39 +01:00
e4bd3a38d1 Ajout table EiS 2021-12-24 14:55:09 +01:00
b49ee225b5 Ajout table RNHD 2021-12-23 22:37:03 +01:00
ffb74768fd Add career descriptions translation 2021-12-23 10:13:10 +01:00
ebfcfbf70f Sync to v9/v5 2021-12-22 23:47:59 +01:00
97c2eba568 Sync to v9/v5 2021-12-22 22:08:39 +01:00
9d53673190 Sync to v9/v5 2021-12-22 17:29:58 +01:00
bdb2ab552b Sync to v9/v5 2021-12-22 17:25:01 +01:00
d7c25ce7d2 Sync to v9/v5 2021-12-22 17:15:19 +01:00
981622f535 Sync 2021-12-18 14:20:26 +01:00
43324cc172 New keys 2021-12-17 06:35:26 +01:00
40f43eaf1a Ajout talent sniper 2021-11-27 19:36:58 +01:00
897a22290a Synw with 4.3.0 2021-11-26 12:54:58 +01:00
6184241407 Fix loadng 2021-11-24 13:23:14 +01:00
73b1df55c7 Fix talents 2021-11-22 00:01:56 +01:00
63094a118c Amelioration traduction et aides de jeu intégrées 2021-11-21 12:02:24 +01:00
f1dc47a96e Amelioration traduction et aides de jeu intégrées 2021-11-21 11:44:50 +01:00
da8a04a9ad Fixes 2021-11-15 23:18:58 +01:00
c337f19d60 Fixes 2021-11-15 23:17:50 +01:00
c5876920f2 Fix missing translation #59 2021-11-14 23:39:50 +01:00
a7d72d0e09 Alignement des traductions sur la VF corrigée 2021-11-13 11:24:12 +01:00
e88af449d6 Sync translations 2021-11-08 22:34:30 +01:00
acf9641d40 Update job table 2021-11-08 21:29:31 +01:00
661ce7c94d Update job table 2021-11-08 21:29:05 +01:00
eb61db0030 Fix for #55 2021-11-06 13:50:03 +01:00
dc237b8425 Fix for #54 2021-11-06 13:43:56 +01:00
6f0173b14e Divers fixes 2021-11-02 21:03:04 +01:00
ab65901c38 Fix Slayer 2021-11-01 19:59:44 +01:00
ec3e49e2f5 Bug fixes #50 #51 2021-10-22 15:21:12 +02:00
965b0ecf20 Update release 2021-10-18 15:44:35 +02:00
909c19f8cb Sync to 4.2.0 2021-08-26 21:01:54 +02:00
b077bed206 Auto-translat careers/skills.comp 2021-08-24 21:52:31 +02:00
d9bfa7efc4 Auto-translat careers/skills.comp 2021-08-24 21:43:47 +02:00
d40f768909 Update carrières 2021-08-23 22:55:07 +02:00
c9225fad50 Fix #50 2021-08-15 11:42:01 +02:00
d5e1f835dd Add new status 2021-08-14 23:12:33 +02:00
a705deaf54 Add new status 2021-08-14 22:49:25 +02:00
eff36f957a New translation keys 2021-07-30 21:15:26 +02:00
31ef890408 Fix char import 2021-07-29 22:53:35 +02:00
4bf5b4ec0f Fix spells computations 2021-07-28 10:46:59 +02:00
69551f3499 Fix 2021-07-26 23:54:21 +02:00
e6e1cbd073 Minor fixes + compute function 2021-07-25 10:05:59 +02:00
8e80c7a005 Fix commande /auberge 2021-07-20 15:15:13 +02:00
769ac9b6d2 Ajout de traductions de tables supplémentaires 2021-07-19 12:23:19 +02:00
e4c2af894b Fix wrong start 2021-07-15 20:56:58 +02:00
b4e37d96e2 Fix wrong start 2021-07-15 20:51:31 +02:00
c4c8753f32 Fix wrong start 2021-07-15 20:48:30 +02:00
09bd399c0e Fix effects in translated compendiums 2021-07-15 14:28:19 +02:00
4822f260f0 Fix ! 2021-07-15 10:13:00 +02:00
3fbd6d733f Fix for wfrp 4.0 2021-07-08 13:46:30 +02:00
716a27f6ad First fixes for 4.0/0.8.X 2021-06-29 09:57:36 +02:00
54 changed files with 11046 additions and 7232 deletions

View File

@ -18,9 +18,9 @@ It aims to translate all text, including :
Pour l'installer, suivre ces instructions :
1. Au sein de Foundry, allez dans le menu "Configuration and Setup", puis sur l'onglet "Modules"
2. Installez le module de françisation de l'interface principale : https://gitlab.com/baktov.sugar/foundryvtt-lang-fr-fr/raw/master/fr-FR/module.json
3. Installez le module 'babele' : https://gitlab.com/riccisi/foundryvtt-babele/raw/master/module/module.json
4. Installez ce module WH4-fr : https://gitlab.com/LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr/-/raw/master/module.json
2. Installez le module de françisation de l'interface principale ("core FR" dans la recherche de modules)
3. Installez le module 'babele' ("babele" dans la recherche de modules)
4. Installez ce module WH4-fr : ("Translation" ou "French" ou "wfrp4" dans la recherche de modules)
[IN FRENCH ONLY BELOW]
@ -48,6 +48,7 @@ Pournous remonter des bugs, assurez vous d'être dans les versions cités ci-des
**Fait**
* compendiums/careers description -> Uruvela (Discord) et Thargos (Discord)
* fr.json -> Celewyr (FB/Discord)
* compendium/bestiary -> Louis Lebeke (FB)
* tables/delirium -> Louis Lebeke (FB)

View File

@ -4,106 +4,120 @@ import { WH4FRPatchConfig } from "./modules/config-patch.js";
/************************************************************************************/
const _patch_eis = () => {
if ( WFRP4E && WFRP4E.symptoms && WFRP4E.symptoms["delirium"] == undefined ) {
WFRP4E.symptoms["delirium"] = "Délire";
if (game.wfrp4e.config && game.wfrp4e.config.symptoms && game.wfrp4e.config.symptoms["delirium"] ) {
game.wfrp4e.config.symptoms["delirium"] = "Délire";
WFRP4E.symptomDescriptions["delirium"] = "Votre sensibilité va et vient, avec des moments de clarté remplaçés subitement Your sensibility comes and goes, with moments of clarity replaced suddenly par des accès de délire, des hallucinations et de la terreur. Faites un <b>Test de Force Mentale Intermédiaire (+0)</b> chaque heure, et consultez la table <b><a class='table-click' data-table='delirium'>Délires</a></b> table.";
// '<br>' creates a new line
// This is how you can roll from chat cards. Wrap 'd10' in <b><a class = 'chat-roll'>___</a></b>
WFRP4E.symptomTreatment["delirium"] = "Certaines autorités traitent le délire comme un fièvre, avec les mêmes prescriptions. Les médicaments coutent quelques sous à quelques pistoles, en seulement 10% sont efficaces.<br><br>Avec des soins corrects, un test de <b>Guérison Intermédiaire (0)</b> arrêtes les hallucinations pour <b><a class = 'chat-roll'>1d10</a></b> heures.<br><br>Il est aussi courant de soigner les patients délirants avec des drogues tranquillisantes, comme la Fleur de Lune ou même de la Racine de Mandragore, pour garder les patients calmes pendant la crise, les envoyant dans un sommeil agité jusqu'à ce qu'il erécupèrent ou meurent.";
game.wfrp4e.config.symptomDescriptions["delirium"] = "Votre sensibilité va et vient, avec des moments de clarté remplaçés subitement Your sensibility comes and goes, with moments of clarity replaced suddenly par des accès de délire, des hallucinations et de la terreur. Faites un <b>Test de Force Mentale Intermédiaire (+0)</b> chaque heure, et consultez la table <b><a class='table-click' data-table='delirium'>Délires</a></b> table.";
game.wfrp4e.config.symptomTreatment["delirium"] = "Certaines autorités traitent le délire comme un fièvre, avec les mêmes prescriptions. Les médicaments coutent quelques sous à quelques pistoles, en seulement 10% sont efficaces.<br><br>Avec des soins corrects, un test de <b>Guérison Intermédiaire (0)</b> arrêtes les hallucinations pour <b><a class = 'chat-roll'>1d10</a></b> heures.<br><br>Il est aussi courant de soigner les patients délirants avec des drogues tranquillisantes, comme la Fleur de Lune ou même de la Racine de Mandragore, pour garder les patients calmes pendant la crise, les envoyant dans un sommeil agité jusqu'à ce qu'il erécupèrent ou meurent.";
WFRP4E.symptoms["swelling"] = "Gonflement";
game.wfrp4e.config.symptoms["swelling"] = "Gonflement";
game.wfrp4e.config.symptomDescriptions["swelling"] = "Une partie du corps gonfle jusqu'à plusieurs fois sa taille normale, devenant rouge vif ou violette et devenant presque inutilisable. La partie du corps affectée correspond normalement à une plaie ou une morsure provoquant le gonflement, ou l'endroit où une maladie ou une infection est entrée dans le corps. <br> <br> <b> Tête </b>: Les yeux et la langue enflent, les joues deviennent livides, la mâchoire est toujours ouverte. Il est impossible de manger, mais des liquides légers peuvent être sirotés en petites quantités. Tous les tests nécessitant la parole sont plus difficiles de 3 niveaux. <br> <b> Bras </b>: le bras et la main gonflent, les articulations des épaules et du coude ne peuvent plus bouger et la main devient inutile. Pour la durée du gonflement, le bras compte comme Amputé. <br> <b> Corps </b>: Le corps entier gonfle jusqu'à ce que la victime ne puisse plus porter de vêtements. Tous les tests impliquant le mouvement deviennent difficiles de 3 niveaux. <br> <b> Jambe </b>: La jambe gonfle de manière grotesque, devenant aussi large que la partie la plus large de la cuisse sur toute sa longueur. Le pied est presque indiscernable. Pour la durée du gonflement, la jambe compte comme amputée (WFRP, page 180).";
WFRP4E.symptomDescriptions["swelling"] = "Une partie du corps gonfle jusqu'à plusieurs fois sa taille normale, devenant rouge vif ou violette et devenant presque inutilisable. La partie du corps affectée correspond normalement à une plaie ou une morsure provoquant le gonflement, ou l'endroit où une maladie ou une infection est entrée dans le corps. <br> <br> <b> Tête </b>: Les yeux et la langue enflent, les joues deviennent livides, la mâchoire est toujours ouverte. Il est impossible de manger, mais des liquides légers peuvent être sirotés en petites quantités. Tous les tests nécessitant la parole sont plus difficiles de 3 niveaux. <br> <b> Bras </b>: le bras et la main gonflent, les articulations des épaules et du coude ne peuvent plus bouger et la main devient inutile. Pour la durée du gonflement, le bras compte comme Amputé. <br> <b> Corps </b>: Le corps entier gonfle jusqu'à ce que la victime ne puisse plus porter de vêtements. Tous les tests impliquant le mouvement deviennent difficiles de 3 niveaux. <br> <b> Jambe </b>: La jambe gonfle de manière grotesque, devenant aussi large que la partie la plus large de la cuisse sur toute sa longueur. Le pied est presque indiscernable. Pour la durée du gonflement, la jambe compte comme amputée (WFRP, page 180).";
game.wfrp4e.config.symptomTreatment["swelling"] = "La plupart des traitements consistent à plonger la partie affectée, ou parfois tout le corps, dans un bain d'eau glacée pour réduire la chaleur qui accompagne les gonflements. Un <b> Test de Guérison Difficile (-20) étendu </b> nécessitant +3 DR réduit le renflement de <b> <a class ='chat-roll'> 2d10 </a> </b> heures. Chaque test dure une heure. Le patient se retrouve avec l'Etat Exténué +1 pour chaque test effectué au cours du processus. <br> <br> A la place, certains médecins saignent le patient avec une lame ou des sangsues. Un <b>Test de Guérison étendu </b> réussi nécessitant +4 SL et des Outils (médecin) réduit le renflement de (<a class ='chat-roll'> 1d10 </a> + Bonus d'Endurance du patient) heures. Chaque test a une difficulté de base <b> impossible (-50) </b> et dure une demi-heure.";
WFRP4E.symptomTreatment["swelling"] = "La plupart des traitements consistent à plonger la partie affectée, ou parfois tout le corps, dans un bain d'eau glacée pour réduire la chaleur qui accompagne les gonflements. Un <b> Test de Guérison Difficile (-20) étendu </b> nécessitant +3 DR réduit le renflement de <b> <a class ='chat-roll'> 2d10 </a> </b> heures. Chaque test dure une heure. Le patient se retrouve avec l'Etat Exténué +1 pour chaque test effectué au cours du processus. <br> <br> A la place, certains médecins saignent le patient avec une lame ou des sangsues. Un <b>Test de Guérison étendu </b> réussi nécessitant +4 SL et des Outils (médecin) réduit le renflement de (<a class ='chat-roll'> 1d10 </a> + Bonus d'Endurance du patient) heures. Chaque test a une difficulté de base <b> impossible (-50) </b> et dure une demi-heure.";
WFRP4E.difficultyModifiers["futile"] = -40;
WFRP4E.difficultyModifiers["impossible"] = -50;
WFRP4E.difficultyLabels["futile"] = "Futile (-40)";
WFRP4E.difficultyLabels["impossible"] = "Impossible (-50)";
WFRP4E.loreEffect["tzeentch"] = "Les cibles des sorts de Tzeentch sont déchirées par la magie transformatrice du Chaos. Les cibles affectées par un sort du savoir de Tzeentch doivent réussir un test d'endurance Intermédiaire (+0) ou gagner +1 Point de Corruption. S'ils réussissent leur test, ils gagnent à la place +1 Point de Chance, qui peut être utilisé normalement. Tels sont les caprices de Tzeentch";
game.wfrp4e.config.loreEffects["tzeentch"] = {
label: "Domaine de Tzeentch",
icon: "modules/wfrp4e-core/icons/spells/tzeentch.png",
transfer: true,
flags: {
wfrp4e: {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"lore": true,
"script": `
if (this.actor.isOwner)
args.actor.setupSkill("Résistance", {context : {failure: "1 Point de Corruption reçu", success : "1 Point de Chance gagné"}}).then(setupData => {
args.actor.basicTest(setupData).then(test =>
{
if (test.result.result == "success" && args.actor.data.type == "character")
{
args.actor.update({"data.status.fortune.value" : args.actor.data.data.status.fortune.value + 1})
}
else if (test.result.result == "failure" && args.actor.data.type == "character")
{
args.actor.update({"data.status.corruption.value" : args.actor.data.data.status.corruption.value + 1})
}
})
})`
}
}
}
}
}
/************************************************************************************/
/* Manages /auberge command */
const _manage_inn_roll = async (content, msg) => {
// Split input into arguments
let command = content.split(" ").map(function(item) {
return item.trim();
})
//console.log(game.wfrp4e.tables["talents"]);
if (command[0] == "/auberge" && command[1] )
{
msg["type"] = 0;
msg["rollMode"] = "gmroll";
var compendium = game.packs.get('WH4-fr-translation.plats-dauberges');
let rollList = [];
await compendium.getIndex().then(index => rollList = index);
//console.log("Got compendium...", rollList.length);
for (var i=0; i< rollList.length; i++) {
var rollTab = rollList[i];
if ( rollTab.name.toLowerCase().includes(command[1].toLowerCase()) ) {
let my_rollTable;
await compendium.getEntity(rollTab._id).then(mytab => my_rollTable = mytab);
let myroll = my_rollTable.roll();
//console.log("RES: ", myroll );
msg.content = my_rollTable.name + " : " + myroll.results[0].text;
//my_rollTable.draw();
ChatMessage.create(msg);
return false;
}
// Split input into arguments
let command = content.split(" ").map(function (item) {
return item.trim();
})
console.log("COMMANDES", command);
if (command[0] == "/auberge" && command[1]) {
msg["type"] = 0;
msg["rollMode"] = "gmroll";
var compendium = game.packs.get('WH4-fr-translation.plats-dauberges');
let rollList = [];
await compendium.getIndex().then(index => rollList = index);
rollList = rollList.contents;
for (var i = 0; i < rollList.length; i++) {
var rollTab = rollList[i];
console.log("Got compendium...", rollList, rollTab.name);
if (rollTab.name.toLowerCase().includes(command[1].toLowerCase())) {
let my_rollTable;
await compendium.getDocument(rollTab._id).then(mytab => my_rollTable = mytab);
my_rollTable.draw({ rollMode: "gmroll" });
return false;
}
}
if ( content.includes("/auberge") ) {
msg["type"] = 0;
msg["rollMode"] = "gmroll";
msg["content"] = "Syntaxe : /auberge MOT_CLE, avec MOT_CLE parmi:<br>BoissonsBase, BoissonsFortes, Desserts, PlatsCommuns, PlatsExcellents, PlatsMaritimes, PlatsMédiocres, PlatsQualité, PlatsRivières<br>Des raccourcis sont possibles avec une partie du nom : /auberge Base (correspond à BoissonBase) ou /auberge Mari (correspond à PlatsMaritimes), etc."
ChatMessage.create(msg);
return false;
}
}
if (content.includes("/auberge")) {
msg["type"] = 0;
msg["rollMode"] = "gmroll";
msg["content"] = "Syntaxe : /auberge MOT_CLE, avec MOT_CLE parmi:<br>BoissonsBase, BoissonsFortes, Desserts, PlatsCommuns, PlatsExcellents, PlatsMaritimes, PlatsMédiocres, PlatsQualité, PlatsRivières<br>Des raccourcis sont possibles avec une partie du nom : /auberge Base (correspond à BoissonBase) ou /auberge Mari (correspond à PlatsMaritimes), etc."
ChatMessage.create(msg);
return false;
}
}
/************************************************************************************/
let __eis_tables = { "animalmishap":1, "beasthead":1, "coincedentalenc":1, "demonic-mien":1,
"expandedmutatemental":1, "expandedmutatephys":1, "fixations":1,
"harmfulenc":1, "positiveenc":1, "weather":1, "mutatephys": 1,
"vehiclemishap": 1,"quadruped": 1, "ridingmishap": 1, "weather": 1,
"delirium": 1
}
let __dotr_tables = { "rowingboat":1, "sailingboat":1, "wind-direction": 1, "waterborne": 1, "traderumour": 1
}
let __wfrp4e_tables = { "career": 1, "critbody":1, "critleg": 1, "doom": 1, "eyes": 1, "majormis": 1, "mutatemental": 1, "oops": 1, "species":1, "travel": 1,
"hitloc": 1, "critarm": 1, "crithead": 1, "delirium": 1, "event": 1, "hair": 1, "minormis": 1, "mutatephys": 1, "talents": 1, "wrath": 1,
"astral": 1, "corruption": 1, "snake": 1, "spider": 1
let __eis_tables = {
"animalmishap": 1, "beasthead": 1, "coincedentalenc": 1, "demonic-mien": 1,
"expandedmutatemental": 1, "expandedmutatephys": 1, "fixations": 1,
"harmfulenc": 1, "positiveenc": 1, "weather": 1, "mutatephys": 1,
"vehiclemishap": 1, "quadruped": 1, "ridingmishap": 1, "weather": 1,
"delirium": 1
}
let __dotr_tables = {
"rowingboat": 1, "sailingboat": 1, "wind-direction": 1, "waterborne": 1, "traderumour": 1
}
let __wfrp4e_tables = {
"career": 1, "critbody": 1, "critleg": 1, "doom": 1, "doom2": 1, "eyes": 1, "majormis": 1, "mutatemental": 1, "oops": 1, "species": 1, "travel": 1,
"hitloc": 1, "critarm": 1, "crithead": 1, "delirium": 1, "event": 1, "hair": 1, "minormis": 1, "mutatephys": 1, "talents": 1, "wrath": 1,
"astral": 1, "corruption": 1, "snake": 1, "spider": 1, "job": 1
}
let __to_table_translate = [ { name:"traits", transl:"Traits"}, {name:"talents", transl:"Talents"}, {name:"skills", transl:"Compétences"} ,
{ name:"careers", transl:"Carrières"}, {name:"spells", transl:"Sorts"}, {name:"prayers", transl:"Bénédictions et Miracles" } ,
{ name:"injuries", transl:"Blessures"}, {name:"criticals", transl:"Critiques"}, {name:"trappings", transl:"Equipement" },
{ name:"bestiary", transl:"Bestiaire"}, { name:"diseases", transl:"Maladies"}
]
}
let __to_table_translate = [{ name: "traits", transl: "Traits" }, { name: "talents", transl: "Talents" }, { name: "skills", transl: "Compétences" },
{ name: "careers", transl: "Carrières" }, { name: "spells", transl: "Sorts" }, { name: "prayers", transl: "Bénédictions et Miracles" },
{ name: "injuries", transl: "Blessures" }, { name: "criticals", transl: "Critiques" }, { name: "trappings", transl: "Equipement" },
{ name: "bestiary", transl: "Bestiaire" }, { name: "diseases", transl: "Maladies" }
]
/************************************************************************************/
const __create_translation_tables = async (compmod) => {
for (let iterData of __to_table_translate) {
let entityName = compmod+'.' + iterData.name;
let compData = game.packs.get( entityName);
let entityName = compmod + '.' + iterData.name;
let compData = game.packs.get(entityName);
let compFull = await compData.getContent();
let htmlTab = "<table border='1'><tbody>";
for (let entryData of compFull ) {
htmlTab += "<tr><td>"+ entryData.data.originalName + "</td><td>@Compendium["+ entityName + '.' + entryData.id + "]{"+ entryData.name +"}</td></tr>\n";
};
for (let entryData of compFull) {
htmlTab += "<tr><td>" + entryData.data.originalName + "</td><td>@Compendium[" + entityName + '.' + entryData.id + "]{" + entryData.name + "}</td></tr>\n";
};
htmlTab += "</table>";
let myjournal = await JournalEntry.create( {name: 'Traduction des ' + iterData.transl, content: htmlTab } );
game.journal.insert( myjournal );
let myjournal = await JournalEntry.create({ name: 'Traduction des ' + iterData.transl, content: htmlTab });
game.journal.insert(myjournal);
}
}
@ -113,176 +127,256 @@ const __create_translation_tables = async (compmod) => {
* */
const __auto_patch_translation_journal_compendium = async (compmod) => {
if (game.user.isGM) {
let compData = game.packs.get( "WH4-fr-translation.tables-des-traductions" );
let compData = game.packs.get("WH4-fr-translation.tables-des-traductions");
compData.locked = false;
let translEntries = await compData.getContent();
for (let entryData of translEntries ) {
let mydata = duplicate(entryData.data);
mydata.content = mydata.content.replace(/wfrp4e-content/g, compmod );
entryData.update( mydata );
for (let entryData of translEntries) {
let mydata = duplicate(entryData.data);
mydata.content = mydata.content.replace(/wfrp4e-content/g, compmod);
entryData.update(mydata);
}
compData.locked = true;
}
}
/************************************************************************************/
const loadCompendiumData = async (compendium) => {
const pack = game.packs.get(compendium);
return await pack?.getDocuments() ?? [];
}
/* -------------------------------------------- */
/************************************************************************************/
const loadCompendium = async (compendium, filter = item => true) => {
let compendiumData = await loadCompendiumData(compendium);
return compendiumData.filter(filter);
}
/************************************************************************************/
const patch_core_tables = (tableList) => {
if (game.version) { // v9 and above
return;
}
FilePicker.browse("data", "modules/WH4-fr-translation/tables/").then(resp => {
for (var file of resp.files) {
let filename = file.substring(file.lastIndexOf("/")+1, file.indexOf(".json"));
if ( tableList[filename] == 1 ) { // Matching table name -> patch !
fetch(file).then(r=>r.json()).then(records => {
let filename = file.substring(file.lastIndexOf("/") + 1, file.indexOf(".json"))
if (tableList[filename] == 1) { // Matching table name -> patch !
fetch(file).then(r => r.json()).then(records => {
//console.log("Patch !!!", filename, records);
//WFRP_Tables[filename] = records;
game.wfrp4e.tables[filename] = records;
});
}
});
}
}
});
}
/************************************************************************************/
const patch_trade_gazeteer = () => {
if ( game.wfrp4e.config.trade?.gazetteer) {
fetch( "modules/WH4-fr-translation/tables/gazetteer.json").then( r => r.json()).then(records => {
if (game.wfrp4e.config.trade?.gazetteer) {
fetch("modules/WH4-fr-translation/tables/gazetteer.json").then(r => r.json()).then(records => {
game.wfrp4e.config.trade.gazetteer = records;
}) ;
});
}
}
/************************************************************************************/
const __check_fix_wrong_modules = ( chatFlag, patchFinished ) => {
const __check_fix_wrong_modules = (chatFlag, patchFinished) => {
WH4FRPatchConfig.perform_patch();
game.modules.forEach((module, name) => {
if ( name == "wfrp4e-core" && module.active) {
patch_core_tables( __wfrp4e_tables );
if (name == "wfrp4e-core" && module.active) {
patch_core_tables(__wfrp4e_tables);
}
if ( name == "wfrp4e-eis" && module.active) {
patch_core_tables( __eis_tables );
if (name == "wfrp4e-eis" && module.active) {
patch_core_tables(__eis_tables);
_patch_eis();
}
if ( name == "wfrp4e-dotr" && module.active) {
patch_core_tables( __dotr_tables );
if (name == "wfrp4e-dotr" && module.active) {
patch_core_tables(__dotr_tables);
patch_trade_gazeteer()
}
if ( name == "wfrp4e-rnhd" && module.active && game.wfrp4e.tables.career) {
game.wfrp4e.tables.career.name = "Carrières aléatoires";
/*FilePicker.browse("data", "modules/WH4-fr-translation/tables/").then(resp => {
for (var file of resp.files) {
if ( file.match("career_gnome.json") ) {
fetch(file).then(r=>r.json()).then(records => {
let mycareer = records;
game.wfrp4e.tables.career.columns = mycareer.columns;
for (let k=0; k<game.wfrp4e.tables.career.rows.length; k++) {
game.wfrp4e.tables.career.rows[k].range = mycareer.rows[k].range;
game.wfrp4e.tables.career.rows[k].name = mycareer.rows[k].name; // Patch !!!
}
});
}
}
});*/
WH4FRPatchConfig.perform_rnhd_patch();
if (game.user.isGM && chatFlag)
ChatMessage.create( { title: "Module RNHD patché", content: "<strong>Le module RHND a été detecté et automatiquement patché.</strong>", whisper: ChatMessage.getWhisperRecipients("GM") } );
}
if ( name == 'ogre-kingdom-wfrp4e' && module.active) {
if (name == 'ogre-kingdom-wfrp4e' && module.active) {
WH4FRPatchConfig.perform_ogrekingdom_patch();
if (game.user.isGM && chatFlag)
ChatMessage.create( { title: "Module Ogre-Kingdom patché", content: "<strong>Le module Ogre-Kingdom a été detecté et automatiquement patché.</strong>", whisper: ChatMessage.getWhisperRecipients("GM") } );
ChatMessage.create({ content: "<div><strong>Le module Ogre-Kingdom a été detecté et automatiquement patché.</strong></div>", whisper: ChatMessage.getWhisperRecipients("GM") });
}
if ( name == "wfrp4e-ew" && module.active && game.user.isGM && chatFlag) {
ChatMessage.create( { title: "Module non compatible detecté !", content: "<strong>Vous avez le module EW (wfrp4e-ew ?) installé. Malheureusement, ce module n'est pas compatible avec" +
" les traductions et vient casser le fonctionnement de la traduction. Veuillez recopier les compendiums dans votre monde, désactiver le module et re-démarrer le monde</strong>",
if (name == "wfrp4e-ew" && module.active && game.user.isGM && chatFlag) {
ChatMessage.create({
content: "<div><strong>Vous avez le module EW (wfrp4e-ew ?) installé. Malheureusement, ce module n'est pas compatible avec" +
" les traductions et vient casser le fonctionnement de la traduction. Veuillez recopier les compendiums dans votre monde, désactiver le module et re-démarrer le monde</strong></div>",
whisper: ChatMessage.getWhisperRecipients("GM")
} );
});
}
});
if (game.user.isGM && patchFinished)
ChatMessage.create( { title: "Patch fini !", content: "Les modules WFRP4E ont été patchés <strong>avec succès</strong>. Vous pouvez y aller et que <strong>Shallya vous garde !</strong>", whisper: ChatMessage.getWhisperRecipients("GM") } );
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>",
user: game.user.id,
whisper: ChatMessage.getWhisperRecipients("GM")
});
}
}
/************************************************************************************/
const __add_actors_translation = ( ) => {
const lang = game.settings.get('core', 'language');
if ( lang == "fr" ) {
let pack_array = [];
game.packs.forEach((pack, name) => {
let newpack = pack;
if(!pack.translated && pack.entity === 'Actor') {
let translations = {
"label": pack.metadata.name,
"mapping": {
"name": "name",
"description": "details.biography.value",
"items": {
"path": "items",
"converter": "bestiary_traits"
},
"characteristics": {
"path": "data.characteristics",
"converter": "npc_characteristics"
},
"details": {
"path": "data.details",
"converter": "npc_details"
}
},
"entries": [
]
};
newpack = new TranslatedCompendium(pack, translations);
console.log("Actor compendium has been replaced !!!!", pack.metadata.name);
}
//console.log("Parsing pack", newpack);
if (newpack.metadata.name == "forien-armoury" ) {
newpack.mapping.mapping["qualities"] = {
"path": "data.qualities.value",
"converter": "trapping_qualities_flaws"
};
newpack.mapping.mapping["flaws"] = {
"path": "data.flaws.value",
"converter": "trapping_qualities_flaws"
};
console.log("Forien armoury patched !!");
}
pack_array.push( [name, newpack ] );
} );
game.packs = new Collection( pack_array );
}
const convertColumnToMulti = (table) => {
let columns = table.columns;
let newTable = duplicate(table)
delete newTable.columns;
newTable.rows = table.rows.map(i => { return { range: {} } })
newTable.multi = table.columns
for (let column of columns) {
for (let row of newTable.rows) {
row[column] = {}
row.range[column] = []
}
}
for (let index in newTable.rows) {
for (let column in table.rows[index].range) {
newTable.rows[index][column] = { name: table.rows[index].name }
newTable.rows[index].range[column] = table.rows[index].range[column]
}
}
return newTable;
}
/************************************************************************************/
const __patchStyleSheet = () => {
for (let styleSheet of document.styleSheets) {
if (styleSheet.href && styleSheet.href.includes("wfrp4e.css")) {
let found = 0
for (let i = 0; i < styleSheet.cssRules.length; i++) {
let rule = styleSheet.cssRules[i]
if (rule.selectorText == '.sidebar-popout') {
console.log("DELETE RULE", rule)
found = i
/*rule.cssText = ".sidebar-popout { }"
rule.style.width = ""
console.log("Found rul2", rule)*/
}
}
styleSheet.deleteRule(found)
}
}
}
/************************************************************************************/
const __add_actors_translation = () => {
const lang = game.settings.get('core', 'language');
if (lang == "fr") {
let pack_array = [];
for (let metadata of game.data.packs) {
if (!game.babele.isTranslated(metadata) && metadata.documentName === 'Actor') {
//console.log("PACK : ", metadata);
let translations = {
"label": metadata.name,
"mapping": {
"name": "name",
"description": "details.biography.value",
"items": {
"path": "items",
"converter": "bestiary_traits"
},
"characteristics": {
"path": "data.characteristics",
"converter": "npc_characteristics"
},
"details": {
"path": "data.details",
"converter": "npc_details"
}
},
"entries": [
]
};
game.babele.packs.set(collection, new TranslatedCompendium(metadata, translation));
//newpack = new TranslatedCompendium(pack, translations);
//console.log("Actor compendium has been replaced !!!!", pack.metadata.name);
}
}
}
}
/************************************************************************************/
/* Hook for specific command */
Hooks.on("chatMessage", (html, content, msg) => {
if ( content.includes("/auberge") ) {
_manage_inn_roll( content, msg );
if (content.toLowerCase().includes('auberge')) {
_manage_inn_roll(content, msg);
return false;
}
} );
});
/************************************************************************************/
/* Additionnal hooks ready */
Hooks.once('ready', () => {
if (game.user.isGM)
ChatMessage.create( { title: "Patch en progression", content: "Les modules WFRP4E sont <strong>en cours de patch pour traduction</strong>... Merci <strong>d'attendre le message de fin</strong> (dans environ 20 secondes)", whisper: ChatMessage.getWhisperRecipients("GM") } );
if (game.user.isGM) {
let chatData = {
user: game.user.id,
rollMode: game.settings.get("core", "rollMode"),
whisper: ChatMessage.getWhisperRecipients('GM'),
content: `<div>Les modules WFRP4E sont <strong>en cours de patch pour traduction</strong>... Merci <strong>d'attendre le message de fin</strong> (dans environ 20 secondes)<p>Pour rappel et à titre informatif, il faut activer ce module de traduction FR <strong>avant</strong> de procéder à l'importation des données des modules C7 (core compris). Autrement dit, activez ce module FR <strong>AVANT</strong> tout autre module.</p><p>Support et informations sur le Discord FR de Foundry : https://discord.gg/pPSDNJk</p></div>`
}
ChatMessage.create(chatData);
}
/** New modifiers */
game.wfrp4e.config.difficultyModifiers = {
"veasy": 60,
"easy": 40,
"banal": 30,
"average": 20,
"medium": 10,
"challenging": 0,
"difficult": -10,
"hard": -20,
"vhard": -30,
"doom": -40
}
game.wfrp4e.config.difficultyLabels = {
"veasy": "Trés Facile (+60)",
"easy": "Facile (+40)",
"banal": "Banal (+30)",
"average": "Accessible (+20)",
"medium": "Faisable (+10)",
"challenging": "Intermédiaire (+0)",
"difficult": "Complexe (-10)",
"hard": "Difficile (-20)",
"vhard": "Très Difficile (-30)",
"doom": "Maudit (-40)"
}
//setTimeout( __check_fix_wrong_modules, 2000, true, false);
setTimeout( __check_fix_wrong_modules, 10000, true, false);
setTimeout( __check_fix_wrong_modules, 20000, false, true);
setTimeout( __add_actors_translation, 21000, false, true);
setTimeout(__check_fix_wrong_modules, 20000, true, true);
setTimeout(__add_actors_translation, 21000, false, true);
//__patchStyleSheet()
/* ATTEMPT !!
loadCompendium("wfrp4e-core.spells").then( comp => {
let sorted = {};
for (let spell of comp) {
if ( !sorted[spell.data.data.lore.value]) {
sorted[spell.data.data.lore.value] = [];
}
sorted[spell.data.data.lore.value].push( duplicate(spell.data) );
}
console.log("SORTED", sorted);
});*/
/*
let compmod = "wfrp4e";
// Check various settings in the installation
game.modules.forEach((module, name) => {
@ -295,6 +389,5 @@ Hooks.once('ready', () => {
Auto-create translation journal tables
__create_translation_tables(compmod);
*/
//__create_translation_tables(compmod);
} );
});

View File

@ -34,120 +34,66 @@ Hooks.once('init', () => {
vo_conditions: vo_conditions }
game.wfrp4e.apps.StatBlockParser.parseStatBlock = async function( statString, type = "npc") {
return statParserFR( statString, type);
}
/*---------------------------------------------------------------------*/
game.wfrp4e.utility.handleConditionClick = function(event) {
let cond = $(event.currentTarget).attr("data-cond")
if (!cond)
cond = event.target.text;
cond = cond.trim();
let condkey
// En vo, les noms d'états sont égaux aux clés en minuscules
if ( game.wfrp4e.config.conditions[cond.toLowerCase()] ) {
condkey = cond.toLowerCase();
} else {
try {
condkey = game.wfrp4e.utility.findKey(cond.toLowerCase(), game.wfrp4e.config.conditions, {caseInsensitive: true});
}
catch {
ui.notifications.error("L'état est inconnu : " + cond);
}
}
let condName = game.wfrp4e.config.conditions[condkey];
let condDescr = game.wfrp4e.config.conditionDescriptions[condkey];
let messageContent = `<b>${condName}</b><br>${condDescr}`
let chatData = game.wfrp4e.utility.chatDataSetup(messageContent)
ChatMessage.create(chatData);
}
/*---------------------------------------------------------------------*/
game.wfrp4e.entities.ActorWfrp4e.prototype.calculateRangeOrDamage = function(formula)
{
//console.log("FR function calculateRangeOrDamage !", formula);
let actorData = this.data
try
{
formula = formula.toLowerCase();
// Iterate through characteristics
for(let ch in actorData.data.characteristics)
{
// Determine if the formula includes the characteristic's abbreviation + B (SB, WPB, etc.)
if (formula.includes(ch.concat('b')))
{
// Replace that abbreviation with the Bonus value
formula = formula.replace(ch.concat('b'), actorData.data.characteristics[ch].bonus.toString());
}
}
if (formula.includes("yard") )
formula = formula.replace('yard', "mètre" );
if (formula.includes("yds") )
formula = formula.replace('yds', "m." );
// To evaluate multiplication, replace x with *
formula = formula.replace('x', '*');
//console.log("FOEM", formula);
return eval(formula);
return statParserFR( statString, type);
}
catch
{
//console.log("FOEM2", formula);
return formula;
}
}
/*---------------------------------------------------------------------*/
game.wfrp4e.entities.ActorWfrp4e.prototype.calculateSpellDamage = function(formula, isMagicMissile) {
//console.log("Compute FR")
let actorData = this.data
game.wfrp4e.entities.ItemWfrp4e.prototype.computeSpellDamage = function(formula, isMagicMissile) {
try {
formula = formula.toLowerCase();
if (isMagicMissile) // If it's a magic missile, damage includes willpower bonus
{
formula += "+ " + actorData.data.characteristics["wp"].bonus
formula += "+ " + this.actor.characteristics["wp"].bonus
}
// Specific case, to avoid wrong matching with "Force"
if (formula.includes("toughness bonus")) {
formula = formula.replace( "toughness bonus", actorData.data.characteristics["t"].bonus);
formula = formula.replace( "toughness bonus", this.actor.characteristics["t"].bonus);
}
// Specific case, to avoid wrong matching with "Force"
if (formula.includes("force mentale"))
{
// Determine if it's looking for the bonus or the value
if (formula.includes('bonus')) {
formula = formula.replace( "bonus de force mentale", actorData.data.characteristics["wp"].bonus);
formula = formula.replace( "force mentale bonus", actorData.data.characteristics["wp"].bonus);
formula = formula.replace( "bonus de force mentale", this.actor.characteristics["wp"].bonus);
formula = formula.replace( "force mentale bonus", this.actor.characteristics["wp"].bonus);
} else
formula = formula.replace("force mentale", actorData.data.characteristics["wp"].value);
formula = formula.replace("force mentale", this.actor.characteristics["wp"].value);
}
// Iterate through characteristics
for(let ch in actorData.data.characteristics)
for(let ch in this.actor.characteristics)
{
// If formula includes characteristic name
while (formula.includes(actorData.data.characteristics[ch].label.toLowerCase()))
while (formula.includes(this.actor.characteristics[ch].label.toLowerCase()))
{
// Determine if it's looking for the bonus or the value
if (formula.includes('bonus')) {
formula = formula.replace("bonus de " + game.wfrp4e.config.characteristics[ch].toLowerCase(), actorData.data.characteristics[ch].bonus);
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase() + " bonus", actorData.data.characteristics[ch].bonus);
formula = formula.replace("bonus de " + game.wfrp4e.config.characteristics[ch].toLowerCase(), this.actor.characteristics[ch].bonus);
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase() + " bonus", this.actor.characteristics[ch].bonus);
}
else
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase(), actorData.data.characteristics[ch].value);
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase(), this.actor.characteristics[ch].value);
}
}
//console.log("calculateSpellDamage -> " + formula );
return eval(formula);
}
return eval(formula);
}
catch (e) {
throw ui.notifications.error("Error: could not parse spell damage. See console for details")
}
}
/*---------------------------------------------------------------------*/
game.wfrp4e.entities.ActorWfrp4e.prototype.calculateSpellAttributes = function(formula, aoe=false) {
game.wfrp4e.entities.ItemWfrp4e.prototype.computeSpellPrayerFormula = function(type, aoe=false, formulaOverride) {
let formula = formulaOverride || this[type]?.value
if (Number.isNumeric(formula))
return formula
//console.log("Compute FR")
let actorData = this.data
formula = formula.toLowerCase();
// Do not process these special values
@ -158,18 +104,18 @@ Hooks.once('init', () => {
{
// Determine if it's looking for the bonus or the value
if (formula.includes('bonus')) {
formula = formula.replace( "bonus de force mentale", actorData.data.characteristics["wp"].bonus);
formula = formula.replace( "force mentale bonus", actorData.data.characteristics["wp"].bonus);
formula = formula.replace( "bonus de force mentale", this.actor.characteristics["wp"].bonus);
formula = formula.replace( "force mentale bonus", this.actor.characteristics["wp"].bonus);
}
else
formula = formula.replace("force mentale", actorData.data.characteristics["wp"].value);
formula = formula.replace("force mentale", this.actor.characteristics["wp"].value);
}
if (formula.includes("yard") )
formula = formula.replace('yard', "mètre" );
if (formula.includes("yds") )
formula = formula.replace('yds', "m." );
// Iterate through remaining characteristics
for(let ch in actorData.data.characteristics)
for(let ch in this.actor.characteristics)
{
// If formula includes characteristic name
//console.log("Testing :", ch, WFRP4E.characteristics[ch].toLowerCase());
@ -177,11 +123,11 @@ Hooks.once('init', () => {
{
// Determine if it's looking for the bonus or the value
if (formula.includes('bonus')) {
formula = formula.replace("bonus de " + game.wfrp4e.config.characteristics[ch].toLowerCase(), actorData.data.characteristics[ch].bonus);
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase() + " bonus", actorData.data.characteristics[ch].bonus);
formula = formula.replace("bonus de " + game.wfrp4e.config.characteristics[ch].toLowerCase(), this.actor.characteristics[ch].bonus);
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase() + " bonus", this.actor.characteristics[ch].bonus);
}
else
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase(), actorData.data.characteristics[ch].value);
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase(), this.actor.characteristics[ch].value);
}
}
}
@ -205,8 +151,8 @@ Hooks.once('init', () => {
});
Babele.get().registerConverters({
"career_skills": (skills_list) => {
var compendium = game.packs.find(p => p.collection === compmod+'.skills');
//console.log( "Thru here ...", compendium, skills_list);
if ( skills_list ) {
var i;
@ -214,7 +160,7 @@ Hooks.once('init', () => {
var re = /(.*)\((.*)\)/i;
for (i = 0; i < len; i++) {
skills_list[i] = skills_list[i].trim();
var transl = compendium.translate( { name: skills_list[i] } ).name;
var transl = game.babele.translate(compmod+'.skills', { name: skills_list[i] }, true ).name;
//console.log("List ...", skills_list[i]);
if ( transl == skills_list[i] ) {
var res = re.exec( skills_list[i] );
@ -222,13 +168,13 @@ Hooks.once('init', () => {
//console.log("Matched/split:", res[1], res[2]);
var subword = game.i18n.localize(res[2].trim() );
var s1 = res[1].trim() + " ()";
var translw = compendium.translate( { name: s1} ).name;
var translw = game.babele.translate(compmod+'.skills', { name: s1}, true ).name;
if (translw != s1) {
var res2 = re.exec(translw);
transl = res2[1] + "(" + subword + ")";
} else {
s1 = res[1].trim() + " ( )";
translw = compendium.translate( { name: s1} ).name;
translw = game.babele.translate(compmod+'.skills', { name: s1}, true ).name;
var res2 = re.exec(translw);
transl = res2[1] + "(" + subword + ")";
}
@ -239,6 +185,7 @@ Hooks.once('init', () => {
}
return skills_list;
},
"npc_details": (details) => {
//console.log("DETAILS: ", details);
let newDetails = duplicate(details);
@ -250,6 +197,7 @@ Hooks.once('init', () => {
newDetails.class.value = game.i18n.localize(details.class.value);
return newDetails;
},
"career_talents": (talents_list) => {
var compendium = game.packs.find(p => p.collection === compmod+'.talents');
var i;
@ -257,21 +205,21 @@ Hooks.once('init', () => {
var len = talents_list.length;
var re = /(.*)\((.*)\)/i;
for (i = 0; i < len; i++) {
var transl = compendium.translate( { name: talents_list[i]} ).name;
var transl = game.babele.translate(compmod+'.talents', { name: talents_list[i]}, true ).name;
if ( transl == talents_list[i] ) {
var res = re.exec( talents_list[i]);
if (res) {
//console.log("Matched/split:", res[1], res[2]);
var subword = game.i18n.localize(res[2].trim() );
var s1 = res[1].trim(); // No () in talents table
var translw = compendium.translate( { name: s1 } ).name;
var translw = game.babele.translate(compmod+'.talents', { name: s1 }, true ).name;
if (translw != s1) {
transl = translw + "(" + subword + ")";
transl = translw + " (" + subword + ")";
} else {
s1 = res[1].trim() + " ( )";
translw = compendium.translate( { name: s1 } ).name;
translw = game.babele.translate(compmod+'.talents', { name: s1 }, true ).name;
var res2 = re.exec(translw);
transl = res2[1] + "(" + subword + ")";
transl = res2[1] + " (" + subword + ")";
}
}
}
@ -294,18 +242,6 @@ Hooks.once('init', () => {
return chars;
},
"bestiary_traits": (beast_traits, translations) => {
var fulltraits = game.packs.get(compmod+'.traits');
var fullskills = game.packs.get(compmod+'.skills');
var fulltalents = game.packs.get(compmod+'.talents');
var fullcareers = game.packs.get(compmod+'.careers');
var fulltrappings = game.packs.get(compmod+'.trappings');
var fullspells = game.packs.get(compmod+'.spells');
var fullprayers = game.packs.get(compmod+'.prayers');
var eisitems = game.packs.get('eis.eisitems');
var eisspells = game.packs.get('eis.eisspells');
var ugtalents = game.packs.get('wfrp4e-unofficial-grimoire.ug-careerstalentstraits');
var ugspells = game.packs.get('wfrp4e-unofficial-grimoire.ug-spells');
//console.log("Comp :", compmod, fulltraits);
for (let trait_en of beast_traits)
{
@ -326,13 +262,13 @@ Hooks.once('init', () => {
name_en = res[1]; // Get the root traits name
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
}
var trait_fr = fulltraits.translate( { name: name_en } );
//console.log(">>>>> Trait ?", name_en, nbt, trait_fr.name, special);
var trait_fr = game.babele.translate( compmod+'.traits', { name: name_en }, true );
//console.log(">>>>> Trait ?", name_en, nbt, trait_fr, trait_fr.name, special);
trait_en.name = nbt + trait_fr.name + special;
if ( trait_fr.data && trait_fr.data.description && trait_fr.data.description.value ) {
trait_en.data.description.value = trait_fr.data.description.value;
} else if ( eisitems ) { // No description in the FR compendium -> test other compendium if presenr
trait_fr = eisitems.translate( { name: name_en } );
} else if ( game.modules.get( 'wfrp4e-eis') ) { // No description in the FR compendium -> test other compendium if presenr
trait_fr = game.babele.translate( 'wfrp4e-eis.eisitems', { name: name_en }, true);
trait_en.name = nbt + trait_fr.name + special;
if ( trait_fr.data && trait_fr.data.description && trait_fr.data.description.value )
trait_en.data.description.value = trait_fr.data.description.value;
@ -348,27 +284,29 @@ Hooks.once('init', () => {
name_en = res[1].trim(); // Get the root skill name
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
}
var trait_fr = fullskills.translate( { name: name_en } );
var trait_fr = game.babele.translate( compmod+'.skills', { name: name_en }, true );
//console.log(">>>>> Skill ?", name_en, special, trait_fr.name, trait_fr);
if (trait_fr.translated) {
if (trait_fr.name != name_en) { // Translation OK
trait_en.name = trait_fr.name + special;
if ( trait_fr.data ) {
trait_en.data.description.value = trait_fr.data.description.value;
}
}
} else if ( trait_en.type == "prayer") {
var trait_fr = fullprayers.translate( { name: name_en } );
var trait_fr = game.babele.translate( compmod+'.prayers', { name: name_en }, true);
//console.log(">>>>> Prayer ?", name_en, special, trait_fr.name );
trait_en.name = trait_fr.name + special;
if ( trait_fr.data && trait_fr.data.description && trait_fr.data.description.value )
trait_en.data.description.value = trait_fr.data.description.value;
} else if ( trait_en.type == "spell") {
var trait_fr = fullspells.translate( { name: name_en } );
if ( (!trait_fr.data || !trait_fr.data.description || !trait_fr.data.description.value) && eisspells) { // If no translation, test eisspells
trait_fr = eisspells.translate( { name: name_en } );
var trait_fr = game.babele.translate( compmod+'.spells', { name: name_en }, true);
if ( trait_fr.name == name_en ) { // If no translation, test eisspells
trait_fr = game.babele.translate( 'wfrp4e-eis.eisspells', { name: name_en }, true);
}
if ( (!trait_fr.data || !trait_fr.data.description || !trait_fr.data.description.value) && ugspells) { // If no translation, test eisspells
trait_fr = ugspells.translate( { name: name_en } );
if ( trait_fr.name == name_en ) { // If no translation, test unofficial grimoire
trait_fr = game.babele.translate( 'wfrp4e-unofficial-grimoire.ug-spells', { name: name_en }, true);
}
//console.log(">>>>> Spell ?", name_en, special, trait_fr.name );
trait_en.name = trait_fr.name + special;
@ -381,24 +319,24 @@ Hooks.once('init', () => {
name_en = res[1].trim(); // Get the root talent name, no parenthesis this time...
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
}
var trait_fr = fulltalents.translate( { name: name_en } );
//console.log(">>>>> Talent ?", name_en, special, trait_fr.name);
if ( (!trait_fr.data || !trait_fr.data.description || !trait_fr.data.description.value) && ugtalents) { // If no translation, test ugtalents
trait_fr = ugtalents.translate( { name: name_en } );
var trait_fr = game.babele.translate( compmod+'.talents', { name: name_en }, true );
//console.log(">>>>> Talent ?", trait_fr, name_en, special, trait_fr.name);
if ( trait_fr.name != "Sprinter" && trait_fr.name == name_en) { // If no translation, test ugtalents
trait_fr = game.babele.translate( 'wfrp4e-unofficial-grimoire.ug-careerstalentstraits', { name: name_en }, true );
}
if ( trait_fr.translated) {
trait_en.name = trait_fr.name + special;
if ( trait_fr.name == "Sprinter" || trait_fr.name != name_en) { // Talent translated!
trait_en.name = trait_fr.name.trim() + special;
if ( trait_fr.data ) { // Why ???
trait_en.data.description.value = trait_fr.data.description.value;
}
}
} else if ( trait_en.type == "career") {
var career_fr = fullcareers.translate( trait_en );
var career_fr = game.babele.translate( compmod+'.careers', trait_en, true );
console.log(">>>>> Career ?", name_en, career_fr.name );
trait_en.name = career_fr.name;
trait_en.data = duplicate(career_fr.data);
} else if ( trait_en.type == "trapping" || trait_en.type == "weapon" || trait_en.type == "armour" || trait_en.type == "container" || trait_en.type == "money") {
var trapping_fr = fulltrappings.translate( trait_en );
var trapping_fr = game.babele.translate( compmod+'.trappings', trait_en, true );
//console.log(">>>>> Trapping ?", name_en, trapping_fr.name);
trait_en.name = trapping_fr.name;
if ( trapping_fr.data) {
@ -415,33 +353,26 @@ Hooks.once('init', () => {
},
"trapping_qualities_flaws": (value) => {
if ( value ) {
let newQF = [];
//console.log("ATOUTS", value);
var list = value.split( "," );
var i=0;
var re = /(.*) (\d+)/i;
for (i=0; i<list.length; i++) {
let trim = list[i].trim();
if ( trim == "Trap Blade") {
trim = "TrapBlade"; // Auto-patch, without space!
//var re = /(.*) (\d+)/i;
for (i=0; i<value.length; i++) {
newQF[i] = duplicate(value[i]);
if ( newQF[i].name == "Trap Blade") {
newQF[i].name = "TrapBlade"; // Auto-patch, without space!
//console.log("PATCHED", trim);
}
var splitted = re.exec( trim );
//console.log("Current quality", splitted, trim );
if ( splitted ) {
//console.log("FOund:", splitted[0], splitted[1], splitted[2] );
list[i] = game.i18n.localize( splitted[1] ) + " " + splitted[2];
} else {
list[i] = game.i18n.localize( trim ) ;
}
newQF[i].name = game.i18n.localize( newQF[i].name ) ;
}
return list.toString();
return newQF;
}
},
// Search back in careers the translated name of the groupe (as it is the name of the level career itself)
"career_careergroup": (value) => {
// Manage exception - Dirty hack
if ( value == 'Slayer' ) {
return "Tueur Nains";
return "Tueur";
}
if ( value == 'Druidic Priest' ) {
return "Druide";
@ -449,7 +380,7 @@ Hooks.once('init', () => {
// Per default
var compendium = game.packs.find(p => p.collection === compmod+'.careers');
if ( compendium )
return compendium.translate( { name: value } ).name;
return game.babele.translate(compmod+'.careers', { name: value } ).name;
else
ui.notifications.error("Impossible de trouver la carrière " + value + ". Elle n'est probablement pas traduite.", { permanent: true })
},
@ -553,3 +484,33 @@ Hooks.once('init', () => {
} );
/* -------------------------------------------- */
// Register world usage statistics
function registerUsageCount( registerKey ) {
if ( game.user.isGM ) {
game.settings.register(registerKey, "world-key", {
name: "Unique world key",
scope: "world",
config: false,
default: "",
type: String
});
let worldKey = game.settings.get(registerKey, "world-key")
if ( worldKey == undefined || worldKey == "" ) {
worldKey = randomID(32)
game.settings.set(registerKey, "world-key", worldKey )
}
// Simple API counter
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
$.ajax(regURL)
/* -------------------------------------------- */
}
}
/*---------------------------------------------------------------------*/
Hooks.once('ready', () => {
registerUsageCount("wh4-fr-translation")
});

View File

@ -0,0 +1,19 @@
{
"label": "Tables (Archives Vol. I)",
"entries": [
{
"id": "Career - Wood Elf (Toriour)",
"name": "Carrière - Elfe Sylvain (Toriour)"
},
{
"id": "Random Euphemisms - Noun",
"name": "Euphémismes aléatoires - Nom",
"results": {"6-6":"...la Saucisse de Sigmar","7-7":"...la croute des Tourtes","8-8":"...les Dingleberries","9-9":"...les Morveux","10-10":"...la tour du Sorcier","1-1":"...le Mouton","2-2":"...le Manche à balai","3-3":"...le Tromblon","4-4":"...le vieux Quinsberry","5-5":"...les Royaumes du Chaos"}
},
{
"id": "Random Euphemisms - Participle",
"name": "Euphémismes aléatoires - Participe",
"results": {"1-1":"En polissant","2-2":"En visitant","3-3":"Aggravant","4-4":"En cuisinant","5-5":"En secouant","6-6":"En grignotant","7-7":"En enchantant","8-8":"En mutant","9-9":"En tirant","10-10":"En pillant"}
}
]
}

File diff suppressed because one or more lines are too long

View File

@ -92,7 +92,7 @@
},
{
"id": "Apothecary-General",
"name": "Eminent Apothicaire",
"name": "Apothicaire de Renom",
"description": "",
"trappings": [
"Bon de commande",
@ -145,7 +145,7 @@
},
{
"id": "Attendant",
"name": "Suivant",
"name": "Valet",
"description": "",
"trappings": [
"Livrée de qualité",
@ -172,7 +172,7 @@
},
{
"id": "Barge Master",
"name": "Maître de barge",
"name": "Capitaine",
"trappings": [
"Chapeau",
"Bateau de rivière et équipage"
@ -180,7 +180,7 @@
},
{
"id": "Bargeswain",
"name": "Conducteur de barges",
"name": "Chef de bord",
"trappings": [
"Sac à dos",
"Outils de la profession (Charpentier)"
@ -323,7 +323,7 @@
},
{
"id": "Busker",
"name": "Musicien des rues",
"name": "Musicien de rues",
"trappings": [
"Bol",
"Instrument"
@ -331,7 +331,7 @@
},
{
"id": "Cargo Scavenger",
"name": "Charognard de fret",
"name": "Pilleur d'épaves",
"trappings": [
"Pied de piche",
"Grand sac",
@ -391,7 +391,7 @@
},
{
"id": "Clerk",
"name": "Greffier",
"name": "Employé",
"description": "",
"trappings": [
"Hébergement",
@ -545,7 +545,7 @@
},
{
"id": "Doktor",
"name": "Docteur en médécine",
"name": "Docteur en médecine",
"description": "",
"trappings": [
"Apprenti",
@ -688,7 +688,7 @@
},
{
"id": "Gang Boss",
"name": "Boss de gang",
"name": "Chef de gang",
"trappings": [
"Arbalète de poing avec 10 carreaux",
"Bande de Voyous et Rançonneurs",
@ -720,7 +720,7 @@
"trappings": [
"Sac à dos",
"Arme à 1 main",
"Epieu",
"Bêche",
"Lampe tempête et huile"
]
},
@ -745,14 +745,14 @@
},
{
"id": "Guard Officer",
"name": "Officier de la garde",
"name": "Garde officier",
"trappings": [
"Cuirasse"
]
},
{
"id": "Guide",
"name": "Coureur de bois",
"name": "Coureur des bois",
"trappings": [
"Arme à 1 main",
"Veste de cuir",
@ -762,7 +762,7 @@
},
{
"id": "Guildmaster",
"name": "Maître de Guilde",
"name": "Maître de guilde",
"description": "",
"trappings": [
"Guilde",
@ -843,7 +843,7 @@
},
{
"id": "Herbwise",
"name": "Herboriste suprême",
"name": "Herboriste de renom",
"trappings": [
"Poney et charette"
]
@ -860,7 +860,7 @@
},
{
"id": "High Priest",
"name": "Haut Prêtre",
"name": "Grand Prêtre",
"description": "",
"trappings": [
"Robes de qualité",
@ -890,7 +890,7 @@
},
{
"id": "Horseman",
"name": "Page",
"name": "Apprenti Cavalier",
"trappings": [
"Veste de cuir",
"Cheval de selle avec fontes et selle"
@ -914,7 +914,7 @@
},
{
"id": "Huntsmaster",
"name": "Maître Chasseur",
"name": "Maître de la Chasse",
"trappings": [
"Cheval de selle avec fontes et selle",
"Meute de chiens de chasse"
@ -1038,7 +1038,7 @@
},
{
"id": "Light Cavalry Officer",
"name": "Officier de cavalerie",
"name": "Officier de Cavalerie Légère",
"trappings": [
"Paquet de cartes",
"Vêtements de qualité"
@ -1046,7 +1046,7 @@
},
{
"id": "Light Cavalry Sergeant",
"name": "Sergent de cavalerie",
"name": "Sergent de Cavalerie légère",
"trappings": [
"Insigne"
]
@ -1085,7 +1085,7 @@
},
{
"id": "Master Apothecary",
"name": "Maitre Apothicaire",
"name": "Maître Apothicaire",
"description": "",
"trappings": [
"Bibliothèque (Apothicaire)",
@ -1095,7 +1095,7 @@
},
{
"id": "Master Artisan",
"name": "Maître Artisan",
"name": "Maître artisan",
"description": "",
"trappings": [
"Apprenti",
@ -1104,7 +1104,7 @@
},
{
"id": "Master Artist",
"name": "Maître Artiste",
"name": "Artiste de renom",
"description": "",
"trappings": [
"Apprenti",
@ -1147,7 +1147,7 @@
},
{
"id": "Master Investigator",
"name": "Maître investigateur",
"name": "Maître Enquêteur",
"description": "",
"trappings": [
"Assistant",
@ -1255,7 +1255,7 @@
},
{
"id": "Mine Foreman",
"name": "Contremaître de Mine",
"name": "Contremaître de la mine",
"trappings": [
"Equipe de mineurs",
"Nécessaire d'écriture"
@ -1305,7 +1305,7 @@
},
{
"id": "OERQpwcRziRTeQRb",
"name": "Novice",
"name": "Novice (Prêtre Guerrier)",
"trappings": [
"Livre (Religion)",
"Pourpoint de cuir",
@ -1315,12 +1315,15 @@
]
},
{
"id": "Novitiate",
"name": "Novice",
"id": "Novitiate (Warrior Priest)",
"name": "Novice (Prêtre Guerrier)",
"description": "",
"trappings": [
"Symbole Religieux",
"Robes"
"Livre (Religion)",
"Pourpoint de cuir",
"Symbole Religieux",
"Robes",
"Arme (Au choix)"
]
},
{
@ -1439,7 +1442,7 @@
},
{
"id": "Physician's Apprentice",
"name": "Apprenti Medecin",
"name": "Etudiant en Médecine",
"description": "",
"trappings": [
"Bandages",
@ -1527,7 +1530,7 @@
},
{
"id": "Professor",
"name": "Pofesseur",
"name": "Professeur",
"description": "",
"trappings": [
"Etude"
@ -1535,7 +1538,7 @@
},
{
"id": "Prophet of Doom",
"name": "Prophète du Destin",
"name": "Prophète du destin",
"trappings": [
"Livre (Religion)",
"Suivants (avec des Penitents)",
@ -1646,7 +1649,7 @@
},
{
"id": "River Elder",
"name": "Sage des rivières",
"name": "Ancienne du fleuve",
"trappings": [
"Hutte ou barge fluviale"
]
@ -1681,7 +1684,7 @@
},
{
"id": "Riverguide",
"name": "Guide de rivière",
"name": "Guide fluvial",
"trappings": [
"Arme à 1 main (Gaffe)",
"Lampe Tempête et Huile"
@ -1698,7 +1701,7 @@
},
{
"id": "Riverwise",
"name": "Sage des rivières",
"name": "Sage des rives",
"trappings": [
"Barque à rames",
"Lampte Temête et Huile"
@ -1716,7 +1719,7 @@
},
{
"id": "Road Captain",
"name": "Capitaine de la Route",
"name": "Capitaine Patrouilleur",
"trappings": [
"Cheval de guerre léger",
"Pistolet avec 10 balles",
@ -1726,7 +1729,7 @@
},
{
"id": "Road Sergeant",
"name": "Sergent de la route",
"name": "Sergent Patrouilleur",
"trappings": [
"Escouade de patrouilleurs",
"Pistolet avec 10 balles",
@ -1798,7 +1801,7 @@
},
{
"id": "Scoundrel",
"name": "Vaurien",
"name": "Escroc",
"trappings": [
"Faux sceau",
"Nécessaire d'écriture"
@ -1874,7 +1877,7 @@
},
{
"id": "Ship's Master",
"name": "Commandant de navire",
"name": "Capitaine de Navire",
"trappings": [
"Règles de navigation",
"Navire et équipage",
@ -1993,7 +1996,7 @@
},
{
"id": "Student",
"name": "Etudiant érudit",
"name": "Etudiant",
"description": "",
"trappings": [
"Alcool",
@ -2004,7 +2007,7 @@
},
{
"id": "Student Engineer",
"name": "Ingénieur étudiant",
"name": "Etudiant Ingénieur",
"description": "",
"trappings": [
"Livre (Ingénieur)",
@ -2013,7 +2016,7 @@
},
{
"id": "Student Lawyer",
"name": "Juriste étudiant",
"name": "Etudiant en Droit",
"description": "",
"trappings": [
"Livre (Loi)",
@ -2022,7 +2025,7 @@
},
{
"id": "Swindler",
"name": "Escroc",
"name": "Filou",
"trappings": [
"Sac à Dos",
"2 ensemble de vêtements",
@ -2057,7 +2060,7 @@
},
{
"id": "Thug",
"name": "Voyou",
"name": "Coupe-jarret",
"trappings": [
"Coup-de-poing",
"Veste de cuir"
@ -2065,7 +2068,7 @@
},
{
"id": "Toll Keeper",
"name": "Garde barrière",
"name": "Péager",
"trappings": [
"Arbalète avec 10 carreaux",
"Veste de cuir"
@ -2123,7 +2126,7 @@
},
{
"id": "Trapper",
"name": "Trappeur",
"name": "Traqueur",
"trappings": [
"Assortiment de pièges à animaux",
"Arme à 1 main",
@ -2133,7 +2136,7 @@
},
{
"id": "Treasure Hunter",
"name": "Chasseur de trésor",
"name": "Chasseur de trésors",
"trappings": [
"Sac de couchage",
"Cartes",
@ -2232,7 +2235,7 @@
},
{
"id": "Watch Captain",
"name": "Capitaine de Milice",
"name": "Capitaine de la Milice",
"description": "",
"trappings": [
"Cheval de selle avec selle et harnais",
@ -2253,7 +2256,7 @@
},
{
"id": "Watch Sergeant",
"name": "Sergent de Milice",
"name": "Sergent de la Milice",
"description": "",
"trappings": [
"Cuirasse",
@ -2273,7 +2276,7 @@
},
{
"id": "Witch",
"name": "Sorcier sauvage",
"name": "Sorcier dissident",
"trappings": [
"Baton de combat",
"Sac",
@ -2321,7 +2324,7 @@
},
{
"id": "Wizard's Apprentice",
"name": "Apprenti Sorcier",
"name": "Sorcier novice",
"description": "",
"trappings": [
"Grimoire",

View File

@ -44,7 +44,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if (args.opposeData.hitloc.value == \"body\")\n args.actor.addCondition(\"bleeding\", 2)"
"script": "if (args.opposedTest.result.hitloc.value == \"body\")\n args.actor.addCondition(\"bleeding\", 2)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -240,7 +240,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.opposeData.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 1)"
"script": "if (args.opposedTest.result.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 1)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -288,7 +288,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.opposeData.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 1)"
"script": "if (args.opposedTest.result.hitloc.value == \"arm\") \n args.actor.addCondition(\"bleeding\", 1)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -297,7 +297,7 @@
"transfer": true
}
],
"id": "Gaping Chest Wound",
"id": "Gaping Arm Wound",
"name": "Blessure béante"
},
{
@ -423,7 +423,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.opposeData.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 2)"
"script": "if (args.opposedTest.result.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 2)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -508,7 +508,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -557,7 +557,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll().total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> a perdu ${teeth} dents`, speaker : {alias: this.effect.label}})\ninjury.data.data.location.value = `${teeth} ${injury.data.data.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll({async: false}).total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> a perdu ${teeth} dents`, speaker : {alias: this.effect.label}})\ninjury.location.value = `${teeth} ${injury.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -640,7 +640,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "if (args.actor.owner)\n{\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"difficult\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.4lj1ik958mbgAlaF\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\n}"
"script": "if (args.actor.isOwner)\n{\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"difficult\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.4lj1ik958mbgAlaF\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\n}"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -760,7 +760,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -778,6 +778,34 @@
"id": "Jarred Arm",
"name": "Choc au bras"
},
{
"id": "Badly Twisted Knee",
"name": "Genou gravement tordu",
"description": "<p>Vous vous tordez gravement le genou en essayant d'esquie le coup. Recevez un @Compendium[wfrp4e-core.injuries.3S4OYOZLauXctmev]{Déchirure Musculaire Jambe (Majeure)} injury.</p>",
"effects": [
{
"_id": "yJmV5ry9bcyqV5fL",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
"label": "Genou gravement tordu",
"tint": null,
"transfer": true,
"flags": {
"wfrp4e": {
"effectTrigger": "oneTime",
"effectApplication": "actor",
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})",
"preventDuplicateEffects": false,
"hide": false
}
}
}
]
},
{
"description": "Vous recevez un coup particulièrement violent au cours de l'attaque. Vous lâchez ce que vous teniez en main, et cette dernière devient inutilisable pour <a class = 'chat-roll'><i class='fas fa-dice'></i> 1d10</a> - Bonus d'Endurance rounds (minimum 1). Pendant ce temps, considérez votre main comme perdue.",
"effects": [],
@ -902,7 +930,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "args.actor.addCondition(\"stunned\", new Roll(\"1d10\").roll().total)"
"script": "args.actor.addCondition(\"stunned\", new Roll(\"1d10\").roll({async: false}).total)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -926,7 +954,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if(args.opposeData.hitloc.value == \"head\" && (args.opposeData.attackerTestResult.extra.critical || args.actor.data.data.status.wounds.value - args.totalWoundLoss < 0))\n{\n\n if (args.actor.owner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })\n }\n}"
"script": "if(args.opposedTest.result.hitloc.value == \"head\" && (args.opposedTest.attackerTest.result.critical || args.actor.status.wounds.value - args.totalWoundLoss < 0))\n{\n\n if (args.actor.isOwner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })\n }\n}"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -1074,7 +1102,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1124,7 +1152,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"easy\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"easy\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1293,7 +1321,7 @@
"effectApplication": "actor",
"effectTrigger": "endCombat",
"preventDuplicateEffects": false,
"script": "if (this.actor.owner)\n this.actor.setupSkill(\"Résistance\").then(setupData => {\n this.actor.basicTest(setupData).then(test => {\n if (test.result.result == \"failure\") {\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n this.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n this.actor.deleteEmbeddedEntity(\"ActiveEffect\", this.effect._id)\n })\n }\n })\n })"
"script": "if (this.actor.isOwner)\n this.actor.setupSkill(\"Résistance\").then(setupData => {\n this.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\") {\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n this.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n this.actor.deleteEmbeddedEntity(\"ActiveEffect\", this.effect._id)\n })\n }\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1306,7 +1334,7 @@
"name": "Coupure à l'orteil"
},
{
"description": "Le coup vous entaille la joue et le sang dégouline partout. Gagnez 1 État Hémorragique.",
"description": "Le coup vous entaille la jambe et le sang dégouline partout. Gagnez 1 État Hémorragique.",
"effects": [
{
"_id": "C28zNPsk79lesc2H",
@ -1330,7 +1358,7 @@
"name": "Coupure mineure"
},
{
"description": "Gagnez 1 État Hémorragique car vous saignez abondamment au niveau de 1'avant-bras.",
"description": "Gagnez 1 État Hémorragique car vous saignez abondamment au niveau du front.",
"effects": [
{
"_id": "C28zNPsk79lesc2H",
@ -1350,7 +1378,7 @@
"transfer": true
}
],
"id": "Minor Leg Cut",
"id": "Minor Head Cut",
"name": "Coupure mineure"
},
{
@ -1433,7 +1461,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -1481,7 +1509,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if (args.opposeData.hitloc.value == \"LEG_LOCATION_HERE\") // rLeg or lLeg\n args.actor.addCondition(\"bleeding\", 1)"
"script": "if (args.opposedTest.result.hitloc.value == \"LEG_LOCATION_HERE\") // rLeg or lLeg\n args.actor.addCondition(\"bleeding\", 1)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1505,7 +1533,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1536,7 +1564,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\", 3)\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\", 3)\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1664,7 +1692,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if (args.opposeData.hitloc.value == \"ARM_LOCATION_HERE\") // lArm or rArm\n args.actor.addCondition(\"bleeding\", 2)"
"script": "if (args.opposedTest.result.hitloc.value == \"ARM_LOCATION_HERE\") // lArm or rArm\n args.actor.addCondition(\"bleeding\", 2)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -1966,7 +1994,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1997,7 +2025,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n {\n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n \n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n {\n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n \n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -2178,7 +2206,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2209,7 +2237,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2240,7 +2268,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2291,7 +2319,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.QluSTTTq3viHJJUh\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.QluSTTTq3viHJJUh\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -2410,7 +2438,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.7mCcI3q7hgWcmbBU\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.7mCcI3q7hgWcmbBU\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2493,7 +2521,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -2612,7 +2640,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll().total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> loses ${teeth} teeth`, speaker : {alias: this.effect.label}})\ninjury.data.data.location.value = `${teeth} ${injury.data.data.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.rkJA1DlK51QuRlJy\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll({async: false}).total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> loses ${teeth} teeth`, speaker : {alias: this.effect.label}})\ninjury.location.value = `${teeth} ${injury.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.rkJA1DlK51QuRlJy\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -2668,7 +2696,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.zyocWSzEZEC826NS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n { \n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.zyocWSzEZEC826NS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n { \n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -2784,7 +2812,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2832,7 +2860,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -3074,7 +3102,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3105,7 +3133,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3154,7 +3182,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "if(args.actor.owner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.result == \"failure\") {\n args.actor.addCondition(\"prone\")\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n injury.data.data.location.value = `${Math.clamped(Math.abs(test.result.SL) + 1, 1, 5)} ${injury.data.data.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n })\n }\n })\n })\n }"
"script": "if(args.actor.isOwner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\") {\n args.actor.addCondition(\"prone\")\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n injury.location.value = `${Math.clamped(Math.abs(test.result.outcome.SL) + 1, 1, 5)} ${injury.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n })\n }\n })\n })\n }"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3318,7 +3346,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -3342,7 +3370,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -3464,7 +3492,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3554,7 +3582,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.MnMZv7ZXoRqoH9dS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.MnMZv7ZXoRqoH9dS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -3662,6 +3690,33 @@
],
"id": "Poked Eye",
"name": "Vision brouillée"
}
},
{
"id": "Minor Arm Cut",
"name": "Coupure mineure",
"description": "<p>Le coup vous entaille le bras et le sang dégouline partout. Gagnez 1 État Hémorragique.</p>",
"effects": [
{
"_id": "d2Gh2PYEwe7NdMWQ",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "systems/wfrp4e/icons/conditions/bleeding.png",
"label": "Bleeding",
"transfer": true,
"flags": {
"wfrp4e": {
"trigger": "endRound",
"value": 1
},
"core": {
"statusId": "bleeding"
}
}
}
]
}
]
}

View File

@ -1,116 +1,764 @@
{
"mapping": {
"duration": "data.duration.value",
"durationValue": "data.duration.value",
"durationUnit": "data.duration.unit",
"contraction": "data.contraction.value",
"incubation": "data.incubation.value",
"incubationValue": "data.incubation.value",
"incubationUnit": "data.incubation.unit",
"symptoms": "data.symptoms.value",
"permanent": "data.permanent.value",
"effects": {
"path": "effects",
"converter": "diseases_effects"
}
"effects": "effects"
},
"label": "Maladies",
"entries": [
{
"permanent": "",
"symptoms": "Toxine, Fièvre (Grave), Malaise",
"duration": "1d10 jours",
"id": "Blood Rot",
"contraction": "C'est le développement d'une autre maladie, ou cela intervient après une Blessure critique?",
"incubation": "instantanée",
"name": "Infection du Sang",
"description": "<p>Votre sang est infecté et votre coeur répand la maladie dans votre corps. Il est possible de vous soigner par l'intermédiaire de saignées, mais certains diktors préfèrent effectuer des incisions à un endroit très précis ayu niveau du cou pour expluser le sang contaminé et demandent au patient d'ingérer d'énormes quantité de sang sain pour remplacer celui qui a été perdu. Que le patient accepte ou np, ce remère, si aucun traitement n'est appliqué l'Infection du sang est mortelle et se concluera par une visite à la Guilde de Thanatopracteurs et du Culte de Morr.</p>"
},
{
"permanent": "",
"symptoms": "Fièvre, Persistant (Facile), Malaise, Nausée",
"duration": "1d10 jours",
"id": "Bronze Fever",
"contraction": "Si vous échouez à un Test d'Endurance Accessible (+20) après avoir été piqué par des Moustiques. Si du sang infecté est injecté ou absorbé, vous contractez la Fièvre Dorée automatiquement.",
"incubation": "1d10 jours",
"name": "Fièvre Dorée",
"description": "<p>La Fièvre Dorée est fréquente dans le sud du Vieux Monde, dans les climats chauds et humides, où elle se propage par les piqûres d'insectes. La plupart des malades se rétablissent en quelques jours, mais dans de rares cas, elle peut entraîner des complications, voire la mort..</p>"
},
{
"permanent": "",
"symptoms": "Fièvre, Persistant (Intermédiaire), Malaise, Blessé",
"duration": "1d10 jours",
"id": "Festering Wound",
"contraction": "Sur un échec d'un Test de Résistance Facile (+40) après un combat vous ayant opposé à une créature avec le Trait Parasité. Vous pouvez également développer une infection à partir d'une Infection Mineure.",
"incubation": "1d10 jours, ou instantanée si développée à partir d'autres symptômes.",
"name": "Blessure Purulente",
"description": "<p>Les coupures infectées et les égratignures sont monnaie courante, ce qui explique qu'il existe de nombreuses superstitions quant à la meilleure façon de les traiter. Les cataplasmes confectionnés à parti du fumier enveloppé dans des feuilles, la peau de crapaud, ou encore les plumes de colombe sont très répandus, tout comme le fait de frotter la blessure avec de la bonne terre de Sigmar. La plupart des médecins considèrent ces pratiques comme de pures âneries et vont préférer des remèdes plus scientifiques, comme le mélange de la bile d'un boeuf noir avec trois cuillères de l'urine du patient et une demi-cuillère de sel de mer, mixture ensuite appliquée sur la blessure purulente. Les hurlements qui suivent généralement cette application sont bien la preuve de son efficacité.</p>"
},
{
"permanent": "",
"symptoms": "Intoxication Alimentaire (Modérée), Malaise, Nausée",
"duration": "1d10 jours",
"id": "Galloping Trots",
"contraction": "Sur un échec d'un Test d'Endurance Facile (+40) après avoir ingurgité de la matière infectée.",
"incubation": "1d10 heures",
"name": "Courante Galopante",
"description": "<p>On raconte que la nourriture des Halflings ne peut pas donner de Courante Galopante, une maladie peu râgoutante et malheureusement trop répandue au sein de l'Empire à cause du manque de soins apportés à la préparation de la nourriture. Même si ceux souffrant de Vengeance des Rumsters après avoir ingurgité des Tourtes bon marché des Halflings vendues à Altdorf vous diront le contraire, s'ils peuvent quitter les toilettes assez longtemps...</p>"
},
{
"permanent": "Vous ne pouvez pas l'attraper une seconde fois, si vous l'avez déjà contractée dans le passé.",
"symptoms": "Démangeaisons, Toux et éternuements",
"duration": "1d10+7 jours",
"id": "Itching Pox",
"contraction": "Sur un échec d'un Test de Résistance Accessible (+20) lorsque vous touchez une personne infectée ou que vous échouez à ce même Test après qu'un patient contagieux a toussé ou éternué juste à côté de vous (effectue un Test par heure)",
"incubation": "1d10 jours",
"name": "Vérole Urticante",
"description": "<p>Tous les ans, la plupart des villes et cités de l'Empire subissent une épidémie de Vérole urticante. La maladie, qui fait apparaître des boursuflures qui démangent sur la quasi-totalité du corps, reste relativement bénigne et ne provoque que très rarement des complications, et n'est donc un réel souci que pour les patients inquiets de nature et les nobliaux oisifs. La maladie est tellement répandue qu'on trouve dans la plupart des temples de Shallya des ampoules remplies de pâte blanche qui permettent de soulager les démangeaisons des malades.</p>"
},
{
"permanent": "",
"symptoms": "Blessé, Fièvre, Malaise, Persistant (Facile)",
"duration": "1d10 jours",
"id": "Minor Infection",
"contraction": "sur un échec d'un Test de Résistance Très Facile (+60) après un combat où vous subi une BLessure critique.",
"incubation": "1d10 jours",
"name": "Infection Mineure",
"description": "<p>Les Infections mineures - des blessures guérissant lentement, qui n'enflent quasiment pas et ne provoquent pas de fièvre - sont trés répandues. La plupart guérissent d'elles-mêmes, donc peu de personnes s'en soucient réellement avant qu'il ne soit trop tard et que les Portes de Morr ne s'ouvrent.</p>"
},
{
"permanent": "",
"symptoms": "Démangeaisons, Persistant (Intermédiaire)",
"duration": "5d10 jours",
"id": "Packer's Pox",
"contraction": "Sur un échec d'un Test de Résistance Facile (+40) après être entré en contact avec un animal, de la peau, ou des cadavres infectés.",
"incubation": "1d10 jours",
"name": "Vérole du Tanneur",
"description": "<p>C'est une maladie très répandue parmi les chasseurs, les fourreurs et les marchands, transmises par les moutons et le bétail, respectivement par la laine et la peau, et par les cadavres de ceux qui sont morts de cette maladie. Elle se manifeste au départ par de légères démangeaisons, trés vite remplacées par des boursufflures roses qui vont se progager sur tout le corps, et particulièrement sur le torse et les bras. Ce n'est pas la forme de vérole la plus grave de l'Empire, mais elle persiste assez longtemps et peut quelquefois s'avérer mortelle.</p>"
},
{
"permanent": "",
"symptoms": "Blessé, Convulsions, Démangeaisons, Fièvre, Malaise, Persistant (Accessible)",
"duration": "3d10+10 jours",
"id": "Ratte Fever",
"contraction": "Sur un échec d'un Test de Résistance Accessible (+20) après un combat où vous avez été blessé par des rongeurs (dont les skavens) possédant le Trait Infecté, ou sur un échec d'un Test de Résistance Facile (+40) après qu'une source infectée est entrée en contact avec votre bouche.",
"incubation": "3d10+5 jours",
"name": "Fièvre du rongeur",
"description": "<p>La très redoutée Fièvre du rongeur est transmise comme son nom l'indique, par des rongeurs infectés et cause des irritations douloureuses et des ulcérations avant que la fièvre ne monte et que le corps ne soit secoué de spasmes. Même si cette maladie est rarement fatale, elle est débilitante et il faut patienter longtemps avant de s'en remettre totalement. C'est pourquoi chacun cherchera à en atténuer les symptômes. Parmi les remèdes les plus connus, il y a, à Altdorf, l'auto-flagellation, réputée soulager toutes les infections cutanées. A Talabheim, on préconise de se recouvrir d'une mixture composée d'un mélange de fromage de chèvre relevé de poivre glacé importé de Kislev. Dans les villes et les cités les plus importantes, la Fièvre du rongeur est également connue sous le nom de Fièvre de la tourte, car il est notoire que, bien souvent, on remplace la viande la plus chère par du rat infecté dans ce genre de mets.</p>"
},
{
"permanent": "",
"symptoms": "Bubons, Toxine (Modérée), Fièvre, Gangrène, Malaise",
"duration": "3d10 jours",
"id": "The Black Plague",
"contraction": "Effectuer un Test de Résistance Accessible (+20) pour chaque heure entamée passée dans la zone infectée, ou lorsque vous vous retrouvez en présence de fluides infectés.",
"incubation": "1d10 Minutes",
"name": "Peste Noire",
"description": "<p>Les historiens affirment qu'il y a des siècles de cela, les rats ont déferlé sur l'Empire et la Peste Noire s'ensuivit, décimant neuf âmes sur dix. Des recrudescences inexpliquées de cette horrible maladie apparaissent encore de nos jours et sont systématiquement accompagnées de la présence des pragmatiques nonnes blanches. Le Culte de Shalllya a juré de faire tout ce qui était en son pouvoir pour éradiquer cette terrible maladie, et, en application de droits ancestraux qui lui sont conférés, des cordons sanitaires, délimités par des cordes blanches, sont déployées partout ou l'épidémie surgit, afin d'être certain que personne ne puisse entrer ou sortir de la zone de quarantaine. Et ce, jusqu'à ce que les corps ait été correctement traités.</p>"
},
{
"permanent": "",
"symptoms": "Fièvre, Intoxication Alimentaire (Grave), Malaise, Nausée, Persistant (Intermédiaire)",
"duration": "1d10 jours",
"id": "The Bloody Flux",
"contraction": "Sur un échec d'un Test d'Endurance Facile (+40) après avoir ingéré de la matière infectée.",
"incubation": "2d10 jours",
"name": "Flux Sanglant",
"description": "<p>Le flux sanglant est un problème récurrent au sein de l'Empire et d'une manière générale, est considéré comme une malédiction infligée par les Dieux aux impies. Cette maladie infâme oblige la pauvre victime à se vider sans cesse. Le flux sanglant est endémique au sein des Armées de l'Etat, où il tue bien plus de soldats que les forces ennemies. Parmi les remèdes les plus fréquents, il y a l'ingurgitation de boudin pour remplacer les humeurs perdues, le bouchonnage et le massage des parties avec des substances grasses afin d'atténuer la douleur aigüe.</p>"
}
]
"entries": [
{
"id": "Festering Wound",
"name": "Blessure Purulente",
"description": "<p>Les coupures infectées et les égratignures sont monnaie courante, ce qui explique qu'il existe de nombreuses superstitions quant à la meilleure façon de les traiter. Les cataplasmes confectionnés à parti du fumier enveloppé dans des feuilles, la peau de crapaud, ou encore les plumes de colombe sont très répandus, tout comme le fait de frotter la blessure avec de la bonne terre de Sigmar. La plupart des médecins considèrent ces pratiques comme de pures âneries et vont préférer des remèdes plus scientifiques, comme le mélange de la bile d'un boeuf noir avec trois cuillères de l'urine du patient et une demi-cuillère de sel de mer, mixture ensuite appliquée sur la blessure purulente. Les hurlements qui suivent généralement cette application sont bien la preuve de son efficacité.</p>",
"durationValue": "1d10",
"durationUnit": "Jours",
"contraction": "Sur un échec d'un Test de Résistance Facile (+40) après un combat vous ayant opposé à une créature avec le Trait Parasité. Vous pouvez également développer une infection à partir d'une Infection Mineure. L'incubation est instantanée si développée à partir d'autres symptômes",
"incubationValue": "1d10",
"incubationUnit": "Jours",
"symptoms": "Fièvre, Persistant (Intermédiaire), Malaise, Blessé",
"permanent": "",
"effects": [
{
"_id": "InNO9elKVbhdUMyB",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Fièvre",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (args.type == \"weapon\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"characteristic\")\n {\n if (applicableCharacteristics.includes(args.item))\n args.prefillModifiers.modifier -= 10\n }\n else if (args.type == \"skill\")\n {\n if (applicableCharacteristics.includes(args.item.characteristic.key))\n args.prefillModifiers.modifier -= 10\n }",
"otherEffects": [
"blight",
"wounded"
]
}
}
},
{
"_id": "nKPv1wHQXwUsBdf7",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Persistente (Intermédiaire)",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "2cuvlgkALYIx6KCh",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Malaise",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"symptom": true,
"script": "if (game.user.isUniqueGM)\n {\n let fatigued = args.actor.hasCondition(\"fatigued\")\n if (!fatigued)\n {\n args.actor.addCondition(\"fatigued\")\n ui.notifications.notify(\"Etat exténué ajouté à \" + args.actor.name + \" qui ne peut être enlevé tant que le Malaise est présent.\")\n }\n }\n "
}
}
},
{
"_id": "Bhn6hjQFNCEMU6et",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Blessé",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "invoke",
"symptom": true,
"script": "if (this.actor.isOwner)\n {\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty : \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n fromUuid(\"Compendium.wfrp4e-core.diseases.kKccDTGzWzSXCBOb\").then(disease => {\n args.actor.createEmbeddedDocuments(\"Item\", [disease.toObject()])\n })\n })\n })\n }"
}
}
}
]
},
{
"id": "Galloping Trots",
"name": "Courante Galopante",
"description": "<p>On raconte que la nourriture des Halflings ne peut pas donner de Courante Galopante, une maladie peu râgoutante et malheureusement trop répandue au sein de l'Empire à cause du manque de soins apportés à la préparation de la nourriture. Même si ceux souffrant de Vengeance des Rumsters après avoir ingurgité des Tourtes bon marché des Halflings vendues à Altdorf vous diront le contraire, s'ils peuvent quitter les toilettes assez longtemps...</p>",
"durationValue": "1d10",
"durationUnit": "Jours",
"contraction": "Sur un échec d'un Test d'Endurance Facile (+40) après avoir ingurgité de la matière infectée.",
"incubationValue": "1d10",
"incubationUnit": "Heures",
"symptoms": "Intoxication Alimentaire (Modérée), Malaise, Nausée",
"permanent": "",
"effects": [
{
"_id": "Sp93ZiJ4eq26v8UO",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Intoxication Alimentaire (Modérée)",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "fquDNK6fxIYlnWX1",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Malaise",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"symptom": true,
"script": "if (game.user.isUniqueGM)\n {\n let fatigued = args.actor.hasCondition(\"fatigued\")\n if (!fatigued)\n {\n args.actor.addCondition(\"fatigued\")\n ui.notifications.notify(\"Etat exténué ajouté à \" + args.actor.name + \" qui ne peut être enlevé tant que le Malaise est présent.\")\n }\n }\n "
}
}
},
{
"_id": "heL1cJFCuElfQoeS",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Nausée",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "rollTest",
"symptom": true,
"script": "\nif (this.actor.isOwner && args.test.result.outcome == \"failure\")\n {\n let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (applicableCharacteristics.includes(args.test.characteristicKey))\n this.actor.addCondition(\"stunned\")\n \n }\n "
}
}
}
]
},
{
"id": "Ratte Fever",
"name": "Fièvre du rongeur",
"description": "<p>La très redoutée Fièvre du rongeur est transmise comme son nom l'indique, par des rongeurs infectés et cause des irritations douloureuses et des ulcérations avant que la fièvre ne monte et que le corps ne soit secoué de spasmes. Même si cette maladie est rarement fatale, elle est débilitante et il faut patienter longtemps avant de s'en remettre totalement. C'est pourquoi chacun cherchera à en atténuer les symptômes. Parmi les remèdes les plus connus, il y a, à Altdorf, l'auto-flagellation, réputée soulager toutes les infections cutanées. A Talabheim, on préconise de se recouvrir d'une mixture composée d'un mélange de fromage de chèvre relevé de poivre glacé importé de Kislev. Dans les villes et les cités les plus importantes, la Fièvre du rongeur est également connue sous le nom de Fièvre de la tourte, car il est notoire que, bien souvent, on remplace la viande la plus chère par du rat infecté dans ce genre de mets.</p>",
"durationValue": "3d10+10",
"durationUnit": "Jours",
"contraction": "Sur un échec d'un Test de Résistance Accessible (+20) après un combat où vous avez été blessé par des rongeurs (dont les skavens) possédant le Trait Infecté, ou sur un échec d'un Test de Résistance Facile (+40) après qu'une source infectée est entrée en contact avec votre bouche.",
"incubationValue": "3d10+5",
"incubationUnit": "Jours",
"symptoms": "Blessé, Convulsions, Démangeaisons, Fièvre, Malaise, Persistant (Accessible)",
"permanent": "",
"effects": [
{
"_id": "NZTzhqDUMfcFyOK2",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Convulsions",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "\nlet modifier = 0\n if (this.effect.label.includes(\"Modérée\"))\n modifier = -20\n else\n modifier = -10\n \n let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"ag\", \"t\", \"dex\"]\n if (args.type == \"weapon\")\n args.prefillModifiers.modifier += modifier\n else if (args.type == \"characteristic\")\n {\n if (applicableCharacteristics.includes(args.item))\n args.prefillModifiers.modifier += modifier\n }\n else if (args.type == \"skill\")\n {\n if (applicableCharacteristics.includes(args.item.characteristic.key))\n args.prefillModifiers.modifier += modifier\n }"
}
}
},
{
"_id": "0Tr1JZZBjSXaP6Sa",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Fièvre",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (args.type == \"weapon\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"characteristic\")\n {\n if (applicableCharacteristics.includes(args.item))\n args.prefillModifiers.modifier -= 10\n }\n else if (args.type == \"skill\")\n {\n if (applicableCharacteristics.includes(args.item.characteristic.key))\n args.prefillModifiers.modifier -= 10\n }",
"otherEffects": [
"blight",
"wounded"
]
}
}
},
{
"_id": "PfGvYCS6yUbrcpYr",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Persistant (Accessible)",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "QdZZlcWkKdwev0VI",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Malaise",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"symptom": true,
"script": "if (game.user.isUniqueGM)\n {\n let fatigued = args.actor.hasCondition(\"fatigued\")\n if (!fatigued)\n {\n args.actor.addCondition(\"fatigued\")\n ui.notifications.notify(\"Etat exténué ajouté à \" + args.actor.name + \" qui ne peut être enlevé tant que le Malaise est présent.\")\n }\n }\n "
}
}
},
{
"_id": "i4ivBVyls07XXZ8h",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Démangeaisons",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "\n\nif (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"skill\")\n {\n if (args.item.characteristic.key == \"fel\")\n args.prefillModifiers.modifier -= 10\n }"
}
}
},
{
"_id": "hUAPgI4Gb09zd1ut",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Blessé",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "invoke",
"symptom": true,
"script": "if (this.actor.isOwner)\n {\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty : \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n fromUuid(\"Compendium.wfrp4e-core.diseases.kKccDTGzWzSXCBOb\").then(disease => {\n args.actor.createEmbeddedDocuments(\"Item\", [disease.toObject()])\n })\n })\n })\n }"
}
}
}
]
},
{
"id": "The Bloody Flux",
"name": "Flux Sanglant",
"description": "<p>Le flux sanglant est un problème récurrent au sein de l'Empire et d'une manière générale, est considéré comme une malédiction infligée par les Dieux aux impies. Cette maladie infâme oblige la pauvre victime à se vider sans cesse. Le flux sanglant est endémique au sein des Armées de l'Etat, où il tue bien plus de soldats que les forces ennemies. Parmi les remèdes les plus fréquents, il y a l'ingurgitation de boudin pour remplacer les humeurs perdues, le bouchonnage et le massage des parties avec des substances grasses afin d'atténuer la douleur aigüe.</p>",
"durationValue": "1d10",
"durationUnit": "Jours",
"contraction": "Sur un échec d'un Test d'Endurance Facile (+40) après avoir ingéré de la matière infectée.",
"incubationValue": "2d10",
"incubationUnit": "Jours",
"symptoms": "Fièvre, Intoxication Alimentaire (Grave), Malaise, Nausée, Persistant (Intermédiaire)",
"permanent": "",
"effects": [
{
"_id": "Sc30lmNSCIJ0DGab",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Intoxication Alimentaire (Grave)",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "DjYLhjvUbllWMrKk",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Persistent (Intermédiaire)",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "KnlIy1IoRQ4KsvuV",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Fièvre",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (args.type == \"weapon\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"characteristic\")\n {\n if (applicableCharacteristics.includes(args.item))\n args.prefillModifiers.modifier -= 10\n }\n else if (args.type == \"skill\")\n {\n if (applicableCharacteristics.includes(args.item.characteristic.key))\n args.prefillModifiers.modifier -= 10\n }",
"otherEffects": [
"blight",
"wounded"
]
}
}
},
{
"_id": "VBP4fo86uuFd6YiW",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Malaise",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"symptom": true,
"script": "if (game.user.isUniqueGM)\n {\n let fatigued = args.actor.hasCondition(\"fatigued\")\n if (!fatigued)\n {\n args.actor.addCondition(\"fatigued\")\n ui.notifications.notify(\"Etat exténué ajouté à \" + args.actor.name + \" qui ne peut être enlevé tant que le Malaise est présent.\")\n }\n }\n "
}
}
},
{
"_id": "55OiJcxPalh86HH8",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Nausée",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "rollTest",
"symptom": true,
"script": "\nif (this.actor.isOwner && args.test.result.outcome == \"failure\")\n {\n let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (applicableCharacteristics.includes(args.test.characteristicKey))\n this.actor.addCondition(\"stunned\")\n \n }\n "
}
}
}
]
},
{
"id": "Blood Rot",
"name": "Infection du Sang",
"description": "<p>Votre sang est infecté et votre coeur répand la maladie dans votre corps. Il est possible de vous soigner par l'intermédiaire de saignées, mais certains diktors préfèrent effectuer des incisions à un endroit très précis ayu niveau du cou pour expluser le sang contaminé et demandent au patient d'ingérer d'énormes quantité de sang sain pour remplacer celui qui a été perdu. Que le patient accepte ou np, ce remère, si aucun traitement n'est appliqué l'Infection du sang est mortelle et se concluera par une visite à la Guilde de Thanatopracteurs et du Culte de Morr.</p>",
"durationValue": "1d10",
"durationUnit": "Jours",
"contraction": "C'est le développement d'une autre maladie, ou cela intervient après une Blessure critique?",
"incubationValue": "0",
"incubationUnit": "Jours",
"symptoms": "Toxine, Fièvre (Grave), Malaise",
"permanent": "",
"effects": [
{
"_id": "TH7hPoURLnjdJSSl",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Toxine",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "invoke",
"symptom": true,
"script": "\n let difficulty = \"\"\n if (this.effect.label.includes(\"Modérée\"))\n difficulty = \"easy\"\n else if (this.effect.label.includes(\"Grave\"))\n difficulty = \"average\"\n else\n difficulty = \"veasy\"\n \n if (this.actor.isOwner)\n {\n args.actor.setupSkill(\"Résistance\", {context : {failure : args.actor.name + \" meurt de la Toxine\"}, absolute: {difficulty}, appendTitle : \" - Toxine\"}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"dead\")\n })\n })\n }"
}
}
},
{
"_id": "V2oU1zPnQR94HCJQ",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Fièvre (Grave)",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (args.type == \"weapon\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"characteristic\")\n {\n if (applicableCharacteristics.includes(args.item))\n args.prefillModifiers.modifier -= 10\n }\n else if (args.type == \"skill\")\n {\n if (applicableCharacteristics.includes(args.item.characteristic.key))\n args.prefillModifiers.modifier -= 10\n }",
"otherEffects": [
"blight",
"wounded"
]
}
}
},
{
"_id": "NHyxRtRt9rsjjz4r",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Malaise",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"symptom": true,
"script": "if (game.user.isUniqueGM)\n {\n let fatigued = args.actor.hasCondition(\"fatigued\")\n if (!fatigued)\n {\n args.actor.addCondition(\"fatigued\")\n ui.notifications.notify(\"Etat exténué ajouté à \" + args.actor.name + \" qui ne peut être enlevé tant que le Malaise est présent.\")\n }\n }\n "
}
}
}
]
},
{
"id": "Minor Infection",
"name": "Infection Mineure",
"description": "<p>Les Infections mineures - des blessures guérissant lentement, qui n'enflent quasiment pas et ne provoquent pas de fièvre - sont trés répandues. La plupart guérissent d'elles-mêmes, donc peu de personnes s'en soucient réellement avant qu'il ne soit trop tard et que les Portes de Morr ne s'ouvrent.</p>",
"durationValue": "1d10",
"durationUnit": "Jours",
"contraction": "sur un échec d'un Test de Résistance Très Facile (+60) après un combat où vous subi une BLessure critique.",
"incubationValue": "1d10",
"incubationUnit": "Jours",
"symptoms": "Blessé, Fièvre, Malaise, Persistant (Facile)",
"permanent": "",
"effects": [
{
"_id": "FLB8zGutyEQWgRlb",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Persistent (Facile)",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "tf4IaDGr6PVsHl7w",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Malaise",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"symptom": true,
"script": "if (game.user.isUniqueGM)\n {\n let fatigued = args.actor.hasCondition(\"fatigued\")\n if (!fatigued)\n {\n args.actor.addCondition(\"fatigued\")\n ui.notifications.notify(\"Etat exténué ajouté à \" + args.actor.name + \" qui ne peut être enlevé tant que le Malaise est présent.\")\n }\n }\n "
}
}
},
{
"_id": "TbXenWmw4yRg7qlf",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Blessé",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "invoke",
"symptom": true,
"script": "if (this.actor.isOwner)\n {\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty : \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n fromUuid(\"Compendium.wfrp4e-core.diseases.kKccDTGzWzSXCBOb\").then(disease => {\n args.actor.createEmbeddedDocuments(\"Item\", [disease.toObject()])\n })\n })\n })\n }"
}
}
}
]
},
{
"id": "The Black Plague",
"name": "Peste Noire",
"description": "<p>Les historiens affirment qu'il y a des siècles de cela, les rats ont déferlé sur l'Empire et la Peste Noire s'ensuivit, décimant neuf âmes sur dix. Des recrudescences inexpliquées de cette horrible maladie apparaissent encore de nos Jours et sont systématiquement accompagnées de la présence des pragmatiques nonnes blanches. Le Culte de Shalllya a juré de faire tout ce qui était en son pouvoir pour éradiquer cette terrible maladie, et, en application de droits ancestraux qui lui sont conférés, des cordons sanitaires, délimités par des cordes blanches, sont déployées partout ou l'épidémie surgit, afin d'être certain que personne ne puisse entrer ou sortir de la zone de quarantaine. Et ce, jusqu'à ce que les corps ait été correctement traités.</p>",
"durationValue": "3d10",
"durationUnit": "Jours",
"contraction": "Effectuer un Test de Résistance Accessible (+20) pour chaque heure entamée passée dans la zone infectée, ou lorsque vous vous retrouvez en présence de fluides infectés.",
"incubationValue": "1d10",
"incubationUnit": "Minutes",
"symptoms": "Bubons, Toxine (Modérée), Fièvre, Gangrène, Malaise",
"permanent": "",
"effects": [
{
"_id": "NKiIPNQehPO9eaxm",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Toxine (Modérée)",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "invoke",
"symptom": true,
"script": "\n let difficulty = \"\"\n if (this.effect.label.includes(\"Modérée\"))\n difficulty = \"easy\"\n else if (this.effect.label.includes(\"Grave\"))\n difficulty = \"average\"\n else\n difficulty = \"veasy\"\n \n if (this.actor.isOwner)\n {\n args.actor.setupSkill(\"Résistance\", {context : {failure : args.actor.name + \" meurt de la Toxine\"}, absolute: {difficulty}, appendTitle : \" - Toxine\"}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"dead\")\n })\n })\n }"
}
}
},
{
"_id": "NcJoF1DR82jScspx",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Bubons",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "\n let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (args.type == \"weapon\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"characteristic\")\n {\n if (applicableCharacteristics.includes(args.item.key))\n args.prefillModifiers.modifier -= 10\n }\n else if (args.type == \"skill\")\n {\n if (applicableCharacteristics.includes(args.item.characteristic.key))\n args.prefillModifiers.modifier -= 10\n }\n "
}
}
},
{
"_id": "BdDKgmnnXyID5l9r",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Fièvre",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "let applicableCharacteristics = [\"ws\", \"bs\", \"s\", \"fel\", \"ag\", \"t\", \"dex\"]\n if (args.type == \"weapon\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"characteristic\")\n {\n if (applicableCharacteristics.includes(args.item))\n args.prefillModifiers.modifier -= 10\n }\n else if (args.type == \"skill\")\n {\n if (applicableCharacteristics.includes(args.item.characteristic.key))\n args.prefillModifiers.modifier -= 10\n }",
"otherEffects": [
"blight",
"wounded"
]
}
}
},
{
"_id": "qNWBcG8TYO5QGmLk",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Gangrène",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "\n if (args.type == \"characteristic\" && args.item == \"fel\")\n {\n if (args.item == \"fel\")\n args.prefillModifiers.modifier -= 10\n }\n else if (args.type == \"skill\")\n {\n if (args.item.characteristic.key == \"fel\")\n args.prefillModifiers.modifier -= 10\n }\n }"
}
}
},
{
"_id": "1J3ape1RdCwgziZe",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Malaise",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"symptom": true,
"script": "if (game.user.isUniqueGM)\n {\n let fatigued = args.actor.hasCondition(\"fatigued\")\n if (!fatigued)\n {\n args.actor.addCondition(\"fatigued\")\n ui.notifications.notify(\"Etat exténué ajouté à \" + args.actor.name + \" qui ne peut être enlevé tant que le Malaise est présent.\")\n }\n }\n "
}
}
}
]
},
{
"id": "Packer's Pox",
"name": "Vérole du Tanneur",
"description": "<p>C'est une maladie très répandue parmi les chasseurs, les fourreurs et les marchands, transmises par les moutons et le bétail, respectivement par la laine et la peau, et par les cadavres de ceux qui sont morts de cette maladie. Elle se manifeste au départ par de légères démangeaisons, trés vite remplacées par des boursufflures roses qui vont se progager sur tout le corps, et particulièrement sur le torse et les bras. Ce n'est pas la forme de vérole la plus grave de l'Empire, mais elle persiste assez longtemps et peut quelquefois s'avérer mortelle.</p>",
"durationValue": "5d10",
"durationUnit": "Jours",
"contraction": "Sur un échec d'un Test de Résistance Facile (+40) après être entré en contact avec un animal, de la peau, ou des cadavres infectés.",
"incubationValue": "1d10",
"incubationUnit": "Jours",
"symptoms": "Démangeaisons, Persistant (Intermédiaire)",
"permanent": "",
"effects": [
{
"_id": "1PIxT3ieQbomnHR5",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Persistent (Intermédiaire)",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "aHhqh3ReDbl1CC33",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Démangeaisons",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "\n\nif (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"skill\")\n {\n if (args.item.characteristic.key == \"fel\")\n args.prefillModifiers.modifier -= 10\n }"
}
}
}
]
},
{
"id": "Itching Pox",
"name": "Vérole Urticante",
"description": "<p>Tous les ans, la plupart des villes et cités de l'Empire subissent une épidémie de Vérole urticante. La maladie, qui fait apparaître des boursuflures qui démangent sur la quasi-totalité du corps, reste relativement bénigne et ne provoque que très rarement des complications, et n'est donc un réel souci que pour les patients inquiets de nature et les nobliaux oisifs. La maladie est tellement répandue qu'on trouve dans la plupart des temples de Shallya des ampoules remplies de pâte blanche qui permettent de soulager les démangeaisons des malades.</p>",
"durationValue": "1d10+7",
"durationUnit": "Jours",
"contraction": "Sur un échec d'un Test de Résistance Accessible (+20) lorsque vous touchez une personne infectée ou que vous échouez à ce même Test après qu'un patient contagieux a toussé ou éternué juste à côté de vous (effectue un Test par heure)",
"incubationValue": "1d10",
"incubationUnit": "Jours",
"symptoms": "Démangeaisons, Toux et éternuements",
"permanent": "Vous ne pouvez pas l'attraper une seconde fois, si vous l'avez déjà contractée dans le passé.",
"effects": [
{
"_id": "vgz3aqUkKvksDs7X",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Toux et éternuements",
"transfer": true,
"flags": {
"wfrp4e": {
"symptom": true
}
}
},
{
"_id": "c9ty7yoIpDJfwDqo",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/diseases/disease.png",
"label": "Démangeaisons",
"transfer": true,
"flags": {
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"symptom": true,
"script": "\n\nif (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 10\n else if (args.type == \"skill\")\n {\n if (args.item.characteristic.key == \"fel\")\n args.prefillModifiers.modifier -= 10\n }"
}
}
}
]
}
]
}

View File

@ -28,7 +28,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.data.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedear.png",
@ -137,7 +137,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedfoot.png",
@ -410,7 +410,7 @@
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"preventDuplicateEffects": false,
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.data.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedeye.png",
@ -443,7 +443,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedleg.png",
@ -546,7 +546,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-leg.png",
@ -643,7 +643,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-body.png",
@ -745,7 +745,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-leg.png",
@ -856,7 +856,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-body.png",
@ -953,7 +953,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1103,7 +1103,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",

File diff suppressed because one or more lines are too long

View File

@ -55,10 +55,10 @@
{
"description": "",
"effects": {
"label0": "Fornication"
"label0": "Formication"
},
"id": "Crawling Skin",
"name": "Fornication"
"name": "Formication"
},
{
"description": "",

View File

@ -23,8 +23,8 @@
{
"description": "<p>Vous énoncez l'une des énigmes de Ranald concernant des portails, s'ils existent ou pas lorsqu'ils sont fermés. L'un des systèmes de verrouillage d'une porte, une fenêtre ou d'une trappe ciblée cède : une serrure se déverouille, un loquet se débloque, une corde se détache. Pour chaque +2 DR, vous pouvez cibler un autre système de verrouillage de la porte, fenêtre ou trappe.</p>",
"effects": [],
"id": "An Invitation ",
"name": "Invitation "
"id": "An Invitation",
"name": "Invitation"
},
{
"description": "<p>Vos prières sincères à Shallya accordent à la cible la force de résister. La cible ne ressent aucune douleur, et ne subit aucune pénalité causée par les Etats.</p>",
@ -67,7 +67,7 @@
"description": "<p>En demandant à Verena d'être votre témoin, la véracité de vos paroles est évidente pour tous. Pour la durée du Miracle, à condition que vous ne disiez que la vérité, tous les auditeurs croiront ce que vous dites. Evidemment, cela ne signifie pas qu'ils seront d'accord avec vos conclusions.</span> </p>",
"effects": [],
"id": "As Verena is My Witness",
"name": "Véréna est mon témoin"
"name": "Verena est mon témoin"
},
{
"description": "<p>Vous faites appel à Shallya pour apaiser les esprits tourmentés de vos cibles. Tout les Traits de Psychologie sont retirés pour la durée du Miracle et les cibles plongent ensuite dans un sommeil profond et réparateur jusqu'au lever de soleil suivant, en supposant qu'elles ne soient pas dérangées. Des cibles non volontaires peuvent effectyuer un <strong>Test de Calme Intermédiaire (+0)</strong> pour résister au sommeil.</p>",
@ -135,7 +135,7 @@
"description": "<p>Vous volez le vent des voiles d'un navire ou d'un bateau. Il est complètement encalaminé. Même en cas de tempêtes, des eaux étrangement calmes et lisses entoure le vaisseau tandis que des vents violents, des pluies cinglantes et des crêtes imposantes s'élèvent et s'écrasent tout autour de lui. Cette zone de calme s'étend autour du vaisseau sur une distance en mètre égale au Bonus d'Initiative, et si le navire est propulsé par un autre moyen, tel que des rames, la zone se déplace avec lui.</p>",
"effects": [],
"id": "Becalm",
"name": "Encalaminé"
"name": "Encalminé"
},
{
"description": "<p>En réponse à vos prières, Shallya aspire un poison ou une maladie de la cible, le retirant complètement de son organisme. Pour chaque +2 DR, vous pouvez purger une autre maladie ou poison. Pour chaque poison retiré ou maladie guérie de cette manière, vous subissez un nombre de Points de Blessures égale à 1d10 - votre Bonus de Sociabilité, non modifié par votre Bonus d'Endurance ou vos PA.</p>",
@ -166,13 +166,13 @@
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
"label": "Ardent Soleil",
"label": "Soleil flamboyant",
"tint": "",
"transfer": false
}
],
"id": "Blazing Sun",
"name": "Ardent Soleil"
"name": "Soleil flamboyant"
},
{
"description": "<p>Votre cible gagne +10 en CC.</p>",
@ -224,7 +224,7 @@
{
"key": "data.characteristics.fel.modifier",
"mode": 2,
"value": ""
"value": "10"
}
],
"disabled": false,
@ -306,7 +306,7 @@
{
"key": "data.characteristics.dex.modifier",
"mode": 2,
"value": ""
"value": "10"
}
],
"disabled": false,
@ -443,7 +443,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "let wounds = args.actor.data.data.status.wounds\n\nif (wounds.value < wounds.max)\n args.actor.update({\"data.status.wounds.value\" : wounds.value + 1})"
"script": "let wounds = args.actor.status.wounds\n\nif (wounds.value < wounds.max)\n args.actor.update({\"data.status.wounds.value\" : wounds.value + 1})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/blessings.png",
@ -554,7 +554,7 @@
"description": "<p>Votre cible peut retirer 1 Etat.</p>",
"effects": [],
"id": "Blessing of Tenacity",
"name": "Bénédiction de Tenacité"
"name": "Bénédiction de Ténacité"
},
{
"description": "<p>Votre cible gagne +10 en Capacité de Tir.</p>",
@ -698,7 +698,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "if (args.actor.data.traits.find(t => t.name == \"Mort-vivant\"))\n{\n let damage = new Roll(\"1d10\").roll().total\n args.actor.applyBasicDamage(damage, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL})\n}"
"script": "if (args.actor.has(\"Mort-vivant\"))\n{\n let damage = (await new Roll(\"1d10\")).roll({async: false}).total\n args.actor.applyBasicDamage(damage, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL})\n}"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -753,7 +753,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.psychologies.5hH73j2NgPdsLCZN\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.psychologies.5hH73j2NgPdsLCZN\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -802,7 +802,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.J9MK0AIaTbvd5oF6\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.J9MK0AIaTbvd5oF6\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -839,7 +839,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "if (args.actor.data.traits.find(t => t.name == \"Mort-vivant\") && args.actor.data.traits.find(t => t.name == \"Construct\"))\n args.actor.addCondition(\"dead\")"
"script": "if (args.actor.has(\"Mort-vivant\") && args.actor.has(\"Construct\"))\n args.actor.addCondition(\"dead\")"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -898,7 +898,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.CV9btQn09S9Fn8Jk\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.CV9btQn09S9Fn8Jk\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -920,7 +920,7 @@
"description": "<p>Vous implorez Mannan de vous fournir de la nourriture. En restant dans un plan d'eau, vous attrapez suffisament de poisson pour nourrir 1 personne; si c'est en mer, vous en obtenez suffisamment pour 2 personnes. Pour chaque +2 DR vous pouvez nourrir une autre personne.</p>",
"effects": [],
"id": "Manann's Bounty",
"name": "Générosité de Mannan"
"name": "Générosité de Manann"
},
{
"description": "<p>Vous entonnez des Prières sur le besoin de Shallya de supporter la douleur du monde. Vous recevez tous les Dégâts subis en principe par vos cibles. Si vous prenez des Dégâts à cause de ce Miracle, votre Bonus d'Endurance est doublé pour le calcul des Points de Blessure subis à cause de ces Dégâts.</p>",
@ -969,7 +969,7 @@
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
"label": "Grace de Ranald",
"label": "Grâce de Ranald",
"tint": "",
"transfer": false
},
@ -989,7 +989,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.g4Q6AtzZuo5iIvD4\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.g4Q6AtzZuo5iIvD4\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -999,7 +999,7 @@
}
],
"id": "Ranald's Grace",
"name": "Grace de Ranald"
"name": "Grâce de Ranald"
},
{
"description": "<p>Posant les mains à terre, vous psalmodiez une Prière pour Rhya réclamant son aide pour mieux comprendre son Royaume. Ce Miracle peut seulement être invoqué à l'extérieur, en dehors des zones habitées. Vous ressentez la présence et le passage de toutes créatures conscientes dans un rayon de (Sociabilité) mètres. Chaque + 2 DR étend la zone d'effet de +(Sociabilité) mètres.</p>",
@ -1105,7 +1105,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "prepareData",
"script": "let AP = args.actor.data.AP\n\nAP[\"head\"].value += 1\nAP[\"rArm\"].value += 1\nAP[\"lArm\"].value += 1\nAP[\"body\"].value += 1\nAP[\"lLeg\"].value += 1\nAP[\"rLeg\"].value += 1"
"script": "let AP = args.actor.status.armour\n\nAP[\"head\"].value += 1\nAP[\"rArm\"].value += 1\nAP[\"lArm\"].value += 1\nAP[\"body\"].value += 1\nAP[\"lLeg\"].value += 1\nAP[\"rLeg\"].value += 1"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1142,17 +1142,17 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "let damage = new Roll(\"1d10\").roll().total\n args.actor.applyBasicDamage(damage, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL})\n\nif (args.actor.data.traits.find(t => t.name == \"Mort-vivant\") || args.actor.data.traits.find(t => t.name == \"Démoniaque\"))\n{\n args.actor.addCondition(\"ablaze\")\n}"
"script": "let damage = (await new Roll(\"1d10\")).roll({async: false}).total\n args.actor.applyBasicDamage(damage, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL})\n\nif (args.actor.has(\"Mort-vivant\") || args.actor.data.has(\"Démoniaque\"))\n{\n args.actor.addCondition(\"ablaze\")\n}"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
"label": "Soufre",
"label": "Feu de l'âme",
"tint": "",
"transfer": false
}
],
"id": "Soulfire",
"name": "Soufre"
"name": "Feu de l'âme"
},
{
"description": "<p>Si vous portez une lance, elle gagne l'atout <em>Percutante</em>, et est considérée comme Magique.</p>",
@ -1235,7 +1235,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.traits.pLW9SVX0TVTYPiPv\").then(item => {\n item.data.data.specification.value = 3\n this.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.traits.AtpAudHA4ybXVlWM\").then(item => {\n item.data.data.specification.value = 4\n this.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.traits.pLW9SVX0TVTYPiPv\").then(item => {\n item.specification.value = 3\n this.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.traits.AtpAudHA4ybXVlWM\").then(item => {\n item.specification.value = 4\n this.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1251,7 +1251,7 @@
"description": "<p>Vous entonnez des Prières sur la capacité de Verena à trouver la vérité. Vous pouvez poser une seule question aux cibles. Elles y répondront immédiatement, sincèrement et entièrement. Les cibles peuvent tenter de résister en contestant votre DR avec un <strong>Test de Calme Accessible (+20)</strong>. Sur un succès, elles peuvent refuser obstinément de répondre. Si elles obtiennent un +2 DR, elles peuvent cacher des informations mineures, +4 DR leur permet de dissimuler des informations importantes alors que +6 DR leur permet de mentir ouvertement. Vous saurez si elles résistent avec succès, même si vous manquerez d'informations sur l'ampleur de leur tromperie ou de preuve de leur malhonnêteté.</p>",
"effects": [],
"id": "Truth Will Out",
"name": "La Vérité Eclatera"
"name": "La Vérité éclatera"
},
{
"description": "<p>Vous invoquez des litanies pour Sigmar, faisant appel à lui pour châtier ses ennemis. Une comète à Deux Queues, laissant une traînée de feu dans son sillage, tombe du ciel pour frapper un point dans la Ligne de Vue et dans la zone d'effet. Tout ce qui se trouve dans un rayon de (Bonus de Sociabilité) mètres du point d'impact subit 1d10 + DR Dégâts, qui ignorent le Bonus d'Endurance et les PA, et gagne l'Etat <em>Enflammé</em>. L'endroit ciblé doit se trouver à l'extérieur, et peut seulement cibler que ceux que Sigmar jugerait être des ennemis.</p>",
@ -1277,13 +1277,13 @@
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
"label": "Comètes à Deux-Queues",
"label": "Comète à Deux-Queues",
"tint": "",
"transfer": false
}
],
"id": "Twin-tailed Comet",
"name": "Comètes à Deux-Queues"
"name": "Comète à Deux-Queues"
},
{
"description": "<p>Vous psalmodiez frénétiquement les Prières et la férocité d'Ulric se répand. Les cibles gagnent le Trait de créature <em>Frénésie</em>.</p>",
@ -1334,7 +1334,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"characteristic\" && args.item == \"int\")\n {\n args.prefillModifiers.modifier += 20\n }\n else if (args.type == \"skill\")\n {\n if (args.item.data.characteristic.value == \"int\")\n args.prefillModifiers.modifier += 20\n }"
"script": "if (args.type == \"characteristic\" && args.item == \"int\")\n {\n args.prefillModifiers.modifier += 20\n }\n else if (args.type == \"skill\")\n {\n if (args.item.characteristic.value == \"int\")\n args.prefillModifiers.modifier += 20\n }"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1350,7 +1350,7 @@
"description": "<p>Vous énoncez une énigme complexe concernant la réalité de ce qui ne peut être perçu. Les cibles affectées par ce Miracle peuvent passer inaperçues, à condition qu'elles n'attirent pas l'attention sur elles, en touchant, attaquant, appelant quelqu'un, lancer un Sort ou en faisant du bruit. Vous pouvez invoquer ce Miracle uniquement si personne ne vous regarde directement.</p>",
"effects": [],
"id": "You Aint Seen Me, Right?",
"name": "Vous ne m'avez pas vu, N'est ce pas ?"
"name": "Vous ne m'avez pas vu, n'est ce pas ?"
}
]
}

View File

@ -3,7 +3,7 @@
"entries": [
{
"id": "Animal Care",
"name": "Soins aux animaux",
"name": "Soin aux animaux",
"description": "<p>La Compétence Soin aux animaux vous permet de vous occuper des animaux et de les soigner quand ils tombent malades ou sont blessés</p>\n <p>Posséder une seule Augmentation en Soin aux animaux signifie que vous pouvez garder les animaux en bonne santé sans avoir besoin de faire de Test. Vous pouvez également effectuer un Test de Soin aux animaux pour identifier et résoudre des problèmes avec les animaux tels que :</p>\n <p>&nbsp;</p>\n <p>• Déceler une maladie.</p>\n <p>• Comprendre les raisons de la désobéissance ou de l'inconfort.</p>\n <p>• Déterminer les caractéristiques de l'animal.</p>\n <p>• Guérir un nombre de blessures égal au Bonus d'Intelligence + DR (Remarque : un animal ne peut bénéficier que d'un lancer de Guérison après chaque rencontre).</p>\n <p>• Stopper un Etat Hémorragique.</p>\n <p>• Préparer l'animal pour une démonstration.</p>\n <p>&nbsp;</p>\n <p>En combat, vous pouvez évaluer un animal ennemi avec Test de Soin aux animaux. Sur un succès, vous, et tous ceux que vous en informez, gagnez +10 pour toucher lorsque vous attaquez cet animal — ou quiconque l'utilise comme monture — jusqu'à la fin de votre prochain tour, car vous remarquez un harnachement détaché, une boiterie causée par une blessure mineure, ou mettez en lumière n'importe quelle autre faiblesse ou vulnérabilité. Soin aux animaux ne peut fournir qu'un maximum de +10 pour toucher par animal, quel que soit le nombre de Tests effectués pour déceler une faiblesse.</p>\n <p>&nbsp;</p>\n <h3>Animaux</h3>\n <p>C'est au MJ de décider si Soin aux animaux et Dressage fonctionnent ou non avec une créature. Alors que pour certaines - chien, cheval, hippogriffe - la réponse semble évidente, pour d'autres, ça l'est beaucoup moins. Vous pouvez débattre sur le fait qu'un dragon pourrait ou non bénéficier de Dressage, mais essayez d'expliquer ça au dragon en question...</p>"
},
{
@ -23,8 +23,8 @@
},
{
"id": "Animal Training (Demigryph)",
"name": "Dressage (Hippogriffe)",
"description": "<p>Dressage représente votre compréhension d'un hippogriffe, et votre capacité à l'entraîner. Une utilisation réussie de cette Compétence vous permet d'identifier les capacités Entraînées possédées par un Hippogriffe. La Compétence Dressage permet aussi d'entreprendre l'Activité Dressage entre deux aventures.</p>\n<p>&nbsp;</p>\n<p>En combat, un Test opposé de Dressage/Force Mentale réussi vous permet d'intimider un seul hippogriffe; vous instillez la peur chez l'hippogriffe ciblé jusqu'à la fin de votre prochain tour. Quand vous insufflez la peur de cette façon, vous pouvez par la suite utiliser votre compétence Dressage au lieu de Corps à corps quand vous vous défendez contre votre cible ; avec l'accord du MJ, vous pouvez aussi utiliser Dressage pour attaquer votre cible, en donnant des instructions spécifiques.</p>\n<p>&nbsp;</p>\n<h3><span style=\"text-decoration: underline;\">Animaux</span></h3>\n<p>C'est au MJ de décider si Soin aux animaux et Dressage fonctionnent ou non avec une créature. Alors que pour certaines - chien, cheval, hippogriffe - la réponse semble évidente, pour d'autres, ça l'est beaucoup moins. Vous pouvez débattre sur le fait qu'un dragon pourrait ou non bénéficier de Dressage, mais essayez d'expliquer ça au dragon en question...</p>\n<p>&nbsp;</p>\n<p><strong>Example</strong>:&nbsp;<em>Affrontant un chein de guerre affamé, Ilse réussi un Test opposé de Dressage (Chien) au premier round de combat, en faisant peur à la bête et gagnant +1 Avantage. Pendant le round suivant, elle attaque sa cible avec sa Compétence Dressage, contournant la défense du chien. Son MJ lui permet d'ordonner à la bête de fuir, ce qu'elle fait, la queue entre les jambes.&nbsp;</em></p>"
"name": "Dressage (Demigriffon)",
"description": "<p>Dressage représente votre compréhension d'un Demigriffon, et votre capacité à l'entraîner. Une utilisation réussie de cette Compétence vous permet d'identifier les capacités Entraînées possédées par un Pégase. La Compétence Dressage permet aussi d'entreprendre l'Activité Dressage entre deux aventures.</p>\n<p>&nbsp;</p>\n<p>En combat, un Test opposé de Dressage/Force Mentale réussi vous permet d'intimider un seul Demigriffon; vous instillez la peur chez l'Demigriffon ciblé jusqu'à la fin de votre prochain tour. Quand vous insufflez la peur de cette façon, vous pouvez par la suite utiliser votre compétence Dressage au lieu de Corps à corps quand vous vous défendez contre votre cible ; avec l'accord du MJ, vous pouvez aussi utiliser Dressage pour attaquer votre cible, en donnant des instructions spécifiques.</p>\n<p>&nbsp;</p>\n<h3><span style=\"text-decoration: underline;\">Animaux</span></h3>\n<p>C'est au MJ de décider si Soin aux animaux et Dressage fonctionnent ou non avec une créature. Alors que pour certaines - chien, cheval, Demigriffon - la réponse semble évidente, pour d'autres, ça l'est beaucoup moins. Vous pouvez débattre sur le fait qu'un dragon pourrait ou non bénéficier de Dressage, mais essayez d'expliquer ça au dragon en question...</p>\n<p>&nbsp;</p>\n<p><strong>Example</strong>:&nbsp;<em>Affrontant un chein de guerre affamé, Ilse réussi un Test opposé de Dressage (Chien) au premier round de combat, en faisant peur à la bête et gagnant +1 Avantage. Pendant le round suivant, elle attaque sa cible avec sa Compétence Dressage, contournant la défense du chien. Son MJ lui permet d'ordonner à la bête de fuir, ce qu'elle fait, la queue entre les jambes.&nbsp;</em></p>"
},
{
"id": "Animal Training (Dog)",
@ -62,7 +62,7 @@
"description": "<p>Créez des œuvres d'art avec le moyen d'expression de votre choix. Ne pas avoir accès aux Outils de la profession appropriés entraînera une pénalité&nbsp;à vos Tests. Le DR obtenu détermine la qualité de l'œuvre finale. Un Test étendu peut être nécessaire pour la réalisation d'une œuvre d'art complexe ou de grande taille. La Compétence Art est peu utilisée en combat, mais les bustes de marbre peuvent faire de formidables armes improvisées.</p>\n<p>&nbsp;</p>\n<p><span style=\"font-weight: bold;\">Spécialisations : </span>Cartographie, Gravure, Mosaïque, Peinture, Sculpture, Tatouage, Tissage&nbsp;</p>\n<p>&nbsp;</p>\n<p><strong>Exemple</strong> : <em>Irina a reçu une commande pour peindre le portrait d'un noble local, dont son groupe cherche à obtenir les faveurs. Son MJ décide que cela nécessite un total de 10 DR à un Test étendu d'Art, et chaque Test représente une semaine de travail.</em></p>"
},
{
"id": "Art (Cartogrpahy)",
"id": "Art (Cartography)",
"name": "Art (Cartographie)",
"description": "<p>Créez des œuvres d'art en cartographie. Ne pas avoir accès aux Outils de la profession appropriés entraînera une pénalité à vos Tests. Le DR obtenu détermine la qualité de l'œuvre finale. Un Test étendu peut être nécessaire pour la réalisation d'une œuvre d'art complexe ou de grande taille. La Compétence Art est peu utilisée en combat, mais les bustes de marbre peuvent faire de formidables armes improvisées.</p>\n<p>&nbsp;</p>\n<p><strong>Example</strong> :<em> Irina a reçu une commande pour peindre le portrait d'un noble local, dont son groupe cherche à obtenir les faveurs. Son MJ décide que cela nécessite un total de 10 DR à un Test étendu d'Art, et chaque Test représente une semaine de travail.&nbsp;</em></p>\n<p>&nbsp;</p>"
},
@ -88,7 +88,7 @@
},
{
"id": "Art (Tattoo)",
"name": "Art (Tattouage)",
"name": "Art (Tatouage)",
"description": "<p>Créez des œuvres d'art en tattouage. Ne pas avoir accès aux Outils de la profession appropriés entraînera une pénalité à vos Tests. Le DR obtenu détermine la qualité de l'œuvre finale. Un Test étendu peut être nécessaire pour la réalisation d'une œuvre d'art complexe ou de grande taille. La Compétence Art est peu utilisée en combat, mais les bustes de marbre peuvent faire de formidables armes improvisées.</p>\n<p>&nbsp;</p>\n<p><strong>Example</strong> :<em> Irina a reçu une commande pour peindre le portrait d'un noble local, dont son groupe cherche à obtenir les faveurs. Son MJ décide que cela nécessite un total de 10 DR à un Test étendu d'Art, et chaque Test représente une semaine de travail.&nbsp;</em></p>\n<p>&nbsp;</p>"
},
{
@ -218,8 +218,8 @@
},
{
"id": "Entertain (Comedy)",
"name": "Divertissement (Comédie)",
"description": "<p>Cette Compétence vous permet de ravir les foules par la parole, peut-être en chantant, en jouant la comédie ou en faisant quelques blagues. Une utilisation réussie de la Compétence Divertissement signifie que vous avez assez amusé les spectateurs alentour pour qu'ils vous écoutent ; le DR indique à quel point vous avez réussi.</p>\n<p>En combat, il est peu probable que Divertissement soit d'une grande utilité, bien que vous puissiez trouver une façon intéressante d'utiliser Divertissement(Comédie) pour troubler ou leurrer vos adversaires.</p>"
"name": "Divertissement (Interprétation)",
"description": "<p>Cette Compétence vous permet de ravir les foules par la parole, peut-être en chantant, en jouant la comédie ou en faisant quelques blagues. Une utilisation réussie de la Compétence Divertissement signifie que vous avez assez amusé les spectateurs alentour pour qu'ils vous écoutent ; le DR indique à quel point vous avez réussi.</p>\n<p>En combat, il est peu probable que Divertissement soit d'une grande utilité, bien que vous puissiez trouver une façon intéressante d'utiliser Divertissement(Interprétation) pour troubler ou leurrer vos adversaires.</p>"
},
{
"id": "Entertain (Singing)",
@ -328,7 +328,7 @@
},
{
"id": "Language (Mootish)",
"name": "Langue (Mootland)",
"name": "Langue (Halfling)",
"description": "<p>La Compétence Langue indique votre aisance avec différentes langues. Tous les Personnages sont considérés comme capables de parler le « reikspiel » - la langue de l'Empire - et leur langue maternelle (si votre Personnage en possède une différente du reikspiel), sans avoir besoin de faire de Test. Si votre partie ne se déroule pas dans l'Empire, remplacez le reikspiel par la langue locale.</p>\n<p>&nbsp;</p>\n<p>Si vous possédez l'une de ces Compétences, vous êtes généralement capable de vous faire comprendre dans cette langue, ou de comprendre des concepts simples. Vous serez amené à faire un Test de votre Compétence de Langue quand un concept particulièrement difficile doit être transmis, ou qu'un dialecte ou vocabulaire obscur est utilisé.</p>\n<p>&nbsp;</p>\n<p><span style=\"font-weight: bold;\">Halfling </span><strong>: &nbsp;</strong>Parlée par le peuple du Moot ; la grande province halfling de l'Empire. Cette langue est peu connue en dehors du Moot.</p>"
},
{
@ -348,7 +348,7 @@
},
{
"id": "Language (Thieves Tongue)",
"name": "Langue (Langage des voleurs)",
"name": "Langue (Voleur)",
"description": "<p>La Compétence Langue indique votre aisance avec différentes langues. Tous les Personnages sont considérés comme capables de parler le « reikspiel » - la langue de l'Empire - et leur langue maternelle (si votre Personnage en possède une différente du reikspiel), sans avoir besoin de faire de Test. Si votre partie ne se déroule pas dans l'Empire, remplacez le reikspiel par la langue locale.</p>\n<p>&nbsp;</p>\n<p>Si vous possédez l'une de ces Compétences, vous êtes généralement capable de vous faire comprendre dans cette langue, ou de comprendre des concepts simples. Vous serez amené à faire un Test de votre Compétence de Langue quand un concept particulièrement difficile doit être transmis, ou qu'un dialecte ou vocabulaire obscur est utilisé.</p>\n<p>&nbsp;</p>\n<p><span style=\"font-weight: bold;\">Langage des voleurs</span><strong> : &nbsp;</strong>Parlée par le peuple des rues du Vieux Monde. Les expressions de ce langage sont très localisées et propres à chaque royaume ; par exemples les Tiléens utilisent un « Langage des voleurs » radicalement différent de celui du peuple de l'Empire.</p>"
},
{
@ -388,7 +388,7 @@
},
{
"id": "Lore (Heraldry)",
"name": "Savoir (Généalogie)",
"name": "Savoir (Héraldique)",
"description": "<p>Posséder une Compétence Savoir signifie que vous avez officiellement étudié, ou avez appris d'une façon ou d'une autre, une branche de connaissances avancées. Vous possédez des données approfondies dans une spécialisation et n'avez donc pas besoin d'effectuer de Test pour que le MJ vous donne les éléments d'information utiles. Si vous cherchez des informations spécifiques moins connues, vous aurez besoin d'effectuer un Test de Savoir, modifié selon la nature obscure de l'information, où les DR indiqueront combien de détails vous vous souvenez.</p>\n<p>&nbsp;</p>\n<p>En combat, un Test de Savoir réussi peut éventuellement vous accorder +1 Avantage (avec l'accord de votre MJ). Par exemple, Savoir (Géologie) peut vous donner un Avantage si vous combattez dans une caverne, ou Savoir (Ingénierie) peut vous aider si vous combattez un ennemi armé d'un appareil mécanique complexe. Vous pouvez continuer à renforcer votre Avantage lors des tours ultérieurs, à condition que les circonstances le permettent (déterminé par le MJ) et que vous ne soyez pas interrompu ; de cette façon, vous pouvez gagner un maximum d'Avantages, égal à votre Bonus d'intelligenece.</p>"
},
{
@ -508,7 +508,7 @@
},
{
"id": "Perform (Dancing)",
"name": "Représentation (Danser)",
"name": "Représentation (Danse)",
"description": "<p>Vous avez appris un art physiquement exigeant, probablement pour gagner votre vie, peut-être en tant que saltimbanque ou membre d'un carnaval itinérant. Une utilisation réussie de la Compétence Représentation vous permet de divertir tous les spectateurs suffisamment proches pour vous voir et vous entendre ; le DR indique à quel point vous avez réussi.</p>\n<p>&nbsp;</p>\n<p>En combat, certaines spécialisations physiques de Représentation peuvent vous donner un Avantage au combat. Avec l'accord de votre MJ, Représentation (Acrobaties) peut être utilisée à la place d'Esquive. D'autres Compétences Représentation peuvent être directement utilisées comme arme si vous possédez l'équipement approprié, comme avec Représentation (Cracheur de feu) !</p>"
},
{
@ -643,8 +643,8 @@
},
{
"id": "Ride (Demigryph)",
"name": "Chevaucher (Hippogriffe)",
"description": "<p>C'est la façon dont vous maîtrisez le fait de chevaucher des hippogriffe. Vous aurez besoin de faire un Test uniquement lorsque vous voudrez effectuer quelque chose d'inhabituel, comme une course, du dressage, traverser un terrain dangereux ou charger en combat. Autrement, si vous possédez la Compétence, vous êtes considéré comme capable de chevaucher sans avoir besoin de Test.</p>\n<p>&nbsp;</p>\n<p>Si vous êtes monté sur un destrier, vous vous déplacez en utilisant les statistiques de Mouvement du destrier ; si vous voulez courir, sauter, ou bondir, vous utilisez votre compétence Chevaucher, et pas Athlétisme. Un Test de Chevaucher étendu peut être nécessaire si vous vous rendez quelque part, le DR cible dépendant de la longueur du voyage, et le nombre de Tests indiquant combien de temps vous mettez à arriver. Un Test de Chevaucher peut être modifié par les conditions environnementales et le tempérament de la monture. Pour plus d'information sur les montures, voir le Chapitre 12 : Bestiaire. Le Compétence Chevaucher peut être activement utilisée en combat. Voir Chapitre 5 : Règles pour plus d'informations sur le combat monté.</p>"
"name": "Chevaucher (Demigriffon)",
"description": "<p>C'est la façon dont vous maîtrisez le fait de chevaucher des Demigriffon. Vous aurez besoin de faire un Test uniquement lorsque vous voudrez effectuer quelque chose d'inhabituel, comme une course, du dressage, traverser un terrain dangereux ou charger en combat. Autrement, si vous possédez la Compétence, vous êtes considéré comme capable de chevaucher sans avoir besoin de Test.</p>\n<p>&nbsp;</p>\n<p>Si vous êtes monté sur un destrier, vous vous déplacez en utilisant les statistiques de Mouvement du destrier ; si vous voulez courir, sauter, ou bondir, vous utilisez votre compétence Chevaucher, et pas Athlétisme. Un Test de Chevaucher étendu peut être nécessaire si vous vous rendez quelque part, le DR cible dépendant de la longueur du voyage, et le nombre de Tests indiquant combien de temps vous mettez à arriver. Un Test de Chevaucher peut être modifié par les conditions environnementales et le tempérament de la monture. Pour plus d'information sur les montures, voir le Chapitre 12 : Bestiaire. Le Compétence Chevaucher peut être activement utilisée en combat. Voir Chapitre 5 : Règles pour plus d'informations sur le combat monté.</p>"
},
{
"id": "Ride (Great Wolf)",
@ -733,7 +733,7 @@
},
{
"id": "Secret Signs (Scout)",
"name": "Signes secrets (Guetteur)",
"name": "Signes secrets (Eclaireur)",
"description": "<p>Vous avez été formé à utiliser des marques clandestines intelligibles pour les membres d'un groupe sélectionné. Les raisons pour lesquelles quelqu'un peut vouloir délivrer un message secret sont nombreuses : les vagabonds peuvent indiquer quels propriétaires sont susceptibles d'offrir la charité, les voleurs peuvent vouloir indiquer des failles, ou des cibles potentielles, alors que les guetteurs peuvent vouloir alerter les autres sur l'emplacement proche d'un monstre dangereux.</p>\n<p>&nbsp;</p>\n<p>Cette Compétence ne nécessite généralement pas de Test - vous pouvez déchiffrer n'importe quels signes appropriés que vous pouvez voir si vous possédez cette Compétence. Mais si les signes ont été modifiés, effacés, ou si vous êtes pressé par le temps, un Test sera probablement nécessaire. La plupart des messages sont très simples, et ne comptent pas plus de trois mots.</p>\n <p>&nbsp;</p>\n <p><strong>Guetteur : </strong>Utilisés par les éclaireurs, en particuliers ceux engagés par les compagnies militaires et mercenaires. Les signes sont le plus souvent utilisés pour signaler des zones de ravitaillement, les itinéraires pour les convois de nourriture, et les dangers notables en amont.</p>\n <p>&nbsp;</p>"
},
{
@ -808,7 +808,7 @@
},
{
"id": "Trade (Calligrapher)",
"name": "Métier (Calligraphie)",
"name": "Métier (Calligraphe)",
"description": "<p>Beaucoup de gens au Reikland embrassent une profession ; même les aventuriers ont souvent une Carrière plus fiable ou plus respectable sur laquelle compter entre deux épisodes palpitants. La Compétence Métier représente votre capacité à créer quelque chose ou à fournir un service, ainsi que votre connaissance du savoir essentiel entourant votre profession.</p>\n<p>&nbsp;</p>\n<p>Posséder la Compétence est suffisant pour effectuer automatiquement les tâches associées à votre profession, en partant du principe que vous possédez les ressources et des outils adaptés. Vous avez besoin d'effectuer un Test de Métier uniquement si vous cherchez à créer quelque chose rapidement, que les conditions sont défavorables ou que vous cherchez à inventer ou créer un objet de grande qualité.</p>\n<p>&nbsp;</p>\n<p>Les Tests de Métier de ce type sont souvent des Tests étendus, dont le DR et le temps nécessaires dépendent de la portée ou de l'ampleur de ce qui est produit ; un repas rapide avec Métier (Cuisinier) pour impressionner un seigneur local prendra bien moins de temps que la construction d'un navire de guerre avec Métier (Charpentier de marine).</p>\n<p>&nbsp;</p>\n<p>Vous pouvez aussi effectuer un Test de Métier comme une Compétence Savoir pour déterminer une information importante concernant la profession en question. Dans de telles circonstances, le MJ peut préférer utiliser l'Int plutôt que la Dex comme Caractéristique de base, bien que cela soit souvent ignoré pour simplifer.</p>\n<p>&nbsp;</p>\n<p>Bien que beaucoup de Compétences Métier aient peu d'utilité en combat, il y a autant de Compétences Métier que de professions, et certaines peuvent être utilisées en fonction des circonstances. Par exemple, réussir un Test de Métier (Apothicaire) peut être utile si vous combattez dans une échoppe d'Apothicaire, car vous identifiez des substances âcres à jeter sur vos ennemis.</p>\n<p>&nbsp;</p>\n<p>La Compétence Métier est aussi utilisée pour effectuer une Activité Artisanat (voir page 196).</p>"
},
{
@ -827,7 +827,7 @@
"description": "<p>Beaucoup de gens au Reikland embrassent une profession ; même les aventuriers ont souvent une Carrière plus fiable ou plus respectable sur laquelle compter entre deux épisodes palpitants. La Compétence Métier représente votre capacité à créer quelque chose ou à fournir un service, ainsi que votre connaissance du savoir essentiel entourant votre profession.</p>\n<p>&nbsp;</p>\n<p>Posséder la Compétence est suffisant pour effectuer automatiquement les tâches associées à votre profession, en partant du principe que vous possédez les ressources et des outils adaptés. Vous avez besoin d'effectuer un Test de Métier uniquement si vous cherchez à créer quelque chose rapidement, que les conditions sont défavorables ou que vous cherchez à inventer ou créer un objet de grande qualité.</p>\n<p>&nbsp;</p>\n<p>Les Tests de Métier de ce type sont souvent des Tests étendus, dont le DR et le temps nécessaires dépendent de la portée ou de l'ampleur de ce qui est produit ; un repas rapide avec Métier (Cuisinier) pour impressionner un seigneur local prendra bien moins de temps que la construction d'un navire de guerre avec Métier (Charpentier de marine).</p>\n<p>&nbsp;</p>\n<p>Vous pouvez aussi effectuer un Test de Métier comme une Compétence Savoir pour déterminer une information importante concernant la profession en question. Dans de telles circonstances, le MJ peut préférer utiliser l'Int plutôt que la Dex comme Caractéristique de base, bien que cela soit souvent ignoré pour simplifer.</p>\n<p>&nbsp;</p>\n<p>Bien que beaucoup de Compétences Métier aient peu d'utilité en combat, il y a autant de Compétences Métier que de professions, et certaines peuvent être utilisées en fonction des circonstances. Par exemple, réussir un Test de Métier (Apothicaire) peut être utile si vous combattez dans une échoppe d'Apothicaire, car vous identifiez des substances âcres à jeter sur vos ennemis.</p>\n<p>&nbsp;</p>\n<p>La Compétence Métier est aussi utilisée pour effectuer une Activité Artisanat (voir page 196).</p>"
},
{
"id": "Trade (Embalmber)",
"id": "Trade (Embalmer)",
"name": "Métier (Embaumeur)",
"description": "<p>Beaucoup de gens au Reikland embrassent une profession ; même les aventuriers ont souvent une Carrière plus fiable ou plus respectable sur laquelle compter entre deux épisodes palpitants. La Compétence Métier représente votre capacité à créer quelque chose ou à fournir un service, ainsi que votre connaissance du savoir essentiel entourant votre profession.</p>\n<p>&nbsp;</p>\n<p>Posséder la Compétence est suffisant pour effectuer automatiquement les tâches associées à votre profession, en partant du principe que vous possédez les ressources et des outils adaptés. Vous avez besoin d'effectuer un Test de Métier uniquement si vous cherchez à créer quelque chose rapidement, que les conditions sont défavorables ou que vous cherchez à inventer ou créer un objet de grande qualité.</p>\n<p>&nbsp;</p>\n<p>Les Tests de Métier de ce type sont souvent des Tests étendus, dont le DR et le temps nécessaires dépendent de la portée ou de l'ampleur de ce qui est produit ; un repas rapide avec Métier (Cuisinier) pour impressionner un seigneur local prendra bien moins de temps que la construction d'un navire de guerre avec Métier (Charpentier de marine).</p>\n<p>&nbsp;</p>\n<p>Vous pouvez aussi effectuer un Test de Métier comme une Compétence Savoir pour déterminer une information importante concernant la profession en question. Dans de telles circonstances, le MJ peut préférer utiliser l'Int plutôt que la Dex comme Caractéristique de base, bien que cela soit souvent ignoré pour simplifer.</p>\n<p>&nbsp;</p>\n<p>Bien que beaucoup de Compétences Métier aient peu d'utilité en combat, il y a autant de Compétences Métier que de professions, et certaines peuvent être utilisées en fonction des circonstances. Par exemple, réussir un Test de Métier (Apothicaire) peut être utile si vous combattez dans une échoppe d'Apothicaire, car vous identifiez des substances âcres à jeter sur vos ennemis.</p>\n<p>&nbsp;</p>\n<p>La Compétence Métier est aussi utilisée pour effectuer une Activité Artisanat (voir page 196).</p>"
},

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -85,13 +85,13 @@
{
"description": "",
"effects": [],
"id": "Baton ",
"id": "Baton",
"name": "Baton "
},
{
"description": "<p>Les Test de Résistance effectués pour résister au foid (cf. page 181) gagnent un bonus de +20 quand vous l'utilisez pour vous reposer.</p>",
"effects": [],
"id": "Bedroll ",
"id": "Bedroll",
"name": "Sac de couchage "
},
{
@ -226,8 +226,8 @@
{
"description": "<p>Une chope de cervoise de Burgman compte pour 4 chopes de cervoise normale pour le calcul de l'intoxication (cf page 129), et confère une immunité aux Tests de Peur pour 1d10 heures.</p>",
"effects": [],
"id": "Bugmans XXXXXX Ale, pint ",
"name": "Cervoise de Bugman, pinte "
"id": "Bugmans XXXXXX Ale, pint",
"name": "Cervoise de Bugman, pinte"
},
{
"description": "",
@ -332,7 +332,7 @@
},
{
"description": "",
"id": "Courtly Garb ",
"id": "Courtly Garb",
"name": "Habit de Cour"
},
{
@ -494,7 +494,9 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de Faxtoryll\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet bleeding = this.actor.hasCondition(\"bleeding\")\nif (bleeding)\n{\n ui.notifications.notify(`Cleared ${bleeding.flags.wfrp4e.value} Bleeding Conditions`)\n this.actor.removeCondition(\"bleeding\", bleeding.flags.wfrp4e.value)\n}"
"reduceQuantity":true,
"hide":false,
"script": "let bleeding = this.actor.hasCondition(\"bleeding\")\nif (bleeding){\nui.notifications.notify(`Suppression ${bleeding.flags.wfrp4e.value} d'états Hemoragiques`)\nthis.actor.removeCondition(\"bleeding\", bleeding.flags.wfrp4e.value)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/faxtoryll.png",
@ -651,7 +653,9 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de potions\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet wounds = this.actor.data.data.status.wounds\nif (wounds.value == 0)\n return ui.notifications.error(\"Aucun effet à 0 points de blessure\")\nwounds.value += this.actor.data.data.characteristics.t.bonus\n\nui.notifications.notify(`Healed ${this.actor.data.data.characteristics.t.bonus} Wounds`)\n\nif (wounds.value > wounds.max)\n wounds.value = wounds.max\n\nthis.actor.update({\"data.status.wounds\" : wounds})"
"reduceQuantity":true,
"hide":false,
"script": "let wounds = this.actor.status.wounds\nif (wounds.value == 0) return ui.notifications.error(\"Aucun effet à 0 Blessures\")\nui.notifications.notify(`Guérison de ${this.actor.characteristics.t.bonus} Blessures`)\nthis.actor.modifyWounds(this.actor.characteristics.t.bonus)"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/healing-draught.png",
@ -1006,8 +1010,8 @@
{
"description": "",
"effects": [],
"id": "Nails ",
"name": "Clous "
"id": "Nails",
"name": "Clous"
},
{
"description": "<p>La consommation de cette herbe plonge la victime dans un profond sommeil au bout de 2-3 heures, à moins qu'elle ne réussisse un <strong>Test de Résistance</em>. Un sommeil induit par la Belladone dure 1d10+4 heures. Dose : 1 par personne.</p>",
@ -1356,7 +1360,9 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de Soude Commune disponible\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet stunned= this.actor.hasCondition(\"stunned\")\nif (stunned)\n{\n ui.notifications.notify(`Un Etat Assomé a été enlevé`)\n this.actor.removeCondition(\"stunned\", 1)\n}"
"reduceQuantity":true,
"hide":false,
"script": "let stunned= this.actor.hasCondition(\"stunned\")\nif (stunned) {\nui.notifications.notify(`1 état Assommé enlevé`)\nthis.actor.removeCondition(\"stunned\", 1)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/salwort.png",
@ -1592,7 +1598,9 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de potion disponible\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet fatigued = this.actor.hasCondition(\"fatigued\")\nif (fatigued)\n{\n ui.notifications.notify(`${fatigued.flags.wfrp4e.value} Etats Extenué enlevés`)\n this.actor.removeCondition(\"fatigued\", fatigued.flags.wfrp4e.value)\n}"
"reduceQuantity":true,
"hide":false,
"script": "let fatigued= this.actor.hasCondition(\"fatigued\")\nif (fatigued){\nui.notifications.notify(`Suppression de ${fatigued.conditionValue} étast Extenués`)\nthis.actor.removeCondition(\"fatigued\", fatigued.conditionValue)}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/vitality-draught.png",
@ -1648,7 +1656,7 @@
"effectApplication": "apply",
"effectTrigger": "prefillDialog",
"preventDuplicateEffects": false,
"script": "if (args.type == \"characteristic\") {\n if (args.item == \"wp\" || args.item == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item == \"ag\" || args.item == \"i\" || args.item == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"skill\") {\n if (args.item.data.characteristic.value == \"wp\" || args.item.data.characteristic.value == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item.data.characteristic.value == \"ag\" || args.item.data.characteristic.value == \"i\" || args.item.data.characteristic.value == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"cast\") {\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"channelling\") {\n args.prefillModifiers.modifier += 10\n}"
"script": "if (args.type == \"characteristic\") {\n if (args.item == \"wp\" || args.item == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item == \"ag\" || args.item == \"i\" || args.item == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"skill\") {\n if (args.item.characteristic.value == \"wp\" || args.item.characteristic.value == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item.characteristic.value == \"ag\" || args.item.characteristic.value == \"i\" || args.item.characteristic.value == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"cast\") {\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"channelling\") {\n args.prefillModifiers.modifier += 10\n}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/drugs_and_poisons/weirdroot.png",
@ -1704,6 +1712,18 @@
"effects": [],
"id": "Zweihander",
"name": "Zweihander"
},
{
"description": "",
"effects": [],
"id": "Costume",
"name": "Costume"
},
{
"description": "",
"effects": [],
"id": "Crutch",
"name": "Béquille"
}
]
}

View File

@ -322,7 +322,7 @@
{
"id": "Luxury Cabin",
"name": "Luxury Cabin",
"description": "<p>The Empire&rsquo;s wealthy like to travel in comfort and the kind of cabin that one finds on a noble&rsquo;s barge is very different from one on a trading or passenger vessel. For the indicated cost, and taking the space of two normal cabins, a traveller can ply the rivers in comfort and style. At your discretion, any <strong>Fellowship </strong>Tests made by the owner of a luxury cabin gain a +10 bonus, provided they are made within the cabin itself.</p>"
"description": "<p>The Empire&rsquo;s wealthy like to travel in comfort and the kind of cabin that one finds on a noble&rsquo;s barge is very different from one on a trading or passenger vessel. For the indicated cost, and taking the space of two normal cabins, a traveller can ply the rivers in comfort and style. At your discretion, any <strong>Fellowship </strong>Tests made by the.isOwner of a luxury cabin gain a +10 bonus, provided they are made within the cabin itself.</p>"
},
{
"id": "Mage-Leaf",
@ -357,27 +357,27 @@
{
"id": "Racing Hull",
"name": "Racing Hull",
"description": "<p>Wealthy nobles are addicted to contests and wagering, as everyone knows. In an effort to outdo their fellows, some wealthy boat owners have sunk immense sums into research and craftsmanship, in search of the perfect hull shape for speed. A racing hull is as smooth as glass and cunningly shaped to reduce drag to a bare minimum, allowing the boat to travel at up to twice its normal Movement rate.</p>\n<p>A boat with a racing hull is tricky to control, though, and requires a <strong>Difficult (&minus;10) Boat Handling</strong> Test every hour. On a Marginal (&minus;1 SL) or Normal Failure, Movement cannot exceed the normal rate; on an Impressive Failure (&minus;4 SL), Movement is half normal; and on an Astounding Failure (&minus;6 SL or less), the hull is damaged and the boat cannot exceed half normal Movement until it is repaired at a cost equal to half the cost of the hull, as above.</p>\n<p>Normal repairs to a racing hull cost twice the @JournalEntry[Repairing Boats]{normal rate given}, and require finer craftsmanship: all relevant Tests are one step more difficult than usual.</p>\n<blockquote>\n<p><strong>Foundry Note:&nbsp;</strong><em>Encumbrance and Price reflects 10 ft. of length. Modify this item according to the ship it's being applied to.</em></p>\n</blockquote>"
"description": "<p>Wealthy nobles are addicted to contests and wagering, as everyone knows. In an effort to outdo their fellows, some wealthy boat.isOwners have sunk immense sums into research and craftsmanship, in search of the perfect hull shape for speed. A racing hull is as smooth as glass and cunningly shaped to reduce drag to a bare minimum, allowing the boat to travel at up to twice its normal Movement rate.</p>\n<p>A boat with a racing hull is tricky to control, though, and requires a <strong>Difficult (&minus;10) Boat Handling</strong> Test every hour. On a Marginal (&minus;1 SL) or Normal Failure, Movement cannot exceed the normal rate; on an Impressive Failure (&minus;4 SL), Movement is half normal; and on an Astounding Failure (&minus;6 SL or less), the hull is damaged and the boat cannot exceed half normal Movement until it is repaired at a cost equal to half the cost of the hull, as above.</p>\n<p>Normal repairs to a racing hull cost twice the @JournalEntry[Repairing Boats]{normal rate given}, and require finer craftsmanship: all relevant Tests are one step more difficult than usual.</p>\n<blockquote>\n<p><strong>Foundry Note:&nbsp;</strong><em>Encumbrance and Price reflects 10 ft. of length. Modify this item according to the ship it's being applied to.</em></p>\n</blockquote>"
},
{
"id": "Racing Rig (Fishing Skiff)",
"name": "Racing Rig (Fishing Skiff)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Fishing Skiff)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all <strong>Boat Handling</strong> Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Fishing Skiff)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all <strong>Boat Handling</strong> Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Racing Rig (Large Barge)",
"name": "Racing Rig (Large Barge)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Large Barge)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Large Barge)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Racing Rig (Row Boat)",
"name": "Racing Rig (Row Boat)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Row Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Row Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Racing Rig (Typical Barge or Patrol Boat)",
"name": "Racing Rig (Typical Barge or Patrol Boat)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Typical Barge or Patrol Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Typical Barge or Patrol Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Raised Gunwales (Fishing Skiff)",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,178 +1,479 @@
{
"label": "Sorts Ennemi Intérieur",
"mapping": {
"sduration": {
"path": "data.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"converter": "spells_duration_range_target_damage"
}
},
"mapping": {
"sduration": {
"path": "data.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"converter": "spells_duration_range_target_damage"
},
"effets": "effects"
},
"entries": [
{
"id": "Blast of Corruption (Tzeentch)",
"name": "Explosion de Corruption (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous focalisez une magie impie sous la forme dune explosion corruptrice. Il sagit dun projectile magique avec Dégâts +5 qui cible toutes les personnes dans la Zone dEffet. Toutes les personnes touchées par le sort doivent réussir un test d'</span><span class=\"fontstyle2\">Endurance Intermédiaire (+0)</span><span class=\"fontstyle0\">,ou gagner + 1 point de Corruption.</span></p>"
},
{
"id": "Blast of Corruption (Undivided)",
"name": "Explosion de Corruption (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vous focalisez une magie impie sous la forme dune explosion corruptrice. Il sagit dun projectile magique avec Dégâts +5 qui cible toutes les personnes dans la Zone dEffet. Toutes les personnes touchées par le sort doivent réussir un test d'</span><span class=\"fontstyle2\">Endurance Intermédiaire (+0)</span><span class=\"fontstyle0\">,ou gagner + 1 point de Corruption.</span></p>"
},
{
"id": "Blue Fire of Tzeentch",
"name": "Flamme Bleue de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Vos paroles conjurent une sphère tourbillonnante de flammes bleues étincelantes qui dévore vos ennemis. </span><em><span class=\"fontstyle2\">Flamme Bleue de Tzeentch</span></em><span class=\"fontstyle0\">est un</span><em><span class=\"fontstyle2\">projectile magique</span></em><span class=\"fontstyle0\">. . Toutes les personnes situées dans une distance de Bonus dInitiative mètre de votre cible subissent un coup de Dégâts +3 et gagnent +1 Etat </span><em><span class=\"fontstyle2\">En Flammes </span></em><span class=\"fontstyle0\">.<br></span></p>\n<p><span class=\"fontstyle0\">Si un Personnage de taille Petite ou supérieure est amené à 0<br>Blessures par le sort, ou sous leffet dun Etat <em>En Flammes</em> dû à la</span><em><span class=\"fontstyle2\">Flamme Bleue de Tzeentch</span></em><span class=\"fontstyle0\">, jetez un <strong><a class=\"chat-roll\">1d10</a></strong>. Sur un résultat de 9, deux Horreurs Bleues surgissent du corps, dévorant la chair hurlante du Personnage, qui meurt sur le coup.</span></p>"
},
{
"id": "Bolt of Change",
"name": "Eclair de Changement",
"description": "<p><span class=\"fontstyle0\">Un éclair palpitant dénergie chaotique déchire lair. </span><em><span class=\"fontstyle2\">Eclair de Changement </span></em><span class=\"fontstyle0\">est un</span><em><span class=\"fontstyle2\">projectile magique</span></em><span class=\"fontstyle0\">, avec Dégâts +7. Toutes les personnes touchées par le sort doivent réussir un test d</span><strong><span class=\"fontstyle3\">Endurance Intermédiaire (+0)</span></strong><span class=\"fontstyle0\">. En cas déchec, la cible gagne un point de corruption. En cas déchec critique, la cible effectue un lancer sur le tableau des Mutations, et gagne le talent &nbsp;</span><span class=\"fontstyle2\">@Compendium[wfrp4e.talents.hiU7vhBOVpVI8c7C]{Chaos Magic (Tzeentch)}&nbsp; </span><span class=\"fontstyle0\">. Un Personnage touché par ce sort peut dépenser un point de Détermination pour résister à la mutation.</span>&nbsp;</p>"
},
{
"id": "Bolt of Corruption (Tzeentch)",
"name": "Eclair de Corruption (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous focalisez une sombre magie dans un éclair destructeur et corrosif. Il sagit dun projectile magique avec Dégâts +5. Toutes les personnes touchées par le sort doivent réussir un test d</span><span class=\"fontstyle2\">Endurance Intermédiaire (+0)</span><span class=\"fontstyle0\">,ou gagner 1 point de Corruption.</span></p>"
},
{
"id": "Bolt of Corruption (Undivided)",
"name": "Eclair de Corruption (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vous focalisez une sombre magie dans un éclair destructeur et corrosif. Il sagit dun projectile magique avec Dégâts +5. Toutes les personnes touchées par le sort doivent réussir un test d</span><span class=\"fontstyle2\">Endurance Intermédiaire (+0)</span><span class=\"fontstyle0\">,ou gagner 1 point de Corruption.</span></p>"
},
{
"id": "Boon of Tzeentch",
"name": "Aubaine de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Vos paroles, imprégnées par la prescience labyrinthique de lArchitecte des Destinées, tordent votre esprit, vous donnant accès à un nouveau domaine darcane. Choisissez un sort provenant de nimporte quel Domaine (pour maintenir une fluidité de jeu, le Conteur peut fixer une limite de neuf secondes pour la décision).Tant qu</span><em><span class=\"fontstyle2\">Aubaine de Tzeentch </span></em><span class=\"fontstyle0\">est actif, vous pouvez incanter ce nouveau sort comme si vous laviez mémorisé, mais sans pouvoir le copier dans un grimoire, un parchemin, ou autre. Si vous focalisez pour incanter, vous pouvez utiliser au choix Focalisation (</span><em><span class=\"fontstyle2\">Dhar</span></em><span class=\"fontstyle0\">) ou la focalisation adaptée au domaine du sort, si vous la possédez. <br></span></p>\n<p><span class=\"fontstyle0\">En cas dincantation imparfaite en focalisant ou incantant ce nouveau sort, le sort </span><em><span class=\"fontstyle2\">Aubaine de Tzeentch </span></em><span class=\"fontstyle0\">quitte votre esprit avec dégout et sefface de votre grimoire si jamais il avait autorisé son écriture à lintérieur de celui-ci.</span></p>"
},
{
"id": "Curse of Tzeentch",
"name": "Malédiction de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Dans le Domaine de Tzeentch, tous les sorts proviennent en dernière instance de la volonté du Dieu et à ce titre ils lui appartiennent. En utilisant ce sort, un magus de Tzeentch peut amener un autre sorcier à perdre la connaissance et la capacité à incanter un sort quil avait déjà maitrisé.<br></span></p>\n<p><span class=\"fontstyle0\">Si lincantation de la Malédiction de Tzeentch est réussie, le magus doit réussir un test opposé de </span><span class=\"fontstyle2\"><strong>Force Mentale</strong> </span><span class=\"fontstyle0\"> contre la cible. En cas de réussite, la cible perd laccès à un sort aléatoirement choisi. Les effets de la Malédiction de Tzeentch durent un jour par DR obtenu au test opposé.</span></p>"
"id": "Demonic Mien (Undivided)",
"name": "Allure Démoniaque (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez le pouvoir de transformation du Chaos dans votre propre chair, sacrifiant temporairement votre forme mortelle sur lautel de la volonté de votre dieu. Votre corps est déformé, prenant les aspects dun démon loyal à votre dieu protecteur. Lancez 1d10 sur le <a class=\"table-click\" data-table=\"demonic-mien\">Tableau de la page 78</a>, et appliquez le Trait pertinent pour toute la durée du Sort. Pour chaque +2 DR, vous pouvez à la fois prolonger la durée et refaire un jet sur le Tableau. Si vous obtenez le Trait <span class=\"fontstyle3\">@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]Démoniaque</span> et que vous êtes réduit à 0 Blessure, votre âme est aspirée dans les Royaumes du Chaos, comme décrit dans les règles des Traits de créature.</span></p>",
"effets": []
},
{
"id": "Demonic Mien (Tzeentch)",
"name": "Aspect Démoniaque (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez la puissance mutagène du Chaos dans votre propre chair, sacrifiant temporairement votre enveloppe mortelle pour en faire un autel à la volonté de votre de dieu. Votre corps est déformé, arborant des traits dun démon serviteur de votre divinité patronne. Jetez 1d10 sur la table <a class=\"table-click\" data-table=\"demonic-mien\"> Demonic Miens </a>et appliquez les traits adaptés pour la durée du sort. Pour chaque +2 </span><span class=\"fontstyle2\">DR </span><span class=\"fontstyle0\">vous pouvez étendre la durée du sort et lancer à nouveau 1d10 sur la table Demonic Miens. Si vous obtenez le trait&nbsp;</span><span class=\"fontstyle3\">@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]{Daemonic}&nbsp;</span><span class=\"fontstyle0\"> et que vous tombez à 0 Blessures, votre âme est aspirée dans les Royaumes du Chaos comme décrit dans les règles concernant les Traits de Créatures.</span></p>"
},
{
"id": "Demonic Mien (Undivided)",
"name": "Aspect Démoniaque (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez la puissance mutagène du Chaos dans votre propre chair, sacrifiant temporairement votre enveloppe mortelle pour en faire un autel à la volonté de votre de dieu. Votre corps est déformé, arborant des traits dun démon serviteur de votre divinité patronne. Jetez 1d10 sur la table <a class=\"table-click\" data-table=\"demonic-mien\"> Demonic Miens </a>et appliquez les traits adaptés pour la durée du sort. Pour chaque +2 </span><span class=\"fontstyle2\">DR </span><span class=\"fontstyle0\">vous pouvez étendre la durée du sort et lancer à nouveau 1d10 sur la table Demonic Miens. Si vous obtenez le trait&nbsp;</span><span class=\"fontstyle3\">@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]{Daemonic}&nbsp;</span><span class=\"fontstyle0\"> et que vous tombez à 0 Blessures, votre âme est aspirée dans les Royaumes du Chaos comme décrit dans les règles concernant les Traits de Créatures.</span></p>"
},
{
"id": "Foul Messenger (Tzeentch)",
"name": "Messager Infect (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous conjurez devant vous une horde de démons mineurs enchainés à votre volonté. La forme des démons variera selon votre divinité. Les démons transporteront un cout message (environ 25 mots) à votre cible. Ceux-ci voyagent instantanément, sont invisibles (et inaudibles) pour tout le monde sauf pour ceux avec le talent</span><span class=\"fontstyle2\">Seconde Vue</span><span class=\"fontstyle0\"> ceci même au moment où ils transmettent leur message. Toute personne avec le talent peut faire un test de </span><strong><span class=\"fontstyle3\">Perception Difficile Difficile (-20)</span></strong><span class=\"fontstyle0\"><strong>Test</strong> pour repérer la horde et entendre leur message. Pour chaque +2DR obtenu vous pouvez doubler la longueur du message.</span></p>"
},
{
"id": "Foul Messenger (Undivided)",
"name": "Messager Infect (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vous conjurez devant vous une horde de démons mineurs enchainés à votre volonté. La forme des démons variera selon votre divinité. Les démons transporteront un cout message (environ 25 mots) à votre cible. Ceux-ci voyagent instantanément, sont invisibles (et inaudibles) pour tout le monde sauf pour ceux avec le talent</span><span class=\"fontstyle2\">Seconde Vue</span><span class=\"fontstyle0\"> ceci même au moment où ils transmettent leur message. Toute personne avec le talent peut faire un test de </span><strong><span class=\"fontstyle3\">Perception Difficile Difficile (-20)</span></strong><span class=\"fontstyle0\"><strong>Test</strong> pour repérer la horde et entendre leur message. Pour chaque +2DR obtenu vous pouvez doubler la longueur du message.</span></p>"
},
{
"id": "Joyous Aspect (Tzeentch)",
"name": "Aspect Joyeux (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Le magus entoure la cible (éventuellement lui-même) dune coiffe corrompue de </span><em><span class=\"fontstyle2\">Dhar</span></em><span class=\"fontstyle0\">teinté d </span><em><span class=\"fontstyle2\">Ulgu</span></em><span class=\"fontstyle0\">, ce qui lenveloppe dune aura de dissimulation. Tant que le sort fait effet, la cible apparait sans défaut ni imperfections. Les cicatrices, les déformations et, plus important, les mutations deviennent indétectables sauf par des moyens divins.&nbsp;</span></p>\n<p><span class=\"fontstyle0\">Bien que les déformations les plus visibles soient cachées, la cible peut apparaitre étrange ou bizarre, comme débordante de vitalité ou fabuleusement attrayante. Réussir un test de </span><strong><span class=\"fontstyle2\"> Perception Difficile (-20)</span></strong><span class=\"fontstyle0\"><strong>Test</strong> révèle que quelque chose nest pas normal, sans pour autant préciser ce que cest. Pour les Personnages avec le talent </span><em><span class=\"fontstyle3\">Seconde Vue </span></em><span class=\"fontstyle0\"> le test es&nbsp; <strong>C</strong></span><strong><span class=\"fontstyle2\">Intermédiaire (+0)</span></strong><span class=\"fontstyle0\">. En cas de succès, les personnages auront conscience quun sort est présent mais pas de ce quil dissimule.</span> </p>"
"name": "Allure Démoniaque (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez le pouvoir de transformation du Chaos dans votre propre chair, sacrifiant temporairement votre forme mortelle sur lautel de la volonté de votre dieu. Votre corps est déformé, prenant les aspects dun démon loyal à votre dieu protecteur. Lancez 1d10 sur le <a class=\"table-click\" data-table=\"demonic-mien\">Tableau de la page 78</a>, et appliquez le Trait pertinent pour toute la durée du Sort. Pour chaque +2 DR, vous pouvez à la fois prolonger la durée et refaire un jet sur le Tableau. Si vous obtenez le Trait <span class=\"fontstyle3\">@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]Démoniaque</span> et que vous êtes réduit à 0 Blessure, votre âme est aspirée dans les Royaumes du Chaos, comme décrit dans les règles des Traits de créature.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Joyous Aspect (Undivided)",
"name": "Aspect Joyeux (Undivided)",
"description": "<p><span class=\"fontstyle0\">Le magus entoure la cible (éventuellement lui-même) dune coiffe corrompue de </span><em><span class=\"fontstyle2\">Dhar</span></em><span class=\"fontstyle0\">teinté d </span><em><span class=\"fontstyle2\">Ulgu</span></em><span class=\"fontstyle0\">, ce qui lenveloppe dune aura de dissimulation. Tant que le sort fait effet, la cible apparait sans défaut ni imperfections. Les cicatrices, les déformations et, plus important, les mutations deviennent indétectables sauf par des moyens divins.&nbsp;</span></p>\n<p><span class=\"fontstyle0\">Bien que les déformations les plus visibles soient cachées, la cible peut apparaitre étrange ou bizarre, comme débordante de vitalité ou fabuleusement attrayante. Réussir un test de </span><strong><span class=\"fontstyle2\"> Perception Difficile (-20)</span></strong><span class=\"fontstyle0\"><strong>Test</strong> révèle que quelque chose nest pas normal, sans pour autant préciser ce que cest. Pour les Personnages avec le talent </span><em><span class=\"fontstyle3\">Seconde Vue </span></em><span class=\"fontstyle0\"> le test es&nbsp; <strong>C</strong></span><strong><span class=\"fontstyle2\">Intermédiaire (+0)</span></strong><span class=\"fontstyle0\">. En cas de succès, les personnages auront conscience quun sort est présent mais pas de ce quil dissimule.</span> </p>"
"name": "Aspect Sublimé (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Le lanceur de sorts imprègne la Cible (peut-être lui-même) avec un vernis corrompu d<i>Ulgu</i> infusé par <i>Dhar</i>, lenveloppant dans une aura de dissimulation. Tant que le Sort est en vigueur, la Cible apparaît sans défaut, ni tache. Les cicatrices, les difformités et, surtout, les Mutations sont indétectables, sauf par des moyens divins. Si les vices évidents sont cachés, les Cibles peuvent paraître étranges ou excentriques, trop débordantes de vie ou anormalement séduisantes. La réussite dun Test de <strong>Perception Difficile (-20)</strong> révèle que quelque chose ne va pas, mais sans révéler quoi. Pour les Personnages possédant le Talent Seconde vue, le Test est <strong>Intermédiaire (+0)</strong>, et sils le réussissent, ils se rendront compte quun Sort est en place, mais pas ce quil dissimule.</span> </p>",
"effets": []
},
{
"id": "Master of Fortune",
"name": "Maître de la Chance",
"description": "<p><span class=\"fontstyle0\">Les magus de Tzeentch négocient souvent avec leur maitre pour que ce dernier leur fournisse des aperçus de leur potentiel destin. Faire de la divination sur ce sujet est dangereux car Tzeentch est un dieu capricieux, même à lencontre de ses serviteurs favoris. Une fois que le sort est lancé, il ne peut plus être lancé à nouveau avant que sa durée expire.</span></p>\n<p><span class=\"fontstyle0\"><br>. Lesultat est déterminé par un test de </span><strong><span class=\"fontstyle2\">Langage (Magick) </span></strong><span class=\"fontstyle0\"> nécessaire pour incanter le sort. Pour chaque DR sur ce jet, le magus bénéficie dun point de Fortune utilisable normalement pendant toute la durée du sort. Cependant, si lincantation échoue, le magus reçoit 1 point de corruption pour chaque degré déchec, alors que son esprit est troublé par des échos issus la vertigineuse gamme des futurs possibles.</span></p>"
"id": "Joyous Aspect (Tzeentch)",
"name": "Aspect Sublimé (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Le lanceur de sorts imprègne la Cible (peut-être lui-même) avec un vernis corrompu d<i>Ulgu</i> infusé par <i>Dhar</i>, lenveloppant dans une aura de dissimulation. Tant que le Sort est en vigueur, la Cible apparaît sans défaut, ni tache. Les cicatrices, les difformités et, surtout, les Mutations sont indétectables, sauf par des moyens divins. Si les vices évidents sont cachés, les Cibles peuvent paraître étranges ou excentriques, trop débordantes de vie ou anormalement séduisantes. Laussite dun Test de <strong>Perception Difficile (-20)</strong> révèle que quelque chose ne va pas, mais sans révéler quoi. Pour les Personnages possédant le Talent Seconde vue, le Test est <strong>Intermédiaire (+0)</strong>, et sils le réussissent, ils se rendront compte quun Sort est en place, mais pas ce quil dissimule.</span> </p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Mindfire",
"name": "Esprit Enflammé",
"description": "<p><span class=\"fontstyle0\">Lair se déforme autour du bout de vos doigts doù lénergie magique forme un éclair scintillant et brumeux qui peut être projeté sur votre cible. Toute personne affectée par </span><em><span class=\"fontstyle2\">Enflammé </span></em><span class=\"fontstyle0\">doit réussir un test de <strong>C</strong></span><strong><span class=\"fontstyle3\">Calme Intermédiaire (+0)</span></strong><span class=\"fontstyle0\">,ou gagner 1 point de Corruption. Pour chaque +2DR vous pouvez faire que votre cible gagne un point de corruption supplémentaire si le test de Calme a échoué. Si du fait du sort une mutation est déclenchée, la cible lance automatiquement sur la table des <a class=\"table-click\" data-table=\"expandedmutatemental\"> Mental Mutation </a>.Elle gagne en même temps +1 Etat </span><em><span class=\"fontstyle2\">Enflammé </span></em><span class=\"fontstyle0\"> alors que des flammes surnaturelles jaillissent depuis tous les orifices de sa tête.</span></p>"
"id": "Tzeentch's Golden Aura",
"name": "Aura Dorée de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Ce Sort est lun des plus simples et des plus pratiques dans larsenal dun sorcier de Tzeentch. Un tourbillon de feu jaune est invoqué à partir de lAethyr et enveloppe le corps du Lanceur, le protégeant des coups et des projectiles. Tant que le Sort est en vigueur, le Lanceur bénéficie du Trait de créature @Compendium[wfrp4e.traits.Bvd2aZ0gQUXHfCTh]{Protection 9+}.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Obsession (Tzeentch)",
"name": "Obsession (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous devez posséder un objet cher ou précieux appartenant à la cible. Vous enroulez au sein de lobjet une magie infusée avec la matière brute du Chaos qui, à son tour, affecte la cible. Celle-ci devient obsédée par quelque chose : la nature en question de lobsession dépend de la personnalité de la cible et de votre Domaine. Par exemple, incantée depuis le Domaine de Nurgle, </span><em><span class=\"fontstyle2\">Obsession </span></em><span class=\"fontstyle0\">pourrait amener une cible récemment blessée à devenir obsédée par le fait de gratter les croutes de ses blessures. Le domaine de Slaanesh pourrait amener un épicurien ou un gourmand à manger excessivement. </span></p>\n<p><span class=\"fontstyle0\"><br>La cible doit réussir un test d</span><strong><span class=\"fontstyle3\">Endurance Accessible (+20) </span></strong><span class=\"fontstyle0\"><strong>Test</strong> chaque heure ou succomber à son obsession. Sur un échec, les tests suivants deviennent </span><strong><span class=\"fontstyle3\">Intermédiaire (+0)</span></strong><span class=\"fontstyle0\">. Chaque échec supplémentaire rend les futurs tests de plus en plus difficiles, jusque </span><strong><span class=\"fontstyle3\">Très Difficile (-30)</span></strong><span class=\"fontstyle0\">. Si jamais un échec critique survient lors dun de ses test (échouer le jet en faisant un double), la cible devient complétement obsédée. Celle-ci ne peut rien faire que de céder à son obsession peu importe le cout ou les conséquences, et ceci pour 10-Bonus de Force Mentale heures (minimum 1 heure). A la fin du sort, en plus de toutes les conséquences physiques, sociales ou financières, la cible doit réussir un test d </span><strong><span class=\"fontstyle3\">Endurance Intermédiaire (+0) </span></strong><span class=\"fontstyle0\"><strong>Test</strong> ou gagner +1 point de corruption.<br></span></p>\n<p><span class=\"fontstyle0\">Une cible ne peut être affectée quune seule fois par ce sort pour chaque Domaine avec lequel il est incanté. Tout essai supplémentaire provenant du même Domaine sur la même cible avec ce sort na aucun effet.</span> </p>"
"id": "Boon of Tzeentch",
"name": "Avantage de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Vos paroles, imprégnées de la prescience labyrinthique du Changeur de Voies, remodèlent votre esprit, vous donnant accès à de nouvelles connaissances arcaniques. Choisissez un Sort dans nimporte quel Domaine (pour assurer un jeu rapide, le MJ peut imposer une limite de temps de neuf secondes). Pendant que lAvantage de Tzeentch est en vigueur, vous pouvez lancer votre nouveau Sort comme si vous laviez mémorisé, sans pouvoir le transcrire dans un grimoire, un parchemin ou autre. Si vous focalisez pour lancer le nouveau Sort, vous pouvez utiliser soit Focalisation (<i>Dhar</i>), soit la Compétence de Focalisation appropriée au Domaine que le Sort requiert normalement, si vous la possédez. </span></p><p><span class=\"fontstyle0\">Si vous subissez une Incantation Imparfaite lors d'une Focalisation ou d'une Incantation en lançant ce nouveau sort, le sort Avantage de Tzeentch quitte votre esprit avec dégoût, et s'efface également de votre Grimoire si toutefais il y était inscrit.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Obsession (Undivided)",
"name": "Obsession (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vous devez posséder un objet cher ou précieux appartenant à la cible. Vous enroulez au sein de lobjet une magie infusée avec la matière brute du Chaos qui, à son tour, affecte la cible. Celle-ci devient obsédée par quelque chose : la nature en question de lobsession dépend de la personnalité de la cible et de votre Domaine. Par exemple, incantée depuis le Domaine de Nurgle, </span><em><span class=\"fontstyle2\">Obsession </span></em><span class=\"fontstyle0\">pourrait amener une cible récemment blessée à devenir obsédée par le fait de gratter les croutes de ses blessures. Le domaine de Slaanesh pourrait amener un épicurien ou un gourmand à manger excessivement. </span></p>\n<p><span class=\"fontstyle0\"><br>La cible doit réussir un test d</span><strong><span class=\"fontstyle3\">Endurance Accessible (+20) </span></strong><span class=\"fontstyle0\"><strong>Test</strong> chaque heure ou succomber à son obsession. Sur un échec, les tests suivants deviennent </span><strong><span class=\"fontstyle3\">Intermédiaire (+0)</span></strong><span class=\"fontstyle0\">. Chaque échec supplémentaire rend les futurs tests de plus en plus difficiles, jusque </span><strong><span class=\"fontstyle3\">Très Difficile (-30)</span></strong><span class=\"fontstyle0\">. Si jamais un échec critique survient lors dun de ses test (échouer le jet en faisant un double), la cible devient complétement obsédée. Celle-ci ne peut rien faire que de céder à son obsession peu importe le cout ou les conséquences, et ceci pour 10-Bonus de Force Mentale heures (minimum 1 heure). A la fin du sort, en plus de toutes les conséquences physiques, sociales ou financières, la cible doit réussir un test d </span><strong><span class=\"fontstyle3\">Endurance Intermédiaire (+0) </span></strong><span class=\"fontstyle0\"><strong>Test</strong> ou gagner +1 point de corruption.<br></span></p>\n<p><span class=\"fontstyle0\">Une cible ne peut être affectée quune seule fois par ce sort pour chaque Domaine avec lequel il est incanté. Tout essai supplémentaire provenant du même Domaine sur la même cible avec ce sort na aucun effet.</span> </p>"
"id": "Blast of Corruption (Undivided)",
"name": "Décharge de Corruption (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez la Magie noire en un éclair de puissance corrosive. Il sagit dun <i>Projectile magique</i> infligeant Dégâts +6. Les Cibles affectées par le Sort doivent réussir un Test de <strong>Résistance Intermédiaire (+0)</strong>, ou gagner 1 Corruption. /span></p>",
"effets": [
{
"_id": "f0ylOlHNyqtg71Qx",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/undivided.png",
"label": "Décharge de Corruption (Indivisible)",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "oneTime",
"effectApplication": "apply",
"script": "args.actor.setupSkill(\"Résistance\", {context : {failure: \"1 Point de Corruption acquis\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\" && args.actor.data.type == \"character\")\n {\n args.actor.update({\"data.status.corruption.value\" : parseInt(args.actor.status.corruption.value) + 1})\n args.actor.checkCorruption()\n }\n })\n })",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Pink Fire of Tzeentch",
"name": "Flammes Roses de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Des éclairs tourbillonnants de flammes roses forment un arc émergeant depuis vos doigts tendus, ce qui amène la réalité à hurler de détresse. </span><em><span class=\"fontstyle2\">Flammes Roses de Tzeentch </span></em><span class=\"fontstyle0\">est un </span><em><span class=\"fontstyle2\">projectile magique</span></em><span class=\"fontstyle0\">. Les cibles touchées reçoivent un coup de dégâts +6 et gagnent +1 Etat </span><em><span class=\"fontstyle2\">Enflammé </span></em><span class=\"fontstyle0\">.</span></p>\n<p><span class=\"fontstyle0\"><br>Si un Personnage de taille Petite ou supérieure est amené à 0 Blessures par le sort, ou sous leffet dun Etat <em>Enflammé</em> dû aux </span><em><span class=\"fontstyle2\">Flammes Roses de Tzeentch</span></em><span class=\"fontstyle0\">, jetez <strong><a class=\"chat-roll\">1d10</a></strong>. Sur un résultat de 9, une Horreur Rose surgit, dévorant la chair hurlante du Personnage depuis lintérieur. Ce dernier meurt sur le coup.</span></p>"
},
{
"id": "Power of Chaos (Tzeentch)",
"name": "Puissance du Chaos (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous appelez les Puissances de la Ruine pour vous aider dans vos efforts en déchirant une partie de lAethyr. Tous les sorts incantés depuis Bonus de Sociabilité mètre du point ciblé ont leurs NI divisés par deux. Toute personne au sein de la Zone dEffet doit réussir un test d </span><strong><span class=\"fontstyle2\">Endurance Accessible (+20) </span></strong><span class=\"fontstyle0\"><strong></strong>à la fin de chaque round ou gagner + 1 point de Corruption. Toute personne incantant un sort au sein de la Zone dEffet, fait ses tests dincantation à une difficulté </span><span class=\"fontstyle2\"><strong>Accessible (+20)</strong>.</span></p>"
},
{
"id": "Power of Chaos (Undivided)",
"name": "Puissance du Chaos (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vous appelez les Puissances de la Ruine pour vous aider dans vos efforts en déchirant une partie de lAethyr. Tous les sorts incantés depuis Bonus de Sociabilité mètre du point ciblé ont leurs NI divisés par deux. Toute personne au sein de la Zone dEffet doit réussir un test d </span><strong><span class=\"fontstyle2\">Endurance Accessible (+20) </span></strong><span class=\"fontstyle0\"><strong></strong>à la fin de chaque round ou gagner + 1 point de Corruption. Toute personne incantant un sort au sein de la Zone dEffet, fait ses tests dincantation à une difficulté </span><span class=\"fontstyle2\"><strong>Accessible (+20)</strong>.</span></p>"
},
{
"id": "Rend Aethyr (Tzeentch)",
"name": "Déchirement d'Aethyr (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vos paroles immondes et malsaines déchirent le tissu de la réalité, créant une faille dans le monde à travers laquelle les serviteurs des Dieux Sombres sont libres de passer. Une déchirure en forme de portail menant à lAethyr apparait.</span></p>\n<p><span class=\"fontstyle0\"><br>A la fin de chaque tour, un Démon Mineur traverse le portail depuis les Royaumes du Chaos. Ces démons ne sont pas sous votre contrôle mais auront tendance à vous protéger et à attaquer vos ennemis, si cest la volonté de votre maitre impie. Les démons invoqués dépendent de votre domaine du Chaos : Démonettes de Slaanesh, Portepestes de Nurgle, Horreurs de Tzeentch, Sanguinaires de Khorne et, pour les Magus du Chaos (Unifié) des Furies du Chaos. Tant que le sort fait effet, tous les démons invoqués sont immunisés à létat </span><em><span class=\"fontstyle2\">Instable </span></em><span class=\"fontstyle0\">.</span></p>\n<p><span class=\"fontstyle0\"><br>Pour chaque +5 DR vous pouvez augmenter la vitesse darrivée des <br> démons de +1 par tour.</span></p>\n<p><span class=\"fontstyle0\"><br>Les créatures vivantes doivent réussir un test d </span><strong><span class=\"fontstyle3\">Endurance Accessible (+20) </span></strong><span class=\"fontstyle0\"> à la fin de chaque round où la faille est dans leur champ de vision ou gagner +1 point de Corruption. Toute créature vivante suffisamment folle ou malchanceuse pour traverser la faille tombe dans les Royaumes du Chaos et meurt instantanément sauf dépense dun point de Destin. Si cest le cas, ils sont recrachés dans le monde réel, peut-être sauvés par un pouvoir supérieur en vue dun dessein encore inaccompli.</span></p>\n<p><span class=\"fontstyle0\"><br>En cas déchec critique sur lincantation de ce sort, les démons traversant la faille depuis les Royaumes du Chaos sont les serviteurs dune divinité rivale et seront probablement immédiatement hostiles à leur invocateur!</span></p>"
"id": "Blast of Corruption (Tzeentch)",
"name": "Décharge de Corruption (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez la Magie noire en un éclair de puissance corrosive. Il sagit dun <i>Projectile magique</i> infligeant Dégâts +6. Les Cibles affectées par le Sort doivent réussir un Test de Résistance Intermédiaire (+0), ou gagner 1 Corruption. /span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de <strong>Résistance Intermédiaire (+0)</strong> ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "88oX5VldSmMJdpxI",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Décharge de Corruption (Tzeentch)",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "oneTime",
"effectApplication": "apply",
"script": "args.actor.setupSkill(\"Résistance\", {context : {failure: \"1 Point de Corruption acquis\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\" && args.actor.data.type == \"character\")\n {\n args.actor.update({\"data.status.corruption.value\" : parseInt(args.actor.status.corruption.value) + 1})\n args.actor.checkCorruption()\n }\n })\n })",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Rend Aethyr (Undivided)",
"name": "Déchirement d'Aethyr (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vos paroles immondes et malsaines déchirent le tissu de la réalité, créant une faille dans le monde à travers laquelle les serviteurs des Dieux Sombres sont libres de passer. Une déchirure en forme de portail menant à lAethyr apparait.</span></p>\n<p><span class=\"fontstyle0\"><br>A la fin de chaque tour, un Démon Mineur traverse le portail depuis les Royaumes du Chaos. Ces démons ne sont pas sous votre contrôle mais auront tendance à vous protéger et à attaquer vos ennemis, si cest la volonté de votre maitre impie. Les démons invoqués dépendent de votre domaine du Chaos : Démonettes de Slaanesh, Portepestes de Nurgle, Horreurs de Tzeentch, Sanguinaires de Khorne et, pour les Magus du Chaos (Unifié) des Furies du Chaos. Tant que le sort fait effet, tous les démons invoqués sont immunisés à létat </span><em><span class=\"fontstyle2\">Instable </span></em><span class=\"fontstyle0\">.</span></p>\n<p><span class=\"fontstyle0\"><br>Pour chaque +5 DR vous pouvez augmenter la vitesse darrivée des <br> démons de +1 par tour.</span></p>\n<p><span class=\"fontstyle0\"><br>Les créatures vivantes doivent réussir un test d </span><strong><span class=\"fontstyle3\">Endurance Accessible (+20) </span></strong><span class=\"fontstyle0\"> à la fin de chaque round où la faille est dans leur champ de vision ou gagner +1 point de Corruption. Toute créature vivante suffisamment folle ou malchanceuse pour traverser la faille tombe dans les Royaumes du Chaos et meurt instantanément sauf dépense dun point de Destin. Si cest le cas, ils sont recrachés dans le monde réel, peut-être sauvés par un pouvoir supérieur en vue dun dessein encore inaccompli.</span></p>\n<p><span class=\"fontstyle0\"><br>En cas déchec critique sur lincantation de ce sort, les démons traversant la faille depuis les Royaumes du Chaos sont les serviteurs dune divinité rivale et seront probablement immédiatement hostiles à leur invocateur!</span>&nbsp;</p>"
"name": "Déchirer l'Aethyr (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vos mots ignobles et profanes déchirent le tissu de la réalité, creusant une brèche dans le monde, au travers de laquelle les serviteurs des Dieux Sombres sont libres de passer. Un portail déchiqueté vers lAethyr apparaît.</span></p><p><span class=\"fontstyle0\">À la fin de chaque round, un démon mineur traverse le portail depuis les Royaumes du Chaos. Ces démons ne sont pas sous votre contrôle, mais sont susceptibles de vous défendre et dattaquer vos ennemis, si telle est la volonté de votre maître impie. Les démons invoqués dépendent de votre Domaine du Chaos : démonettes de Slaanesh, porte-peste de Nurgle, horreurs de Tzeentch, sanguinaires de Khorne, et, pour les sorciers du Chaos Indivisible, des furies du Chaos. Pendant toute la durée du sort, tous les démons quil invoque sont immunisés aux effets du Trait de créature Instable.</span></p><p><span class=\"fontstyle0\">Pour chaque +5 DR de Surincantation, vous pouvez augmenter le rythme darrivée des démons de +1. </span></p><p><span class=\"fontstyle0\">Les créatures vivantes doivent réussir un Test de <strong>Résistance Accessible (+20)</strong> à la fin de chaque Round où elles voient la déchirure, ou gagner +1 Corruption. Toute créature vivante assez stupide ou malchanceuse pour entrer dans la faille choit dans les Royaumes du Chaos et est immédiatement tuée, à moins quun Point de Destin ne soit dépensé. Dans ce cas, elle est renvoyée dans la réalité, peut-être sauvée par une Puissance quelconque dans un but encore inachevé.</span></p><p><span class=\"fontstyle0\">Si vous ratez lIncantation de ce Sort, les démons qui traversent les Royaumes du Chaos appartiennent à une divinité rivale et peuvent être immédiatement hostiles à leur invocateur !</span></p>",
"effets": []
},
{
"id": "Sense the Skein",
"name": "Sens de la Vie",
"description": "<p><span class=\"fontstyle0\">Vos yeux brillent dune lueur rose et bleue alors que vous prononcez des mots de pouvoir interdits. Vos yeux se dessillent et pendant un court instant, vous percevez le destin interconnecté de toutes les choses. Vous pouvez choisir une cible à portée de vue, et le Conteur révélera la Motivation, lAmbition à Court Terme et lAmbition à Long Terme de celle-ci.</span> </p>"
"id": "Rend Aethyr (Tzeentch)",
"name": "Déchirer l'Aethyr (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vos mots ignobles et profanes déchirent le tissu de la réalité, creusant une brèche dans le monde, au travers de laquelle les serviteurs des Dieux Sombres sont libres de passer. Un portail déchiqueté vers lAethyr apparaît.</span></p><p><span class=\"fontstyle0\">À la fin de chaque round, un démon mineur traverse le portail depuis les Royaumes du Chaos. Ces démons ne sont pas sous votre contrôle, mais sont susceptibles de vous défendre et dattaquer vos ennemis, si telle est la volonté de votre maître impie. Les démons invoqués dépendent de votre Domaine du Chaos : démonettes de Slaanesh, porte-peste de Nurgle, horreurs de Tzeentch, sanguinaires de Khorne, et, pour les sorciers du Chaos Indivisible, des furies du Chaos. Pendant toute la durée du sort, tous les démons quil invoque sont immunisés aux effets du Trait de créature Instable.</span></p><p><span class=\"fontstyle0\">Pour chaque +5 DR de Surincantation, vous pouvez augmenter le rythme darrivée des démons de +1. </span></p><p><span class=\"fontstyle0\">Les créatures vivantes doivent réussir un Test de <strong>Résistance Accessible (+20)</strong> à la fin de chaque Round où elles voient la déchirure, ou gagner +1 Corruption. Toute créature vivante assez stupide ou malchanceuse pour entrer dans la faille choit dans les Royaumes du Chaos et est immédiatement tuée, à moins quun Point de Destin ne soit dépensé. Dans ce cas, elle est renvoyée dans la réalité, peut-être sauvée par une Puissance quelconque dans un but encore inachevé.</span></p><p><span class=\"fontstyle0\">Si vous ratez lIncantation de ce Sort, les démons qui traversent les Royaumes du Chaos appartiennent à une divinité rivale et peuvent être immédiatement hostiles à leur invocateur !</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Bolt of Change",
"name": "Éclair du changement",
"description": "<p><span class=\"fontstyle0\">Un éclair pulsant dune scintillante énergie chaotique déchire l'air. L'Éclair du changement est un <i>Projectile magique</i>, et la Cible subit des Dégâts +7. De plus, elle doit effectuer un Test de </strong>Résistance Intermédiaire (+0)</strong>. Une Cible qui échoue gagne +1 Point de Corruption. En cas de Maladresse, la Cible effectue immédiatement un jet de Mutation, et gagne le Talent Compendium[wfrp4e.talents.hiU7vhBOVpVI8c7C]{Magie du Chaos (Tzeentch)}. Un Personnage affecté par ce sort peut résister à une Mutation en dépensant un Point de Détermination.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "35UAihuCR5o2saMI",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Eclair du Changement",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "oneTime",
"effectApplication": "apply",
"script": "args.actor.setupSkill(\"Résistance\", { context: { failure: \"1 Point de Corruption acquis\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\" && args.actor.data.type == \"character\") {\n let msg = \"\"\n args.actor.update({ \"data.status.corruption.value\": parseInt(args.actor.status.corruption.value) + 1 })\n msg += `<b>${args.actor.data.token.name}</b> gains a Corruption point<br>`\n if ((test.result.outcome.roll % 11 == 0) || test.result.outcome.roll == 100 || test.result.outcome.roll == 99)\n msg += `<b>${args.actor.data.token.name}</b> reçoit une mutation (@Table[expandedmutatephys]{Physique} ou @Table[expandedmutatemental]{Mentale}) et reçoit @Compendium[wfrp4e-core.talents.hiU7vhBOVpVI8c7C]{Chaos Magic (Tzeentch)}`\n ChatMessage.create({content : msg, speaker : {alias : this.effect.label}})\n args.actor.checkCorruption()\n }\n })\n})",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Slave to Darkness (Undivided)",
"name": "Esclave des ténèbres (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vous implorez votre divinité pour quelle sempare de lâme de votre Cible et la remplace par quelque chose de terrible. Faites un Test opposé de <strong>Force Mentale</strong>, que vous devez gagner dau moins +2 DR. Si vous y parvenez, lâme de la victime est envoyée dans les Royaumes du Chaos et le corps est possédé par un démon. À moins que la Cible ne dépense un Point de Destin, le contrôle du Personnage passe au MJ. Si vous ne gagnez pas le Test opposé par au moins +2 DR, vous subissez une <a class=\"table-click\" data-table=\"majormis\">Incantation imparfaite majeure</table>, et le Sort échoue. Si vous ne réussissez pas le Test, votre arrogance est punie par votre dieu. Votre âme est arrachée à son corps, pour ne jamais revenir, à moins que vous ne dépensiez un Point de Destin pour y résister. Mais votre dieu ne sera guère ravi si vous rejetez son autorité de manière aussi flagrante.</span></p> <p><span class=\"fontstyle0\"> Étant donné les risques et les limites inhérents à ce Sort, il est généralement lancé sur des victimes qui ont été « préparées » pour leur sacrifice ; elles ont été attachées, droguées et/ou autrement neutralisées.</span></p>",
"effets": []
},
{
"id": "Slave to Darkness (Tzeentch)",
"name": "Esclave des ténèbres (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous implorez votre divinité tutélaire pour quelle sempare de lâme de votre cible et quelle la remplace par quelque chose de terrible. Vous devez réussir un jet opposé de </span><strong><span class=\"fontstyle2\">Force Mentale </span></strong><span class=\"fontstyle0\">, contre votre cible avec à minima +2 DR. En cas de succès lâme de votre victime est envoyée hurlante dans les Royaumes du Chaos et le corps restant est possédé par un Démon. A part si la cible dépense un point de Destin, le contrôle du Personnage est donné au Conteur. Si vous ne remportez pas le jet opposé avec le seuil minimum de +2 DR, vous devez lancer un jet sur la table des <a class=\"table-click\" data-table=\"majormis\">Major Miscast</a>, et le sort échoue. En cas déchec critique, votre dieu vous punit pour votre arrogance. Votre âme est arrachée de votre corps, condamnée à ne jamais y retourner sauf si vous dépensez un point de Destin pour résister. Ceci risque probablement dirriter votre divinité, puisque par ce geste vous rejetez manifestement son autorité<br></span></p>\n<p><span class=\"fontstyle0\">Du fait des risques et limitations inhérents à ce sortilège, il est généralement incanté sur des victimes qui ont été préparées pour le sacrifice. Que ce soit en étant attachées, droguées, ou bien tranquillisées par dautres moyens.</span></p>"
"description": "<p><span class=\"fontstyle0\">Vous implorez votre divinité pour quelle sempare de lâme de votre Cible et la remplace par quelque chose de terrible. Faites un Test opposé de </strong>Force Mentale</strong>, que vous devez gagner dau moins +2 DR. Si vous y parvenez, lâme de la victime est envoyée dans les Royaumes du Chaos et le corps est possédé par un démon. À moins que la Cible ne dépense un Point de Destin, le contrôle du Personnage passe au MJ. Si vous ne gagnez pas le Test opposé par au moins +2 DR, vous subissez une <a class=\"table-click\" data-table=\"majormis\">Incantation imparfaite majeure</table>, et le Sort échoue. Si vous ne réussissez pas le Test, votre arrogance est punie par votre dieu. Votre âme est arrachée à son corps, pour ne jamais revenir, à moins que vous ne dépensiez un Point de Destin pour y résister. Mais votre dieu ne sera guère ravi si vous rejetez son autorité de manière aussi flagrante.</span></p> <p><span class=\"fontstyle0\"> Étant donné les risques et les limites inhérents à ce Sort, il est généralement lancé sur des victimes qui ont été « préparées » pour leur sacrifice ; elles ont été attachées, droguées et/ou autrement neutralisées.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Slave to Darkness (Undivided)",
"name": "Esclave des ténèbres (Undivided)",
"description": "<p><span class=\"fontstyle0\">Vous implorez votre divinité tutélaire pour quelle sempare de lâme de votre cible et quelle la remplace par quelque chose de terrible. Vous devez réussir un jet opposé de </span><strong><span class=\"fontstyle2\">Force Mentale </span></strong><span class=\"fontstyle0\">, contre votre cible avec à minima +2 DR. En cas de succès lâme de votre victime est envoyée hurlante dans les Royaumes du Chaos et le corps restant est possédé par un Démon. A part si la cible dépense un point de Destin, le contrôle du Personnage est donné au Conteur. Si vous ne remportez pas le jet opposé avec le seuil minimum de +2 DR, vous devez lancer un jet sur la table des <a class=\"table-click\" data-table=\"majormis\">Major Miscast</a>, et le sort échoue. En cas déchec critique, votre dieu vous punit pour votre arrogance. Votre âme est arrachée de votre corps, condamnée à ne jamais y retourner sauf si vous dépensez un point de Destin pour résister. Ceci risque probablement dirriter votre divinité, puisque par ce geste vous rejetez manifestement son autorité<br></span></p>\n<p><span class=\"fontstyle0\">Du fait des risques et limitations inhérents à ce sortilège, il est généralement incanté sur des victimes qui ont été “préparées” pour le sacrifice. Que ce soit en étant attachées, droguées, ou bien tranquillisées par dautres moyens.</span></p>"
"id": "Bolt of Corruption (Undivided)",
"name": "Explosion de Corruption (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez la Magie profane en un souffle explosif de Corruption. Il sagit dun <i>Projectile magique</i> infligeant Dégâts +5 qui Cible tout le monde dans la Zone dEffet. Toute personne affectée par le Sort doit réussir un Test de <strong>Résistance Intermédiaire (+0)</strong>, ou gagner 1 Corruption.</span></p>",
"effets": [
{
"_id": "g3X027r29G9dcaOm",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/undivided.png",
"label": "Explosion de Corruption (Indivisible)",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "oneTime",
"effectApplication": "apply",
"script": "args.actor.setupSkill(\"Résistance\", {context : {failure: \"1 Point de Corruption acquis\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\" && args.actor.data.type == \"character\")\n {\n args.actor.update({\"data.status.corruption.value\" : parseInt(args.actor.status.corruption.value) + 1})\n args.actor.checkCorruption()\n }\n })\n })",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Bolt of Corruption (Tzeentch)",
"name": "Explosion de Corruption (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous canalisez la Magie profane en un souffle explosif de Corruption. Il sagit dun <i>Projectile magique</i> infligeant Dégâts +5 qui Cible tout le monde dans la Zone dEffet. Toute personne affectée par le Sort doit réussir un Test de </strong>Résistance Intermédiaire (+0)</strong>, ou gagner 1 Corruption.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "BcIqqg2LrTJdON5l",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Explosion de Corruption (Tzeentch)",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "oneTime",
"effectApplication": "apply",
"script": "args.actor.setupSkill(\"Résistance\", {context : {failure: \"1 Point de Corruption acquis\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\" && args.actor.data.type == \"character\")\n {\n args.actor.update({\"data.status.corruption.value\" : parseInt(args.actor.status.corruption.value) + 1})\n args.actor.checkCorruption()\n }\n })\n })",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Blue Fire of Tzeentch",
"name": "Feu Bleu de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Vos mots invoquent une boule de feu dun bleu scintillant qui engloutit vos ennemis. Le Feu bleu de Tzeentch est un <i>Projectile magique</i>. Toute personne se trouvant dans les limites de votre Bonus dInitiative en mètres autour de la cible subit +3 Points de Dégâts, et gagne 1 État <i>En flammes</i>.</span></p><p><span class=\"fontstyle0\">Si un Personnage de Taille Petite ou supérieure est réduit à 0 Blessure par ce Sort, alors quil est sous leffet de lÉtat En flammes dû au Feu bleu de Tzeentch, lancez 1d10. Sur un résultat de 9, deux horreurs bleues (voir page 85) se frayent un chemin à travers la chair hurlante du Personnage, le tuant au passage.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "kpfKJaxLFqOnbIli",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Feu Bleu de Tzeentch",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectApplication": "damage",
"effectTrigger": "applyDamage",
"script": "args.actor.addCondition(\"ablaze\")",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Pink Fire of Tzeentch",
"name": "Feu Rose de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Des éclairs de feu rose tourbillonnent du bout de vos doigts tendus, faisant hurler dangoisse la réalité. Le Feu rose de Tzeentch est un <i>Projectile magique</i>. La Cible touchée subit Dégâts +6, et gagne +1 État <i>En flammes</i>.</span></p><p><span class=\"fontstyle0\">Si un Personnage de Taille petite ou plus grande est réduit à 0 Blessure par ce Sort, alors quil est sous leffet de lÉtat En flammes causé par le Feu rose de Tzeentch, lancez un d10. Sur un résultat de 9, une horreur rose (voir page 85) se fraie un chemin hors du corps convulsé de la Cible, la tuant aussitôt.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "1a0uY9XWM9tSfqEl",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Feu Rose de Tzeentch",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "applyDamage",
"effectApplication": "damage",
"script": "args.actor.addCondition(\"ablaze\")",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Mindfire",
"name": "Feu Spirituel",
"description": "<p><span class=\"fontstyle0\">Lair se déforme au bout de vos doigts, formant un éclair dénergie magique brumeuse et chatoyante que vous pouvez lancer sur votre Cible. Toute personne affectée par Feu spirituel doit réussir un Test de <strong>Calme Intermédiaire (+0)</strong>, ou gagner 1 Point de Corruption. Pour chaque +2 DR, vous pouvez faire gagner un Point de Corruption supplémentaire à la Cible dont le Test de <strong>Calme</strong> est raté. Si une Mutation se produit à la suite de ce Sort, la Cible effectue automatiquement un jet sur le tableau des <a class=\"table-click\" data-table=\"expandedmutatemental\">Mutations mentales</a>, et gagne +1 État <i>En flammes</i> alors que du feu surnaturel jaillit de chaque orifice de sa tête.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "The Flickering Flames of Fickle Fate",
"name": "Flammes Vacillantes du Destin",
"description": "<p><span class=\"fontstyle0\">Vous conjurez devant vous un torrent de feu magique qui crépite, craquète et flambe sans aucun combustible. Le feu na pas de propriétés physiques et ne brûle pas, ne cause pas de dommages, ni német de la chaleur. Toutes les créatures vivantes et les démons qui ont le feu dans leur ligne de vue peuvent choisir de rejeter tous les tests une seule fois, comme sils utilisaient un Point de Chance. A chaque fois quils utilisent ceci, ils doivent réussir un jet d</span><strong><span class=\"fontstyle2\">Endurance Intermédiaire (+0) </span></strong><span class=\"fontstyle0\">ou gagner +1 point de Corruption. Les personnages porteurs de la Marque de Tzeentch sont immunisés à cette corruption. Le test visant à résister au gain de Corruption ne peut pas être relancé en utilisant leffet des Flammes Vacillantes du Destin.</span></p>"
"name": "Flammes vacillantes du capricieux destin",
"description": "<p><span class=\"fontstyle0\">Vous invoquez un torrent de feu magique, qui crache, crépite et brûle sans aucun combustible matériel. Ce feu na aucune propriété physique et ne brûle pas, nendommage pas et német pas de chaleur. Toutes les créatures vivantes et les démons qui peuvent le percevoir peuvent choisir de relancer chaque Test une fois, comme sils avaient dépensé un Point de Chance, même sils ont réussi le Test. Chaque fois, ils doivent réussir un Test de <strong>Résistance Intermédiaire (+0)</strong> ou gagner +1 Point de Corruption. Les Personnages portant la marque de Tzeentch sont immunisés à cette Corruption. Le Test pour résister au gain de Corruption ne peut pas être relancé en utilisant leffet de ce Sort.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Transformation of Tzeentch",
"name": "Transformation de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Sur votre ordre, des liens de feu Aethéryques surgissent du sol et senroulent autour de votre cible, lengloutissant dans cocon dénergie magique. Les cibles touchées gagnent létat </span><em><span class=\"fontstyle2\">A Terre </span></em><span class=\"fontstyle0\">, et sont considérées comme Sans Défense pendant la durée du sort. Quand </span><em><span class=\"fontstyle2\">Transformation de Tzeentch </span></em><span class=\"fontstyle0\"> se termine, la cible doit réussir un jet d </span><strong><span class=\"fontstyle3\">Endurance Intermédiaire (+0) </span></strong><span class=\"fontstyle0\">, opposé à votre score de Langage (Magick). En cas déchec , celle-ci gagne + 1 point de corruption et +1 point supplémentaire par DR déchec. </span></p>"
"id": "Master of Fortune",
"name": "Maître du Destin",
"description": "<p><span class=\"fontstyle0\">Les sorciers de Tzeentch négocient souvent avec leur maître pour obtenir des indications sur leur destin. Cette recherche est dangereuse, car Tzeentch est un dieu capricieux, même envers ses serviteurs favoris. Une fois que le Sort est lancé, il ne peut plus lêtre à nouveau, jusquà ce que sa durée soit écoulée.</span></p><p><span class=\"fontstyle0\">Calculez la réussite du Test de <strong>Langue (Magick)</strong> nécessaire pour lancer le Sort. Pour chaque DR positif, le Lanceur bénéficie dun Point de Chance quil peut utiliser normalement pendant la durée du Sort. Cependant, si le Sort échoue, pour chaque DR négatif, le Lanceur reçoit un Point de Corruption pour avoir examiné un éventail vertigineux dinquiétants échos futurs.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "qRYINhWYqnpN1MHC",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Maître du Destin",
"transfer": false,
"flags": {}
}
]
},
{
"id": "Curse of Tzeentch",
"name": "Malédiction de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Selon la tradition tzeentchienne, tous les Sorts découlent de la volonté du Dieu et lui appartiennent donc. En utilisant ce Sort, un sorcier de Tzeentch peut faire perdre à un autre sorcier la connaissance et la capacité de lancer un Sort dont il avait auparavant la maîtrise.</span></p><p><span class=\"fontstyle0\">Si la Malédiction de Tzeentch est un succès, le Lanceur doit alors faire un Test opposé de <strong>Force Mentale</strong> contre la Cible. Si le Lanceur gagne, la Cible perd laccès à un Sort pris au hasard. Les effets de la Malédiction durent un jour pour chaque DR obtenu par le Lanceur lors du Test opposé.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Word of Tzeentch",
"name": "Parole de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Alors que votre langue émet les motifs sonores déformés de ce Sort blasphématoire, deux voix semblent sortir de votre gorge, en une harmonie impie et contre nature. Vos mots renferment une signification supplémentaire pour ceux qui sont affectés par le Sort, même si les Cibles ne peuvent pas se souvenir de ce qui a été dit. Elles en conservent un sentiment obsédant de pressentiment, comme si elles avaient oublié quelque chose de très important concernant leur propre avenir.</span></p>\n<p><span class=\"fontstyle0\"><br>. Les Cibles vivantes affectées par le Sort doivent faire un Test opposé d<strong>Intelligence</strong>. Si la Cible perd, elle gagne 1 État <i>Sonné</i>, +1 État <i>Sonné</i> supplémentaire pour chaque DR décart. En cas de Maladresse, elle gagne lÉtat <i>Inconscient</i>, et +1 Point de Corruption.<br></span></p>\n<p><span class=\"fontstyle0\">Une fois que tous les États ont été retirés, les Cibles affectées doivent réussir un Test de <strong>Résistance Accessible (+20)</strong>, ou gagner +1 Corruption. Si elles obtiennent une Maladresse, elles gagnent immédiatement 1 Mutation mentale, et ne peuvent pas prendre dAmbition à court terme pendant les 1d10 semaines suivantes.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Obsession (Undivided)",
"name": "Obsession (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vous devez posséder un objet chéri ou précieux appartenant à la Cible. Vous instillez magiquement de la matière brute du Chaos dans lobjet qui, à son tour, affecte la Cible. Elle devient obsédée par quelque chose : la nature précise de lobsession dépend de lindividu en question, et de votre Domaine. Par exemple, lorsquil sagit de Nurgle, <i>Obsession</i> peut pousser la Cible récemment blessée à gratter frénétiquement ses croûtes. Le Domaine de Slaanesh peut pousser un épicurien ou un gourmand à se goinfrer.</span></p><p><span class=\"fontstyle0\">La Cible doit réussir un Test de <strong>Résistance Accessible (+20)</strong> toutes les heures, ou succomber à son obsession. En cas déchec, les Tests suivants deviennent <strong>Intermédiaire (+0)</strong>, puis si les échecs senchaînent, les Tests sont de plus en plus difficiles, jusquà ce quils deviennent <strong>Très difficiles (-30)</strong>. Si la Cible obtient une Maladresse à lun dentre eux (en lançant un double), elle devient complètement obsédée. Elle ne peut rien faire dautre que céder à cette obsession, quels quen soient le coût et les conséquences, pendant un nombre dheures égal à 1d10 - Bonus de Force Mentale (minimum 1 heure). À la fin de la durée du Sort, en plus de toutes les autres implications physiques, sociales ou financières, la Cible doit réussir un Test de <strong>Résistance Intermédiaire (+0)</strong> ou gagner +1 Point de Corruption.</span></p><p><span class=\"fontstyle0\">Une Cible ne peut être affectée par ce Sort quune seule fois pour chaque Domaine avec lequel il est lancé. Toute tentative ultérieure sur la même Cible avec ce Sort est sans effet.</span> </p>",
"effets": []
},
{
"id": "Obsession (Tzeentch)",
"name": "Obsession (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous devez posséder un objet chéri ou précieux appartenant à la Cible. Vous instillez magiquement de la matière brute du Chaos dans lobjet qui, à son tour, affecte la Cible. Elle devient obsédée par quelque chose : la nature précise de lobsession dépend de lindividu en question, et de votre Domaine. Par exemple, lorsquil sagit de Nurgle, <i>Obsession</i> peut pousser la Cible récemment blessée à gratter frénétiquement ses croûtes. Le Domaine de Slaanesh peut pousser un épicurien ou un gourmand à se goinfrer.</span></p><p><span class=\"fontstyle0\">La Cible doit réussir un Test de <strong>Résistance Accessible (+20)</strong> toutes les heures, ou succomber à son obsession. En cas déchec, les Tests suivants deviennent <strong>Intermédiaire (+0)</strong>, puis si les échecs senchaînent, les Tests sont de plus en plus difficiles, jusquà ce quils deviennent <strong>Très difficiles (-30)</strong>. Si la Cible obtient une Maladresse à lun dentre eux (en lançant un double), elle devient complètement obsédée. Elle ne peut rien faire dautre que céder à cette obsession, quels quen soient le coût et les conséquences, pendant un nombre dheures égal à 1d10 - Bonus de Force Mentale (minimum 1 heure). À la fin de la durée du Sort, en plus de toutes les autres implications physiques, sociales ou financières, la Cible doit réussir un Test de <strong>Résistance Intermédiaire (+0)</strong> ou gagner +1 Point de Corruption.</span></p><p><span class=\"fontstyle0\">Une Cible ne peut être affectée par ce Sort quune seule fois pour chaque Domaine avec lequel il est lancé. Toute tentative ultérieure sur la même Cible avec ce Sort est sans effet.</span> </p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Foul Messenger (Undivided)",
"name": "Odieux Messager (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vous invoquez un essaim de démons mineurs asservis à votre volonté. Leur forme varie en fonction de la divinité révérée. Les démons porteront un court message (environ vingt-cinq mots) à votre Cible. Ils voyagent presque instantanément et sont invisibles (et inaudibles) pour toute personne ne possédant pas le Talent Seconde vue, même lorsquils délivrent leur message. Toute personne possédant ce Talent peut effectuer un Test de <strong>Perception Difficile (-20)</strong> pour remarquer lessaim et entendre son message. Pour chaque +2 DR, vous pouvez doubler la longueur du message.</span></p>",
"effets": []
},
{
"id": "Foul Messenger (Tzeentch)",
"name": "Odieux Messager (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous invoquez un essaim de démons mineurs asservis à votre volonté. Leur forme varie en fonction de la divinité révérée. Les démons porteront un court message (environ vingt-cinq mots) à votre Cible. Ils voyagent presque instantanément et sont invisibles (et inaudibles) pour toute personne ne possédant pas le Talent Seconde vue, même lorsquils délivrent leur message. Toute personne possédant ce Talent peut effectuer un Test de </strong>Perception Difficile (-20)</strong> pour remarquer lessaim et entendre son message. Pour chaque +2 DR, vous pouvez doubler la longueur du message.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Sense the Skein",
"name": "Percevoir lécheveau",
"description": "<p><span class=\"fontstyle0\">Vos yeux brillent de rose et bleu tandis que vous prononcez des mots de pouvoir interdits. Vos yeux se dessillent et vous percevez, pendant quelques instants fugaces, le destin interconnecté de toutes choses. Vous pouvez choisir une Cible que vous pouvez voir, et le MJ doit révéler la Motivation, lAmbition à court terme et lAmbition à long terme de cette Cible.</span> </p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Power of Chaos (Undivided)",
"name": "Pouvoir du Chaos (Indivisible)",
"description": "<p><span class=\"fontstyle0\">Vous appelez les Dieux Sombres du Chaos à vous aider en pratiquant une petite déchirure dans lAethyr. Tous les Sorts lancés dans un rayon de quelques mètres du point ciblé par le Sort voient leur NI réduit de moitié. Toute personne se trouvant dans la Zone dEffet doit réussir un Test de </strong>Résistance Accessible (+20)</strong> à la fin de chaque Round ou gagner +1 Point de Corruption. Quiconque lance un Sort dans la Zone dEffet fait son Test avec une </strong>Difficulté Accessible (+20)</strong>.</span></p>",
"effets": [
{
"_id": "TVALIiKAB2dgDNgV",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/undivided.png",
"label": "NI Divisé par 2",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "prePrepareItem",
"effectApplication": "apply",
"script": "if (args.item.type == \"spell\")\n args.item.cn.value = args.item.cn.value / 2",
"preventDuplicateEffects": false
}
}
},
{
"_id": "w1U6DcQY33Zo6VyU",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/undivided.png",
"label": "Difficulté d'Incantation",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "prefillDialog",
"effectApplication": "apply",
"script": "if (args.type == \"cast\")\n args.prefillModifiers.difficulty = \"average\"",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Power of Chaos (Tzeentch)",
"name": "Pouvoir du Chaos (Tzeentch)",
"description": "<p><span class=\"fontstyle0\">Vous appelez les Dieux Sombres du Chaos à vous aider en pratiquant une petite déchirure dans lAethyr. Tous les Sorts lancés dans un rayon de quelques mètres du point ciblé par le Sort voient leur NI réduit de moitié. Toute personne se trouvant dans la Zone dEffet doit réussir un Test de <strong>Résistance Accessible (+20)</strong> à la fin de chaque Round ou gagner +1 Point de Corruption. Quiconque lance un Sort dans la Zone dEffet fait son Test avec une <strong>Difficulté Accessible (+20)</strong>.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "UwwqUEOhr0SuW8g1",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "NI divisé par 2",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "prePrepareItem",
"effectApplication": "apply",
"script": "if (args.item.type == \"spell\")\n args.item.cn.value = args.item.cn.value / 2",
"preventDuplicateEffects": false
}
}
},
{
"_id": "zLJTAjStuXaDNifw",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Difficulté d'Incantation",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "prefillDialog",
"effectApplication": "apply",
"script": "if (args.type == \"cast\")\n args.prefillModifiers.difficulty = \"average\"",
"preventDuplicateEffects": false
}
}
}
]
},
{
"id": "Tzeentch's Firestorm",
"name": "Tempête de feu de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Une tempête de feu arcanique violet tourbillonne devant vous, invoquée par vos jacassements blasphématoires. </span><em><span class=\"fontstyle2\">Tempête de feu de Tzeentch </span></em><span class=\"fontstyle0\">est un </span><em><span class=\"fontstyle2\">projectile magique</span></em><span class=\"fontstyle0\">. Toutes les personnes situées dans une zone de Bonus dInitiative mètre de la cible subissent un coup avec +9 Dégâts et gagnent + 1 état </span><em><span class=\"fontstyle2\">Enflammé </span></em><span class=\"fontstyle0\">.</span></p>\n<p><span class=\"fontstyle0\"><br>Si un Personnage de taille Petite ou supérieure est amené à 0 Blessures par le sort, ou sous leffet dun état <em>Enflammé </em> dû à la </span><em><span class=\"fontstyle2\">Tempête de feu de Tzeentch</span></em><span class=\"fontstyle0\">, jetez un <strong><a class=\"chat-roll\">1d10</a></strong>. Sur un résultat de 9, deux Horreurs Rose surgissent du corps brulant de la cible. Cette dernière meurt sur le coup.</span></p>"
"description": "<p><span class=\"fontstyle0\">Une tempête tourbillonnante de feu arcanique violet jaillit, invoquée par vos gloussements impies. La Tempête de feu de Tzeentch est un <i>Projectile magique</i>. Les personnes touchées subissent +9 Points de Dégâts et gagnent +1 Etat <i>En flammes</i>.</span></p>\n<p><span class=\"fontstyle0\"><br>Si un Personnage de Taille petite ou plus grande est réduit à 0 Blessure par ce Sort, ou pendant quil souffre dun État <i>En flammes</i> dû à la <i>Tempête de feu de Tzeentch</i>, lancez 1d10. Sur un résultat de 9, deux horreurs roses (voir page 85) sextirpent du corps de la Cible, qui brûle magiquement, et tuent le pauvre malheureux.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": [
{
"_id": "upb0Smw09GRxyT8a",
"changes": [],
"disabled": false,
"duration": {
"startTime": null
},
"icon": "modules/wfrp4e-core/icons/spells/tzeentch.png",
"label": "Tempête de feu de Tzeentch",
"tint": null,
"transfer": false,
"flags": {
"wfrp4e": {
"effectTrigger": "applyDamage",
"effectApplication": "damage",
"script": "args.actor.addCondition(\"ablaze\")",
"preventDuplicateEffects": true
}
}
}
]
},
{
"id": "Tzeentch's Golden Aura",
"name": "Aura Doré de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Parmi larsenal dun magus de Tzeentch, ce sort est un des plus simples et pratiques. Un vortex tourbillonnant de feu jaune est invoqué depuis lAethyr et enveloppe le corps du sorcier, le protégeant des coups et des projectiles. Tant que le sort fait effet, le magus bénéficie du Trait de Créature @Compendium[wfrp4e.traits.Bvd2aZ0gQUXHfCTh]{Ward 9+}</span><span class=\"fontstyle2\">&nbsp;</span><span class=\"fontstyle0\">.</span></p>"
"id": "The Purple Hand",
"name": "La Main Pourpre",
"description": "<p>Ce sort est une malédiction mesquine utilisée par les sorciers de la Main Pourpre pour intimider et calmer les co-conspirateurs agressifs. De tous les codes non verbaux utilisés par la Main Pourpre, le sens de cette malédiction est clair : corrigez vos actes immédiatement ou soyez punis.</span></p><p><span class=\"fontstyle0\">Pour lancer le Sort, le sorcier doit d'abord obtenir un petit morceau de sa Cible : un cheveu perdu ou une rognure d'ongle d'orteil suffisent. Si cet objet est obtenu et que le Sort est lancé avec succès, les paumes des mains de la Cible deviennent d'un profond violet. Les effets du Sort durent une heure pour chaque niveau de réussite obtenu par le Lanceur lors de l'Incantation. </span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
},
{
"id": "Word of Tzeentch",
"name": "Mot de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Alors que votre langue scande les motifs sonores distordus de ce sort blasphématoire, deux voix semblent jaillir depuis votre gorge, dans une harmonie impie et surnaturelle lune avec lautre. Vos paroles ont un sens supplémentaire pour tous ceux affectés par le sortilège, bien que les cibles narrivent jamais à se rappeler ce qui sest dit. Elles sont la cible dun sentiment entêtant dappréhension, comme si elles avaient oublié quelque chose dessentiel concernant leur futur. </span></p>\n<p><span class=\"fontstyle0\"><br>. Les créatures vivantes affectées par le sort doivent réussir un test opposé d</span><strong><span class=\"fontstyle2\"> Intelligence </span></strong><span class=\"fontstyle0\"> contre vous. En cas déchec, la cible gagne +1 état </span><em><span class=\"fontstyle3\">Assommé </span></em><span class=\"fontstyle0\"> et +1 Etat supplémentaire par DR déchec. En cas déchec critique, elle gagne lEtat </span><em><span class=\"fontstyle3\">Inconscient </span></em><span class=\"fontstyle0\">, et + 1 Point de Corruption.<br></span></p>\n<p><span class=\"fontstyle0\">Une fois tous les états supprimés, la cible doit réussir un test d</span><strong><span class=\"fontstyle2\">Endurance Accessible (+20) </span></strong><span class=\"fontstyle0\">, ou gagner +1 point de Corruption. En déchec critique sur ce jet, la cible gagne immédiatement une mutation de catégorie mentale et ne peut pas choisir dAmbition de Court Terme pour les <strong><a class=\"chat-roll\">1d10</a></strong> prochaines semaines.</span></p>"
"id": "Transformation of Tzeentch",
"name": "Transformation de Tzeentch",
"description": "<p><span class=\"fontstyle0\">Sur votre ordre, des liens de feu aethyrique sélèvent de la terre, puis senroulent autour de votre Cible, lenveloppant dans un cocon dénergie magique. Les Cibles affectées gagnent lÉtat <i>À Terre</i> et sont considérées comme impuissantes pour toute la durée du Sort. Lorsque la Transformation de Tzeentch prend fin, la Cible doit faire un Test de <strong>Résistance Intermédiaire (+0)</strong>, auquel vous opposez votre Compétence Langue (Magick). Si elle perd, elle gagne +1 Point de Corruption, +1 Point supplémentaire pour chaque DR décart. </span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
"effets": []
}
]
}

View File

@ -0,0 +1,68 @@
{
"label": "Tables (Middenheim)",
"entries": [
{
"id": "Athletics - Middenball",
"name": "Athlètisme - Middenball",
"results": {
"55-65": "L'équipe qui reçoit domine légèrement la rencontre. Ajoutez 5 à leur score au prochain tour.",
"66-80": "Un joueur de l'équipe qui reçoit est positionné à l'arrière du terrain. S'ils passent ce tour, ils peuvent tirer.",
"81-90": "Un joueur de l'équipe qui reçoit est positionné au milieu du terrain de l'équipe qui reçoit. S'ils passent ce tour, ils peuvent tirer.",
"91-98": "Un joueur de l'équipe qui reçoit est positionné au milieu du terrain de l'équipe qui reçoit. S'ils passent ce tour, ils peuvent tirer.",
"99-100": "Un joueur de l'équipe qui reçoit est positionné à l'avant du terrain. S'ils passent ce tour, ils peuvent tirer.",
"1-2": "Un joueur de l'équipe invitée est positionné à l'arrière du terrain. S'ils passent ce tour, ils peuvent tirer.",
"3-10": "Un joueur de l'équipe invitée est positionné à au milieu de l'arrière du terrain. S'ils passent ce tour, ils peuvent tirer.",
"11-20": "Un joueur de l'équipe invitée est positionné à au milieu du terrain de l'équipe qui reçoit. S'ils passent ce tour, ils peuvent tirer.",
"21-35": "Un joueur de l'équipe invitée est positionné à l'avant du terrain. S'ils passent ce tour, ils peuvent tirer.",
"36-46": "L'équipe invitée domine légèrement la rencontre. Ajoutez 5 à leur score au prochain tour.",
"47-54": "Aucun effet ce tour."
}
},
{
"id": "Brutality - Middenball",
"name": "Brutalité - Middenball",
"results": {
"91-98": "Un membre de l'équipe adverse est gravement blessé. Réduisez le score des équipes A et B de 1 point.",
"99-100": "An Away Team player suffers a critical injury and is removed from play. Subtract that players A and B score from the team total. If there are no sub-stitutes available, one of the Home Team players becomes a Free Player.",
"1-2": "A Home Team player suffers a critical injury and is removed from play. Subtract that players A and B score from the team total. If there are no sub-stitutes available, one of the Away Team players becomes a Free Player.",
"3-10": "A Home Team player is badly hurt. Reduce the Teams A and B scores by 1 each.",
"11-20": "A Home Team player is rattled. Reduce the Teams A and B scores by 1 each for 1 turn.",
"21-35": "An Away Team player interposes themselves between the player in possession and the goal. This either counts as Guarding, or could be used to cancel out the effects of an existing Guard (whatever most benefits the Away Team).",
"36-46": "The Away Team show more aggression. Add 5 to their B score next turn.",
"47-54": "There is no effect this turn.",
"55-65": "The Home Team show more aggression. Add 5 to their B score next turn.",
"66-80": "A Home Team player interposes themselves between the player in possession and the goal. This either counts as Guarding, or could be used to cancel out the effects of an existing Guard (whatever most benefits the Home Team).",
"81-90": "An Away Team player is rattled. Reduce the Teams A and B scores by 1 each for 1 turn."
}
},
{
"id": "Career - Human (Middenheimer)",
"name": "Carrière - Humain (Middenheimer)"
},
{
"id": "Career - Human (Middenlander)",
"name": "Carrière - Humain (Middenlander)"
},
{
"id": "Career - Human (Nordlander)",
"name": "Carrière - Humain (Nordlander)"
},
{
"id": "Middenball Random Events",
"name": "Middenball : Evènements Aléatoires",
"results": {
"80-83": "Un joueur choisi au hasard parmi tous les joueurs présents sur le terrain (sauf un des PJs ou le joueur en possession de la balle) glisse dans la boue, se tord la cheville et est contraint d'abandonné.",
"84-86": "Un joueur choisi au hasard parmi tous les joueurs présents sur le terrain (sauf un des PJs ou le joueur en possession de la balle) a bu dans une gourde, désignez le joueur et faites lui un test de Résistance à l'alcool <b>difficile (-20)<\/b>. ",
"87-89": "Un joueur choisi au hasard parmi tous les joueurs présents sur le terrain (sauf un des PJs ou le joueur en possession de la balle) a pris un stimulant qui améliore ses performances. Il ressent immédiatement les effets bénifiques pour ensuite souffrir de @Compendium[wfrp4e-core.trappings.jTFOrokjEHbi12rT]{Délice de Ranald}.",
"90-95": "Les supporters de l'équipe locale commencent à chanter, leur équipe bénéficie de +5 B au prochain tour.",
"96-100": "Les supporters de l'équipe en déplacement donnent de la voie. Leur équipe bénéficie +5 B au prochain tour.",
"1-33": "Rien de particulier ne se passe pour ce tour.",
"34-34": "La balle se déchire laissant sortir toutes ses plumes à proximité. S'il s'agit d'un morveux, ce dernier se libère de ses liens et peut soit attaquer un de ses bourreaux, soit tenter de fuir. La partie est stoppée le temps de trouver un remplaçant.",
"35-40": "Un fan frappe un joueur à proximité. Une rixe à mains nues de 3 tours démarre entre un joueur tiré au hasard et un @Compendium[wfrp4e-core.bestiary.7ihBjcHcewZ2Obul]{Humain} standard.",
"41-60": "Le temps devient maussade, les conditions froides et\/ou humides entraînent une pénalité de -10 à tous les tests d'athlétisme et de capacité de tir au prochain tour.",
"61-75": "Si les équipes ne sont pas bien réparties, le gardien de l'équipe avec le moins de joueurs quitte le but.",
"76-79": "Un fan lance un objet sur un joueur sélectionné au hasard. Les joueur doit réussir un test de Résistance <b>facile (+40)<\/b> ou subir @Condition[Stunned]{Assommé}"
}
}
]
}

View File

@ -0,0 +1,53 @@
{
"label": "Tables (Rough Nights & Hard Days)",
"entries": [
{
"id": "Career - Gnome",
"name": "Carrières - Gnome"
},
{
"id": "Eye Colour - Gnome",
"name": "Couleur des Yeux - Gnome",
"results": {
"2-2": "Bleu clair",
"3-3": "Bleu",
"4-4": "Marron terre",
"5-7": "Turquoise",
"8-11": "Vert clair",
"12-14": "Noisette",
"15-17": "Marron clair",
"18-18": "Marron",
"19-19": "Marron foncé",
"20-20": "Violet"
}
},
{
"id": "Hair Colour - Gnome",
"name": "Couleur des Cheveux - Gnome",
"results": {
"2-2": "Noir",
"3-3": "Marron Foncé",
"4-4": "Auburn",
"5-7": "Brun",
"8-11": "Brun Clair",
"12-14": "Gingembre",
"15-17": "Blond roux",
"18-18": "Blond doré",
"19-19": "Blond cendré",
"20-20": "Blanc"
}
},
{
"id": "Species Table",
"name": "Espèces",
"results": {
"1-89": "Humain",
"90-93":"Halfling",
"94-97": "Nain",
"98-98": "Gnome",
"99-99": "Haut Elfe",
"100-100": "Elfe Sylvain"
}
}
]
}

658
fr.json
View File

@ -3,7 +3,80 @@
"WFRP4E.system.description" : "Un système de jeu pour Warhammer 4 dans l'environnement de Foundry VTT.",
"WFRP4E.TrappingType.Cargo": "Cargaison",
"WFRP4E.Vehicle": "Véhicule",
"WFRP4E.MountButtonNotify": "L'acteur à gauche ({mounter}) a désormais l'acteur à droite ({mountee}) comme monture",
"WFRP4E.ConditionName.Dead":"Mort",
"WFRP4E.Scatter.AtTargetFeet":"Au pied de la cible",
"WFRP4E.Scatter.AtYourFeet":"A vos pieds",
"WFRP4E.Scatter.BottomLeft":"En bas à gauche",
"WFRP4E.Scatter.BottomMiddle":"En bas au milieu",
"WFRP4E.Scatter.BottomRight":"En bas à droite",
"WFRP4E.Scatter.CenterLeft":"Centre gauche",
"WFRP4E.Scatter.CenterRight":"Centre droit",
"WFRP4E.Scatter.TopLeft":"En haut à gauche",
"WFRP4E.Scatter.TopMiddle":"En plein milieu",
"WFRP4E.Scatter.TopRight":"En haut à droite",
"WFRP4E.ScatterTable":"Dispersion",
"WFRP4E.Availability.Special":"Spécial",
"WFRP4E.Locations.body":"Corps",
"WFRP4E.Locations.head":"Tête",
"WFRP4E.Locations.lArm":"Bras gauche",
"WFRP4E.Locations.lLeg":"Jambe gauche",
"WFRP4E.Locations.rArm":"Bras droit",
"WFRP4E.Locations.rLeg":"Jambe gauche",
"WFRP4E.LocationsTable":"Localisation",
"WFRP4E.MagicLores.beasts":"Bêtes",
"WFRP4E.MagicLores.daemonology":"Démonologie",
"WFRP4E.MagicLores.death":"Mort",
"WFRP4E.MagicLores.fire":"Feu",
"WFRP4E.MagicLores.heavens":"Cieux",
"WFRP4E.MagicLores.hedgecraft":"Magie naturelle",
"WFRP4E.MagicLores.life":"Vie",
"WFRP4E.MagicLores.light":"Lumière",
"WFRP4E.MagicLores.metal":"Métal",
"WFRP4E.MagicLores.necromancy":"Nécromancie",
"WFRP4E.MagicLores.nurgle":"Nurgle",
"WFRP4E.MagicLores.petty":"Mineure",
"WFRP4E.MagicLores.shadow":"Ombres",
"WFRP4E.MagicLores.slaanesh":"Slaanesh",
"WFRP4E.MagicLores.tzeentch":"Tzeentch",
"WFRP4E.MagicLores.undivided":"Undivided",
"WFRP4E.MagicLores.witchcraft":"Sorcellerie",
"WFRP4E.MagicWind.beasts":"Ghur",
"WFRP4E.MagicWind.daemonology":"Dhar",
"WFRP4E.MagicWind.death":"Shyish",
"WFRP4E.MagicWind.fire":"Aqshy",
"WFRP4E.MagicWind.heavens":"Azyr",
"WFRP4E.MagicWind.hedgecraft":"Aucun",
"WFRP4E.MagicWind.life":"Ghyran",
"WFRP4E.MagicWind.light":"Hysh",
"WFRP4E.MagicWind.metal":"Chamon",
"WFRP4E.MagicWind.necromancy":"Dhar",
"WFRP4E.MagicWind.nurgle":"Dhar",
"WFRP4E.MagicWind.petty":"Aucun",
"WFRP4E.MagicWind.shadow":"Ulgu",
"WFRP4E.MagicWind.slaanesh":"Dhar",
"WFRP4E.MagicWind.tzeentch":"Dhar",
"WFRP4E.MagicWind.undivided":"Dhar",
"WFRP4E.MagicWind.witchcraft":"Aucun",
"WFRP4E.applyScope.actor":"Acteur",
"WFRP4E.applyScope.item":"Item",
"WFRP4E.effectApplication.actor":"Acteur",
"WFRP4E.effectApplication.apply":"Appliquer avec une cible",
"WFRP4E.effectApplication.damage":"Appliquer quand l'Item inflige des dégâts",
"WFRP4E.effectApplication.equipped":"Lorsque l'item est équipé",
"WFRP4E.hitLocationTables.hitloc":"Standard",
"WFRP4E.hitLocationTables.snake":"Serpent ou similaire",
"WFRP4E.hitLocationTables.spider":"Araignée ou similaire",
"WFRP4E.mutationTypes.mental":"Mental",
"WFRP4E.mutationTypes.physical":"Physique",
"WFRP4E.prayerTypes.blessing":"Bénédiction",
"WFRP4E.prayerTypes.miracle":"Miracle",
"SETTINGS.InitRule" : "Règles d'initiative",
"SETTINGS.InitHint" : "Choisir votre configuration pour l'ordre d'initiative.",
"SETTINGS.InitDefault" : "Par défaut (Par ordre d'Initiative, Agilité en cas d'égalité)",
@ -62,14 +135,71 @@
"SETTINGS.RangeAutoCalculation": "Calcul automatique du modificateur de distance",
"SETTINGS.PlayerExperienceEditing": "Edition de l'Expérience du personnage",
"SETTINGS.PlayerExperienceEditingHint": "Autoriser les joueurs à modifier l'XP des personnages",
"SETTINGS.AdvantageBonusHint": "Configurer le bonus donné par l'avantage",
"SETTINGS.AdvantageBonus": "Bonus d'avantage",
"SETTINGS.MooSizeDamageHint":"Les bonus de dommages sont liés à la taille absolue, au lieu des différences de taille relatives (voir la page de Wiki en lien ci-dessus)",
"SETTINGS.MooHomebrewItems":"Modifications d'Items",
"SETTINGS.MooHomebrewItemHint":"Change (avec l'application des règles ci-dessus) différents obejts. Voir la page de Wiki indiquée ci-dessus. **ATTENTION: A n'activer que sur un nouveau monde, et avec la plupart des règles ci-dessus activées**",
"SETTINGS.MooAdvantage":"Avantage",
"SETTINGS.MooAdvantageHint":"Au lieu de +10 avantage, vous gagnez +1DR par Avantage <b>sur un test réussi</b>",
"SETTINGS.MooDifficulty":"Options de difficulté",
"SETTINGS.MooDifficultyHint":"Les difficultés sont symétriques",
"SETTINGS.MooCritsFumbles":"Critiques de MooMan",
"SETTINGS.MooCritsFumblesHint":"MooCritsFumblesHint",
"SETTINGS.MooConditions":"Changement sur les états",
"SETTINGS.MooConditionsHint":"Modifie divers textes d'états",
"SETTINGS.MooConditionTriggers":"Déclenchement d'Etat",
"SETTINGS.MooConditionTriggersHint":"Les états s'activent à la fin du tour du joueur, au lieu de la fin du round.",
"SETTINGS.MooCritModifiers":"Modificateurs de Tables de Critiques",
"SETTINGS.MooCritMOdifiersHint":"Lorsque vous encaissez des dommages en dessous de 0 Point de Blessure, ajoutez ou soustrayez 10 du jet sur la table des Coups Critiques pour chaque points de dommages soustrait de votre Bonus d'Endurance.<br><br>Ex. J'ai 4 Points de Blessures restants , 50 en Endurance. J'encaisse 12 Dommages. Cela implique -8. Avec un BE de 5, cela entraîne un +30 sur la table des Coups Critiques.<br><br>Ex. J'ai 4 Points de Blessures restants , 50 en Endurance. J'encaisse 5 Dommages. Cela implique -1. Avec un BE de 5, cela entraine un -40 sur la table des Coups Critiques.",
"SETTINGS.MooSLDamage":"Calcule des dommages opposés",
"SETTINGS.MooSLDamageHint":"Le calcule des dommages est basé uniquement sur le DR de l'attaquant, au lieu de la différence attaquant/défenseur",
"SETTINGS.MooRangedDamage":"Modification des dommages des projectiles",
"SETTINGS.MooRangedDamageHint":"Les dommages des projectiles est modifié par les dizaines de la difficultée appliquée : +20 = -2 dommages, -30 = +3 dommages",
"SETTINGS.MooMagicAdvantage":"Modification des Avantages en Magie",
"SETTINGS.MooMagicAdvantageHint":"Les Avantages s'appliquent à la Folcalisation et pas à l'Incantation. Les avantages sont toujours gagnés grâce à l'Incantation.",
"SETTINGS.MooOvercasting":"Dépenses des Sur-Incantation",
"SETTINGS.MooOvercastingHint":"Les Sur-Incantations dépensent le DR utilisé, donc si le sort fait des dommages, pour chaque Sur-Incantation utilisée, le sort fait -2 Dommages, et est plus facile à opposer",
"SETTINGS.MooCatastrophicMiscasts":"Incantations Imparfaites Catastrophiques",
"SETTINGS.MooCatastrophicMiscastsHint":"Ajoute la table des Incantations Imparfaites Catastrophiques et modifie les tables existantes. De plus, obtenir un 100 sur une Incantation ou une Focalisation augmente le niveau d'Incantations Imparfaites de 1",
"SETTINGS.MooCriticalChannelling":"Focalisation Critique",
"SETTINGS.MooCriticalChannellingHint":"Si vous incantez un sort avec succès à partir d'une Focalisation critique, vous ajoutez +DR égaux au NI du sort. Ces DR ne peuvent pas être utilisés pour Sur-Incanter, seulement le DR généré par le test. Si le Test d'Incantation échoue, vous faites un Incantation Imparfaite ou ce la incrémente l'Incantation Imparfaite de 1.",
"SETTINGS.MooCastAfterChannelling":"Incanter après la Focalisation",
"SETTINGS.MooCastAfterChannellingHint":"Lors de l'incantation d'un sort Focalisé, une incantation échouée compte comme une interruption. Vous pouvez conserver les DR focalisés si ce Test est échoué.",
"SETTINGS.MooPenetrating":"Valeur de Pénétration",
"SETTINGS.MooPenetratingHint":"Ajoute une valeur à l'option Pénétrante, Pénétrante X - où l'arme ignore X PA (si aucun chiffre n'est indiqué, la valeur par défaut est de 2)",
"SETTINGS.MooQualities":"Nouvelles Qualités",
"SETTINGS.MooQualitiesHint":"Ajout les qualités 'Simple' et 'Elan'",
"SETTINGS.MooShieldAP":"PA des Boucliers",
"SETTINGS.MooShieldAPHint":"Les PA des boucliers et l'atténuation des critiques (cf. ci-dessous) sont appliqués uniquement si vous réussissez un test défensif.",
"SETTINGS.MooCriticalMitigation":"Atténuation des Critiques",
"SETTINGS.MooCriticalMitigationHint":"(Au lieu de la Déviation) Lorsque vous subissez un Coup Critique, pour chaque PA dans la localisation, le lancer sur la table des Blessures Critiques est réduit de 10. Si le résultat du jet est négatif, aucune blessure critique n'est reçue. Après que la blessure critique ait été résolue, la couche d'armure la plus externe est endommagé et ses PA réduits de 1. Cela s'applique uniquement si l'attaquant a ciblé la localisation.",
"SETTINGS.MooRangeBands":"Modificateurs de Portée des Projectiles",
"SETTINGS.MooRangeBandsHint":"Les projectiles ont une portée optimale, correspodant à une des distances de portée. Cibler une créature dans hors de cette portée impliquer des malus. Consulter le Wiki pour plus de détails.",
"SETTINGS.MooSizeDamage":"Taille et calcul des dommages",
"SETTINGS.Moo":"Règles maison de Moo Man",
"SETTINGS.MooHint":"Assortiments de modifications qui peuvent - je le pense - améliorer le jeu. Notez que les règles proposées ci-dessous ne sont pas exhaustives, j'ai seulement appliqué ici celles qui peuvent se traduire dans le code.<br><br>Pour une liste complète, consultez <a href='https://github.com/moo-man/WFRP4e-FoundryVTT/wiki/Homebrew-Rules'>le Wiki.</a><br>Notez égalementque ces règlessont généralement prévues pour être utilisées ensemble.<br>Vos retours et remarques sont appréciées. Dans ce cas, merci d'utiliser <a href='https://github.com/moo-man/WFRP4e-FoundryVTT/discussions/categories/moo-s-house-rules'>le Github Discussion Board</a> pour les discussions sur les mécaniques.",
"ROLL.CatastrophicMis":"Incantations Imparfaites Catastrophiques",
"SHEET.Close" : "Fermer",
"SHEET.Configure" : "Configurer la feuille",
"SHEET.Token" : "Configurer le Token",
"SHEET.Import" : "Importer",
"SHEET.Post" : "Envoyer au tchat",
"SHEET.Dismount": "Descende de la monture",
"SHEET.Dismount": "Descendre de la monture",
"SHEET.RemoveMount": "Enlever la monture",
"SHEET.RemoveAttacker":"Enlever l'attaquant",
"SHEET.ArmourMax":"Max",
"SHEET.ArmourCurrent":"Courant",
"SHEET.WeaponDamage":"Dégats sur l'arme",
"SHEET.Flaws":"D:",
"SHEET.Qualities":"Q:",
"SHEET.Unarmed":"Désarmé",
"SHEET.Dodge":"Esquive",
"SHEET.Improvised":"Improvisé",
"SHEET.Stomp":"Piétiner",
"SHEET.NestedWarning" : "Pas possible d'ajouter plus de 4 niveaux de contenants.",
"SHEET.LocationWarning" : "Vider ce contenant avec de le déplacer",
@ -124,7 +254,8 @@
"SHEET.CharacteristicCurrent": "Courant",
"SHEET.ExpChange": "Changement Dépensé / Total",
"SHEET.TotalSpentExp": "Valeur Dépensé / Total",
"SHEET.ThrowingAmmoError":"Le goupe de munitions 'Lancer' est destiné pour les armes qui utilisent des armes de Lancer comme munition. Les armes de Lancer elle-memes utilisent en général la catégorie 'Aucune'",
"ACTOR.BasicSkillsTitle" : "Ajouter les compétences de base",
"ACTOR.BasicSkillsPrompt": "Ajouter les compétences de base ?",
"ACTOR.PreparationError" : "Quelque chose s'est mal passé lors de la préparation des données d'Acteurs: ",
@ -136,7 +267,11 @@
"ACTOR.TypeVehicle": "Véhicule",
"ACTOR.TypeCharacter" : "Personnage",
"ACTOR.TypeCreature": "Créature",
"ACTOR.ClearMount":"Enlever la monture",
"ACTOR.AdvancementError":"Impossible de progresser : {action} {item}, pas assez d'expérience disponible",
"ACTOR.ErrorAdd":"ajouter",
"ACTOR.ErrorImprove":"améliorer",
"ITEM.PenniesValue" : "Valeur (en Sous de Cuivre)",
"ITEM.MeleeDamage" : "Dommages Mêlée",
"ITEM.RangedDamage" : "Dommages Projectiles",
@ -197,8 +332,14 @@
"ITEM.TypeContainer": "Conteneur",
"ITEM.TypePrayer": "Prière",
"ITEM.TypeTrapping": "Equipement",
"ITEM.OptimalRange": "Portée optimale",
"ITEM.Import":"Etes vous certain de vouloir importer le résultat de votre recherche?<br>({number} Items)",
"BleedCrit":"L'hémorrage de <b>{name}</b> coagule un peu : 1 Hémorragie peut-être retirée.",
"BleedFail":"<b>{name}</b> meur de sa perte de sang !",
"BleedRoll":"Jet d'Hémmoragie",
"BleedUnc":"<b>{name}</b> tombe Inconscient !",
"Basic" : "Basic",
"Advanced" : "Avancée",
"Qualities" : "Atouts",
"Flaws" : "Défauts",
@ -422,6 +563,118 @@
"hours": "heures",
"rounds": "rounds",
"Subspecies": "Ethnies",
"Intruders": "Intrus",
"Monsters": "Monstres",
"Law": "Loi",
"SinReduced":"Péché réduit de 1",
"TargetingCancelled":"Ciblage échoué: Un Test opposé est déja en cours",
"Career Selector":"Selecteur de Carrière",
"Completed":"Completé",
"CondRound":"- Round {round}",
"CondStatus":"Status",
"Corruption&Mutation":"Corruption & Mutations",
"Delete Confirmation":"Confirmation de Suppression",
"Domain":"Domaine",
"Dwarf":"Nain",
"Halfling":"Halfling",
"High Elf":"Haut Elfe",
"Human":"Humain",
"EXP":"EXP",
"Exp Cost":"Coût en Exp",
"ExpChange":"Changement d'Experience",
"ExpChangeHint":"Raison du changement d'Exp?",
"ExtDurHint":"Lorsque le sort se terminera, vous pouvez tenter un Test de Force Mentale pour prolonger sa durée de +1 round.",
"ExtendedError1":"Entrez un entier positif pour le nombre à atteindre du Test Etendu",
"ExtendedError2":"Impossible de trouver la caractéristique ou la compétence : {name}",
"Hit Location Table":"Table de Localisation",
"Homebrew Settings":"Règles maison",
"ImperialPost":"La Poste Impériale a reçue votre Grief ! Consultez la console pour le lien direct.",
"Extreme":"Extreme",
"Formula":"Formule",
"ImperialPostError":"La Poste Impériale ne peut recevoir votre message. Consultez la console (F12) pour plus de détails.",
"Import Results":"Importer les Resultats",
"Import or update the content from the WFRP4e Core Module":"Importer ou mettre à jour le contenu du WFRP4e Core Module",
"Initialization":"Initialisation",
"Invalid Quantity":"Quantité invalide",
"Item Properties":"Propriétés d'Item",
"Long Range":"Portée longue",
"Mask":"Mask",
"Minor Infections":"Infection Mineure",
"Momentum":"Moment",
"Morrslieb - Currently Off":"Morrslieb - Actuellement desactivé",
"Morrslieb - Currently On ":"Morrslieb - Actuellement activé ",
"Motive Power":"Force Motrice",
"MountError":"Vous pouvez seulement monter des créatures de taille identique ou plus grosse.",
"New":"Nouveau",
"New Effect":"Nouvel effet",
"NewRole":"Nouveau Role",
"No content found":"Aucune contenu trouvé",
"NoneAmmo":"Aucun",
"Normal":"Normal",
"Off-hand":"Main non directrice",
"On Completion":"Sur complément",
"PenaltyHint":"Séparé par des virgules si multiple (-20 Discrétion, -10 Perception)",
"Point Blank":"Bout Portant",
"Possessions":"Possessions",
"Post":"Poster",
"Post Quantity":"Poster la quantité",
"Post Your Grievance":"Envoyer votre Grief",
"RevertExperience":"Annuler l'Experience",
"Rolled":"Lancé",
"Settings for common homebrew/house rules":"Paramètres pour les règles maison communes.",
"Setup":"Setup",
"Short Range":"Portée courte",
"Simple":"Simple",
"Snake-Like":"Serpent-Like",
"Something went wrong":"Quelque chose a mal tourné",
"SpecChar":"<p>Voulez vous appliquer les caractéristiques de cette espèce à votre Acteur ?",
"Species Characteristics":"Caractéristiques des espèces",
"Spider-Like":"Araignée-Like",
"Split":"Séparé",
"Standard":"Standard",
"Stat Block Parser":"Parser de fiches de PNJ",
"Submit":"Soumettre",
"SuccessLevels":"DR",
"Swim":"Nager",
"TBRed":"BE",
"TookDamage":"Encaisse {damage} dommages",
"ToughnessDesc":"Endurance",
"Unmask":"Démasqué",
"Updater1":"Ce processus importera de nouveaux documents et remplacer les documents importés precedemment par le contenu des compendiums.",
"Updater2":"CELA SIGNIFIE QUE TOUTES LES MODIFICATIONS QUE VOUS AVEZ EFFECTUE SERONT EFFACEES.",
"Updater3":"N'utilisez cette fonction que si vous avez déja initialisé ce module.",
"UpdaterTitle1":"Mettre à jour",
"UpdaterTitle2":"Contenu",
"Vehicle Settings":"Paramètres des Véhicules",
"WFRP4e Content Initialization":"Initialisation du contenu WFRP4e",
"WFRP4e Content Setup":"Setup du contenu WFRP4e",
"WFRP4e Homebrew":"WFRP4e Homebrew",
"WFRP4e House Rules":"WFRP4e Règles Maison",
"WarnUnlinkedMount":"Une monture non liée associée à un Acteur lié n'est pas recommandé.",
"Wood Elf":"Elfe des Bois",
"XP":"XP",
"comma separated":"éparé par des virgules",
"TABLE.Column":"Colonne de la Table",
"TABLE.Key":"Clé de la Table",
"UPDATER.OverwriteTables":"Re-écrire les tables",
"APPLYREQUESTGM":"La demande d'application d'Effet a été envoye au MJ",
"APPLYREQUESTOWNER":"La demande d'application d'Effet a été envoyé au propriétaire",
"Actor Settings":"Paramètres d'Acteur",
"Add Encumbrance for Actors":"Ajouter l'encombrement pour les Acteurs",
"BROWSER.Button":"Navigateur",
"MOO.Bleeding":"Vous saignez gravement. Perdez 1 Blessure à la fin de chaque round, en ignorant tout autre modificateur. De plus, subissez une pénalité de -10 à tout vos Tests pour résister à une Blessure Purulente, un Infection Mineure ou une Infection du Sang. Si vous atteignez 0 Blessures, faites immédiatement un Test d'Endurance pour rester debout (avec une pénalite de -10 pour chaque étatHémorragique), sinon vous tombez @Condition[Unconscious], et vous devez refaire ce test chaque fois que vous prenez des dommages dus à l'Hémorragie. Si vous êtes à 0 Blessures, que vous soyez Inconscient ou pas, vous avez 10% de mourrir à la fin du Round pour chaque état Hémorragique. Donc, si vous avez 3 états Hémorragiques, vous mourrez sur un jet de 01-30. Si un double est obtenu, votre blessure coagule un peu : retirez 1 état Hémorragique. Vous ne pouvez redevenir conscient que si tout les états Hémorragiques sont soignées (voir Blessures)<br><br>Un état Hémorragique peut être retiré avec : un test réussi de Guérison (chaque DR enlève 1 état Hémorragique); ou avec un sort ou une prière (avec un état enlevé par Point de Blessure gueri).<br><br>Lorsque tout les états Hémorragiques ont été soignés, recevez un état @Condition[Fatigued].",
"MOO.Broken":"Vous êtes terrifié, défait en état de panique ou convaincu que vous allez mourrir. A votre tour, votre Action et votre Mouvement doivent être utilisés pour fuir aussi loin que possible jusqu'à ce que vous trouviez un endroit pour vous cacher; vous pourrez alors utiliser votre Action avec une Compétence vous permettant de vous cacher effectivement. Vous recevez également une pénalité de -10 pour tout les Tests n'impliquant pas la course ou la dissimulation.<br><br>Vous ne pouvez faire de test pour récupérer de votre état Brisé si vous êtes au contact d'un ennemi. Si vous êtes désengagé, à la fin de chaque round, vous pouvez tenter un Test de Calme pour enlever un état Brisé par DR. La difficulté est déterminée par les circonstances: il est plus facile de se remettre en état caché à l'abri que d'être à 3 pas d'un démon souhaitant vous démembrer.<br><br>Si vous passez un Round complet à vous cacher hors de la ligne de vue de tout ennemi, vous enlevez 1 état Brisé.<br><br><strike>Lorsque tout les états Brisé sont enlevés, vous recevez 1 Etat Fatigué.</strike>.",
"MOO.Items":"Le règles maison des ites ont été appliqués sur les compendiums. Voir la console (F12) pour détail.",
"MOO.Momentum":"Ces armes sont lourdes et nécessitent un certain temps pour porter un coup. Elles reçoivent leur qualités et spécialités que lorsque leur porteur dispose d'au moins un Avantage.",
"MOO.Penetrating":"Cette arme est très effice pour pénétrer des armures. Elle permet d'ignorer (Rating) PA.",
"MOO.Prone":"<br><br><b>Règles Maison de MooMan</b>: Vous êtes considéré une portée plus loin lors de la déterlination de la portée des attaques par projectiles.",
"MOO.Simple":"Les armes simples peuvent être utilisées avec Corps à Coprs Simple sans pénalité.",
"MOO.CriticalChanelling":"Focalisation Critique DR Bonus",
"MOO.FailedCast":"Une Echec d'Incantation pendant une Focalisation compte comme une interruption.",
"ErrorMountNotFound": "Erreur lors de la recherche de la monture. Essyez de retirer la monture",
"ErrorDamagePermission": "Vous n'avez pas la permission pour appliquer des dommages à cette cible",
"ErrorMacroItemMissing": "Votre personnage n'a pas d'objet nommé",
@ -435,7 +688,17 @@
"ErrorTokenMount": "Les Tokens de montures ncessitent que vous visionnez la scène avec la monture",
"ErrorLimitedWeapons": "Vous ne pouvez équiper plus aucun arme",
"ErrorSpeciesTalents": "Impossible d'ajouer le Talents pour les races",
"ErrorMoneyConvert":"Nécessite une origine et une destination pour faire la conversion.",
"ErrorTarget":"Sélectionnez une cible pour appliquer les effets.",
"ErrorExp":"Ciblez les Tokens pour leur donner l'EXP.",
"ErrorMultExp":"a déja reçu cette récompense.",
"ErrorCorruption":"Type de Corruption non valide",
"Roll Characteristic": "Test de Caractéristique",
"Infinite": "Infini",
"any one": "Au choix",
"Sing": "Chant",
"ENTITY.Actor": "Acteur",
"BROWSER.ItemCategories" : "Catégorie d'items",
@ -458,12 +721,35 @@
"CHARGEN.RerollCareer" : "Re-tirer la carrière",
"CHARGEN.SpeciesInstructions" : "Choisir 6 compétences et les déplacer dans la feuille de personnage si elles ne sont pas déjà présentes. Placer 5 Augmentations dans 3 d'entre elles, et 3 Augmentations dans les 3 autres. Cela ne coûte aucun PX, il ne faut donc pas cliquer sur les boutons d'avancement.",
"CHARGEN.RerollInstructions" : "Vous pouvez relancer un talent en double.",
"CHARGEN.Or": "OU",
"CHARGEN.Or": "Ou",
"CHARGEN.ChooseCareerHint":"Si vous n'aimez pas ce tirage, vous pouvez choisir librement votre carrière mais vous n'aurez aucun bonus d'EXP",
"CHARGEN.RerollCareerHint":"Si vous n'aimez pas ce tirage, permet de relancer deux fois les dés pour un gain de 25 EXP",
"CAREER.DifferentClass": "Entrée dans une nouvelle Classe",
"CAREER.LeaveIncomplete": "Départ d'une carrière incomplète",
"CAREER.LeaveComplete": "Départ d'une carrière complétée",
"CAREER.AddSkillError":"Une erreur est survenur lors de l'ajout de la compétence {skill}: {error}",
"CAREER.AddTalentError":"Une erreur est survenur lors de l'ajout du talent {talent} : {error}",
"CAREERAdv":"Avancement de Carrière",
"CAREERAdvHint":"<p>Voulez vous appliquer cet avancement de carrière à l'Acteur ?",
"DIFFICULTY.MooImpossible":"Impossible (-60)",
"DIFFICULTY.MooFutile":"Futile (-50)",
"DIFFICULTY.MooVHard":"Très Difficile (-40)",
"DIFFICULTY.MooHard":"Difficile (-30)",
"DIFFICULTY.MooEasy":"Facile (+30)",
"DIFFICULTY.MooDifficult":"Difficile (-20)",
"DIFFICULTY.MooVEasy":"Très Facile (+40)",
"DIFFICULTY.Impossible":"Impossible (-50)",
"DIFFICULTY.Futile":"Futile (-40)",
"DIFFICULTY.VHard":"Très Difficile (-30)",
"DIFFICULTY.Hard":"Difficile (-20)",
"DIFFICULTY.Difficult":"Complexe (-10)",
"DIFFICULTY.Challenging":"Intermédiaire (+0)",
"DIFFICULTY.Average":"Accessible (+20)",
"DIFFICULTY.Easy":"Facile (+40)",
"DIFFICULTY.VEasy":"Très facile (+60)",
"DIALOG.CastOrChannel" : "Incanter ou Focaliser",
"DIALOG.CastChannel" : "Incanter ou Focaliser ce sort ?",
"DIALOG.ChannelSkill" : "Compétence Focaliser",
@ -498,6 +784,15 @@
"DIALOG.MutateTitle": "Dissolution du Corps et de l'Esprit - Test {test}",
"DIALOG.ShowTable": "Visibilité des tables",
"DIALOG.RevertExperience": "Annuler ces Points d'Experience ?",
"DIALOG.EnterQuantity": "Entrez la quantité?",
"DIALOG.PostQuantity": "Envoyer la quantité",
"DIALOG.ItemQuantity": "Quantité",
"DIALOG.QuantityHint": "La quantité est la quantité d'objets dans chaque note du chat.<br>La quantité totale déduite sera la quantité affichée mutipliée par la quantité d'objets<br>Sélectionner 'Infini' ne déduira pas la quantité",
"DIALOG.ShowTableHint":"Montrer les tables aux joueurs et le sous menu '/table'",
"DIALOG.GainPrayer":"Apprendre un Miracle",
"DIALOG.GainPrayerContent":"Apprendre ce miracle vous coutera {xp} XP.",
"DIALOG.MemorizeSpell":"Mémoriser un Sort",
"DIALOG.MemorizeSpellContent":"Mémoriser ce sort vous coutera {xp} XP.",
"CHAT.CareerChoose" : "Choisissez votre carrière",
"CHAT.DamageError" : "Erreur de calcul des dégâts:",
@ -561,7 +856,8 @@
"CHAT.CommandLine.Help.Corruption.Usage.Command" : "/corruption",
"CHAT.CommandLine.Help.Corruption.Usage.Example" : "<br>/corruption minor<br>/corruption moderate",
"CHAT.CommandLine.Help.Corruption.Usage.Note" : "Utilisez cette commande pour demander à vos joueurs de faire un jet contres les influences corruptrices.",
"CHAT.EndCombat": "Statut de fin de combat",
"CHAT.InfectionReminder": " Ces personnages ont reçus une blessure critique and doivent réussir un <b>Test de Résistance Trés Facile (+60)</b> ou recevoir une @Compendium[wfrp4e-core.diseases.1hQuVFZt9QnnbWzg]{Infection Mineure}.",
"CHAT.TestModifiers.AttackingLarger": "Bonus de +10 à <b>{attacker}</b>pour l'attaque d'une créature plus grande",
"CHAT.TestModifiers.WeaponLength": "Pénalité de -10 à <b>{attacker}</b> à cause d'une arme plus courte.",
"CHAT.TestModifiers.ShootingLarger": "Bonus de +{bonus} à <b>{attacker}</b> pour tir sur une cible plus grande",
@ -603,7 +899,41 @@
"CHAT.NoGenerator": "Aucun Générateur actif. Utilisez char pour démarrer le processus.",
"CHAT.EditItem": "Editer l'item",
"CHAT.Haggle": "Marchander",
"CHAT.DiseasesRules" : "<br>Référez vous aux maladies pour les règles de Contraction",
"CHAT.CorruptionTest": "<br><b>Cliquez sur un lien de Corruption pour lancer un Test de Corruption</b>",
"CHAT.AutoWitchcraftMiscast": "Sorcellerie - Lancer automatique sur la table eds Incantations Imparfaites Mineures",
"CHAT.MalignantInfluence": "Incantation Imparfaites due à une Influence Maléfique",
"CHAT.OverchannellingMiscast": "Incantation Imparfaite due à une Sur-incantation",
"CHAT.FumbleMiscast": "Incantation Imparfaite due à une Maladresse",
"CHAT.TotalPowerMiscast":"Incantation Imparfaite due à Sur-puissance",
"CHAT.CritCastMiscast": "Incantation Imparfaite due à une réussite critique",
"CHAT.CritChannelMiscast": "Incantation Imprafaite suite à une réussite critique en Focalisation",
"CHAT.DiseaseIncubation":"Incubation de {disease} terminée.",
"CHAT.DiseaseDuration":" Le décompte de temps de {duration} {unit} a démarré.",
"CHAT.DiseaseDurationError":" Une erreur est survenue lors du jet pour la durée.",
"CHAT.DiseaseFinish":"La période de la maladie {disease} s'est terminée.",
"CHAT.LingeringExtended":" Persistance: La durée est allongée de {roll} jours.",
"CHAT.LingeringFestering":" Persistance: développement d'une Blessure Purulente.",
"CHAT.DissolutionTitle":"Dissolution du Corps et de l'Esprit",
"CHAT.Dissolution":"Alors que la corruption ravage votre âme, le souffle déformant du Chaos murmure en vous, soit en modifiant votre chair dans une nouvelle forme, soit en fracturant votre psyché en lui insufflant des connaissances innomables qu'elle ne pourra jamais oublier.",
"CHAT.CorruptionLoses":"<b>{name}</b> perd {number} Points de Corruption.",
"CHAT.CorruptionReroll":"<b>{name}</b> relance une Corruption, avec ce nouveau résultat, la Corruption est désormais de {number}.",
"CHAT.MutateSuccess":"Vous avez réussi à contrôler votre Corruption. Pour le moment.",
"CHAT.InjuryFinish":"La durée de la Blessure {injury} est finie.",
"CHAT.InjuryError":"Impossible d'incrémenter {injury} car ce n'est pas un nombre.",
"CHAT.LingeringRot":" Persistance: Vous avez développé une Infection du Sang.",
"CHAT.CorruptionFail":"<b>{name}</b> reçoit {number} Points de Corruption.",
"CHAT.MutateTable":"Lancer sur la Table des Corruptions:",
"CHAT.CausesFear":"provoque {fear} à",
"CHAT.OvercastReset":"Reset Sur-Incantation",
"CHAT.CommandLine.Help.Properties.Title":"Propriétés d'Item",
"CHAT.CommandLine.Help.Properties.Usage.Command":"/prop <nom propriété>",
"CHAT.CommandLine.Help.Properties.Usage.Example":"<br>/prop impact<br>/prop shoddy",
"CHAT.CommandLine.Help.Properties.Usage.Note":"cherchera la propriété la plus proche syntaxquement et l'affiche (eg. /prop préc == /prop précise)",
"CHAT.PowerIngredientMiscast":"Incantations Imparfaites à cause d'un Ingrédient - chiffre 8 dans le jet inversé.",
"CHAT.Quickcasting":"Incantation rapide",
"CHATOPT.Reroll":"Relancer",
"Error.SpeciesSkills" : "Impossible d'ajouter des compétences pour les races",
"Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races",
"Error.CriticalWound" : "Erreur lors de l'application des blessures",
@ -613,10 +943,35 @@
"Error.NoAmmo" : "Plus de munitions !",
"Error.NotLoaded" : "Non chargé - Rechargement",
"Error.LimitedWeapons" : "Vous ne pouvez pas équiper plus d'armes.",
"ERROR.DamagePermission" : "Vous n'avez pas les droits pour appliquer des dommages à cet Acteur.",
"ERROR.TokenMount" : "Les Tokens de montures nécessitent d'être sur la scène ou est présent le Token.",
"ERROR.MountNotFound" : "Impossible de trouver la monture. Essayez de la supprimer.",
"ERROR.CharAssigned" : "Aucun Personnage attaché. Vérifiez la configuration du joueur pour lui assigner un personnage.",
"ERROR.ParseDisease":"Impossible d'analyser le jet de Maladie",
"ERROR.ParseInjury":"Impossible d'analyser le jet de Blessures",
"ERROR.ParseSpell":"Erreurr: Impossible d'analyser les dommages du sort. Consultez la console.",
"ERRORParser":"Impossible de trouver {name}",
"ERROR.NoSkill":"Impossible de trouver la compétence (ou la spécialisation de) {skill} dans les compendiums ou le monde",
"ERROR.NoTalent":"Impossible de trouver le talent {talent} dans les compendiums ou le monde",
"ERROR.SpellLore":"Vous ne pouvez pas changer le domaine d'un Sort quand il est attaché à un Acteur",
"ERROR.AddEffect":"Foundry ne permet pas d'ajouter des Effets (ActiveEffects) aux Items attachés à un Acteur. Editez plutôt un Item du monde.",
"ERROR.EditEffect":"Foundry ne permet pas d'ajouter des Effets (ActiveEffects) aux Items attachés à un Acteur. Editez plutôt un Item du monde.",
"ERROR.Table":"Table non trouvée",
"ERROR.Found":"{name} n'a pas été trouvé",
"ERROR.Species":"Impossible de trouver l'espèce {name}",
"ERROR.Experience":"Les points d'EXP doivent être des valeurs numérique.",
"ERROR.ID":"ID pour {name} existe déja dans la collection concernée. Ce Document a reçu un ID unique.",
"ERROR.EFFECT":"Une erreur est survenue lors de l'execution de l'Effet {effect}, merci de consulter la console (F12)",
"ERROR.Column":"Vous devez spécifier une colonne pour réaliser le jet",
"ERROR.Opposed":"L'attaquant et le défenseur doivent réaliser un test pour calculer l'opposition",
"ERROR.Property":"Les jets doivent indiquer la propriété de l'Item",
"ERROR.Speaker":"Les jets doivent indiquer le 'speaker'",
"ERROR.EffectNotFound":"Effet non trouvé sur le Test",
"ERROR.Parser":"Impossible de trouver {name}",
"ERROR.PrayerAoEOvercast":"La zone d'effet des Prières ne peut être augemntée",
"WARNING.Target":"Sélectionnez une cible pour appliquer l'effet.",
"WARNING.ActorTest":"Les classes de jet d'acteur ne sont plus utilisées. Appelez désormais `roll()` sur l'objet lui-même.",
"INCOME.YouEarn" : "Vous gagnez",
"INCOME.Failure" : "Vous avez eu une très mauvaise semaine, et vous ne gagnez rien (ou votre argent a été volé).",
@ -687,7 +1042,7 @@
"WFRP4E.Properties.Fast" : "Les armes Rapides sont conçues pour frapper avec une telle rapidité que parer n'est pas une option, laissant un adversaire transpercé avant qu'il n'ait pu réagir. Le porteur d'une arme Rapide peut choisir d'attaquer avec l'arme Rapide en dehors de l'initiative normale, que ce soit pour frapper le premier, le dernier ou au moment où il le souhaite. De plus, tous les Tests de Corps à corps pour se défendre contre des armes Rapides subissent une pénalité de -10 si votre adversaire utilise une arme sans l'Atout Rapide ; les autres Compétences défendent normalement. Deux adversaires avec des armes Rapides combattent dans l'ordre d'Initiative (l'un par rappport à l'autre) normalement. Une arme Rapide ne peut jamais être aussi Lente (Lente prend le dessus).",
"WFRP4E.Properties.Hack" : "Les armes de Taille possèdent de lourdes lames qui peuvent entamer les armures avec une horrifiante facilité. Si vous touchez un adversaire, vous endommagez de 1 point une pièce d'armure ou un bouclier, tout en blessant la cible.",
"WFRP4E.Properties.Impact" : "Certaines armes sont juste colossales ou causent de terribles dégâts dus à leur poids ou leur conception. Sur une touche réussie, ajoutez le résultat du dé des unités du Test d'attaque à tout Dégât causé par une arme Percutante. Une arme Inoffensive ne peut jamais être également Percutante (Inoffensive prend le dessus).",
"WFRP4E.Properties.Impale" : "Les armes Empaleuses peuvent tuer d'une simple frappe nette et causent un Coup Critique sur un mumtiple de 10 (i.e.: 10, 20, 30, etc.), ainsi que sur un double (i.e.: 11, 22, 33, etc.) obtenu inférieur ou égal au Test approprié de combat. Si l'empalement vient d'une arme à distance, la munition utilisée s'est fermement logée dans le corps de la cible. Les flèches et les carreaux nécessitent un <b>Test de Guérison Intermédiaire (-)</b> pour être retirés - les balles nécessitent un chirurgien (voir le Talent Chirurgie au Chapitre 4 : Compétences et Talents). Vous ne pouvez pas guérir 1 de vos Blessures pour chaque flèche ou balle non retirée.",
"WFRP4E.Properties.Impale" : "Les armes Empaleuses peuvent tuer d'une simple frappe nette et causent un Coup Critique sur un multiple de 10 (i.e.: 10, 20, 30, etc.), ainsi que sur un double (i.e.: 11, 22, 33, etc.) obtenu inférieur ou égal au Test approprié de combat. Si l'empalement vient d'une arme à distance, la munition utilisée s'est fermement logée dans le corps de la cible. Les flèches et les carreaux nécessitent un <b>Test de Guérison Intermédiaire (-)</b> pour être retirés - les balles nécessitent un chirurgien (voir le Talent Chirurgie au Chapitre 4 : Compétences et Talents). Vous ne pouvez pas guérir 1 de vos Blessures pour chaque flèche ou balle non retirée.",
"WFRP4E.Properties.Penetrating" : "L'arme est extrêmement efficace pour pénétrer les armures. Les PA ne provenant pas de métal sont ignorés, et le premier point de toutes les autres armures est ignoré.",
"WFRP4E.Properties.Pistol" : "Vous pouvez utiliser cette arme pour attaquer en Combat rapproché.",
"WFRP4E.Properties.Precise" : "L'arme trouve facilement sa cible. Gagnez +1DR à tout Test réussi lors d'une attaque avec cette arme.",
@ -770,6 +1125,7 @@
"MARKET.NotifyUserMustBePlayer": "Seul un joueur peut cliquer sur PAYER",
"MARKET.NotifyNoActor": "Aucun acteur n'est selectionné ou associé avec l'utilisateur actuel",
"MARKET.ItemAdded": "{item} ajouté à {actor}",
"MARKET.d":"d",
"WFRP4E.TrappingType.Weapon" : "Arme",
"WFRP4E.TrappingType.Armour" : "Armure",
@ -794,7 +1150,7 @@
"WFRP4E.LoreDescription.Metal" : "Les Sorts infligeant des Dégâts ignorent les PA des armures métalliques, et infligent un bonus de Dégâts égal au nombre de PA de l'armure métallique portée à la localisation atteinte. Donc si votre Sort frappe un Bras protégé par 2 PA d'une armure métallique, il inflige +2 Dégâts supplémentaires et ignore les PA.",
"WFRP4E.LoreDescription.Life" : "Recevez un bonus de +10 aux lancers pour Incanter ou Focaliser dans un environnement rural ou sauvage. Les créatures vivantes - par exemple les créatures ne possédant pas les Traits Démoniaque ou Mort-vivant - ciblées par les sorts du Domaine de la Vie se voient retirer tous les autres effets Exténué et Hémorragique, après que tous les autres effets ont été appliqués. Les créatures avec Trait Mort-vivant subissent un nombre de Dégâts supplémentaires égal à votre Bonus de Force Mentale, ignorant le Bonus d'Endurance et les PA, si elles sont affectées par un Sort issu du Domaine de la Vie.",
"WFRP4E.LoreDescription.Light" : "Vous pouvez infliger un Etat Aveuglé aux cibles des Sorts du Domaine de la Lumière, à moins qu'ils ne possèdent le Talent Magie de Arcanes (Lumière). Si une cible possède les Traits de créature Démoniaque ou Mort-vivant, les Sorts infligent une frappe supplémentaire avec un nombre de Dégâts égal à votre Bonus d'Intelligence qui ignore le Bonus d'Endurance et les PA.",
"WFRP4E.LoreDescription.Hedgecraft" : "Les sorts de la Magie Sauvage ne peuvent être lancés sans Ingrédients. Par chance, ceux qu'ils utilisent se trouvent facilement en bordure des villages et ne sont, la plupart du temps, que des herbes et des plantes. Vous récupérez DR+1 Ingédients lorsque vous cherchez de la nourriture en utilisant Savoir (Herboristerie), comme décrit page 131, ou vous pouvez encore les acheter pour 5 sous de cuivre chacun.",
"WFRP4E.LoreDescription.Hedgecraft" : "Les sorts de la Magie Naturelle ne peuvent être lancés sans Ingrédients. Par chance, ceux qu'ils utilisent se trouvent facilement en bordure des villages et ne sont, la plupart du temps, que des herbes et des plantes. Vous récupérez DR+1 Ingédients lorsque vous cherchez de la nourriture en utilisant Savoir (Herboristerie), comme décrit page 131, ou vous pouvez encore les acheter pour 5 sous de cuivre chacun.",
"WFRP4E.LoreDescription.Witchcraft" : "A chaque fois qu'un adepte du Domaine de la Sorcellerie fait un jet sur le Tableau des Incantations Imparfaites, il gagne 1 point de Corruption. De plus, vous pouvez infliger 1 Etat Hémorragique à toute cible d'un sort de ce Domaine. Enfin, le fait de Focaliser ou lancer des sorts de ce Domaine nécessite systématiquement un lancer sur la Table des Incantations Imparfaites Mineures à moins d'utiliser un Ingrédient. Les Ingrédients sont en général des animaux de petite taille, et peuvent s'acheter pour NI du sort sous de cuivre, au lieu des pistoles habituelles. Un Sorcier peut découvrir lui-même ses Ingrédients, avec la Compétence Survie en Extérieur : un jet réussi permet de trouver DR+1 Ingrédients.",
"WFRP4E.LoreDescription.Shadow": "Tout les sorts du Domaine des Ombres infligeant des Dommages ignorent tout les points d'Armure non magiques.",
@ -803,17 +1159,17 @@
"WFRP4E.EncumbrancePenalties.MaxEnc" : "Vous ne pouvez plus vous déplacer.",
"WFRP4E.Conditions.Ablaze" : "A la fin de chaque round, vous subissez <a class = 'chat-roll'><i class='fas fa-dice'></i> 1d10</a> Points de Blessure, résultat modifié par votre Bonus d'Endurance et les PA de la Localisation la moins protégée, pour un minimum de 1 Blessure. Pour chaque Etat En flammes supplémentaire que vous subissez, ajoutez +1 aux Dégâts subis ; ainsi, si vous avez 3 Etats En flammes, vous subissez 1d10+2 Points de Blessure.<br><br>Un unique Etat En flamme peut être retiré avec un Test d'Athlétisme, et chaque DR obtenu permet de retirer un Etat En flamme supplémentaire, la difficulté du Test étant ajustée en fonction des circonstances : il est plus facile de se défaire des flammes en se roulant dans le sable qu'au milieu d'une cuisine pleine d'huile.",
"WFRP4E.Conditions.Bleeding" : "Vous saignez abondamment. Perdez 1 Blessure à la fin de chaque round, en ignorant les modificateurs. De plus, vous subissez une pénalité de -10 lorsqu'il s'agit de faire un Test pour résister à une Blessure Purulente, une Infection Mineure ou Infection du sang (voir page 186). Si vous atteignez 0 Blessure, vous ne perdez plus de Points de Blessure supplémentaires et tombez immédiatement inconscient (gagnez l'Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Inconscient</a>). A la fin du round, vous avez 10% de risque de mourir par Etat Hémorragique que vous possédez ; par exemple, sur un 1-30 si vous en avez 3. Si vous faites un double sur ce jet, vos blessures coagulent un peu et vous perdez 1 Etat Hémorragique. Vous ne pouvez pas reprendre vos esprits tant que tous les Etats Hémorragiques ne sont pas retirés (voir <b>Traumatisme</b> page 172).<br><br>On peut retirer un Etat Hémorragique avec : un Test de Guérison réussi, où chaque DR retire un Etat Hémorragique supplémentaire ; ou avec n'importe quel Sort ou Prière qui guérit les Points de Blessure, avec un Etat retiré par Point de Blessure guéri.<br><br>Une fois tous les Etats Hémorragiques retirés, gagnez un Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Exténué</a>.",
"WFRP4E.Conditions.Bleeding" : "Vous saignez abondamment. Perdez 1 Blessure à la fin de chaque round, en ignorant les modificateurs. De plus, vous subissez une pénalité de -10 lorsqu'il s'agit de faire un Test pour résister à une Blessure Purulente, une Infection Mineure ou Infection du sang (voir page 186). Si vous atteignez 0 Blessure, vous ne perdez plus de Points de Blessure supplémentaires et tombez immédiatement inconscient (gagnez l'Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Inconscient</a>). A la fin du round, vous avez 10% de risque de mourir par Etat Hémorragique que vous possédez ; par exemple, sur un 1-30 si vous en avez 3. Si vous faites un double sur ce jet, vos blessures coagulent un peu et vous perdez 1 Etat Hémorragique. Vous ne pouvez pas reprendre vos esprits tant que tous les Etats Hémorragiques ne sont pas retirés (voir <b>Traumatisme</b> page 172).<br><br>On peut retirer un Etat Hémorragique avec : un Test de Guérison réussi, où chaque DR retire un Etat Hémorragique supplémentaire ; ou avec n'importe quel Sort ou Prière qui guérit les Points de Blessure, avec un Etat retiré par Point de Blessure guéri.<br><br>Une fois tous les Etats Hémorragiques retirés, gagnez un Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Extenué</a>.",
"WFRP4E.Conditions.Blinded" : "Vous n'êtes plus capables de voir clairement, que ce soit à cause d'un éclair lumineux ou d'un liquide que vous avez reçu dans les yeux. Vous subissez une pénalité de -10 à tous les Tests qui impliquent la vue, et un adversaire qui vous attaque en combat rapproché gagne un bonus de +10 avant d'effectuer son lancer.<br><br>Un Etat Aveuglé est retiré à la fin de chaque round, a partir du prochain round.",
"WFRP4E.Conditions.Broken" : "Vous êtes terrifié, vaincu, paniqué ou encore convaincu que vous allez mourir. Pendant votre tour, votre Mouvement et votre Action doivent être utilisés pour vous éloigner le plus vite possible jusqu'à ce que vous vous retrouviez à l'abri, hors de vue de l'ennemi ; vous pourrez alors utiliser une Action sur une Compétence qui vous permettra de vous cacher plus efficacement. Vous subissez également une pénalité de -10 à tous les Tests autres que ceux impliquant la course ou la dissimulation.<br><br> Vous ne pouvez effectuer aucun Test pour récupérer de cet Etat si vous êtes Engagé avec un ennemi (voir page 159). Si vous n'êtes pas engagé, à la fin de chaque round, vous pouvez tenter un Test de Calme pour vous débarasser d'un Etat Brisé, où chaque DR retire un Etat Brisé supplémentaire, et dont la difficulté est dictée par les circonstance dans lesquelles vous vous trouvez; il est plus facile de vous reprendre pour recouvrer vos esprits si vous vous cachez derrière un tonneau au fond d'une impasse située loin du danger (Accessible +20) plutôt que lorsque vous vous trouvez à trois enjambées d'un démon salivant qui réclame votre sang (Très difficile -30).<br><br>Si vous passez un round entier à être caché hors de vue de tout ennemi, vous retirez 1 Etat Brisé.<br><br>Une fois que vous n'avez plus d'Etat Brisé, vous gagnez 1 Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Exténué</a>.",
"WFRP4E.Conditions.Broken" : "Vous êtes terrifié, vaincu, paniqué ou encore convaincu que vous allez mourir. Pendant votre tour, votre Mouvement et votre Action doivent être utilisés pour vous éloigner le plus vite possible jusqu'à ce que vous vous retrouviez à l'abri, hors de vue de l'ennemi ; vous pourrez alors utiliser une Action sur une Compétence qui vous permettra de vous cacher plus efficacement. Vous subissez également une pénalité de -10 à tous les Tests autres que ceux impliquant la course ou la dissimulation.<br><br> Vous ne pouvez effectuer aucun Test pour récupérer de cet Etat si vous êtes Engagé avec un ennemi (voir page 159). Si vous n'êtes pas engagé, à la fin de chaque round, vous pouvez tenter un Test de Calme pour vous débarasser d'un Etat Brisé, où chaque DR retire un Etat Brisé supplémentaire, et dont la difficulté est dictée par les circonstance dans lesquelles vous vous trouvez; il est plus facile de vous reprendre pour recouvrer vos esprits si vous vous cachez derrière un tonneau au fond d'une impasse située loin du danger (Accessible +20) plutôt que lorsque vous vous trouvez à trois enjambées d'un démon salivant qui réclame votre sang (Très difficile -30).<br><br>Si vous passez un round entier à être caché hors de vue de tout ennemi, vous retirez 1 Etat Brisé.<br><br>Une fois que vous n'avez plus d'Etat Brisé, vous gagnez 1 Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Extenué</a>.",
"WFRP4E.Conditions.Deafened" : "Que ce soit à cause d'un bruit tonitruant ou d'un coup porté à la tête, vous ne parvenez plus à entendre correctement. Vous subissez une pénalité de -10 à tous les Tests impliquant l'audition, et tout adversaire qui vous attaque en combat rapproché par le flanc ou par derrière gagne un bonus supplémentaire de +10 pour vous toucher (ce bonus n'est pas augmenté avec de multiples Etats Assourdi). Un Etat Assourdi est retiré à la fin de chaque round qui suit le premier, souvent remplacé par un acouphène.",
"WFRP4E.Conditions.Entangled" : "Vous êtes gêné par quelque chose qui restreint votre déplacement ; cela peut être des cordes, une toile d'araignée, ou les biceps protubérants d'un adversaire.<br><br>Au cours de votre tour, vous ne pouvez pas utiliser votre Mouvement, et toute Action qui implique un déplacement quelconque subit une pénalité de -10 (dont l'Empoignade ; voir page 163).<br><br>Vous pouvez utiliser votre Action pour retirer l'Etat Empêtré en réussissant un <b>Test opposé de Force</b> contre la source de cet empêtrement, et chaque DR obtenu permet de retirer un Etat Empêtré supplémentaire.",
"WFRP4E.Conditions.Fatigued" : "Vous êtes épuisé, ou stressé, mais quoi qu'il en soit, vous avez besoin de repos.<br><br>Vous subissez une pénalité de -10 à tous vos Tests.<br><br>Pour retirer un Etat Exténué, il faut normalement du repos, un Sort ou une Prière divine, mais, dans certaines conditions, par exemple lorsque l'Etat Exténué est dû à une charge portée trop importante (voir Encombrement, page 293), le fait de faire des modifications (comme porter moins de matériel, par exemple) peut permettre de retirer l'Etat.",
"WFRP4E.Conditions.Poisoned" : "Vous avez été empoisonné ou un venin vous a été injecté. La difficulté de tous les Tests effectués pour éliminer le poison est dictée par le poison ou le venin en question.<br><br>A la fin de chaque round, perdez 1 Point de Blessure, en ignorant tous les modificateurs. De plus, vous subissez une pénalité de -10 à tous vos Tests.<br><br>Si vous atteignez 0 Point de Blessure alors que vous êtes Empoisonné, vous ne pouvez soigner aucune Blessure tant qu'il vous reste des Etats Empoisonnés. Si vous tombez Inconscient alors que vous êtes Empoisonné, réussissez un Test de Résistance après un nombre de rounds équivalent à votre Bonus d'Endurance ou vous mourrez dans d'horribles souffrances (cf. page 172).<br><br>A la fin de chaque round, vous pouvez effectuer un test de Resistance. Sur un succès, retirez un Etat Empoisonné, et chaque DR permet d'en retirer un supplémentaire. Un Test de Guérison permet d'obtenir le même résultat.<br><br>Une fois débarassé de tous les Etats Empoisonné, gagnez 1 Etat Exténué.",
"WFRP4E.Conditions.Prone" : "Vous vous retrouvez au sol, sans doute parce que vous n'avez plus de Points de Blessure disponibles, que vous avez chuté ou que vous avez été frappé par quelque chose de très gros.<br><br>Pendant votre tour, votre Mouvement ne peut être utilisé que pour vous relever ou encore ramper de la moitié de votre Mouvement en mètres (Note : s'il ne vous reste plus aucune Blessure, vous ne pouvez que ramper). Vous subissez une pénalité de -20 à tout Test qui implique un déplacement quelconque, et tout adversaire qu itente de vous attaquer en Combat au Corps à corps gagne un bonus de +20 pour vous toucher.<br><br>A l'inverse de la plupart des Etats, A Terre ne se cumule pas. Vous perdez l'Etat A Terre lorsque vous vous relevez.",
"WFRP4E.Conditions.Stunned" : "Vous avez reçu un coup sur la tête, ou êtes désorienté ou confus ; vos oreilles bourdonnent et plus rien n'a vraiment de sens.<br><br> Vous êtes incapable d'effectuer votre Action au cours de votre tour et vous ne pouvez vous déplacer que de la moitié de votre Mouvement. Vous pouvez vous défendre lors des Tests opposés - mais pas ceux qui utilisent Langue (Magique). Vous subissez également une pénalité de -10 à tous les Tests, et tout adversaire qui tente de vous frapper en Combat au Corps à corps gagne +1 Avantage avant d'effectuer son attaque.<br><br>A la fin de chaque round, vous pouvez tenter un <b>Test de Résistance Intermédiaire (+0)</b>. Sur un succès, retirez 1 Etat Assommé, et chaque DR obtenu permet de retirer 1 Etat Assommé supplémentaire.<br><br>Une fois débarassé de tous les Etats Assommé, gagnez 1 Etat <a class='condition-chat'><i class='fas fa-user-injured'></i>Exténué</a> si vous n'en possédez pas déjà.",
"WFRP4E.Conditions.Stunned" : "Vous avez reçu un coup sur la tête, ou êtes désorienté ou confus ; vos oreilles bourdonnent et plus rien n'a vraiment de sens.<br><br> Vous êtes incapable d'effectuer votre Action au cours de votre tour et vous ne pouvez vous déplacer que de la moitié de votre Mouvement. Vous pouvez vous défendre lors des Tests opposés - mais pas ceux qui utilisent Langue (Magique). Vous subissez également une pénalité de -10 à tous les Tests, et tout adversaire qui tente de vous frapper en Combat au Corps à corps gagne +1 Avantage avant d'effectuer son attaque.<br><br>A la fin de chaque round, vous pouvez tenter un <b>Test de Résistance Intermédiaire (+0)</b>. Sur un succès, retirez 1 Etat Assommé, et chaque DR obtenu permet de retirer 1 Etat Assommé supplémentaire.<br><br>Une fois débarassé de tous les Etats Assommé, gagnez 1 Etat <a class='condition-chat'><i class='fas fa-user-injured'></i>Extenué</a> si vous n'en possédez pas déjà.",
"WFRP4E.Conditions.Surprised" : "Vous avez été pris au dépourvu et vous n'êtes absolument pas prêt à réagir à ce qui arrive. Vous ne pouvez effectuer ni votre Mouvement ni votre Action pendant ce tour, et vous ne pouvez pas vous défendre lors de Tests opposés. Tout adversaire qui tente de vous frapper en Combat au Corps à corps gagne +20 à la CC.<br><br>L'Etat Surpris ne se cumule pas, et donc vous ne pouvez pas en subir plusieurs.<br><br>A la fin de chaque round, ou après la première tentative effectuée pour vous toucher, vous perdez l'Etat Surpris.",
"WFRP4E.Conditions.Unconscious" : "Vous êtes KO, inconscient, ou frappé d'incapacité. Vous ne pouvez absolument rien faire de votre tour et n'avez aucune conscience de ce qui vous entoure. Un attaquant qui vous cible touche automatiquement, avec un DR maximal et vous inflige 1 Blessure Critique ; ou, si le MJ préfère, une attaque en combat rapproché vou tue automatiquement. Toute attaque à distance est également un succès et occassionne les mêmes Dégâts que si le tireur éait à bout portant.<br><br>L'Etat Inconscient ne se cumule pas.<br><br>Récupérer d'un Etat Inconscient va bien souvent dépendre des circonstances qui ont causé cette inconscience. Reportez-vous aux Traumatismes (page 192) pour en savoir plus sur le sujet. Si vous dépensez un Point de Détermination pour vous débarasser d'un Etat Inconscient, mais que vous êtes toujours sujet aux causes de cette inconscience, vous gagnez un nouvel Etat Inconscient à la fin du round.<br><br>Lorsque vous vous débarassez de l'Etat Inconscient, vous gagnez les Etats <a class='condition-chat'><i class='fas fa-user-injured'></i> A Terre</a> et <a class='condition-chat'><i class='fas fa-user-injured'></i> Exténué</a>.",
"WFRP4E.Conditions.Unconscious" : "Vous êtes KO, inconscient, ou frappé d'incapacité. Vous ne pouvez absolument rien faire de votre tour et n'avez aucune conscience de ce qui vous entoure. Un attaquant qui vous cible touche automatiquement, avec un DR maximal et vous inflige 1 Blessure Critique ; ou, si le MJ préfère, une attaque en combat rapproché vou tue automatiquement. Toute attaque à distance est également un succès et occassionne les mêmes Dégâts que si le tireur éait à bout portant.<br><br>L'Etat Inconscient ne se cumule pas.<br><br>Récupérer d'un Etat Inconscient va bien souvent dépendre des circonstances qui ont causé cette inconscience. Reportez-vous aux Traumatismes (page 192) pour en savoir plus sur le sujet. Si vous dépensez un Point de Détermination pour vous débarasser d'un Etat Inconscient, mais que vous êtes toujours sujet aux causes de cette inconscience, vous gagnez un nouvel Etat Inconscient à la fin du round.<br><br>Lorsque vous vous débarassez de l'Etat Inconscient, vous gagnez les Etats <a class='condition-chat'><i class='fas fa-user-injured'></i> A Terre</a> et <a class='condition-chat'><i class='fas fa-user-injured'></i> Extenué</a>.",
"WFRP4E.Conditions.Grappling" : "Si vous commencez votre tour Empoigné, vous pouvez briser l'Empoignade si vous disposez d'un Avantage supérieur à celui de votre adversaire, et vous n'êtes pas considéré comme Engagé pour votre Mouvement ; autrement, vous devez effectuer un <b>Test opposé de Force</b> pour votre Action. Sur un succès, vous pouvez choisir une des deux options suivantes :<br><ul><li>Infliger BF+DR Dégâts en utilisant votre lancer de Force pour déterminer la Localisation affectée. Vous ignorez tous les PA car vous ne faites qu'effectuer des clefs de bras tout en tirant sur les muscles.</li><li>Soit : 1) Conférer l'Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Empêtré</a> à votre adversaire, ou 2) vous défaire de l'Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Empêtré</a> et vous débarasser d'un Etat Empêtré supplémentaire pour chaque DR obtenu.</li></ul>",
"WFRP4E.Conditions.Fear" : "Lorsque vous êtes sous le coup de la Peur, vous subissez -1DR à tous les Tests en rapport avec la source de votre peur. Vous êtes incapable de vous rapprocher de ce qui provoque cette Peur à moins de réussir un <b>Test de Calme Intermédiaire (+0)</b>. Si la source de votre Peur se rapproche de vous, vous devez réussir un <b>Test de Calme Intermédiaire (+0)</b> ou subir un Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Brisé</a>.",
@ -823,7 +1179,7 @@
"WFRP4E.ConditionName.Broken" : "Brisé",
"WFRP4E.ConditionName.Deafened" : "Assourdi",
"WFRP4E.ConditionName.Entangled" : "Empêtré",
"WFRP4E.ConditionName.Fatigued" : "Exténué",
"WFRP4E.ConditionName.Fatigued" : "Extenué",
"WFRP4E.ConditionName.Poisoned" : "Empoisonné",
"WFRP4E.ConditionName.Prone" : "A Terre",
"WFRP4E.ConditionName.Stunned" : "Assommé",
@ -842,7 +1198,7 @@
"WFRP4E.SymptomDescriptions.Flux" : "Dans un premier temps apparaissent borborygmes et gargouillis, puis c'est la course vers les commodités. Pâle et épuisé, vous avez connu des jours meilleurs. Vous pouvez avoir besoin d'y aller à n'importe quel moment et vous saisissez toute opportunité pour vous soulager, à vous de vous débrouiller. De plus, le ML peut décider, n'importe quand au cours de la partie, que vous devez vous y rendre. Vous disposez alors d'un nombre de rounds égal à votre Bonus d'Endurance pour vous trouver un endroit calme. Que vous y parveniez ou non, votre corps se videra de façons spectaculaire. Si l'Intoxication Alimentaire est indiquée comme (Modérée), le ML peut vous demander de vous isoler deux fois par séance de jeu. Si elle est indiquée (Grave), c'est trois fois, et vous perdrez une Blessure à chaque fois, car le sang que vous avez perdu vous laisse sur les rotules. ",
"WFRP4E.SymptomDescriptions.Gangrene" : "Votre chair noircit et pourrit, infectée par quelque chose d'horrible. Et cela ne semble pas s'arranger. Effectuez un lancer de pourcentage pour déterminer une <a class ='table-click' data-table='hitloc'><i class='fas fa-list'></i> Localisation</a>. Si vous obtenez Corps, vous avez de la chance, la Gangrène ne s'est pas propagée au cours de l'infection. Si vous obtenez la Tête, c'est votre nez qui est touché. Si vous obtenez Bras, ce sont vos doigts. Si c'est la Jambe, c'est votre pied qui est atteint. Chaque jour, effectuez un <b>Test de Résistance Accessible (+20)</b>. Sur un succès, la Gangrène est contenue. Sur un échec, elle empire. Si vous obtenez plus d'échecs que votre Bonus d'Endurance, la Localisation devient totalement inutilisable. Si cela se produit, utilisez les mêmes règles que pour l'Amputation (voir Blessures Critiques). Tant que vous souffrez de la Gangrène, subissez une pénalité de 10 à tous vos Tests de Sociabilité, et vous subissez le symptôme Blessé. De plus, comme si ce n'était pas suffisant, vous souffrez également du symptôme Toxine tant que le membre affecté ne sera pas amputé. Et cela perdurera même après que vous avez été guéri de la maladie à l'origine de la Gangrène. ",
"WFRP4E.SymptomDescriptions.Lingering" : "Vous avez une infection qui perdure. De ce fait, vous craignez que cela empire... Après que votre maladie est arrivée à la fin de sa Durée, effectuez un Test de Résistance avec la Difficulté indiquée entre parenthèses après le symptôme comme ceci : Persistant (Accessible) ou Persistant (Facile). Sur un Echec Minime (0), rajoutez <a class = 'chat-roll'><i class='fas fa-dice'></i> 1d10</a> jours à la Durée. Sur un Echec (-2), vous subissez une Blessure Purulente. Sur un Echec Stupéfiant (-6), vous développez une Infection du sang.",
"WFRP4E.SymptomDescriptions.Malaise" : "Vous ne vous sentez pas bien du tout. Vous êtes fatigué, ressentez des difficultés à vous concentrer. En fait, vous vous sentez malade. Gagnez un Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Exténué</a> dont vous ne pourrez vous défaire qu'une fois votre maladie guérie.",
"WFRP4E.SymptomDescriptions.Malaise" : "Vous ne vous sentez pas bien du tout. Vous êtes fatigué, ressentez des difficultés à vous concentrer. En fait, vous vous sentez malade. Gagnez un Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Extenué</a> dont vous ne pourrez vous défaire qu'une fois votre maladie guérie.",
"WFRP4E.SymptomDescriptions.Nausea" : "Vous vous sentez très malade et vous risquez de vomir si vous vous déplacez trop vite. Chaque fois que vous échouez à un Test qui implique un déplacement physique, votre nausée prend le dessus et vous vomissez. Vous gagnez l'Etat <a class = 'condition-chat'><i class='fas fa-user-injured'></i> Assommé</a> qui représente les conséquences de ces vomissements répétitifs ou de la déshydratation, en fonction des circonstances.",
"WFRP4E.SymptomDescriptions.Pox" : "Vous êtes recouvert de pustules, de gonflements, d'éruptions cutanées ou de boutons qui vous démangent, et c'est loin de vous rendre attirant. Les démangeaisons constituent surtout un problème esthétique, et impliquent une pénalité de -10 à tous les Tests de Sociabilité. De plus, n'oubliez pas d'interpréter ces démangeaisons en cours de jeu. Si vous voulez vous retenir un tant soit peu, réussissez un <b>Test de Calme Accessible (+20)</b>. Lorsque les démangeaisons s'arrêtent, effectuez un <b>Test de Calme Accessible (+20)</b>. Sur un échec, intervertissez les deux chiffres du résultat et vous recevez une cicatrice permanente à la Localisation correspondante, montrant ainsi l'endroit où ce démangeaisons n'ont pas été correctement traitées. Si la <a class='table-click' data-table = 'hitloc'><i class='fas fa-list'></i> Localisation</a> est la Tête, perdez définitivement 1 point de Sociabilité.",
"WFRP4E.SymptomDescriptions.Wounded" : "Vous avez une blessure ou une plaie ouverte qui ne guérit pas correctement à cause d'une infection. Pour chaque symptôme Blessé dont vous souffrez, vous ne pouvez pas guérir l'une de vos Blessures, qui reste donc ouverte et vous fait souffrir. Certains écoulements de pus sont même possibles. Chaque jour, réussissez un <b>Test de Résistance Facile (+20)</b> ou subissez une Blessure Purulente si vous n'en avez pas déjà une.",
@ -870,7 +1226,7 @@
"Blight": "Toxine",
"Buboes": "Bubons",
"Convulsion": "Convulsions",
"Convulsion": "Convulsion",
"Convulsions": "Convulsions",
"Coughs and Sneezes": "Toux et éternuements",
"Fever": "Fièvre",
@ -884,8 +1240,12 @@
"Delirium": "Délire",
"Swelling": "Gonflement",
"Treatment": "Traitement",
"Wounds Healed" : "Blessures soignées",
"BugReport.ErrorForm":"Merci de remplir le formulaire",
"BugReport.ErrorName1":"Merci d'inclure votre Tag Discord ou vitre mail dans la section Nom.",
"BugReport.ErrorName2":"Votre Tag Discord ou votre email est requis dans la section Nom.",
"ITEM.LoreEffectPlaceholder" : "Remplacer le savoir par défaut",
"ITEM.ChannelOverride" : "Remplacer la focalisation",
"ITEM.ChannelPlaceholder" : "Remplacer la compétence de Focalisation à utiliser.",
@ -893,6 +1253,7 @@
"ITEM.DiceRoll" : "Jet de Dé",
"ITEM.AddSL" : "Ajouter DR",
"ITEM.ValuePerOvercast" : "Valeur/Surincantation",
"ITEM.CastSkillOverride":"Remplacer la compétence d'incantation",
"AllowXPSpending": "Forcer l'indicateur d'avancement",
"TooltipAllowXPSpending": "Afficher l'indicateur d'avancement indépendamment de la carrière, ce qui vous permet d'automatiser les dépenses de PX",
@ -914,7 +1275,7 @@
"Vintner": "Vigneron",
"Politics": "Politique",
"Riverways": "Voies fluviales",
"Act": "Comédie",
"Act": "Interprétation",
"Writing": "Ecriture",
"Printing": "Imprimerie",
"Plants": "Plantes",
@ -923,11 +1284,11 @@
"Any color": "Couleur au choix",
"Any Color": "Couleur au choix",
"Herbs": "Herbes",
"Acting": "Comédie",
"Acting": "Interprétation",
"Thief": "Voleur",
"Taunt": "Raillerie",
"Gunsmith": "Armurier",
"Farrier": "Maréchal-Ferrand",
"Farrier": "Maréchal-ferrant",
"Batle": "Guerre",
"Knighty Order": "Ordre chevaleresque",
"Guilder": "Guilde",
@ -943,38 +1304,38 @@
"Witchery": "Sorcellerie",
"Criminals": "Criminels",
"Speeches": "Discours",
"Daemonology": "Démonologie",
"any": "Au choix",
"Servants": "Serviteurs",
"Geography": "Géographie",
"Rural or Urban": "Rural ou Urbain",
"Rural or Urban": "Rurale ou Urbaine",
"Throwing": "Lancer",
"Engineer": "Ingénieur",
"Beasts": "Bêtes sauvages",
"Animals": "Animaux",
"Hunter": "Chasseur",
"Medicine": "Médecine",
"Scholar": "Etudes",
"Medicine": "Remèdes",
"Scholar": "Erudit",
"Scholars": "Erudits",
"Guilders": "Guildes",
"Drum or Fife": "Tambour ou Flûte",
"Drum or Fife": "Tambour ou Fifre",
"Smuggler": "Contrebandier",
"Wreckers": "Naufrageurs",
"Underground or Urban": "Sous-sol ou Urbain",
"Underground or Urban": "Urbaine ou Souterrains",
"Crossbow Pistol": "Arbalète à répétition",
"Prophecy": "Prophéties",
"Prophecy": "Prophétie",
"Astrology": "Astrologie",
"Genealogy": "Généalogie",
"Fortune Telling": "Bonne aventure",
"Beastmen": "Hommes Bêtes",
"Fortune Telling": "Voyance",
"Beastmen": "Hommes-bêtes",
"Outlaws": "Hors-la-loi",
"Boatbuilder": "Charpentier de marine",
"Marshes": "Marais",
"Boatbuilder": "Constructeur de bateaux",
"Marshes": "Marécages",
"Estalian or Tilean": "Estalien ou Tiléen",
"Two-handed": "A deux mains",
"The Empire": "Empire",
"Icons": "Icones",
"Rhetoric": "Rétorique",
"Cultists": "Cultistes",
"Rhetoric": "Rhétorique",
"Cultists": "Fidèles",
"Fight": "Combat",
"Flail or Two-handed": "Fléau ou A deux mains",
"Anatomy": "Anatomie",
@ -982,20 +1343,40 @@
"Barber": "Barbier",
"Miner": "Mineur",
"Explosives": "Explosifs",
"Art Supplies": "Fournitures artistiques",
"Taste or Touch": "Gouter ou Toucher",
"Art Supplies": "Matériel artistique",
"Taste or Touch": "Goût ou Toucher",
"Apothecary": "Apothicaire",
"Knightly Order": "Ordre de Chevalerie",
"Knightly Order": "Ordre chevaleresque",
"Sickle": "Faucille",
"Taste": "Gout",
"Charms": "Charmes",
"Taste": "Goût",
"Charms": "Colifichets",
"Spirits": "Esprits",
"Hedgecraft": "Magie Sauvage",
"Woodlands": "Forêts",
"Woodlands": "Régions boisées",
"Giants": "Géants",
"Thrown": "Lancer",
"RestRecover": "Se Reposer et Guérir",
"Metallurgy": "Métallurgie",
"Geology": "Géologie",
"Local": "Région",
"local": "Région",
"Coastal": "Littoral",
"Riverwardens": "Patrouilleurs fluviaux",
"Sight": "Vue",
"Heretics": "Hérétiques",
"Rocky": "Rocailleux",
"Celestial": "Cieux",
"Undead": "Morts-vivants",
"Boatbuilding": "Construction de bateaux",
"Engraver": "Graveur",
"Horse": "Cheval",
"Lecture": "Conférence",
"Cartographer": "Cartographe",
"Cartography": "Cartographie",
"Road Wardens": "Patrouilleurs routiers",
"Bounties": "Primes",
"Mootish": "Halfling",
"Cook": "Cuisinier",
"Silver": "Argent",
"Gold": "Or",
"Brass": "Bronze",
@ -1013,7 +1394,7 @@
"Warrior": "Guerriers",
"Ranger": "Itinérants",
"Courtier": "Courtisans",
"Calvalry": "Cavalerie",
"Flail": "Fléau",
"Parry": "Parade",
@ -1034,7 +1415,6 @@
"Storytelling": "Raconter",
"Petty": "Mineure",
"Beasts": "Bêtes",
"Death": "Mort",
"Fire": "Feu",
"Heavens": "Cieux",
@ -1042,7 +1422,7 @@
"Life": "Vie",
"Light": "Lumière",
"Shadow": "Ombres",
"Hedgecraft": "Sauvage",
"Hedgecraft": "Magie naturelle",
"Witchcraft": "Sorcellerie",
"Daemonology": "Démonologie",
"Necromancy": "Nécromancie",
@ -1119,7 +1499,6 @@
"CHARBonus.WP": "Bonus de Force Mentale",
"CHARBonus.Fel": "Bonus de Sociabilité",
"Bonus" : "Bonus",
"NAME.Armour" : "Armure",
"NAME.Hardy" : "Dur à cuire",
"NAME.Small" : "Petit",
@ -1137,7 +1516,59 @@
"NAME.Ward" : "Protection",
"NAME.Unstable" : "Instable",
"NAME.Infighter": "In-fighter",
"NAME.TraitWeapon": "Arme",
"NAME.TraitRanged": "A Distance",
"NAME.TraitArmour": "Armure",
"NAME.MeleeBrawling": "Corps à coprs (Bagarre)",
"NAME.AcuteSense":"Sens aiguisé",
"NAME.AnimalCare":"Soins des animaux",
"NAME.AnimalTraining":"Dressage",
"NAME.Art":"Art",
"NAME.Athletics":"Athlétisme",
"NAME.Bribery":"Subornation",
"NAME.Charm":"Charme",
"NAME.CharmAnimal":"Emprise sur les animaux",
"NAME.Climb":"Escalade",
"NAME.DarkVision":"Infravision",
"NAME.DeadeyeShot":"Tir mortel",
"NAME.Doomed":"Destinée",
"NAME.Drive":"Conduite d'attelage",
"NAME.Entertain":"Divertissement",
"NAME.Etiquette":"Savoir-vivre",
"NAME.Evaluate":"Evaluation",
"NAME.Fear":"Peur",
"NAME.Gamble":"Pari",
"NAME.Gossip":"Ragot",
"NAME.Haggle":"Marchandage",
"NAME.Heal":"Guérison",
"NAME.Intimidate":"Intimider",
"NAME.Intuition":"Intuition",
"NAME.Leadership":"Commandement",
"NAME.Lore":"Domaine",
"NAME.Luck":"Chance",
"NAME.Navigation":"Navigation",
"NAME.NightVision":"Vision Nocturne",
"NAME.OutdoorSurvival":"Survie en extérieur",
"NAME.Perception":"Perception",
"NAME.Perform":"Représentation",
"NAME.Play":"Musicien",
"NAME.Research":"Recherche",
"NAME.Resistance":"Résistance",
"NAME.Ride":"Chevaucher",
"NAME.Row":"Ramer",
"NAME.Sail":"Voile",
"NAME.Savant":"Savant",
"NAME.SecretSigns":"Signes secrets",
"NAME.SetTrap":"Piégeage",
"NAME.SleightOfHand":"Escamotage",
"NAME.Strider":"Bon marcheur",
"NAME.StrikeToStun":"Frappe assommante",
"NAME.StrongMinded":"Obstiné",
"NAME.Swim":"Natation",
"NAME.Terror":"Terreur",
"NAME.Track":"Pistage",
"NAME.Trade":"Métier",
"SPEC.Tiny" : "Minuscule",
"SPEC.Little" : "Très petite",
"SPEC.Small" : "Petit",
@ -1147,6 +1578,8 @@
"SPEC.Monstrous" : "Monstrueuse",
"SPEC.Vehicle": "Véhicule",
"SPELL.Lore":"Domaine:",
"Tiny" : "Minuscule",
"Little" : "Très petite",
"Small" : "Petit",
@ -1166,7 +1599,9 @@
"Rich folks": "Gens riches",
"Fangs": "Crocs",
"Scales": "Ecailles",
"Commands":"Commandes",
"NAME.BP" : "Sous de Cuivre",
"NAME.SS" : "Pistole d'Argent",
"NAME.GC" : "Couronne d'Or",
@ -1205,7 +1640,7 @@
"NAME.Disease" : "Maladie",
"NAME.Daemonic" : "Démoniaque",
"NAME.Slayer" : "Meurtrier",
"NAME.DualWielder" : "Maniement de 2 armes",
"NAME.DualWielder" : "Maniement de deux armes",
"NAME.Corruption" : "Corruption",
"NAME.Trickriding" : "Acrobaties équestres",
"NAME.Undead" : "Mort-vivant",
@ -1245,6 +1680,11 @@
"SHEET.DisabledEffects" : "Effets Désactivés",
"SHEET.AppliedEffects" : "Effets en cours",
"SHEET.Source" : "Source",
"SHEET.CareerSkillNotif":"Changement de {oldname} à {newname} dans {career}",
"SHEET.LoadingCareers":"Chargement des carrières...",
"SHEET.Target":"Cible",
"SHEET.ToggleTraits":"Basculer le(s) Trait(s) de Creature",
"SHEET.SortItems":"Trier les items",
"DISEASE.IncubationFinished" : "Incubation de la maladie {disease} terminée. ",
@ -1337,7 +1777,8 @@
"ITEM.IsSpec" : "Est une spécialisation",
"ITEM.NoSpec" : "Pas de spécialisation",
"ITEM.Reloading": "Rechargement",
"Instant" : "Immédiat",
"Casting Number": "Niveau d'Incantation",
@ -1365,7 +1806,9 @@
"OPPOSED.DefenderWins" : "<b>{defender}</b> gagne contre <b>{attacker}</b> par {SL} DR",
"OPPOSED.AttackerWins" : "<b>{attacker}</b> gagne contre <b>{defender}</b> par {SL} DR",
"OPPOSED.DaemonicRoll":"<b>Jet Démoniaque</b>: {roll}",
"OPPOSED.WardRoll":"<b>Jet de Garde</b>: {roll}",
"FORTUNE.Use" : "Point de chance utilisé",
"FORTUNE.UsageRerollText" : "{character} a utilisé un Point de Chance pour relancer un échec.",
"FORTUNE.PointsRemaining" : "Points de Chance restants:",
@ -1386,8 +1829,10 @@
"CHATOPT.UseFortuneSL":"Utiliser un Point de Chance pour ajouter +1 DR",
"CHATOPT.DarkDeal": "Conclure un Sombre Pacte pour relancer (+1 Point de Corruption)",
"CHATOPT.OpposeTarget": "Opposé avec les Cibles",
"Shipwright": "Charpentier de Marine",
"CHATOPT.ApplyAllDamage":"Appliquer tout les dommages",
"CHATOPT.CompleteUnopposed":"Finier tout les tests opposés",
"Shipwright": "Constructeur de bateaux",
"Riverways or Sea Lanes": "Rivières ou Voies Maritimes",
"Embalmer": "Embaumeur",
"Strategy": "Stratégie",
@ -1405,11 +1850,15 @@
"Farmer": "Fermier",
"Garneder": "Jardinier",
"Woodland": "Forêts",
"Routes": "Itinéraires",
"Etiquette": "Savoir-vivre",
"Watchmen": "Miliciens",
"Broken": "Dressé",
"Home": "Revenir à la maison",
"Male": "Homme",
"Female": "Femme",
"Update": "Mise à jour",
"TRAVEL.TravelMessageBase": "De <b>{from}</b> à <b>{to}</b> : ",
"TRAVEL.TravelMessageRoad": "<br><b>Route</b> : {road_distance} km<br>&nbsp;&nbsp;En chariot : {road_days} jours, danger {road_danger_string}<br>&nbsp;&nbsp;A Cheval : {road_horse_heavy_days} jours, danger {road_danger_string}<br>&nbsp;&nbsp;A Cheval (Rapide) : {road_horse_fast_days} jours, danger {road_danger_string}<br>&nbsp;&nbsp;A Pied : {road_feet_days} jours, danger {road_danger_feet_string}",
@ -1440,6 +1889,7 @@
"VEHICLE.NoActor": "Assignez un acteur au rôle",
"VEHICLE.NoActorOnBoard": "Le personnage qui vous est assigné n'est pas dans le véhicule",
"VEHICLE.TestNotPermitted": "Vous n'avez pas la permission de réaliser ce test",
"VEHICLE.ft":"ft",
"CONFIGURE.CalcTokenSize" : "Calculer automatiquement la taille des Tokens",
"CONFIGURE.CalcRun" : "Calculer automatiquement la vitesse de course",
@ -1449,10 +1899,15 @@
"CONFIGURE.CalcCorruption" : "Calculer automatiquement la Corruption",
"CONFIGURE.CalcMaxEnc" : "Calculer automatiquement l'Encombrement max.",
"CONFIGURE.AddActorEncumbrance" : "Ajouter l'encombrement des Acteurs",
"CONFIGURE.EquipPoints": "Points d'équipement - Limiter les armes équipées",
"BUTTON.PostBug" : "Soumettre un Grief",
"BUTTON.CharacterCreation" : "Créer un Personnage",
"BUGREPORT.Contact":"Informations de contact",
"BUGREPORT.ContactPlaceholder":"Tag Discord ou Email.",
"BUGREPORT.DescriptionPlaceholder":"Ce qu'il s'est passsé, comment le reproduire, etc.",
"EFFECT.TabWFRP" : "WFRP",
"EFFECT.EffectType" : "Type d'Effet",
"EFFECT.EffectApplication" : "Application de l'Effect",
@ -1465,9 +1920,45 @@
"EFFECT.TabDuration": "Durée",
"EFFECT.TabEffects": "Effets",
"EFFECT.Tooltip": "Ces effets PEUVENT provoquer ces bonus",
"EFFECT.Applied":"{name} appliqué à ",
"EFFECT.Prevent":"Ajout de l'effet {name} annulé: l'Effet existe déja",
"EFFECT.Target":"Cible: ",
"EFFECT.QuantityError":"Quantité insuffisante",
"EFFECT.ReduceQuantityOption":"Réduire la quantité à l'usage",
"EFFECT.ColdExposure":"Exposition au froid",
"EFFECT.ConsumeAlcohol":"Résistance à l'alcool",
"EFFECT.DualWielder":"Maniement de deux armes",
"EFFECT.Encumbrance":"Encombrement",
"EFFECT.HeatExposure":"Exposition à la chaleur",
"EFFECT.Infighting":"Combat proche",
"EFFECT.MarienburghersCourage":"Coyrage du Marienbourgeois",
"EFFECT.OnDefensive":"Sur la défensive [Nom de compétence]",
"EFFECT.Starvation":"Affammé",
"EFFECT.TestsRelatedToHearing":"Tests relatife à l'audition",
"EFFECT.TestsRelatedToMovementOfAnyKind":"Tests relatifs à tout les mouvements",
"EFFECT.TestsRelatedToSight":"Tests relatifs à la vision",
"EFFECT.TestsToAffect":"Tests affectés",
"EFFECT.TheSourceOfFear":"la source de la peur",
"EFFECT.Thirst":"Assoiffé",
"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.Warning3":"Avant de soumettre un rapport de bug",
"GRIEVANCE.Warning4":"Merci de vous assurez que vous utilisez bien les dernières versions des modules et du système !",
"UPDATER.Notification":"Création et mise à jour de {created}/{updated} documents depuis {name} - {version}",
"UPDATER.Error":"La mise à jour est possible uniquement si vous avez initialisé le module au moins 1 fois.",
"UPDATER.ExcludeHint":"Activer ce choix ne mettra pas à jour les documents si leur nom ont changé",
"UPDATER.Exclude":"Exclure les changements de nom",
"UPDATER.OverwriteScenes":"Ré-écrire les Scènes",
"UPDATER.OverwriteJournals":"Ré-écrire les Journaux",
"UPDATER.OverwriteItems":"Ré-écrire les Items",
"UPDATER.OverwriteActors":"Ré-écrire les Acteurs",
"TABLE.ConvertTable": "Convertir en tables WFRP4e",
"TABLE.Lookup":"Chercher: ",
"TABLE.Cancel":"Jet: {result} - annulé",
"TRADE.ManageCargo": "Gérer le commerce",
"TRADE.Encumbrance": "Encombrement",
"TRADE.Modifier": "Modificateur à appliquer (+/- X%)",
@ -1509,8 +2000,63 @@
"TRADE.Good": "Bonne",
"TRADE.Excellent": "Excellente",
"TRADE.Topshelf": "Suprême",
"TRADE.NoCargoFound":"Il n'y a pas de cargaison disponible à l'achat à <b>{town}</b>.",
"RANDOMIZER.C":"Ca",
"RANDOMIZER.S":"C",
"RANDOMIZER.T":"T",
"LOG.GainPrayer":" Prière {name} acquis",
"LOG.MemorizedSpell": "Sort {name} mémorisé",
"EiS.MinorDhar" : "Tout les êtres vivants dans un rayon de FM mètres subissent une @Corruption[minor]{Influence Corruptrice Mineure} et une <a class ='table-click fumble-roll' data-table = 'minormis'><i class='fas fa-list'></i> Incantation Imparfait Mineure</a>; un seul tirage pour toutes les créatures dans l'aire d'effet.",
"EiS.MajorDhar" : "Tout les êtres vivants dans un rayon de FM mètres subissent une @Corruption[major]{Influence Corruptrice Majeure} et une <a class 'table-click fumble-roll' data-table = 'majormis'><i class='fas fa-list'></i> Incantation Imparfait Majeure</a>; un seul tirage pour toutes les créatures dans l'aire d'effet.",
"EiS.DoubleRolled" : "Compte comme une @Corruption[minor]{Influence Corruptrice Mineure}"
"EiS.DoubleRolled" : "Compte comme une @Corruption[minor]{Influence Corruptrice Mineure}",
"PROPERTY.Custom":"Custom",
"PROPERTY.CustomHint":"FORMAT - {type} 1: {type} 1 Description | {type} 2 (Rating) : {type} 2 Description | etc.",
"PROPERTY.Unbalanced":"Déséquilibrée",
"VEHICLE.yd":"m.",
"as weapon":"comme l'arme",
"half weapon":"moitié de l'arme",
"quarter weapon":"1/4 de l'arme",
"third weapon":"trois fois l'arme",
"twice weapon":"deux fois l'arme",
"Overchannelling":"Overchannelling",
"Players":"Joueurs",
"ROLL.CalledShot":"Coup placé",
"SETTINGS.UnofficialGrimoire":"Grimoire Non-officiel",
"SETTINGS.UnofficialGrimoireHint":"Règles inspirées par l'Unofficial Grimoire, pour les détails merci de consulter le wiki: <a href='https://github.com/moo-man/WFRP4e-FoundryVTT/wiki/Homebrew-Rules#magic-insiperd-by-unofficial-grimoire'>ici</a>",
"SETTINGS.UseGroupAdvantage":"Utiliser les avantages de groupe",
"SETTINGS.UseGroupAdvantageHint":"Grouper les avantages des joueurs et des ennemis ensemble (comme décrit dans Up in Arms). Pour associer un acteur avec le goupe des joeurs, l'acteur doit soit être la propriété d'un joueur ou bien avoir une Token 'Amical'. Sinon, il est considéré dans le groupe 'Ennemi'.",
"Sense":"Sentir",
"SkillTest":"Test de {skill} ",
"Social Group":"Groupe social",
"chosen Lore":"Domaine choisi",
"the Terrain":"le Terrain",
"the associated Threat":"la menace associée",
"AutoFillAdvantageDisabled":"'Gestion atuo des avantages désactivé",
"CharTest":"Test de {char}",
"CharacterHeight":"Taille",
"ConsumedIngredient":"<p>Ingrédient consommé</p>",
"DIALOG.OverchannellingTooltip":"Lorsque vous canalisez, vous êtes supposé évacuer tout excès de DR au-delà de celui qui réduirait le NI du sort à 0 sans danger. Après le test, vous pouvez choisir de conserver l'énergie magique excédentaire que vous avez accumulée et de l'appliquer à la Surincantation une fois le sort lancé. (Exemple : Bianca canalise un sort avec un NI de 3 et obtient 7 DR ; elle choisit d'accumuler les 4 DR supplémentaires pour les effets de Surincantation une fois le sort lancé.) Mais ce pouvoir supplémentaire n'est pas sans coût. Si le test d'incantation échoue, vous perdez toute l'énergie canalisée et subissez une incantation imparfaite mineure. De plus, vous comptez tout double ou tout lancer se terminant par un 0 sur votre Focalisation ou votre compétence Langue (magie) comme un échoué (donc, 00, 99, 90, 88, etc.) et tout critique ou échec sur ces tests est une Incantation Imparfaite Majeure. ",
"DIALOG.Quickcasting":"Incantation rapide",
"DIALOG.QuickcastingTooltip":"Si vous renoncez à votre mouvement et à toutes les actions gratuites, vous pouvez utiliser votre tour pour focaliser et incanter rapidement la même action. Parce que vous vous précipitez, augmentez la gravité de toute erreur subie d'une table (c'est-à-dire de mineure à majeure ou majeure à catastrophique).",
"DIALOG.UseIngredient":"Choisir comment utiliser les ingrédients (if disponible)",
"DIALOG.UseIngredientTooltip":"Vous pouvez concentrer votre magie à travers un composant matériel approprié avant de lancer votre sort. Les ingrédients réagissent différemment selon la façon dont vous focalisez votre magie à travers eux. Avant d'incanter ou de focaliser, vous devez choisir d'utiliser l'ingrédient pour le Pouvoir ou le Contrôle. Les ingrédients sont consommés même lorsque le sort échoue. <br/> Ingrédient de pouvoir : Lorsqu'il est utilisé lors d'un test de focalisation, un ingrédient de pouvoir double le nombre de DR acquis en cas de succès (voir sur-focalisation). Lorsqu'il est utilisé lors d'un test d'incantation, un ingrédient de pouvoir vous permet d'inverser les dés et de choisir le résultat de votre test d'incantation. Cependant, si les unités meurent après que l'inverse de votre test d'incantation dépasse votre bonus de Force Mentale, l'énergie dépasse votre emprise et vous déclenchez une Incantation Imparfaite Mineure. <br/> Ingrédient de contrôle : lorsqu'il est utilisé pendant un test de focalisation ou d'incantation, un ingrédient de contrôle agit comme une cible pour la magie incontrôlable. Réduisez la gravité d'un Echec subie d'un tableau : c'est-à-dire de Catastrophique à Majeur, Majeur à Mineur ou Mineur à aucun",
"Enemies":"Ennemis",
"GroupAdvantageNoCombatant":"Cet acteur doit être membre d'un Combat pour pouvoir modifier son avantage.",
"GroupAdvantageUpdated":"Avantage de Groupe mis à jour. Joueurs: {players} | Ennemis: {enemies}",
"IngredientControl":"Controller",
"IngredientNone":"Aucun",
"IngredientPower":"Pouvoir",
"LOG.CareerChange":"Changement de carrière: {career}",
"DIALOG.Advancement":"Coût d'avancement",
"DIALOG.AdvancementContent":"Confirmez ou modifiez le coût de cette progression",
"SHEET.ArmourDamaged":"Armure endommagée de 1 point",
"SHEET.ArmourRepaired":"Armure réparée de 1 point"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View File

@ -1,21 +1,23 @@
{
"name": "WH4-fr-translation",
"id": "wh4-fr-translation",
"title": "WFRP4e - Core Module en français.",
"description": "Traduction Française pour Warhammer v4.",
"author": "LeRatierBretonnien",
"authors": [],
"url": "https://gitlab.com/LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr",
"authors": [ {"name":"LeRatierBretonnien" }],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
"flags": {},
"version": "1.6.6",
"minimumCoreVersion": "0.7.0",
"compatibleCoreVersion": "0.8.7",
"version": "6.1.3",
"compatibility": {
"minimum": "9.280",
"verified": "10.284",
"maximum": "10"
},
"scripts": [],
"esmodules": [
"babele-register.js",
"addon-register.js",
"modules/import-stat-2.js"
],
"styles": [],
"styles": ["patch-styles.css"],
"languages": [
{
"lang": "fr",
@ -26,7 +28,7 @@
"packs": [
{
"label": "Plats d'Auberges",
"entity": "RollTable",
"type": "RollTable",
"name": "plats-dauberges",
"path": "packs/plats-dauberges.db",
"system": "wfrp4e",
@ -35,34 +37,34 @@
},
{
"label": "Dons de Rhya",
"entity": "JournalEntry",
"type": "JournalEntry",
"name": "dons-de-rhya",
"path": "packs/dons-de-rhya.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
},
{
"label": "Carrières FR",
"type": "Item",
"name": "carriere-fr",
"path": "packs/carriere-fr.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
},
{
"label": "Aides de Jeu FR",
"entity": "JournalEntry",
"type": "JournalEntry",
"name": "aides-de-jeu-fr",
"path": "packs/aides-de-jeu-fr.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
},
{
"label": "Potions : Antidotes et Remèdes",
"entity": "Item",
"name": "antidotes-and-remedes.db",
"path": "packs/antidotes-and-remedes.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
},
{
"label": "Potions : Drogues et Sédatifs",
"entity": "Item",
"type": "Item",
"name": "drogues-and-sedatifs",
"path": "packs/drogues-and-sedatifs.db",
"system": "wfrp4e",
@ -71,7 +73,7 @@
},
{
"label": "Potions : Pansements et Cataplasmes",
"entity": "Item",
"type": "Item",
"name": "pansements-and-cataplasmes",
"path": "packs/pansements-and-cataplasmes.db",
"system": "wfrp4e",
@ -80,7 +82,7 @@
},
{
"label": "Potions : Poisons et Toxiques",
"entity": "Item",
"type": "Item",
"name": "poisons-and-toxiques",
"path": "packs/poisons-and-toxiques.db",
"system": "wfrp4e",
@ -89,7 +91,7 @@
},
{
"label": "Potions : Potions et Décoctions",
"entity": "Item",
"type": "Item",
"name": "potions-and-decoctions",
"path": "packs/potions-and-decoctions.db",
"system": "wfrp4e",
@ -98,16 +100,16 @@
},
{
"label": "Potions : Antidotes et Remèdes",
"entity": "Item",
"name": "antidotes-and-remedes.db",
"path": "packs/antidotes-and-remedes.db.db",
"type": "Item",
"name": "antidotes-and-remedes",
"path": "packs/antidotes-and-remedes.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
},
{
"label": "Tables des Traductions",
"entity": "JournalEntry",
"type": "JournalEntry",
"name": "tables-des-traductions",
"path": "packs/tables-des-traductions.db",
"system": "wfrp4e",
@ -116,7 +118,7 @@
},
{
"label": "Apothicarium",
"entity": "JournalEntry",
"type": "JournalEntry",
"name": "apothicarium",
"path": "packs/apothicarium.db",
"system": "wfrp4e",
@ -124,20 +126,23 @@
"private": false
}
],
"system": [],
"dependencies": [
{
"name": "wfrp4e",
"type": "system"
},
{
"name": "babele",
"relationships": {
"systems": [{
"id": "wfrp4e",
"type": "system",
"compatibility": {
"verified": "6.1.1"
}
}],
"requires": [{
"id": "babele",
"type": "module"
}
],
}]
},
"socket": false,
"manifest": "https://gitlab.com/LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr/-/raw/v3/module.json",
"download": "https://gitlab.com/LeRatierBretonnien/foundryvtt-wh4-lang-fr-fr/-/archive/v3/foundryvtt-wh4-lang-fr-fr-v3.zip",
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v4/module.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-6.1.3.zip",
"protected": false,
"coreTranslation": false
}
"coreTranslation": false,
"library": false
}

File diff suppressed because it is too large Load Diff

366
modules/discarded.txt Normal file
View File

@ -0,0 +1,366 @@
/*
game.wfrp4e.config.speciesSkills["human"] = [
"Soins aux animaux",
"Charme",
"Calme",
"Evaluation",
"Ragot",
"Marchandage",
"Langue (Bretonnien)",
"Langue (Wastelander)",
"Commandement",
"Savoir (Reikland)",
"Corps à corps (Base)",
"Projectiles (Arc)"
];
game.wfrp4e.config.speciesSkills["dwarf"] = [
"Résistance à l'alcool",
"Calme",
"Résistance",
"Divertissement (Raconter)",
"Evaluation",
"Intimidation",
"Langue (Khazalid)",
"Savoir (Nains)",
"Savoir (Geologie)",
"Savoir (Metallurgie)",
"Corps à corps (Base)",
"Métier (Au choix)"
];
game.wfrp4e.config.speciesSkills["halfling"] = [
"Charme",
"Résistance à l'alcool",
"Esquive",
"Pari",
"Marchandage",
"Intuition",
"Langue (Mootland)",
"Savoir (Reikland)",
"Perception",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)"
];
game.wfrp4e.config.speciesSkills["helf"] = [
"Calme",
"Divertissement (Chant)",
"Evaluation",
"Langue (Eltharin)",
"Commandement",
"Corps à corps (Base)",
"Orientation",
"Perception",
"Musicien (Au choix)",
"Projectiles (Arc)",
"Voile",
"Natation"
];
game.wfrp4e.config.speciesSkills["welf"] = [
"Athlétisme",
"Escalade",
"Résistance",
"Divertissement (Chant)",
"Intimidation",
"Langue (Eltharin)",
"Corps à corps (Base)",
"Survie en extérieur",
"Perception",
"Projectiles (Arc)",
"Discrétion (Rural)",
"Pistage"
];*/
game.wfrp4e.config.speciesTalents["human"] = [
"Destinée",
"Affable, Perspicace",
3
]
game.wfrp4e.config.speciesTalents["dwarf"] = [
"Résistance à la Magie",
"Vision Nocturne",
"Lire/Ecrire, Impitoyable",
"Déterminé, Obstiné",
"Costaud",
0
]
game.wfrp4e.config.speciesTalents["halfling"] = [
"Sens Aiguisé (Gout)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
2
];
game.wfrp4e.config.speciesTalents["helf"] = [
"Sens Aiguisé (Vue)",
"Imperturbable, Perspicace",
"Vision Nocturne",
"Seconde Vue, Sixième Sens",
"Lire/Ecrire",
0
]
game.wfrp4e.config.speciesTalents["welf"] = [
"Sens Aiguisé (Vue)",
"Dur à cuire, Seconde Vue",
"Vision Nocturne",
"Nomade",
"Lire/Ecrire, Très Résistant",
0
]
/************************************************************************************/
static perform_rnhd_patch() {
game.wfrp4e.config.species['gnome'] = 'Gnome';
game.wfrp4e.config.speciesSkills["gnome"] = [
"Focalisation (Ulgu)",
"Charme",
"Résistance à l'alcool",
"Esquive",
"Divertissement (Au choix)",
"Ragot",
"Marchandage",
"Langue (Ghassally)",
"Langue (Magick)",
"Langue (Wastelander)",
"Survie en extérieur",
"Discrétion (Au choix)"
];
game.wfrp4e.config.speciesTalents["gnome"] = [
"Insignifiant, Imprégné avec Uglu",
"Chanceux, Imitation",
"Vision Nocturne",
"Pêcheur, Lire/Ecrire",
"Seconde Vue, Sixième Sens",
"Petit",
0
];
}
}
game.wfrp4e.config.subspecies["human"]["reiklander"] = {
name: "Reiklander",
skills: [
"Soins aux animaux",
"Charme",
"Calme",
"Evaluation",
"Ragot",
"Marchandage",
"Langue (Bretonnien)",
"Langue (Wastelander)",
"Commandement",
"Savoir (Reikland)",
"Corps à corps (Base)",
"Projectiles (Arc)"
],
talents: [
"Destinée",
"Affable, Perspicace",
3
]
}
if (game.wfrp4e.config.subspecies["welf"]["harioth"]) { // Archives Empire
game.wfrp4e.config.subspecies["welf"]["harioth"] = {
name: "Harioth",
talents: [
"Sens Aiguisé (Vue)",
"Dur à cuire, Seconde Vue",
"Vision Nocturne",
"Lire/Ecrire, Très Résistant",
"Nomade",
"Youngblood",
0
]
}
game.wfrp4e.config.subspecies["halfling"]["ashfield"] = {
name: "Ashfield",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Calme",
"Intuition",
"Langue (Mootish)",
"Projectiles (Au choix)"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Sens Aiguisé (Vue), Etiquette (Soldats)",
1
]
}
game.wfrp4e.config.subspecies.halfling["brambledown"] = {
name: "Brambledown",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Langue (Mootish) ",
"Orientation",
"Survie en extérieur ",
"Natation"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Sociable, Voyageur aguerri",
1
]
}
game.wfrp4e.config.subspecies.halfling["brandysnap"] = {
name: "Brandysnap",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Soins aux animaux",
"Pari",
"Langue (Mootish)",
"Métier (Herboriste)"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Maître Artisan (Fermier), Costaud",
1
]
}
game.wfrp4e.config.subspecies.halfling["hayfoot"] = {
name: "Hayfoot",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Gamble",
"Pari",
"Evaluation",
"Langue (Mootish)"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Négociateur, Etiquette (Guildes)",
1
]
}
game.wfrp4e.config.subspecies.halfling["hollyfoot"] = {
name: "Hollyfoot",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Subornation",
"Marchandage",
"Ragot",
"Langue (Mootish)"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Maître Artisan (Au choix), Doigts de fée",
1
]
}
game.wfrp4e.config.subspecies.halfling["hayfoot—hollyfoot"] = {
name: "Hayfoot—Hollyfoot",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Subornation",
"Marchandage",
"Ragot",
"Langue (Mootish)"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Ergoteur, Numismate",
1
]
}
game.wfrp4e.config.subspecies.halfling["lostpockets"] = {
name: "Lostpockets",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Résistance",
"Pari",
"Ragot",
"Intuition"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Dur à cuire, Brouet",
1
]
}
game.wfrp4e.config.subspecies.halfling["lowhaven"] = {
name: "Lowhaven",
skills: [
"Charme",
"Résistance à l'alcool",
"Marchandage",
"Savoir (Reikland)",
"Escamotage",
"Discrétion (Au choix)",
"Métier (Cuisinier)",
"Subornation",
"Marchandage",
"Intimidation",
"Langue (Mootish)"
],
talents: [
"Sens Aiguisé (Goût)",
"Vision Nocturne",
"Résistant (Chaos)",
"Petit",
"Criminel, Etiquette (Criminels ou Guildes)",
1
]
}

View File

@ -1,5 +1,22 @@
/************************************************************************************/
// Some internal test strings
let strfr = `LA TERREUR DE LA TEUFEL, TROLL DE RIVIÈRE RUSÉ
M
CC CT
F
E
I
Ag Dex Int FM Soc B
4
40 15
55
45
20
15 15 30 20 5 38
Traits : Amphibie, Arme +9, Armure (2), Dur à Cuire, Insensible
à la douleur, Morsure +8, Régénération, Taille (Grande), Vision
Nocturne, Vomissement`
let str1 = `JABBERSLYTHE
M WS BS S T I Agi Dex
Int WP Fel W
@ -27,27 +44,37 @@ Talents: Briber, Criminal, Dealmaker,
Etiquette (Criminals, Doktor, Guilder)
Trappings: Dagger, Hand Weapon (Sword)
`
//import ItemWfrp4e from "/systems/wfrp4e/modules/item/item-wfrp4e.js"
//import ItemWfrp4e from "/systems/wfrp4e/wfrp4e.js"
/************************************************************************************/
import "./xregexp-all.js";
const us_carac = 'm\\s+ws\\s+bs\\s+s\\s+t\\s+i\\s+agi?\\s+dex\\s+int\\s+\\wp\\s+fel\\s+w';
const fr_carac = 'm\\s+ws\\s+bs\\s+s\\s+t\\s+i\\s+agi?\\s+dex\\s+int\\s+\\wp\\s+fel\\s+w';
const carac_val = '(?<m>[0-9-]+)\\s+(?<ws>[0-9-]+)\\s+(?<bs>[0-9-]+)\\s+(?<s>[0-9-]+)\\s+(?<t>[0-9-]+)\\s+(?<i>[0-9-]+)\\s+(?<ag>[0-9-]+)\\s+(?<dex>[0-9-]+)\\s+(?<int>[0-9-]+)\\s+(?<wp>[0-9-]+)\\s+(?<fel>[0-9-]+)\\s+(?<w>[0-9-\*]+)';
const fr_carac = 'm\\s+cc\\s+ct\\s+f\\s+e\\s+i\\s+agi?\\s+dex\\s+int\\s+fm\\s+soc\\s+b';
const carac_val = '(?<m>[0-9\\-]+)\\s+(?<ws>[0-9\\-]+)\\s+(?<bs>[0-9\\-]+)\\s+(?<s>[0-9\\-]+)\\s+(?<t>[0-9\\-]+)\\s+(?<i>[0-9\\-]+)\\s+(?<ag>[0-9\\-]+)\\s+(?<dex>[0-9\\-]+)\\s+(?<int>[0-9\\-]+)\\s+(?<wp>[0-9\\-]+)\\s+(?<fel>[0-9\\-]+)\\s+(?<w>[0-9\\-\*]+)';
const name_val = '(?<name>[a-zA-Z\\s\\-,]*)[\\s\\r\\na-zA-Z]*(?<tiers>.*|[\\(\\)a-z0-9]+)';
let sectionData = [
{ name: "trait", toFind:"Traits\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index:-1 },
{ name: "skill", toFind:"Skills\\s*:", secondParse: '(?<name>[a-z\\s\\(\\)]*)[\\s\\+]*(?<value>.*|[0-9]+)', index:-1 },
{ name: "talent", toFind:"Talents\\s*:", secondParse: '(?<name>[a-z\\-\\s!/]*)[\\s\\+]*(?<value>.*|[0-9]+)', index:-1 },
{ name: "trapping", toFind:"Trappings\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index:-1 }
];
let sectionDataFR = [
{ name: "trait", toFind: "Traits\\s*:", secondParse: '(?<name>[a-zàéè\\s]*)[\\s\\+]*(?<value>.*|[\\+0-9]+)', index: -1 },
{ name: "skill", toFind: "Compétences\\s*:", secondParse: '(?<name>[a-zàéè\\s\\(\\)]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
{ name: "talent", toFind: "Talents\\s*:", secondParse: '(?<name>[a-zàéè\\-\\s!/]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
{ name: "mutation", toFind: "Mutations\\s*:", secondParse: '(?<name>[a-zàéè\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
{ name: "trapping", toFind: "Equiement\\s*:", secondParse: '(?<name>[a-zàéè\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 }
];
let sectionDataUS = [
{ name: "trait", toFind: "Traits\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[\\+0-9]+)', index: -1 },
{ name: "skill", toFind: "Skills\\s*:", secondParse: '(?<name>[a-z\\s\\(\\)]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
{ name: "talent", toFind: "Talents\\s*:", secondParse: '(?<name>[a-z\\-\\s!/]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
{ name: "mutation", toFind: "Mutations\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
{ name: "trapping", toFind: "Trappings\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 }
];
let regSep = XRegExp('\\s*,\\s*', 'gi'); // Term separator, with auto trim
let regLine1 = XRegExp('[\\r\\n\\.]', 'gi'); // Term separator, with auto trim
let regName = XRegExp(name_val, 'gi');
/************************************************************************************/
async function __findItem(itemName, itemType, location = null) {
itemName = itemName.trim();
let items = game.items.entities.filter(i => i.type == itemType)
let toSearch = itemName.toLowerCase().trim();
let items = game.items.contents.filter(i => i.type == itemType)
// Search imported items first
for (let i of items) {
@ -63,52 +90,54 @@ async function __findItem(itemName, itemType, location = null) {
location.split(".")[1] == p.metadata.name
})
if (pack) {
if (pack.translations[itemName]) {
let translItemName = pack.translations[itemName].name;
await pack.getIndex().then(index => itemList = index);
let searchResult = itemList.find(t => t.name == translItemName)
if (searchResult)
return await pack.getEntity(searchResult._id)
}
await pack.getIndex().then(index => itemList = index);
let searchResult = itemList.find(t => (t.translated && t.originalName.toLowerCase() == toSearch) || (t.name.toLowerCase() == toSearch) );
if (searchResult)
return await pack.getDocument(searchResult._id)
}
}
// If all else fails, search each pack
for (let p of game.packs.filter(p => p.metadata.tags && p.metadata.tags.includes(itemType))) {
if (p.translations[itemName]) {
let translItemName = p.translations[itemName].name;
await p.getIndex().then(index => itemList = index);
let searchResult = itemList.find(t => t.name == translItemName)
if (searchResult)
return await p.getEntity(searchResult._id)
}
for (let p of game.wfrp4e.tags.getPacksWithTag(itemType)) {
await p.getIndex().then(index => itemList = index);
let searchResult = itemList.find(t => (t.translated && t.originalName.toLowerCase() == toSearch) || (t.name.toLowerCase() == toSearch) );
if (searchResult)
return await p.getDocument(searchResult._id)
}
}
/************************************************************************************/
async function __findSkill(skillName) {
skillName = skillName.trim();
// First try world items
let worldItem = game.items.entities.filter(i => i.type == "skill" && i.name == skillName)[0];
if (worldItem) return worldItem
let skillList = [];
let packs = game.packs.filter(p => p.metadata.tags && p.metadata.tags.includes("skill"))
/************************************************************************************/
async function __findSkill(skillName, value = undefined) {
let toSearch = skillName.toLowerCase().trim();
let parseStr = '(?<name>[a-z\\s]*)[\\s\\+]*(?<specialized>[a-z\\s\\(\\)]*)';
let skillSplit = XRegExp.exec(skillName, XRegExp(parseStr, 'gi'));
// First try world items
let worldItem = game.items.contents.filter(i => i.type == "skill" && i.name.toLowerCase() == toSearch)[0];
if (worldItem) return worldItem;
let packs = game.wfrp4e.tags.getPacksWithTag("skill");
for (let pack of packs) {
//console.log("SEARCH : ", skillName, pack);
if ( pack.translations[skillName] ) {
let translSkillName = pack.translations[skillName].name;
skillList = await pack.getIndex()
// Search for specific skill (won't find unlisted specializations)
let searchResult = skillList.find(s => s.name == translSkillName)
if (!searchResult)
searchResult = skillList.find(s => s.name.split("(")[0].trim() == skillName.split("(")[0].trim())
if (searchResult) {
let dbSkill;
await pack.getEntity(searchResult._id).then(packSkill => dbSkill = packSkill);
dbSkill.data.name = translSkillName; // This is important if a specialized skill wasn't found. Without it, <Skill ()> would be added instead of <Skill (Specialization)>
return dbSkill;
let skillList = await pack.getIndex();
// Search for specific skill (won't find unlisted specializations)
let searchResult = skillList.find(s => (s.translated && s.originalName.toLowerCase() == toSearch) || (s.name.toLowerCase() == toSearch ) );
if (!searchResult) {
let toSearchClean = toSearch.split("(")[0].trim();
searchResult = skillList.find(s => (s.translated && s.originalName.toLowerCase().split("(")[0].trim() == toSearchClean) ||
(s.name.toLowerCase().split("(")[0].trim() == toSearchClean) );
}
if (searchResult) {
let dbSkill;
await pack.getDocument(searchResult._id).then(packSkill => dbSkill = packSkill);
if (skillSplit.specialized && ( dbSkill.name.includes('()') || dbSkill.name.includes('( )' ) ) ) {
let spec = XRegExp.replace(skillSplit.specialized, "(", "");
spec = XRegExp.replace(spec, ")", "");
let skillSplit2 = XRegExp.exec(dbSkill.name, XRegExp(parseStr, 'gi'));
dbSkill.data.update( { name: skillSplit2.name + '(' + game.i18n.localize( spec.trim() ) + ')' } );
}
//game.babele.translate('wfrp4e-core.skills', dbSkill);
return dbSkill;
}
}
throw "Could not find skill (or specialization of) " + skillName + " in compendum or world"
@ -116,127 +145,163 @@ async function __findSkill(skillName) {
/************************************************************************************/
async function __findTalent(talentName) {
talentName = talentName.trim();
let parseStr = '(?<name>[a-z\\s]*)[\\s\\+]*(?<specialized>[a-z\\s\\(\\)]*)';
let talentSplit = XRegExp.exec(talentName, XRegExp(parseStr, 'gi'));
let toSearch = talentSplit.name.toLowerCase().trim();
// First try world items
let worldItem = game.items.entities.filter(i => i.type == "talent" && i.name == talentName)[0];
if (worldItem) return worldItem
let worldItem = game.items.contents.filter(i => i.type == "talent" && i.name.toLowerCase() == toSearch)[0];
if (worldItem) return worldItem;
let talentList = [];
let packs = game.packs.filter(p => p.metadata.tags && p.metadata.tags.includes("talent"))
let packs = game.wfrp4e.tags.getPacksWithTag("talent");
for (let pack of packs) {
if ( pack.translations[talentName] ) {
let translTalentName = pack.translations[talentName].name;
talentList = await pack.getIndex()
// Search for specific talent (won't find unlisted specializations)
let searchResult = talentList.find(t => t.name == translTalentName)
if (!searchResult)
searchResult = talentList.find(t => t.name.split("(")[0].trim() == talentName.split("(")[0].trim())
if (searchResult) {
let dbTalent;
await pack.getEntity(searchResult._id).then(packTalent => dbTalent = packTalent);
dbTalent.data.name = translTalentName; // This is important if a specialized talent wasn't found. Without it, <Talent ()> would be added instead of <Talent (Specialization)>
return dbTalent;
let talentList = await pack.getIndex();
// Search for specific skill (won't find unlisted specializations)
let searchResult = talentList.find(s => (s.translated && s.originalName.toLowerCase() == toSearch) || (s.name.toLowerCase() == toSearch ) );
if (!searchResult) {
let toSearchClean = toSearch.split("(")[0].trim();
searchResult = talentList.find(s => (s.translated && s.originalName.toLowerCase().split("(")[0].trim() == toSearchClean) ||
(s.name.toLowerCase().split("(")[0].trim() == toSearchClean) );
}
if (searchResult) {
let dbTalent;
await pack.getDocument(searchResult._id).then(packTalent => dbTalent = packTalent);
if ( talentSplit.specialized ) {
let spec = XRegExp.replace(talentSplit.specialized, "(", "");
spec = XRegExp.replace(spec, ")", "");
dbTalent.data.update( { name: talentSplit.name + '(' + game.i18n.localize( spec.trim() ) + ')' } );
}
return dbTalent;
}
}
throw "Could not find talent (or specialization of) " + talentName + " in compendium or world"
}
/************************************************************************************/
export default async function statParserFR( statString, type = "npc") {
function __patchName ( name) {
if (name.toLowerCase == 'magic sense')
name = 'Magical Sense'
return name
}
/************************************************************************************/
export default async function statParserFR(statString, type = "npc") {
let model = duplicate(game.system.model.Actor[type]);
let reg1 = XRegExp(us_carac, 'gi');
let res = reg1.test(statString);
// Patch wront/strange carac value before processing
statString = statString.replace(/ /g, " 0")
let statNameReg = us_carac
let sectionData = sectionDataUS
// Detect French stat block
if (statString.includes('CC') && statString.includes('CT') && statString.includes('FM')) {
ui.notifications.warn("Le parsing de stablock en Français n'est pas encore prêt")
statNameReg = fr_carac
sectionData = sectionDataFR
}
let reg1 = XRegExp(statNameReg, 'gi')
let res = reg1.test(statString)
if (res) { //stat block identified go on
// Extract the name
let res1 = XRegExp.exec(statString, reg1);
console.log("REG", res1);
let pnjStr = statString.substring(0, res1.index);
let nameRes = XRegExp.exec(pnjStr, regName );
console.log(nameRes);
if ( nameRes.tiers && nameRes.tiers.length > 0 && hasProperty(model, "details.status.value") ) {
let res1 = XRegExp.exec(statString, reg1)
console.log("REG", res1)
let pnjStr = statString.substring(0, res1.index)
let nameRes = XRegExp.exec(pnjStr, regName)
console.log(nameRes)
if (nameRes.tiers && nameRes.tiers.length > 0 && hasProperty(model, "details.status.value")) {
let regTiers = XRegExp("(?<name>[A-Za-z]*)\\s+(?<level>[0-9]*)");
let resTiers = XRegExp.exec(nameRes.tiers, regTiers);
console.log(resTiers);
model.details.status.value = game.i18n.localize(resTiers.name.trim()) + " " + resTiers.level;
model.details.status.value = game.i18n.localize(resTiers.name.trim()) + " " + resTiers.level;
}
// Compute the PNJ name
let pnjName = nameRes.name.split("—")[0].split(" ").filter(f => !!f);
pnjName = pnjName.map(word => {
if (word == "VON")
return word.toLowerCase();
if (word == "VON")
return word.toLowerCase();
word = word.toLowerCase();
word = word[0].toUpperCase() + word.substring(1, word.length);
return word;
word = word.toLowerCase();
word = word[0].toUpperCase() + word.substring(1, word.length);
return word;
})
pnjName = pnjName.join(" ")
// Get the carac values
let reg2 = XRegExp(carac_val, 'gi');
let resCarac = XRegExp.exec(statString, reg2); // resr contains all carac found
let reg2 = XRegExp(carac_val, 'gi')
let resCarac = XRegExp.exec(statString, reg2) // resr contains all carac found
// Setup carac
if (resCarac["Agi"]) resCarac["Ag"] = resCarac["Agi"]; // Auto patch
model.details.move.value = Number(resCarac["m"]);
//console.log("CARAC", resCarac)
if (resCarac["Agi"]) resCarac["Ag"] = resCarac["Agi"] // Auto patch
model.details.move.value = Number(resCarac["m"])
for (let key in model.characteristics) {
if (resCarac[key] === '-') resCarac[key] = 0;
model.characteristics[key].initial = Number(resCarac[key]);
if (resCarac[key] === '-') resCarac[key] = 0
model.characteristics[key].initial = Number(resCarac[key])
}
//console.log("CARAC", model.characteristics);
// Search position of skills/talents/...
for( let def of sectionData ) {
for (let def of sectionData) {
def.regDef = XRegExp(def.toFind, 'gi');
let res = XRegExp.exec(statString, def.regDef);
if (res ) def.index = res.index; // Get the index in the string
if (res) def.index = res.index; // Get the index in the string
//console.log(" Parsing", def.name, res);
}
// Sort to split position of various substring
sectionData.sort( function(a, b) { return a.index - b.index; } );
sectionData.sort(function (a, b) { return a.index - b.index; });
let globalItemList = [];
// Then loop again and process each item type
for(let i=0; i< sectionData.length; i++ ) {
for (let i = 0; i < sectionData.length; i++) {
let def = sectionData[i];
if ( def.index > -1) {
let maxIndex = statString.length;
if ( sectionData[i+1] && sectionData[i+1].index > -1 )
maxIndex = sectionData[i+1].index;
def.substring = statString.substring(def.index, maxIndex);
def.substring = XRegExp.replace(def.substring, def.regDef, "");
def.substring = XRegExp.replace(def.substring, regLine1, " ");
if (def.index > -1) {
let maxIndex = statString.length
if (sectionData[i + 1] && sectionData[i + 1].index > -1)
maxIndex = sectionData[i + 1].index
def.substring = statString.substring(def.index, maxIndex)
def.substring = XRegExp.replace(def.substring, def.regDef, "")
def.substring = XRegExp.replace(def.substring, regLine1, " ")
// At this point, def.substring contains the items list as a string
// Then create a table of it in termList, with specific sub-parsing rules
let termList = XRegExp.split(def.substring, regSep);
for (let name of termList) {
let itemFound, subres;
if (def.secondParse) {
subres = XRegExp.exec( name, XRegExp(def.secondParse, 'gi') );
name = subres.name.trim();
let itemFound, subres, value;
if (def.secondParse) {
subres = XRegExp.exec(name, XRegExp(def.secondParse, 'gi'))
name = subres.name.trim().replace("\n", "").replace("\r", "")
value = XRegExp.replace(subres.value, "(", "")
value = XRegExp.replace(value, ")", "")
}
if ( def.name == 'trait') {
try {
itemFound = await __findItem(name, "trait");
name = __patchName(name)
if (def.name == 'trait') {
try {
itemFound = await __findItem(name, "trait")
}
catch {}
if ( itemFound && subres && subres.value.length > 0 ) {
subres.value = XRegExp.replace(subres.value, "(", "");
subres.value = XRegExp.replace(subres.value, ")", "");
itemFound.data.data.specification.value = game.i18n.localize( subres.value);
catch { }
if (itemFound)
itemFound = itemFound.toObject()
if (itemFound && value && value.length > 0) {
if (name.toLowerCase() == 'weapon' || name.toLowerCase() == "bite" || name.toLowerCase() == "tail" ||
name.toLowerCase() == 'arme' || name.toLowerCase() == "morsure" || name.toLowerCase() == "queue") {
itemFound.data.specification.value = Number(value) - Math.floor( Number(model.characteristics.s.initial) / 10)
} else {
itemFound.data.specification.value = game.i18n.localize(value)
}
}
if (!itemFound)
ui.notifications.error("Trait non trouvé, à ajouter manuellemen : " + name, { permanent: true })
} else if ( def.name == 'skill') {
ui.notifications.error("Trait non trouvé, à ajouter manuellement : " + name, { permanent: true })
} else if (def.name == 'skill') {
try {
itemFound = await __findSkill(name);
itemFound = await __findSkill(name, value);
}
catch {}
if ( itemFound && subres && subres.value) {
itemFound.data.data.advances.value = Number(subres.value) - Number(resCarac[itemFound.data.data.characteristic.value]);
catch { }
if (itemFound)
itemFound = itemFound.toObject();
if (itemFound && subres && value) {
itemFound.data.advances.value = Number(value) - Number(model.characteristics[itemFound.data.characteristic.value].initial);
}
if (!itemFound)
ui.notifications.error("Compétence non trouvée, à ajouter manuellement : " + name, { permanent: true })
@ -244,23 +309,35 @@ export default async function statParserFR( statString, type = "npc") {
try {
itemFound = await __findTalent(name);
}
catch {}
if ( itemFound && subres && subres.value)
itemFound.data.data.advances.value = Number(subres.value);
catch { }
if (itemFound)
itemFound = itemFound.toObject();
if (itemFound && subres && value)
itemFound.data.advances.value = Number(value);
if (!itemFound)
ui.notifications.error("Talent non trouvé, à ajouter manuellement : " + name, { permanent: true })
} else if (def.name == 'trapping') {
try {
itemFound = await __findItem(name, "trapping");
}
catch {}
if (!itemFound) {
itemFound = new game.wfrp4e.entities.ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", data: game.system.model.Item.trapping })
catch { }
if (!itemFound && name) {
itemFound = new game.entities.ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", data: game.system.model.Item.trapping })
itemFound.data.data.trappingType.value = "misc"
}
if (itemFound)
itemFound = itemFound.toObject();
} else if (def.name == 'mutation') {
try {
itemFound = await __findItem(name, "mutation");
}
catch { }
if (itemFound)
itemFound = itemFound.toObject();
}
if (itemFound)
globalItemList.push( itemFound );
globalItemList.push(itemFound);
}
}
}
@ -270,18 +347,15 @@ export default async function statParserFR( statString, type = "npc") {
globalItemList = globalItemList.concat(moneyItems);
//console.log("My liste :", globalItemList);
let name = pnjName;
return { name, type, data: model, items: globalItemList }
let effects = globalItemList.reduce((total, globItem) => total.concat(globItem.data.effects), [])
effects = effects.filter(e => !!e)
effects = effects.filter(e => e.transfer)
return { name, type, data: model, items: globalItemList, effects }
}
// If the carac string has not been found
ui.notifications.error("Impossible de convertir ces statitiques, les caractéristiques n'ont pas été trouvées", { permanent: true } )
ui.notifications.error("Impossible de convertir ces statitiques, les caractéristiques n'ont pas été trouvées", { permanent: true })
}
/************************************************************************************/
Hooks.once('ready', () => {
//var fullskills = game.packs.get('wfrp4e-core.skills');
//console.log("Skills", game.wfrp4e.apps.StatBlockParser.prototype);
} )

File diff suppressed because one or more lines are too long

45
packs/carriere-fr.db Normal file
View File

@ -0,0 +1,45 @@
{"_id":"0SKGm6PXnncNEvpw","name":"Ecuyer","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":1},"status":{"tier":"s","standing":3},"characteristics":["s","i","ag"],"skills":["Athlétisme","Soin aux animaux","Emprise sur les animaux","Guérison","Savoir (Héraldique)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)"],"talents":["Savoir-vivre (Au choix)","Cavalier émérite","Costaud","Guerrier né"],"trappings":["Veste de cuir","Chemise de mailles","Cheval de selle avec fontes et selle","Bouclier","Outils (Maréchal Ferrand)"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"0oRwp1jGMyIA1AOw","name":"Capitaine Fusilier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Fusilier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":1},"characteristics":["bs","ag","dex","i","int","wp"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)","Escalade","Pari","Ragot","Intuition","Survie en extérieur","Métier (Armurier)","Commandement","Orientation","Projectiles (Ingénierie)","Chevaucher (Cheval)","Charme","Savoir (Stratégie militaire)"],"talents":["Exaltant","Voyageur aguerri","Coeur vaillant","Seigneur de guerre"],"trappings":["Lettre de mission","Cheval de guerre léger avec fontes et selle","Symbole de rang"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.MqNsy1JwN4dInYbs"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"1NIBpG9o9vv0DO6N","name":"Sergent Pistoletier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Pistoletier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"s","standing":5},"characteristics":["bs","ag","dex","i","int"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)","Escalade","Pari","Ragot","Intuition","Survie en extérieur","Métier (Armurier)","Commandement","Orientation","Projectiles (Ingénierie)","Chevaucher (Cheval)"],"talents":["Vigilance","Tireur d'élite","Tir sûr","Inébranlable"],"trappings":["Symbole de rang","Uniforme de qualité"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"1pDjLFBFmX9IEeBP","name":"Chevalier du Loup Blanc","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier du Loup Blanc"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":5},"characteristics":["s","i","ws","ag"],"skills":["Athlétisme","Soin aux animaux","Charme","Emprise sur les animaux","Guérison","Savoir (Héraldique)","Corps à corps (Base)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Langue (Bataille)","Corps à corps ()","Survie en extérieur"],"talents":["Menaçant","Voyageur aguerri","Coup puissant","Frappe blessante"],"trappings":["Cape en peau de loup","Destrier avec selle et fontes","Armure de plate"],"incomeSkill":[8],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"2ZnMwejzMeeYUpTj","name":"Apprenti Druide","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"b","standing":3},"characteristics":["wp","int","ag"],"skills":["Focalisation (Ghyran)","Emprise sur les animaux","Esquive","Intuition","Langue (Magick)","Savoir (Magick)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Survie en extérieur",""],"talents":["Magie mineure","Harmonisation Aethyrique","Lire/Ecrire","Seconde Vue"],"trappings":["Grimoire","Bâton","Faucille en cuivre"],"incomeSkill":[4],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"2rb2fXvttt06T5TZ","name":"Chevalier Panthère","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier Panthère"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":5},"characteristics":["s","i","ws","ag"],"skills":["Athlétisme","Soin aux animaux","Charme","Emprise sur les animaux","Guérison","Savoir (Empire)","Savoir (Héraldique)","Corps à corps (Base)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Langue (Bataille)","Corps à corps ()"],"talents":["Menaçant","Porte-bouclier","Coup puissant","Imperturbable"],"trappings":["Peau de grand chat","Destrier avec selle et fontes","Arme de mêlée","Lance","Armure de plate et Grand heaume à crète de bête","Anneau ou Médaillon de Chevalier panthère."],"incomeSkill":[8],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"4Gk9QPx0Vjk2iXJG","name":"Capitaine Fusilier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Fusilier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":1},"characteristics":["bs","ag","dex","i","int","wp"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)","Escalade","Pari","Ragot","Intuition","Survie en extérieur","Métier (Armurier)","Commandement","Orientation","Projectiles (Ingénierie)","Chevaucher (Cheval)","Charme","Savoir (Stratégie militaire)"],"talents":["Exaltant","Voyageur aguerri","Coeur vaillant","Seigneur de guerre"],"trappings":["Lettre de mission","Cheval de guerre léger avec fontes et selle","Symbole de rang"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.MqNsy1JwN4dInYbs"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"56w0D22CLv0zYg62","name":"Recrue Pistoletier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Pistoletier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"s","standing":1},"characteristics":["bs","ag","dex"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)"],"talents":["Tir précis","Artilleur","Tireur de précision","Tireur embusqué"],"trappings":["Dague","Uniforme","Pistolet"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"7p9Gv8mAzBn50giw","name":"Grande épée","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-02.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Grande épée"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["ws","s","wp","i"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Ragot","Langue (Bataille)","Corps à corps (Base)","Corps à corps (A deux mains)","Musicien (Tambour)","Pari","Intimidation","Savoir (Héraldique)","Corps à corps (Au choix)","Survie en extérieur","Perception",""],"talents":["Combat Instinctif","Savoir-vivre (Soldats)","Sans peur (Au choix)","Coup puissant"],"trappings":["Armure de plate complète","Grand chapeau à plume"],"incomeSkill":[8]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.Q4f9Ho3AKkCywgo8"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"9ZexsRULPWCzv9vO","name":"Combattant des tunnels","type":"career","img":"modules/wfrp4e-core/icons/careers/guard-01.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Brise fer"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"b","standing":4},"characteristics":["ws","t","wp"],"skills":["Athlétisme","Escalade","Calme","Esquive","Résistance","Corps à corps (Base)","Intimidation","Discrétion (Au choix) Langue(Bataille)","Divertissement (Chant)",""],"talents":["Coude-à-coude","Combattant en espace clos","Guerrier né","Coup puissant"],"trappings":["Plastron d'acier","Heaume ouvert","Jambières et brassards d'acier","Bouclier (grand)","Hache"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Dragon Slayer"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.nWFtlLdrGOhIJsMd"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"BV1D9dwn1sv1wBTm","name":"Capitaine Archer","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-04.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Archer"},"class":{"type":"String","label":"Class","value":"Guerrier"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":1},"characteristics":["s","bs","i","ag","t","int"],"skills":["Pari","Ragot","Corps à corps (Base)","Survie en extérieur","Pistage","Métier (Fabricant de flèches)","Athlétisme","Escalade","Résistance à l'alcool","Esquive","Langue(Bataille)","Perception","Musicien(Corne)","Projectile(Arc)","Discrétion(Rurale)","Calme","Commandement","Orientation","Chevaucher (Cheval)","Savoir (Guerre)","Signes secrets (Eclaireur)",""],"talents":["Exaltant","Voyageur aguerri","Seigneur de guerre","Coeur vaillant"],"trappings":["Lettre de mission","Cheval de guerre léger avec selle et fontes","Symbole de rang"],"incomeSkill":[13]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.M7Jxj2dPKQFicA8b"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"BY6cI09btqQbPwUw","name":"Apprenti Pyromancier","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"b","standing":3},"characteristics":["wp","int","ws"],"skills":["Focalisation (Aqshy)","Esquive","Intuition","Langue (Magick)","Savoir (Magie)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Intimidation","Langue (Bataille)",""],"talents":["Magie Mineure","Lire/Ecrire","Seconde Vue","Harmonisation Aethyrique"],"trappings":["Première clé des secrets","Grimoire","bâton"],"incomeSkill":[3],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"DxfhLpcpsEXsq6jY","name":"Recrue Fusilier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>Consid&eacute;rant qu'il est irr&eacute;aliste d'entretenir des r&eacute;giments &eacute;quip&eacute;s de pistolet (Handgun), je me suis permis de modifier quelque peu la carri&egrave;re en transformant handgun (pistolet) en gun (arme &agrave; feu, pistolet, fusil).</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Fusilier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"s","standing":1},"characteristics":["bs","ag","dex"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)"],"talents":["Tir précis","Artilleur","Tireur de précision","Tireur embusqué"],"trappings":["Dague","Uniforme","Arme à feu"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.F3bm5YfWtrLMt8R0"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"EJiNrJHYbHErhCMN","name":"Chevalier commandeur","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"g","standing":2},"characteristics":["ws","s","i","ag","wp"],"skills":["Athlétisme","Soin aux animaux","Emprise sur les animaux","Guérison","Savoir (Héraldique)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Langue (Bataille)","Corps à corps (Au choix)","Charme","Résistance à l'alcool","Commandement","Savoir (Guerre)"],"talents":["Sans peur (Au choix)","Coeur vaillant","Inébranlable","Seigneur de guerre"],"trappings":["Carapaçon","Petite unité de chevaliers"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"First Knight"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.GPhqluMBhCeTnyNJ"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"Eo798NESMVD2QwV7","name":"Pistoletier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Pistoletier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["bs","ag","dex","i"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)","Escalade","Pari","Ragot","Intuition","Survie en extérieur","Métier (Armurier)"],"talents":["Coude-à-coude","Savoir-vivre (Soldats)","Tir rapide","Rechargement rapide"],"trappings":["Grand chapeau avec plume","Pistolet de qualité"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"EzDvoZB4Owzyuy2c","name":"Capitaine Grande épée","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-04.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Soldat"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":1},"characteristics":["ws","s","wp","i","t","int"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Ragot","Langue (Bataille)","Corps à corps (Base)","Corps à corps (A deux mains)","Musicien (Tambour)","Pari","Intimidation","Savoir (Héraldique)","Corps à corps (Au choix)","Survie en extérieur","Perception","Intuition","Commandement","Orientation","Chevaucher (Cheval)","Charme","Savoir (Stratégie militaire)"],"talents":["Présence imposante","Exaltant","Orateur","Coeur vaillant"],"trappings":["Lettre de mission","Cheval léger avec selle et harnais","Uniforme de qualité","Symbole de rang"],"incomeSkill":[8]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.e53TUabOHxkZHAqi"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"F7Vefdjmb6UShVpg","name":"Seigneur Druide","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":2},"characteristics":["wp","int","ag","i","fel","ws"],"skills":["Focalisation (Ghyran)","Emprise sur les animaux","Esquive","Intuition","Langue (Magick)","Savoir (Magick)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Charme","Ragot","Intimidation","Langue (Bataille)","Langue (Au choix)","Soin aux animaux","Chevaucher (Cheval)","Survie en extérieur","Orientation","Evaluation","Savoir(Plante)","Savoir (Au choix)"],"talents":["Vigilance","Effrayant","Volonté de fer","Mage de guerre"],"trappings":["Librairie (Magique)","Robes élaborées","Retraite de jardin"],"incomeSkill":[4],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"HScIzEodc6pycRYc","name":"Vieille garde","type":"career","img":"modules/wfrp4e-core/icons/careers/guard-04.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Garde"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":3},"characteristics":["ws","t","wp","s","i","fel"],"skills":["Athlétisme","Escalade","Calme","Esquive","Résistance","Corps à corps (Base)","Intimidation","Discrétion (Au choix) Langue(Bataille)","Divertissement (Chant)","Résistance à l'alcool","Ragot","Commandement","Savoir (Géologie)","Corps à corps (Parade)","Projectiles (Explosifs)","Intuition","Perception","Corps à corps (A deux mains)","Savoir (Guerre)","Orientation",""],"talents":["Présence imposante","Endurci","Exaltant","Coeur vaillant"],"trappings":["Unité de brise fer","arme portant une rune maître"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Dragon Slayer"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.nWFtlLdrGOhIJsMd"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"LdXbjO1QMoofePkS","name":"Sergent Fusilier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Fusilier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"s","standing":5},"characteristics":["bs","ag","dex","i","int"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)","Escalade","Pari","Ragot","Intuition","Survie en extérieur","Métier (Armurier)","Commandement","Orientation","Projectiles (Ingénierie)","Chevaucher (Cheval)"],"talents":["Vigilance","Tireur d'élite","Tir sûr","Inébranlable"],"trappings":["Symbole de rang","Uniforme de qualité"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.N25MgAS8SL71Tvvz"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"Lna9fnbv1ZpjZlbP","name":"Archer","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-02.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Archer"},"class":{"type":"String","label":"Class","value":"Guerrier"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["s","bs","i","ag"],"skills":["Pari","Ragot","Corps à corps (Base)","Survie en extérieur","Pistage","Métier (Fabricant de flèches)","Athlétisme","Escalade","Résistance à l'alcool","Esquive","Langue(Bataille)","Perception","Musicien(Corne)","Projectile(Arc)","Discrétion(Rurale)"],"talents":["Savoir-vivre (Soldats)","Tireur de précision","Tir sûr","Coude-à-coude"],"trappings":["Epée","Arc de qualité","couvre-chef"],"incomeSkill":[13]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.M7Jxj2dPKQFicA8b"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"M6szd5LqHjrigadd","name":"Capitaine Chevalier errant","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier errant"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"g","standing":1},"characteristics":["ws","s","i","ag","wp"],"skills":["Athlétisme","Soin aux animaux","Emprise sur les animaux","Guérison","Ragot","Survie en extérieur","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Intuition","Corps à corps (Au choix)","Charme","Résistance à l'alcool","Commandement","Savoir (Guerre)","Pari","Marchandage"],"talents":["Maîtrise du combat","Coeur vaillant","Inébranlable","Seigneur de guerre"],"trappings":["Carapaçon","Petite suite de suivants"],"incomeSkill":[6],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"First Knight"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.GPhqluMBhCeTnyNJ"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"NqwVT6diup3KAaz9","name":"Pyromancier","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["wp","int","ag","ws"],"skills":["Focalisation (Aqshy)","Esquive","Intuition","Langue (Magick)","Savoir (Magie)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Charme","Calme","Ragot","Intimidation","Langue (Bataille)","Langue (Au choix)","Savoir(Stratégie militaire)","Commandement",""],"talents":["Magie des Arcanes (Feu)","Détection d'artefact","Mains agiles","Sixième Sens"],"trappings":["License de magie","Robes pratiques","Seconde et troisième clés des secrets","Epée"],"incomeSkill":[3],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"OorZm6R5oGvRG3Zs","name":"Cadet Grande épée","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-01.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Soldat"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"s","standing":1},"characteristics":["ws","s","wp"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Ragot","Langue (Bataille)","Corps à corps (Base)","Corps à corps (A deux mains)","Musicien (Tambour)"],"talents":["Imperturbable","Coude-à-coude","Infatigable","Guerrier né"],"trappings":["Dague","plastron d'acier","uniforme","Epée à deux mains"],"incomeSkill":[8]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.QrbKnqJ0oXXSEwyM"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"RNifoRSLD2sGpMzH","name":"Capitaine Pistoletier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Pistoletier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":1},"characteristics":["bs","ag","dex","i","int","wp"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)","Escalade","Pari","Ragot","Intuition","Survie en extérieur","Métier (Armurier)","Commandement","Orientation","Projectiles (Ingénierie)","Chevaucher (Cheval)","Charme","Savoir (Stratégie militaire)"],"talents":["Exaltant","Voyageur aguerri","Coeur vaillant","Seigneur de guerre"],"trappings":["Lettre de mission","Cheval de guerre léger avec fontes et selle","Symbole de rang"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"Rg9d1oGIBePS8LtA","name":"Sergent Grande épée","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-03.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Soldat"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"s","standing":5},"characteristics":["ws","s","wp","i","t"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Ragot","Langue (Bataille)","Corps à corps (Base)","Corps à corps (A deux mains)","Musicien (Tambour)","Pari","Intimidation","Savoir (Héraldique)","Corps à corps (Au choix)","Survie en extérieur","Perception","Intuition","Commandement","Orientation","Chevaucher (Cheval)",""],"talents":["Vigilance","Combattant en espace clos","Inébranlable","Seigneur de guerre"],"trappings":["Manuel sur l'art de combattre avec une épée à deux mains","Epée à deux mains de qualité","Symbole de rang"],"incomeSkill":[8]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.aEDq4xrMlCivhIgI"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"TdnL6veNdLxGt4ti","name":"Premier Chevalier Panthère","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier Panthère"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"g","standing":2},"characteristics":["s","i","ws","ag","wp"],"skills":["Athlétisme","Soin aux animaux","Charme","Emprise sur les animaux","Guérison","Savoir (Empire)","Savoir (Héraldique)","Corps à corps (Base)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Langue (Bataille)","Corps à corps ()","Charme","Langue ()","Commandement","Savoir (Stratégie militaire)"],"talents":["Sans peur (Chaos)","Coeur vaillant","Inébranlable","Seigneur de guerre"],"trappings":["Caparaçon","Petite unité de Chevalier Panthère"],"incomeSkill":[8],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"Tt8e49EaGzcde6lv","name":"Ecuyer Chevalier Panthère","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier Panthère"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"s","standing":3},"characteristics":["s","i","ws"],"skills":["Athlétisme","Soin aux animaux","Charme","Emprise sur les animaux","Guérison","Savoir (Empire)","Savoir (Héraldique)","Corps à corps (Base)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)"],"talents":["Savoir-vivre","Cavalier émérite","Costaud","Guerrier né"],"trappings":["Veste de cuir","Chemise de mailles","Cheval de selle avec fontes et selle","Bouclier","Outils (Maréchal Ferrand)"],"incomeSkill":[8],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"TzHA4hYvllpATCNR","name":"Brise Fer","type":"career","img":"modules/wfrp4e-core/icons/careers/guard-02.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Garde"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["ws","t","wp","s"],"skills":["Athlétisme","Escalade","Calme","Esquive","Résistance","Corps à corps (Base)","Intimidation","Discrétion (Au choix) Langue(Bataille)","Divertissement (Chant)","Résistance à l'alcool","Ragot","Commandement","Savoir (Géologie)","Corps à corps (Parade)","Projectiles (Explosifs)"],"talents":["Battement","Vigilance","Porte-bouclier","Inébranlable"],"trappings":["3 bombes","une arme ou une pièce d'armure en Gromril"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Dragon Slayer"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.nWFtlLdrGOhIJsMd"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"Uk8GjboFpky5s1rb","name":"Sergent Hallebardier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-03.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Hallebardier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"s","standing":5},"characteristics":["ws","t","ag","s","i"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Représentation (Parade)","Musicien (Tambour)","Escalade","Pari","Intimidation","Survie en extérieur","Perception","Intuition","Commandement","Orientation","Chevaucher (Cheval)"],"talents":["Vigilance","Inébranlable","Coeur vaillant","Seigneur de guerre"],"trappings":["Uniforme de qualité","Symbole de rang"],"incomeSkill":[7]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.AvS1DCWQ3uYuA1d2"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"Wg3atohL0uISyrvx","name":"Hallebardier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-02.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Hallebardier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["ws","t","ag","s"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Représentation (Parade)","Musicien (Tambour)","Escalade","Pari","Ragot","Intimidation","Survie en extérieur","Perception"],"talents":["Combattant en espace clos","Savoir-vivre (Soldats)","Sans peur (Au choix)","Coup puissant"],"trappings":["Plastron d'acier","Hallebarde de qualité","Heaume ouvert"],"incomeSkill":[7]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.1GlINqj6gVsnLtmF"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"aqFlKIE9TVnuphma","name":"Capitaine Hallebardier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-04.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Hallebardier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":1},"characteristics":["ws","t","ag","s","i","dex"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Représentation (Parade)","Musicien (Tambour)","Escalade","Pari","Intimidation","Survie en extérieur","Perception","Intuition","Commandement","Orientation","Chevaucher (Cheval)","Charme","Savoir (Stratégie militaire)"],"talents":["Exaltant","Orateur","Voyageur aguerri","Présence imposante"],"trappings":["Lettre de mission","Léger cheval de guerre avec fontes et selle","Epée de qualité","Symbole de rang"],"incomeSkill":[7]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.AvS1DCWQ3uYuA1d2"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"cTK9YmeYcqyvKAC3","name":"Barbe de fer","type":"career","img":"modules/wfrp4e-core/icons/careers/guard-03.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Brise fer"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"g","standing":1},"characteristics":["ws","t","wp","s","i"],"skills":["Athlétisme","Escalade","Calme","Esquive","Résistance","Corps à corps (Base)","Intimidation","Discrétion (Au choix) Langue(Bataille)","Divertissement (Chant)","Résistance à l'alcool","Ragot","Commandement","Savoir (Géologie)","Corps à corps (Parade)","Projectiles (Explosifs)","Intuition","Perception","Corps à corps (A deux mains)"],"talents":["Frappe précise","Maîtrise du combat","Frappe réactive","Seigneur de guerre"],"trappings":["Hache à deux mains","armure complète en gromril."],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Dragon Slayer"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.nWFtlLdrGOhIJsMd"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"cfrlj6ONuyuwFjhZ","name":"Recrue Hallebardier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-01.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Hallebardier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"s","standing":3},"characteristics":["ws","t","ag"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Représentation (Parade)","Musicien (Tambour)",""],"talents":["Coude-à-coude","Maîtrise des dés","Infatigable","Guerrier né"],"trappings":["Dague","Hallebarde","Uniforme","Plastron en cuir"],"incomeSkill":[7]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.PdjC0DsvnilBl39o"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"dlfeyiufHuAd8Ekj","name":"Commandant de compagnie (Cercle intérieur)","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier du Loup Blanc"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":3},"characteristics":["s","i","ws","ag","wp","t"],"skills":["Athlétisme","Soin aux animaux","Charme","Emprise sur les animaux","Guérison","Savoir()","Savoir(Héraldique)","Corps à corps(Base)","Corps à corps(Cavalerie)","Chevaucher(Cheval)","Métier (Maréchal-ferrant)","Survie en extérieur","Calme","Esquive","Résistance","Intimidation","Langue(Bataille)","Corps à corps()","Résistance à l'alcool","Commandement","Savoir(Stratégie militaire)","Perception","Savoir()","Signes secrets(Ulric)"],"talents":["Endurci","Exaltant","Volonté de fer","Imperturbable"],"trappings":["Ecuyer","Compagnie de Chevaliers du Loup Blanc"],"incomeSkill":[8],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"eyoKOHqKDJWrEiNm","name":"Chevalier","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":5},"characteristics":["ws","s","i","ag"],"skills":["Athlétisme","Soin aux animaux","Emprise sur les animaux","Guérison","Savoir (Héraldique)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Langue (Bataille)","Corps à corps (Au choix)"],"talents":["Menaçant","Voyageur aguerri","Porte-bouclier","Coup puissant"],"trappings":["Destrier avec fontes et selle","Arme à 1 main (Au choix)","Lance","Armure de plates et Heaume"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Knight"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FhK6JOd3LSTlHwoa"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"f5aesgb3NB90LTni","name":"Maître Druide","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"g","standing":1},"characteristics":["wp","int","ag","i","fel"],"skills":["Focalisation (Ghyran)","Emprise sur les animaux","Esquive","Intuition","Langue (Magick)","Savoir (Magick)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Charme","Ragot","Intimidation","Langue (Bataille)","Langue (Au choix)","Soin aux animaux","Evaluation","Savoir (Magick)","Chevaucher (Cheval)","Survie en extérieur","Orientation","Evaluation","Savoir(Plante)"],"talents":["Nomade","Diction Instinctive","Perception de la magie","Menaçant"],"trappings":["Apprenti","Faucille en or","Objet Magique","Robes standards"],"incomeSkill":[4],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"gmWLGaKQwXKdTLBM","name":"Druide","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["wp","int","ag","i"],"skills":["Focalisation (Ghyran)","Emprise sur les animaux","Esquive","Intuition","Langue (Magick)","Savoir (Magick)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Charme","Ragot","Intimidation","Langue (Bataille)","Langue (Au choix)","Survie en extérieur","Orientation"],"talents":["Magie des Arcanes (Vie)","Détection d'artefact","Sixième sens","Mains agiles"],"trappings":["License de magie","Robes pratiques","Faucille en argent"],"incomeSkill":[4],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"kXm8TVGDTDmUhRau","name":"Chevalier du cercle intérieur","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":4},"characteristics":["ws","s","i","ag","wp","fel"],"skills":["Athlétisme","Soin aux animaux","Emprise sur les animaux","Guérison","Savoir (Héraldique)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Langue (Bataille)","Corps à corps (Au choix)","Charme","Résistance à l'alcool","Commandement","Savoir (Guerre)","Savoir (Au choix)","Signes secrets (Ordre chevaleresque)"],"talents":["Désarmer","Exaltant","Volonté de fer","Frappe blessante"],"trappings":["Grand Heaume avec Plumes","Ecuyer","Grande unité de Chevaliers ou plusieurs petites unités de Chevaliers"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Knight of the Inner Circle"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.Esy17RVOZQw2gShT"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"ke2oDDtn4tqXsT2x","name":"Sergent Templier","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier du Loup Blanc"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"g","standing":2},"characteristics":["s","i","ws","ag","wp"],"skills":["Athlétisme","Soin aux animaux","Charme","Emprise sur les animaux","Guérison","Survie en extérieur","Savoir (Héraldique)","Corps à corps (Base)","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Langue (Bataille)","Corps à corps ()","Résistance à l'alcool","Commandement","Savoir (Stratégie militaire)","Perception"],"talents":["Sans peur (Au choix)","Assaut féroce","Inébranlable","Seigneur de guerre"],"trappings":["Caparaçon","Petite unité de Chevalier du Loup Blanc"],"incomeSkill":[8],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"lYqf7uK7eZjO7Ceb","name":"Maître Pyromancier","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"3"},"status":{"tier":"g","standing":1},"characteristics":["wp","int","ag","i","ws"],"skills":["Focalisation (Aqshy)","Emprise sur les animaux","Esquive","Intuition","Langue (Magick)","Savoir (Magie)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Charme","Calme","Ragot","Intimidation","Langue (Bataille)","Langue (Au choix)","Chevaucher (Cheval)","Evaluation","Savoir(Stratégie militaire)","Commandement","Recherche",""],"talents":["Maniement de deux armes","Diction instinctive","Perception de la magie","Menaçant"],"trappings":["Objet magique","Robes standards","Apprenti","Quatrième et cinquième clés des secrets","Cheval de guerre léger"],"incomeSkill":[4],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"lpjLnwoUHHQKvCCz","name":"Seigneur Pyromancier","type":"career","img":"modules/wfrp4e-core/icons/careers/wizard-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.m6WuSnrrW7QllX63]{Wizard}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Sorcier"},"class":{"type":"String","label":"Class","value":"Lettrés"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":2},"characteristics":["wp","int","ag","i","fel","ws"],"skills":["Focalisation (Aqshy)","Emprise sur les animaux","Esquive","Intuition","Langue (Magick)","Savoir (Magie)","Corps à corps (Base)","Corps à corps (Armes d'hast)","Perception","Charme","Calme","Ragot","Intimidation","Langue (Bataille)","Langue (Au choix)","Chevaucher (Cheval)","Evaluation","Savoir(Stratégie militaire)","Savoir (Au choix)","Commandement","Recherche",""],"talents":["Vigilance","Effrayant","Volonté de fer","Mage de guerre"],"trappings":["Librairie (Magique)","Robes élaborées","Apprenti","Sixième et septième clés des secrets","Atelier magique"],"incomeSkill":[4],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"details","babele":{"translated":true,"hasTranslation":true,"originalName":"Master Wizard"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.1DIMUn1Cj5rohWJV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"lu761rq8xijg1Gb6","name":"Fusilier","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>Pistoletier ou Pistolier: soldat arm&eacute; de un ou deux pistolets. Dans le monde de Warhammer, le terme de Pistolier d&eacute;signe d&eacute;j&agrave; une cavalerie l&eacute;g&egrave;re munie d'armes &agrave; feu, le plus souvent compos&eacute;e de cadet noble.Raison pour laquelle le terme de pistoletier sera choisi pour cette carri&egrave;re.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Fusilier"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"2"},"status":{"tier":"s","standing":3},"characteristics":["bs","ag","dex","i"],"skills":["Athlétisme","Résistance à l'alcool","Calme","Esquive","Résistance","Langue (Bataille)","Corps à corps (Base)","Perception","Musicien (Flute)","Projectiles (Poudre noire)","Escalade","Pari","Ragot","Intuition","Survie en extérieur","Métier (Armurier)"],"talents":["Coude-à-coude","Savoir-vivre (Soldats)","Tir rapide","Rechargement rapide"],"trappings":["Grand chapeau avec plume","Arme à feu de qualité"],"incomeSkill":[9]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.ueWFtOkyyElDKDuH"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"mM23mWHtznFgOvHk","name":"Ecuyer Chevalier du Loup Blanc","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier du Loup Blanc"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"s","standing":3},"characteristics":["s","i","ws"],"skills":["Athlétisme","Soin aux animaux","Emprise sur les animaux","Guérison","Savoir (Héraldique)","Corps à corps(Base)","Corps à corps(Cavalerie)","Chevaucher(Cheval)","Métier(Maréchal-ferrant)","Survie en extérieur"],"talents":["Dur à cuire","Cavalier émérite","Costaud","Guerrier né"],"trappings":["Veste de cuir","Chemise de mailles","Cheval de selle avec fontes et selle","Marteau de cavalerie","Outils (Maréchal Ferrand)","Symbole Religieux d'Ulric"],"incomeSkill":[6],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Squire"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.FrPCbQ7fq1Fchthn"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.4.0"}}}
{"_id":"s6vmduwjYqoF34mY","name":"Recrue Archer","type":"career","img":"modules/wfrp4e-core/icons/careers/soldier-01.png","data":{"description":{"type":"String","label":"Description","value":""},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Archer"},"class":{"type":"String","label":"Class","value":"Guerrier"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"1"},"status":{"tier":"s","standing":1},"characteristics":["bs","i","ag"],"skills":["Athlétisme","Escalade","Résistance à l'alcool","Esquive","Langue(Bataille)","Perception","Musicien(Corne)","Projectile(Arc)","Discrétion(Rurale)"],"talents":["Tir Rapide","Guerrier né","Infatigable","Tir précis"],"trappings":["Dague","Uniforme","Arc","carquois de 10 flèches"],"incomeSkill":[7]},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"core":{"sourceId":"Item.W0I3duzzEHtIvzSj"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"uPebNEz85HC7bcSB","name":"Commandant Chevalier errant","type":"career","img":"modules/wfrp4e-core/icons/careers/knight-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.n2VdkCPNNxdupjeQ]{Knight}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Chevalier errant"},"class":{"type":"String","label":"Class","value":"Guerriers"},"current":{"type":"Boolean","value":false},"complete":{"type":"Boolean","value":false},"level":{"type":"String","label":"Career Level","value":"4"},"status":{"tier":"g","standing":3},"characteristics":["ws","s","i","ag","wp","fel"],"skills":["Athlétisme","Soin aux animaux","Emprise sur les animaux","Guérison","Ragot","Survie en extérieur","Corps à corps (Cavalerie)","Chevaucher (Cheval)","Métier (Maréchal-ferrant)","Calme","Esquive","Résistance","Intimidation","Intuition","Langue (Bataille)","Corps à corps (Au choix)","Charme","Résistance à l'alcool","Commandement","Savoir (Guerre)","Savoir (Au choix)","Pari","Marchandage"],"talents":["Désarmer","Exaltant","Volonté de fer","Chanceux"],"trappings":["Ecuyer","Compagnie de Chevaliers"],"incomeSkill":[6],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Knight of the Inner Circle"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.Esy17RVOZQw2gShT"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}

4
patch-styles.css Normal file
View File

@ -0,0 +1,4 @@
/** To deal with wrong menu background */
:root{
--color-bg-option: #352516;
}

View File

@ -1 +0,0 @@
TODO: Instructions for custom tables

View File

@ -1,50 +1,50 @@
{
"name": "Athletics - Middenball",
"name": "Athlétisme - Middenball",
"hide" : true,
"die": "1d100",
"rows": [
{
"description": "An Away Team player is positioned in the Full Back area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe invitée est positionné à l'arrière du terrain. S'ils passent ce tour, ils peuvent tirer.",
"range": [1,2]
},
{
"description": "An Away Team player is positioned in the Half Back area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe invitée est positionné à au milieu de l'arrière du terrain. S'ils passent ce tour, ils peuvent tirer.",
"range": [3,10]
},
{
"description": "An Away Team player is positioned in the Home Midfield area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe invitée est positionné à au milieu du terrain de l'équipe qui reçoit. S'ils passent ce tour, ils peuvent tirer.",
"range": [11,20]
},
{
"description": "An Away Team player is positioned in the Away Midfield area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe invitée est positionné à l'avant du terrain. S'ils passent ce tour, ils peuvent tirer.",
"range": [21,35]
},
{
"description": "The Away Team show slight dominance. Add 5 to their A score next turn.",
"description": "L'équipe invitée domine légèrement la rencontre. Ajoutez 5 à leur score au prochain tour.",
"range": [36,46]
},
{
"description": "There is no effect this turn.",
"description": "Aucun effet ce tour.",
"range": [47,54]
},
{
"description": "The Home Team show slight dominance. Add 5 to their A score next turn.",
"description": "L'équipe qui reçoit domine légèrement la rencontre. Ajoutez 5 à leur score au prochain tour.",
"range": [55,65]
},
{
"description": "A Home Team player is positioned in the Home Midfield area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe qui reçoit est positionné à l'arrière du terrain. S'ils passent ce tour, ils peuvent tirer.",
"range": [66,80]
},
{
"description": "A Home Team player is positioned in the Away Midfield area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe qui reçoit est positionné au milieu du terrain de l'équipe qui reçoit. S'ils passent ce tour, ils peuvent tirer.",
"range": [81,90]
},
{
"description": "A Home Team player is positioned in the Half Forward area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe qui reçoit est positionné au milieu du terrain de l'équipe qui reçoit. S'ils passent ce tour, ils peuvent tirer.",
"range": [91,98]
},
{
"description": "A Home Team player is positioned in the Forward area of the pitch. If passed to this turn, they can shoot.",
"description": "Un joueur de l'équipe qui reçoit est positionné à l'avant du terrain. S'ils passent ce tour, ils peuvent tirer.",
"range": [99,100]
}
]

View File

@ -1,5 +1,5 @@
{
"name": "Brutality - Middenball",
"name": "Brutalité - Middenball",
"hide" : true,
"die": "1d100",
"rows": [

View File

@ -1,650 +0,0 @@
{
"name": "Carrières alétoires",
"columns": ["human-reiklander", "dwarf", "halfling", "helf", "welf", "gnome"],
"rows": [
{
"range":{
"human-reiklander" : [1, 1],
"dwarf" : [1, 1],
"halfling" : [1, 1],
"helf" : [1, 2],
"welf" : [],
"gnome" : [1, 1]
},
"name": "Apothicaire"
},
{
"range":{
"human-reiklander" : [2, 2],
"dwarf" : [2, 4],
"halfling" : [2, 2],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Ingénieur"
}, {
"range":{
"human-reiklander" : [3, 3],
"dwarf" : [5, 6],
"halfling" : [3, 4],
"helf" : [3, 6],
"welf" : [],
"gnome" : [2,2]
},
"name": "Juriste"
}, {
"range":{
"human-reiklander" : [4, 5],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Nonne"
}, {
"range":{
"human-reiklander" : [6, 6],
"dwarf" : [7, 7],
"halfling" : [5, 6],
"helf" : [7, 8],
"welf" : [],
"gnome" : [3,4]
},
"name": "Médecin"
}, {
"range":{
"human-reiklander" : [7, 11],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : [5,5]
},
"name": "Prêtre"
}, {
"range":{
"human-reiklander" : [12, 13],
"dwarf" : [8, 9],
"halfling" : [7, 8],
"helf" : [9, 12],
"welf" : [1, 1],
"gnome" : [6,7]
},
"name": "Erudit"
}, {
"range":{
"human-reiklander" : [14, 14],
"dwarf" : [],
"halfling" : [],
"helf" : [13, 16],
"welf" : [2, 5],
"gnome" : [8, 14]
},
"name": "Sorcier"
}, {
"range":{
"human-reiklander" : [15, 15],
"dwarf" : [10, 11],
"halfling" : [9, 10],
"helf" : [],
"welf" : [],
"gnome" : [15,15]
},
"name": "Agitateur"
}, {
"range":{
"human-reiklander" : [16, 17],
"dwarf" : [12, 17],
"halfling" : [11, 15],
"helf" : [17, 19],
"welf" : [6, 10],
"gnome" : [16,17]
},
"name": "Artisan"
}, {
"range":{
"human-reiklander" : [18, 19],
"dwarf" : [18],
"halfling" : [16, 19],
"helf" : [],
"welf" : [],
"gnome" : [18,18]
},
"name": "Mendiant"
}, {
"range":{
"human-reiklander" : [20, 20],
"dwarf" : [19, 20],
"halfling" : [20, 21],
"helf" : [20, 21],
"welf" : [],
"gnome" : [19,19]
},
"name": "Enquêteur"
}, {
"range":{
"human-reiklander" : [21, 21],
"dwarf" : [21, 24],
"halfling" : [22, 25],
"helf" : [22, 26],
"welf" : [],
"gnome" : [20,21]
},
"name": "Marchand"
}, {
"range":{
"human-reiklander" : [22, 23],
"dwarf" : [25, 25],
"halfling" : [26, 28],
"helf" : [],
"welf" : [],
"gnome" : [22,22]
},
"name": "Ratier"
}, {
"range":{
"human-reiklander" : [24, 26],
"dwarf" : [26, 31],
"halfling" : [29, 31],
"helf" : [27, 28],
"welf" : [],
"gnome" : [23,28]
},
"name": "Bourgeois"
}, {
"range":{
"human-reiklander" : [27, 27],
"dwarf" : [32, 34],
"halfling" : [32, 33],
"helf" : [29, 29],
"welf" : [],
"gnome" : [29,29]
},
"name": "Milicien"
}, {
"range":{
"human-reiklander" : [28, 28],
"dwarf" : [35, 36],
"halfling" : [34, 34],
"helf" : [30, 31],
"welf" : [11, 14],
"gnome" : [30,30]
},
"name": "Conseiller"
}, {
"range":{
"human-reiklander" : [29, 29],
"dwarf" : [37, 37],
"halfling" : [35, 36],
"helf" : [32, 32],
"welf" : [15, 18],
"gnome" : [31,31]
},
"name": "Artiste"
}, {
"range":{
"human-reiklander" : [30, 30],
"dwarf" : [38, 38],
"halfling" : [],
"helf" : [33, 34],
"welf" : [],
"gnome" : []
},
"name": "Duelliste"
}, {
"range":{
"human-reiklander" : [31, 31],
"dwarf" : [39, 40],
"halfling" : [37, 37],
"helf" : [35, 37],
"welf" : [19, 25],
"gnome" : [32,32]
},
"name": "Emissaire"
}, {
"range":{
"human-reiklander" : [32, 32],
"dwarf" : [41, 41],
"halfling" : [],
"helf" : [38, 40],
"welf" : [26, 31],
"gnome" : [33,33]
},
"name": "Noble"
},
{
"range":{
"human-reiklander" : [33, 35],
"dwarf" : [42, 42],
"halfling" : [38, 43],
"helf" : [],
"welf" : [],
"gnome" : [34,35]
},
"name": "Serviteur"
},{
"range":{
"human-reiklander" : [36, 36],
"dwarf" : [43, 43],
"halfling" : [44, 44],
"helf" : [41, 43],
"welf" : [32, 35],
"gnome" : [36,40]
},
"name": "Espion"
},{
"range":{
"human-reiklander" : [37, 37],
"dwarf" : [44, 45],
"halfling" : [45, 46],
"helf" : [44, 45],
"welf" : [],
"gnome" : [41,42]
},
"name": "Intendant"
},{
"range":{
"human-reiklander" : [38, 38],
"dwarf" : [46, 47],
"halfling" : [47, 47],
"helf" : [],
"welf" : [],
"gnome" : [43,43]
},
"name": "Bailli"
},{
"range":{
"human-reiklander" : [39, 39],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Sorcier de village"
},{
"range":{
"human-reiklander" : [40, 40],
"dwarf" : [],
"halfling" : [48, 50],
"helf" : [46, 47],
"welf" : [36, 42],
"gnome" : [44,44]
},
"name": "Herboriste"
},{
"range":{
"human-reiklander" : [41, 42],
"dwarf" : [48, 49],
"halfling" : [51, 52],
"helf" : [48, 50],
"welf" : [43, 52],
"gnome" : [45,46]
},
"name": "Chasseur"
},{
"range":{
"human-reiklander" : [43, 43],
"dwarf" : [50, 54],
"halfling" : [53, 53],
"helf" : [],
"welf" : [],
"gnome" : [47,54]
},
"name": "Mineur"
},{
"range":{
"human-reiklander" : [44, 44],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [53, 57],
"gnome" : []
},
"name": "Mystique"
},{
"range":{
"human-reiklander" : [45, 45],
"dwarf" : [55, 55],
"halfling" : [54, 54],
"helf" : [51, 56],
"welf" : [58, 68],
"gnome" : [55,58]
},
"name": "Eclaireur"
},{
"range":{
"human-reiklander" : [46, 50],
"dwarf" : [56, 56],
"halfling" : [55, 57],
"helf" : [],
"welf" : [],
"gnome" : [59,62]
},
"name": "Villageois"
},{
"range":{
"human-reiklander" : [51, 51],
"dwarf" : [57, 60],
"halfling" : [58, 58],
"helf" : [57, 59],
"welf" : [69, 70],
"gnome" : [63,63]
},
"name": "Chasseur de primes"
},{
"range":{
"human-reiklander" : [52, 52],
"dwarf" : [61, 61],
"halfling" : [59, 60],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Cocher"
},{
"range":{
"human-reiklander" : [53, 54],
"dwarf" : [62, 63],
"halfling" : [61, 63],
"helf" : [60, 62],
"welf" : [71, 75],
"gnome" : [64,68]
},
"name": "Saltimbanque"
},{
"range":{
"human-reiklander" : [55, 56],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Flagellant"
},{
"range":{
"human-reiklander" : [57, 57],
"dwarf" : [64, 65],
"halfling" : [64, 65],
"helf" : [63, 63],
"welf" : [76, 78],
"gnome" : [69,69]
},
"name": "Messager"
},{
"range":{
"human-reiklander" : [58, 58],
"dwarf" : [66, 67],
"halfling" : [66, 67],
"helf" : [],
"welf" : [],
"gnome" : [70,75]
},
"name": "Colporteur"
},{
"range":{
"human-reiklander" : [59, 59],
"dwarf" : [],
"halfling" : [68, 68],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Patrouilleur routier"
},{
"range":{
"human-reiklander" : [60, 60],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Répurgateur"
},{
"range":{
"human-reiklander" : [61, 62],
"dwarf" : [68, 69],
"halfling" : [69, 69],
"helf" : [64, 64],
"welf" : [],
"gnome" : [76,76]
},
"name": "Batelier"
},{
"range":{
"human-reiklander" : [63, 63],
"dwarf" : [70, 70],
"halfling" : [70, 70],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Nautonier"
},{
"range":{
"human-reiklander" : [64, 65],
"dwarf" : [],
"halfling" : [71, 71],
"helf" : [],
"welf" : [],
"gnome" : [77,80]
},
"name": "Patrouilleur fluvial"
},{
"range":{
"human-reiklander" : [66, 68],
"dwarf" : [71, 72],
"halfling" : [72, 74],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Femme du fleuve"
},{
"range":{
"human-reiklander" : [69, 70],
"dwarf" : [73, 73],
"halfling" : [75, 75],
"helf" : [65, 79],
"welf" : [],
"gnome" : []
},
"name": "Marin"
},{
"range":{
"human-reiklander" : [71, 71],
"dwarf" : [74, 75],
"halfling" : [76, 79],
"helf" : [80, 80],
"welf" : [],
"gnome" : [81,83]
},
"name": "Contrebandier"
},{
"range":{
"human-reiklander" : [72, 73],
"dwarf" : [76, 77],
"halfling" : [80, 82],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Débardeur"
},{
"range":{
"human-reiklander" : [74, 74],
"dwarf" : [78, 78],
"halfling" : [],
"helf" : [],
"welf" : [79, 79],
"gnome" : []
},
"name": "Naufrageur"
},{
"range":{
"human-reiklander" : [75, 76],
"dwarf" : [],
"halfling" : [83, 85],
"helf" : [81, 82],
"welf" : [],
"gnome" : [84,85]
},
"name": "Entremetteur"
},{
"range":{
"human-reiklander" : [77, 77],
"dwarf" : [],
"halfling" : [86, 86],
"helf" : [83, 85],
"welf" : [],
"gnome" : [86,90]
},
"name": "Charlatan"
},{
"range":{
"human-reiklander" : [78, 78],
"dwarf" : [79, 79],
"halfling" : [87, 87],
"helf" : [],
"welf" : [],
"gnome" : [91,91]
},
"name": "Receleur"
},{
"range":{
"human-reiklander" : [79, 79],
"dwarf" : [],
"halfling" : [88, 88],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Pilleur de tombes"
},{
"range":{
"human-reiklander" : [80, 83],
"dwarf" : [80, 82],
"halfling" : [89, 89],
"helf" : [86, 88],
"welf" : [80, 85],
"gnome" : [92,92]
},
"name": "Hors-la-Loi"
},{
"range":{
"human-reiklander" : [84, 84],
"dwarf" : [83, 83],
"halfling" : [90, 90],
"helf" : [],
"welf" : [],
"gnome" : [93,94]
},
"name": "Rançonneur"
},{
"range":{
"human-reiklander" : [85, 87],
"dwarf" : [84, 84],
"halfling" : [91, 94],
"helf" : [],
"welf" : [],
"gnome" : [95,97]
},
"name": "Voleur"
},{
"range":{
"human-reiklander" : [88, 88],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Sorcier sauvage"
},{
"range":{
"human-reiklander" : [89, 90],
"dwarf" : [],
"halfling" : [],
"helf" : [89, 92],
"welf" : [86, 90],
"gnome" : []
},
"name": "Cavalier"
},
{
"range":{
"human-reiklander" : [91, 92],
"dwarf" : [85, 87],
"halfling" : [95, 96],
"helf" : [93, 94],
"welf" : [91, 92],
"gnome" : [98,98]
},
"name": "Garde"
},{
"range":{
"human-reiklander" : [93, 93],
"dwarf" : [],
"halfling" : [],
"helf" : [95, 95],
"welf" : [93, 94],
"gnome" : []
},
"name": "Chevalier"
},{
"range":{
"human-reiklander" : [94, 94],
"dwarf" : [88, 90],
"halfling" : [97, 97],
"helf" : [96, 97],
"welf" : [95, 96],
"gnome" : []
},
"name": "Gladiateur"
},{
"range":{
"human-reiklander" : [95, 95],
"dwarf" : [91, 93],
"halfling" : [],
"helf" : [98, 98],
"welf" : [],
"gnome" : []
},
"name": "Spadassin"
},{
"range":{
"human-reiklander" : [96, 99],
"dwarf" : [94, 96],
"halfling" : [98, 100],
"helf" : [99, 100],
"welf" : [97, 100],
"gnome" : [99,99]
},
"name": "Soldat"
},{
"range":{
"human-reiklander" : [],
"dwarf" : [97, 100],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : []
},
"name": "Tueur Nains"
},{
"range":{
"human-reiklander" : [100, 100],
"dwarf" : [],
"halfling" : [],
"helf" : [],
"welf" : [],
"gnome" : [100,100]
},
"name": "Prêtre Guerrier"
}
]
}

View File

@ -1,650 +0,0 @@
{
"name": "Carrière aléatoire",
"columns": ["human", "dwarf", "halfling", "gnome", "helf", "welf"],
"rows": [
{
"range":{
"human" : [1, 1],
"dwarf" : [1, 1],
"halfling" : [1, 1],
"gnome" : [1, 1],
"helf" : [1, 2],
"welf" : []
},
"name": "Apothicaire"
},
{
"range":{
"human" : [2, 2],
"dwarf" : [2, 4],
"halfling" : [2, 2],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Ingénieur"
}, {
"range":{
"human" : [3, 3],
"dwarf" : [5, 6],
"halfling" : [3, 4],
"gnome" : [2, 2],
"helf" : [3, 6],
"welf" : []
},
"name": "Juriste"
}, {
"range":{
"human" : [4, 5],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Nonne"
}, {
"range":{
"human" : [6, 6],
"dwarf" : [7, 7],
"halfling" : [5, 6],
"gnome" : [3, 4],
"helf" : [7, 8],
"welf" : []
},
"name": "Médecin"
}, {
"range":{
"human" : [7, 11],
"dwarf" : [],
"halfling" : [],
"gnome" : [5, 5],
"helf" : [],
"welf" : []
},
"name": "Prêtre"
}, {
"range":{
"human" : [12, 13],
"dwarf" : [8, 9],
"halfling" : [7, 8],
"gnome" : [6, 7],
"helf" : [9, 12],
"welf" : [1, 1]
},
"name": "Erudit"
}, {
"range":{
"human" : [14, 14],
"dwarf" : [],
"halfling" : [],
"gnome" : [8, 14],
"helf" : [13, 16],
"welf" : [2, 5]
},
"name": "Sorcier"
}, {
"range":{
"human" : [15, 15],
"dwarf" : [10, 11],
"halfling" : [9, 10],
"gnome" : [15, 15],
"helf" : [],
"welf" : []
},
"name": "Agitateur"
}, {
"range":{
"human" : [16, 17],
"dwarf" : [12, 17],
"halfling" : [11, 15],
"gnome" : [16, 17],
"helf" : [17, 19],
"welf" : [6, 10]
},
"name": "Artisan"
}, {
"range":{
"human" : [18, 19],
"dwarf" : [18, 18],
"halfling" : [16, 19],
"gnome" : [18, 18],
"helf" : [],
"welf" : []
},
"name": "Mendiant"
}, {
"range":{
"human" : [20, 20],
"dwarf" : [19, 20],
"halfling" : [20, 21],
"gnome" : [19, 19],
"helf" : [20, 21],
"welf" : []
},
"name": "Enquêteur"
}, {
"range":{
"human" : [21, 21],
"dwarf" : [21, 24],
"halfling" : [22, 25],
"gnome" : [20, 21],
"helf" : [22, 26],
"welf" : []
},
"name": "Marchand"
}, {
"range":{
"human" : [22, 23],
"dwarf" : [25, 25],
"halfling" : [26, 28],
"gnome" : [22, 22],
"helf" : [],
"welf" : []
},
"name": "Ratier"
}, {
"range":{
"human" : [24, 26],
"dwarf" : [26, 31],
"halfling" : [29, 31],
"gnome" : [23, 28],
"helf" : [27, 28],
"welf" : []
},
"name": "Bourgeois"
}, {
"range":{
"human" : [27, 27],
"dwarf" : [32, 34],
"halfling" : [32, 33],
"gnome" : [29, 29],
"helf" : [29, 29],
"welf" : []
},
"name": "Milicien"
}, {
"range":{
"human" : [28, 28],
"dwarf" : [35, 36],
"halfling" : [34, 34],
"gnome" : [30, 30],
"helf" : [30, 31],
"welf" : [11, 14]
},
"name": "Conseiller"
}, {
"range":{
"human" : [29, 29],
"dwarf" : [37, 37],
"halfling" : [35, 36],
"gnome" : [31, 31],
"helf" : [32, 32],
"welf" : [15, 18]
},
"name": "Artiste"
}, {
"range":{
"human" : [30, 30],
"dwarf" : [38, 38],
"halfling" : [],
"gnome" : [],
"helf" : [33, 34],
"welf" : []
},
"name": "Duelliste"
}, {
"range":{
"human" : [31, 31],
"dwarf" : [39, 40],
"halfling" : [37, 37],
"gnome" : [32, 32],
"helf" : [35, 37],
"welf" : [19, 25]
},
"name": "Emissaire"
}, {
"range":{
"human" : [32, 32],
"dwarf" : [41, 41],
"halfling" : [],
"gnome" : [33, 33],
"helf" : [38, 40],
"welf" : [26, 31]
},
"name": "Noble"
},
{
"range":{
"human" : [33, 35],
"dwarf" : [42, 42],
"halfling" : [38, 43],
"gnome" : [34, 35],
"helf" : [],
"welf" : []
},
"name": "Serviteur"
},{
"range":{
"human" : [36, 36],
"dwarf" : [43, 43],
"halfling" : [44, 44],
"gnome" : [36, 40],
"helf" : [41, 43],
"welf" : [32, 35]
},
"name": "Espion"
},{
"range":{
"human" : [37, 37],
"dwarf" : [44, 45],
"halfling" : [45, 46],
"gnome" : [41, 42],
"helf" : [44, 45],
"welf" : []
},
"name": "Intendant"
},{
"range":{
"human" : [38, 38],
"dwarf" : [46, 47],
"halfling" : [47, 47],
"gnome" : [43, 43],
"helf" : [],
"welf" : []
},
"name": "Bailli"
},{
"range":{
"human" : [39, 39],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Sorcier de Village"
},{
"range":{
"human" : [40, 40],
"dwarf" : [],
"halfling" : [48, 50],
"gnome" : [44, 44],
"helf" : [46, 47],
"welf" : [36, 42]
},
"name": "Herboriste"
},{
"range":{
"human" : [41, 42],
"dwarf" : [48, 49],
"halfling" : [51, 52],
"gnome" : [45, 46],
"helf" : [48, 50],
"welf" : [43, 52]
},
"name": "Chasseur"
},{
"range":{
"human" : [43, 43],
"dwarf" : [50, 54],
"halfling" : [53, 53],
"gnome" : [47, 54],
"helf" : [],
"welf" : []
},
"name": "Miner"
},{
"range":{
"human" : [44, 44],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : [53, 57]
},
"name": "Mystic"
},{
"range":{
"human" : [45, 45],
"dwarf" : [55, 55],
"halfling" : [54, 54],
"gnome" : [55, 58],
"helf" : [51, 56],
"welf" : [58, 68]
},
"name": "Scout"
},{
"range":{
"human" : [46, 50],
"dwarf" : [56, 56],
"halfling" : [55, 57],
"gnome" : [59, 62],
"helf" : [],
"welf" : []
},
"name": "Villager"
},{
"range":{
"human" : [51, 51],
"dwarf" : [57, 60],
"halfling" : [58, 58],
"gnome" : [63, 63],
"helf" : [57, 59],
"welf" : [69, 70]
},
"name": "Bounty Hunter"
},{
"range":{
"human" : [52, 52],
"dwarf" : [61, 61],
"halfling" : [59, 60],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Coachman"
},{
"range":{
"human" : [53, 54],
"dwarf" : [62, 63],
"halfling" : [61, 63],
"gnome" : [64, 68],
"helf" : [60, 62],
"welf" : [71, 75]
},
"name": "Entertainer"
},{
"range":{
"human" : [55, 56],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Flagellant"
},{
"range":{
"human" : [57, 57],
"dwarf" : [64, 65],
"halfling" : [64, 65],
"gnome" : [69, 69],
"helf" : [63, 63],
"welf" : [76, 78]
},
"name": "Messenger"
},{
"range":{
"human" : [58, 58],
"dwarf" : [66, 67],
"halfling" : [66, 67],
"gnome" : [70, 75],
"helf" : [],
"welf" : []
},
"name": "Pedlar"
},{
"range":{
"human" : [59, 59],
"dwarf" : [],
"halfling" : [68, 68],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Road Warden"
},{
"range":{
"human" : [60, 60],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Witch Hunter"
},{
"range":{
"human" : [61, 62],
"dwarf" : [68, 69],
"halfling" : [69, 69],
"gnome" : [76, 76],
"helf" : [64, 64],
"welf" : []
},
"name": "Boatman"
},{
"range":{
"human" : [63, 63],
"dwarf" : [70, 70],
"halfling" : [70, 70],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Huffer"
},{
"range":{
"human" : [64, 65],
"dwarf" : [],
"halfling" : [71, 71],
"gnome" : [77, 80],
"helf" : [],
"welf" : []
},
"name": "Riverwarden"
},{
"range":{
"human" : [66, 68],
"dwarf" : [71, 72],
"halfling" : [72, 74],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Riverwoman"
},{
"range":{
"human" : [69, 70],
"dwarf" : [73, 73],
"halfling" : [75, 75],
"gnome" : [],
"helf" : [65, 79],
"welf" : []
},
"name": "Seaman"
},{
"range":{
"human" : [71, 71],
"dwarf" : [74, 75],
"halfling" : [76, 79],
"gnome" : [81, 83],
"helf" : [80, 80],
"welf" : []
},
"name": "Smuggler"
},{
"range":{
"human" : [72, 73],
"dwarf" : [76, 77],
"halfling" : [80, 82],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Stevedore"
},{
"range":{
"human" : [74, 74],
"dwarf" : [78, 78],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : [79, 79]
},
"name": "Wrecker"
},{
"range":{
"human" : [75, 76],
"dwarf" : [],
"halfling" : [83, 85],
"gnome" : [84, 85],
"helf" : [81, 82],
"welf" : []
},
"name": "Bawd"
},{
"range":{
"human" : [77, 77],
"dwarf" : [],
"halfling" : [86, 86],
"gnome" : [86, 90],
"helf" : [83, 85],
"welf" : []
},
"name": "Charlatan"
},{
"range":{
"human" : [78, 78],
"dwarf" : [79, 79],
"halfling" : [87, 87],
"gnome" : [91, 91],
"helf" : [],
"welf" : []
},
"name": "Fence"
},{
"range":{
"human" : [79, 79],
"dwarf" : [],
"halfling" : [88, 88],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Grave Robber"
},{
"range":{
"human" : [80, 83],
"dwarf" : [80, 82],
"halfling" : [89, 89],
"gnome" : [92, 92],
"helf" : [86, 88],
"welf" : [80, 85]
},
"name": "Outlaw"
},{
"range":{
"human" : [84, 84],
"dwarf" : [83, 83],
"halfling" : [90, 90],
"gnome" : [93, 94],
"helf" : [],
"welf" : []
},
"name": "Racketeer"
},{
"range":{
"human" : [85, 87],
"dwarf" : [84, 84],
"halfling" : [91, 94],
"gnome" : [95, 97],
"helf" : [],
"welf" : []
},
"name": "Thief"
},{
"range":{
"human" : [88, 88],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Witch"
},{
"range":{
"human" : [89, 90],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [89, 92],
"welf" : [86, 90]
},
"name": "Cavalryman"
},
{
"range":{
"human" : [91, 92],
"dwarf" : [85, 87],
"halfling" : [95, 96],
"gnome" : [98, 98],
"helf" : [93, 94],
"welf" : [91, 92]
},
"name": "Guard"
},{
"range":{
"human" : [93, 93],
"dwarf" : [],
"halfling" : [],
"gnome" : [],
"helf" : [95, 95],
"welf" : [93, 94]
},
"name": "Knight"
},{
"range":{
"human" : [94, 94],
"dwarf" : [88, 90],
"halfling" : [97, 97],
"gnome" : [],
"helf" : [96, 97],
"welf" : [95, 96]
},
"name": "Pit Fighter"
},{
"range":{
"human" : [95, 95],
"dwarf" : [91, 93],
"halfling" : [],
"gnome" : [],
"helf" : [98, 98],
"welf" : []
},
"name": "Protagonist"
},{
"range":{
"human" : [96, 99],
"dwarf" : [94, 96],
"halfling" : [98, 100],
"gnome" : [99, 99],
"helf" : [99, 100],
"welf" : [97, 100]
},
"name": "Soldier"
},{
"range":{
"human" : [],
"dwarf" : [97, 100],
"halfling" : [],
"gnome" : [],
"helf" : [],
"welf" : []
},
"name": "Slayer"
},{
"range":{
"human" : [100, 100],
"dwarf" : [],
"halfling" : [],
"gnome" : [100, 100],
"helf" : [],
"welf" : []
},
"name": "Warrior Priest"
}
]
}

View File

@ -1,70 +1,70 @@
{
"name": "Castle Room Contents",
"name": "Contenu des pièces du chateau",
"hide" : true,
"die": "1d100",
"rows": [
{
"description": "Armour/weapons (broken/rusted)",
"description": "Armures/Armes (cassées/rouillées)",
"range": [1,5]
},
{
"description": "Barrel beer, flour, brandy, oil, salt, etc.",
"description": "Tonneaux - Bière, Farine, Brandy, Huile, Sel, etc.",
"range": [6,10]
},
{
"description": "Bedding rugs, sheets, blankets, straw, etc.",
"description": "Literie couvertures, draps, matelas, etc.",
"range": [11,15]
},
{
"description": "Box crockery, cutlery, pots & pans, tools, etc.",
"description": "Boites caseroles, coutellerie, pots, outils, etc.",
"range": [16,20]
},
{
"description": "Broom",
"description": "Balais",
"range": [21,25]
},
{
"description": "Bucket water, milk, sand, acid, etc.",
"description": "Seau eau, lait, sable, acide, etc.",
"range": [26,30]
},
{
"description": "Candles/lamps",
"description": "Chandelles/Lampes",
"range": [31,35]
},
{
"description": "Chair armchair, chaise longue, sofa, stool, etc.",
"description": "Chaises fauteuil, chaise longue, sofa, tavouret, etc.",
"range": [36,40]
},
{
"description": "Chamber pot",
"description": "Pot de Chambre",
"range": [41,45]
},
{
"description": "Chest of Clothes",
"description": "Coffre à Vêtements",
"range": [46,50]
},
{
"description": "Cressets (torch-holders)",
"description": "Porte-Flambeaux",
"range": [51,55]
},
{
"description": "Firewood/rushes",
"description": "Bois de chauffage/Bûches",
"range": [56,60]
},
{
"description": "Musical instrument drums, pipes, etc.",
"description": "Instrument de musique - tambour, flutes, etc.",
"range": [61,65]
},
{
"description": "Painting historic scenes, castle views, portraits, landscapes, etc.",
"description": "Tableaux scènes historiques, vue du chateau, portraits, paysages, etc.",
"range": [66,70]
},
{
"description": "Sacks flour, grain, etc.",
"description": "Sacs farine, grain, etc.",
"range": [71,75]
},
{
"description": "Shelves books, ornaments, etc.",
"description": "Etagères livres, décorations, etc.",
"range": [76,80]
},
{
@ -72,15 +72,15 @@
"range": [81,85]
},
{
"description": "Table dining, writing, bedside, card, workbench, bloodstained, broken, etc.",
"description": "Table diner, écritoire, de chevet, à jouer, établi, cassé, etc.",
"range": [86,90]
},
{
"description": "Tapestry see Painting",
"description": "Tapisserie voir Tableaux",
"range": [91,95]
},
{
"description": "Wardrobe with clothes, shoes, underwear, etc.",
"description": "Garde robe - vêtements, chaussures, sous-vêtements, etc.",
"range": [96,100]
}
]

View File

@ -1,5 +1,5 @@
{
"name": "Cavity Worms Effect",
"name": "Effets des Vers Sous-terrains",
"die": "1d10",
"hide": true,
"rows": [
@ -12,19 +12,19 @@
"range": [3,4]
},
{
"description": "-[[1d10]] Willpower",
"description": "-[[1d10]] Force Mentale",
"range": [5,6]
},
{
"description": "-[[1d10]] Fellowship",
"description": "-[[1d10]] Soc.",
"range": [7,8]
},
{
"description": "@Compendium[wfrp4e-core.traits.IPKRMGry6WotuS1G]{Skittish}",
"description": "@Compendium[wfrp4e-core.traits.IPKRMGry6WotuS1G]{Nerveux}",
"range": [9,9]
},
{
"description": "@Compendium[wfrp4e-core.traits.9GNpAqgsKzxZKJpp]{Stupid}",
"description": "@Compendium[wfrp4e-core.traits.9GNpAqgsKzxZKJpp]{Stupide}",
"range": [10,10]
},
{
@ -32,7 +32,7 @@
"range": [11,12]
},
{
"description": "Death",
"description": "Mort",
"range": [13,13]
}
]

View File

@ -1,5 +1,5 @@
{
"name": "Demonic Mien",
"name": "Trait Démonique",
"die": "1d10",
"columns": [
"Nurgle",
@ -61,7 +61,7 @@
"Tzeentch": [4,4],
"Commun": [5,5]
},
"Description": "@Compendium[wfrp4e.traits.pTorrE0l3VybAbtn]{Peur (3)}"
"Description": "@Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur (3)}"
},
{
"range": {

View File

@ -1,702 +1,702 @@
{
"name": "Dooming",
"name": "Destinée",
"die": "1d100",
"rows": [
{
"description": "The witches word shall write your doom.",
"description": "Le mot « sorcières » signera ton destin.",
"range": [
1,
1
]
},
{
"description": "The warmth of drink shall be blood welling from the wound.",
"description": "La chaleur dune boisson sera semblable à celle du sang suintant dune blessure.",
"range": [
2,
2
]
},
{
"description": "Sweets and honey are to thee as blood and boils.",
"description": "Les friandises et le miel seront pour toi comme le sang et les pustules.",
"range": [
3,
3
]
},
{
"description": "Beware of what hides in folds and ruffles.",
"description": "Méfie-toi de ce qui se dissimule sous les ruchés et les plis des vêtements.",
"range": [
4,
4
]
},
{
"description": "A sure foot is a life continued.",
"description": "Un pied sûr est signe de longue vie.",
"range": [
5,
5
]
},
{
"description": "Thou mind lingers overlong in the land of dreams.",
"description": "Celui dont lesprit sattarde demeure dans le monde des rêves.",
"range": [
6,
6
]
},
{
"description": "Forget not the word of thou mother, nor yet the face of thou father.",
"description": "N'oublie ni le nom de ta mère, ni le visage de ton père.",
"range": [
7,
7
]
},
{
"description": "To darkness shall a light soul be delivered.",
"description": "Une âme faible sera livrée aux ténèbres.",
"range": [
8,
8
]
},
{
"description": "Pinch closed thine nose lest the stench of death find its home.",
"description": "Pince fermement ton nez, de crainte que la puanteur de la mort ny pénètre.",
"range": [
9,
9
]
},
{
"description": "Death gathers under dark clouds.",
"description": "La mort se regroupe sous les nuages sombres.",
"range": [
10,
10
]
},
{
"description": "Open not the door knocked but once.",
"description": "Nouvre pas si l'on ne frappe quune fois à la porte.",
"range": [
11,
11
]
},
{
"description": "Tread not upon the roots of trees.",
"description": "Ne marche pas sur les racines des arbres.",
"range": [
12,
12
]
},
{
"description": "It ringeth once: peace. It ringeth twice: pleasure. It ringeth thrice: damnation.",
"description": "Une sonnerie : paix. Une seconde sonnerie : plaisir. Une troisième : damnation",
"range": [
13,
13
]
},
{
"description": "Fear not the witch, but cower before the witch hunter.",
"description": "Ne crains pas la sorcière, mais évite le Répurgateur.",
"range": [
14,
14
]
},
{
"description": "When ice burns and fire freezes, then shall be the hour of your death.",
"description": "L'heure de ta mort sonnera lorsque la glace brûlera et que le feu gèlera.",
"range": [
15,
15
]
},
{
"description": "Suffer not the scales in balance.",
"description": "Ne tolère pas les balances à l'équilibre.",
"range": [
16,
16
]
},
{
"description": "Beware gutters and drains for they are the edge between worlds.",
"description": "Fais attention aux gouttières et aux canalisations car elles forment une frontière entre les mondes.",
"range": [
17,
17
]
},
{
"description": "As new life cries out, Father Morr shall welcome thee.",
"description": "Le Père Morr faccueillera 1orsquune nouvelle vie hurlera.",
"range": [
18,
18
]
},
{
"description": "Beware the raven that lingers overlong.",
"description": "Attention au corbeau qui sattarde un peu trop.",
"range": [
19,
19
]
},
{
"description": "Can you not hear the hounds in the clinking of brass coins?",
"description": "N'entends tu pas les limiers dans le son des pièces de cuivre ?",
"range": [
20,
20
]
},
{
"description": "When the beast bows its head, death shall be close behind.",
"description": "Lorsque la bête baisse le col, la mort n'est pas bien loin.",
"range": [
21,
21
]
},
{
"description": "Discard the meat of the hoofed beast — it shall be ever ash in your mouth!",
"description": "Ne consomme pas la chair de bêtes aux sabots fendus, car elle aura toujours un goût de cendres dans ta bouche.",
"range": [
22,
22
]
},
{
"description": "Trust not the signs of Ranald.",
"description": "Ne fais pas confiance aux signes de Ranald.",
"range": [
23,
23
]
},
{
"description": "Look but once into the mirrors frame, for what stares out second shall come to claim.",
"description": "Ne regarde pas plus d'une fois dans le miroir, car ce qui regardera en second viendra faire une requête.",
"range": [
24,
24
]
},
{
"description": "Thy death shall be found in a festering warren.",
"description": "Ta mort surviendra dans un terrier infesté.",
"range": [
25,
25
]
},
{
"description": "Beware the Men that walk as Beasts. Beware the Beasts that walk as Men.",
"description": "Méfie-toi des Hommes qui marchent comme des Bêtes. Méfie—toi des Bêtes qui marchent comme des Hommes.",
"range": [
26,
26
]
},
{
"description": "Step not into the houses of the Gods, for they know your name and welcome you not.",
"description": "N'entre pas dans les maisons des dieux, car ils connaissent ton nom et ne t'accueilleront pas avec bienveillance.",
"range": [
27,
27
]
},
{
"description": "Beware the bed who holds no owner.",
"description": "Méfie—toi du lit qui nappartient à personne.",
"range": [
28,
28
]
},
{
"description": "All the pleasures of the flesh shall be as knives in your back.",
"description": "Tous les plaisirs de la chair ne seront que des lames dans ton dos.",
"range": [
29,
29
]
},
{
"description": "Let no one wake thee, for fear of what may follow.",
"description": "Ne laisse personne te réveiller, de peur de ce qui sensuivra.",
"range": [
30,
30
]
},
{
"description": "Sorrow stems from soiled breeches.",
"description": "Le chagrin découle de culottes souiles.",
"range": [
31,
31
]
},
{
"description": "Thy death will be ugly, and will be born of ugliness.",
"description": "Ta mort sera laide et proviendra de la laideur.",
"range": [
32,
32
]
},
{
"description": "Heed not the engineer, for their artifice brings only suffering.",
"description": "Ne tiens pas compte des ingénieurs, car leurs artifices nengendrent que le malheur.",
"range": [
33,
33
]
},
{
"description": "Trust not the woman who gives no name, for she hides far worse within her heart.",
"description": "Méfie—toi de la femme sans nom, elle cache bien pire dans son cœur.",
"range": [
34,
34
]
},
{
"description": "Hold thou breath under Morrsleibs light, lest darkness take root in thou soul.",
"description": "Retiens ton souflîe sous la lumière de Morrsleib, sinon la noirceur senracinera dans ton âme.",
"range": [
35,
35
]
},
{
"description": "Thou first sip of beer shall be thine last.",
"description": "Ta première gorgée de bière sera la dernière.",
"range": [
36,
36
]
},
{
"description": "Beware the purse that floweth over.",
"description": "Méfie-toi de la bourse qui déborde.",
"range": [
37,
37
]
},
{
"description": "Morr shall fly a false flag, and in its shade take thee to rest.",
"description": "Morr te tendra un piège et remportera dans son ombre.",
"range": [
38,
38
]
},
{
"description": "Upon bright sands is both promise and blood.",
"description": "Sur des sables lumineux, des promesses et du sang.",
"range": [
39,
39
]
},
{
"description": "Fear the land bereft of the gulls cry.",
"description": "Crains les terres dépourvues du cri de la mouette.",
"range": [
40,
40
]
},
{
"description": "If thine eyes close with knowledge of the unjust, they shall never again open.",
"description": "Si tes yeux se ferment sur la connaissance de l'injustice, tu ne les rouvriras pas.",
"range": [
41,
41
]
},
{
"description": "Thy passing shall go unmourned, unremembered, and unremarked.",
"description": "Ton trépas ne sera pas pleuré, il passera inaperçu et personne ne sen souviendra.",
"range": [
42,
42
]
},
{
"description": "Trust not in shades of purple.",
"description": "Ne fais pas confiance aux diverses nuances de violet.",
"range": [
43,
43
]
},
{
"description": "Never before was there one such as thee, who drowned on land and not at sea.",
"description": "Tu seras lunique à te noyer sur terre et non dans la mer.",
"range": [
44,
44
]
},
{
"description": "Thou shall live only whilst beholden to friends.",
"description": "Tu ne survivras que tant que tu seras sous le regard d'amis.",
"range": [
45,
45
]
},
{
"description": "An idle mind is a feast for Ruin.",
"description": "Un esprit oisif est un festin pour la Ruine.",
"range": [
46,
46
]
},
{
"description": "Thou most certainly can die from such a small thing.",
"description": "Tu pourras très certainement mourir d'une cause mineure.",
"range": [
47,
47
]
},
{
"description": "Beware thou own mind, for it speaks to the soul of invincibility.",
"description": "Attention à ton esprit car il parle à lâme de l'invincibilité.",
"range": [
48,
48
]
},
{
"description": "Laugh not in the face of the flatulent lest thou gut twist.",
"description": "Ne te moque pas des fiatulents, de peur que tes tripes ne se tordent.",
"range": [
49,
49
]
},
{
"description": "The horses know more than they let slip, but their moment of truth will be thy doom.",
"description": "Les chevaux en savent plus quils ne le montrent, mais leur moment de vérité sera celui de ta mort.",
"range": [
50,
50
]
},
{
"description": "Linger not upon the privy, nor close thine eyes within the tub.",
"description": "Ne tattarde pas aux toilettes et ne ferme pas les yeux dans ton bain.",
"range": [
51,
51
]
},
{
"description": "When night falls, knives move silently from their sheaths.",
"description": "Lorsque la nuit tombe, les couteaux glissent en silence hors de leur fourreau.",
"range": [
52,
52
]
},
{
"description": "Let not thy neighbours belly rumble, for too quickly does hunger become murder.",
"description": "Ne laisse pas gronder Yestomac de ton voisin, car la faim se transforme rapidement en meurtre.",
"range": [
53,
53
]
},
{
"description": "In freezing mist shall thee be swallowed.",
"description": "Dans la brume glacée, tu seras englouti.",
"range": [
54,
54
]
},
{
"description": "Trust not the written word, for the quill cuts deeper than any blade.",
"description": "Ne te fie pas aux écrits, car la plume peut être plus acérée quune lame.",
"range": [
55,
55
]
},
{
"description": "Thou shall die of thirst whilst surrounded by drink, hunger whilst surrounded by food.",
"description": "Tu mourras de soif entouré de boissons, de faim au milieu de mets.",
"range": [
56,
56
]
},
{
"description": "Beware the launder, for the mangle shall live up to its name.",
"description": "Attention au blanchisscur, car l'essoreuse se montrera à la hauteur de sa réputation.",
"range": [
57,
57
]
},
{
"description": "When the shadows pass overhead, do not look up for fear of death.",
"description": "Lorsque les ombres te survoleront, ne lève pas les yeux sous peine de mourir.",
"range": [
58,
58
]
},
{
"description": "The number three shall end thee.",
"description": "Le nombre trois marquera ta fin.",
"range": [
59,
59
]
},
{
"description": "Thou shall float in a foam of blood before the waves take thee.",
"description": "Tu flotteras dans l'écume sanglante avant que les vagues ne t'emmènent.",
"range": [
60,
60
]
},
{
"description": "Sleep not beneath the twin moons, for their shadows are long and deep.",
"description": "Ne t'endors pas sous les lunes jumelles, car leurs ombres sont longues et profondes.",
"range": [
61,
61
]
},
{
"description": "Avoid rot, mould, and all decay, for it knows your name and calls you kin.",
"description": "Evite la pourriture, la moisissure et tout ce qui se putréfie, car tu leur es familier.",
"range": [
62,
62
]
},
{
"description": "At no bakers hearth shall ye sit.",
"description": "Ne t'assieds pas près de l'âtre d'un boulanger.",
"range": [
63,
63
]
},
{
"description": "Thou shall die chained to a trusted friend.",
"description": "Tu mourras enchaîné à un ami de confiance.",
"range": [
64,
64
]
},
{
"description": "When freedom bought, thine end is wrought.",
"description": "Ton destin sera scellé à l'achat de ta liberté.",
"range": [
65,
65
]
},
{
"description": "Thy bones shall litter a foreign land.",
"description": "Tes os joncheront une terre étrangère.",
"range": [
66,
66
]
},
{
"description": "No spear shall end thee, but thou will wish it did.",
"description": "Aucune lance ne te tuera, mais tu aurais préféré ce destin.",
"range": [
67,
67
]
},
{
"description": "Beware the barking of hounds, especially whose source you cannot see.",
"description": "Attention aux aboiements des limiers, surtout de ceux que tu ne voies pas.",
"range": [
68,
68
]
},
{
"description": "Morr comes to thee when blue is all you see.",
"description": "Morr viendra à toi lorsque tu ne verras plus que du bleu.",
"range": [
69,
69
]
},
{
"description": "Glance not behind, for doom approaches from the front.",
"description": "Ne regarde pas derrière toi, car ta perte arrive en face.",
"range": [
70,
70
]
},
{
"description": "Hide not the blemish lest it fester out of sight.",
"description": "Ne dissimule pas une tache, de peur quelle ne suppure sans que tu ne le voies.",
"range": [
71,
71
]
},
{
"description": "Thine ears shall be filled with laughter before the screams.",
"description": "Tes oreilles entendront les rires avant les cris.",
"range": [
72,
72
]
},
{
"description": "Suffer not the witch to live, for they shall not suffer thee.",
"description": "Ne souffre pas que vivent les sorcières, car elles ne souffriront pas que tu survives.",
"range": [
73,
73
]
},
{
"description": "Hold thy cup in both hands, lest the Ruinous Powers takes up from thee.",
"description": "Tiens fermement ta coupe à deux mains, de peur que les Puissances de la Ruine ne sen emparent.",
"range": [
74,
74
]
},
{
"description": "Death shall be but blood on the vine.",
"description": "La mort ne sera que du sang sur la vigne.",
"range": [
75,
75
]
},
{
"description": "No mortal warrior shall be thine end.",
"description": "Tu ne seras tué par aucun guerrier mortel.",
"range": [
76,
76
]
},
{
"description": "Trust not the strength of bridges.",
"description": "Ne te fie pas à la solidité des ponts.",
"range": [
77,
77
]
},
{
"description": "Wipe not the tear from thine eye, for it shall be the last.",
"description": "Nessuie pas les larmes de tes yeux, ce seront les dernières.",
"range": [
78,
78
]
},
{
"description": "The songs of birds shall be the last thing you hear.",
"description": "Le chant des oiseaux sera la dernière chose que tu entendras.",
"range": [
79,
79
]
},
{
"description": "The latest fashions hold the newest threats.",
"description": "La dernière mode renferme les toutes nouvelles menaces.",
"range": [
80,
80
]
},
{
"description": "Thou thinketh the one-edge blade cannot cut the wielder, but thou wouldst be wrong.",
"description": "Tu penseras que la lame à simple tranchant ne peut blesser son porteur, mais tu auras tort.",
"range": [
81,
81
]
},
{
"description": "Violence begets violence, but peace begets death.",
"description": "La violence engendre la violence, mais la paix engendre la mort.",
"range": [
82,
82
]
},
{
"description": "The drumming of feet shall see thee to Morrs embrace.",
"description": "Les bruits de piétinement marqueront pour toi l'étreinte de Morr.",
"range": [
83,
83
]
},
{
"description": "A night without song precedes a morning without waking.",
"description": "Une nuit sans chanson précède un matin sans réveil.",
"range": [
84,
84
]
},
{
"description": "Pluck not water from the well, lest it pluck thee from the earth.",
"description": "Ne tire pas de leau au puits, de peur quil ne tavale.",
"range": [
85,
85
]
},
{
"description": "Trust not the hooting owl, for thou cannot hear them, and thus hears something else.",
"description": "Ne te fie pas aux chouettes qui hululent, car comme tu ne peux les entendre, tu prêtes en fait l'oreille à tout autre chose.",
"range": [
86,
86
]
},
{
"description": "When thou feet are buried in mud, thy death will be close behind.",
"description": "Lorsque tes pieds seront enfouis dans la boue, ta mort sera toute proche.",
"range": [
87,
87
]
},
{
"description": "A true haunting comes in threes.",
"description": "La véritable hantise vient par trois.",
"range": [
88,
88
]
},
{
"description": "No bells toll when the door is ajar, but fiddlers shall dance upon thy grave.",
"description": "Aucun glas ne résonne lorsque la porte est entrouverte, mais les violoneux danseront sur ta tombe.",
"range": [
89,
89
]
},
{
"description": "Thou life undone by the smallest flea.",
"description": "Ta Vie sachèvera à cause de la plus pefite des puces.",
"range": [
90,
90
]
},
{
"description": "When the peasant stands triumphant shall your head separate from your shoulders.",
"description": "Lorsque le paysan triomphera, ta tête sera séparée de ton corps.",
"range": [
91,
91
]
},
{
"description": "Trust not the innocence of children, for their plans are far from sound.",
"description": "Méfie—toi de Yinnocence des enfants car leurs desseins sont loin dêtre prudents.",
"range": [
92,
92
]
},
{
"description": "Consider not the cloth of green.",
"description": "Tiens—toi à l'écart détoffe verte.",
"range": [
93,
93
]
},
{
"description": "Beware all that swims in the sea.",
"description": "Attention à ce qui nage dans la mer.",
"range": [
94,
94
]
},
{
"description": "Rise not before midmorning, for thine death is early indeed.",
"description": "Ne te lève pas avant le milieu de la matinée, car ta mort arrive à laube.",
"range": [
95,
95
]
},
{
"description": "Save not the needy for they shall carry thine noose.",
"description": "Naide pas les nécessiteux car ils porteront la corde pour te pendre.",
"range": [
96,
96
]
},
{
"description": "False courage spells certain doom.",
"description": "Le faux courage entraîne ta fin certaine.",
"range": [
97,
97
]
},
{
"description": "There shall be no ravens to pick upon your bones.",
"description": "Aucun corbeau ne picorerea tes os.",
"range": [
98,
98
]
},
{
"description": "Morr sends a maiden.",
"description": "Morr envoie une vierge.",
"range": [
99,
99
]
},
{
"description": "Thy death will mark the virtuous with sin.",
"description": "Ta mort souillera de péché les vertueux.",
"range": [
100,
100

View File

@ -1,5 +1,5 @@
{
"name": "Destinée",
"name": "Destinée 2",
"die": "1d100",
"rows": [{
"description": "Ta fin sera gluante.\r",

View File

@ -1,353 +1,353 @@
{
"name": "How Do I Know You Again?",
"name": "On se connait pas déja?",
"die": "1d100",
"hide": true,
"rows": [
{
"description": "We both served time in one of the Empires illustrious prisons.",
"description": "Nous avons purgé en même temps une peine dans l'une des célèbres prisons de l'Empire.",
"range": [
1,
2
]
},
{
"description": "We used to be lovers, but the whims of Katya pulled us apart.",
"description": "Nous étions amants, mais les caprices de Shallya nous ont séparés..",
"range": [
3,
4
]
},
{
"description": "We are distantly related, through a complex web of bloodlines better left unexamined.",
"description": "Nous sommes parents éloignés, dune famille tentaculaire dont il vaut mieux ignorer les liens.",
"range": [
5,
6
]
},
{
"description": "We are childhood friends, who grew up in the same rough neighbourhood.",
"description": "Nous sommes des amis d'enfance, et nous avons grandi dans le même quartier.",
"range": [
7,
8
]
},
{
"description": "We were once going to be married, but the Rhyans refused to wed us, and we never learned why.",
"description": "Nous devions nous marier mais les prêtresses de Rhya ont refusé de nous bénir, et nous navons jamais su pourquoi.",
"range": [
9,
10
]
},
{
"description": "We grew up in the same town, on the outskirts of the same monster-filled wilderness.",
"description": "Nous avons grandi dans la même ville, en bordure de contrées sauvages grouillant de monstres.",
"range": [
11,
12
]
},
{
"description": "We were rivals for the same position, and butted heads for years.",
"description": "Nous désirions le même poste et nous avons été ennemis durant des années.",
"range": [
13,
14
]
},
{
"description": "We were rivals for the same paramour who was cruelly stolen from the world by the machinations of Morr.",
"description": "Nous aimons la même personne qui nous a été cruellement enlevée par les machinations de Morr.",
"range": [
15,
16
]
},
{
"description": "One of us was a previous victim of the others criminal ways, though, thank Ranald, that the victim doesnt realise it!",
"description": "Lun de nous a été victime des crimes de l autre, même si, que Ranald en soit béni, la victime ne la pas compris.",
"range": [
17,
18
]
},
{
"description": "One of us once betrayed the other, though by the grace of Sigmar, that past crime has been forgiven… or has it?",
"description": "Lun de nous a trabi lautre, même si, par la grâce de Sigmar, ce crime passé a été pardonne. . .Mais est—ce bien le cas?",
"range": [
19,
20
]
},
{
"description": "We served in the same conscripted militia, and learned to fear the howling of Ulrics wolves together.",
"description": "Nous avons servi dans la même milice et nous avons appris ensemble a craindre les hurlements des loups dUlric.",
"range": [
21,
22
]
},
{
"description": "We were refugees together after a Greenskin attack on our duchy.",
"description": "Nous sommes tous deux des réfugiés dun Duché attaqué par des peaux-vertes.",
"range": [
23,
24
]
},
{
"description": "We met a long time ago, in a city on the other side of the Old World.",
"description": "Nous nous sommes rencontrés il y a longtemps, à lautre bout du Vieux Monde. ",
"range": [
25,
26
]
},
{
"description": "We were both victims of the same misfortune under Morrsleibs pale-green glow.",
"description": "Nous sommes tous deux des victimes de la même infortune sous la lueur vert pâle de Morrslieb.",
"range": [
27,
28
]
},
{
"description": "We were both embroiled in a brawl together, somewhere on Altdorf s Street of a Thousand Taverns, and teamed up for mutual safety.",
"description": "Nous avons tous les deux été pris dans une bagarre, quelque part dans la Rue des Milles Tavernes d'Altdorf et avons fait équipe pour notre sécurité.",
"range": [
29,
30
]
},
{
"description": "One of us was mistaken for someone else by the other, and lead on a series of curious events before anyone realised.",
"description": "Lun de nous a été pris pour une personne diflîîrente, ce qui a entraîné une série dévénements curieux avant que l'erreur ne soit dissipée.",
"range": [
31,
32
]
},
{
"description": "We met on the road, travelling in the same direction, and, just got to talking.",
"description": "Nous nous sommes rencontrés en route, voyageant dans la même direction, et on a discuté.",
"range": [
33,
34
]
},
{
"description": "We were both framed by a Roadwarden for a crime we didnt commit.",
"description": "Nous avons été piégés par un Patrouilleur routier pour un crime que nous navons pas commis.",
"range": [
35,
36
]
},
{
"description": "We were both sentenced to hang when our convoy was attacked by Beastmen and we escaped together.",
"description": "Nous avons été tous deux condamnés au gibet lorsque notre convoi a été attaquépar des hommes-bêtes et nous nous sommes échappés",
"range": [
37,
38
]
},
{
"description": "One of us married the others widowed father or mother.",
"description": "Lun de nous deux a épousé la mère ou le père veuf de lautre.",
"range": [
39,
40
]
},
{
"description": "We were both sick and treated by the same Shallyan Order.",
"description": "Nous sommes tous deux malades et soignés par lOrdre de Shallya",
"range": [
41,
42
]
},
{
"description": "We grew up in the same Sigmarite congregation.",
"description": "Nous avons grandi dans la même congrégation sigmarite.",
"range": [
43,
44
]
},
{
"description": "We were childhood sweethearts, until one of us had to leave home forever.",
"description": "Enfants, nous étions amoureux lun de lautre, jusquà ce que lun des deux ne soit obligé de quitter son foyer pour toujours.",
"range": [
45,
46
]
},
{
"description": "Our families have feuded for generations; indeed, our neighbours called our family disputes the, Little Parravonese Wars.",
"description": "Nos familles ont étéennemies durant desgénérations. Nos voisins appelaient leurs disputes : « Les Petites Guerres de Parravon ».",
"range": [
47,
48
]
},
{
"description": "One of our fathers murdered the others in a vendetta worthy of a Tilean opera.",
"description": "Le père de lun de nous a tué celui de lautre au cours dune vendetta digne dun opéra tiléen.",
"range": [
49,
50
]
},
{
"description": "One of our families adopted the other when their family was burnt for witchcraft.",
"description": "L'un de nous deux a été adopté par la famille de lautre, car la sienne avait été brûlée pour sorcellerie.",
"range": [
51,
52
]
},
{
"description": "One of us caught the other red-handed picking their pocket.",
"description": "Lun de nous deux a pris lautre en train de fouiller dans sespoches.",
"range": [
53,
54
]
},
{
"description": "We both attended a funeral in the Garden of Morr for a mutual friend.",
"description": "Nous avons tous deux assisté à des funérailles dun ami commun dans le jardin de Morr.",
"range": [
55,
56
]
},
{
"description": "Our mothers were old travelling companions, before they settled down to their respective families.",
"description": "Nos mères étaient d'anciennes compagnes de voyage, avant de sétablir dans leurs familles respectives.",
"range": [
57,
58
]
},
{
"description": "We both have siblings who were caught up in the same Chaos Cult.",
"description": "Nous avons tous deux des frères ou sœurs enrôlés dans le même culte du Chaos.",
"range": [
59,
60
]
},
{
"description": "Our siblings ran off together, causing a scandal in both families.",
"description": "Nos frères ou sœurs se sont enfuis ensemble, ce qui a provoqué un scandale familial",
"range": [
61,
62
]
},
{
"description": "We share a merchant father who was juggling two families, kept secret from each other.",
"description": "Nous avons le même père, un marchand jonglant secrètement entre deux familles.",
"range": [
63,
64
]
},
{
"description": "We were both caught during the same raid on a brothel, and had to explain how we were steadfastly not involved with the Chaos Cult discovered out back.",
"description": "Nous avons tous deux été capturés durant la même descente dans un bordel, et nous avons du expliquer avec fermeté n'avoir aucun lien avec le culte du Chaos qui y a été découvert.",
"range": [
65,
66
]
},
{
"description": "We used to be roommates in a filthy tenement building.",
"description": "Nous étions colocataires dans un bâtiment pouilleux.",
"range": [
67,
68
]
},
{
"description": "Somehow, our Doomings demanded we meet up, though we obviously keep them secret from each other.",
"description": "Nos Destinées exigeaient que nous nous rencontrions, même si nous n'en avons jamais parlé ensemble.",
"range": [
69,
70
]
},
{
"description": "We grew up in rivalling provinces, despite our villages being less than a mile from each other.",
"description": "Nous avons grandi dans des provinces rivales, même si nos villages nétaient distants que de quelques kilomètres.",
"range": [
71,
72
]
},
{
"description": "We were once shipwrecked together, and had to spend an uncomfortable few months off the coast of Nordland.",
"description": "Nous avons subi ensemble un naufrage, et nous avons du passer quelques mois difficiles sur la côte du Nordland.",
"range": [
73,
74
]
},
{
"description": "We were both onboard ships that were captured by Sartosan pirates, but managed to escape together.",
"description": "Nous étions tous deux à bord de bateaux capturés par des pirates sartosiens et nous avons réussi à nous échapper ensemble.",
"range": [
75,
76
]
},
{
"description": "We both caught the same terrible disease many years ago, and were locked in quarantine together before it mysteriously lifted.",
"description": "Il y a quelques années, nous avons tous deux attrapé la même terrible maladie et nous avons été placés ensemble en quarantaine avant qu'elle ne se dissipe mystérieusement.",
"range": [
77,
78
]
},
{
"description": "One of us turned up drunk on the others doorstep with the homeowners name tattooed on their arm. Neither of us know how this could have happened, or why.",
"description": "L'un de nous sest retrouvé ivre sur le palier de l autre avec le nom du propriétaire des lieux tatoué sur le bras. Aucun des deux ne sais comment cela a pu se produire.",
"range": [
79,
80
]
},
{
"description": "We were both invited to the same dinner party hosted by an aristocrat in a dusty out-of-fashion doublet with a strange accent.",
"description": "Nous avons tous deux été invités à une fête donnée par un aristocrate à laccent étrange, portant un pourpoint démodé et poussérieux.",
"range": [
81,
82
]
},
{
"description": "A letter in one of our fathers Last Will and Testaments contained the name and address of the other, and we cannot determine why this is…",
"description": "Une lettre jointe aux dernières volontés de l'un de nos pères contient le nom et l adresse de l autre, sans que nous sachions pourquoi",
"range": [
83,
84
]
},
{
"description": "We were both forced to flee our hometown when our families were caught between two rival gangs.",
"description": "Nous avons tous deux été forcés de quitter notre ville natale lorsque nos familles ont été prises dans une guerre de gangs.",
"range": [
85,
86
]
},
{
"description": "We were both caught in a crossfire between two charging armies, and barely escaped the bloodshed.",
"description": "Nous avons été pris dans les feux croisés de deux armées en train de charger, et nous avons échappé de justesse au bain de sang",
"range": [
87,
88
]
},
{
"description": "One of us saved the other from a terrible bully when we were growing up, and weve stuck close together ever since.",
"description": "L'un de nous a sauvé lautre d une horrible brute lorsque nous étions enfants, et, depuis, nous sommes restés proches.",
"range": [
89,
90
]
},
{
"description": "We found each other after not being able to sleep for several nights in a row… The scratching in the walls just got too much, and we got to talking.",
"description": "L'un de nous na pu dormir plusieurs nuits d'affilée', à cause des grattements dans les murs, et nous avons beaucoup parlé.",
"range": [
91,
92
]
},
{
"description": "We were both using the same river crossing when we were accosted by a notorious highwayman. Lets just say it didnt turn out well for him.",
"description": "Nous traversions la même rivière lorsque nous avons été accostés par un célèbre bandit de grand chemin. Disons simplement que cela n'a pas tourné à son avantage.",
"range": [
93,
94
]
},
{
"description": "We both attended an uncharacteristically and inexplicably free lecture held in the local university, and it changed how we saw the world from then on.",
"description": "Nous avons assisté à une étrange et inhabituelle conférence publique dans une université du coin, et cela a complètement changé notre vision du monde.",
"range": [
95,
96
]
},
{
"description": "A witch introduced us to each other, and gave the impression it would be ill-advised for us to split up.",
"description": "Une sorcière nous a présentés et nous a fait comprends qu'il serait malavisé de nous séparer.",
"range": [
97,
98
]
},
{
"description": "We both received a cryptic letter that lead us to the same place at the same time, but then nothing happened.",
"description": "Nous avons tous deux reçus une mystérieuse lettre qui nous a menés au même endroit et au même moment, mais .. rien ne s'est produit.",
"range": [
99,
100

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
{
"name": "Tableau des Incentations Imparfaites Majeures",
"name": "Tableau des Incantations Imparfaites Majeures",
"die": "1d100",
"rows": [{
"name": "Voix fantomatique",

View File

@ -0,0 +1,87 @@
package.path = package.path .. ";luajson/?.lua"
local JSON = require"json"
local lfs = require"lfs"
local mypath = '../compendium/'
local function convert( jsondb)
jsondb = jsondb:gsub("test.result", "test.result.outcome")
jsondb = jsondb:gsub("result.result", "result.outcome")
jsondb = jsondb:gsub("result.extra", "result")
jsondb = jsondb:gsub("actor.data.AP", "actor.status.armour")
jsondb = jsondb:gsub("item.data.APdamage", "item.getFlag('wfrp4e', 'APdamage')")
jsondb = jsondb:gsub("data.data.", "")
jsondb = jsondb:gsub("item.data", "item")
jsondb = jsondb:gsub("weapon.data", "weapon")
jsondb = jsondb:gsub("spell.data", "spell")
jsondb = jsondb:gsub("prayer.data", "prayer")
jsondb = jsondb:gsub("trait.data", "trait")
jsondb = jsondb:gsub("testData.extra.characteristic", "testData.item")
jsondb = jsondb:gsub("testData.extra.skill", "testData.item")
jsondb = jsondb:gsub("testData.extra.weapon", "testData.item")
jsondb = jsondb:gsub("testData.extra.spell", "testData.item")
jsondb = jsondb:gsub("testData.extra.prayer", "testData.item")
jsondb = jsondb:gsub("testData.extra.trait", "testData.item")
jsondb = jsondb:gsub("testData.roll", "test.result.roll")
jsondb = jsondb:gsub("testData", "test")
jsondb = jsondb:gsub("item._id", "item.id")
jsondb = jsondb:gsub("result.ammo", "test.ammo")
jsondb = jsondb:gsub("args.result", "args.test.result")
jsondb = jsondb:gsub(".owner", ".isOwner")
jsondb = jsondb:gsub("spell.overcasts", "result.overcast")
jsondb = jsondb:gsub("opposeResult", "opposedTest.result")
jsondb = jsondb:gsub("opposeData.hitloc", "opposeData.result.hitloc")
jsondb = jsondb:gsub("opposeData", "opposedTest")
jsondb = jsondb:gsub("extra.critical", "critical")
jsondb = jsondb:gsub("attackerTestResult.weapon", "attackerTest.item")
jsondb = jsondb:gsub("defenderTestResult.weapon", "defenderTest.item")
jsondb = jsondb:gsub("attackerTestResult.trait", "attackerTest.item")
jsondb = jsondb:gsub("defenderTestResult.trait", "defenderTest.item")
jsondb = jsondb:gsub("attackerTestResult.spell", "attackerTest.item")
jsondb = jsondb:gsub("defenderTestResult.spell", "defenderTest.item")
jsondb = jsondb:gsub("attackerTestResult.prayer", "attackerTest.item")
jsondb = jsondb:gsub("defenderTestResult.prayer", "defenderTest.item")
jsondb = jsondb:gsub("attackerTestResult.skill", "attackerTest.item")
jsondb = jsondb:gsub("defenderTestResult.skill", "defenderTest.item")
jsondb = jsondb:gsub("attackerTestResult", "attackerTest.result")
jsondb = jsondb:gsub("defenderTestResult", "defenderTest.result")
jsondb = jsondb:gsub("actor.data.characteristics", "actor.characteristics")
jsondb = jsondb:gsub("test.result.outcome.result", "test.result.outcome")
jsondb = jsondb:gsub("test.item.characteristic.value", "test.item.characteristic.key")
jsondb = jsondb:gsub("test.extra.other", "test.result.other")
return jsondb
end
local function parse_folder( mypath )
--print("*** ENTERING", mypath)
for file in lfs.dir(mypath) do
--print(file)
if file == '.' or file == '..' then
else
local fp = io.open(mypath .."/".. file, "r+")
local jsondb = fp:read("*a")
fp:close()
jsondb = convert( jsondb)
fp = io.open(mypath .."/".. file, "w+")
fp:write(jsondb)
fp:close()
end
end
end
--parse_folder( mypath )
local fp = io.open("../modules/config-patch.js", "r+")
local jsondb = fp:read("*a")
fp:close()
jsondb = convert(jsondb)
fp = io.open("../modules/config-patch.js", "w+")
fp:write(jsondb)
fp:close()

View File

@ -1,7 +1,9 @@
package.path = package.path .. ";luajson/?.lua"
local JSON = require"json"
local enjsonf = "../../WFRP4e-FoundryVTT/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-dotr/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-core/lang/en.json"
local enjsonf = "../../WFRP4e-FoundryVTT/static/lang/en.json"
local frjsonf = "../fr.json"
local fp = io.open(enjsonf, "r")
@ -11,11 +13,20 @@ fp:close()
fp = io.open(frjsonf, "r")
local frtags = JSON.decode( fp:read("*a") )
fp:close()
local todisplay = {}
for tag, value in pairs(entags) do
if not frtags[tag] then
print(tag, value)
todisplay[#todisplay+1] = { tag=tag, value=value }
end
end
table.sort(todisplay, function (a, b)
return a.tag < b.tag
end
)
for _, tagDef in pairs(todisplay) do
print('"'.. tagDef.tag ..'":"'.. tagDef.value..'",')
end

View File

@ -0,0 +1,25 @@
package.path = package.path .. ";luajson/?.lua"
local JSON = require"json"
local path_in = "../tables/euphemism.json"
local f1 = io.open(path_in, "r")
local strjson = f1:read("*a")
f1:close()
local tabData = JSON.decode(strjson)
local results = {}
for idx, row in pairs(tabData.rows) do
if row.range.Noun[1] then
local min = row.range.Noun[1]
local max = row.range.Noun[2]
local field = tostring(min).."-"..tostring(max)
--results[field] = "<b>"..row.name.."</b>:"..row.description
results[field] = row.Noun.description
print(field, row.name)
end
end
local entries = JSON.encode(results)
print()
print()
print(entries)

View File

@ -0,0 +1,29 @@
package.path = package.path .. ";luajson/?.lua"
local JSON = require"json"
local beastref_f = "../compendium/wfrp4e.bestiary.json"
local beastdescr_f = "compendium_wfrp4e.bestiary.json"
local f1 = io.open(beastref_f)
local strjson = f1:read("*a")
local beastref = JSON.decode(strjson)
local f2 = io.open(beastdescr_f)
strjson = f2:read("*a")
f2:close()
local beastdescr = JSON.decode(strjson)
for _, beasttext in pairs(beastdescr.entries) do
for _, beastgood in pairs(beastref.entries) do
if beasttext.id == beastgood.id then
beastgood.description = beasttext.description
end
end
end
local jsonout = JSON.encode( beastref )
local fout = io.open("beasts.json", "w+")
fout:write( jsonout )
fout:close()

View File

@ -0,0 +1,41 @@
package.path = package.path .. ";luajson/?.lua"
local JSON = require"json"
--local talent_db = "../../WFRP4e-FoundryVTT/packs/talents.db"
local traitdb ='/home/morr/.local/share/FoundryVTT/Data/modules/wfrp4e-core/packs/talents.db'
local f1 = io.open(traitdb)
local translatedf = "../compendium/wfrp4e-core.talents.json"
local f2 = io.open(translatedf)
local content = f2:read("*a")
local dbData = JSON.decode(content)
f2:close()
local function trim1(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
local line = f1:read()
while line do
--print(line)
local trait = JSON.decode( line )
if trait.effects then
local comp
for _, item in pairs(dbData.entries) do
if string.lower(item.id) == string.lower(trait.name)then
comp = item
print("====================> Found", trait.name, item.name)
end
end
if #comp.effects == 0 and #trait.effects > 0 then
print( "MISSING EFFECTS", trait.name )
--print( JSON.encode (trait.effects) )
--print ()
end
end
line = f1:read()
end
f1:close()

View File

@ -2,28 +2,28 @@
package.path = package.path .. ";luajson/?.lua"
local JSON = require"json"
local oldf = "../compendium/wfrp4e-core.criticals.json.SAVED"
local newf = "../compendium/wfrp4e-core.criticals.json"
local oldf = "../compendium/wfrp4e-core.careers.json"
local newf = "../compendium/wfrp4e-core.career-descriptions.json"
local origin = io.open(oldf, "r")
local strjson = origin:read("*a")
origin:close()
local oldjson = JSON.decode(strjson)
local cf = io.open(oldf, "r")
local strjson = cf:read("*a")
cf:close()
local careers = JSON.decode(strjson)
local new = io.open(newf, "r")
strjson = new:read("*a")
new:close()
local newjson = JSON.decode(strjson)
local cdf = io.open(newf, "r")
strjson = cdf:read("*a")
cdf:close()
local careerDescr = JSON.decode(strjson)
for _, newItem in pairs(newjson.entries) do
for _, oldItem in pairs(oldjson.entries) do
if newItem.name == oldItem.name then
newItem.id = oldItem.id
for _, careerD in pairs(careerDescr.entries) do
for _, career in pairs(careers.entries) do
if careerD.id == career.id then
careerD.name = career.name
end
end
end
local jsonout = JSON.encode( newjson )
local jsonout = JSON.encode( careerDescr )
local fout = io.open("output.json", "w+")
fout:write( jsonout )
fout:close()