Compare commits

...

24 Commits

Author SHA1 Message Date
a679da4674 Fix v10 datapath and functions 2022-10-02 09:44:39 +02:00
a64ff7dd55 Fix v10 datapath 2022-10-02 08:58:44 +02:00
f916c14848 Fix Traits translation 2022-09-30 20:56:12 +02:00
be09aec8cd Clés de traduction manquantes 2022-09-22 11:42:48 +02:00
1662ea9804 v10 support - minor fixes 2022-09-16 09:55:58 +02:00
d725b84011 Move deprecated tables 2022-09-12 21:20:03 +02:00
bd74d179f0 v10 release 2022-09-12 21:12:25 +02:00
f175bd9f78 v10 release 2022-09-12 21:10:44 +02:00
96b49682c9 v10 release 2022-09-12 21:05:44 +02:00
a5b784ac03 Fix pur v9 2022-09-12 20:42:19 +02:00
864701da4b Various fixes 2022-09-10 23:55:15 +02:00
26fada844f rework readme 2022-09-06 14:10:01 +02:00
1a26c299fb rework readme 2022-09-06 14:08:22 +02:00
29e72c233d rework readme 2022-09-06 14:05:16 +02:00
50a6d43dfa rework readme 2022-09-06 14:03:36 +02:00
3243eb5de6 rework readme 2022-09-06 14:00:12 +02:00
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
92 changed files with 371 additions and 406 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]

View File

@ -29,13 +29,13 @@ const _patch_eis = () => {
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")
if (test.result.result == "success" && args.actor.type == "character")
{
args.actor.update({"data.status.fortune.value" : args.actor.data.data.status.fortune.value + 1})
args.actor.update({"system.status.fortune.value" : args.actor.system.status.fortune.value + 1})
}
else if (test.result.result == "failure" && args.actor.data.type == "character")
else if (test.result.result == "failure" && args.actor.type == "character")
{
args.actor.update({"data.status.corruption.value" : args.actor.data.data.status.corruption.value + 1})
args.actor.update({"system.status.corruption.value" : args.actor.system.status.corruption.value + 1})
}
})
})`
@ -272,24 +272,24 @@ const __add_actors_translation = () => {
const lang = game.settings.get('core', 'language');
if (lang == "fr") {
let pack_array = [];
for (let metadata of game.data.packs) {
for (let metadata of game.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",
"description": "system.biography.value",
"items": {
"path": "items",
"converter": "bestiary_traits"
},
"characteristics": {
"path": "data.characteristics",
"path": "system.characteristics",
"converter": "npc_characteristics"
},
"details": {
"path": "data.details",
"path": "system.details",
"converter": "npc_details"
}
},

View File

@ -2,7 +2,7 @@
import statParserFR from "./modules/import-stat-2.js";
/************************************************************************************/
var compmod = "wfrp4e";
var compmod = "wfrp4e-core";
const vo_conditions = {
"ablaze": "Ablaze",
"bleeding": "Bleeding",
@ -25,8 +25,8 @@ const vo_conditions = {
Hooks.once('init', () => {
// Check various settings in the installation
game.modules.forEach((module, name) => {
if ( name == "wfrp4e-core" && module.active) {
game.modules.forEach((module, id) => {
if ( id == "wfrp4e-core" && module.active) {
compmod = "wfrp4e-core";
}
} );
@ -145,7 +145,7 @@ Hooks.once('init', () => {
if(typeof Babele !== 'undefined') {
Babele.get().register({
module: 'WH4-fr-translation',
module: 'wh4-fr-translation',
lang: 'fr',
dir: 'compendium'
});
@ -250,6 +250,7 @@ Hooks.once('init', () => {
var name_en = trait_en.name.trim(); // strip \r in some traits name
if ( trait_en.type == "trait") {
console.log("Trait translation", compmod, trait_en)
if ( name_en.includes("Tentacles") ) { // Process specific Tentacles case
var re = /(.d*)x Tentacles/i;
var res = re.exec( name_en );
@ -263,19 +264,19 @@ Hooks.once('init', () => {
special = " (" + game.i18n.localize( res[2].trim() ) + ")"; // And the special keyword
}
var trait_fr = game.babele.translate( compmod+'.traits', { name: name_en }, true );
//console.log(">>>>> Trait ?", name_en, nbt, trait_fr, trait_fr.name, special);
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;
if ( trait_fr.system && trait_fr.system.description && trait_fr.system.description.value ) {
trait_en.system.description.value = trait_fr.system.description.value;
} 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;
if ( trait_fr.system && trait_fr.system.description && trait_fr.system.description.value )
trait_en.system.description.value = trait_fr.system.description.value;
}
if ( trait_en.data && trait_en.data.specification && isNaN(trait_en.data.specification.value) ) { // This is a string, so translate it
//console.log("Translating : ", trait_en.data.specification.value);
trait_en.data.specification.value = game.i18n.localize( trait_en.data.specification.value.trim() );
if ( trait_en.system && trait_en.system.specification && isNaN(trait_en.system.specification.value) ) { // This is a string, so translate it
//console.log("Translating : ", trait_en.system.specification.value);
trait_en.system.specification.value = game.i18n.localize( trait_en.system.specification.value.trim() );
}
} else if ( trait_en.type == "skill") {
if ( name_en.includes("(") && name_en.includes(")") ) { // Then process specific skills name with (xxxx) inside
@ -288,8 +289,8 @@ Hooks.once('init', () => {
//console.log(">>>>> Skill ?", name_en, special, trait_fr.name, trait_fr);
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;
if ( trait_fr.system ) {
trait_en.system.description.value = trait_fr.system.description.value;
}
}
@ -297,8 +298,8 @@ Hooks.once('init', () => {
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;
if ( trait_fr.system && trait_fr.system.description && trait_fr.system.description.value )
trait_en.system.description.value = trait_fr.system.description.value;
} else if ( trait_en.type == "spell") {
var trait_fr = game.babele.translate( compmod+'.spells', { name: name_en }, true);
@ -310,8 +311,8 @@ Hooks.once('init', () => {
}
//console.log(">>>>> Spell ?", 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;
if ( trait_fr.system && trait_fr.system.description && trait_fr.system.description.value )
trait_en.system.description.value = trait_fr.system.description.value;
} else if ( trait_en.type == "talent") {
if ( name_en.includes("(") && name_en.includes(")") ) { // Then process specific skills name with (xxxx) inside
var re = /(.*) +\((.*)\)/i;
@ -326,21 +327,21 @@ Hooks.once('init', () => {
}
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;
if ( trait_fr.system ) { // Why ???
trait_en.system.description.value = trait_fr.system.description.value;
}
}
} else if ( trait_en.type == "career") {
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);
trait_en.system = duplicate(career_fr.system);
} 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 = 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) {
trait_en.data.description = trapping_fr.data.description;
if ( trapping_fr.system) {
trait_en.system.description = trapping_fr.system.description;
}
}
}
@ -354,11 +355,17 @@ Hooks.once('init', () => {
"trapping_qualities_flaws": (value) => {
if ( value ) {
let newQF = [];
//console.log("ATOUTS", value);
var i=0;
//var re = /(.*) (\d+)/i;
for (i=0; i<value.length; i++) {
newQF[i] = duplicate(value[i]);
//console.log("ATOUTS", value, typeof(value));
let list = value
if (typeof(value) == "string") {
let myList = value.split(",")
list = []
for (let l of myList) {
list.push( { name: l.trim() } )
}
}
for (let i=0; i<list.length; i++) {
newQF[i] = duplicate(list[i] )
if ( newQF[i].name == "Trap Blade") {
newQF[i].name = "TrapBlade"; // Auto-patch, without space!
//console.log("PATCHED", trim);
@ -492,6 +499,7 @@ function registerUsageCount( registerKey ) {
name: "Unique world key",
scope: "world",
config: false,
default: "",
type: String
});
@ -501,7 +509,7 @@ function registerUsageCount( registerKey ) {
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.data.version}"`
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)
/* -------------------------------------------- */
}

File diff suppressed because one or more lines are too long

View File

