From d40f7689097ccb8b82486e9e6f19c60b8baeb54d Mon Sep 17 00:00:00 2001 From: sladecraven Date: Mon, 23 Aug 2021 22:55:07 +0200 Subject: [PATCH] =?UTF-8?q?Update=20carri=C3=A8res?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addon-register.js | 28 + module.json | 2 +- modules/config-patch.js | 2081 ++++++++++++----------- tables/career.json | 3167 ++++++++++++++++++++++++++++------- tables/career_archives.json | 266 +++ 5 files changed, 3958 insertions(+), 1586 deletions(-) create mode 100644 tables/career_archives.json 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