diff --git a/addon-register.js b/addon-register.js
index 63b5e4f..2d442bc 100644
--- a/addon-register.js
+++ b/addon-register.js
@@ -204,7 +204,35 @@ const __check_fix_wrong_modules = ( chatFlag, patchFinished ) => {
if (game.user.isGM && patchFinished)
ChatMessage.create( { title: "Patch fini !", content: "Les modules WFRP4E ont été patchés avec succès. Vous pouvez y aller et que Shallya vous garde !", whisper: ChatMessage.getWhisperRecipients("GM") } );
+}
+/************************************************************************************/
+const convertColumnToMulti = (table) => {
+ let columns = table.columns;
+ let newTable = duplicate(table)
+
+ delete newTable.columns;
+ newTable.rows = table.rows.map(i => {return {range : {}}})
+ newTable.multi = table.columns
+
+ for(let column of columns)
+ {
+ for (let row of newTable.rows)
+ {
+ row[column] = {}
+ row.range[column] = []
+ }
+ }
+
+ for(let index in newTable.rows)
+ {
+ for (let column in table.rows[index].range)
+ {
+ newTable.rows[index][column] = {name : table.rows[index].name}
+ newTable.rows[index].range[column] = table.rows[index].range[column]
+ }
+ }
+ return newTable;
}
/************************************************************************************/
diff --git a/module.json b/module.json
index e565a80..60389d6 100644
--- a/module.json
+++ b/module.json
@@ -2,7 +2,7 @@
"name": "WH4-fr-translation",
"title": "WFRP4e - Core Module en français.",
"description": "Traduction Française pour Warhammer v4.",
- "version": "4.1.1",
+ "version": "4.1.2",
"minimumCoreVersion" : "0.8.0",
"compatibleCoreVersion": "0.8.8",
"author": "LeRatierBretonnien",
diff --git a/modules/config-patch.js b/modules/config-patch.js
index daf6acd..0eef097 100644
--- a/modules/config-patch.js
+++ b/modules/config-patch.js
@@ -1,27 +1,142 @@
-export class WH4FRPatchConfig {
+export class WH4FRPatchConfig {
- /************************************************************************************/
- static perform_patch( ) {
+ /************************************************************************************/
+ static perform_patch() {
// Detect and patch as necessary
- if (game.wfrp4e.config && game.wfrp4e.config.talentBonuses && game.wfrp4e.config.talentBonuses["vivacité"] == undefined) {
+ if (game.wfrp4e.config && game.wfrp4e.config.talentBonuses && game.wfrp4e.config.talentBonuses["vivacité"] == undefined) {
console.log("Patching WFRP4E now ....");
- game.wfrp4e.config.qualityDescriptions ["distract"] = game.i18n.localize("WFRP4E.Properties.Distract"); // Patch missing quality
-
+ game.wfrp4e.config.qualityDescriptions["distract"] = game.i18n.localize("WFRP4E.Properties.Distract"); // Patch missing quality
+
game.wfrp4e.config.talentBonuses = {
- "perspicace": "int",
- "affable": "fel",
- "tireur de précision": "bs",
- "très fort": "s",
- "vivacité": "i",
- "reflexes foudroyants": "ag",
- "imperturbable": "wp",
- "très résistant": "t",
- "doigts de fée": "dex",
- "guerrier né": "ws"
+ "perspicace": "int",
+ "affable": "fel",
+ "tireur de précision": "bs",
+ "très fort": "s",
+ "vivacité": "i",
+ "reflexes foudroyants": "ag",
+ "imperturbable": "wp",
+ "très résistant": "t",
+ "doigts de fée": "dex",
+ "guerrier né": "ws"
}
game.wfrp4e.config.speciesSkills["human"] = [
+ "Soins aux animaux",
+ "Charme",
+ "Calme",
+ "Evaluation",
+ "Ragot",
+ "Marchandage",
+ "Langue (Bretonnien)",
+ "Langue (Wastelander)",
+ "Commandement",
+ "Savoir (Reikland)",
+ "Corps à corps (Base)",
+ "Projectiles (Arc)"
+ ];
+ game.wfrp4e.config.speciesSkills["dwarf"] = [
+ "Résistance à l'alcool",
+ "Calme",
+ "Résistance",
+ "Divertissement (Raconter)",
+ "Evaluation",
+ "Intimidation",
+ "Langue (Khazalid)",
+ "Savoir (Nains)",
+ "Savoir (Geologie)",
+ "Savoir (Metallurgie)",
+ "Corps à corps (Base)",
+ "Métier (Au choix)"
+ ];
+ game.wfrp4e.config.speciesSkills["halfling"] = [
+ "Charme",
+ "Résistance à l'alcool",
+ "Esquive",
+ "Pari",
+ "Marchandage",
+ "Intuition",
+ "Langue (Mootland)",
+ "Savoir (Reikland)",
+ "Perception",
+ "Escamotage",
+ "Discrétion (Au choix)",
+ "Métier (Cuisinier)"
+ ];
+ game.wfrp4e.config.speciesSkills["helf"] = [
+ "Calme",
+ "Divertissement (Chant)",
+ "Evaluation",
+ "Langue (Eltharin)",
+ "Commandement",
+ "Corps à corps (Base)",
+ "Orientation",
+ "Perception",
+ "Musicien (Au choix)",
+ "Projectiles (Arc)",
+ "Voile",
+ "Natation"
+ ];
+
+ game.wfrp4e.config.speciesSkills["welf"] = [
+ "Athlétisme",
+ "Escalade",
+ "Résistance",
+ "Divertissement (Chant)",
+ "Intimidation",
+ "Langue (Eltharin)",
+ "Corps à corps (Base)",
+ "Survie en extérieur",
+ "Perception",
+ "Projectiles (Arc)",
+ "Discrétion (Rural)",
+ "Pistage"
+ ];
+ game.wfrp4e.config.speciesTalents["human"] = [
+ "Destinée",
+ "Affable, Perspicace",
+ 3
+ ]
+ game.wfrp4e.config.speciesTalents["dwarf"] = [
+ "Résistance à la Magie",
+ "Vision Nocturne",
+ "Lire/Ecrire, Impitoyable",
+ "Déterminé, Obstiné",
+ "Costaud",
+ 0
+ ]
+ game.wfrp4e.config.speciesTalents["halfling"] = [
+ "Sens Aiguisé (Gout)",
+ "Vision Nocturne",
+ "Résistant (Chaos)",
+ "Petit",
+ 2
+ ];
+ game.wfrp4e.config.speciesTalents["helf"] = [
+ "Sens Aiguisé (Vue)",
+ "Imperturbable, Perspicace",
+ "Vision Nocturne",
+ "Seconde Vue, Sixième Sens",
+ "Lire/Ecrire",
+ 0
+ ]
+ game.wfrp4e.config.speciesTalents["welf"] = [
+ "Sens Aiguisé (Vue)",
+ "Dur à cuire, Seconde Vue",
+ "Vision Nocturne",
+ "Nomade",
+ "Lire/Ecrire, Très Résistant",
+ 0
+ ]
+ game.wfrp4e.config.species["human"] = "Humain";
+ game.wfrp4e.config.species["dwarf"] = "Nain";
+ game.wfrp4e.config.species["halfling"] = "Halfling";
+ game.wfrp4e.config.species["helf"] = "Haut Elfe";
+ game.wfrp4e.config.species["welf"] = "Elfe Sylvain";
+
+ game.wfrp4e.config.subspecies["human"]["reiklander"] = {
+ name: "Reiklander",
+ skills: [
"Soins aux animaux",
"Charme",
"Calme",
@@ -34,526 +149,560 @@ export class WH4FRPatchConfig {
"Savoir (Reikland)",
"Corps à corps (Base)",
"Projectiles (Arc)"
- ];
- game.wfrp4e.config.speciesSkills["dwarf"] = [
- "Résistance à l'alcool",
- "Calme",
- "Résistance",
- "Divertissement (Raconter)",
- "Evaluation",
- "Intimidation",
- "Langue (Khazalid)",
- "Savoir (Nains)",
- "Savoir (Geologie)",
- "Savoir (Metallurgie)",
- "Corps à corps (Base)",
- "Métier (Au choix)"
- ];
- game.wfrp4e.config.speciesSkills["halfling"] = [
- "Charme",
- "Résistance à l'alcool",
- "Esquive",
- "Pari",
- "Marchandage",
- "Intuition",
- "Langue (Mootland)",
- "Savoir (Reikland)",
- "Perception",
- "Escamotage",
- "Discrétion (Au choix)",
- "Métier (Cuisinier)"
- ];
- game.wfrp4e.config.speciesSkills["helf"] = [
- "Calme",
- "Divertissement (Chant)",
- "Evaluation",
- "Langue (Eltharin)",
- "Commandement",
- "Corps à corps (Base)",
- "Orientation",
- "Perception",
- "Musicien (Au choix)",
- "Projectiles (Arc)",
- "Voile",
- "Natation"
- ];
+ ],
+ talents: [
+ "Destinée",
+ "Affable, Perspicace",
+ 3
+ ]
+ }
- game.wfrp4e.config.speciesSkills["welf"] = [
- "Athlétisme",
- "Escalade",
- "Résistance",
- "Divertissement (Chant)",
- "Intimidation",
- "Langue (Eltharin)",
- "Corps à corps (Base)",
- "Survie en extérieur",
- "Perception",
- "Projectiles (Arc)",
- "Discrétion (Rural)",
- "Pistage"
- ];
- game.wfrp4e.config.speciesTalents["human"] = [
- "Destinée",
- "Affable, Perspicace",
- 3
- ]
- game.wfrp4e.config.speciesTalents["dwarf"] = [
- "Résistance à la Magie",
- "Vision Nocturne",
- "Lire/Ecrire, Impitoyable",
- "Déterminé, Obstiné",
- "Costaud",
- 0
- ]
- game.wfrp4e.config.speciesTalents["halfling"] = [
- "Sens Aiguisé (Gout)",
- "Vision Nocturne",
- "Résistant (Chaos)",
- "Petit",
- 2
- ];
- game.wfrp4e.config.speciesTalents["helf"] = [
- "Sens Aiguisé (Vue)",
- "Imperturbable, Perspicace",
- "Vision Nocturne",
- "Seconde Vue, Sixième Sens",
- "Lire/Ecrire",
- 0
- ]
- game.wfrp4e.config.speciesTalents["welf"] = [
- "Sens Aiguisé (Vue)",
- "Dur à cuire, Seconde Vue",
- "Vision Nocturne",
- "Nomade",
- "Lire/Ecrire, Très Résistant",
- 0
- ]
- game.wfrp4e.config.species["human"] = "Humain";
- game.wfrp4e.config.species["dwarf"] = "Nain";
- game.wfrp4e.config.species["halfling"] = "Halfling";
- game.wfrp4e.config.species["helf"] = "Haut Elfe";
- game.wfrp4e.config.species["welf"] = "Elfe Sylvain";
-
- game.wfrp4e.config.subspecies = {
- human : {
- reiklander: {
- name : "Reiklander",
- skills : [
- "Soins aux animaux",
- "Charme",
- "Calme",
- "Evaluation",
- "Ragot",
- "Marchandage",
- "Langue (Bretonnien)",
- "Langue (Wastelander)",
- "Commandement",
- "Savoir (Reikland)",
- "Corps à corps (Base)",
- "Projectiles (Arc)"
- ],
- talents : [
- "Destinée",
- "Affable, Perspicace",
- 3
- ]
- }
+ if (game.wfrp4e.config.subspecies["welf"]["harioth"]) { // Archives Empire
+ game.wfrp4e.config.subspecies["welf"]["harioth"] = {
+ name: "Harioth",
+ talents: [
+ "Sens Aiguisé (Vue)",
+ "Dur à cuire, Seconde Vue",
+ "Vision Nocturne",
+ "Lire/Ecrire, Très Résistant",
+ "Nomade",
+ "Youngblood",
+ 0
+ ]
+ }
+ game.wfrp4e.config.subspecies["halfling"]["ashfield"] = {
+ name: "Ashfield",
+ skills: [
+ "Charme",
+ "Résistance à l'alcool",
+ "Marchandage",
+ "Savoir (Reikland)",
+ "Escamotage",
+ "Discrétion (Au choix)",
+ "Métier (Cuisinier)",
+ "Calme",
+ "Intuition",
+ "Langue (Mootish)",
+ "Projectiles (Au choix)"
+ ],
+ talents: [
+ "Sens Aiguisé (Goût)",
+ "Vision Nocturne",
+ "Résistant (Chaos)",
+ "Petit",
+ "Sens Aiguisé (Vue), Etiquette (Soldats)",
+ 1
+ ]
+ }
+ game.wfrp4e.config.subspecies.halfling["brambledown"] = {
+ name: "Brambledown",
+ skills: [
+ "Charme",
+ "Résistance à l'alcool",
+ "Marchandage",
+ "Savoir (Reikland)",
+ "Escamotage",
+ "Discrétion (Au choix)",
+ "Métier (Cuisinier)",
+ "Langue (Mootish) ",
+ "Orientation",
+ "Survie en extérieur ",
+ "Natation"
+ ],
+ talents: [
+ "Sens Aiguisé (Goût)",
+ "Vision Nocturne",
+ "Résistant (Chaos)",
+ "Petit",
+ "Sociable, Voyageur aguerri",
+ 1
+ ]
+ }
+ game.wfrp4e.config.subspecies.halfling["brandysnap"] = {
+ name: "Brandysnap",
+ skills: [
+ "Charme",
+ "Résistance à l'alcool",
+ "Marchandage",
+ "Savoir (Reikland)",
+ "Escamotage",
+ "Discrétion (Au choix)",
+ "Métier (Cuisinier)",
+ "Soins aux animaux",
+ "Pari",
+ "Langue (Mootish)",
+ "Métier (Herboriste)"
+ ],
+ talents: [
+ "Sens Aiguisé (Goût)",
+ "Vision Nocturne",
+ "Résistant (Chaos)",
+ "Petit",
+ "Maître Artisan (Fermier), Costaud",
+ 1
+ ]
+ }
+ game.wfrp4e.config.subspecies.halfling["hayfoot"] = {
+ name: "Hayfoot",
+ skills: [
+ "Charme",
+ "Résistance à l'alcool",
+ "Marchandage",
+ "Savoir (Reikland)",
+ "Escamotage",
+ "Discrétion (Au choix)",
+ "Métier (Cuisinier)",
+ "Gamble",
+ "Pari",
+ "Evaluation",
+ "Langue (Mootish)"
+ ],
+ talents: [
+ "Sens Aiguisé (Goût)",
+ "Vision Nocturne",
+ "Résistant (Chaos)",
+ "Petit",
+ "Négociateur, Etiquette (Guildes)",
+ 1
+ ]
+ }
+ game.wfrp4e.config.subspecies.halfling["hollyfoot"] = {
+ name: "Hollyfoot",
+ skills: [
+ "Charme",
+ "Résistance à l'alcool",
+ "Marchandage",
+ "Savoir (Reikland)",
+ "Escamotage",
+ "Discrétion (Au choix)",
+ "Métier (Cuisinier)",
+ "Subornation",
+ "Marchandage",
+ "Ragot",
+ "Langue (Mootish)"
+ ],
+ talents: [
+ "Sens Aiguisé (Goût)",
+ "Vision Nocturne",
+ "Résistant (Chaos)",
+ "Petit",
+ "Maître Artisan (Au choix), Doigts de fée",
+ 1
+ ]
+ }
+ game.wfrp4e.config.subspecies.halfling["hayfoot—hollyfoot"] = {
+ name: "Hayfoot—Hollyfoot",
+ skills: [
+ "Charme",
+ "Résistance à l'alcool",
+ "Marchandage",
+ "Savoir (Reikland)",
+ "Escamotage",
+ "Discrétion (Au choix)",
+ "Métier (Cuisinier)",
+ "Subornation",
+ "Marchandage",
+ "Ragot",
+ "Langue (Mootish)"
+ ],
+ talents: [
+ "Sens Aiguisé (Goût)",
+ "Vision Nocturne",
+ "Résistant (Chaos)",
+ "Petit",
+ "Ergoteur, Numismate",
+ 1
+ ]
}
- }
- game.wfrp4e.config.conditionScripts = {
- "ablaze" : async function (actor) {
+ }
+
+ game.wfrp4e.config.conditionScripts = {
+ "ablaze": async function (actor) {
let effect = actor.hasCondition("ablaze")
let value = effect.conditionValue;
-
+
let leastProtectedLoc;
let leastProtectedValue = 999;
- for (let loc in actor.status.armour)
- {
- if (actor.status.armour[loc].value != undefined && actor.status.armour[loc].value < leastProtectedValue)
- {
- leastProtectedLoc = loc;
- leastProtectedValue = actor.status.armour[loc].value;
- }
+ for (let loc in actor.status.armour) {
+ if (actor.status.armour[loc].value != undefined && actor.status.armour[loc].value < leastProtectedValue) {
+ leastProtectedLoc = loc;
+ leastProtectedValue = actor.status.armour[loc].value;
+ }
}
let rollString = `1d10 + ${value - 1}`
-
+
let roll = new Roll(`${rollString} - ${leastProtectedValue || 0}`).roll();
-
+
let msg = `
En Flammes
Formule: ${rollString}
Lancer: ${roll.terms.map(i => i.total).splice(0, 3).join(" ")}` // Don't show AP in the roll formula
-
- actor.runEffects("preApplyCondition", {effect, data : {msg, roll, rollString}})
+
+ actor.runEffects("preApplyCondition", { effect, data: { msg, roll, rollString } })
value = effect.conditionValue;
- let damageMsg = (`
` + await actor.applyBasicDamage(roll.total, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_AP, suppressMsg : true})).split("")
- damageMsg.splice(damageMsg.length-1, 1) // Removes the parentheses and adds + AP amount.
+ let damageMsg = (`
` + await actor.applyBasicDamage(roll.total, { damageType: game.wfrp4e.config.DAMAGE_TYPE.IGNORE_AP, suppressMsg: true })).split("")
+ damageMsg.splice(damageMsg.length - 1, 1) // Removes the parentheses and adds + AP amount.
msg += damageMsg.join("").concat(` + ${leastProtectedValue} AP)`)
let messageData = game.wfrp4e.utility.chatDataSetup(msg);
- messageData.speaker = {alias: actor.data.token.name}
- actor.runEffects("applyCondition", {effect, data : {messageData}})
+ messageData.speaker = { alias: actor.data.token.name }
+ actor.runEffects("applyCondition", { effect, data: { messageData } })
return messageData
- },
- "poisoned" : async function (actor) {
+ },
+ "poisoned": async function (actor) {
let effect = actor.hasCondition("poisoned")
let msg = `Empoisonné
`
-
- actor.runEffects("preApplyCondition", {effect, data : {msg}})
+
+ actor.runEffects("preApplyCondition", { effect, data: { msg } })
let value = effect.conditionValue;
- msg += await actor.applyBasicDamage(value, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL, suppressMsg : true})
+ msg += await actor.applyBasicDamage(value, { damageType: game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL, suppressMsg: true })
let messageData = game.wfrp4e.utility.chatDataSetup(msg);
- messageData.speaker = {alias: actor.data.token.name}
- actor.runEffects("applyCondition", {effect, data : {messageData}})
+ messageData.speaker = { alias: actor.data.token.name }
+ actor.runEffects("applyCondition", { effect, data: { messageData } })
return messageData
- },
- "bleeding" : async function(actor) {
+ },
+ "bleeding": async function (actor) {
let effect = actor.hasCondition("bleeding")
let bleedingAmt;
let bleedingRoll;
let msg = `Hémorragie
`
-
- actor.runEffects("preApplyCondition", {effect, data : {msg}})
+
+ actor.runEffects("preApplyCondition", { effect, data: { msg } })
let value = effect.conditionValue;
- msg += await actor.applyBasicDamage(value, {damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL, minimumOne : false, suppressMsg : true})
-
- if (actor.status.wounds.value == 0 && !actor.hasCondition("unconscious"))
- {
- await actor.addCondition("unconscious")
- msg += `
${actor.data.token.name} tombe inconscient!`
+ msg += await actor.applyBasicDamage(value, { damageType: game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL, minimumOne: false, suppressMsg: true })
+
+ if (actor.status.wounds.value == 0 && !actor.hasCondition("unconscious")) {
+ await actor.addCondition("unconscious")
+ msg += `
${actor.data.token.name} tombe inconscient!`
}
-
- if (actor.hasCondition("unconscious"))
- {
- bleedingAmt = value;
- bleedingRoll = new Roll("1d100").roll().total;
- if (bleedingRoll <= bleedingAmt * 10)
- {
- msg += `
${actor.data.token.name} meurt de la perte de sang! (Lancé ${bleedingRoll})`
- actor.addCondition("dead")
- }
- else if (bleedingRoll % 11 == 0)
- {
- msg += `
${actor.data.token.name}'s cicatrise un peu et élimine 1 Etat Hémorragique (Lancé ${bleedingRoll})`
- actor.removeCondition("bleeding")
- }
- else
- {
- msg += `
Bleeding Roll: ${bleedingRoll}`
- }
+
+ if (actor.hasCondition("unconscious")) {
+ bleedingAmt = value;
+ bleedingRoll = new Roll("1d100").roll().total;
+ if (bleedingRoll <= bleedingAmt * 10) {
+ msg += `
${actor.data.token.name} meurt de la perte de sang! (Lancé ${bleedingRoll})`
+ actor.addCondition("dead")
+ }
+ else if (bleedingRoll % 11 == 0) {
+ msg += `
${actor.data.token.name}'s cicatrise un peu et élimine 1 Etat Hémorragique (Lancé ${bleedingRoll})`
+ actor.removeCondition("bleeding")
+ }
+ else {
+ msg += `
Bleeding Roll: ${bleedingRoll}`
+ }
}
-
+
let messageData = game.wfrp4e.utility.chatDataSetup(msg);
- messageData.speaker = {alias: actor.data.token.name}
- actor.runEffects("applyCondition", {effect, data : {messageData, bleedingRoll}})
+ messageData.speaker = { alias: actor.data.token.name }
+ actor.runEffects("applyCondition", { effect, data: { messageData, bleedingRoll } })
return messageData
+ }
}
- }
-
- game.wfrp4e.config.statusEffects = [
+
+ game.wfrp4e.config.statusEffects = [
{
- icon: "systems/wfrp4e/icons/conditions/bleeding.png",
- id: "bleeding",
- label: "Hémorragique",
- flags: {
- wfrp4e: {
- "trigger": "endRound",
- "value": 1
- }
+ icon: "systems/wfrp4e/icons/conditions/bleeding.png",
+ id: "bleeding",
+ label: "Hémorragique",
+ flags: {
+ wfrp4e: {
+ "trigger": "endRound",
+ "value": 1
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/poisoned.png",
- id: "poisoned",
- label: "Empoisonné",
- flags: {
- wfrp4e: {
- "trigger": "endRound",
- "effectTrigger": "prefillDialog",
- "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
- "value": 1
- }
+ icon: "systems/wfrp4e/icons/conditions/poisoned.png",
+ id: "poisoned",
+ label: "Empoisonné",
+ flags: {
+ wfrp4e: {
+ "trigger": "endRound",
+ "effectTrigger": "prefillDialog",
+ "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
+ "value": 1
}
-
+ }
+
},
{
- icon: "systems/wfrp4e/icons/conditions/ablaze.png",
- id: "ablaze",
- label: "En Flammes",
- flags: {
- wfrp4e: {
- "trigger": "endRound",
- "value": 1
- }
+ icon: "systems/wfrp4e/icons/conditions/ablaze.png",
+ id: "ablaze",
+ label: "En Flammes",
+ flags: {
+ wfrp4e: {
+ "trigger": "endRound",
+ "value": 1
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/deafened.png",
- id: "deafened",
- label: "Assourdi",
- flags: {
- wfrp4e: {
- "trigger": "endRound",
- "effectTrigger": "dialogChoice",
- "effectData" : {
- "description" : "Tests related to hearing",
- "modifier" : "-10 * this.flags.wfrp4e.value"
- },
- "value": 1
- }
+ icon: "systems/wfrp4e/icons/conditions/deafened.png",
+ id: "deafened",
+ label: "Assourdi",
+ flags: {
+ wfrp4e: {
+ "trigger": "endRound",
+ "effectTrigger": "dialogChoice",
+ "effectData": {
+ "description": "Tests related to hearing",
+ "modifier": "-10 * this.flags.wfrp4e.value"
+ },
+ "value": 1
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/stunned.png",
- id: "stunned",
- label: "Assommé",
- flags: {
- wfrp4e: {
- "trigger": "endRound",
- "effectTrigger": "prefillDialog",
- "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
- "value": 1
- }
+ icon: "systems/wfrp4e/icons/conditions/stunned.png",
+ id: "stunned",
+ label: "Assommé",
+ flags: {
+ wfrp4e: {
+ "trigger": "endRound",
+ "effectTrigger": "prefillDialog",
+ "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
+ "value": 1
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/entangled.png",
- id: "entangled",
- label: "Empêtré",
- flags: {
- wfrp4e: {
- "trigger": "endRound",
- "effectTrigger": "dialogChoice",
- "effectData" : {
- "description" : "Tout les tests relatifs au mouvement",
- "modifier" : "-10 * this.flags.wfrp4e.value"
- },
- "value": 1
- }
+ icon: "systems/wfrp4e/icons/conditions/entangled.png",
+ id: "entangled",
+ label: "Empêtré",
+ flags: {
+ wfrp4e: {
+ "trigger": "endRound",
+ "effectTrigger": "dialogChoice",
+ "effectData": {
+ "description": "Tout les tests relatifs au mouvement",
+ "modifier": "-10 * this.flags.wfrp4e.value"
+ },
+ "value": 1
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/fatigued.png",
- id: "fatigued",
- label: "Extenué",
- flags: {
- wfrp4e: {
- "effectTrigger": "prefillDialog",
- "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
- "value" : 1
- }
+ icon: "systems/wfrp4e/icons/conditions/fatigued.png",
+ id: "fatigued",
+ label: "Extenué",
+ flags: {
+ wfrp4e: {
+ "effectTrigger": "prefillDialog",
+ "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
+ "value": 1
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/blinded.png",
- id: "blinded",
- label: "Aveuglé",
- flags: {
- wfrp4e: {
- "trigger": "endRound",
- "effectTrigger": "dialogChoice",
- "effectData" : {
- "description" : "Tests relatifs à la vue",
- "modifier" : "-10 * this.flags.wfrp4e.value"
- },
- "value": 1,
- "secondaryEffect" :{
- "effectTrigger": "targetPrefillDialog",
- "script": "if (args.type == 'weapon' && args.item.attackType=='melee') args.prefillModifiers.modifier += 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
- }
- }
+ icon: "systems/wfrp4e/icons/conditions/blinded.png",
+ id: "blinded",
+ label: "Aveuglé",
+ flags: {
+ wfrp4e: {
+ "trigger": "endRound",
+ "effectTrigger": "dialogChoice",
+ "effectData": {
+ "description": "Tests relatifs à la vue",
+ "modifier": "-10 * this.flags.wfrp4e.value"
+ },
+ "value": 1,
+ "secondaryEffect": {
+ "effectTrigger": "targetPrefillDialog",
+ "script": "if (args.type == 'weapon' && args.item.attackType=='melee') args.prefillModifiers.modifier += 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
+ }
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/broken.png",
- id: "broken",
- label: "Brisé",
- flags: {
- wfrp4e: {
- "effectTrigger": "prefillDialog",
- "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
- "value": 1
- }
+ icon: "systems/wfrp4e/icons/conditions/broken.png",
+ id: "broken",
+ label: "Brisé",
+ flags: {
+ wfrp4e: {
+ "effectTrigger": "prefillDialog",
+ "script": "args.prefillModifiers.modifier -= 10 * getProperty(this.effect, 'flags.wfrp4e.value')",
+ "value": 1
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/prone.png",
- id: "prone",
- label: "A terre",
- flags: {
- wfrp4e: {
- "effectTrigger": "dialogChoice",
- "effectData" : {
- "description" : "Tout les tests relatifs au mouvement",
- "modifier" : "-20"
- },
- "value": null,
- "secondaryEffect" :{
- "effectTrigger": "targetPrefillDialog",
- "script": "if (args.type == 'weapon' && args.item.attackType=='melee') args.prefillModifiers.modifier += 20",
- }
- }
+ icon: "systems/wfrp4e/icons/conditions/prone.png",
+ id: "prone",
+ label: "A terre",
+ flags: {
+ wfrp4e: {
+ "effectTrigger": "dialogChoice",
+ "effectData": {
+ "description": "Tout les tests relatifs au mouvement",
+ "modifier": "-20"
+ },
+ "value": null,
+ "secondaryEffect": {
+ "effectTrigger": "targetPrefillDialog",
+ "script": "if (args.type == 'weapon' && args.item.attackType=='melee') args.prefillModifiers.modifier += 20",
+ }
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/fear.png",
- id: "fear",
- label: "Peur",
- flags: {
- wfrp4e: {
- "effectTrigger": "dialogChoice",
- "effectData" : {
- "description" : "Tests affectés ",
- "slBonus" : "-1"
- },
- "script" : `
+ icon: "systems/wfrp4e/icons/conditions/fear.png",
+ id: "fear",
+ label: "Peur",
+ flags: {
+ wfrp4e: {
+ "effectTrigger": "dialogChoice",
+ "effectData": {
+ "description": "Tests affectés ",
+ "slBonus": "-1"
+ },
+ "script": `
if (this.flags.wfrp4e.fearName)
this.flags.wfrp4e.effectData.description += " " + this.flags.wfrp4e.fearName
else
this.flags.wfrp4e.effectData.description += " la source de la Peur"
`,
- "value": null
- }
+ "value": null
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/surprised.png",
- id: "surprised",
- label: "Surpris",
- flags: {
- wfrp4e: {
- "value": null,
- "secondaryEffect" :{
- "effectTrigger": "targetPrefillDialog",
- "script": "if (args.type == 'weapon' && args.item.attackType=='melee') args.prefillModifiers.modifier += 20",
- }
- }
+ icon: "systems/wfrp4e/icons/conditions/surprised.png",
+ id: "surprised",
+ label: "Surpris",
+ flags: {
+ wfrp4e: {
+ "value": null,
+ "secondaryEffect": {
+ "effectTrigger": "targetPrefillDialog",
+ "script": "if (args.type == 'weapon' && args.item.attackType=='melee') args.prefillModifiers.modifier += 20",
+ }
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/unconscious.png",
- id: "unconscious",
- label: "Inconscient",
- flags: {
- wfrp4e: {
- "value": null
- }
+ icon: "systems/wfrp4e/icons/conditions/unconscious.png",
+ id: "unconscious",
+ label: "Inconscient",
+ flags: {
+ wfrp4e: {
+ "value": null
}
+ }
},
{
- icon: "systems/wfrp4e/icons/conditions/grappling.png",
- id: "grappling",
- label: "Empoigné",
- flags: {
- wfrp4e: {
- "value": null
- }
+ icon: "systems/wfrp4e/icons/conditions/grappling.png",
+ id: "grappling",
+ label: "Empoigné",
+ flags: {
+ wfrp4e: {
+ "value": null
}
-
+ }
+
},
{
- icon: "systems/wfrp4e/icons/defeated.png",
- id: "dead",
- label: "Mort",
- flags: {
- wfrp4e: {
- "value": null
- }
+ icon: "systems/wfrp4e/icons/defeated.png",
+ id: "dead",
+ label: "Mort",
+ flags: {
+ wfrp4e: {
+ "value": null
}
-
+ }
+
}
]
- game.wfrp4e.config.systemEffects = {
- "enc1" : {
- label: "Encombrement 1",
- icon: "systems/wfrp4e/icons/effects/enc1.png",
- flags: {
+ game.wfrp4e.config.systemEffects = {
+ "enc1": {
+ label: "Encombrement 1",
+ icon: "systems/wfrp4e/icons/effects/enc1.png",
+ flags: {
wfrp4e: {
- "effectTrigger": "prePrepareData",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "prePrepareData",
+ "effectApplication": "actor",
+ "script": `
args.actor.characteristics.ag.modifier -= 10;
args.actor.details.move.value -= 1;
if (args.actor.details.move.value < 3)
args.actor.details.move.value = 3`
}
- }
- },
- "enc2" : {
- label: "Encombrement 2",
- icon: "systems/wfrp4e/icons/effects/enc2.png",
- flags: {
+ }
+ },
+ "enc2": {
+ label: "Encombrement 2",
+ icon: "systems/wfrp4e/icons/effects/enc2.png",
+ flags: {
wfrp4e: {
- "effectTrigger": "prePrepareData",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "prePrepareData",
+ "effectApplication": "actor",
+ "script": `
args.actor.characteristics.ag.modifier -= 20;
args.actor.details.move.value -= 2;
if (args.actor.details.move.value < 2)
args.actor.details.move.value = 2`
}
- }
- },
- "enc3" : {
- label: "Encombrement 3",
- icon: "systems/wfrp4e/icons/effects/enc3.png",
- flags: {
+ }
+ },
+ "enc3": {
+ label: "Encombrement 3",
+ icon: "systems/wfrp4e/icons/effects/enc3.png",
+ flags: {
wfrp4e: {
- "effectTrigger": "prePrepareData",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "prePrepareData",
+ "effectApplication": "actor",
+ "script": `
args.actor.details.move.value = 0;`
}
- }
- },
- "cold1" : {
- label: "Exposition au Froid 1",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -10},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -10},
- ],
- flags: {
+ }
+ },
+ "cold1": {
+ label: "Exposition au Froid 1",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -10 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "",
- "effectApplication": "actor",
- "script": ``
+ "effectTrigger": "",
+ "effectApplication": "actor",
+ "script": ``
}
- }
- },
- "cold2" : {
- label: "Exposition au Froid 2",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ws.modifier", mode: 2, value: -10},
- {key : "data.characteristics.s.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.modifier", mode: 2, value: -10},
- {key : "data.characteristics.i.modifier", mode: 2, value: -10},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -10},
- {key : "data.characteristics.int.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.modifier", mode: 2, value: -10},
- {key : "data.characteristics.fel.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1},
- ],
- flags: {
+ }
+ },
+ "cold2": {
+ label: "Exposition au Froid 2",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ws.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.s.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.i.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.int.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.fel.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "",
- "effectApplication": "actor",
- "script": ``
+ "effectTrigger": "",
+ "effectApplication": "actor",
+ "script": ``
}
- }
- },
- "cold3" : {
- label: "Exposition au Froid 3",
- icon: "",
- flags: {
+ }
+ },
+ "cold3": {
+ label: "Exposition au Froid 3",
+ icon: "",
+ flags: {
wfrp4e: {
- "effectTrigger": "oneTime",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "oneTime",
+ "effectApplication": "actor",
+ "script": `
let tb = this.actor.characteristics.t.bonus
let damage = new Roll("1d10").roll().total
damage -= tb
@@ -566,58 +715,58 @@ export class WH4FRPatchConfig {
ui.notifications.notify("Encaisse " + damage + " dégats")
`
}
- }
- },
- "heat1" : {
- label: "Exposition à la chaleur 1",
- icon: "",
- changes : [
- {key : "data.characteristics.int.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1},
- ],
- flags: {
+ }
+ },
+ "heat1": {
+ label: "Exposition à la chaleur 1",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.int.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "",
- "effectApplication": "actor",
- "script": ``
+ "effectTrigger": "",
+ "effectApplication": "actor",
+ "script": ``
}
- }
- },
- "heat2" : {
- label: "Exposition à la chaleur 2",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ws.modifier", mode: 2, value: -10},
- {key : "data.characteristics.s.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.modifier", mode: 2, value: -10},
- {key : "data.characteristics.i.modifier", mode: 2, value: -10},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -10},
- {key : "data.characteristics.int.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.modifier", mode: 2, value: -10},
- {key : "data.characteristics.fel.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1},
- ],
- flags: {
+ }
+ },
+ "heat2": {
+ label: "Exposition à la chaleur 2",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ws.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.s.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.i.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.int.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.fel.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "",
- "effectApplication": "actor",
- "script": ``
+ "effectTrigger": "",
+ "effectApplication": "actor",
+ "script": ``
}
- }
- },
- "heat3" : {
- label: "Exposition à la chaleur 3",
- icon: "",
- flags: {
+ }
+ },
+ "heat3": {
+ label: "Exposition à la chaleur 3",
+ icon: "",
+ flags: {
wfrp4e: {
- "effectTrigger": "oneTime",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "oneTime",
+ "effectApplication": "actor",
+ "script": `
let tb = this.actor.characteristics.t.bonus
let damage = new Roll("1d10").roll().total
damage -= tb
@@ -626,48 +775,48 @@ export class WH4FRPatchConfig {
ui.notifications.notify("Encaisse " + damage + " dégats")
`
}
- }
- },
- "thirst1" : {
- label: "Assoiffé 1",
- icon: "",
- changes : [
- {key : "data.characteristics.int.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.modifier", mode: 2, value: -10},
- {key : "data.characteristics.fel.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1},
- ],
- flags: {
+ }
+ },
+ "thirst1": {
+ label: "Assoiffé 1",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.int.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.fel.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "",
- "effectApplication": "actor",
- "script": ``
+ "effectTrigger": "",
+ "effectApplication": "actor",
+ "script": ``
}
- }
- },
- "thirst2" : {
- label: "Assoiffé 2+",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ws.modifier", mode: 2, value: -10},
- {key : "data.characteristics.s.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.modifier", mode: 2, value: -10},
- {key : "data.characteristics.i.modifier", mode: 2, value: -10},
- {key : "data.characteristics.int.modifier", mode: 2, value: -10},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.modifier", mode: 2, value: -10},
- {key : "data.characteristics.fel.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1},
- ],
- flags: {
+ }
+ },
+ "thirst2": {
+ label: "Assoiffé 2+",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ws.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.s.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.i.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.int.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.fel.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "invoke",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "invoke",
+ "effectApplication": "actor",
+ "script": `
let tb = this.actor.characteristics.t.bonus
let damage = new Roll("1d10").roll().total
damage -= tb
@@ -676,48 +825,48 @@ export class WH4FRPatchConfig {
ui.notifications.notify("Encasse " + damage + " dégats")
`
}
- }
- },
- "starvation1" : {
- label: "Affamé 1",
- icon: "",
- changes : [
- {key : "data.characteristics.s.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1},
- ],
- flags: {
+ }
+ },
+ "starvation1": {
+ label: "Affamé 1",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.s.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "",
- "effectApplication": "actor",
- "script": ``
+ "effectTrigger": "",
+ "effectApplication": "actor",
+ "script": ``
}
- }
- },
- "starvation2" : {
- label: "Affamé 2",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ws.modifier", mode: 2, value: -10},
- {key : "data.characteristics.s.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.modifier", mode: 2, value: -10},
- {key : "data.characteristics.i.modifier", mode: 2, value: -10},
- {key : "data.characteristics.int.modifier", mode: 2, value: -10},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -10},
- {key : "data.characteristics.wp.modifier", mode: 2, value: -10},
- {key : "data.characteristics.fel.modifier", mode: 2, value: -10},
- {key : "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1},
- {key : "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1},
- ],
- flags: {
+ }
+ },
+ "starvation2": {
+ label: "Affamé 2",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ws.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.s.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.i.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.int.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.wp.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.fel.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.t.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.s.calculationBonusModifier", mode: 2, value: 1 },
+ { key: "data.characteristics.wp.calculationBonusModifier", mode: 2, value: 1 },
+ ],
+ flags: {
wfrp4e: {
- "effectTrigger": "invoke",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "invoke",
+ "effectApplication": "actor",
+ "script": `
let tb = this.actor.characteristics.t.bonus
let damage = new Roll("1d10").roll().total
damage -= tb
@@ -726,16 +875,16 @@ export class WH4FRPatchConfig {
ui.notifications.notify("Encaisse " + damage + " dégats")
`
}
- }
- },
- "infighting": {
- label: "Combat au contact",
- icon: "modules/wfrp4e-core/icons/talents/in-fighter.png",
- flags: {
+ }
+ },
+ "infighting": {
+ label: "Combat au contact",
+ icon: "modules/wfrp4e-core/icons/talents/in-fighter.png",
+ flags: {
wfrp4e: {
- "effectTrigger": "prePrepareItem",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "prePrepareItem",
+ "effectApplication": "actor",
+ "script": `
if (args.item.type == "weapon" && args.item.isEquipped)
{
let weaponLength = args.item.reachNum
@@ -749,16 +898,16 @@ export class WH4FRPatchConfig {
}
`
}
- }
- },
- "defensive": {
- label: "Posture Défensive [Compétence]",
- icon: "",
- flags: {
+ }
+ },
+ "defensive": {
+ label: "Posture Défensive [Compétence]",
+ icon: "",
+ flags: {
wfrp4e: {
- "effectTrigger": "prefillDialog",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "prefillDialog",
+ "effectApplication": "actor",
+ "script": `
let skillName = this.effect.label.substring(this.effect.label.indexOf("[") + 1, this.effect.label.indexOf("]"))
if (!this.actor.isOpposing)
return
@@ -767,186 +916,186 @@ export class WH4FRPatchConfig {
(args.type == "cast" && skillName == "Langue (Magick)") ||
(args.type == "prayer" && skillName == "Prière") ||
(args.type == "trait" && args.item.rollable.skill == skillName))
- args.prefillModifiers.modifier += 20`
+ args.prefillModifiers.modifier += 20`
}
- }
- },
- "dualwielder" : {
- label: "Maniement de 2 armes",
- icon: "modules/wfrp4e-core/icons/talents/dual-wielder.png",
- flags: {
+ }
+ },
+ "dualwielder": {
+ label: "Maniement de 2 armes",
+ icon: "modules/wfrp4e-core/icons/talents/dual-wielder.png",
+ flags: {
wfrp4e: {
- "effectTrigger": "prefillDialog",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "prefillDialog",
+ "effectApplication": "actor",
+ "script": `
if (this.actor.isOpposing)
- args.prefillModifiers.modifier -= 10`
+ args.prefillModifiers.modifier -= 10`
}
- }
- },
- "consumealcohol1" : {
- label: "Résistance à l'alcool 1",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -10},
- {key : "data.characteristics.ws.modifier", mode: 2, value: -10},
- {key : "data.characteristics.int.modifier", mode: 2, value: -10},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -10},
- ]
- },
- "consumealcohol2" : {
- label: "Résistance à l'alcool 2",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -20},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -20},
- {key : "data.characteristics.ws.modifier", mode: 2, value: -20},
- {key : "data.characteristics.int.modifier", mode: 2, value: -20},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -20},
- ]
- },
- "consumealcohol3" : {
- label: "Résistance à l'alcool 3",
- icon: "",
- changes : [
- {key : "data.characteristics.bs.modifier", mode: 2, value: -30},
- {key : "data.characteristics.ag.modifier", mode: 2, value: -30},
- {key : "data.characteristics.ws.modifier", mode: 2, value: -30},
- {key : "data.characteristics.int.modifier", mode: 2, value: -30},
- {key : "data.characteristics.dex.modifier", mode: 2, value: -30},
- ]
- },
- "stinkingdrunk1" : {
- label: "Courage du Marienbourgeois",
- icon: "",
- flags: {
+ }
+ },
+ "consumealcohol1": {
+ label: "Résistance à l'alcool 1",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.ws.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.int.modifier", mode: 2, value: -10 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -10 },
+ ]
+ },
+ "consumealcohol2": {
+ label: "Résistance à l'alcool 2",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -20 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -20 },
+ { key: "data.characteristics.ws.modifier", mode: 2, value: -20 },
+ { key: "data.characteristics.int.modifier", mode: 2, value: -20 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -20 },
+ ]
+ },
+ "consumealcohol3": {
+ label: "Résistance à l'alcool 3",
+ icon: "",
+ changes: [
+ { key: "data.characteristics.bs.modifier", mode: 2, value: -30 },
+ { key: "data.characteristics.ag.modifier", mode: 2, value: -30 },
+ { key: "data.characteristics.ws.modifier", mode: 2, value: -30 },
+ { key: "data.characteristics.int.modifier", mode: 2, value: -30 },
+ { key: "data.characteristics.dex.modifier", mode: 2, value: -30 },
+ ]
+ },
+ "stinkingdrunk1": {
+ label: "Courage du Marienbourgeois",
+ icon: "",
+ flags: {
wfrp4e: {
- "effectTrigger": "prefillDialog",
- "effectApplication": "actor",
- "script": `
+ "effectTrigger": "prefillDialog",
+ "effectApplication": "actor",
+ "script": `
if (args.type=="skill" && args.item.name=="Calme")
- args.prefillModifiers.modifier += 20`
+ args.prefillModifiers.modifier += 20`
}
+ }
}
- }
- }
+ }
- game.wfrp4e.config.systemItems = {
- reload : {
- type: "extendedTest",
- name: "",
- data: {
+ game.wfrp4e.config.systemItems = {
+ reload: {
+ type: "extendedTest",
+ name: "",
+ data: {
SL: {
},
test: {
- value: ""
+ value: ""
},
completion: {
- value: "remove"
+ value: "remove"
}
- },
- flags: {
+ },
+ flags: {
wfrp4e: {
- reloading: ""
+ reloading: ""
}
- }
- },
- improv : {
+ }
+ },
+ improv: {
name: "Arme improvisée",
type: "weapon",
- effects : [],
+ effects: [],
data: {
damage: { value: "SB + 1" },
reach: { value: "personal" },
weaponGroup: { value: "basic" },
twohanded: { value: false },
qualities: { value: "" },
- flaws: { value: [{name : "undamaging"}] },
+ flaws: { value: [{ name: "undamaging" }] },
special: { value: "" },
range: { value: "" },
ammunitionGroup: { value: "" },
offhand: { value: false },
}
- },
- stomp : {
- name: "Piétiner",
- type: "trait",
- effects : [],
+ },
+ stomp: {
+ name: "Piétiner",
+ type: "trait",
+ effects: [],
data: {
specification: { value: "4" },
- rollable: { value: true, rollCharacteristic: "ws", bonusCharacteristic: "s", defaultDifficulty: "challenging", damage : true },
- }
- },
- unarmed : {
+ rollable: { value: true, rollCharacteristic: "ws", bonusCharacteristic: "s", defaultDifficulty: "challenging", damage: true },
+ }
+ },
+ unarmed: {
name: "Désarmé",
type: "weapon",
- effects : [],
+ effects: [],
data: {
damage: { value: "SB + 0" },
reach: { value: "personal" },
weaponGroup: { value: "brawling" },
twohanded: { value: false },
qualities: { value: "" },
- flaws: { value: [{name : "undamaging"}] },
+ flaws: { value: [{ name: "undamaging" }] },
special: { value: "" },
range: { value: "" },
ammunitionGroup: { value: "" },
offhand: { value: false },
}
- },
+ },
- fear : {
- name : "Peur",
- type : "extendedTest",
- data : {
- completion:{value: 'remove'},
- description:{type: 'String', label: 'Description', value: ''},
- failingDecreases:{value: true},
- gmdescription:{type: 'String', label: 'Description', value: ''},
+ fear: {
+ name: "Peur",
+ type: "extendedTest",
+ data: {
+ completion: { value: 'remove' },
+ description: { type: 'String', label: 'Description', value: '' },
+ failingDecreases: { value: true },
+ gmdescription: { type: 'String', label: 'Description', value: '' },
hide: { test: false, progress: false },
negativePossible: { value: false },
SL: { current: 0, target: 1 },
test: { value: 'Calme' }
- },
- effects:
+ },
+ effects:
[{
- label: "Peur",
- icon: "systems/wfrp4e/icons/conditions/fear.png",
- transfer: true,
- flags: {
- core : {
- statusId : "fear"
- },
- wfrp4e: {
- "effectTrigger": "dialogChoice",
- "effectData": {
- "description": "Tests affectés",
- "slBonus": "-1"
- },
- "script": `
+ label: "Peur",
+ icon: "systems/wfrp4e/icons/conditions/fear.png",
+ transfer: true,
+ flags: {
+ core: {
+ statusId: "fear"
+ },
+ wfrp4e: {
+ "effectTrigger": "dialogChoice",
+ "effectData": {
+ "description": "Tests affectés",
+ "slBonus": "-1"
+ },
+ "script": `
if (this.flags.wfrp4e.fearName)
this.flags.wfrp4e.effectData.description += " " + this.flags.wfrp4e.fearName
else
this.flags.wfrp4e.effectData.description += " the source of fear"
`}
- }
+ }
}
]
- },
+ },
- terror: {
+ terror: {
- label: "Terreur",
- icon: "systems/wfrp4e/icons/conditions/terror.png",
- transfer: true,
- flags: {
+ label: "Terreur",
+ icon: "systems/wfrp4e/icons/conditions/terror.png",
+ transfer: true,
+ flags: {
wfrp4e: {
- "effectTrigger": "oneTime",
- "effectApplication": "actor",
- "terrorValue": 1,
- "script": `
+ "effectTrigger": "oneTime",
+ "effectApplication": "actor",
+ "terrorValue": 1,
+ "script": `
args.actor.setupSkill("Calme").then(setupData =>{
args.actor.basicTest(setupData).then(test => {
if (test.result.outcome == "failure")
@@ -961,21 +1110,21 @@ export class WH4FRPatchConfig {
})
})`
}
+ }
}
- }
-}
+ }
- game.wfrp4e.config.symptomEffects = {
+ game.wfrp4e.config.symptomEffects = {
"blight": {
- label: "Toxine",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "invoke",
- "symptom" : true,
- "script": `
+ label: "Toxine",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "invoke",
+ "symptom": true,
+ "script": `
let difficulty = ""
if (this.effect.label.includes("Modéré"))
difficulty = "easy"
@@ -994,19 +1143,19 @@ export class WH4FRPatchConfig {
})
})
}`
- }
}
+ }
},
"buboes": {
- label: "Bubons",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "prefillDialog",
- "symptom": true,
- "script": `
+ label: "Bubons",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "prefillDialog",
+ "symptom": true,
+ "script": `
let applicableCharacteristics = ["ws", "bs", "s", "fel", "ag", "t", "dex"]
if (args.type == "weapon")
args.prefillModifiers.modifier -= 10
@@ -1021,18 +1170,18 @@ export class WH4FRPatchConfig {
args.prefillModifiers.modifier -= 10
}
`}
- }
+ }
},
"convulsions": {
- label: "Convulsions",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "prefillDialog",
- "symptom" : true,
- "script": `
+ label: "Convulsions",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "prefillDialog",
+ "symptom": true,
+ "script": `
let modifier = 0
if (this.effect.label.includes("Modéré"))
modifier = -20
@@ -1053,19 +1202,19 @@ export class WH4FRPatchConfig {
args.prefillModifiers.modifier += modifier
}
}`
- }
}
+ }
},
"fever": {
- label: "Fièvre",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "prefillDialog",
- "symptom" : true,
- "script": `
+ label: "Fièvre",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "prefillDialog",
+ "symptom": true,
+ "script": `
let applicableCharacteristics = ["ws", "bs", "s", "fel", "ag", "t", "dex"]
@@ -1081,50 +1230,50 @@ export class WH4FRPatchConfig {
if (applicableCharacteristics.includes(args.item.characteristic.value))
args.prefillModifiers.modifier -= 10
}`,
- "otherEffects" : ["blight", "wounded"]
- }
+ "otherEffects": ["blight", "wounded"]
}
+ }
},
"flux": {
- label: "Intoxication Alimentaire",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "symptom" : true
- }
+ label: "Intoxication Alimentaire",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "symptom": true
}
+ }
},
"lingering": {
- label: "Persistant",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "symptom" : true
- }
+ label: "Persistant",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "symptom": true
}
+ }
},
"coughsAndSneezes": {
- label: "Toux et éternuements",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "symptom" : true
- }
+ label: "Toux et éternuements",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "symptom": true
}
+ }
},
"gangrene": {
- label: "Gangrène",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "prefillDialog",
- "symptom" : true,
- "script": `
+ label: "Gangrène",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "prefillDialog",
+ "symptom": true,
+ "script": `
if (args.type == "characteristic" && args.item == "fel")
{
if (args.item == "fel")
@@ -1136,19 +1285,19 @@ export class WH4FRPatchConfig {
args.prefillModifiers.modifier -= 10
}
}`
- }
}
+ }
},
"malaise": {
- label: "Malaise",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "prepareData",
- "symptom" : true,
- "script": `
+ label: "Malaise",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "prepareData",
+ "symptom": true,
+ "script": `
if (game.user.isUniqueGM)
{
let fatigued = args.actor.hasCondition("fatigued")
@@ -1159,19 +1308,19 @@ export class WH4FRPatchConfig {
}
}
`
- }
}
+ }
},
"nausea": {
- label: "Nausée",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "rollTest",
- "symptom" : true,
- "script": `
+ label: "Nausée",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "rollTest",
+ "symptom": true,
+ "script": `
if (this.actor.isOwner && args.test.result.outcome == "failure")
{
let applicableCharacteristics = ["ws", "bs", "s", "fel", "ag", "t", "dex"]
@@ -1184,19 +1333,19 @@ export class WH4FRPatchConfig {
}
`
- }
}
+ }
},
"pox": {
- label: "Démangeaisons",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "prefillDialog",
- "symptom" : true,
- "script": `
+ label: "Démangeaisons",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "prefillDialog",
+ "symptom": true,
+ "script": `
if (args.type == "characteristic" && args.item == "fel")
args.prefillModifiers.modifier -= 10
@@ -1206,19 +1355,19 @@ export class WH4FRPatchConfig {
args.prefillModifiers.modifier -= 10
}
}`
- }
}
+ }
},
"wounded": {
- label: "Blessé",
- icon: "modules/wfrp4e-core/icons/diseases/disease.png",
- transfer: true,
- flags: {
- wfrp4e: {
- "effectApplication": "actor",
- "effectTrigger": "invoke",
- "symptom" : true,
- "script": `
+ label: "Blessé",
+ icon: "modules/wfrp4e-core/icons/diseases/disease.png",
+ transfer: true,
+ flags: {
+ wfrp4e: {
+ "effectApplication": "actor",
+ "effectTrigger": "invoke",
+ "symptom": true,
+ "script": `
if (args.actor.isOwner)
{
args.actor.setupSkill("Résistance", {absolute: {difficulty : "average"}}).then(setupData => {
@@ -1231,80 +1380,80 @@ export class WH4FRPatchConfig {
})
})
}`
- }
}
+ }
}
}
game.wfrp4e.config.effectApplication = {
- "actor" : "Acteur",
- "equipped" : "Lorsque l'item est équipé",
- "apply" : "Apliqué lorsqu'une cible est présente",
- "damage" : "Apliqué lorsqu'un Item fait des dégâts",
+ "actor": "Acteur",
+ "equipped": "Lorsque l'item est équipé",
+ "apply": "Apliqué lorsqu'une cible est présente",
+ "damage": "Apliqué lorsqu'un Item fait des dégâts",
}
game.wfrp4e.config.applyScope = {
- "actor" : "Acteur",
- "item" : "Item"
+ "actor": "Acteur",
+ "item": "Item"
}
game.wfrp4e.config.effectTriggers = {
- "invoke" : "Appliqué manuellement",
- "oneTime" : "Immediat",
- "dialogChoice" : "Choix par un Dialogue",
- "prefillDialog" : "Dialogue pré-remplie",
- "prePrepareData" : "Pré-Préparation des données",
- "prePrepareItems" : "Pré-préparation des Items d'Acteurs",
- "prepareData" : "Préparation des données",
- "preWoundCalc" : "Avant le calcul des Blessures",
- "woundCalc" : "Calcul des Blessures",
- "preApplyDamage" : "Avant l'application des Dégâts",
- "applyDamage" : "Application des Dégâts",
- "preTakeDamage" : "Avant de prendre les Dégâts",
- "takeDamage" : "Prise des Dégâts",
- "preApplyCondition" : "Avant l'application d'un Etat",
- "applyCondition" : "Application d'Etat",
- "prePrepareItem" : "Avant la préparation d'un Item",
- "prepareItem" : "Préparation d'Item",
- "preRollTest" : "Avant le lancement du Test",
- "preRollWeaponTest" : "Avant le lancement d'un Test d'Arme",
- "preRollCastTest" : "Avant le lancement d'un Test d'Incantation",
- "preChannellingTest" : "Avant le lancement d'un Test de Focalisation",
- "preRollPrayerTest" : "Avant le lancement d'un Test de Prière",
- "preRollTraitTest" : "Avant le lancement d'un Test de Trait",
- "rollTest" : "Lancement du Test",
- "rollIncomeTest" : "Lancement d'un Test de Revenu",
- "rollWeaponTest" : "Lancement d'un Test d'Arme",
- "rollCastTest" : "Lancement d'un Test d'Incantation",
- "rollChannellingTest" : "Lancement d'un Test de Focalisation",
- "rollPrayerTest" : "Lancement d'un Test de Prière",
- "rollTraitTest" : "Lancement d'un Test de Trait",
- "preOpposedAttacker" : "Avant l'opposition de l'Attaquant",
- "preOpposedDefender" : "Avant l'opposition du Défenseur",
- "opposedAttacker" : "Opposition de l'Attaquant",
- "opposedDefender" : "Opposition du Défenseur",
- "calculateOpposedDamage" : "Calcul des Dếgats suite au Test Opposé",
- "targetPrefillDialog" : "Pré-remplir le dialogue de la cible",
- "getInitiativeFormula" : "Initiative",
- "endTurn" : "Fin du Tour",
- "endRound" : "Fin du Round",
- "endCombat" : "Fin du Combat"
+ "invoke": "Appliqué manuellement",
+ "oneTime": "Immediat",
+ "dialogChoice": "Choix par un Dialogue",
+ "prefillDialog": "Dialogue pré-remplie",
+ "prePrepareData": "Pré-Préparation des données",
+ "prePrepareItems": "Pré-préparation des Items d'Acteurs",
+ "prepareData": "Préparation des données",
+ "preWoundCalc": "Avant le calcul des Blessures",
+ "woundCalc": "Calcul des Blessures",
+ "preApplyDamage": "Avant l'application des Dégâts",
+ "applyDamage": "Application des Dégâts",
+ "preTakeDamage": "Avant de prendre les Dégâts",
+ "takeDamage": "Prise des Dégâts",
+ "preApplyCondition": "Avant l'application d'un Etat",
+ "applyCondition": "Application d'Etat",
+ "prePrepareItem": "Avant la préparation d'un Item",
+ "prepareItem": "Préparation d'Item",
+ "preRollTest": "Avant le lancement du Test",
+ "preRollWeaponTest": "Avant le lancement d'un Test d'Arme",
+ "preRollCastTest": "Avant le lancement d'un Test d'Incantation",
+ "preChannellingTest": "Avant le lancement d'un Test de Focalisation",
+ "preRollPrayerTest": "Avant le lancement d'un Test de Prière",
+ "preRollTraitTest": "Avant le lancement d'un Test de Trait",
+ "rollTest": "Lancement du Test",
+ "rollIncomeTest": "Lancement d'un Test de Revenu",
+ "rollWeaponTest": "Lancement d'un Test d'Arme",
+ "rollCastTest": "Lancement d'un Test d'Incantation",
+ "rollChannellingTest": "Lancement d'un Test de Focalisation",
+ "rollPrayerTest": "Lancement d'un Test de Prière",
+ "rollTraitTest": "Lancement d'un Test de Trait",
+ "preOpposedAttacker": "Avant l'opposition de l'Attaquant",
+ "preOpposedDefender": "Avant l'opposition du Défenseur",
+ "opposedAttacker": "Opposition de l'Attaquant",
+ "opposedDefender": "Opposition du Défenseur",
+ "calculateOpposedDamage": "Calcul des Dếgats suite au Test Opposé",
+ "targetPrefillDialog": "Pré-remplir le dialogue de la cible",
+ "getInitiativeFormula": "Initiative",
+ "endTurn": "Fin du Tour",
+ "endRound": "Fin du Round",
+ "endCombat": "Fin du Combat"
}
game.wfrp4e.config.effectPlaceholder = {
- "invoke" :
- `Cet effet est uniquement appliqué lorsque le bouton "Appliquer" est cliqué.
+ "invoke":
+ `Cet effet est uniquement appliqué lorsque le bouton "Appliquer" est cliqué.
args:
none`,
- "oneTime" :
- `Cet effet s'applique une seule fois, lorsqu'il s'applique.
+ "oneTime":
+ `Cet effet s'applique une seule fois, lorsqu'il s'applique.
args:
actor : l'acteur qui possède l'effet
`,
- "prefillDialog" :
- `Cet effet s'applique avant d'afficher la fenêtre de Lancer et est destiné à changer les valeurs pré-chargées dans la section des bonus/malus.
+ "prefillDialog":
+ `Cet effet s'applique avant d'afficher la fenêtre de Lancer et est destiné à changer les valeurs pré-chargées dans la section des bonus/malus.
args:
prefillModifiers : {modifier, difficulty, slBonus, successBonus}
@@ -1315,29 +1464,29 @@ export class WH4FRPatchConfig {
Exemple:
if (args.type == "skill" && args.item.name == "Atléthisme") args.prefillModifiers.modifier += 10`,
- "prePrepareData" :
- `Cet effet est appliqué avant le calcul des paramètres et données de l'acteur.
+ "prePrepareData":
+ `Cet effet est appliqué avant le calcul des paramètres et données de l'acteur.
args:
actor : actor who owns the effect
`,
- "prePrepareItems" :
- `Cet effet est appliqué avant que les Items soient triés et traités.
+ "prePrepareItems":
+ `Cet effet est appliqué avant que les Items soient triés et traités.
actor : l'acteur qui possède l'effet
`,
- "prepareData" :
- `Cet effet est appliqué avant le calcul des paramètres et données de l'acteur.
+ "prepareData":
+ `Cet effet est appliqué avant le calcul des paramètres et données de l'acteur.
args:
actor : l'acteur qui possède l'effet
`,
- "preWoundCalc" :
- `Cet effet est apliqué juste avant le calcul des blessures, idéal pour échanger des caractéristiues ou ajouter des multiplicateurs.
+ "preWoundCalc":
+ `Cet effet est apliqué juste avant le calcul des blessures, idéal pour échanger des caractéristiues ou ajouter des multiplicateurs.
actor : l'acteur qui possède l'effet
sb : Bonus de Force
@@ -1352,8 +1501,8 @@ export class WH4FRPatchConfig {
e.g. pour Dur à Cuire: "args.multiplier.tb += 1"
`,
- "woundCalc" :
- `Cet effet s'applique après le calcul des Blessures, idéal pour mutiplier le résultat.
+ "woundCalc":
+ `Cet effet s'applique après le calcul des Blessures, idéal pour mutiplier le résultat.
args:
@@ -1363,8 +1512,8 @@ export class WH4FRPatchConfig {
e.g. pour Nuée: "wounds *= 5"
`,
- "preApplyDamage" :
- `Cet effet s'applique avant d'appliquer les dégats durant un Test Opposé
+ "preApplyDamage":
+ `Cet effet s'applique avant d'appliquer les dégats durant un Test Opposé
args:
@@ -1373,8 +1522,8 @@ export class WH4FRPatchConfig {
opposedTest : l'objet qui détaille le Test Opposé
damageType : le type de dégâts sélectionné (ignorer le Bonus d'Endurance, les PA, etc...)
`,
- "applyDamage" :
- `Cet effet s'applique après que les dégâts aient été calculés lors d'un Test Opposé, mais avant que les dêgats soient appliqués sur l'acteur.
+ "applyDamage":
+ `Cet effet s'applique après que les dégâts aient été calculés lors d'un Test Opposé, mais avant que les dêgats soient appliqués sur l'acteur.
args:
@@ -1388,8 +1537,8 @@ export class WH4FRPatchConfig {
messageElements : un tableau de chaîne de caractères listant comment et pourquoi les dommages ont été modifiés
`,
- "preTakeDamage" :
- `Cet effet s'applique avant d'encaisser les dommages d'un Test Opposé
+ "preTakeDamage":
+ `Cet effet s'applique avant d'encaisser les dommages d'un Test Opposé
args:
@@ -1398,9 +1547,9 @@ export class WH4FRPatchConfig {
opposedTest : l'objet qui détaille le Test Opposé
damageType : le type de dégâts sélectionné (ignorer le Bonus d'Endurance, les PA, etc...)
`,
-
- "takeDamage" :
- `Cet effet s'applique après le calcul des dommages d'un Test Opposé, mais avant que l'acteur ne les encaisse.
+
+ "takeDamage":
+ `Cet effet s'applique après le calcul des dommages d'un Test Opposé, mais avant que l'acteur ne les encaisse.
args:
@@ -1414,8 +1563,8 @@ export class WH4FRPatchConfig {
messageElements : un tableau de chaîne de caractères listant comment et pourquoi les dommages ont été modifiés
`,
- "preApplyCondition" :
- `Cet effet s'applique avant qu'un état ne s'applique.
+ "preApplyCondition":
+ `Cet effet s'applique avant qu'un état ne s'applique.
args:
@@ -1426,8 +1575,8 @@ export class WH4FRPatchConfig {
}
`,
- "applyCondition" :
- `Cette effet s'applique après que les effets d'un état aient été appliqués.
+ "applyCondition":
+ `Cette effet s'applique après que les effets d'un état aient été appliqués.
args:
@@ -1437,30 +1586,30 @@ export class WH4FRPatchConfig {
}
`,
- "prePrepareItem" :
- `Cet effet est appliqué avant qu'un item soit traité lors de la phase de clacul des données d'acteur.
+ "prePrepareItem":
+ `Cet effet est appliqué avant qu'un item soit traité lors de la phase de clacul des données d'acteur.
args:
item : l'item à traité
`,
- "prepareItem" :
- `Cet effet est appliqué après qu'un item soit traité lors de la phase de clacul des données d'acteur.
+ "prepareItem":
+ `Cet effet est appliqué après qu'un item soit traité lors de la phase de clacul des données d'acteur.
args:
item : l'item traité
`,
- "preRollTest":
- `Cet effet est appliqué avant qu'un Test sois calculé.
+ "preRollTest":
+ `Cet effet est appliqué avant qu'un Test sois calculé.
args:
test: Toutes les donnnées pour évaluer le résultat du test
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "preRollWeaponTest" :
- `Cett effet s'applique avant que le résultat du test d'arme soit calculé.
+ "preRollWeaponTest":
+ `Cett effet s'applique avant que le résultat du test d'arme soit calculé.
args:
@@ -1468,8 +1617,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "preRollCastTest" :
- `Cet effet est appliqué avant que le test d'Incantation soit calculé.
+ "preRollCastTest":
+ `Cet effet est appliqué avant que le test d'Incantation soit calculé.
args:
@@ -1477,8 +1626,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "preChannellingTest" :
- `Cet effet s'applique avant que le Test de Focalisation soit calculé.
+ "preChannellingTest":
+ `Cet effet s'applique avant que le Test de Focalisation soit calculé.
args:
@@ -1486,8 +1635,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "preRollPrayerTest" :
- `Cet effet est appliqué avant qu'un Test de Prière soit appliqué.
+ "preRollPrayerTest":
+ `Cet effet est appliqué avant qu'un Test de Prière soit appliqué.
args:
@@ -1495,8 +1644,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "preRollTraitTest" :
- `Cet effet s'applique avant qu'un Trait soit calculé.
+ "preRollTraitTest":
+ `Cet effet s'applique avant qu'un Trait soit calculé.
args:
@@ -1504,16 +1653,16 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "rollTest" :
- `Cet effet s'applique après qu'un Test sois calculé.
+ "rollTest":
+ `Cet effet s'applique après qu'un Test sois calculé.
args:
test: Toutes les donnnées pour évaluer le résultat du test
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "rollIncomeTest" :
- `Cet effet s'applique après qu'un test de revenu soit effectué.
+ "rollIncomeTest":
+ `Cet effet s'applique après qu'un test de revenu soit effectué.
args:
@@ -1521,8 +1670,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "rollWeaponTest" :
- `Cet effet s'applique après qu'un Test d'Arme soit calculé.
+ "rollWeaponTest":
+ `Cet effet s'applique après qu'un Test d'Arme soit calculé.
args:
@@ -1530,8 +1679,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "rollCastTest" :
- `Cet effet s'applique après le calcul du Test d'Incantation.
+ "rollCastTest":
+ `Cet effet s'applique après le calcul du Test d'Incantation.
args:
@@ -1539,8 +1688,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "rollChannellingTest" :
- `Cet effet s'applique après le calcul du Test de Focalisation.
+ "rollChannellingTest":
+ `Cet effet s'applique après le calcul du Test de Focalisation.
args:
@@ -1548,8 +1697,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "rollPrayerTest" :
- `Cet effet s'applique après le calcul du Test de Prière.
+ "rollPrayerTest":
+ `Cet effet s'applique après le calcul du Test de Prière.
args:
@@ -1557,8 +1706,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "rollTraitTest" :
- `Cet effet s'applique après le calcul du Test de Trait.
+ "rollTraitTest":
+ `Cet effet s'applique après le calcul du Test de Trait.
args:
@@ -1566,8 +1715,8 @@ export class WH4FRPatchConfig {
cardOptions: Les données pour l'affichage dans le Tchat (titre, template, etc)
`,
- "preOpposedAttacker" :
- `Cet effet s'applique avant le calcul du résultat d'un Test Opposé, en tant qu'attaquant.
+ "preOpposedAttacker":
+ `Cet effet s'applique avant le calcul du résultat d'un Test Opposé, en tant qu'attaquant.
args:
@@ -1575,8 +1724,8 @@ export class WH4FRPatchConfig {
defenderTest: le résultat du test du défenseur
opposedTest.result: l'objet opposedTest.result, avant calcul
`,
- "preOpposedDefender" :
- `Cet effet s'applique avant le calcul du résultat d'un Test Opposé, en tant que défenseur.
+ "preOpposedDefender":
+ `Cet effet s'applique avant le calcul du résultat d'un Test Opposé, en tant que défenseur.
args:
@@ -1585,8 +1734,8 @@ export class WH4FRPatchConfig {
opposedTest.result: l'objet opposedTest.result, avant calcul
`,
- "opposedAttacker" :
- `Cet effet s'applique après le calcul du résultat d'un Test Opposé, en tant qu'attaquant.
+ "opposedAttacker":
+ `Cet effet s'applique après le calcul du résultat d'un Test Opposé, en tant qu'attaquant.
args:
@@ -1595,8 +1744,8 @@ export class WH4FRPatchConfig {
opposedTest.result: l'objet opposedTest.result, avant calcul
`,
- "opposedDefender" :
- `Cet effet s'applique après le calcul du résultat d'un Test Opposé, en tant que défenseur.
+ "opposedDefender":
+ `Cet effet s'applique après le calcul du résultat d'un Test Opposé, en tant que défenseur.
args:
@@ -1605,8 +1754,8 @@ export class WH4FRPatchConfig {
opposedTest.result: l'objet opposedTest.result, avant calcul
`,
- "calculateOpposedDamage" :
- `Cet effet s'applique durant les calculs de dégâts d'un Test Opposé. Cet effect est effectué dans le contexte de l'acteur attaquant.
+ "calculateOpposedDamage":
+ `Cet effet s'applique durant les calculs de dégâts d'un Test Opposé. Cet effect est effectué dans le contexte de l'acteur attaquant.
args:
@@ -1616,16 +1765,16 @@ export class WH4FRPatchConfig {
opposedTest.result: détail à propos du Test Opposé
`,
- "getInitiativeFormula" :
- `Cet effect s'applque lors de la détermination de l'initiative.
+ "getInitiativeFormula":
+ `Cet effect s'applque lors de la détermination de l'initiative.
args:
initiative: Valeur d'intiative calculée
`,
- "targetPrefillDialog" :
- `Cet effet est appliqué sur un autre acteur, même si la cible initiale est un acteur, et est destiné à changer les valeurs pré-remplies dans la section des bonus/malus
+ "targetPrefillDialog":
+ `Cet effet est appliqué sur un autre acteur, même si la cible initiale est un acteur, et est destiné à changer les valeurs pré-remplies dans la section des bonus/malus
args:
prefillModifiers : {modifier, difficulty, slBonus, successBonus}
@@ -1636,31 +1785,31 @@ export class WH4FRPatchConfig {
Example:
if (args.type == "skill" && args.item.name == "Atléthisme") args.prefillModifiers.modifier += 10`,
- "endTurn" :
- `Cet effet s'applique à la fin du tour de l'acteur
+ "endTurn":
+ `Cet effet s'applique à la fin du tour de l'acteur
args:
combat: combat actuel
`,
- "endRound" :
- `Cet effet s'execute à la fin du round.
+ "endRound":
+ `Cet effet s'execute à la fin du round.
args:
combat: combat actuel
`,
- "endCombat" :
- `Cet effet s'applique lorsque le combat se termine
+ "endCombat":
+ `Cet effet s'applique lorsque le combat se termine
args:
combat: combat actuel
`,
- "this" :
- `
+ "this":
+ `
Tout les effets ont accès à :
this.actor : l'acteur executant l'effet
@@ -1670,44 +1819,44 @@ export class WH4FRPatchConfig {
}
}
- /************************************************************************************/
- static perform_ogrekingdom_patch () {
+ /************************************************************************************/
+ static perform_ogrekingdom_patch() {
WFRP4E.speciesSkills["ogre"] = [
- "Résistance à l'alcool",
- "Calme",
- "Résistance",
- "Pari",
- "Intimidation",
- "Langue (Au choix)",
- "Langue (Grumbarth)",
- "Langue (Mootland)",
- "Savoir (Ogres)",
- "Corps à corps (Base)",
- "Corps à corps (Bagarre)",
- "Métier (Cuisiner)",
+ "Résistance à l'alcool",
+ "Calme",
+ "Résistance",
+ "Pari",
+ "Intimidation",
+ "Langue (Au choix)",
+ "Langue (Grumbarth)",
+ "Langue (Mootland)",
+ "Savoir (Ogres)",
+ "Corps à corps (Base)",
+ "Corps à corps (Bagarre)",
+ "Métier (Cuisiner)",
]
WFRP4E.speciesTalents["ogre"] = [
- "Sens aiguisé (Odorat), Sens aiguisé (Goût)",
- "Résistance (Mutation), Obstiné",
- "Vision nocturne",
- "Très résistant, Très fort",
- "Seconde vue, Sixième sens",
- "Trait - Morsure",
- "Trait - Taille (Grande)",
- "Psychologie - Faim d'Ogre",
- "Psychologie - Met favori (Cible)",
- "Trait de tribu d'ogre (Au choix)",
- 0
- ]
+ "Sens aiguisé (Odorat), Sens aiguisé (Goût)",
+ "Résistance (Mutation), Obstiné",
+ "Vision nocturne",
+ "Très résistant, Très fort",
+ "Seconde vue, Sixième sens",
+ "Trait - Morsure",
+ "Trait - Taille (Grande)",
+ "Psychologie - Faim d'Ogre",
+ "Psychologie - Met favori (Cible)",
+ "Trait de tribu d'ogre (Au choix)",
+ 0
+ ]
}
- /************************************************************************************/
+ /************************************************************************************/
static perform_rnhd_patch() {
- game.wfrp4e.config.species['gnome'] = 'Gnome';
- game.wfrp4e.config.speciesSkills["gnome"] = [
+ game.wfrp4e.config.species['gnome'] = 'Gnome';
+ game.wfrp4e.config.speciesSkills["gnome"] = [
"Focalisation (Ulgu)",
"Charme",
"Résistance à l'alcool",
diff --git a/tables/career.json b/tables/career.json
index a57de49..edc428a 100644
--- a/tables/career.json
+++ b/tables/career.json
@@ -1,650 +1,2579 @@
{
- "name": "Carrières alétoires",
- "columns": ["human-reiklander", "dwarf", "halfling", "helf", "welf", "gnome"],
+ "name": "Carrières aléatoires",
+ "die": "1d100",
"rows": [
{
- "range":{
- "human-reiklander" : [1, 1],
- "dwarf" : [1, 1],
- "halfling" : [1, 1],
- "helf" : [1, 2],
- "welf" : [],
- "gnome" : [1, 1]
+ "range": {
+ "human-reiklander": [
+ 1,
+ 1
+ ],
+ "dwarf": [
+ 1,
+ 1
+ ],
+ "halfling": [
+ 1,
+ 1
+ ],
+ "helf": [
+ 1,
+ 2
+ ],
+ "welf": [],
+ "gnome": [
+ 1,
+ 1
+ ]
},
- "name": "Apothicaire"
+ "human-reiklander": {
+ "name": "Apothicaire"
+ },
+ "dwarf": {
+ "name": "Apothicaire"
+ },
+ "halfling": {
+ "name": "Apothicaire"
+ },
+ "helf": {
+ "name": "Apothicaire"
+ },
+ "welf": {
+ "name": "Apothicaire"
+ },
+ "gnome": {
+ "name": "Apothicaire"
+ }
},
{
- "range":{
- "human-reiklander" : [2, 2],
- "dwarf" : [2, 4],
- "halfling" : [2, 2],
- "helf" : [],
- "welf" : [],
- "gnome" : []
+ "range": {
+ "human-reiklander": [
+ 2,
+ 2
+ ],
+ "dwarf": [
+ 2,
+ 4
+ ],
+ "halfling": [
+ 2,
+ 2
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": []
},
- "name": "Ingénieur"
- }, {
- "range":{
- "human-reiklander" : [3, 3],
- "dwarf" : [5, 6],
- "halfling" : [3, 4],
- "helf" : [3, 6],
- "welf" : [],
- "gnome" : [2,2]
+ "human-reiklander": {
+ "name": "Ingénieur"
},
- "name": "Juriste"
- }, {
- "range":{
- "human-reiklander" : [4, 5],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : []
+ "dwarf": {
+ "name": "Ingénieur"
},
- "name": "Nonne"
- }, {
- "range":{
- "human-reiklander" : [6, 6],
- "dwarf" : [7, 7],
- "halfling" : [5, 6],
- "helf" : [7, 8],
- "welf" : [],
- "gnome" : [3,4]
+ "halfling": {
+ "name": "Ingénieur"
},
- "name": "Médecin"
- }, {
- "range":{
- "human-reiklander" : [7, 11],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : [5,5]
+ "helf": {
+ "name": "Ingénieur"
},
- "name": "Prêtre"
- }, {
- "range":{
- "human-reiklander" : [12, 13],
- "dwarf" : [8, 9],
- "halfling" : [7, 8],
- "helf" : [9, 12],
- "welf" : [1, 1],
- "gnome" : [6,7]
+ "welf": {
+ "name": "Ingénieur"
},
- "name": "Erudit"
- }, {
- "range":{
- "human-reiklander" : [14, 14],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [13, 16],
- "welf" : [2, 5],
- "gnome" : [8, 14]
- },
- "name": "Sorcier"
- }, {
- "range":{
- "human-reiklander" : [15, 15],
- "dwarf" : [10, 11],
- "halfling" : [9, 10],
- "helf" : [],
- "welf" : [],
- "gnome" : [15,15]
- },
- "name": "Agitateur"
- }, {
- "range":{
- "human-reiklander" : [16, 17],
- "dwarf" : [12, 17],
- "halfling" : [11, 15],
- "helf" : [17, 19],
- "welf" : [6, 10],
- "gnome" : [16,17]
- },
- "name": "Artisan"
- }, {
- "range":{
- "human-reiklander" : [18, 19],
- "dwarf" : [18],
- "halfling" : [16, 19],
- "helf" : [],
- "welf" : [],
- "gnome" : [18,18]
- },
- "name": "Mendiant"
- }, {
- "range":{
- "human-reiklander" : [20, 20],
- "dwarf" : [19, 20],
- "halfling" : [20, 21],
- "helf" : [20, 21],
- "welf" : [],
- "gnome" : [19,19]
- },
- "name": "Enquêteur"
- }, {
- "range":{
- "human-reiklander" : [21, 21],
- "dwarf" : [21, 24],
- "halfling" : [22, 25],
- "helf" : [22, 26],
- "welf" : [],
- "gnome" : [20,21]
- },
- "name": "Marchand"
- }, {
- "range":{
- "human-reiklander" : [22, 23],
- "dwarf" : [25, 25],
- "halfling" : [26, 28],
- "helf" : [],
- "welf" : [],
- "gnome" : [22,22]
- },
- "name": "Ratier"
- }, {
- "range":{
- "human-reiklander" : [24, 26],
- "dwarf" : [26, 31],
- "halfling" : [29, 31],
- "helf" : [27, 28],
- "welf" : [],
- "gnome" : [23,28]
- },
- "name": "Bourgeois"
- }, {
- "range":{
- "human-reiklander" : [27, 27],
- "dwarf" : [32, 34],
- "halfling" : [32, 33],
- "helf" : [29, 29],
- "welf" : [],
- "gnome" : [29,29]
- },
- "name": "Milicien"
- }, {
- "range":{
- "human-reiklander" : [28, 28],
- "dwarf" : [35, 36],
- "halfling" : [34, 34],
- "helf" : [30, 31],
- "welf" : [11, 14],
- "gnome" : [30,30]
- },
- "name": "Conseiller"
- }, {
- "range":{
- "human-reiklander" : [29, 29],
- "dwarf" : [37, 37],
- "halfling" : [35, 36],
- "helf" : [32, 32],
- "welf" : [15, 18],
- "gnome" : [31,31]
- },
- "name": "Artiste"
- }, {
- "range":{
- "human-reiklander" : [30, 30],
- "dwarf" : [38, 38],
- "halfling" : [],
- "helf" : [33, 34],
- "welf" : [],
- "gnome" : []
- },
- "name": "Duelliste"
- }, {
- "range":{
- "human-reiklander" : [31, 31],
- "dwarf" : [39, 40],
- "halfling" : [37, 37],
- "helf" : [35, 37],
- "welf" : [19, 25],
- "gnome" : [32,32]
- },
- "name": "Emissaire"
- }, {
- "range":{
- "human-reiklander" : [32, 32],
- "dwarf" : [41, 41],
- "halfling" : [],
- "helf" : [38, 40],
- "welf" : [26, 31],
- "gnome" : [33,33]
- },
- "name": "Noble"
+ "gnome": {
+ "name": "Ingénieur"
+ }
},
{
- "range":{
- "human-reiklander" : [33, 35],
- "dwarf" : [42, 42],
- "halfling" : [38, 43],
- "helf" : [],
- "welf" : [],
- "gnome" : [34,35]
+ "range": {
+ "human-reiklander": [
+ 3,
+ 3
+ ],
+ "dwarf": [
+ 5,
+ 6
+ ],
+ "halfling": [
+ 3,
+ 4
+ ],
+ "helf": [
+ 3,
+ 6
+ ],
+ "welf": [],
+ "gnome": [
+ 2,
+ 2
+ ]
},
- "name": "Serviteur"
- },{
- "range":{
- "human-reiklander" : [36, 36],
- "dwarf" : [43, 43],
- "halfling" : [44, 44],
- "helf" : [41, 43],
- "welf" : [32, 35],
- "gnome" : [36,40]
+ "human-reiklander": {
+ "name": "Juriste"
},
- "name": "Espion"
- },{
- "range":{
- "human-reiklander" : [37, 37],
- "dwarf" : [44, 45],
- "halfling" : [45, 46],
- "helf" : [44, 45],
- "welf" : [],
- "gnome" : [41,42]
+ "dwarf": {
+ "name": "Juriste"
},
- "name": "Intendant"
- },{
- "range":{
- "human-reiklander" : [38, 38],
- "dwarf" : [46, 47],
- "halfling" : [47, 47],
- "helf" : [],
- "welf" : [],
- "gnome" : [43,43]
+ "halfling": {
+ "name": "Juriste"
},
- "name": "Bailli"
- },{
- "range":{
- "human-reiklander" : [39, 39],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : []
+ "helf": {
+ "name": "Juriste"
},
- "name": "Sorcier de village"
- },{
- "range":{
- "human-reiklander" : [40, 40],
- "dwarf" : [],
- "halfling" : [48, 50],
- "helf" : [46, 47],
- "welf" : [36, 42],
- "gnome" : [44,44]
+ "welf": {
+ "name": "Juriste"
},
- "name": "Herboriste"
- },{
- "range":{
- "human-reiklander" : [41, 42],
- "dwarf" : [48, 49],
- "halfling" : [51, 52],
- "helf" : [48, 50],
- "welf" : [43, 52],
- "gnome" : [45,46]
- },
- "name": "Chasseur"
- },{
- "range":{
- "human-reiklander" : [43, 43],
- "dwarf" : [50, 54],
- "halfling" : [53, 53],
- "helf" : [],
- "welf" : [],
- "gnome" : [47,54]
- },
- "name": "Mineur"
- },{
- "range":{
- "human-reiklander" : [44, 44],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [53, 57],
- "gnome" : []
- },
- "name": "Mystique"
- },{
- "range":{
- "human-reiklander" : [45, 45],
- "dwarf" : [55, 55],
- "halfling" : [54, 54],
- "helf" : [51, 56],
- "welf" : [58, 68],
- "gnome" : [55,58]
- },
- "name": "Eclaireur"
- },{
- "range":{
- "human-reiklander" : [46, 50],
- "dwarf" : [56, 56],
- "halfling" : [55, 57],
- "helf" : [],
- "welf" : [],
- "gnome" : [59,62]
- },
- "name": "Villageois"
- },{
- "range":{
- "human-reiklander" : [51, 51],
- "dwarf" : [57, 60],
- "halfling" : [58, 58],
- "helf" : [57, 59],
- "welf" : [69, 70],
- "gnome" : [63,63]
- },
- "name": "Chasseur de primes"
- },{
- "range":{
- "human-reiklander" : [52, 52],
- "dwarf" : [61, 61],
- "halfling" : [59, 60],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Cocher"
- },{
- "range":{
- "human-reiklander" : [53, 54],
- "dwarf" : [62, 63],
- "halfling" : [61, 63],
- "helf" : [60, 62],
- "welf" : [71, 75],
- "gnome" : [64,68]
- },
- "name": "Saltimbanque"
- },{
- "range":{
- "human-reiklander" : [55, 56],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Flagellant"
- },{
- "range":{
- "human-reiklander" : [57, 57],
- "dwarf" : [64, 65],
- "halfling" : [64, 65],
- "helf" : [63, 63],
- "welf" : [76, 78],
- "gnome" : [69,69]
- },
- "name": "Messager"
- },{
- "range":{
- "human-reiklander" : [58, 58],
- "dwarf" : [66, 67],
- "halfling" : [66, 67],
- "helf" : [],
- "welf" : [],
- "gnome" : [70,75]
- },
- "name": "Colporteur"
- },{
- "range":{
- "human-reiklander" : [59, 59],
- "dwarf" : [],
- "halfling" : [68, 68],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Patrouilleur routier"
- },{
- "range":{
- "human-reiklander" : [60, 60],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Répurgateur"
- },{
- "range":{
- "human-reiklander" : [61, 62],
- "dwarf" : [68, 69],
- "halfling" : [69, 69],
- "helf" : [64, 64],
- "welf" : [],
- "gnome" : [76,76]
- },
- "name": "Batelier"
- },{
- "range":{
- "human-reiklander" : [63, 63],
- "dwarf" : [70, 70],
- "halfling" : [70, 70],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Nautonier"
- },{
- "range":{
- "human-reiklander" : [64, 65],
- "dwarf" : [],
- "halfling" : [71, 71],
- "helf" : [],
- "welf" : [],
- "gnome" : [77,80]
- },
- "name": "Patrouilleur fluvial"
- },{
- "range":{
- "human-reiklander" : [66, 68],
- "dwarf" : [71, 72],
- "halfling" : [72, 74],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Femme du fleuve"
- },{
- "range":{
- "human-reiklander" : [69, 70],
- "dwarf" : [73, 73],
- "halfling" : [75, 75],
- "helf" : [65, 79],
- "welf" : [],
- "gnome" : []
- },
- "name": "Marin"
- },{
- "range":{
- "human-reiklander" : [71, 71],
- "dwarf" : [74, 75],
- "halfling" : [76, 79],
- "helf" : [80, 80],
- "welf" : [],
- "gnome" : [81,83]
- },
- "name": "Contrebandier"
- },{
- "range":{
- "human-reiklander" : [72, 73],
- "dwarf" : [76, 77],
- "halfling" : [80, 82],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Débardeur"
- },{
- "range":{
- "human-reiklander" : [74, 74],
- "dwarf" : [78, 78],
- "halfling" : [],
- "helf" : [],
- "welf" : [79, 79],
- "gnome" : []
- },
- "name": "Naufrageur"
- },{
- "range":{
- "human-reiklander" : [75, 76],
- "dwarf" : [],
- "halfling" : [83, 85],
- "helf" : [81, 82],
- "welf" : [],
- "gnome" : [84,85]
- },
- "name": "Entremetteur"
- },{
- "range":{
- "human-reiklander" : [77, 77],
- "dwarf" : [],
- "halfling" : [86, 86],
- "helf" : [83, 85],
- "welf" : [],
- "gnome" : [86,90]
- },
- "name": "Charlatan"
- },{
- "range":{
- "human-reiklander" : [78, 78],
- "dwarf" : [79, 79],
- "halfling" : [87, 87],
- "helf" : [],
- "welf" : [],
- "gnome" : [91,91]
- },
- "name": "Receleur"
- },{
- "range":{
- "human-reiklander" : [79, 79],
- "dwarf" : [],
- "halfling" : [88, 88],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Pilleur de tombes"
- },{
- "range":{
- "human-reiklander" : [80, 83],
- "dwarf" : [80, 82],
- "halfling" : [89, 89],
- "helf" : [86, 88],
- "welf" : [80, 85],
- "gnome" : [92,92]
- },
- "name": "Hors-la-Loi"
- },{
- "range":{
- "human-reiklander" : [84, 84],
- "dwarf" : [83, 83],
- "halfling" : [90, 90],
- "helf" : [],
- "welf" : [],
- "gnome" : [93,94]
- },
- "name": "Rançonneur"
- },{
- "range":{
- "human-reiklander" : [85, 87],
- "dwarf" : [84, 84],
- "halfling" : [91, 94],
- "helf" : [],
- "welf" : [],
- "gnome" : [95,97]
- },
- "name": "Voleur"
- },{
- "range":{
- "human-reiklander" : [88, 88],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : []
- },
- "name": "Sorcier sauvage"
- },{
- "range":{
- "human-reiklander" : [89, 90],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [89, 92],
- "welf" : [86, 90],
- "gnome" : []
- },
- "name": "Cavalier"
+ "gnome": {
+ "name": "Juriste"
+ }
},
{
- "range":{
- "human-reiklander" : [91, 92],
- "dwarf" : [85, 87],
- "halfling" : [95, 96],
- "helf" : [93, 94],
- "welf" : [91, 92],
- "gnome" : [98,98]
+ "range": {
+ "human-reiklander": [
+ 4,
+ 5
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": []
},
- "name": "Garde"
- },{
- "range":{
- "human-reiklander" : [93, 93],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [95, 95],
- "welf" : [93, 94],
- "gnome" : []
+ "human-reiklander": {
+ "name": "Nonne"
},
- "name": "Chevalier"
- },{
- "range":{
- "human-reiklander" : [94, 94],
- "dwarf" : [88, 90],
- "halfling" : [97, 97],
- "helf" : [96, 97],
- "welf" : [95, 96],
- "gnome" : []
+ "dwarf": {
+ "name": "Nonne"
},
- "name": "Gladiateur"
- },{
- "range":{
- "human-reiklander" : [95, 95],
- "dwarf" : [91, 93],
- "halfling" : [],
- "helf" : [98, 98],
- "welf" : [],
- "gnome" : []
+ "halfling": {
+ "name": "Nonne"
},
- "name": "Spadassin"
- },{
- "range":{
- "human-reiklander" : [96, 99],
- "dwarf" : [94, 96],
- "halfling" : [98, 100],
- "helf" : [99, 100],
- "welf" : [97, 100],
- "gnome" : [99,99]
+ "helf": {
+ "name": "Nonne"
},
- "name": "Soldat"
- },{
- "range":{
- "human-reiklander" : [],
- "dwarf" : [97, 100],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : []
+ "welf": {
+ "name": "Nonne"
},
- "name": "Tueur Nains"
- },{
- "range":{
- "human-reiklander" : [100, 100],
- "dwarf" : [],
- "halfling" : [],
- "helf" : [],
- "welf" : [],
- "gnome" : [100,100]
+ "gnome": {
+ "name": "Nonne"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 6,
+ 6
+ ],
+ "dwarf": [
+ 7,
+ 7
+ ],
+ "halfling": [
+ 5,
+ 6
+ ],
+ "helf": [
+ 7,
+ 8
+ ],
+ "welf": [],
+ "gnome": [
+ 3,
+ 4
+ ]
},
- "name": "Prêtre Guerrier"
+ "human-reiklander": {
+ "name": "Médecin"
+ },
+ "dwarf": {
+ "name": "Médecin"
+ },
+ "halfling": {
+ "name": "Médecin"
+ },
+ "helf": {
+ "name": "Médecin"
+ },
+ "welf": {
+ "name": "Médecin"
+ },
+ "gnome": {
+ "name": "Médecin"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 7,
+ 11
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 5,
+ 5
+ ]
+ },
+ "human-reiklander": {
+ "name": "Prêtre"
+ },
+ "dwarf": {
+ "name": "Prêtre"
+ },
+ "halfling": {
+ "name": "Prêtre"
+ },
+ "helf": {
+ "name": "Prêtre"
+ },
+ "welf": {
+ "name": "Prêtre"
+ },
+ "gnome": {
+ "name": "Prêtre"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 12,
+ 13
+ ],
+ "dwarf": [
+ 8,
+ 9
+ ],
+ "halfling": [
+ 7,
+ 8
+ ],
+ "helf": [
+ 9,
+ 12
+ ],
+ "welf": [
+ 1,
+ 1
+ ],
+ "gnome": [
+ 6,
+ 7
+ ]
+ },
+ "human-reiklander": {
+ "name": "Erudit"
+ },
+ "dwarf": {
+ "name": "Erudit"
+ },
+ "halfling": {
+ "name": "Erudit"
+ },
+ "helf": {
+ "name": "Erudit"
+ },
+ "welf": {
+ "name": "Erudit"
+ },
+ "gnome": {
+ "name": "Erudit"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 14,
+ 14
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [
+ 13,
+ 16
+ ],
+ "welf": [
+ 2,
+ 5
+ ],
+ "gnome": [
+ 8,
+ 14
+ ]
+ },
+ "human-reiklander": {
+ "name": "Sorcier"
+ },
+ "dwarf": {
+ "name": "Sorcier"
+ },
+ "halfling": {
+ "name": "Sorcier"
+ },
+ "helf": {
+ "name": "Sorcier"
+ },
+ "welf": {
+ "name": "Sorcier"
+ },
+ "gnome": {
+ "name": "Sorcier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 15,
+ 15
+ ],
+ "dwarf": [
+ 10,
+ 11
+ ],
+ "halfling": [
+ 9,
+ 10
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 15,
+ 15
+ ]
+ },
+ "human-reiklander": {
+ "name": "Agitateur"
+ },
+ "dwarf": {
+ "name": "Agitateur"
+ },
+ "halfling": {
+ "name": "Agitateur"
+ },
+ "helf": {
+ "name": "Agitateur"
+ },
+ "welf": {
+ "name": "Agitateur"
+ },
+ "gnome": {
+ "name": "Agitateur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 16,
+ 17
+ ],
+ "dwarf": [
+ 12,
+ 17
+ ],
+ "halfling": [
+ 11,
+ 15
+ ],
+ "helf": [
+ 17,
+ 19
+ ],
+ "welf": [
+ 6,
+ 10
+ ],
+ "gnome": [
+ 16,
+ 17
+ ]
+ },
+ "human-reiklander": {
+ "name": "Artisan"
+ },
+ "dwarf": {
+ "name": "Artisan"
+ },
+ "halfling": {
+ "name": "Artisan"
+ },
+ "helf": {
+ "name": "Artisan"
+ },
+ "welf": {
+ "name": "Artisan"
+ },
+ "gnome": {
+ "name": "Artisan"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 18,
+ 19
+ ],
+ "dwarf": [
+ 18
+ ],
+ "halfling": [
+ 16,
+ 19
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 18,
+ 18
+ ]
+ },
+ "human-reiklander": {
+ "name": "Mendiant"
+ },
+ "dwarf": {
+ "name": "Mendiant"
+ },
+ "halfling": {
+ "name": "Mendiant"
+ },
+ "helf": {
+ "name": "Mendiant"
+ },
+ "welf": {
+ "name": "Mendiant"
+ },
+ "gnome": {
+ "name": "Mendiant"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 20,
+ 20
+ ],
+ "dwarf": [
+ 19,
+ 20
+ ],
+ "halfling": [
+ 20,
+ 21
+ ],
+ "helf": [
+ 20,
+ 21
+ ],
+ "welf": [],
+ "gnome": [
+ 19,
+ 19
+ ]
+ },
+ "human-reiklander": {
+ "name": "Enquêteur"
+ },
+ "dwarf": {
+ "name": "Enquêteur"
+ },
+ "halfling": {
+ "name": "Enquêteur"
+ },
+ "helf": {
+ "name": "Enquêteur"
+ },
+ "welf": {
+ "name": "Enquêteur"
+ },
+ "gnome": {
+ "name": "Enquêteur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 21,
+ 21
+ ],
+ "dwarf": [
+ 21,
+ 24
+ ],
+ "halfling": [
+ 22,
+ 25
+ ],
+ "helf": [
+ 22,
+ 26
+ ],
+ "welf": [],
+ "gnome": [
+ 20,
+ 21
+ ]
+ },
+ "human-reiklander": {
+ "name": "Marchand"
+ },
+ "dwarf": {
+ "name": "Marchand"
+ },
+ "halfling": {
+ "name": "Marchand"
+ },
+ "helf": {
+ "name": "Marchand"
+ },
+ "welf": {
+ "name": "Marchand"
+ },
+ "gnome": {
+ "name": "Marchand"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 22,
+ 23
+ ],
+ "dwarf": [
+ 25,
+ 25
+ ],
+ "halfling": [
+ 26,
+ 28
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 22,
+ 22
+ ]
+ },
+ "human-reiklander": {
+ "name": "Ratier"
+ },
+ "dwarf": {
+ "name": "Ratier"
+ },
+ "halfling": {
+ "name": "Ratier"
+ },
+ "helf": {
+ "name": "Ratier"
+ },
+ "welf": {
+ "name": "Ratier"
+ },
+ "gnome": {
+ "name": "Ratier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 24,
+ 26
+ ],
+ "dwarf": [
+ 26,
+ 31
+ ],
+ "halfling": [
+ 29,
+ 31
+ ],
+ "helf": [
+ 27,
+ 28
+ ],
+ "welf": [],
+ "gnome": [
+ 23,
+ 28
+ ]
+ },
+ "human-reiklander": {
+ "name": "Bourgeois"
+ },
+ "dwarf": {
+ "name": "Bourgeois"
+ },
+ "halfling": {
+ "name": "Bourgeois"
+ },
+ "helf": {
+ "name": "Bourgeois"
+ },
+ "welf": {
+ "name": "Bourgeois"
+ },
+ "gnome": {
+ "name": "Bourgeois"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 27,
+ 27
+ ],
+ "dwarf": [
+ 32,
+ 34
+ ],
+ "halfling": [
+ 32,
+ 33
+ ],
+ "helf": [
+ 29,
+ 29
+ ],
+ "welf": [],
+ "gnome": [
+ 29,
+ 29
+ ]
+ },
+ "human-reiklander": {
+ "name": "Milicien"
+ },
+ "dwarf": {
+ "name": "Milicien"
+ },
+ "halfling": {
+ "name": "Milicien"
+ },
+ "helf": {
+ "name": "Milicien"
+ },
+ "welf": {
+ "name": "Milicien"
+ },
+ "gnome": {
+ "name": "Milicien"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 28,
+ 28
+ ],
+ "dwarf": [
+ 35,
+ 36
+ ],
+ "halfling": [
+ 34,
+ 34
+ ],
+ "helf": [
+ 30,
+ 31
+ ],
+ "welf": [
+ 11,
+ 14
+ ],
+ "gnome": [
+ 30,
+ 30
+ ]
+ },
+ "human-reiklander": {
+ "name": "Conseiller"
+ },
+ "dwarf": {
+ "name": "Conseiller"
+ },
+ "halfling": {
+ "name": "Conseiller"
+ },
+ "helf": {
+ "name": "Conseiller"
+ },
+ "welf": {
+ "name": "Conseiller"
+ },
+ "gnome": {
+ "name": "Conseiller"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 29,
+ 29
+ ],
+ "dwarf": [
+ 37,
+ 37
+ ],
+ "halfling": [
+ 35,
+ 36
+ ],
+ "helf": [
+ 32,
+ 32
+ ],
+ "welf": [
+ 15,
+ 18
+ ],
+ "gnome": [
+ 31,
+ 31
+ ]
+ },
+ "human-reiklander": {
+ "name": "Artiste"
+ },
+ "dwarf": {
+ "name": "Artiste"
+ },
+ "halfling": {
+ "name": "Artiste"
+ },
+ "helf": {
+ "name": "Artiste"
+ },
+ "welf": {
+ "name": "Artiste"
+ },
+ "gnome": {
+ "name": "Artiste"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 30,
+ 30
+ ],
+ "dwarf": [
+ 38,
+ 38
+ ],
+ "halfling": [],
+ "helf": [
+ 33,
+ 34
+ ],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Duelliste"
+ },
+ "dwarf": {
+ "name": "Duelliste"
+ },
+ "halfling": {
+ "name": "Duelliste"
+ },
+ "helf": {
+ "name": "Duelliste"
+ },
+ "welf": {
+ "name": "Duelliste"
+ },
+ "gnome": {
+ "name": "Duelliste"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 31,
+ 31
+ ],
+ "dwarf": [
+ 39,
+ 40
+ ],
+ "halfling": [
+ 37,
+ 37
+ ],
+ "helf": [
+ 35,
+ 37
+ ],
+ "welf": [
+ 19,
+ 25
+ ],
+ "gnome": [
+ 32,
+ 32
+ ]
+ },
+ "human-reiklander": {
+ "name": "Emissaire"
+ },
+ "dwarf": {
+ "name": "Emissaire"
+ },
+ "halfling": {
+ "name": "Emissaire"
+ },
+ "helf": {
+ "name": "Emissaire"
+ },
+ "welf": {
+ "name": "Emissaire"
+ },
+ "gnome": {
+ "name": "Emissaire"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 32,
+ 32
+ ],
+ "dwarf": [
+ 41,
+ 41
+ ],
+ "halfling": [],
+ "helf": [
+ 38,
+ 40
+ ],
+ "welf": [
+ 26,
+ 31
+ ],
+ "gnome": [
+ 33,
+ 33
+ ]
+ },
+ "human-reiklander": {
+ "name": "Noble"
+ },
+ "dwarf": {
+ "name": "Noble"
+ },
+ "halfling": {
+ "name": "Noble"
+ },
+ "helf": {
+ "name": "Noble"
+ },
+ "welf": {
+ "name": "Noble"
+ },
+ "gnome": {
+ "name": "Noble"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 33,
+ 35
+ ],
+ "dwarf": [
+ 42,
+ 42
+ ],
+ "halfling": [
+ 38,
+ 43
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 34,
+ 35
+ ]
+ },
+ "human-reiklander": {
+ "name": "Serviteur"
+ },
+ "dwarf": {
+ "name": "Serviteur"
+ },
+ "halfling": {
+ "name": "Serviteur"
+ },
+ "helf": {
+ "name": "Serviteur"
+ },
+ "welf": {
+ "name": "Serviteur"
+ },
+ "gnome": {
+ "name": "Serviteur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 36,
+ 36
+ ],
+ "dwarf": [
+ 43,
+ 43
+ ],
+ "halfling": [
+ 44,
+ 44
+ ],
+ "helf": [
+ 41,
+ 43
+ ],
+ "welf": [
+ 32,
+ 35
+ ],
+ "gnome": [
+ 36,
+ 40
+ ]
+ },
+ "human-reiklander": {
+ "name": "Espion"
+ },
+ "dwarf": {
+ "name": "Espion"
+ },
+ "halfling": {
+ "name": "Espion"
+ },
+ "helf": {
+ "name": "Espion"
+ },
+ "welf": {
+ "name": "Espion"
+ },
+ "gnome": {
+ "name": "Espion"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 37,
+ 37
+ ],
+ "dwarf": [
+ 44,
+ 45
+ ],
+ "halfling": [
+ 45,
+ 46
+ ],
+ "helf": [
+ 44,
+ 45
+ ],
+ "welf": [],
+ "gnome": [
+ 41,
+ 42
+ ]
+ },
+ "human-reiklander": {
+ "name": "Intendant"
+ },
+ "dwarf": {
+ "name": "Intendant"
+ },
+ "halfling": {
+ "name": "Intendant"
+ },
+ "helf": {
+ "name": "Intendant"
+ },
+ "welf": {
+ "name": "Intendant"
+ },
+ "gnome": {
+ "name": "Intendant"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 38,
+ 38
+ ],
+ "dwarf": [
+ 46,
+ 47
+ ],
+ "halfling": [
+ 47,
+ 47
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 43,
+ 43
+ ]
+ },
+ "human-reiklander": {
+ "name": "Bailli"
+ },
+ "dwarf": {
+ "name": "Bailli"
+ },
+ "halfling": {
+ "name": "Bailli"
+ },
+ "helf": {
+ "name": "Bailli"
+ },
+ "welf": {
+ "name": "Bailli"
+ },
+ "gnome": {
+ "name": "Bailli"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 39,
+ 39
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Sorcier de village"
+ },
+ "dwarf": {
+ "name": "Sorcier de village"
+ },
+ "halfling": {
+ "name": "Sorcier de village"
+ },
+ "helf": {
+ "name": "Sorcier de village"
+ },
+ "welf": {
+ "name": "Sorcier de village"
+ },
+ "gnome": {
+ "name": "Sorcier de village"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 40,
+ 40
+ ],
+ "dwarf": [],
+ "halfling": [
+ 48,
+ 50
+ ],
+ "helf": [
+ 46,
+ 47
+ ],
+ "welf": [
+ 36,
+ 42
+ ],
+ "gnome": [
+ 44,
+ 44
+ ]
+ },
+ "human-reiklander": {
+ "name": "Herboriste"
+ },
+ "dwarf": {
+ "name": "Herboriste"
+ },
+ "halfling": {
+ "name": "Herboriste"
+ },
+ "helf": {
+ "name": "Herboriste"
+ },
+ "welf": {
+ "name": "Herboriste"
+ },
+ "gnome": {
+ "name": "Herboriste"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 41,
+ 42
+ ],
+ "dwarf": [
+ 48,
+ 49
+ ],
+ "halfling": [
+ 51,
+ 52
+ ],
+ "helf": [
+ 48,
+ 50
+ ],
+ "welf": [
+ 43,
+ 52
+ ],
+ "gnome": [
+ 45,
+ 46
+ ]
+ },
+ "human-reiklander": {
+ "name": "Chasseur"
+ },
+ "dwarf": {
+ "name": "Chasseur"
+ },
+ "halfling": {
+ "name": "Chasseur"
+ },
+ "helf": {
+ "name": "Chasseur"
+ },
+ "welf": {
+ "name": "Chasseur"
+ },
+ "gnome": {
+ "name": "Chasseur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 43,
+ 43
+ ],
+ "dwarf": [
+ 50,
+ 54
+ ],
+ "halfling": [
+ 53,
+ 53
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 47,
+ 54
+ ]
+ },
+ "human-reiklander": {
+ "name": "Mineur"
+ },
+ "dwarf": {
+ "name": "Mineur"
+ },
+ "halfling": {
+ "name": "Mineur"
+ },
+ "helf": {
+ "name": "Mineur"
+ },
+ "welf": {
+ "name": "Mineur"
+ },
+ "gnome": {
+ "name": "Mineur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 44,
+ 44
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [
+ 53,
+ 57
+ ],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Mystique"
+ },
+ "dwarf": {
+ "name": "Mystique"
+ },
+ "halfling": {
+ "name": "Mystique"
+ },
+ "helf": {
+ "name": "Mystique"
+ },
+ "welf": {
+ "name": "Mystique"
+ },
+ "gnome": {
+ "name": "Mystique"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 45,
+ 45
+ ],
+ "dwarf": [
+ 55,
+ 55
+ ],
+ "halfling": [
+ 54,
+ 54
+ ],
+ "helf": [
+ 51,
+ 56
+ ],
+ "welf": [
+ 58,
+ 68
+ ],
+ "gnome": [
+ 55,
+ 58
+ ]
+ },
+ "human-reiklander": {
+ "name": "Eclaireur"
+ },
+ "dwarf": {
+ "name": "Eclaireur"
+ },
+ "halfling": {
+ "name": "Eclaireur"
+ },
+ "helf": {
+ "name": "Eclaireur"
+ },
+ "welf": {
+ "name": "Eclaireur"
+ },
+ "gnome": {
+ "name": "Eclaireur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 46,
+ 50
+ ],
+ "dwarf": [
+ 56,
+ 56
+ ],
+ "halfling": [
+ 55,
+ 57
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 59,
+ 62
+ ]
+ },
+ "human-reiklander": {
+ "name": "Villageois"
+ },
+ "dwarf": {
+ "name": "Villageois"
+ },
+ "halfling": {
+ "name": "Villageois"
+ },
+ "helf": {
+ "name": "Villageois"
+ },
+ "welf": {
+ "name": "Villageois"
+ },
+ "gnome": {
+ "name": "Villageois"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 51,
+ 51
+ ],
+ "dwarf": [
+ 57,
+ 60
+ ],
+ "halfling": [
+ 58,
+ 58
+ ],
+ "helf": [
+ 57,
+ 59
+ ],
+ "welf": [
+ 69,
+ 70
+ ],
+ "gnome": [
+ 63,
+ 63
+ ]
+ },
+ "human-reiklander": {
+ "name": "Chasseur de primes"
+ },
+ "dwarf": {
+ "name": "Chasseur de primes"
+ },
+ "halfling": {
+ "name": "Chasseur de primes"
+ },
+ "helf": {
+ "name": "Chasseur de primes"
+ },
+ "welf": {
+ "name": "Chasseur de primes"
+ },
+ "gnome": {
+ "name": "Chasseur de primes"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 52,
+ 52
+ ],
+ "dwarf": [
+ 61,
+ 61
+ ],
+ "halfling": [
+ 59,
+ 60
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Cocher"
+ },
+ "dwarf": {
+ "name": "Cocher"
+ },
+ "halfling": {
+ "name": "Cocher"
+ },
+ "helf": {
+ "name": "Cocher"
+ },
+ "welf": {
+ "name": "Cocher"
+ },
+ "gnome": {
+ "name": "Cocher"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 53,
+ 54
+ ],
+ "dwarf": [
+ 62,
+ 63
+ ],
+ "halfling": [
+ 61,
+ 63
+ ],
+ "helf": [
+ 60,
+ 62
+ ],
+ "welf": [
+ 71,
+ 75
+ ],
+ "gnome": [
+ 64,
+ 68
+ ]
+ },
+ "human-reiklander": {
+ "name": "Saltimbanque"
+ },
+ "dwarf": {
+ "name": "Saltimbanque"
+ },
+ "halfling": {
+ "name": "Saltimbanque"
+ },
+ "helf": {
+ "name": "Saltimbanque"
+ },
+ "welf": {
+ "name": "Saltimbanque"
+ },
+ "gnome": {
+ "name": "Saltimbanque"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 55,
+ 56
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Flagellant"
+ },
+ "dwarf": {
+ "name": "Flagellant"
+ },
+ "halfling": {
+ "name": "Flagellant"
+ },
+ "helf": {
+ "name": "Flagellant"
+ },
+ "welf": {
+ "name": "Flagellant"
+ },
+ "gnome": {
+ "name": "Flagellant"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 57,
+ 57
+ ],
+ "dwarf": [
+ 64,
+ 65
+ ],
+ "halfling": [
+ 64,
+ 65
+ ],
+ "helf": [
+ 63,
+ 63
+ ],
+ "welf": [
+ 76,
+ 78
+ ],
+ "gnome": [
+ 69,
+ 69
+ ]
+ },
+ "human-reiklander": {
+ "name": "Messager"
+ },
+ "dwarf": {
+ "name": "Messager"
+ },
+ "halfling": {
+ "name": "Messager"
+ },
+ "helf": {
+ "name": "Messager"
+ },
+ "welf": {
+ "name": "Messager"
+ },
+ "gnome": {
+ "name": "Messager"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 58,
+ 58
+ ],
+ "dwarf": [
+ 66,
+ 67
+ ],
+ "halfling": [
+ 66,
+ 67
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 70,
+ 75
+ ]
+ },
+ "human-reiklander": {
+ "name": "Colporteur"
+ },
+ "dwarf": {
+ "name": "Colporteur"
+ },
+ "halfling": {
+ "name": "Colporteur"
+ },
+ "helf": {
+ "name": "Colporteur"
+ },
+ "welf": {
+ "name": "Colporteur"
+ },
+ "gnome": {
+ "name": "Colporteur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 59,
+ 59
+ ],
+ "dwarf": [],
+ "halfling": [
+ 68,
+ 68
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Patrouilleur routier"
+ },
+ "dwarf": {
+ "name": "Patrouilleur routier"
+ },
+ "halfling": {
+ "name": "Patrouilleur routier"
+ },
+ "helf": {
+ "name": "Patrouilleur routier"
+ },
+ "welf": {
+ "name": "Patrouilleur routier"
+ },
+ "gnome": {
+ "name": "Patrouilleur routier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 60,
+ 60
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Répurgateur"
+ },
+ "dwarf": {
+ "name": "Répurgateur"
+ },
+ "halfling": {
+ "name": "Répurgateur"
+ },
+ "helf": {
+ "name": "Répurgateur"
+ },
+ "welf": {
+ "name": "Répurgateur"
+ },
+ "gnome": {
+ "name": "Répurgateur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 61,
+ 62
+ ],
+ "dwarf": [
+ 68,
+ 69
+ ],
+ "halfling": [
+ 69,
+ 69
+ ],
+ "helf": [
+ 64,
+ 64
+ ],
+ "welf": [],
+ "gnome": [
+ 76,
+ 76
+ ]
+ },
+ "human-reiklander": {
+ "name": "Batelier"
+ },
+ "dwarf": {
+ "name": "Batelier"
+ },
+ "halfling": {
+ "name": "Batelier"
+ },
+ "helf": {
+ "name": "Batelier"
+ },
+ "welf": {
+ "name": "Batelier"
+ },
+ "gnome": {
+ "name": "Batelier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 63,
+ 63
+ ],
+ "dwarf": [
+ 70,
+ 70
+ ],
+ "halfling": [
+ 70,
+ 70
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Nautonier"
+ },
+ "dwarf": {
+ "name": "Nautonier"
+ },
+ "halfling": {
+ "name": "Nautonier"
+ },
+ "helf": {
+ "name": "Nautonier"
+ },
+ "welf": {
+ "name": "Nautonier"
+ },
+ "gnome": {
+ "name": "Nautonier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 64,
+ 65
+ ],
+ "dwarf": [],
+ "halfling": [
+ 71,
+ 71
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 77,
+ 80
+ ]
+ },
+ "human-reiklander": {
+ "name": "Patrouilleur fluvial"
+ },
+ "dwarf": {
+ "name": "Patrouilleur fluvial"
+ },
+ "halfling": {
+ "name": "Patrouilleur fluvial"
+ },
+ "helf": {
+ "name": "Patrouilleur fluvial"
+ },
+ "welf": {
+ "name": "Patrouilleur fluvial"
+ },
+ "gnome": {
+ "name": "Patrouilleur fluvial"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 66,
+ 68
+ ],
+ "dwarf": [
+ 71,
+ 72
+ ],
+ "halfling": [
+ 72,
+ 74
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Femme du fleuve"
+ },
+ "dwarf": {
+ "name": "Femme du fleuve"
+ },
+ "halfling": {
+ "name": "Femme du fleuve"
+ },
+ "helf": {
+ "name": "Femme du fleuve"
+ },
+ "welf": {
+ "name": "Femme du fleuve"
+ },
+ "gnome": {
+ "name": "Femme du fleuve"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 69,
+ 70
+ ],
+ "dwarf": [
+ 73,
+ 73
+ ],
+ "halfling": [
+ 75,
+ 75
+ ],
+ "helf": [
+ 65,
+ 79
+ ],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Marin"
+ },
+ "dwarf": {
+ "name": "Marin"
+ },
+ "halfling": {
+ "name": "Marin"
+ },
+ "helf": {
+ "name": "Marin"
+ },
+ "welf": {
+ "name": "Marin"
+ },
+ "gnome": {
+ "name": "Marin"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 71,
+ 71
+ ],
+ "dwarf": [
+ 74,
+ 75
+ ],
+ "halfling": [
+ 76,
+ 79
+ ],
+ "helf": [
+ 80,
+ 80
+ ],
+ "welf": [],
+ "gnome": [
+ 81,
+ 83
+ ]
+ },
+ "human-reiklander": {
+ "name": "Contrebandier"
+ },
+ "dwarf": {
+ "name": "Contrebandier"
+ },
+ "halfling": {
+ "name": "Contrebandier"
+ },
+ "helf": {
+ "name": "Contrebandier"
+ },
+ "welf": {
+ "name": "Contrebandier"
+ },
+ "gnome": {
+ "name": "Contrebandier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 72,
+ 73
+ ],
+ "dwarf": [
+ 76,
+ 77
+ ],
+ "halfling": [
+ 80,
+ 82
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Débardeur"
+ },
+ "dwarf": {
+ "name": "Débardeur"
+ },
+ "halfling": {
+ "name": "Débardeur"
+ },
+ "helf": {
+ "name": "Débardeur"
+ },
+ "welf": {
+ "name": "Débardeur"
+ },
+ "gnome": {
+ "name": "Débardeur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 74,
+ 74
+ ],
+ "dwarf": [
+ 78,
+ 78
+ ],
+ "halfling": [],
+ "helf": [],
+ "welf": [
+ 79,
+ 79
+ ],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Naufrageur"
+ },
+ "dwarf": {
+ "name": "Naufrageur"
+ },
+ "halfling": {
+ "name": "Naufrageur"
+ },
+ "helf": {
+ "name": "Naufrageur"
+ },
+ "welf": {
+ "name": "Naufrageur"
+ },
+ "gnome": {
+ "name": "Naufrageur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 75,
+ 76
+ ],
+ "dwarf": [],
+ "halfling": [
+ 83,
+ 85
+ ],
+ "helf": [
+ 81,
+ 82
+ ],
+ "welf": [],
+ "gnome": [
+ 84,
+ 85
+ ]
+ },
+ "human-reiklander": {
+ "name": "Entremetteur"
+ },
+ "dwarf": {
+ "name": "Entremetteur"
+ },
+ "halfling": {
+ "name": "Entremetteur"
+ },
+ "helf": {
+ "name": "Entremetteur"
+ },
+ "welf": {
+ "name": "Entremetteur"
+ },
+ "gnome": {
+ "name": "Entremetteur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 77,
+ 77
+ ],
+ "dwarf": [],
+ "halfling": [
+ 86,
+ 86
+ ],
+ "helf": [
+ 83,
+ 85
+ ],
+ "welf": [],
+ "gnome": [
+ 86,
+ 90
+ ]
+ },
+ "human-reiklander": {
+ "name": "Charlatan"
+ },
+ "dwarf": {
+ "name": "Charlatan"
+ },
+ "halfling": {
+ "name": "Charlatan"
+ },
+ "helf": {
+ "name": "Charlatan"
+ },
+ "welf": {
+ "name": "Charlatan"
+ },
+ "gnome": {
+ "name": "Charlatan"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 78,
+ 78
+ ],
+ "dwarf": [
+ 79,
+ 79
+ ],
+ "halfling": [
+ 87,
+ 87
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 91,
+ 91
+ ]
+ },
+ "human-reiklander": {
+ "name": "Receleur"
+ },
+ "dwarf": {
+ "name": "Receleur"
+ },
+ "halfling": {
+ "name": "Receleur"
+ },
+ "helf": {
+ "name": "Receleur"
+ },
+ "welf": {
+ "name": "Receleur"
+ },
+ "gnome": {
+ "name": "Receleur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 79,
+ 79
+ ],
+ "dwarf": [],
+ "halfling": [
+ 88,
+ 88
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Pilleur de tombes"
+ },
+ "dwarf": {
+ "name": "Pilleur de tombes"
+ },
+ "halfling": {
+ "name": "Pilleur de tombes"
+ },
+ "helf": {
+ "name": "Pilleur de tombes"
+ },
+ "welf": {
+ "name": "Pilleur de tombes"
+ },
+ "gnome": {
+ "name": "Pilleur de tombes"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 80,
+ 83
+ ],
+ "dwarf": [
+ 80,
+ 82
+ ],
+ "halfling": [
+ 89,
+ 89
+ ],
+ "helf": [
+ 86,
+ 88
+ ],
+ "welf": [
+ 80,
+ 85
+ ],
+ "gnome": [
+ 92,
+ 92
+ ]
+ },
+ "human-reiklander": {
+ "name": "Hors-la-Loi"
+ },
+ "dwarf": {
+ "name": "Hors-la-Loi"
+ },
+ "halfling": {
+ "name": "Hors-la-Loi"
+ },
+ "helf": {
+ "name": "Hors-la-Loi"
+ },
+ "welf": {
+ "name": "Hors-la-Loi"
+ },
+ "gnome": {
+ "name": "Hors-la-Loi"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 84,
+ 84
+ ],
+ "dwarf": [
+ 83,
+ 83
+ ],
+ "halfling": [
+ 90,
+ 90
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 93,
+ 94
+ ]
+ },
+ "human-reiklander": {
+ "name": "Rançonneur"
+ },
+ "dwarf": {
+ "name": "Rançonneur"
+ },
+ "halfling": {
+ "name": "Rançonneur"
+ },
+ "helf": {
+ "name": "Rançonneur"
+ },
+ "welf": {
+ "name": "Rançonneur"
+ },
+ "gnome": {
+ "name": "Rançonneur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 85,
+ 87
+ ],
+ "dwarf": [
+ 84,
+ 84
+ ],
+ "halfling": [
+ 91,
+ 94
+ ],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 95,
+ 97
+ ]
+ },
+ "human-reiklander": {
+ "name": "Voleur"
+ },
+ "dwarf": {
+ "name": "Voleur"
+ },
+ "halfling": {
+ "name": "Voleur"
+ },
+ "helf": {
+ "name": "Voleur"
+ },
+ "welf": {
+ "name": "Voleur"
+ },
+ "gnome": {
+ "name": "Voleur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 88,
+ 88
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Sorcier sauvage"
+ },
+ "dwarf": {
+ "name": "Sorcier sauvage"
+ },
+ "halfling": {
+ "name": "Sorcier sauvage"
+ },
+ "helf": {
+ "name": "Sorcier sauvage"
+ },
+ "welf": {
+ "name": "Sorcier sauvage"
+ },
+ "gnome": {
+ "name": "Sorcier sauvage"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 89,
+ 90
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [
+ 89,
+ 92
+ ],
+ "welf": [
+ 86,
+ 90
+ ],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Cavalier"
+ },
+ "dwarf": {
+ "name": "Cavalier"
+ },
+ "halfling": {
+ "name": "Cavalier"
+ },
+ "helf": {
+ "name": "Cavalier"
+ },
+ "welf": {
+ "name": "Cavalier"
+ },
+ "gnome": {
+ "name": "Cavalier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 91,
+ 92
+ ],
+ "dwarf": [
+ 85,
+ 87
+ ],
+ "halfling": [
+ 95,
+ 96
+ ],
+ "helf": [
+ 93,
+ 94
+ ],
+ "welf": [
+ 91,
+ 92
+ ],
+ "gnome": [
+ 98,
+ 98
+ ]
+ },
+ "human-reiklander": {
+ "name": "Garde"
+ },
+ "dwarf": {
+ "name": "Garde"
+ },
+ "halfling": {
+ "name": "Garde"
+ },
+ "helf": {
+ "name": "Garde"
+ },
+ "welf": {
+ "name": "Garde"
+ },
+ "gnome": {
+ "name": "Garde"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 93,
+ 93
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [
+ 95,
+ 95
+ ],
+ "welf": [
+ 93,
+ 94
+ ],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Chevalier"
+ },
+ "dwarf": {
+ "name": "Chevalier"
+ },
+ "halfling": {
+ "name": "Chevalier"
+ },
+ "helf": {
+ "name": "Chevalier"
+ },
+ "welf": {
+ "name": "Chevalier"
+ },
+ "gnome": {
+ "name": "Chevalier"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 94,
+ 94
+ ],
+ "dwarf": [
+ 88,
+ 90
+ ],
+ "halfling": [
+ 97,
+ 97
+ ],
+ "helf": [
+ 96,
+ 97
+ ],
+ "welf": [
+ 95,
+ 96
+ ],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Gladiateur"
+ },
+ "dwarf": {
+ "name": "Gladiateur"
+ },
+ "halfling": {
+ "name": "Gladiateur"
+ },
+ "helf": {
+ "name": "Gladiateur"
+ },
+ "welf": {
+ "name": "Gladiateur"
+ },
+ "gnome": {
+ "name": "Gladiateur"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 95,
+ 95
+ ],
+ "dwarf": [
+ 91,
+ 93
+ ],
+ "halfling": [],
+ "helf": [
+ 98,
+ 98
+ ],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Spadassin"
+ },
+ "dwarf": {
+ "name": "Spadassin"
+ },
+ "halfling": {
+ "name": "Spadassin"
+ },
+ "helf": {
+ "name": "Spadassin"
+ },
+ "welf": {
+ "name": "Spadassin"
+ },
+ "gnome": {
+ "name": "Spadassin"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 96,
+ 99
+ ],
+ "dwarf": [
+ 94,
+ 96
+ ],
+ "halfling": [
+ 98,
+ 100
+ ],
+ "helf": [
+ 99,
+ 100
+ ],
+ "welf": [
+ 97,
+ 100
+ ],
+ "gnome": [
+ 99,
+ 99
+ ]
+ },
+ "human-reiklander": {
+ "name": "Soldat"
+ },
+ "dwarf": {
+ "name": "Soldat"
+ },
+ "halfling": {
+ "name": "Soldat"
+ },
+ "helf": {
+ "name": "Soldat"
+ },
+ "welf": {
+ "name": "Soldat"
+ },
+ "gnome": {
+ "name": "Soldat"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [],
+ "dwarf": [
+ 97,
+ 100
+ ],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": []
+ },
+ "human-reiklander": {
+ "name": "Tueur Nains"
+ },
+ "dwarf": {
+ "name": "Tueur Nains"
+ },
+ "halfling": {
+ "name": "Tueur Nains"
+ },
+ "helf": {
+ "name": "Tueur Nains"
+ },
+ "welf": {
+ "name": "Tueur Nains"
+ },
+ "gnome": {
+ "name": "Tueur Nains"
+ }
+ },
+ {
+ "range": {
+ "human-reiklander": [
+ 100,
+ 100
+ ],
+ "dwarf": [],
+ "halfling": [],
+ "helf": [],
+ "welf": [],
+ "gnome": [
+ 100,
+ 100
+ ]
+ },
+ "human-reiklander": {
+ "name": "Prêtre Guerrier"
+ },
+ "dwarf": {
+ "name": "Prêtre Guerrier"
+ },
+ "halfling": {
+ "name": "Prêtre Guerrier"
+ },
+ "helf": {
+ "name": "Prêtre Guerrier"
+ },
+ "welf": {
+ "name": "Prêtre Guerrier"
+ },
+ "gnome": {
+ "name": "Prêtre Guerrier"
+ }
}
+ ],
+ "multi": [
+ "human-reiklander",
+ "dwarf",
+ "halfling",
+ "helf",
+ "welf",
+ "gnome"
]
-}
+}
\ No newline at end of file
diff --git a/tables/career_archives.json b/tables/career_archives.json
new file mode 100644
index 0000000..657564f
--- /dev/null
+++ b/tables/career_archives.json
@@ -0,0 +1,266 @@
+{
+ "name": "Carrières aléatoires",
+ "extend": true,
+ "die": "1d100",
+ "rows": [
+ {
+ "range": { "welf-toriour": [1,2]},
+ "welf-toriour": { "name": "Apothicaire" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Ingénieur" }
+ },
+ {
+ "range": { "welf-toriour": [3,6]},
+ "welf-toriour": { "name": "Lawyer" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Nonne" }
+ },
+ {
+ "range": { "welf-toriour": [7,8]},
+ "welf-toriour": { "name": "Médecin" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Prêtre" }
+ },
+ {
+ "range": { "welf-toriour": [9,12]},
+ "welf-toriour": { "name": "Scholar" }
+ },
+ {
+ "range": { "welf-toriour": [13,16]},
+ "welf-toriour": { "name": "Wizard" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Agitator" }
+ },
+ {
+ "range": { "welf-toriour": [17,19]},
+ "welf-toriour": { "name": "Artisan" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Beggar" }
+ },
+ {
+ "range": { "welf-toriour": [20,21]},
+ "welf-toriour": { "name": "Investigator" }
+ },
+ {
+ "range": { "welf-toriour": [22,26]},
+ "welf-toriour": { "name": "Merchant" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Rat Catcher" }
+ },
+ {
+ "range": { "welf-toriour": [27,28]},
+ "welf-toriour": { "name": "Townsman" }
+ },
+ {
+ "range": { "welf-toriour": [29,29]},
+ "welf-toriour": { "name": "Watchman" }
+ },
+ {
+ "range": { "welf-toriour": [30,31]},
+ "welf-toriour": { "name": "Advisor" }
+ },
+ {
+ "range": { "welf-toriour": [32,32]},
+ "welf-toriour": { "name": "Artist" }
+ },
+ {
+ "range": { "welf-toriour": [33,34]},
+ "welf-toriour": { "name": "Duellist" }
+ },
+ {
+ "range": { "welf-toriour": [35,37]},
+ "welf-toriour": { "name": "Envoy" }
+ },
+ {
+ "range": { "welf-toriour": [38,40]},
+ "welf-toriour": { "name": "Noble" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Servant" }
+ },
+ {
+ "range": { "welf-toriour": [41,43]},
+ "welf-toriour": { "name": "Spy" }
+ },
+ {
+ "range": { "welf-toriour": [44,45]},
+ "welf-toriour": { "name": "Warden" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Bailiff" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Hedge Witch" }
+ },
+ {
+ "range": { "welf-toriour": [46,47]},
+ "welf-toriour": { "name": "Herbalist" }
+ },
+ {
+ "range": { "welf-toriour": [48,50]},
+ "welf-toriour": { "name": "Hunter" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Miner" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Mystic" }
+ },
+ {
+ "range": { "welf-toriour": [51,56]},
+ "welf-toriour": { "name": "Scout" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Villager" }
+ },
+ {
+ "range": { "welf-toriour": [57,59]},
+ "welf-toriour": { "name": "Bounty Hunter" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Coachman" }
+ },
+ {
+ "range": { "welf-toriour": [60,62]},
+ "welf-toriour": { "name": "Entertainer" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Flagellant" }
+ },
+ {
+ "range": { "welf-toriour": [63,63]},
+ "welf-toriour": { "name": "Messenger" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Pedlar" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Road warden" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Witch Hunter" }
+ },
+ {
+ "range": { "welf-toriour": [64,64]},
+ "welf-toriour": { "name": "Boatman" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Huffer" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Riverwarden" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Riverwoman" }
+ },
+ {
+ "range": { "welf-toriour": [65,79]},
+ "welf-toriour": { "name": "Seaman" }
+ },
+ {
+ "range": { "welf-toriour": [80,80]},
+ "welf-toriour": { "name": "Smuggler" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Stevedore" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Wrecker" }
+ },
+ {
+ "range": { "welf-toriour": [81,82]},
+ "welf-toriour": { "name": "Bawd" }
+ },
+ {
+ "range": { "welf-toriour": [83,85]},
+ "welf-toriour": { "name": "Charlatan" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Fence" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Grave Robber" }
+ },
+ {
+ "range": { "welf-toriour": [86,88]},
+ "welf-toriour": { "name": "Outlaw" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Racketeer" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Thief" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Witch" }
+ },
+ {
+ "range": { "welf-toriour": [89,92]},
+ "welf-toriour": { "name": "Cavalryman" }
+ },
+ {
+ "range": { "welf-toriour": [93,94]},
+ "welf-toriour": { "name": "Guard" }
+ },
+ {
+ "range": { "welf-toriour": [95,95]},
+ "welf-toriour": { "name": "Knight" }
+ },
+ {
+ "range": { "welf-toriour": [96,97]},
+ "welf-toriour": { "name": "Pit Fighter" }
+ },
+ {
+ "range": { "welf-toriour": [98,98]},
+ "welf-toriour": { "name": "Protagonist" }
+ },
+ {
+ "range": { "welf-toriour": [99,100]},
+ "welf-toriour": { "name": "Soldier" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Slayer" }
+ },
+ {
+ "range": { "welf-toriour": []},
+ "welf-toriour": { "name": "Warrior Priest" }
+ }
+ ],
+ "multi": [
+ "welf-toriour"
+ ]
+}
\ No newline at end of file