@ -2,22 +2,22 @@
"label": "Carrières Religieuses",
"mapping": {
"skills": {
"path": "data.skills",
"path": "system.skills",
"converter": "career_skills"
},
"talents": {
"path": "data.talents",
"path": "system.talents",
"converter": "career_talents"
},
"class": {
"path": "data.class.value",
"path": "dasystemta.class.value",
"converter": "generic_localization"
},
"careergroup": {
"path": "data.careergroup.value",
"path": "system.careergroup.value",
"converter": "career_careergroup"
},
"trappings": "data.trappings"
"trappings": "system.trappings"
},
"entries": [
{

View File

@ -1,13 +1,13 @@
{
"label": "Objets Religieux",
"mapping": {
"special": "data.special.value",
"special": "system.special.value",
"qualities": {
"path": "data.qualities.value",
"path": "system.qualities.value",
"converter": "trapping_qualities_flaws"
},
"flaws": {
"path": "data.flaws.value",
"path": "system.flaws.value",
"converter": "trapping_qualities_flaws"
}
},

View File

@ -6,7 +6,7 @@
"converter": "bestiary_traits"
},
"characteristics": {
"path": "data.characteristics",
"path": "system.characteristics",
"converter": "npc_characteristics"
}
},

View File

@ -2,22 +2,22 @@
"label": "Carrières",
"mapping": {
"skills": {
"path": "data.skills",
"path": "system.skills",
"converter": "career_skills"
},
"talents": {
"path": "data.talents",
"path": "system.talents",
"converter": "career_talents"
},
"class": {
"path": "data.class.value",
"path": "system.class.value",
"converter": "generic_localization"
},
"careergroup": {
"path": "data.careergroup.value",
"path": "system.careergroup.value",
"converter": "career_careergroup"
},
"trappings": "data.trappings"
"trappings": "system.trappings"
},
"entries": [
{

View File

@ -3,7 +3,7 @@
"mapping": {
"location": {
"converter": "generic_localization",
"path": "data.location.value"
"path": "system.location.value"
},
"effects": "effects"
},
@ -143,7 +143,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.qn4ZpvTQIX4rcJDl\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.qn4ZpvTQIX4rcJDl\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -175,7 +175,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.diseases.kKccDTGzWzSXCBOb\").then(disease=> {\n args.actor.createEmbeddedEntity(\"OwnedItem\", disease.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.diseases.kKccDTGzWzSXCBOb\").then(disease=> {\n args.actor.createEmbeddedDocuments(\"Item\", disease.toObject())\n})"
}
},
"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({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})"
"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.prototypeToken.name}</b> a perdu ${teeth} dents`, speaker : {alias: this.effect.label}})\ninjury.location.value = `${teeth} ${injury.location.value}`\n args.actor.createEmbeddedDocuments(\"Item\", injury.toObject())\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -608,7 +608,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.EaqlLRQigwnsEAXX\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.EaqlLRQigwnsEAXX\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()] )\n} )"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -640,7 +640,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"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}"
"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.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})\n\n\n}"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -729,7 +729,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.nF5z1OEhpi4t6a6S\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.nF5z1OEhpi4t6a6S\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject() ] )\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -848,7 +848,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid('Compendium.wfrp4e-core.injuries.EaqlLRQigwnsEAXX').then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid('Compendium.wfrp4e-core.injuries.EaqlLRQigwnsEAXX').then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()] )\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1004,7 +1004,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.QluSTTTq3viHJJUh\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.QluSTTTq3viHJJUh\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1054,7 +1054,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.2A7SW9eXsm7MvLsk\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.2A7SW9eXsm7MvLsk\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -1246,7 +1246,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.weczkAMPlTjX7lqU\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.SpPRZZRHxly7uo2G\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.weczkAMPlTjX7lqU\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.roObject()])\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.SpPRZZRHxly7uo2G\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -1321,7 +1321,7 @@
"effectApplication": "actor",
"effectTrigger": "endCombat",
"preventDuplicateEffects": false,
"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 })"
"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.createEmbeddedDocuments(\"Item\", [injury..toObject()])\n this.actor.deleteEmbeddedDocuments(\"ActiveEffect\", this.effect._id)\n })\n }\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1461,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.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 })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -1644,7 +1644,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -1772,7 +1772,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.SYjWiKDzMS6CtROJ\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.SYjWiKDzMS6CtROJ\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()] )\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -1804,7 +1804,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.eWPN3CV2Eddwz8aM\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.eWPN3CV2Eddwz8aM\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1927,7 +1927,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.7mCcI3q7hgWcmbBU\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.7mCcI3q7hgWcmbBU\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2158,7 +2158,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.2iult41Jehz0F1O8\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.2iult41Jehz0F1O8\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2319,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.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 })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.QluSTTTq3viHJJUh\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -2367,7 +2367,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.diseases.M8XyRs9DN12XsFTQ\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.diseases.M8XyRs9DN12XsFTQ\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -2438,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.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 })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.7mCcI3q7hgWcmbBU\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -2470,7 +2470,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.qn4ZpvTQIX4rcJDl\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.qn4ZpvTQIX4rcJDl\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -2521,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.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 })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -2572,7 +2572,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.nbhn2wX35b7Jrcbg\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.nbhn2wX35b7Jrcbg\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -2640,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({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 })"
"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.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.rkJA1DlK51QuRlJy\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -2696,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.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 })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.zyocWSzEZEC826NS\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -2764,7 +2764,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.SYjWiKDzMS6CtROJ\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.SYjWiKDzMS6CtROJ\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()] )\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -2954,7 +2954,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.weczkAMPlTjX7lqU\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.weczkAMPlTjX7lqU\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -3025,7 +3025,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.8piWcBKFlQ2J1E3A\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.8piWcBKFlQ2J1E3A\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -3182,7 +3182,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"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 }"
"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.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n })\n }\n })\n })\n }"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3272,7 +3272,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.gz2xy41OSVZ8YBgI\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.gz2xy41OSVZ8YBgI\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3460,7 +3460,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.k00PimCWkff11IA0\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.k00PimCWkff11IA0\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3492,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.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 })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -3582,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.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 })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.MnMZv7ZXoRqoH9dS\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\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",
@ -3614,7 +3614,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -3646,7 +3646,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.7rBhIRo96Mydo0Cv\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.7rBhIRo96Mydo0Cv\").then(injury => {\n args.actor.createEmbeddedDocuments(\"Item\", [injury.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",

View File

