{
  "+ this.effect.name\n\nawait this.actor.update(updateObj)\nthis.actor.createEmbeddedDocuments(": "+ this.effet.name\n\nawait this.actor.update(updateObj)\nthis.actor.createEmbeddedDocuments(",
  "+ this.effect.name\n\nawait this.actor.update(updateObj)\nconsole.log(": "+ this.effet.name\n\nawait this.actor.update(updateObj)\nconsole.log(",
  "Added Bleeding": "Saignement ajouté",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`, fields : {difficulty :": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`, fields : {difficulty :",
  "Fatigued added to": "Fatigued Ajouté to",
  "which cannot be removed until the Malaise symptom is gone.": "which Impossible de be Retiré until the Malaise symptom is gone.",
  ")}!`}));\n\nthis.effect.updateSource({": ")}!`}));\n\nthis.effet.updateSource({",
  "Lore (Magic)": "Savoir (Magie)",
  ")}) \n}\n\n// Notify of lingering effects when mask is removed\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name +=": ")}) \n}\n\n// Notify of lingering effects when mask is Retiré\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name +=",
  "})\n    this.script.message(`<strong>${this.item.name}</strong> on ${this.actor.name} has been taken off and loses its properties. However, the effects last for [[1d10+4]] days, after which they should be manually removed.`, \n    {whisper: ChatMessage.getWhisperRecipients(": "})\n    this.script.message(`<strong>${this.item.name}</strong> on ${this.actor.name} has been taken off and loses its properties. However, the effects last for [[1d10+4]] days, after which they should be manually Retiré.`, \n    {whisper: ChatMessage.getWhisperRecipients(",
  ",\n      {whisper: ChatMessage.getWhisperRecipients(\"GM\")}) \n}\n\n// Notify of lingering effects when mask is removed\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name += \" (Used)\"})\n    this.script.message(": ",\n      {whisper: ChatMessage.getWhisperRecipients(\"GM\")}) \n}\n\n// Notify of lingering effects when mask is Retiré\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name += \" (Used)\"})\n    this.script.message(",
  "+ this.effect.name, context : {failure:": "+ this.effet.name, context : {failure:",
  "Choose Characteristic": "Choisir Characteristic",
  ": this.item.system.tests.value.replace(": ": this.item.system.Tests.value.replace(",
  ") || this.item.system.tests.value.includes(": ") || this.item.system.Tests.value.includes(",
  ") || this.item.system.tests.value.toLowerCase().includes(": ") || this.item.system.Tests.value.toLowerCase().includes(",
  "))\n{\n    let tests = this.item.system.tests.value\n    let name = this.item.name\n\n    // If name already specifies, make sure tests value reflects that\n    if (name.includes(": "))\n{\n    let Tests = this.item.system.Tests.value\n    let name = this.item.name\n\n    // If name already specifies, make sure Tests value reflects that\n    if (name.includes(",
  ",\n  skipTargets: true,\n  fields: {difficulty: 'easy'},\n  characteristic: 'wp',\n});\nawait test.roll();\n\nif (!test.succeeded) {\n  test.result.other.push(": ",\n  skipTargets: true,\n  fields: {difficulty: 'easy'},\n  characteristic: 'wp',\n});\nawait Test.roll();\n\nif (!Test.succeeded) {\n  Test.result.other.push(",
  "Dark Magic (Necromancy)": "Magie Noire (Nécromancie)",
  "action-link critical": "action-link critical",
  "all forms": "toutes formes",
  ")})\n}\n\n// Notify of lingering effects when mask is removed\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name +=": ")})\n}\n\n// Notify of lingering effects when mask is Retiré\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name +=",
  ";\nconst test = 'Maintenance Crew Test';\nconst difficulty = 'hard';\nconst target = 80;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Maintenance Crew Test';\nconst difficulty = 'hard';\nconst target = 80;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "}})\nawait test.roll();\nif (test.failed)\n{\n    args.actor.addCondition(": "}})\nawait Test.roll();\nif (Test.Échoué)\n{\n    args.actor.addCondition(",
  "}})\nawait test.roll();\nif (test.failed)\n{\n    this.actor.addCondition(": "}})\nawait Test.roll();\nif (Test.Échoué)\n{\n    this.actor.addCondition(",
  "Choose a Condition": "Choisir a Condition",
  "<p>\n    Select your choice\n    </p>\n    <ol>\n    <li>Mail</li>\n    <li>Mail & Leather</li>\n    <li>Plate</li>\n    </ol>": "<p>\n    Sélectionner your choice\n    </p>\n    <ol>\n    <li>Mail</li>\n    <li>Mail & Leather</li>\n    <li>Plate</li>\n    </ol>",
  "})\n                            await test.roll();\n                            if (test.failed)\n                            {\n                                this.actor.addCondition(": "})\n                            await Test.roll();\n                            if (Test.Échoué)\n                            {\n                                this.actor.addCondition(",
  "critical-roll": "Critique-roll",
  ").pop())\n\nif (ones > SL)\n   args.test.result.other.push(`<span class=": ").pop())\n\nif (ones > SL)\n   args.Test.result.other.push(`<span class=",
  "Applied after effects": "Effets secondaires appliqués",
  "Choose Lore": "Choisir Lore",
  ")\n   }\n   else if (this.actor.characteristics.int.bonus + args.test.result.SL < 0)\n      args.test.result.other.push(": ")\n   }\n   else if (this.actor.characteristics.int.bonus + args.Test.result.SL < 0)\n      args.Test.result.other.push(",
  "Choose Training": "Choisir un Entraînement",
  ").map(i => {\n        return {\n            id : i.toLowerCase(),\n            name : i\n        }\n    });\n}\n\nif (choice.length)\n{\n    let changes = foundry.utils.deepClone(this.effect.changes);\n\n    for(let training of choice)\n    {\n        switch(training.id)\n        {\n            case": ").map(i => {\n        return {\n            id : i.toLowerCase(),\n            name : i\n        }\n    });\n}\n\nif (choice.length)\n{\n    let changes = foundry.utils.deepClone(this.effet.changes);\n\n    for(let training of choice)\n    {\n        switch(training.id)\n        {\n            case",
  ", [territorial], {fromEffect: this.effect.id})\n                foundry.utils.setProperty(args,": ", [territorial], {fromEffect: this.effet.id})\n                foundry.utils.setProperty(args,",
  "})\n                break;\n        }\n    }\n    this.effect.updateSource({name : `${this.effect.name} (${choice.map(i => i.name).join(": "})\n                break;\n        }\n    }\n    this.effet.updateSource({name : `${this.effet.name} (${choice.map(i => i.name).join(",
  ";\n\n  let wounds = foundry.utils.duplicate(this.actor.status.wounds);\n  let regenRoll = await new Roll(": ";\n\n  let Blessures = foundry.utils.duplicate(this.actor.status.Blessures);\n  let regenRoll = await new Roll(",
  ").roll({allowInteractive : false});\n  let regen = regenRoll.total;\n\n  if (wounds.value >= wounds.max)\n    return;\n\n  if (wounds.value > 0) {\n    wounds.value += Math.floor(regen / 2);\n    if (wounds.value > wounds.max) {\n      wounds.value = wounds.max;\n    }\n    message += \\`<b>\\${this.actor.name}</b> regagne \\${regen} Blessures.\\`;\n\n    if (regen === 10) {\n      message +=": ").roll({allowInteractive : false});\n  let regen = regenRoll.total;\n\n  if (Blessures.value >= Blessures.max)\n    return;\n\n  if (Blessures.value > 0) {\n    Blessures.value += Math.floor(regen / 2);\n    if (Blessures.value > Blessures.max) {\n      Blessures.value = Blessures.max;\n    }\n    message += \\`<b>\\${this.actor.name}</b> regagne \\${regen} Blessures.\\`;\n\n    if (regen === 10) {\n      message +=",
  ";\n    }\n  } else if (regen >= 8) {\n    message += \\`<b>\\${this.actor.name}</b> a obtenu un \\${regen} et regagne 1 Blessure.\\`;\n    wounds.value += 1;\n    if (regen === 10) {\n      message +=": ";\n    }\n  } else if (regen >= 8) {\n    message += \\`<b>\\${this.actor.name}</b> a obtenu un \\${regen} et regagne 1 Blessure.\\`;\n    Blessures.value += 1;\n    if (regen === 10) {\n      message +=",
  ": wounds});\n  this.script.message(message, {whisper: ChatMessage.getWhisperRecipients(": ": Blessures});\n  this.script.message(message, {whisper: ChatMessage.getWhisperRecipients(",
  ")});\n`\n\nawait effect.update({\n  name,": ")});\n`\n\nawait effet.update({\n  name,",
  ";\n    wounds.value += 1;\n    if (regen === 10) {\n      message += \"<br>De plus, il régénère une Blessure Critique.\";\n    }\n  } else {\n    message += \\": ";\n    Blessures.value += 1;\n    if (regen === 10) {\n      message += \"<br>De plus, il régénère une Blessure Critique.\";\n    }\n  } else {\n    message += \\",
  ";\n  }\n\n  await this.actor.update({\"system.status.wounds\": wounds});\n  this.script.message(message, {whisper: ChatMessage.getWhisperRecipients(\"GM\")});": ";\n  }\n\n  await this.actor.update({\"system.status.Blessures\": Blessures});\n  this.script.message(message, {whisper: ChatMessage.getWhisperRecipients(\"GM\")});",
  ")\n}\n\nthis.effect.updateSource({": ")\n}\n\nthis.effet.updateSource({",
  ")[0].trim()} (${resistance})`})\n        this.effect.updateSource({name : this.effect.name + ` (${resistance})`})\n    }\n}    \nthis.item.updateSource({": ")[0].trim()} (${resistance})`})\n        this.effet.updateSource({name : this.effet.name + ` (${resistance})`})\n    }\n}    \nthis.item.updateSource({",
  ", resistance)})\n\nif (resistance && !this.effect.name.includes(": ", resistance)})\n\nif (resistance && !this.effet.name.includes(",
  "})\n        this.effect.updateSource({name : this.effect.name +": "})\n        this.effet.updateSource({name : this.effet.name +",
  "})\n    }\n}    \nthis.item.updateSource({\"system.tests.value\" : this.item.system.tests.value.replace(\"the associated Threat\", resistance)})\n\nif (resistance && !this.effect.name.includes(\"(\"))\n{\n    this.effect.updateSource({name : this.effect.name +=": "})\n    }\n}    \nthis.item.updateSource({\"system.Tests.value\" : this.item.system.Tests.value.replace(\"the associated Threat\", resistance)})\n\nif (resistance && !this.effet.name.includes(\"(\"))\n{\n    this.effet.updateSource({name : this.effet.name +=",
  ")\n        }\n    }\n\n    this.effect.updateSource({name})\n    this.item.updateSource({name,": ")\n        }\n    }\n\n    this.effet.updateSource({name})\n    this.item.updateSource({name,",
  "épines\"];\n\nlet updateObj = this.actor.toObject();\n\nfor (let ch in characteristics)\n{\n  updateObj.system.characteristics[ch].modifier += characteristics[ch];\n}\n\nfor (let index = 0; index < skills.length; index++)\n{\n  let skill = skills[index]\n  let skillItem;\n  skillItem = updateObj.items.find(i => i.name == skill && i.type == \"skill\")\n  if (skillItem)\n      skillItem.system.advances.value += skillAdvancements[index]\n  else \n  {\n      skillItem = await game.wfrp4e.utility.findSkill(skill)\n      skillItem = skillItem.toObject();\n      skillItem.system.advances.value = skillAdvancements[index];\n      items.push(skillItem);\n  }\n}\n\nfor (let talent of talents)\n{\n  let talentItem = await game.wfrp4e.utility.findTalent(talent)\n  if (talentItem)\n  {\n      items.push(talentItem.toObject());\n  }\n  else \n  {\n      ui.notifications.warn(`Could not find ${talent}`, {permanent : true})\n  }\n}\n\nconst traitRegex = /(?:,?(.+?)(\\+?\\d{1,2}\\+?)?\\s*?(?:\\((.+?)\\)\\s*(\\+?\\d{1,2})?|,|$))/gm\nfor (let trait of traits)\n{\n  let traitMatches = trait.matchAll(traitRegex).next().value\n  let traitName = traitMatches[1]\n  let traitVal = traitMatches[2] || traitMatches[4] // could be match 2 or 4 depending on if there": "épines\"];\n\nlet updateObj = this.actor.toObject();\n\nfor (let ch in characteristics)\n{\n  updateObj.system.characteristics[ch].modifier += characteristics[ch];\n}\n\nfor (let index = 0; index < skills.length; index++)\n{\n  let Compétence = skills[index]\n  let skillItem;\n  skillItem = updateObj.items.find(i => i.name == Compétence && i.type == \"Compétence\")\n  if (skillItem)\n      skillItem.system.advances.value += skillAdvancements[index]\n  else \n  {\n      skillItem = await game.wfrp4e.utility.findSkill(Compétence)\n      skillItem = skillItem.toObject();\n      skillItem.system.advances.value = skillAdvancements[index];\n      items.push(skillItem);\n  }\n}\n\nfor (let talent of talents)\n{\n  let talentItem = await game.wfrp4e.utility.findTalent(talent)\n  if (talentItem)\n  {\n      items.push(talentItem.toObject());\n  }\n  else \n  {\n      ui.notifications.warn(`Could not find ${talent}`, {permanent : true})\n  }\n}\n\nconst traitRegex = /(?:,?(.+?)(\\+?\\d{1,2}\\+?)?\\s*?(?:\\((.+?)\\)\\s*(\\+?\\d{1,2})?|,|$))/gm\nfor (let trait of traits)\n{\n  let traitMatches = trait.matchAll(traitRegex).next().value\n  let traitName = traitMatches[1]\n  let traitVal = traitMatches[2] || traitMatches[4] // could be match 2 or 4 depending on if there",
  "Skipping Tests to apply the tattoos": "Tests ignorés pour appliquer les tatouages",
  "<p>Apply Ward of Grimnir effect?</p>": "<p>Apply Ward of Grimnir effet?</p>",
  "No Lore (Theology) skill found, cannot pass.": "Compétence Savoir (Théologie) introuvable, impossible de continuer.",
  "No Lore (Runes) skill found, cannot pass.": "Compétence Savoir (Runes) introuvable, impossible de continuer.",
  "One or more Tests to apply the tattoos failed.": "Un ou plusieurs Tests pour appliquer les tatouages ont échoué.",
  ", fields : {difficulty : \"vhard\"}})\n  await test.roll();\n  if (test.failed)\n  {\n    failed = true;\n  }\n}\nelse \n{\n  this.script.notification(\"No Lore (Theology) skill found, cannot pass.\")\n  failed = true;\n}\n\nif (this.actor.itemTags.skill.find(i => i.name == \"Lore (Runes)\"))\n  {\n    let test = await this.actor.setupSkill(\"Lore (Runes)\", {appendTitle :": ", fields : {difficulty : \"vhard\"}})\n  await Test.roll();\n  if (Test.Échoué)\n  {\n    Échoué = true;\n  }\n}\nelse \n{\n  this.script.notification(\"No Lore (Theology) Compétence found, Impossible de pass.\")\n  Échoué = true;\n}\n\nif (this.actor.itemTags.Compétence.find(i => i.name == \"Lore (Runes)\"))\n  {\n    let Test = await this.actor.setupSkill(\"Lore (Runes)\", {appendTitle :",
  ", fields : {difficulty : \"hard\"}})\n    await test.roll();\n    if (test.failed)\n    {\n      failed = true;\n    }\n  }\n  else \n  {\n    this.script.notification(\"No Lore (Runes) skill found, cannot pass.\")\n    failed = true;\n  }\n\n\n  let test = await this.actor.setupSkill(\"Art (Tattooing)\", {appendTitle :": ", fields : {difficulty : \"hard\"}})\n    await Test.roll();\n    if (Test.Échoué)\n    {\n      Échoué = true;\n    }\n  }\n  else \n  {\n    this.script.notification(\"No Lore (Runes) Compétence found, Impossible de pass.\")\n    Échoué = true;\n  }\n\n\n  let Test = await this.actor.setupSkill(\"Art (Tattooing)\", {appendTitle :",
  ")\n    let configBlessings = await Promise.all((game.wfrp4e.config.godBlessings[god.toLowerCase()] || []).map(fromUuid));\n    if (god ==": ")\n    let configBlessings = await Promise.tout((game.wfrp4e.config.godBlessings[god.toLowerCase()] || []).map(fromUuid));\n    if (god ==",
  "))\n        await this.actor.addEffectItems(blessings.map(i => i.uuid), this.effect)\n    }\n    else\n    {\n        this.script.scriptNotification(`Impossible de trouver des Bénédictions associées à ${god}.`)\n    }\n    if (this.item.name.includes(": "))\n        await this.actor.addEffectItems(blessings.map(i => i.uuid), this.effet)\n    }\n    else\n    {\n        this.script.scriptNotification(`Impossible de trouver des Bénédictions associées à ${god}.`)\n    }\n    if (this.item.name.includes(",
  ", group)})\n\tthis.effect.updateSource({name : this.effect.name + ` (${group})`})\n}\n\n\ndata.name = data.name.replace(": ", group)})\n\tthis.effet.updateSource({name : this.effet.name + ` (${group})`})\n}\n\n\ndata.name = data.name.replace(",
  ", \"system.tests.value\" : this.item.system.tests.value.replace(\"Group\", group)})\n\tthis.effect.updateSource({name : this.effect.name +": ", \"system.Tests.value\" : this.item.system.Tests.value.replace(\"Group\", group)})\n\tthis.effet.updateSource({name : this.effet.name +",
  "attrait du Léviathan.`);\n    loreTest.renderRollCard();\n    return;\n  }\n}\n\nlet test = await actor.setupSkill(": "attrait du Léviathan.`);\n    loreTest.renderRollCard();\n    return;\n  }\n}\n\nlet Test = await actor.setupSkill(",
  ",  {\n  appendTitle: ` – ${this.effect.name}`,\n  skipTargets: true,\n  fields: {difficulty:": ",  {\n  appendTitle: ` – ${this.effet.name}`,\n  skipTargets: true,\n  fields: {difficulty:",
  ");\n    loreTest.renderRollCard();\n    return;\n  }\n}\n\nlet test = await actor.setupSkill('Calme',  {\n  appendTitle:": ");\n    loreTest.renderRollCard();\n    return;\n  }\n}\n\nlet Test = await actor.setupSkill('Calme',  {\n  appendTitle:",
  ", this.effect.name)\n\nif (characteristics.has(": ", this.effet.name)\n\nif (characteristics.has(",
  ", availableChoices);\n\n  if (!result) return;\n\n  characteristics.add(result);\n}\n\nthis.effect.setFlag(": ", availableChoices);\n\n  if (!result) return;\n\n  characteristics.add(result);\n}\n\nthis.effet.setFlag(",
  ").roll({allowInteractive : false});\nlet regen = regenRoll.total;\n\nif (wounds.value >= wounds.max)\n    return\n\nif (wounds.value > 0) \n{\n    wounds.value += regen\n    if (wounds.value > wounds.max)\n    {\n        wounds.value = wounds.max\n    }\n    message += `<b>${this.actor.name}</b> regains ${regen} Wounds.`\n\n    if (regen == 10)\n    {\n        message += `<br>Additionally, they regenerate a Critical Wound.`\n    }\n}\nelse if (regen >= 8) \n{\n    message += `<b>${this.actor.name}</b> rolled a ${regen} and regains 1 Wound.`\n    wounds.value += 1\n    if (regen == 10)\n    {\n        message += `<br>Additionally, they regenerate a Critical Wound.`\n    }\n}\nelse \n{\n    message += `<b>${this.actor.name}</b> Régénération roll of ${regen} - No effect.`\n}\n\nawait this.actor.update({": ").roll({allowInteractive : false});\nlet regen = regenRoll.total;\n\nif (Blessures.value >= Blessures.max)\n    return\n\nif (Blessures.value > 0) \n{\n    Blessures.value += regen\n    if (Blessures.value > Blessures.max)\n    {\n        Blessures.value = Blessures.max\n    }\n    message += `<b>${this.actor.name}</b> regains ${regen} Blessures.`\n\n    if (regen == 10)\n    {\n        message += `<br>Additionally, they regenerate a Critique Wound.`\n    }\n}\nelse if (regen >= 8) \n{\n    message += `<b>${this.actor.name}</b> rolled a ${regen} and regains 1 Wound.`\n    Blessures.value += 1\n    if (regen == 10)\n    {\n        message += `<br>Additionally, they regenerate a Critique Wound.`\n    }\n}\nelse \n{\n    message += `<b>${this.actor.name}</b> Régénération roll of ${regen} - No effet.`\n}\n\nawait this.actor.update({",
  ": wounds })\nthis.script.message(message, { whisper: ChatMessage.getWhisperRecipients(": ": Blessures })\nthis.script.message(message, { whisper: ChatMessage.getWhisperRecipients(",
  "wounds.value += 1\n    if (regen == 10)\n    {\n        message +=": "Blessures.value += 1\n    if (regen == 10)\n    {\n        message +=",
  ",\n        value: /^((?!\\().)*$/gm, // Remove all spells with parentheses (all arcane spells spells)\n        regex: true\n    },\n    {\n        property :": ",\n        value: /^((?!\\().)*$/gm, // Remove tout spells with parentheses (tout arcane spells spells)\n        regex: true\n    },\n    {\n        property :",
  "+ this.effect.name\nawait this.actor.update(updateObj)\nthis.actor.createEmbeddedDocuments(": "+ this.effet.name\nawait this.actor.update(updateObj)\nthis.actor.createEmbeddedDocuments(",
  "></i> Critical</a>`;\n  \n  const test = await this.actor.setupSkill(game.i18n.localize(": "></i> Critique</a>`;\n  \n  const Test = await this.actor.setupSkill(game.i18n.localize(",
  "), {\n    skipTargets: true,\n    appendTitle: ` - ${this.effect.name}`,\n    fields: {difficulty:": "), {\n    skipTargets: true,\n    appendTitle: ` - ${this.effet.name}`,\n    fields: {difficulty:",
  "<a data-action=\"clickTable\" class=\"action-link critical\" data-table=\"crithead\" data-modifier=\"0\"><i class=\"fas fa-list\"></i> Critical</a>": "<a data-action=\"clickTable\" class=\"action-link Critique\" data-table=\"crithead\" data-modifier=\"0\"><i class=\"fas fa-list\"></i> Critique</a>",
  "Must provide a Master Rune": "Doit fournir une Rune Maîtresse",
  ", title : this.effect.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && item.system.master, onError: \"Must provide a Master Rune\"});\n    }\n  }\n  else \n  {\n    rune = await DragDialog.create({text :": ", title : this.effet.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && item.system.master, onError: \"Doit provide a Master Rune\"});\n    }\n  }\n  else \n  {\n    rune = await DragDialog.create({text :",
  ", title : this.effect.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && item.system.master, onError: \"Must provide a Master Rune\"});\n  }\n}\nelse \n{\n  rune = await DragDialog.create({text :": ", title : this.effet.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && item.system.master, onError: \"Doit provide a Master Rune\"});\n  }\n}\nelse \n{\n  rune = await DragDialog.create({text :",
  ", title : this.effect.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && item.system.master, onError: \"Must provide a Master Rune\"});\n}\n\nthis.actor.addEffectItems(rune.uuid, this.effect)\n\nlet talents = this.actor.itemTags.talent.filter(i => i.baseName == this.item.baseName);\nlet xpCost = talents.length * 100\n\nif (this.actor.type == \"character\" && (await foundry.applications.api.DialogV2.confirm({window: {title: this.effect.name}, content:": ", title : this.effet.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && item.system.master, onError: \"Doit provide a Master Rune\"});\n}\n\nthis.actor.addEffectItems(rune.uuid, this.effet)\n\nlet talents = this.actor.itemTags.talent.filter(i => i.baseName == this.item.baseName);\nlet xpCost = talents.length * 100\n\nif (this.actor.type == \"character\" && (await foundry.applications.api.DialogV2.confirm({window: {title: this.effet.name}, content:",
  "Must provide a Rune (non-Master)": "Doit fournir une Rune (non-Maîtresse)",
  ", title : this.effect.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && !item.system.master, onError: \"Must provide a Rune (non-Master)\"});\n    }\n  }\n  else \n  {\n    rune = await DragDialog.create({text :": ", title : this.effet.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && !item.system.master, onError: \"Doit provide a Rune (non-Master)\"});\n    }\n  }\n  else \n  {\n    rune = await DragDialog.create({text :",
  ", title : this.effect.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && !item.system.master, onError: \"Must provide a Rune (non-Master)\"});\n  }\n}\nelse \n{\n  rune = await DragDialog.create({text :": ", title : this.effet.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && !item.system.master, onError: \"Doit provide a Rune (non-Master)\"});\n  }\n}\nelse \n{\n  rune = await DragDialog.create({text :",
  ", title : this.effect.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && !item.system.master, onError: \"Must provide a Rune (non-Master)\"});\n}\n\nthis.actor.addEffectItems(rune.uuid, this.effect)\n\nlet talents = this.actor.itemTags.talent.filter(i => i.baseName == this.item.baseName);\nlet xpCost = talents.length * 100\n\nif (this.actor.type == \"character\" && (await foundry.applications.api.DialogV2.confirm({window: {title: this.effect.name}, content:": ", title : this.effet.name, filter: (item) => item.type == \"wfrp4e-dwarfs.rune\" && !item.system.master, onError: \"Doit provide a Rune (non-Master)\"});\n}\n\nthis.actor.addEffectItems(rune.uuid, this.effet)\n\nlet talents = this.actor.itemTags.talent.filter(i => i.baseName == this.item.baseName);\nlet xpCost = talents.length * 100\n\nif (this.actor.type == \"character\" && (await foundry.applications.api.DialogV2.confirm({window: {title: this.effet.name}, content:",
  ", title : this.effect.name});\n        if (value)\n        {\n            name = `${name.split(": ", title : this.effet.name});\n        if (value)\n        {\n            name = `${name.split(",
  ")[0].trim()} (${value})`\n            tests = this.item.system.tests.value.replace(": ")[0].trim()} (${value})`\n            Tests = this.item.system.Tests.value.replace(",
  "}\n    else\n    {\n        let value = await ValueDialog.create({text : \"Entrez le Groupe d'Étiquette\", title : this.effect.name});\n        if (value)\n        {\n            name =": "}\n    else\n    {\n        let value = await ValueDialog.create({text : \"Entrez le Groupe d'Étiquette\", title : this.effet.name});\n        if (value)\n        {\n            name =",
  ");\n}\n\nif (this.actor.items.find(i => i.type === \"extendedTest\" && i.name === this.effect.name)) {\n  this.script.message(": ");\n}\n\nif (this.actor.items.find(i => i.type === \"extendedTest\" && i.name === this.effet.name)) {\n  this.script.message(",
  ");\n\n  return;\n}\n\nconst extendedTestData = {\n  name: this.effect.name,\n  type: \"extendedTest\",\n  img: this.effect.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target.actor.system.status.wounds.value\n    },\n    test: {\n      value: 'Strength'\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: \"challenging\"\n    }\n  }\n};\n\nconst extendedTests = await this.actor.createEmbeddedDocuments(\"Item\", [extendedTestData], {fromEffect: this.effect.id});\nconst extendedTest = extendedTests[0];\n\nthis.script.message(": ");\n\n  return;\n}\n\nconst extendedTestData = {\n  name: this.effet.name,\n  type: \"extendedTest\",\n  img: this.effet.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target.actor.system.status.Blessures.value\n    },\n    Test: {\n      value: 'Strength'\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: \"challenging\"\n    }\n  }\n};\n\nconst extendedTests = await this.actor.createEmbeddedDocuments(\"Item\", [extendedTestData], {fromEffect: this.effet.id});\nconst extendedTest = extendedTests[0];\n\nthis.script.message(",
  ");\n\nlet effect = {\n  name: extendedTest.name,\n  img: extendedTest.img,\n  system: {\n    transferData : {\n        type: \"document\",\n        documentType: \"Item\"\n      },\n      scriptData: [\n        {\n          label: extendedTest.name,\n          script:": ");\n\nlet effet = {\n  name: extendedTest.name,\n  img: extendedTest.img,\n  system: {\n    transferData : {\n        type: \"document\",\n        documentType: \"Item\"\n      },\n      scriptData: [\n        {\n          label: extendedTest.name,\n          script:",
  ");\n              await effect.delete();": ");\n              await effet.delete();",
  ", {\n  skipTargets: true, \n  appendTitle:  ` — ${this.effect.name}`, \n  fields: {\n    difficulty:": ", {\n  skipTargets: true, \n  appendTitle:  ` — ${this.effet.name}`, \n  fields: {\n    difficulty:",
  ",\n  }\n});\n\nawait test.roll();\nif (test.failure) {\n  await this.actor.addCondition(": ",\n  }\n});\n\nawait Test.roll();\nif (Test.failure) {\n  await this.actor.addCondition(",
  "}. Do you want to roll d10?</p>\n    <p>1–6: add +1 SL</p>\n    <p>7–10: lose all accrued SLs and perform next Test at –1 SL</p>\n  </div>\n`;\n  const choice = await foundry.applications.api.DialogV2.confirm({\n    yes: {label:": "}. Do you want to roll d10?</p>\n    <p>1–6: add +1 SL</p>\n    <p>7–10: lose tout accrued SLs and perform next Test at –1 SL</p>\n  </div>\n`;\n  const choice = await foundry.applications.api.DialogV2.confirm({\n    yes: {label:",
  ");\n  await roll.toMessage({flavor: this.effect.name});\n\n  if (roll.total >= 7) {\n    SL = -1;\n    break;\n  }\n\n  SL++;\n} while (true);\n\nthis.effect.setFlag(": ");\n  await roll.toMessage({flavor: this.effet.name});\n\n  if (roll.total >= 7) {\n    SL = -1;\n    break;\n  }\n\n  SL++;\n} while (true);\n\nthis.effet.setFlag(",
  ", { appendTitle: ` - ${this.effect.name}`, fields: { difficulty:": ", { appendTitle: ` - ${this.effet.name}`, fields: { difficulty:",
  "} })\nawait test.roll();\n\nif (test.failed) \n{\n    let ageAdded = Math.ceil(CONFIG.Dice.randomUniform() * 10) + Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ws = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let bs = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let s = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let t = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ag = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let dex = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n\n    let currentAge = parseInt(this.actor.system.details.age.value)\n\n    let inline = `<a class=": "} })\nawait Test.roll();\n\nif (Test.Échoué) \n{\n    let ageAdded = Math.ceil(CONFIG.Dice.randomUniform() * 10) + Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ws = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let bs = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let s = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let t = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ag = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let dex = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n\n    let currentAge = parseInt(this.actor.system.details.age.value)\n\n    let inline = `<a class=",
  ", fields: { difficulty: \"challenging\" } })\nawait test.roll();\n\nif (test.failed) \n{\n    let ageAdded = Math.ceil(CONFIG.Dice.randomUniform() * 10) + Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ws = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let bs = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let s = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let t = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ag = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let dex = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n\n    let currentAge = parseInt(this.actor.system.details.age.value)\n\n    let inline =": ", fields: { difficulty: \"challenging\" } })\nawait Test.roll();\n\nif (Test.Échoué) \n{\n    let ageAdded = Math.ceil(CONFIG.Dice.randomUniform() * 10) + Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ws = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let bs = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let s = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let t = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let ag = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n    let dex = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n\n    let currentAge = parseInt(this.actor.system.details.age.value)\n\n    let inline =",
  "Choose Group": "Choisir Group",
  ", this.actor).roll()\n\nroll.toMessage(this.script.getChatData({flavor : `${this.effect.name} (Durée)`}));\n\nthis.effect.updateSource({": ", this.actor).roll()\n\nroll.toMessage(this.script.getChatData({flavor : `${this.effet.name} (Durée)`}));\n\nthis.effet.updateSource({",
  ",\n      {whisper: ChatMessage.getWhisperRecipients(\"GM\")})\n}\n\n// Notify of lingering effects when mask is removed\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name += \" (Utilisé)\"})\n    this.script.message(": ",\n      {whisper: ChatMessage.getWhisperRecipients(\"GM\")})\n}\n\n// Notify of lingering effects when mask is Retiré\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name += \" (Utilisé)\"})\n    this.script.message(",
  ",\n      {whisper: ChatMessage.getWhisperRecipients(\"GM\")})\n}\n\n// Notify of lingering effects when mask is removed\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name += \" (Used)\"})\n    this.script.message(": ",\n      {whisper: ChatMessage.getWhisperRecipients(\"GM\")})\n}\n\n// Notify of lingering effects when mask is Retiré\nelse if (!args.equipped)\n{\n    await this.item.effects.contents[0].delete();\n    await this.item.update({name : this.item.name += \" (Used)\"})\n    this.script.message(",
  "}\n});\n\nawait test.roll();\n\nif (test.failed) {\n  await this.actor.addEffectItems(bloodyFluxUUID, this.effect);\n} else {\n  const SL = test.result.SL;\n  const heal = 1 + SL;\n  await this.actor.modifyWounds(heal);\n  this.script.message(": "}\n});\n\nawait Test.roll();\n\nif (Test.Échoué) {\n  await this.actor.addEffectItems(bloodyFluxUUID, this.effet);\n} else {\n  const SL = Test.result.SL;\n  const heal = 1 + SL;\n  await this.actor.modifyWounds(heal);\n  this.script.message(",
  "You must control an Actor capable of performing a Strength Test": "You Doit control an Actor capable of performing a Strength Test",
  "}\n});\n\nawait test.roll();\nif (test.succeeded) {\n  let SL = parseInt(test.result.SL);\n  let name = this.effect.name.replace(/\\d+/, rating => parseInt(rating) - SL);\n  await this.effect.update({name});\n}\n\nlet rating = parseInt(this.effect.name.match(/\\d+/)?.[0]);\nif (rating <= 1) {\n  const scriptData = this.effect.system.scriptData\n  scriptData[2].trigger = '';\n  await this.effect.update({disabled: true,": "}\n});\n\nawait Test.roll();\nif (Test.succeeded) {\n  let SL = parseInt(Test.result.SL);\n  let name = this.effet.name.replace(/\\d+/, rating => parseInt(rating) - SL);\n  await this.effet.update({name});\n}\n\nlet rating = parseInt(this.effet.name.match(/\\d+/)?.[0]);\nif (rating <= 1) {\n  const scriptData = this.effet.system.scriptData\n  scriptData[2].trigger = '';\n  await this.effet.update({disabled: true,",
  ", {appendTitle : ` - ${this.effect.name}`, fields : {difficulty :": ", {appendTitle : ` - ${this.effet.name}`, fields : {difficulty :",
  "}});\n\nawait test.roll();\n\nif (test.failed)\n{\n\n   if (test.isCriticalFumble ==": "}});\n\nawait Test.roll();\n\nif (Test.Échoué)\n{\n\n   if (Test.isCriticalFumble ==",
  ", fields : {difficulty : \"difficult\"}});\n\nawait test.roll();\n\nif (test.failed)\n{\n\n   if (test.isCriticalFumble == \"fumble\")\n   {\n\t return this.script.message(": ", fields : {difficulty : \"difficult\"}});\n\nawait Test.roll();\n\nif (Test.Échoué)\n{\n\n   if (Test.isCriticalFumble == \"fumble\")\n   {\n\t return this.script.message(",
  ");\n    loreTest.renderRollCard();\n    return;\n  } \n}\n\nlet test = await actor.setupSkill('Calme',  {\n  appendTitle:": ");\n    loreTest.renderRollCard();\n    return;\n  } \n}\n\nlet Test = await actor.setupSkill('Calme',  {\n  appendTitle:",
  ", {skipTargets: true, appendTitle :  ` - Used ${this.effect.name}`, fields: { difficulty:": ", {skipTargets: true, appendTitle :  ` - Used ${this.effet.name}`, fields: { difficulty:",
  "} }).then(async test => {\n      await test.roll()\n      if (test.failed) \n      {\n        let toughnessLost = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n        this.actor.update({": "} }).then(async Test => {\n      await Test.roll()\n      if (Test.Échoué) \n      {\n        let toughnessLost = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n        this.actor.update({",
  ", fields: { difficulty: \"difficult\" } }).then(async test => {\n      await test.roll()\n      if (test.failed) \n      {\n        let toughnessLost = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n        this.actor.update({ \"system.characteristics.t.initial\": this.actor.characteristics.t.initial - toughnessLost })\n        this.script.message(": ", fields: { difficulty: \"difficult\" } }).then(async Test => {\n      await Test.roll()\n      if (Test.Échoué) \n      {\n        let toughnessLost = Math.ceil(CONFIG.Dice.randomUniform() * 10)\n        this.actor.update({ \"system.characteristics.t.initial\": this.actor.characteristics.t.initial - toughnessLost })\n        this.script.message(",
  ": 0\n}\nlet skills = []\nlet skillAdvancements = []\nlet talents = []\nlet trappings = []\nlet items = []\n\nlet updateObj = this.actor.toObject();\n\nfor (let ch in characteristics)\n{\n    updateObj.system.characteristics[ch].modifier += characteristics[ch];\n}\n\nfor (let index = 0; index < skills.length; index++)\n{\n    let skill = skills[index]\n    let skillItem;\n    skillItem = updateObj.items.find(i => i.name == skill && i.type ==": ": 0\n}\nlet skills = []\nlet skillAdvancements = []\nlet talents = []\nlet trappings = []\nlet items = []\n\nlet updateObj = this.actor.toObject();\n\nfor (let ch in characteristics)\n{\n    updateObj.system.characteristics[ch].modifier += characteristics[ch];\n}\n\nfor (let index = 0; index < skills.length; index++)\n{\n    let Compétence = skills[index]\n    let skillItem;\n    skillItem = updateObj.items.find(i => i.name == Compétence && i.type ==",
  ")\n    if (skillItem)\n        skillItem.system.advances.value += skillAdvancements[index]\n    else\n    {\n        skillItem = await game.wfrp4e.utility.findSkill(skill)\n        skillItem = skillItem.toObject();\n        skillItem.system.advances.value = skillAdvancements[index];\n        items.push(skillItem);\n    }\n}\n\nfor (let talent of talents)\n{\n    let talentItem = await game.wfrp4e.utility.findTalent(talent)\n    if (talentItem)\n    {\n        items.push(talentItem.toObject());\n    }\n    else\n    {\n        ui.notifications.warn(`Impossible de trouver ${talent}`, {permanent : true})\n    }\n}\n\nfor (let trapping of trappings)\n{\n    let trappingItem = await game.wfrp4e.utility.findItem(trapping)\n    if (trappingItem)\n    {\n        trappingItem = trappingItem.toObject()\n\n        trappingItem.system.equipped.value = true;\n\n        items.push(trappingItem);\n    }\n    else\n    {\n        ui.notifications.warn(`Impossible de trouver ${trapping}`, {permanent : true})\n    }\n}\n\n\nawait this.actor.update(updateObj)\nthis.actor.createEmbeddedDocuments(": ")\n    if (skillItem)\n        skillItem.system.advances.value += skillAdvancements[index]\n    else\n    {\n        skillItem = await game.wfrp4e.utility.findSkill(Compétence)\n        skillItem = skillItem.toObject();\n        skillItem.system.advances.value = skillAdvancements[index];\n        items.push(skillItem);\n    }\n}\n\nfor (let talent of talents)\n{\n    let talentItem = await game.wfrp4e.utility.findTalent(talent)\n    if (talentItem)\n    {\n        items.push(talentItem.toObject());\n    }\n    else\n    {\n        ui.notifications.warn(`Impossible de trouver ${talent}`, {permanent : true})\n    }\n}\n\nfor (let trapping of trappings)\n{\n    let trappingItem = await game.wfrp4e.utility.findItem(trapping)\n    if (trappingItem)\n    {\n        trappingItem = trappingItem.toObject()\n\n        trappingItem.system.equipped.value = true;\n\n        items.push(trappingItem);\n    }\n    else\n    {\n        ui.notifications.warn(`Impossible de trouver ${trapping}`, {permanent : true})\n    }\n}\n\n\nawait this.actor.update(updateObj)\nthis.actor.createEmbeddedDocuments(",
  "<p>\n        Select your choice\n        </p>\n        <ol>\n        <li>Melee (Basic)</li>\n        <li>Melee (Two-Handed)</li>\n        </ol>": "<p>\n        Sélectionner your choice\n        </p>\n        <ol>\n        <li>Melee (Basic)</li>\n        <li>Melee (Two-Handed)</li>\n        </ol>",
  "Choose Qualities to add": "Choisir Qualities to add",
  "Choose Flaws to remove": "Choisir Flaws to remove",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`})\nawait test.roll();\n\n\nlet opposedResult = test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result\n\nif (opposedResult?.winner ==": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`})\nawait Test.roll();\n\n\nlet opposedResult = Test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result\n\nif (opposedResult?.winner ==",
  "})\nawait test.roll();\n\n\nlet opposedResult = test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result\n\nif (opposedResult?.winner == \"attacker\")\n{\n    let spells = this.actor.itemTypes.spell;\n    if (spells.length)\n    {\n        let chosen = spells[Math.floor(CONFIG.Dice.randomUniform() * spells.length)]\n        this.script.message(": "})\nawait Test.roll();\n\n\nlet opposedResult = Test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result\n\nif (opposedResult?.winner == \"attacker\")\n{\n    let spells = this.actor.itemTypes.spell;\n    if (spells.length)\n    {\n        let chosen = spells[Math.floor(CONFIG.Dice.randomUniform() * spells.length)]\n        this.script.message(",
  "<p>Damage all Items carried?</p>": "<p>Damage tout Items carried?</p>",
  "Choose Optional Traits": "Choisir Optional Traits",
  "You must target exactly one Boat.": "You Doit target exactly one Boat.",
  ": []});\n        msg += `<p>${item.name} loses all Qualities</p>`\n    }\n    else \n    {\n        msg += `<p>${item.name} crumbles into dust!</p>` \n        await item.update({name : item.name +": ": []});\n        msg += `<p>${item.name} loses tout Qualities</p>`\n    }\n    else \n    {\n        msg += `<p>${item.name} crumbles into dust!</p>` \n        await item.update({name : item.name +",
  "}});\nawait test.roll();\nCorruptionMessageModel.createCorruptionMessage(": "}});\nawait Test.roll();\nCorruptionMessageModel.createCorruptionMessage(",
  ", this.script.getChatData())\n\nif (test.failed)\n{\n    this.actor.addCondition(": ", this.script.getChatData())\n\nif (Test.Échoué)\n{\n    this.actor.addCondition(",
  ")\n\nlet value = hitloc.result\nlet desc = hitloc.description\n\nthis.effect.updateSource({": ")\n\nlet value = hitloc.result\nlet desc = hitloc.description\n\nthis.effet.updateSource({",
  "EFFECT.CreatureBackInWater": "Effet.CreatureBackInWater",
  "EFFECT.CreatureOutOfWater": "Effet.CreatureOutOfWater",
  ": 5\n        }\n        let items = []\n\n        let updateObj = this.actor.toObject();\n\n        let talents = (await Promise.all([game.wfrp4e.tables.rollTable(": ": 5\n        }\n        let items = []\n\n        let updateObj = this.actor.toObject();\n\n        let talents = (await Promise.tout([game.wfrp4e.tables.rollTable(",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'challenging';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'challenging';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "}\n});\n\nawait test.roll();\n\nif (test.failed) {\n  args.actor.addCondition(\"poisoned\");\n  const speaker = ChatMessage.getSpeaker({actor: args.actor});\n  this.script.message(": "}\n});\n\nawait Test.roll();\n\nif (Test.Échoué) {\n  args.actor.addCondition(\"poisoned\");\n  const speaker = ChatMessage.getSpeaker({actor: args.actor});\n  this.script.message(",
  ")})\n    if (args.test.failed && this.actor.type ==": ")})\n    if (args.Test.Échoué && this.actor.type ==",
  "Set Liquid Fortification effect duration to 1 hour.": "Set Liquid Fortification effet duration to 1 hour.",
  "Reset Liquid Fortification effect duration to 1 hour.": "Reset Liquid Fortification effet duration to 1 hour.",
  "Choose Symptoms": "Choisir Symptoms",
  "&& args.test.failed && args.test.result.SL <= -3)\n{\n    this.script.notification(": "&& args.Test.Échoué && args.Test.result.SL <= -3)\n{\n    this.script.notification(",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`})\nawait test.roll();\nif (test.succeeded)\n{\n    this.script.message(": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`})\nawait Test.roll();\nif (Test.succeeded)\n{\n    this.script.message(",
  "This Actor does not know any runes.": "This Actor does not know tout runes.",
  ") return;\n\nconst SL = args.opposedTest.data.opposeResult.differenceSL;\n\nconst targetId = this.effect.getFlag(": ") return;\n\nconst SL = args.opposedTest.data.opposeResult.differenceSL;\n\nconst targetId = this.effet.getFlag(",
  ");\n  return await this.effect.delete();\n}\n\nif (SL > 0) {\n  args.opposedTest.data.opposeResult.other.push(": ");\n  return await this.effet.delete();\n}\n\nif (SL > 0) {\n  args.opposedTest.data.opposeResult.other.push(",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'difficult';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'difficult';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "All Effects have been used. Reset to select them again": "Tout Effects have been used. Reset to Sélectionner them again",
  "Choose Power to Gain": "Choisir Power to Gain",
  ";\nconst test = 'Trade (Carpentry)';\nconst difficulty = 'easy';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Carpentry)';\nconst difficulty = 'easy';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Voile';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Voile';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Trade (Carpentry)';\nconst difficulty = 'hard';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Carpentry)';\nconst difficulty = 'hard';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Voile';\nconst difficulty = 'average';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Voile';\nconst difficulty = 'average';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Métier (Ingénieur)';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Ingénieur)';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'difficult';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'difficult';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'hard';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'hard';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Strength';\nconst difficulty = 'average';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Strength';\nconst difficulty = 'average';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`, context: { failure:": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`, context: { failure:",
  "}\n});\n\nawait test.roll();\n\nif (test.failed) {\n  const SL = Number(test.result.SL);\n  this.script.message(": "}\n});\n\nawait Test.roll();\n\nif (Test.Échoué) {\n  const SL = Number(Test.result.SL);\n  this.script.message(",
  ": locations})\nthis.effect.updateSource({": ": locations})\nthis.effet.updateSource({",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'challenging';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'challenging';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "s name\nawait effect.update({\n  name,\n  \"system.scriptData\": scriptData\n});\n\n\n// update Trait": "s name\nawait effet.update({\n  name,\n  \"system.scriptData\": scriptData\n});\n\n\n// update Trait",
  ";\nconst test = 'Trade (Tailor)';\nconst difficulty = 'difficult';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Tailor)';\nconst difficulty = 'difficult';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "]\n    }\n]\n\nlet arcane = await ItemDialog.createFromFilters(filters, 12, {title : this.effect.name, text :": "]\n    }\n]\n\nlet arcane = await ItemDialog.createFromFilters(filters, 12, {title : this.effet.name, text :",
  ";\nconst test = 'Trade (Carpentry)';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Carpentry)';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Trade (Carpentry)';\nconst difficulty = 'difficult';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Carpentry)';\nconst difficulty = 'difficult';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "}})\nawait test.roll();\n\nif (!test.succeeded)\n{\n\tthis.actor.addCondition(": "}})\nawait Test.roll();\n\nif (!Test.succeeded)\n{\n\tthis.actor.addCondition(",
  "}});\nawait test.roll();\n\nif (test.failed)\n{\n   await this.actor.addCondition(": "}});\nawait Test.roll();\n\nif (Test.Échoué)\n{\n   await this.actor.addCondition(",
  ";\nconst test = 'Strength';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Strength';\nconst difficulty = 'easy';\nconst target = 10;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "; // Put path to token image here, inbetween the quotation marks\nif (tokenImg)\n{\n    if (this.effect.getFlag(": "; // Put path to token image here, inbetween the quotation marks\nif (tokenImg)\n{\n    if (this.effet.getFlag(",
  ";\n\t\t\targs.test.result.description =": ";\n\t\t\targs.Test.result.description =",
  "}\n\t\targs.test.result.outcome =": "}\n\t\targs.Test.result.outcome =",
  "Failed Trade (Engineering)": "Échoué Trade (Engineering)",
  ";\nconst test = 'Trade (Tailor)';\nconst difficulty = 'easy';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Tailor)';\nconst difficulty = 'easy';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ") \n{\n    if (args.test.failed)\n    {\n        let item = await fromUuid(": ") \n{\n    if (args.Test.Échoué)\n    {\n        let item = await fromUuid(",
  ";\nconst test = 'Trade (Carpentry)';\nconst difficulty = 'challenging';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Carpentry)';\nconst difficulty = 'challenging';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'difficult';\nconst target = 50;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'difficult';\nconst target = 50;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ") \n{\n    if (args.test.failed)\n    {\n        this.actor.createEmbeddedDocuments(": ") \n{\n    if (args.Test.Échoué)\n    {\n        this.actor.createEmbeddedDocuments(",
  "]])\n        this.script.message(`Willpower Test failed, <b>${this.actor.prototypeToken.name}</b> gains @Condition[Malaise] for [[1d10]] hours`, {whisper: ChatMessage.getWhisperRecipients(": "]])\n        this.script.message(`Willpower Test Échoué, <b>${this.actor.prototypeToken.name}</b> gains @Condition[Malaise] for [[1d10]] hours`, {whisper: ChatMessage.getWhisperRecipients(",
  "}\n  \n  args.test.result.other.push (": "}\n  \n  args.Test.result.other.push (",
  ";\nconst test = 'Trade (Tailor)';\nconst difficulty = 'easy';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Trade (Tailor)';\nconst difficulty = 'easy';\nconst target = 30;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ").map(i => `max(0, 1d10 - ${this.actor.system.characteristics.fel.bonus})`)\n\nlet test = new Roll(`${rolls.join(": ").map(i => `max(0, 1d10 - ${this.actor.system.characteristics.fel.bonus})`)\n\nlet Test = new Roll(`${rolls.join(",
  ")\n\nlet test = new Roll(": ")\n\nlet Test = new Roll(",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`, fields: { difficulty:": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`, fields: { difficulty:",
  "} }).then(async test => {\n        await test.roll();\n        if (test.failed) \n        {\n           await args.actor.addCondition(": "} }).then(async Test => {\n        await Test.roll();\n        if (Test.Échoué) \n        {\n           await args.actor.addCondition(",
  "}})\nawait test.roll();\nif (test.failed)\n{\n    let roll = await new Roll(": "}})\nawait Test.roll();\nif (Test.Échoué)\n{\n    let roll = await new Roll(",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'challenging';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'challenging';\nconst target = 20;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "<p>Does the vessel have a magazine or any other kind of store for blackpowder?</p>": "<p>Does the vessel have a magazine or tout other kind of store for blackpowder?</p>",
  ";\nconst test = 'Voile';\nconst difficulty = 'challenging';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Voile';\nconst difficulty = 'challenging';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  ";\nconst test = 'Métier (Charpentier)';\nconst difficulty = 'easy';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    test: {\n      value: test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:": ";\nconst Test = 'Métier (Charpentier)';\nconst difficulty = 'easy';\nconst target = 40;\n\nconst extendedTestData = {\n  name: this.item.name,\n  type: \"extendedTest\",\n  img: this.item.img,\n  system: {\n    SL: {\n      current: 0,\n      target: target\n    },\n    Test: {\n      value: Test\n    },\n    completion: {\n      value: \"remove\"\n    },\n    difficulty: {\n      value: difficulty\n    }\n  },\n  effects: [\n    {\n      name:",
  "this.script.message(msg)\n\nlet test = await this.actor.setupSkill(\"Résistance\", {fields : {difficulty : \"difficult\"}, appendTitle :": "this.script.message(msg)\n\nlet Test = await this.actor.setupSkill(\"Résistance\", {fields : {difficulty : \"difficult\"}, appendTitle :",
  "Choose Location": "Choisir Location",
  "Hatred (All enemies)": "Hatred (Tout enemies)",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`});\nawait test.roll();\nif (test.failed)\n{\n   this.actor.addCondition(": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`});\nawait Test.roll();\nif (Test.Échoué)\n{\n   this.actor.addCondition(",
  ")\n            this.actor.modifyWounds(-1 * value)\n            await this.item.system.toggleEquip();\n            args.test.addSL(value);\n            args.test.preData.other.push(": ")\n            this.actor.modifyWounds(-1 * value)\n            await this.item.system.toggleEquip();\n            args.Test.addSL(value);\n            args.Test.preData.other.push(",
  "<p>This Talent also extends to any metal object because of <strong>Metallic Affinity</strong></p>": "<p>This Talent also extends to tout metal object because of <strong>Metallic Affinity</strong></p>",
  "Halve Damage? (Halves all damage other than fire, cold, and magic)": "Halve Damage? (Halves tout damage other than fire, cold, and magic)",
  "Choose Limb": "Choisir Limb",
  "Effect Used": "Effet Used",
  "must make a <b>Willpower</b> Test or fall @Condition[Prone].": "Doit make a <b>Willpower</b> Test or fall @Condition[Prone].",
  "Cannot remove Blinded condition.": "Impossible de remove Blinded condition.",
  "Removed Fatigued": "Retiré Fatigued",
  "})\nawait test.roll();\n\nif (test.failed) {\n  \tthis.script.scriptMessage(await this.actor.applyBasicDamage(20, {suppressMsg: true}));\n        this.script.scriptMessage(": "})\nawait Test.roll();\n\nif (Test.Échoué) {\n  \tthis.script.scriptMessage(await this.actor.applyBasicDamage(20, {suppressMsg: true}));\n        this.script.scriptMessage(",
  "Cannot move or act this Turn": "Impossible de move or act this Turn",
  "Select Wind": "Sélectionner Wind",
  ")\n   bleeding.delete();  \n}\nelse \n{\n   this.script.notification(": ")\n   Saignement.delete();  \n}\nelse \n{\n   this.script.notification(",
  "Choose a Skill": "Choisir a Compétence",
  ") \n{\n    if (args.test.failed)\n    {\n        this.actor.addSystemEffect(": ") \n{\n    if (args.Test.Échoué)\n    {\n        this.actor.addSystemEffect(",
  ",\n}\n\nlet test = await args.actor.setupSkill(": ",\n}\n\nlet Test = await args.actor.setupSkill(",
  "Cannot be Surprised": "Impossible de be Surprised",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`})\nawait test.roll();\nif (test.failed)\n{\n    this.script.message(await game.wfrp4e.tables.formatChatRoll(": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`})\nawait Test.roll();\nif (Test.Échoué)\n{\n    this.script.message(await game.wfrp4e.tables.formatChatRoll(",
  "}, skipTargets: true, appendTitle :  ` - ${this.effect.name}`})\nawait test.roll();\nif (test.failed)\n{\n\tlet stuns = Math.max(1, Math.abs(test.result.SL))\n\tthis.actor.addCondition(": "}, skipTargets: true, appendTitle :  ` - ${this.effet.name}`})\nawait Test.roll();\nif (Test.Échoué)\n{\n\tlet stuns = Math.max(1, Math.abs(Test.result.SL))\n\tthis.actor.addCondition(",
  ")\n}\nelse \n{\n\tlet points = this.effect.sourceTest.result.overcast.usage.other.current;\n\tthis.actor.update({\"system.status.corruption.value\" : this.actor.system.status.corruption.value - points})\n\tthis.script.message(": ")\n}\nelse \n{\n\tlet points = this.effet.sourceTest.result.overcast.usage.other.current;\n\tthis.actor.update({\"system.status.corruption.value\" : this.actor.system.status.corruption.value - points})\n\tthis.script.message(",
  "})\nawait test.roll();\nif (test.failed)\n{\n\n  let myRoll = await new Roll(\"1d10\").roll({allowInteractive : false});\n  let duration = myRoll.total\n  this.actor.addSystemEffect(\"nausea\");\n  this.script.scriptMessage(": "})\nawait Test.roll();\nif (Test.Échoué)\n{\n\n  let myRoll = await new Roll(\"1d10\").roll({allowInteractive : false});\n  let duration = myRoll.total\n  this.actor.addSystemEffect(\"nausea\");\n  this.script.scriptMessage(",
  "Choose the Critical Wounds to heal (cannot reattach body parts)": "Choisir the Critique Blessures to heal (Impossible de reattach body parts)",
  "Choose Taille": "Choisir Taille",
  "Cannot attack targets that are not Entangled": "Impossible de attack targets that are not Entangled",
  ").pop())\n\n   if (ones == 0) {\n      ones = 10;\n   }\n\n   if (ones > SL) {\n      args.test.data.result.SL =": ").pop())\n\n   if (ones == 0) {\n      ones = 10;\n   }\n\n   if (ones > SL) {\n      args.Test.data.result.SL =",
  "Gained 2 Bleeding Conditions": "Gained 2 Saignement Conditions",
  "Choose a Disease": "Choisir a Disease",
  "});\nawait test.roll();\nif (test.failed)\n{\n\tawait this.actor.addCondition(\"blinded\");\n}\n\nlet msg =": "});\nawait Test.roll();\nif (Test.Échoué)\n{\n\tawait this.actor.addCondition(\"blinded\");\n}\n\nlet msg =",
  ")\n   }\n   else if (this.actor.characteristics.int.bonus + Number(args.test.result.SL) < 0)\n   {\n      args.test.result.other.push(": ")\n   }\n   else if (this.actor.characteristics.int.bonus + Number(args.Test.result.SL) < 0)\n   {\n      args.Test.result.other.push(",
  "});\nawait test.roll();\n\nif (test.failed) {\n   this.actor.addCondition('stunned');\n}\n\nthis.script.scriptNotification(": "});\nawait Test.roll();\n\nif (Test.Échoué) {\n   this.actor.addCondition('stunned');\n}\n\nthis.script.scriptNotification(",
  "Added Fatigued": "Ajouté Fatigued",
  "t use this.effect because it thinks it": "t use this.effet because it thinks it",
  "Halve Damage? (Halves Damage from all fire)": "Halve Damage? (Halves Damage from tout fire)",
  "Can only be applied to River Troll.": "Can only be Appliqué to River Troll.",
  "+ parseInt(this.effect.sourceTest.result.SL)": "+ parseInt(this.effet.sourceTest.result.SL)",
  ")\nthis.item.setFlag(\"wfrp4e\", \"uses\", uses);\nif (uses >= 3)\n{\n\tthis.effect.update({\"system.transferData.type\" : \"other\"})\n\tthis.script.notification(": ")\nthis.item.setFlag(\"wfrp4e\", \"uses\", uses);\nif (uses >= 3)\n{\n\tthis.effet.update({\"system.transferData.type\" : \"other\"})\n\tthis.script.notification(",
  "Wounds Healed": "Blessures Healed",
  "Choose a Weapon": "Choisir a Weapon",
  "ambre\";\n    amberTalons.img = this.effect.img;\n    amberTalons.system.damage.value = \"SB + WPB\"\n    amberTalons.system.equipped = true;\n    amberTalons.system.qualities.value.push({name : \"magical\"})\n    amberTalons.effects.push({\n        name : \"Serres d": "ambre\";\n    amberTalons.img = this.effet.img;\n    amberTalons.system.damage.value = \"SB + WPB\"\n    amberTalons.system.equipped = true;\n    amberTalons.system.qualities.value.push({name : \"magical\"})\n    amberTalons.effects.push({\n        name : \"Serres d",
  ")\n   args.test.preData.reversal = {allowed: true, if:": ")\n   args.Test.preData.reversal = {allowed: true, if:",
  ",  {skipTargets: true, appendTitle :  ` - ${this.effect.name}`, fields : {difficulty :": ",  {skipTargets: true, appendTitle :  ` - ${this.effet.name}`, fields : {difficulty :",
  "}});\nawait test.roll();\nif (test.failed)\n{\n\tawait this.actor.addCondition(\"blinded\");\n}\n\nlet msg =": "}});\nawait Test.roll();\nif (Test.Échoué)\n{\n\tawait this.actor.addCondition(\"blinded\");\n}\n\nlet msg =",
  "Can roll on the @Table[crithead]{Head Critical Hits} instead of the normal hit location": "Can roll on the @Table[crithead]{Head Critique Hits} instead of the normal hit location",
  "hast)\",\n        diff : {\n            system : {\n                advances : {\n                    value : 20\n                }\n            }\n        }\n    }\n]\n\nlet choice3 = [\n    {\n        type : \"skill\",\n        name : \"Mêlée (Deux mains)\",\n        diff : {\n            system : {\n                advances : {\n                    value : 20\n                }\n            }\n        }\n    }\n]\n\nlet choice = await foundry.applications.api.DialogV2.wait({\n        window : {title : \"Choix\"},\n        content :\n        `<p>\n        Sélectionnez votre choix\n        </p>\n        <ol>\n        <li>Mêlée (Base)</li>\n        <li>Mêlée (Arme d": "hast)\",\n        diff : {\n            system : {\n                advances : {\n                    value : 20\n                }\n            }\n        }\n    }\n]\n\nlet choice3 = [\n    {\n        type : \"Compétence\",\n        name : \"Mêlée (Deux mains)\",\n        diff : {\n            system : {\n                advances : {\n                    value : 20\n                }\n            }\n        }\n    }\n]\n\nlet choice = await foundry.applications.api.DialogV2.wait({\n        window : {title : \"Choix\"},\n        content :\n        `<p>\n        Sélectionnez votre choix\n        </p>\n        <ol>\n        <li>Mêlée (Base)</li>\n        <li>Mêlée (Arme d",
  "<b>Rune of Goblin Bane</b>: Impact Added": "<b>Rune of Goblin Bane</b>: Impact Ajouté",
  "Enter Grim value": "Entrer Grim value",
  ", {skipTargets: true, appendTitle :  ` - ${this.effect.name}`})\nawait test.roll();\n\n// Kind of insane but whatever\nlet opposedResult = test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result\n\nreturn opposedResult?.winner ==": ", {skipTargets: true, appendTitle :  ` - ${this.effet.name}`})\nawait Test.roll();\n\n// Kind of insane but whatever\nlet opposedResult = Test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result\n\nreturn opposedResult?.winner ==",
  "Cannot suffer Critical Wounds": "Impossible de suffer Critique Blessures",
  "Rolled and applied mutations": "Rolled and Appliqué mutations",
  ")\n }\n   else if (this.actor.characteristics.int.bonus + Number(args.test.result.SL) < 0)\n   {\n      args.test.result.other.push(": ")\n }\n   else if (this.actor.characteristics.int.bonus + Number(args.Test.result.SL) < 0)\n   {\n      args.Test.result.other.push(",
  ").pop())\n\n   if (ones > SL) {\n      args.test.data.result.SL =": ").pop())\n\n   if (ones > SL) {\n      args.Test.data.result.SL =",
  "Cannot be surprised": "Impossible de be surprised",
  "Removed 1 Bleeding Condition": "Retiré 1 Saignement Condition",
  "}, skipTargets: true, appendTitle :  \" - \" + this.effect.name, fields : {difficulty : \"average\"}})\nawait test.roll();\n\n\nif (location && test.failed)\n{\n    let dropped = this.item.system.weaponsAtLocation;\n\n    if (dropped.length)\n    {\n        this.script.notification(": "}, skipTargets: true, appendTitle :  \" - \" + this.effet.name, fields : {difficulty : \"average\"}})\nawait Test.roll();\n\n\nif (location && Test.Échoué)\n{\n    let dropped = this.item.system.weaponsAtLocation;\n\n    if (dropped.length)\n    {\n        this.script.notification(",
  ").pop())\n\n   if (ones == 0) {\n      ones = 10;\n   }\n\n\n   if (ones > SL) {\n      args.test.data.result.SL =": ").pop())\n\n   if (ones == 0) {\n      ones = 10;\n   }\n\n\n   if (ones > SL) {\n      args.Test.data.result.SL =",
  ", fields : {difficulty : \"difficult\", slBonus : -1 * this.effect.sourceTest.result.SL}})\nawait test.roll();\nif (test.succeeded)\n{\n\tthis.script.notification(": ", fields : {difficulty : \"difficult\", slBonus : -1 * this.effet.sourceTest.result.SL}})\nawait Test.roll();\nif (Test.succeeded)\n{\n\tthis.script.notification(",
  "Target has higher Willpower, no effect": "Target has higher Willpower, no effet",
  "Choose a disease to heal (must be naturally occuring)": "Choisir a disease to heal (Doit be naturally occuring)",
  "|| this.item.getFlag(": "|| this.item.getFlag(",
  "Removed Broken": "Condition Brisé supprimée",
  "Does not need to make Peur or Terror tests": "N'a pas besoin de faire de tests de Peur ou de Terreur",
  ",\"info\")\n}\n\nconst runesOfRestoration = this.item.effects.contents.filter(e => e.name == this.effect.name)\nconst restorationWounds = parseInt(runesOfRestoration.length * this.actor.system.characteristics.t.bonus)\n\nthis.actor.modifyWounds(restorationWounds)\nthis.script.message(": ",\"info\")\n}\n\nconst runesOfRestoration = this.item.effects.contents.filter(e => e.name == this.effet.name)\nconst restorationWounds = parseInt(runesOfRestoration.length * this.actor.system.characteristics.t.bonus)\n\nthis.actor.modifyWounds(restorationWounds)\nthis.script.message(",
  "Automatically passes any": "Réussit automatiquement tout"
}