Compare commits

...

16 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
91 changed files with 356 additions and 400 deletions

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);

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"
}
},

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",

View File

@ -1,28 +1,28 @@
{
"id": "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": "6.1.3",
"compatibility": {
"minimum": "9.280",
"verified": "10.284",
"maximum": "10"
},
"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": [
@ -32,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",
@ -41,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",
@ -50,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",
@ -59,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",
@ -68,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",
@ -77,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",
@ -86,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",
@ -95,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",
@ -104,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",
@ -113,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",
@ -122,27 +131,31 @@
"name": "apothicarium",
"path": "packs/apothicarium.db",
"system": "wfrp4e",
"module": "WH4-fr-translation",
"private": false
"private": false,
"flags": {}
}
],
"relationships": {
"systems": [{
"id": "wfrp4e",
"type": "system",
"compatibility": {
"verified": "6.1.1"
}
}],
"requires": [{
"id": "babele",
"type": "module"
}]
"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"
},
"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-6.1.3.zip",
"protected": false,
"coreTranslation": false,
"library": false
}
"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

@ -134,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;
@ -169,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;
}
@ -285,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)
@ -301,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 })
@ -313,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') {
@ -323,7 +323,7 @@ export default async function statParserFR(statString, type = "npc") {
catch { }
if (!itemFound && name) {
itemFound = new game.entities.ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", data: game.system.model.Item.trapping })
itemFound.data.data.trappingType.value = "misc"
itemFound.system.trappingType.value = "misc"
}
if (itemFound)
itemFound = itemFound.toObject();
@ -342,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,7 +2,7 @@ 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 = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-core/lang/en.json"
local enjsonf = "../../WFRP4e-FoundryVTT/static/lang/en.json"
local frjsonf = "../fr.json"