@ -1,12 +1,12 @@
{
"mapping": {
"durationValue": "data.duration.value",
"durationUnit": "data.duration.unit",
"contraction": "data.contraction.value",
"incubationValue": "data.incubation.value",
"incubationUnit": "data.incubation.unit",
"symptoms": "data.symptoms.value",
"permanent": "data.permanent.value",
"durationValue": "system.duration.value",
"durationUnit": "system.duration.unit",
"contraction": "system.contraction.value",
"incubationValue": "system.incubation.value",
"incubationUnit": "system.incubation.unit",
"symptoms": "system.symptoms.value",
"permanent": "system.permanent.value",
"effects": "effects"
},
"label": "Maladies",

View File

@ -1,9 +1,9 @@
{
"label": "Blessures",
"mapping": {
"penalty": "data.penalty.value",
"penalty": "system.penalty.value",
"location": {
"path": "data.location.value",
"path": "system.location.value",
"converter": "generic_localization"
},
"effects": "effects"

File diff suppressed because one or more lines are too long

View File

@ -2,11 +2,11 @@
"label": "Mutations",
"mapping": {
"modifier": {
"path": "data.modifier.value",
"path": "system.modifier.value",
"converter": "mutations_modifier"
},
"mutationType": {
"path": "data.mutationType.value",
"path": "system.mutationType.value",
"converter": "generic_localization"
},
"effects": {

View File

@ -2,19 +2,19 @@
"label": "Prières",
"mapping": {
"pduration": {
"path": "data.duration.value",
"path": "system.duration.value",
"converter": "spells_duration_range_target_damage"
},
"prange": {
"path": "data.range.value",
"path": "system.range.value",
"converter": "spells_duration_range_target_damage"
},
"ptarget": {
"path": "data.target.value",
"path": "system.target.value",
"converter": "spells_duration_range_target_damage"
},
"pdamage": {
"path": "data.damage.value",
"path": "system.damage.value",
"converter": "spells_duration_range_target_damage"
},
"effects": "effects"
@ -88,7 +88,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "prePrepareData",
"script": "args.actor.data.items = args.actor.data.items.filter(i => i.type != \"psychology\")"
"script": "args.actor.items = args.actor.items.filter(i => i.type != \"psychology\")"
}
},
"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)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.psychologies.5hH73j2NgPdsLCZN\").then(item => {\n args.actor.createEmbeddedDocuments(\"Item\", [item.toObject()])\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)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.J9MK0AIaTbvd5oF6\").then(item => {\n args.actor.createEmbeddedDocuments(\"Item\", [item.toObject()])\n})"
}
},
"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)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.CV9btQn09S9Fn8Jk\").then(item => {\n args.actor.createEmbeddedDocuments(\"Item\", [item.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -989,7 +989,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.g4Q6AtzZuo5iIvD4\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.g4Q6AtzZuo5iIvD4\").then(item => {\n args.actor.createEmbeddedDocuments(\"Item\", [item.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1142,7 +1142,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"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}"
"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.has(\"Démoniaque\"))\n{\n args.actor.addCondition(\"ablaze\")\n}"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1235,7 +1235,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"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})"
"script": "fromUuid(\"Compendium.wfrp4e-core.traits.pLW9SVX0TVTYPiPv\").then(item => {\n item.system.specification.value = 3\n this.actor.createEmbeddedDocuments(\"Item\", [item.toObject()])\n})\n\nfromUuid(\"Compendium.wfrp4e-core.traits.AtpAudHA4ybXVlWM\").then(item => {\n item.system.specification.value = 4\n this.actor.createEmbeddedDocuments(\"Item\", [item.toObject()])\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",

View File

@ -2,19 +2,19 @@
"label": "Sorts",
"mapping": {
"sduration": {
"path": "data.duration.value",
"path": "system.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"path": "system.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"path": "system.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"path": "system.damage.value",
"converter": "spells_duration_range_target_damage"
},
"effects": "effects"
@ -121,7 +121,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -550,7 +550,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -746,7 +746,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -804,7 +804,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -1008,7 +1008,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(this.effect.origin).then(caster=> {\n if (caster&& (args.actor.has(game.i18n.localize(\"NAME.Undead\")) || args.actor.has(game.i18n.localize(\"NAME.Daemonic\"))))\n {\n let wp = caster.characteristics.wp.value\n if (wp > args.actor.characteristics.t.value)\n {\n if (args.actor.has(game.i18n.localize(\"NAME.Unstable\")))\n {\n args.actor.update({\"data.status.wounds.value\" : 0})\n args.actor.addCondition(\"dead\")\n }\n else\n {\n fromUuid(\"Compendium.wfrp4e-core.traits.D0ImWEIMSDgElsnl\").then(item => {\n args.actor.createEmbeddedDocuments(\"Item\", [item])\n ChatMessage.create({content : `Ajout d'Instable à ${args.actor.data.token.name}`, speaker : {alias: caster.name}})\n })\n }\n }\n }\n })"
"script": "fromUuid(this.effect.origin).then(caster=> {\n if (caster&& (args.actor.has(game.i18n.localize(\"NAME.Undead\")) || args.actor.has(game.i18n.localize(\"NAME.Daemonic\"))))\n {\n let wp = caster.characteristics.wp.value\n if (wp > args.actor.characteristics.t.value)\n {\n if (args.actor.has(game.i18n.localize(\"NAME.Unstable\")))\n {\n args.actor.update({\"data.status.wounds.value\" : 0})\n args.actor.addCondition(\"dead\")\n }\n else\n {\n fromUuid(\"Compendium.wfrp4e-core.traits.D0ImWEIMSDgElsnl\").then(item => {\n args.actor.createEmbeddedDocuments(\"Item\", [item])\n ChatMessage.create({content : `Ajout d'Instable à ${args.actor.prototypeToken.name}`, speaker : {alias: caster.name}})\n })\n }\n }\n }\n })"
}
},
"icon": "modules/wfrp4e-core/icons/spells/banishment.png",
@ -1113,7 +1113,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -1136,7 +1136,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -1184,7 +1184,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -1213,7 +1213,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -1486,7 +1486,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -1688,7 +1688,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -1890,7 +1890,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -2100,7 +2100,7 @@
"effectApplication": "damage",
"effectTrigger": "applyDamage",
"preventDuplicateEffects": false,
"script": "let applyAP = (args.damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_TB || args.damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)\nlet applyTB = (args.damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_AP || args.damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)\n\n\nif (applyAP) \n{\n let AP = args.AP\n\n args.totalWoundLoss += AP.used\n let apIndex = args.messageElements.findIndex(i => i.includes(game.i18n.localize(\"AP\")))\n args.messageElements[apIndex] = \"0/\" + AP.value + \" \" + game.i18n.localize(\"AP\")\n}\n\nif (applyTB)\n{\n let TB = args.actor.characteristics.t.bonus\n args.totalWoundLoss += TB\n let apIndex = args.messageElements.findIndex(i => i.includes(game.i18n.localize(\"TB\")))\n args.messageElements[apIndex] = \"0/\" + TB + \" \" + game.i18n.localize(\"TB\")\n}\n\nlet woundsGained = Math.min(args.totalWoundLoss, args.actor.status.wounds.value)\n\nwoundsGained = Math.floor(woundsGained / 2)\n\nlet attackerWounds = duplicate(args.attacker.status.wounds)\n\nattackerWounds.value += woundsGained\n\nif (attackerWounds.value >= attackerWounds.max)\n attackerWounds.value = attackerWounds.max\n\nargs.attacker.update({ \"data.status.wounds\": attackerWounds })\n\nChatMessage.create({ content: `<b>${args.attacker.data.token.name}</b> subit ${woundsGained} Points de Blessures` })"
"script": "let applyAP = (args.damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_TB || args.damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)\nlet applyTB = (args.damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_AP || args.damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)\n\n\nif (applyAP) \n{\n let AP = args.AP\n\n args.totalWoundLoss += AP.used\n let apIndex = args.messageElements.findIndex(i => i.includes(game.i18n.localize(\"AP\")))\n args.messageElements[apIndex] = \"0/\" + AP.value + \" \" + game.i18n.localize(\"AP\")\n}\n\nif (applyTB)\n{\n let TB = args.actor.characteristics.t.bonus\n args.totalWoundLoss += TB\n let apIndex = args.messageElements.findIndex(i => i.includes(game.i18n.localize(\"TB\")))\n args.messageElements[apIndex] = \"0/\" + TB + \" \" + game.i18n.localize(\"TB\")\n}\n\nlet woundsGained = Math.min(args.totalWoundLoss, args.actor.status.wounds.value)\n\nwoundsGained = Math.floor(woundsGained / 2)\n\nlet attackerWounds = duplicate(args.attacker.status.wounds)\n\nattackerWounds.value += woundsGained\n\nif (attackerWounds.value >= attackerWounds.max)\n attackerWounds.value = attackerWounds.max\n\nargs.attacker.update({ \"data.status.wounds\": attackerWounds })\n\nChatMessage.create({ content: `<b>${args.attacker.prototypeToken.name}</b> subit ${woundsGained} Points de Blessures` })"
}
},
"icon": "modules/wfrp4e-core/icons/spells/caress-of-laniph.png",
@ -2221,7 +2221,7 @@
"effectApplication": "apply",
"effectTrigger": "preOpposedDefender",
"preventDuplicateEffects": false,
"script": "if ((args.attackerTest.weapon && args.attackerTest.weapon.attackType == \"melee\") || (args.attackerTest.trait && !args.attackerTest.trait.name.includes(\"Ranged\")))\n{\n let content = `<b>${args.attackerTest.actor.data.token.name}</b> reçoit ${this.actor.characteristics.wp.bonus} Dégats du Bouclier Céruléen si il utilise une arme en métal.`\n args.opposedTest.result.other.push(content);\n}"
"script": "if ((args.attackerTest.weapon && args.attackerTest.weapon.attackType == \"melee\") || (args.attackerTest.trait && !args.attackerTest.trait.name.includes(\"Ranged\")))\n{\n let content = `<b>${args.attackerTest.actor.prototypeToken.name}</b> reçoit ${this.actor.characteristics.wp.bonus} Dégats du Bouclier Céruléen si il utilise une arme en métal.`\n args.opposedTest.result.other.push(content);\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/cerulean-shield.png",
@ -2267,7 +2267,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -2596,7 +2596,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/blank.png",
@ -2628,7 +2628,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actorprototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -2645,7 +2645,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -2676,7 +2676,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/daemonology.png",
@ -2708,7 +2708,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/death.png",
@ -2756,7 +2756,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/fire.png",
@ -2804,7 +2804,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/heavens.png",
@ -2852,7 +2852,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/life.png",
@ -2900,7 +2900,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/light.png",
@ -2948,7 +2948,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/metal.png",
@ -2996,7 +2996,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/necromancy.png",
@ -3028,7 +3028,7 @@
"effectApplication": "apply",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.data.token.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}</b>: Toutes les cibles au contact avec <b>${this.actor.prototypeToken.name}</b> encaissent [[/r 1d10]] Dégâts, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/shadow.png",
@ -3287,7 +3287,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -3672,7 +3672,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -4101,7 +4101,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -4328,7 +4328,7 @@
"effectApplication": "damage",
"effectTrigger": "applyDamage",
"preventDuplicateEffects": false,
"script": "let wounds = duplicate(args.attacker.status.wounds)\nwounds.value+=1\n\nif (wounds.value > wounds.max)\n wounds.value = wounds.max\n\nargs.attacker.update({\"data.status.wounds\" : wounds})\n\nChatMessage.create({content: `${args.attacker.data.token.name} récupère 1 blessure.`})"
"script": "let wounds = duplicate(args.attacker.status.wounds)\nwounds.value+=1\n\nif (wounds.value > wounds.max)\n wounds.value = wounds.max\n\nargs.attacker.update({\"data.status.wounds\" : wounds})\n\nChatMessage.create({content: `${args.attacker.prototypeToken.name} récupère 1 blessure.`})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/petty.png",
@ -4358,7 +4358,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -4585,7 +4585,7 @@
"effectApplication": "apply",
"effectTrigger": "endRound",
"preventDuplicateEffects": false,
"script": "fromUuid(this.effect.origin).then(caster => {\n if (caster)\n {\n let bonus = caster.characteristics.wp.bonus\n this.actor.modifyWounds(bonus)\n\n ChatMessage.create({content: `${this.actor.data.token.name} regagne ${bonus} Points de Blessures (si en contact direct avec la Terre)`, speaker : {alias : this.effect.label}})\n }\n})"
"script": "fromUuid(this.effect.origin).then(caster => {\n if (caster)\n {\n let bonus = caster.characteristics.wp.bonus\n this.actor.modifyWounds(bonus)\n\n ChatMessage.create({content: `${this.actor.prototypeToken.name} regagne ${bonus} Points de Blessures (si en contact direct avec la Terre)`, speaker : {alias : this.effect.label}})\n }\n})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/earthblood.png",
@ -4734,7 +4734,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -5211,7 +5211,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Select a target to apply the effect.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Select a target to apply the effect.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/blank.png",
@ -5236,7 +5236,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/blank.png",
@ -5268,7 +5268,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -5285,7 +5285,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -5316,7 +5316,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/daemonology.png",
@ -5348,7 +5348,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/death.png",
@ -5396,7 +5396,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/fire.png",
@ -5444,7 +5444,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/heavens.png",
@ -5492,7 +5492,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/life.png",
@ -5540,7 +5540,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/light.png",
@ -5588,7 +5588,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/metal.png",
@ -5636,7 +5636,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/necromancy.png",
@ -5668,7 +5668,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Sélectionnez une cible pour appliquer l'effet.\")\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/spells/shadow.png",
@ -5932,7 +5932,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -6355,7 +6355,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -6603,7 +6603,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(this.effect.origin).then(caster => {\n if (caster)\n {\n let healed= caster.characteristics.wp.bonus + caster.characteristics.int.bonus\n let wounds = duplicate(args.actor.status.wounds)\n wounds.value+=healed\n \n if (wounds.value > wounds.max)\n wounds.value = wounds.max\n \n args.actor.update({\"data.status.wounds\" : wounds})\n ChatMessage.create({content: `${this.actor.data.token.name} regains ${healed} Wounds`, speaker : {alias : this.effect.label}})\n }\n})\n\nthis.actor.setupSkill(\"Résistance\", {absolute : {difficulty : \"vhard\"}, context : {success : \"1 Corruption point that was gained within the last hour is removed.\", failure: \"Nothing happens\"}}).then(setupData => {\n this.actor.basicTest(setupData)\n})"
"script": "fromUuid(this.effect.origin).then(caster => {\n if (caster)\n {\n let healed= caster.characteristics.wp.bonus + caster.characteristics.int.bonus\n let wounds = duplicate(args.actor.status.wounds)\n wounds.value+=healed\n \n if (wounds.value > wounds.max)\n wounds.value = wounds.max\n \n args.actor.update({\"data.status.wounds\" : wounds})\n ChatMessage.create({content: `${this.actor.prototypeToken.name} regains ${healed} Wounds`, speaker : {alias : this.effect.label}})\n }\n})\n\nthis.actor.setupSkill(\"Résistance\", {absolute : {difficulty : \"vhard\"}, context : {success : \"1 Corruption point that was gained within the last hour is removed.\", failure: \"Nothing happens\"}}).then(setupData => {\n this.actor.basicTest(setupData)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/healing-light.png",
@ -6677,7 +6677,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -6787,7 +6787,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -7047,7 +7047,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -7249,7 +7249,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -7576,7 +7576,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(this.effect.origin).then(caster => {\n if (caster)\n {\n let healed= caster.characteristics.wp.bonus\n let wounds = duplicate(args.actor.status.wounds)\n wounds.value+=healed\n \n if (wounds.value > wounds.max)\n wounds.value = wounds.max\n \n args.actor.update({\"data.status.wounds\" : wounds})\n ChatMessage.create({content: `${this.actor.data.token.name} regains ${healed} Wounds`, speaker : {alias : this.effect.label}})\n }\n})"
"script": "fromUuid(this.effect.origin).then(caster => {\n if (caster)\n {\n let healed= caster.characteristics.wp.bonus\n let wounds = duplicate(args.actor.status.wounds)\n wounds.value+=healed\n \n if (wounds.value > wounds.max)\n wounds.value = wounds.max\n \n args.actor.update({\"data.status.wounds\" : wounds})\n ChatMessage.create({content: `${this.actor.prototypeToken.name} regains ${healed} Wounds`, speaker : {alias : this.effect.label}})\n }\n})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/nostrum.png",
@ -7842,7 +7842,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -8443,7 +8443,7 @@
"effectApplication": "damage",
"effectTrigger": "applyDamage",
"preventDuplicateEffects": true,
"script": "let applyAP = (args.damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_TB || args.damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)\n\nif (applyAP) \n{\n let AP = args.AP\n\n args.totalWoundLoss += AP.used\n let apIndex = args.messageElements.findIndex(i => i.includes(game.i18n.localize(\"AP\")))\n args.messageElements[apIndex] = \"0/\" + AP.value + \" \" + game.i18n.localize(\"AP\")\n}\n\nlet woundsGained = Math.min(args.actor.status.wounds.value, args.totalWoundLoss)\nwoundsGained = Math.ceil(woundsGained / 2)\n\nlet attackerWounds = duplicate(args.attacker.status.wounds)\n\nattackerWounds.value += woundsGained\n\nif (attackerWounds.value >= attackerWounds.max)\n attackerWounds.value = attackerWounds.max\n\nargs.attacker.update({\"data.status.wounds\" : attackerWounds})\n\nargs.actor.addCondition(\"fatigued\")\n\nChatMessage.create({content: `<b>${args.attacker.data.token.name}</b> récupère ${woundsGained} Points de Blessures`, alias : {speaker : this.effect.label}})"
"script": "let applyAP = (args.damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_TB || args.damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)\n\nif (applyAP) \n{\n let AP = args.AP\n\n args.totalWoundLoss += AP.used\n let apIndex = args.messageElements.findIndex(i => i.includes(game.i18n.localize(\"AP\")))\n args.messageElements[apIndex] = \"0/\" + AP.value + \" \" + game.i18n.localize(\"AP\")\n}\n\nlet woundsGained = Math.min(args.actor.status.wounds.value, args.totalWoundLoss)\nwoundsGained = Math.ceil(woundsGained / 2)\n\nlet attackerWounds = duplicate(args.attacker.status.wounds)\n\nattackerWounds.value += woundsGained\n\nif (attackerWounds.value >= attackerWounds.max)\n attackerWounds.value = attackerWounds.max\n\nargs.attacker.update({\"data.status.wounds\" : attackerWounds})\n\nargs.actor.addCondition(\"fatigued\")\n\nChatMessage.create({content: `<b>${args.attacker.prototypeToken.name}</b> récupère ${woundsGained} Points de Blessures`, alias : {speaker : this.effect.label}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/steal-life.png",
@ -8566,7 +8566,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -8770,7 +8770,7 @@
"effectApplication": "apply",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let value = 1\nlet name = this.actor.data.token.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Select a target to apply the effect.\")\n game.user.targets.forEach(t => {\n t.actor.applyTerror(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postTerror(value, name)\n}"
"script": "let value = 1\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM)\n{\nif (!game.user.targets.size)\n return ui.notifications.warn(\"Select a target to apply the effect.\")\n game.user.targets.forEach(t => {\n t.actor.applyTerror(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postTerror(value, name)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/blank.png",
@ -8794,7 +8794,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -9015,7 +9015,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -9069,7 +9069,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "let fortunePoints = {{result.overcast.other.current}}\nlet current = this.actor.status.fortune.value\n\nthis.actor.update({\"data.status.fortune.value\" : fortunePoints + current})\n\nChatMessage.create({content : `<b>${this.actor.data.token.name}</b> a désormais ${fortunePoints + current} Points de Chance`, speaker : {alias : this.effect.label}})"
"script": "let fortunePoints = {{result.overcast.other.current}}\nlet current = this.actor.status.fortune.value\n\nthis.actor.update({\"data.status.fortune.value\" : fortunePoints + current})\n\nChatMessage.create({content : `<b>${this.actor.prototypeToken.name}</b> a désormais ${fortunePoints + current} Points de Chance`, speaker : {alias : this.effect.label}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/the-first-portent-of-amul.png",
@ -9117,7 +9117,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "let fortunePoints = {{result.overcast.other.current}}\nlet current = this.actor.status.fortune.value\n\nthis.actor.update({\"data.status.fortune.value\" : fortunePoints + current})\n\nChatMessage.create({content : `<b>${this.actor.data.token.name}</b> a désormais ${fortunePoints + current} Points de Chance`, speaker : {alias : this.effect.label}})"
"script": "let fortunePoints = {{result.overcast.other.current}}\nlet current = this.actor.status.fortune.value\n\nthis.actor.update({\"data.status.fortune.value\" : fortunePoints + current})\n\nChatMessage.create({content : `<b>${this.actor.prototypeToken.name}</b> a désormais ${fortunePoints + current} Points de Chance`, speaker : {alias : this.effect.label}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/the-second-portent-of-amul.png",
@ -9165,7 +9165,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "let current = this.actor.status.fate.value\n\nthis.actor.update({\"data.status.fate.value\" : current + 1})\n\nChatMessage.create({content : `<b>${this.actor.data.token.name}</b> a désormais ${current + 1} Points de Destin!`, speaker : {alias : this.effect.label}})"
"script": "let current = this.actor.status.fate.value\n\nthis.actor.update({\"data.status.fate.value\" : current + 1})\n\nChatMessage.create({content : `<b>${this.actor.prototypeToken.name}</b> a désormais ${current + 1} Points de Destin!`, speaker : {alias : this.effect.label}})"
}
},
"icon": "modules/wfrp4e-core/icons/spells/the-third-portent-of-amul.png",
@ -9344,7 +9344,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",
@ -9546,7 +9546,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"lore": true,
"script": "\n let value = 1\n let name = this.actor.data.token.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
"script": "\n let value = 1\n let name = this.actor.prototypeToken.name\n \n if (game.user.isGM) {\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n }\n else {\n game.wfrp4e.utility.postFear(value, name)\n }\n "
}
},
"icon": "modules/wfrp4e-core/icons/spells/beasts.png",

View File

@ -1,7 +1,7 @@
{
"label": "Talents",
"mapping": {
"tests": "data.tests.value",
"tests": "system.tests.value",
"effects": "effects"
},
"entries": [
@ -24,7 +24,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prePrepareItems",
"script": "args.actor.data.flags.rangedDamageIncrease += 1"
"script": "args.actor.flags.rangedDamageIncrease += 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/accurate-shot.png",
@ -129,7 +129,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prepareData",
"script": "args.actor.data.flags.ambi+= 1"
"script": "args.actor.flags.ambi+= 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/ambidextrous.png",
@ -2000,7 +2000,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareItems",
"preventDuplicateEffects": false,
"script": "args.actor.data.flags.meleeDamageIncrease += 1"
"script": "args.actor.flags.meleeDamageIncrease += 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/strike-mighty-blow.png",

View File

@ -256,7 +256,7 @@
"effectTrigger": "takeDamage",
"preventDuplicateEffects": true,
"effectApplication": "actor",
"script": "let content = `<b>${this.effect.label}<\/b>: Toutes les cibles engagées avec <b>${this.actor.data.token.name}<\/b> subissent [[\/r 1d10]] dégats, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.data.token.name}})"
"script": "let content = `<b>${this.effect.label}<\/b>: Toutes les cibles engagées avec <b>${this.actor.prototypeToken.name}<\/b> subissent [[\/r 1d10]] dégats, modifiés par le BE et les PA.`\n\nChatMessage.create({content, speaker : {alias : this.actor.prototypeToken.name}})"
}
},
"_id": "mzNcVAruDOTiCGhS",
@ -353,7 +353,7 @@
"transfer": true,
"flags": {
"wfrp4e": {
"script": "let value = parseInt(this.item.specification.value)\nlet name = this.actor.data.token.name\n\nif (game.user.isGM && game.user.targets.size)\n{\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}",
"script": "let value = parseInt(this.item.specification.value)\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM && game.user.targets.size)\n{\n game.user.targets.forEach(t => {\n t.actor.applyFear(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postFear(value, name)\n}",
"preventDuplicateEffects": false,
"effectTrigger": "invoke",
"effectApplication": "actor"
@ -798,7 +798,7 @@
"label": "Attaque caudale",
"flags": {
"wfrp4e": {
"script": "let actorSize = game.wfrp4e.config.actorSizeNums[args.actor.details.size.value]\nlet attackerSize = game.wfrp4e.config.actorSizeNums[args.attacker.details.size.value]\n\nif (attackerSize > actorSize)\n{\n args.actor.addCondition(\"prone\")\n ChatMessage.create({content: `<b>Attaque caudale<\/b>: ${args.actor.data.token.name} est maintenant @Condition[Prone](A Terre)`, speaker : {alias: args.attacker.data.token.name}})\n}",
"script": "let actorSize = game.wfrp4e.config.actorSizeNums[args.actor.details.size.value]\nlet attackerSize = game.wfrp4e.config.actorSizeNums[args.attacker.details.size.value]\n\nif (attackerSize > actorSize)\n{\n args.actor.addCondition(\"prone\")\n ChatMessage.create({content: `<b>Attaque caudale<\/b>: ${this.actor.prototypeToken.name} est maintenant @Condition[Prone](A Terre)`, speaker : {alias: args.actor.prototypeToken.name}})\n}",
"effectApplication": "damage",
"effectTrigger": "applyDamage",
"preventDuplicateEffects": true
@ -830,7 +830,7 @@
"label": "Terreur",
"flags": {
"wfrp4e": {
"script": "let value = parseInt(this.item.specification.value)\nlet name = this.actor.data.token.name\n\nif (game.user.isGM && game.user.targets.size)\n{\n game.user.targets.forEach(t => {\n t.actor.applyTerror(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postTerror(value, name)\n}",
"script": "let value = parseInt(this.item.specification.value)\nlet name = this.actor.prototypeToken.name\n\nif (game.user.isGM && game.user.targets.size)\n{\n game.user.targets.forEach(t => {\n t.actor.applyTerror(value, name)\n })\n game.user.updateTokenTargets([]);\n}\nelse \n{\n game.wfrp4e.utility.postTerror(value, name)\n}",
"effectApplication": "actor",
"effectTrigger": "invoke",
"preventDuplicateEffects": false
@ -864,7 +864,7 @@
"effectTrigger": "applyDamage",
"preventDuplicateEffects": false,
"effectApplication": "damage",
"script": "let actorSize = game.wfrp4e.config.actorSizeNums[args.actor.details.size.value]\nlet attackerSize = game.wfrp4e.config.actorSizeNums[args.attacker.details.size.value]\n\nif (attackerSize > actorSize)\n{\n args.actor.addCondition(\"entangled\")\n ChatMessage.create({content: `<b>Langue préhensible<\/b>: ${args.actor.data.token.name} is now @Condition[Entangled]`, speaker : {alias: args.attacker.data.token.name}})\n}"
"script": "let actorSize = game.wfrp4e.config.actorSizeNums[args.actor.details.size.value]\nlet attackerSize = game.wfrp4e.config.actorSizeNums[args.attacker.details.size.value]\n\nif (attackerSize > actorSize)\n{\n args.actor.addCondition(\"entangled\")\n ChatMessage.create({content: `<b>Langue préhensible<\/b>: ${args.actor.prototypeToken.name} is now @Condition[Entangled]`, speaker : {alias: args.actor.prototypeToken.name}})\n}"
}
},
"transfer": true,

View File

@ -1,13 +1,13 @@
{
"label": "Equipement",
"mapping": {
"special": "data.special.value",
"special": "system.special.value",
"qualities": {
"path": "data.qualities.value",
"path": "system.qualities.value",
"converter": "trapping_qualities_flaws"
},
"flaws": {
"path": "data.flaws.value",
"path": "system.flaws.value",
"converter": "trapping_qualities_flaws"
},
"effects": "effects"

View File

@ -2,19 +2,19 @@
"label": "Items (Death on the Reik)",
"mapping": {
"sduration": {
"path": "data.duration.value",
"path": "system.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"path": "system.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"path": "system.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"path": "system.damage.value",
"converter": "spells_duration_range_target_damage"
}
},

View File

@ -2,22 +2,22 @@
"label": "Items Ennemis Intérieur",
"mapping": {
"skills": {
"path": "data.skills",
"path": "system.skills",
"converter": "career_skills"
},
"talents": {
"path": "data.talents",
"path": "system.talents",
"converter": "career_talents"
},
"class": {
"path": "data.class.value",
"path": "system.class.value",
"converter": "generic_localization"
},
"careergroup": {
"path": "data.careergroup.value",
"path": "system.careergroup.value",
"converter": "career_careergroup"
},
"trappings": "data.trappings"
"trappings": "system.trappings"
},
"entries": [
{

View File

@ -2,19 +2,19 @@
"label": "Sorts Ennemi Intérieur",
"mapping": {
"sduration": {
"path": "data.duration.value",
"path": "system.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"path": "system.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"path": "system.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"path": "system.damage.value",
"converter": "spells_duration_range_target_damage"
},
"effets": "effects"
@ -76,7 +76,7 @@
"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 })",
"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.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
}
}
@ -103,7 +103,7 @@
"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 })",
"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.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
}
}
@ -142,7 +142,7 @@
"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})",
"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.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.prototypeToken.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.prototypeToken.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
}
}
@ -181,7 +181,7 @@
"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 })",
"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.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
}
}
@ -208,7 +208,7 @@
"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 })",
"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.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
}
}

View File

@ -2,11 +2,11 @@
"label": "Mutations Supplémentaires",
"mappings": {
"modifier": {
"path": "data.modifier.value",
"path": "system.modifier.value",
"converter": "mutations_modifier"
},
"mutationType": {
"path": "data.mutationType.value",
"path": "system.mutationType.value",
"converter": "generic_localization"
}
},

View File

@ -2,22 +2,22 @@
"label": "Items Rough Nights & Hard Days",
"mapping": {
"sduration": {
"path": "data.duration.value",
"path": "system.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"path": "system.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"path": "system.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"path": "system.damage.value",
"converter": "spells_duration_range_target_damage"
},
"tests": "data.tests.value"
"tests": "system.tests.value"
},
"entries": [
{

View File

@ -1,35 +1,35 @@
{
"label": "Items Starter Set",
"mapping": {
"gmdescription": "data.gmdescription.value",
"duration": "data.duration.value",
"contraction": "data.contraction.value",
"incubation": "data.incubation.value",
"symptoms": "data.symptoms.value",
"permanent": "data.permanent.value",
"special": "data.special.value",
"gmdescription": "system.gmdescription.value",
"duration": "system.duration.value",
"contraction": "system.contraction.value",
"incubation": "system.incubation.value",
"symptoms": "system.symptoms.value",
"permanent": "system.permanent.value",
"special": "system.special.value",
"qualities": {
"path": "data.qualities.value",
"path": "system.qualities.value",
"converter": "trapping_qualities_flaws"
},
"flaws": {
"path": "data.flaws.value",
"path": "system.flaws.value",
"converter": "trapping_qualities_flaws"
},
"sduration": {
"path": "data.duration.value",
"path": "system.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"path": "system.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"path": "system.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"path": "system.damage.value",
"converter": "spells_duration_range_target_damage"
}
},

View File

@ -2,19 +2,19 @@
"label": "UG - Carrières",
"mapping": {
"skills": {
"path": "data.skills",
"path": "system.skills",
"converter": "career_skills"
},
"talents": {
"path": "data.talents",
"path": "system.talents",
"converter": "career_talents"
},
"class": {
"path": "data.class.value",
"path": "system.class.value",
"converter": "generic_localization"
},
"careergroup": "data.careergroup.value",
"trappings": "data.trappings"
"careergroup": "system.careergroup.value",
"trappings": "system.trappings"
},
"entries": [
{

View File

@ -6,7 +6,7 @@
"converter": "bestiary_traits"
},
"characteristics": {
"path": "data.characteristics",
"path": "system.characteristics",
"converter": "npc_characteristics"
}
},

View File

@ -2,19 +2,19 @@
"label": "UG - Sorts",
"mapping": {
"sduration": {
"path": "data.duration.value",
"path": "system.duration.value",
"converter": "spells_duration_range_target_damage"
},
"srange": {
"path": "data.range.value",
"path": "system.range.value",
"converter": "spells_duration_range_target_damage"
},
"starget": {
"path": "data.target.value",
"path": "system.target.value",
"converter": "spells_duration_range_target_damage"
},
"sdamage": {
"path": "data.damage.value",
"path": "system.damage.value",
"converter": "spells_duration_range_target_damage"
}
},

14
fr.json
View File

@ -665,6 +665,7 @@
"Actor Settings":"Paramètres d'Acteur",
"Add Encumbrance for Actors":"Ajouter l'encombrement pour les Acteurs",
"BROWSER.Button":"Navigateur",
"BROWSER.LoadingBrowser":"Chargement du 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.",
@ -1907,7 +1908,12 @@
"BUGREPORT.Contact":"Informations de contact",
"BUGREPORT.ContactPlaceholder":"Tag Discord ou Email.",
"BUGREPORT.DescriptionPlaceholder":"Ce qu'il s'est passsé, comment le reproduire, etc.",
"BUGREPORT.ManyModules":"Vous avez des modules non-WFRP4e activés, peut-être que l'un d'entre eux interfère ?",
"BUGREPORT.MatchingGrudges":"Est-ce que votre grief n'a pas déja été enregistré ?",
"BUGREPORT.Warning":"<b>Attention</b>: Cette information est postée dans les tickets de GitHub, qui sont publics. Les Tags Discords sont donc à préférer. Sinon, contactez moi directement en Anglais à (<a href='mailto:russellt@cubicle7games.com'>Moo Man</a>).",
"GrudgeError":"Les Longues Barbes gromellent et refusent votre soumission. Vérifier la console (F12) pour de plus amples détails.",
"GrudgePost":"Les Longues Barbes ont reçu votre grief ! Consultez la console (F12) pour le lien.",
"EFFECT.TabWFRP" : "WFRP",
"EFFECT.EffectType" : "Type d'Effet",
"EFFECT.EffectApplication" : "Application de l'Effect",
@ -2053,6 +2059,10 @@
"IngredientControl":"Controller",
"IngredientNone":"Aucun",
"IngredientPower":"Pouvoir",
"LOG.CareerChange":"Changement de carrière: {career}"
"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"
}

View File

@ -1,25 +1,28 @@
{
"name": "WH4-fr-translation",
"title": "WFRP4e - Core Module en français.",
"description": "Traduction Française pour Warhammer v4.",
"authors": [ {"name":"LeRatierBretonnien" }],
"authors": [
{
"name": "LeRatierBretonnien",
"flags": {}
}
],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
"flags": {},
"version": "5.4.1",
"minimumCoreVersion": "0.8.0",
"compatibleCoreVersion": "9",
"scripts": [],
"version": "6.2.6",
"esmodules": [
"babele-register.js",
"addon-register.js",
"modules/import-stat-2.js"
],
"styles": ["patch-styles.css"],
"styles": [
"patch-styles.css"
],
"languages": [
{
"lang": "fr",
"name": "Français",
"path": "fr.json"
"path": "fr.json",
"flags": {}
}
],
"packs": [
@ -29,8 +32,8 @@
"name": "plats-dauberges",
"path": "packs/plats-dauberges.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Dons de Rhya",
@ -38,8 +41,8 @@
"name": "dons-de-rhya",
"path": "packs/dons-de-rhya.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Carrières FR",
@ -47,8 +50,17 @@
"name": "carriere-fr",
"path": "packs/carriere-fr.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Sorts FR",
"type": "Item",
"name": "sort-fr",
"path": "packs/sort-fr.db",
"system": "wfrp4e",
"private": false,
"flags": {}
},
{
"label": "Aides de Jeu FR",
@ -56,8 +68,8 @@
"name": "aides-de-jeu-fr",
"path": "packs/aides-de-jeu-fr.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Potions : Drogues et Sédatifs",
@ -65,8 +77,8 @@
"name": "drogues-and-sedatifs",
"path": "packs/drogues-and-sedatifs.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Potions : Pansements et Cataplasmes",
@ -74,8 +86,8 @@
"name": "pansements-and-cataplasmes",
"path": "packs/pansements-and-cataplasmes.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Potions : Poisons et Toxiques",
@ -83,8 +95,8 @@
"name": "poisons-and-toxiques",
"path": "packs/poisons-and-toxiques.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Potions : Potions et Décoctions",
@ -92,8 +104,8 @@
"name": "potions-and-decoctions",
"path": "packs/potions-and-decoctions.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Potions : Antidotes et Remèdes",
@ -101,8 +113,8 @@
"name": "antidotes-and-remedes",
"path": "packs/antidotes-and-remedes.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Tables des Traductions",
@ -110,8 +122,8 @@
"name": "tables-des-traductions",
"path": "packs/tables-des-traductions.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
},
{
"label": "Apothicarium",
@ -119,27 +131,31 @@
"name": "apothicarium",
"path": "packs/apothicarium.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
}
],
"system": [
"wfrp4e"
],
"dependencies": [
{
"name": "wfrp4e",
"type": "system"
},
{
"name": "babele",
"type": "module"
}
],
"socket": false,
"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-5.4.1.zip",
"protected": false,
"coreTranslation": false,
"library": false
}
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-6.2.6.zip",
"id": "wh4-fr-translation",
"compatibility": {
"minimum": "10",
"verified": "10.286"
},
"relationships": {
"systems": [
{
"id": "wfrp4e",
"type": "system",
"compatibility": {}
}
],
"requires": [
{
"id": "babele",
"type": "module",
"compatibility": {}
}
]
}
}

View File

@ -726,9 +726,9 @@ export class WH4FRPatchConfig {
if (weaponLength > 3)
{
let improv = duplicate(game.wfrp4e.config.systemItems.improv)
improv.data.twohanded.value = args.item.twohanded.value
improv.data.offhand.value = args.item.offhand.value
args.item.data.update({"data" : improv.data, name : args.item.name + " (Combat au Contact")})
improv.system.twohanded.value = args.item.twohanded.value
improv.system.offhand.value = args.item.offhand.value
args.item.update({"system" : improv.system, name : args.item.name + " (Combat au Contact")})
}
}
`
@ -1161,7 +1161,7 @@ export class WH4FRPatchConfig {
let applicableCharacteristics = ["ws", "bs", "s", "fel", "ag", "t", "dex"]
if (applicableCharacteristics.includes(args.test.result.characteristic))
this.actor.addCondition("stunned")
else if (args.test.result.skill && applicableCharacteristics.includes(args.test.result.skill.data.characteristic.value))
else if (args.test.result.skill && applicableCharacteristics.includes(args.test.result.skill.system.characteristic.value))
this.actor.addCondition("stunned")
else if (args.test.result.weapon)
this.actor.addCondition("stunned")
@ -1210,7 +1210,7 @@ export class WH4FRPatchConfig {
{
if (test.result.outcome == "failure")
fromUuid("Compendium.wfrp4e-core.diseases.kKccDTGzWzSXCBOb").then(disease => {
args.actor.createEmbeddedEntity("OwnedItem", disease.data)
args.actor.createEmbeddedDocuments("Item", [disease.toObject()])
})
})
})

View File

@ -44,7 +44,8 @@ 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/modules/item/item-wfrp4e.js"
//import ItemWfrp4e from "/systems/wfrp4e/wfrp4e.js"
/************************************************************************************/
import "./xregexp-all.js";
@ -133,7 +134,7 @@ async function __findSkill(skillName, value = undefined) {
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() ) + ')' } );
dbSkill.update( { name: skillSplit2.name + '(' + game.i18n.localize( spec.trim() ) + ')' } );
}
//game.babele.translate('wfrp4e-core.skills', dbSkill);
return dbSkill;
@ -168,7 +169,7 @@ async function __findTalent(talentName) {
if ( talentSplit.specialized ) {
let spec = XRegExp.replace(talentSplit.specialized, "(", "");
spec = XRegExp.replace(spec, ")", "");
dbTalent.data.update( { name: talentSplit.name + '(' + game.i18n.localize( spec.trim() ) + ')' } );
dbTalent.update( { name: talentSplit.name + '(' + game.i18n.localize( spec.trim() ) + ')' } );
}
return dbTalent;
}
@ -284,9 +285,9 @@ export default async function statParserFR(statString, type = "npc") {
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)
itemFound.system.specification.value = Number(value) - Math.floor( Number(model.characteristics.s.initial) / 10)
} else {
itemFound.data.specification.value = game.i18n.localize(value)
itemFound.system.specification.value = game.i18n.localize(value)
}
}
if (!itemFound)
@ -300,7 +301,7 @@ export default async function statParserFR(statString, type = "npc") {
if (itemFound)
itemFound = itemFound.toObject();
if (itemFound && subres && value) {
itemFound.data.advances.value = Number(value) - Number(model.characteristics[itemFound.data.characteristic.value].initial);
itemFound.system.advances.value = Number(value) - Number(model.characteristics[itemFound.system.characteristic.value].initial);
}
if (!itemFound)
ui.notifications.error("Compétence non trouvée, à ajouter manuellement : " + name, { permanent: true })
@ -312,7 +313,7 @@ export default async function statParserFR(statString, type = "npc") {
if (itemFound)
itemFound = itemFound.toObject();
if (itemFound && subres && value)
itemFound.data.advances.value = Number(value);
itemFound.system.advances.value = Number(value);
if (!itemFound)
ui.notifications.error("Talent non trouvé, à ajouter manuellement : " + name, { permanent: true })
} else if (def.name == 'trapping') {
@ -321,8 +322,8 @@ export default async function statParserFR(statString, type = "npc") {
}
catch { }
if (!itemFound && name) {
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", data: game.system.model.Item.trapping })
itemFound.data.data.trappingType.value = "misc"
itemFound = new game.entities.ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", data: game.system.model.Item.trapping })
itemFound.system.trappingType.value = "misc"
}
if (itemFound)
itemFound = itemFound.toObject();
@ -341,13 +342,13 @@ export default async function statParserFR(statString, type = "npc") {
}
}
let moneyItems = await game.wfrp4e.utility.allMoneyItems() || [];
moneyItems = moneyItems.sort((a, b) => (a.data.coinValue.value > b.data.coinValue.value) ? -1 : 1);
moneyItems.forEach(m => m.data.quantity.value = 0)
moneyItems = moneyItems.sort((a, b) => (a.system.coinValue.value > b.system.coinValue.value) ? -1 : 1);
moneyItems.forEach(m => m.system.quantity.value = 0)
globalItemList = globalItemList.concat(moneyItems);
//console.log("My liste :", globalItemList);
let name = pnjName;
let effects = globalItemList.reduce((total, globItem) => total.concat(globItem.data.effects), [])
let effects = globalItemList.reduce((total, globItem) => total.concat(globItem.effects), [])
effects = effects.filter(e => !!e)
effects = effects.filter(e => e.transfer)

View File

@ -1,32 +1,40 @@
{"_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":"1SQ9LkMa0jzoGUZI","name":"Prêtre Sergent de Myrmidia","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":"s","standing":4},"characteristics":["ws","int","fel","i","ag"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)","Charme","Divertissement (Discours)","Guérison","Intuition","Corps à corps (Au choix)","Projectiles (Au choix)","Savoir (Au choix)","Corps à corps (Au choix)","Recherche","Métier (Armurier) ou Métier (Forgeron)"],"talents":["Studieux","Visions Sacrées","Ame pure","Coeur vaillant"],"trappings":["Armure de plate complète"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"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":"5G4ZEfeV78nDls06","name":"Prêtre Sergent de Myrmidia","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":"s","standing":4},"characteristics":["ws","int","fel","i","ag"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)","Charme","Divertissement (Discours)","Guérison","Intuition","Corps à corps (Au choix)","Projectiles (Au choix)","Savoir (Au choix)","Corps à corps (Au choix)","Recherche","Métier (Armurier) ou Métier (Forgeron)"],"talents":["Studieux","Visions Sacrées","Ame pure","Coeur vaillant"],"trappings":["Armure de plate complète"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"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":"BZGs6SccquCNG2xM","name":"Cavalerie légère","type":"career","img":"modules/wfrp4e-core/icons/careers/cavalryman-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.h9LHCAdlP4o55QvD]{Cavalryman}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Cavalier"},"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":2},"characteristics":["ws","t","ag","bs"],"skills":["Soin aux animaux","Résistance","Langue (Bataille)","Corps à corps (Base)","Survie en extérieur","Chevaucher (Cheval)","Esquive","Marchandage","Guérison","Projectiles (Lancer)","Charme","Résistance à l'alcool","Pari","Ragot","Corps à corps (Cavalerie)","Projectiles (Arc)"],"talents":["Sens de l'orientation","Vigilance","Nomade","Cavalier émérite"],"trappings":["Cotte de maille","Cheval de guerre léger avec selle et fontes","Heaume ouvert"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Horseman"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.XuIDL2gpiFMleuVV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"BhJDHIfaDPgRHjao","name":"Prêtre guerrier de Myrmidia","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":["ws","int","fel","i"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)","Charme","Divertissement (Discours)","Guérison","Intuition","Corps à corps (Au choix)","Projectiles (Au choix)"],"talents":["Coude-à-coude","Exaltant","Invocation (Myrmidia)","Porte-bouclier"],"trappings":["Plastron d'acier","Heaume et bouclier"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.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"}}}
{"name":"Capitaine de Cavalerie Légère","type":"career","img":"modules/wfrp4e-core/icons/careers/cavalryman-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.h9LHCAdlP4o55QvD]{Cavalryman}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Cavalier"},"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","bs","fel"],"skills":["Soin aux animaux","Résistance","Langue (Bataille)","Corps à corps (Base)","Survie en extérieur","Chevaucher (Cheval)","Esquive","Marchandage","Guérison","Projectiles (Lancer)","Charme","Résistance à l'alcool","Pari","Ragot","Corps à corps (Cavalerie)","Projectiles (Arc)","Conduite d'attelage","Intuition","Commandement","Savoir (Stratégie militaire)","Savoir (Loi) ou Savoir (Héraldique)","Projectiles (Poudre noire)",""],"talents":["Présence imposante","Négociateur","Exaltant","Seigneur de guerre"],"trappings":["Cheval de guerre","Habits flamboyants","Plastron d'acier","Bretelle de pistolets avec poudre et munitions"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Horseman"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.XuIDL2gpiFMleuVV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}},"_id":"F7tTiZL04wSLWcf6"}
{"_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"}}}
{"name":"Lancier","type":"career","img":"modules/wfrp4e-core/icons/careers/cavalryman-03.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.h9LHCAdlP4o55QvD]{Cavalryman}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Cavalier"},"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","bs","fel"],"skills":["Soin aux animaux","Résistance","Langue (Bataille)","Corps à corps (Base)","Survie en extérieur","Chevaucher (Cheval)","Esquive","Marchandage","Guérison","Projectiles (Lancer)","Charme","Résistance à l'alcool","Pari","Ragot","Corps à corps (Cavalerie)","Projectiles (Arc)","Conduite d'attelage","Intuition","Commandement","Savoir (Stratégie militaire)"],"talents":["Combat Instinctif","Rechargement rapide","Voyageur aguerri","Acrobaties équestres"],"trappings":["Chausses de maille","Lance","Page","Ecuyer"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Horseman"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.XuIDL2gpiFMleuVV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}},"_id":"JkVSCCwz4Ph2IWdr"}
{"_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"}}}
{"name":"Pillard","type":"career","img":"modules/wfrp4e-core/icons/careers/cavalryman-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.h9LHCAdlP4o55QvD]{Cavalryman}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Cavalier"},"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":3},"characteristics":["ws","t","ag"],"skills":["Soin aux animaux","Résistance","Langue (Bataille)","Corps à corps (Base)","Survie en extérieur","Chevaucher (Cheval)","Esquive","Marchandage","Guérison","Projectiles (Lancer)"],"talents":["Savoir-vivre (Mercenaires)","Pansement de fortune","Fuite !","Infatigable"],"trappings":["Veste de cuir","Cheval de selle avec fontes et selle","Bouclier","Javelot"],"incomeSkill":[7],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Horseman"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.XuIDL2gpiFMleuVV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}},"_id":"QwiArcPoZ6ATHl7j"}
{"_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":"VejcUZNHfMvDYH6b","name":"Premier Aigle (Initié de Myrmidia)","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":"s","standing":2},"characteristics":["ws","int","fel"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)"],"talents":["Béni (Myrmidia)","Vigilance","Lire/Ecrire","Savoir-vivre (Cultistes)"],"trappings":["Livre sacré de Myrmidia","Icone de Myrmidia","Robes blanches","épieu","Justaucorps de cuir"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"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"}}}
@ -35,6 +43,7 @@
{"_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":"hz1sQZQPiYcBhS98","name":"Prêtre Capitaine de Myrmidia","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":"s","standing":5},"characteristics":["ws","int","fel","i","ag","s"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)","Charme","Divertissement (Discours)","Guérison","Intuition","Corps à corps (Au choix)","Projectiles (Au choix)","Savoir (Au choix)","Corps à corps (Au choix)","Recherche","Métier (Armurier) ou Métier (Forgeron)","Chevaucher (Cheval)","Soin aux animaux"],"talents":["Maîtrise du combat","Combat Instinctif","Sans peur (Au choix)","Seigneur de guerre"],"trappings":["Relique religieuse de Myrmidia"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.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"}}}
@ -42,4 +51,8 @@
{"_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":"sd3bDw77XiBKQypC","name":"Prêtre Capitaine de Myrmidia","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-04.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":"s","standing":5},"characteristics":["ws","int","fel","i","ag","s"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)","Charme","Divertissement (Discours)","Guérison","Intuition","Corps à corps (Au choix)","Projectiles (Au choix)","Savoir (Au choix)","Corps à corps (Au choix)","Recherche","Métier (Armurier) ou Métier (Forgeron)","Chevaucher (Cheval)","Soin aux animaux"],"talents":["Maîtrise du combat","Combat Instinctif","Sans peur (Au choix)","Seigneur de guerre"],"trappings":["Relique religieuse de Myrmidia"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"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"}}}
{"_id":"xiZJdE5F8QU2uysh","name":"Prêtre guerrier de Myrmidia","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":["ws","int","fel","i"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)","Charme","Divertissement (Discours)","Guérison","Intuition","Corps à corps (Au choix)","Projectiles (Au choix)"],"talents":["Coude-à-coude","Exaltant","Invocation (Myrmidia)","Porte-bouclier"],"trappings":["Plastron d'acier","Heaume et bouclier"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"ywOCVUyCJfREo52j","name":"Premier Aigle (Initié de Myrmidia)","type":"career","img":"modules/wfrp4e-core/icons/careers/priest-01.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.GNwQFkVKUs0JM6U5]{Priest}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Prêtre"},"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":"s","standing":2},"characteristics":["ws","int","fel"],"skills":["Calme","Esquive","Langue (Bataille)","Commandement","Savoir (Stratégie militaire)","Savoir (Théologie)","Perception","Prière","Corps à corps (Base)","Corps à corps (Armes d'hast)"],"talents":["Béni (Myrmidia)","Vigilance","Lire/Ecrire","Savoir-vivre (Cultistes)"],"trappings":["Livre sacré de Myrmidia","Icone de Myrmidia","Robes blanches","épieu","Justaucorps de cuir"],"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":"Initiate"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.u2DMz1B0DyUHBi6Z"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"zIm3Ukdv6m6B1TWa","name":"Cavalerie légère","type":"career","img":"modules/wfrp4e-core/icons/careers/cavalryman-02.png","data":{"description":{"type":"String","label":"Description","value":"<p>@Compendium[wfrp4e-core.career-descriptions.h9LHCAdlP4o55QvD]{Cavalryman}</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"careergroup":{"type":"String","label":"Career Group","value":"Cavalier"},"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":2},"characteristics":["ws","t","ag","bs"],"skills":["Soin aux animaux","Résistance","Langue (Bataille)","Corps à corps (Base)","Survie en extérieur","Chevaucher (Cheval)","Esquive","Marchandage","Guérison","Projectiles (Lancer)","Charme","Résistance à l'alcool","Pari","Ragot","Corps à corps (Cavalerie)","Projectiles (Arc)"],"talents":["Sens de l'orientation","Vigilance","Nomade","Cavalier émérite"],"trappings":["Cotte de maille","Cheval de guerre léger avec selle et fontes","Heaume ouvert"],"incomeSkill":[5],"source":{"type":"String","label":"Source"}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"babele":{"translated":true,"hasTranslation":true,"originalName":"Horseman"},"core":{"sourceId":"Compendium.wfrp4e-core.careers.XuIDL2gpiFMleuVV"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}

2
packs/sort-fr.db Normal file
View File

@ -0,0 +1,2 @@
{"_id":"2NuLGbLlyHPck2Je","name":"Confort","type":"spell","img":"modules/wfrp4e-core/icons/spells/fire.png","data":{"description":{"type":"String","label":"Description","value":"<p>Vous &eacute;tendez les vents d'Aqshy selon une d&eacute;licate toile, qui r&eacute;chauffe subtilement l'aire d'effet.Ce sort cr&eacute;e une zone de chaleur confortable qui par ailleurs &eacute;vite m&ecirc;me dans les environnements les plus glaciaux, les effets de l'exposition au froid. L'air chaud produit des tourbillons autour de la zone d'effet, d&eacute;tournant les fortes rafales de vent et les intemp&eacute;ries les plus rigoureuses. Avec ce sort, la difficult&eacute; de monter un camp ne peut exiger un jet de Survie en ext&eacute;rieur plus difficile que Accessible (+20).</p>\n<p><strong>Domaine:</strong> Vous pouvez infliger +1 Etat Enflamm&eacute; &agrave; quiconque est cibl&eacute; par les Sorts du Domaine du Feu, &agrave; moins qu'ils ne poss&egrave;dent &eacute;galement le Talent Magie des Arcanes (Feu). Chaque Etat Enflamm&eacute; situ&eacute; &agrave; une distance en m&egrave;tres &eacute;gale &agrave; votre Bonus de Force Mentale ajoute +10 aux tentatives de Focalisation ou d'Incantation avec <em>Aqshy</em>.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"lore":{"type":"String","label":"Lore","value":"fire","effect":""},"range":{"type":"String","label":"Range","value":"Force Mentale mètres."},"target":{"type":"String","label":"Target","value":"Bonus de Force Mentale mètre","aoe":true},"duration":{"type":"String","label":"Duration","value":"Bonus de Force Mentale heures","extendable":false},"damage":{"type":"String","label":"Damage","dice":"","value":""},"cn":{"type":"Number","label":"Casting Number","value":3,"SL":0},"magicMissile":{"type":"Boolean","label":"Magic Missile","value":false},"memorized":{"type":"Boolean","label":"Memorized","value":false},"skill":{"value":""},"ingredients":[],"currentIng":{"type":"Number","label":"Ingredient","value":0},"wind":{"value":""},"overcast":{"enabled":false,"label":"","valuePerOvercast":{"type":"","value":1,"SL":false,"characteristic":"","bonus":false},"initial":{"type":"","value":1,"SL":false,"characteristic":"","bonus":false}},"source":{"type":"String","label":"Source"}},"effects":[{"_id":"kNTwaivtonPJpdY6","changes":[],"duration":{"startTime":null},"flags":{"wfrp4e":{"effectApplication":"apply","effectTrigger":"oneTime","lore":true,"script":"\n if (args.actor.isOwner)\n {\n args.actor.addCondition(\"ablaze\")\n }"}},"icon":"modules/wfrp4e-core/icons/spells/fire.png","label":"Domaine du Feu","transfer":true,"disabled":false}],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"description","babele":{"translated":true,"hasTranslation":true,"originalName":"Mundane Aura (Fire)"},"core":{"sourceId":"Compendium.wfrp4e-core.spells.7pHcU30nMhgd0V5N"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}
{"_id":"VexogjUDXdGAHWmN","name":"Cuisine rapide","type":"spell","img":"modules/wfrp4e-core/icons/spells/fire.png","data":{"description":{"type":"String","label":"Description","value":"<p>Vous faites tr&eacute;s rapidement chauffer un morceau de viande, une marmitte de rago&ucirc;t, ou tout autre plat de nourriture similaire.C'est instantann&eacute;ment cuit &agrave; la perfection, selon vos go&ucirc;ts. Notons que cela n'apporte aucun ingr&eacute;dient culinaire suppl&eacute;mentaire, et qu'un test de M&eacute;tier (Cuisine) est n&eacute;cessaire pour r&eacute;aliser un plat vraiment succulent.</p>\n<p><strong>Domaine:</strong> Vous pouvez infliger +1 Etat Enflamm&eacute; &agrave; quiconque est cibl&eacute; par les Sorts du Domaine du Feu, &agrave; moins qu'ils ne poss&egrave;dent &eacute;galement le Talent Magie des Arcanes (Feu). Chaque Etat Enflamm&eacute; situ&eacute; &agrave; une distance en m&egrave;tres &eacute;gale &agrave; votre Bonus de Force Mentale ajoute +10 aux tentatives de Focalisation ou d'Incantation avec <em>Aqshy</em>.</p>\n<p>&nbsp;</p>"},"gmdescription":{"type":"String","label":"Description","value":""},"lore":{"type":"String","label":"Lore","value":"fire","effect":""},"range":{"type":"String","label":"Range","value":"Contact"},"target":{"type":"String","label":"Target","value":"Spécial","aoe":false},"duration":{"type":"String","label":"Duration","value":"Instantannée","extendable":false},"damage":{"type":"String","label":"Damage","dice":"","value":""},"cn":{"type":"Number","label":"Casting Number","value":2,"SL":0},"magicMissile":{"type":"Boolean","label":"Magic Missile","value":false},"memorized":{"type":"Boolean","label":"Memorized","value":false},"skill":{"value":""},"ingredients":[],"currentIng":{"type":"Number","label":"Ingredient","value":0},"wind":{"value":""},"overcast":{"enabled":false,"label":"","valuePerOvercast":{"type":"","value":1,"SL":false,"characteristic":"","bonus":false},"initial":{"type":"","value":1,"SL":false,"characteristic":"","bonus":false}},"source":{"type":"String","label":"Source"}},"effects":[{"_id":"kNTwaivtonPJpdY6","changes":[],"duration":{"startTime":null},"flags":{"wfrp4e":{"effectApplication":"apply","effectTrigger":"oneTime","lore":true,"script":"\n if (args.actor.isOwner)\n {\n args.actor.addCondition(\"ablaze\")\n }"}},"icon":"modules/wfrp4e-core/icons/spells/fire.png","label":"Domaine du Feu","transfer":true,"disabled":false}],"folder":null,"sort":0,"permission":{"default":0,"KlpQY85kaIy1CjL6":3},"flags":{"_sheetTab":"description","babele":{"translated":true,"hasTranslation":true,"originalName":"Mundane Aura (Fire)"},"core":{"sourceId":"Compendium.wfrp4e-core.spells.7pHcU30nMhgd0V5N"},"exportSource":{"world":"warhammer-9","system":"wfrp4e","coreVersion":"9.269","systemVersion":"5.3.0"}}}

View File

@ -2,8 +2,8 @@ package.path = package.path .. ";luajson/?.lua"
local JSON = require"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/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")