Fix effects in translated compendiums

This commit is contained in:
2021-07-15 14:28:19 +02:00
parent 4822f260f0
commit 09bd399c0e
10 changed files with 401 additions and 314 deletions

View File

@ -44,7 +44,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if (args.opposeData.hitloc.value == \"body\")\n args.actor.addCondition(\"bleeding\", 2)"
"script": "if (args.opposedTest.result.hitloc.value == \"body\")\n args.actor.addCondition(\"bleeding\", 2)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -240,7 +240,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.opposeData.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 1)"
"script": "if (args.opposedTest.result.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 1)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -288,7 +288,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.opposeData.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 1)"
"script": "if (args.opposedTest.result.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 1)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -423,7 +423,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.opposeData.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 2)"
"script": "if (args.opposedTest.result.hitloc.value == \"body\") \n args.actor.addCondition(\"bleeding\", 2)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -508,7 +508,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -557,7 +557,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll().total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> a perdu ${teeth} dents`, speaker : {alias: this.effect.label}})\ninjury.data.data.location.value = `${teeth} ${injury.data.data.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll().total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> a perdu ${teeth} dents`, speaker : {alias: this.effect.label}})\ninjury.location.value = `${teeth} ${injury.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -640,7 +640,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "if (args.actor.owner)\n{\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"difficult\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.4lj1ik958mbgAlaF\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\n}"
"script": "if (args.actor.isOwner)\n{\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"difficult\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.4lj1ik958mbgAlaF\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\n}"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -760,7 +760,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -926,7 +926,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if(args.opposeData.hitloc.value == \"head\" && (args.opposeData.attackerTestResult.extra.critical || args.actor.data.data.status.wounds.value - args.totalWoundLoss < 0))\n{\n\n if (args.actor.owner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })\n }\n}"
"script": "if(args.opposedTest.result.hitloc.value == \"head\" && (args.opposedTest.attackerTest.result.critical || args.actor.status.wounds.value - args.totalWoundLoss < 0))\n{\n\n if (args.actor.isOwner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })\n }\n}"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -1074,7 +1074,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1124,7 +1124,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"easy\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"easy\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1293,7 +1293,7 @@
"effectApplication": "actor",
"effectTrigger": "endCombat",
"preventDuplicateEffects": false,
"script": "if (this.actor.owner)\n this.actor.setupSkill(\"Résistance\").then(setupData => {\n this.actor.basicTest(setupData).then(test => {\n if (test.result.result == \"failure\") {\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n this.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n this.actor.deleteEmbeddedEntity(\"ActiveEffect\", this.effect._id)\n })\n }\n })\n })"
"script": "if (this.actor.isOwner)\n this.actor.setupSkill(\"Résistance\").then(setupData => {\n this.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\") {\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n this.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n this.actor.deleteEmbeddedEntity(\"ActiveEffect\", this.effect._id)\n })\n }\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1433,7 +1433,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.GlShFJF2TpsNh1FX\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -1481,7 +1481,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if (args.opposeData.hitloc.value == \"LEG_LOCATION_HERE\") // rLeg or lLeg\n args.actor.addCondition(\"bleeding\", 1)"
"script": "if (args.opposedTest.result.hitloc.value == \"LEG_LOCATION_HERE\") // rLeg or lLeg\n args.actor.addCondition(\"bleeding\", 1)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1505,7 +1505,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1536,7 +1536,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\", 3)\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\", 3)\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1664,7 +1664,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"script": "if (args.opposeData.hitloc.value == \"ARM_LOCATION_HERE\") // lArm or rArm\n args.actor.addCondition(\"bleeding\", 2)"
"script": "if (args.opposedTest.result.hitloc.value == \"ARM_LOCATION_HERE\") // lArm or rArm\n args.actor.addCondition(\"bleeding\", 2)"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -1966,7 +1966,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -1997,7 +1997,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n {\n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n \n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n {\n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n \n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -2178,7 +2178,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2209,7 +2209,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2240,7 +2240,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 20\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 20"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2291,7 +2291,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.QluSTTTq3viHJJUh\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.QluSTTTq3viHJJUh\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -2410,7 +2410,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.7mCcI3q7hgWcmbBU\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.7mCcI3q7hgWcmbBU\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2493,7 +2493,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -2612,7 +2612,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll().total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> loses ${teeth} teeth`, speaker : {alias: this.effect.label}})\ninjury.data.data.location.value = `${teeth} ${injury.data.data.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.rkJA1DlK51QuRlJy\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.fBcZhOBn8IpoVqQ1\").then(injury => {\n let teeth = new Roll(\"1d10\").roll().total\n ChatMessage.create({content : `<b>${this.actor.data.token.name}</b> loses ${teeth} teeth`, speaker : {alias: this.effect.label}})\ninjury.location.value = `${teeth} ${injury.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.rkJA1DlK51QuRlJy\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.injuries.hCadFsTRvLN9faaY\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -2668,7 +2668,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.zyocWSzEZEC826NS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n { \n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.zyocWSzEZEC826NS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n { \n args.actor.addCondition(\"prone\")\n args.actor.addCondition(\"stunned\")\n }\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",
@ -2784,7 +2784,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -2832,7 +2832,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"stunned\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/head.png",
@ -3074,7 +3074,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"skill\" && args.item.data.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
"script": "if (args.type == \"skill\" && args.item.characteristic.value == \"ag\")\n args.prefillModifiers.modifier -= 10\n\nif (args.type == \"characteristic\" && args.item == \"ag\")\n args.prefillModifiers.modifier -= 10"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3105,7 +3105,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\").then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3154,7 +3154,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "if(args.actor.owner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.result == \"failure\") {\n args.actor.addCondition(\"prone\")\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n injury.data.data.location.value = `${Math.clamped(Math.abs(test.result.SL) + 1, 1, 5)} ${injury.data.data.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n })\n }\n })\n })\n }"
"script": "if(args.actor.isOwner) {\n args.actor.setupSkill(\"Résistance\", { absolute: { difficulty: \"average\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\") {\n args.actor.addCondition(\"prone\")\n fromUuid(\"Compendium.wfrp4e-core.injuries.ZhMADOqoo0y8Q9bx\").then(injury => {\n injury.location.value = `${Math.clamped(Math.abs(test.result.outcome.SL) + 1, 1, 5)} ${injury.location.value}`\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury.data)\n })\n }\n })\n })\n }"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3318,7 +3318,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "oneTime",
"script": "if (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
"script": "if (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"average\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"prone\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -3342,7 +3342,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornbody.png",
@ -3464,7 +3464,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.3S4OYOZLauXctmev\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -3554,7 +3554,7 @@
"effectApplication": "actor",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.MnMZv7ZXoRqoH9dS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.owner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.result == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
"script": "fromUuid(\"Compendium.wfrp4e-core.injuries.MnMZv7ZXoRqoH9dS\").then(injury => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", injury)\n})\n\n\nif (args.actor.isOwner)\n args.actor.setupSkill(\"Résistance\", {absolute: {difficulty: \"hard\"}}).then(setupData => {\n args.actor.basicTest(setupData).then(test => \n {\n if (test.result.outcome == \"failure\")\n args.actor.addCondition(\"unconscious\")\n })\n })"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornarm.png",

View File

@ -28,7 +28,7 @@
"wfrp4e": {
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.data.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedear.png",
@ -137,7 +137,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedfoot.png",
@ -410,7 +410,7 @@
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"preventDuplicateEffects": false,
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.data.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
"script": "if (args.type == \"characteristic\" && args.item == \"fel\")\n args.prefillModifiers.modifier -= 5\n\n else if (args.type == \"skill\") {\n if (args.item.characteristic.value == \"fel\")\n args.prefillModifiers.modifier -= 5\n }"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedeye.png",
@ -443,7 +443,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/amputatedleg.png",
@ -546,7 +546,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-leg.png",
@ -643,7 +643,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-body.png",
@ -745,7 +745,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-leg.png",
@ -856,7 +856,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/broken-body.png",
@ -953,7 +953,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",
@ -1103,7 +1103,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value /= 2"
"script": "args.actor.details.move.value /= 2"
}
},
"icon": "modules/wfrp4e-core/icons/injuries/tornleg.png",

View File

@ -443,7 +443,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "let wounds = args.actor.data.data.status.wounds\n\nif (wounds.value < wounds.max)\n args.actor.update({\"data.status.wounds.value\" : wounds.value + 1})"
"script": "let wounds = args.actor.status.wounds\n\nif (wounds.value < wounds.max)\n args.actor.update({\"data.status.wounds.value\" : wounds.value + 1})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/blessings.png",
@ -753,7 +753,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.psychologies.5hH73j2NgPdsLCZN\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.psychologies.5hH73j2NgPdsLCZN\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -802,7 +802,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.J9MK0AIaTbvd5oF6\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.J9MK0AIaTbvd5oF6\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -898,7 +898,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.CV9btQn09S9Fn8Jk\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.CV9btQn09S9Fn8Jk\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -989,7 +989,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "oneTime",
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.g4Q6AtzZuo5iIvD4\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.talents.g4Q6AtzZuo5iIvD4\").then(item => {\n args.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1105,7 +1105,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "prepareData",
"script": "let AP = args.actor.data.AP\n\nAP[\"head\"].value += 1\nAP[\"rArm\"].value += 1\nAP[\"lArm\"].value += 1\nAP[\"body\"].value += 1\nAP[\"lLeg\"].value += 1\nAP[\"rLeg\"].value += 1"
"script": "let AP = args.actor.status.armour\n\nAP[\"head\"].value += 1\nAP[\"rArm\"].value += 1\nAP[\"lArm\"].value += 1\nAP[\"body\"].value += 1\nAP[\"lLeg\"].value += 1\nAP[\"rLeg\"].value += 1"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1235,7 +1235,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "fromUuid(\"Compendium.wfrp4e-core.traits.pLW9SVX0TVTYPiPv\").then(item => {\n item.data.data.specification.value = 3\n this.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.traits.AtpAudHA4ybXVlWM\").then(item => {\n item.data.data.specification.value = 4\n this.actor.createEmbeddedEntity(\"OwnedItem\", item.data)\n})"
"script": "fromUuid(\"Compendium.wfrp4e-core.traits.pLW9SVX0TVTYPiPv\").then(item => {\n item.specification.value = 3\n this.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})\n\nfromUuid(\"Compendium.wfrp4e-core.traits.AtpAudHA4ybXVlWM\").then(item => {\n item.specification.value = 4\n this.actor.createEmbeddedEntity(\"OwnedItem\", item)\n})"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",
@ -1334,7 +1334,7 @@
"wfrp4e": {
"effectApplication": "apply",
"effectTrigger": "prefillDialog",
"script": "if (args.type == \"characteristic\" && args.item == \"int\")\n {\n args.prefillModifiers.modifier += 20\n }\n else if (args.type == \"skill\")\n {\n if (args.item.data.characteristic.value == \"int\")\n args.prefillModifiers.modifier += 20\n }"
"script": "if (args.type == \"characteristic\" && args.item == \"int\")\n {\n args.prefillModifiers.modifier += 20\n }\n else if (args.type == \"skill\")\n {\n if (args.item.characteristic.value == \"int\")\n args.prefillModifiers.modifier += 20\n }"
}
},
"icon": "modules/wfrp4e-core/icons/prayers/miracles.png",

File diff suppressed because it is too large Load Diff

View File

@ -64,7 +64,7 @@
"effectApplication": "actor",
"effectTrigger": "rollChannellingTest",
"preventDuplicateEffects": true,
"script": "// Remove the miscast if doubles rolled and succeeded\nif(args.result.result == \"success\" && args.result.extra.minormis && args.result.roll % 11 == 0)\n{\n delete args.result.extra.minormis\n}\n// Decrement the major miscast to minor miscast\nelse if(args.result.result == \"success\" && args.result.extra.majormis && args.result.roll % 11 == 0)\n{\n delete args.result.extra.majormis\n args.result.extra.minormis = game.i18n.localize(\"ROLL.MinorMis\")\n}"
"script": "// Remove the miscast if doubles rolled and succeeded\nif(args.test.result.outcome == \"success\" && args.test.result.minormis && args.test.result.roll % 11 == 0)\n{\n delete args.test.result.minormis\n}\n// Decrement the major miscast to minor miscast\nelse if(args.test.result.outcome == \"success\" && args.test.result.majormis && args.test.result.roll % 11 == 0)\n{\n delete args.test.result.majormis\n args.test.result.minormis = game.i18n.localize(\"ROLL.MinorMis\")\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/aethyric-attunement.png",
@ -97,7 +97,7 @@
"effectApplication": "actor",
"effectTrigger": "preRollTest",
"preventDuplicateEffects": true,
"script": "if (args.testData.extra.skill && args.testData.extra.skill.name == \"Discrétion (Urbain)\")\n args.testData.extra.canReverse = true"
"script": "if (args.test.item && args.test.item.name == \"Discrétion (Urbain)\")\n args.test.extra.canReverse = true"
}
},
"icon": "modules/wfrp4e-core/icons/talents/alley-cat.png",
@ -176,7 +176,7 @@
"effectApplication": "actor",
"effectTrigger": "preRollTest",
"preventDuplicateEffects": true,
"script": "if (args.testData.extra.skill && args.testData.extra.skill.name == \"Charme\" && (args.testData.roll <= 5 || args.testData.roll <= args.testData.target))\n{\n\nlet SL = Math.floor(args.testData.target / 10) - Math.floor(args.testData.roll / 10)\nlet ones = Number(args.testData.roll.toString().split(\"\").pop())\n\nif (ones > SL)\n args.testData.extra.other.push(`<b>${this.effect.label}</b>: Peut utiliser l'unité comme DR de base (+${args.testData.successBonus + args.testData.slBonus} bonus DR) lors d'un débat.`)\n}"
"script": "if (args.test.item && args.test.item.name == \"Charme\" && (args.test.result.roll <= 5 || args.test.result.roll <= args.test.target))\n{\n\nlet SL = Math.floor(args.test.target / 10) - Math.floor(args.test.result.roll / 10)\nlet ones = Number(args.test.result.roll.toString().split(\"\").pop())\n\nif (ones > SL)\n args.test.result.other.push(`<b>${this.effect.label}</b>: Peut utiliser l'unité comme DR de base (+${args.test.successBonus + args.test.slBonus} bonus DR) lors d'un débat.`)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/argumentative.png",
@ -216,7 +216,7 @@
"effectApplication": "actor",
"effectTrigger": "preRollTest",
"preventDuplicateEffects": true,
"script": "if (args.testData.extra.skill && args.testData.extra.skill.name == \"Charme\" && (args.testData.roll <= 5 || args.testData.roll <= args.testData.target))\n{\n\nlet SL = Math.floor(args.testData.target / 10) - Math.floor(args.testData.roll / 10)\nlet ones = Number(args.testData.roll.toString().split(\"\").pop())\n\nif (ones > SL)\n args.testData.extra.other.push(`<b>${this.effect.label}</b>: Peut utiliser les unités comme DR de base (+${args.testData.successBonus + args.testData.slBonus} bonus DR) si la cible est attirée par vous.`)\n}"
"script": "if (args.test.item && args.test.item.name == \"Charme\" && (args.test.result.roll <= 5 || args.test.result.roll <= args.test.target))\n{\n\nlet SL = Math.floor(args.test.target / 10) - Math.floor(args.test.result.roll / 10)\nlet ones = Number(args.test.result.roll.toString().split(\"\").pop())\n\nif (ones > SL)\n args.test.result.other.push(`<b>${this.effect.label}</b>: Peut utiliser les unités comme DR de base (+${args.test.successBonus + args.test.slBonus} bonus DR) si la cible est attirée par vous.`)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/attractive.png",
@ -270,7 +270,7 @@
"effectApplication": "actor",
"effectTrigger": "rollWeaponTest",
"preventDuplicateEffects": false,
"script": "if (args.result.charging)\n{\n args.result.damage += 1\n args.additionalDamage += 1\n}"
"script": "if (args.test.result.charging)\n{\n args.test.result.damage += 1\n args.additionalDamage += 1\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/berserk-charge.png",
@ -317,7 +317,7 @@
"effectApplication": "actor",
"effectTrigger": "preRollTest",
"preventDuplicateEffects": true,
"script": "if (args.testData.extra.skill && args.testData.extra.skill.name == \"Recherche\")\n args.testData.extra.canReverse = true"
"script": "if (args.test.item && args.test.item.name == \"Recherche\")\n args.test.extra.canReverse = true"
}
},
"icon": "modules/wfrp4e-core/icons/talents/bookish.png",
@ -393,7 +393,7 @@
"effectApplication": "actor",
"effectTrigger": "preRollTest",
"preventDuplicateEffects": false,
"script": "if (args.testData.extra.skill && args.testData.extra.skill.name == \"Résistance à l'alcool\")\n args.testData.extra.canReverse = true"
"script": "if (args.test.item && args.test.item.name == \"Résistance à l'alcool\")\n args.test.extra.canReverse = true"
}
},
"icon": "modules/wfrp4e-core/icons/talents/carouser.png",
@ -746,7 +746,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.value += 1"
"script": "args.actor.details.move.value += 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/fleet-footed.png",
@ -779,7 +779,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareItems",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.characteristics.s.bonus += 1\nargs.actor.data.data.characteristics.s.calculationBonusModifier -= 1"
"script": "args.actor.characteristics.s.bonus += 1\nargs.actor.characteristics.s.calculationBonusModifier -= 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/frenzy.png",
@ -826,7 +826,7 @@
"effectApplication": "actor",
"effectTrigger": "preRollTest",
"preventDuplicateEffects": true,
"script": "if (args.testData.extra.skill && args.testData.extra.skill.name == \"Ragot\")\n args.testData.extra.canReverse = true"
"script": "if (args.test.item && args.test.item.name == \"Ragot\")\n args.test.extra.canReverse = true"
}
},
"icon": "modules/wfrp4e-core/icons/talents/gregarious.png",
@ -859,7 +859,7 @@
"effectApplication": "actor",
"effectTrigger": "prefillDialog",
"preventDuplicateEffects": false,
"script": "if (args.options.reload && args.options.weapon && args.options.weapon.data.weaponGroup.value == \"blackpowder\")\n args.prefillModifiers.slBonus += 1"
"script": "if (args.options.reload && args.options.weapon && args.options.weapon.weaponGroup.value == \"blackpowder\")\n args.prefillModifiers.slBonus += 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/gunner.png",
@ -932,7 +932,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareItem",
"preventDuplicateEffects": false,
"script": "if (args.item.type == \"prayer\" && (args.item.data.damage.value || args.item.data.damage.dice))\n args.item.data.damage.value += \"+1\""
"script": "if (args.item.type == \"prayer\" && (args.item.damage.value || args.item.damage.dice))\n args.item.damage.value += \"+1\""
}
},
"icon": "modules/wfrp4e-core/icons/talents/holy-hatred.png",
@ -1033,7 +1033,7 @@
"effectApplication": "actor",
"effectTrigger": "rollCastTest",
"preventDuplicateEffects": true,
"script": "// Remove the miscast if doubles rolled and succeeded\nif(args.result.result == \"success\" && args.result.extra.minormis && args.result.roll % 11 == 0)\n{\n delete args.result.extra.minormis\n}\n// Decrement the major miscast to minor miscast\nelse if(args.result.result == \"success\" && args.result.extra.majormis && args.result.roll % 11 == 0)\n{\n delete args.result.extra.majormis\n args.result.extra.minormis = game.i18n.localize(\"ROLL.MinorMis\")\n}"
"script": "// Remove the miscast if doubles rolled and succeeded\nif(args.test.result.outcome == \"success\" && args.test.result.minormis && args.test.result.roll % 11 == 0)\n{\n delete args.test.result.minormis\n}\n// Decrement the major miscast to minor miscast\nelse if(args.test.result.outcome == \"success\" && args.test.result.majormis && args.test.result.roll % 11 == 0)\n{\n delete args.test.result.majormis\n args.test.result.minormis = game.i18n.localize(\"ROLL.MinorMis\")\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/instinctive-diction.png",
@ -1463,7 +1463,7 @@
"effectApplication": "actor",
"effectTrigger": "prepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.status.corruption.max += 1"
"script": "args.actor.status.corruption.max += 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/pure-soul.png",
@ -1557,7 +1557,7 @@
"effectApplication": "actor",
"effectTrigger": "rollWeaponTest",
"preventDuplicateEffects": false,
"script": "if (args.result.charging)\n{\n args.result.damage += 1\n args.additionalDamage += 1\n}"
"script": "if (args.test.result.charging)\n{\n args.test.result.damage += 1\n args.additionalDamage += 1\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/resolute.png",
@ -1611,7 +1611,7 @@
"effectApplication": "actor",
"effectTrigger": "takeDamage",
"preventDuplicateEffects": false,
"script": "args.totalWoundLoss -= 1\nargs.messageElements.push(\"1 Robuste\")\n\nif (args.totalWoundLoss <= 0)\n{\nlet weapon = args.opposeData.attackerTestResult.weapon\nif \n(weapon && weapon.properties.flaws.includes(game.i18n.localize(\"PROPERTY.Undamaging\")))\n args.totalWoundLoss = 0\nelse\n args.totalWoundLoss = 1\n}"
"script": "args.totalWoundLoss -= 1\nargs.messageElements.push(\"1 Robuste\")\n\nif (args.totalWoundLoss <= 0)\n{\nlet weapon = args.opposedTest.attackerTest.item\nif \n(weapon && weapon.properties.flaws.includes(game.i18n.localize(\"PROPERTY.Undamaging\")))\n args.totalWoundLoss = 0\nelse\n args.totalWoundLoss = 1\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/robust.png",
@ -1795,7 +1795,7 @@
"effectApplication": "actor",
"effectTrigger": "opposedDefender",
"preventDuplicateEffects": true,
"script": "if (args.opposeResult.winner == \"attacker\") {\n if (args.opposeResult.defenderTestResult.weapon && args.opposeResult.defenderTestResult.weapon.properties.qualities.find(q => q.includes(\"Shield\"))) {\n let shieldsman = this.actor.data.talents.find(t => t.name == this.effect.label)\n ui.notifications.notify(`<b>${this.effect.label}</b>: Gain de ${shieldsman.data.advances.value} avantages`)\n this.actor.modifyAdvantage(shieldsman.data.advances.value)\n }\n}"
"script": "if (args.opposedTest.result.winner == \"attacker\") {\n if (args.opposedTest.result.defenderTest.item && args.opposedTest.result.defenderTest.item.properties.qualities.find(q => q.includes(\"Shield\"))) {\n let shieldsman = this.actor.data.talents.find(t => t.name == this.effect.label)\n ui.notifications.notify(`<b>${this.effect.label}</b>: Gain de ${shieldsman.data.advances.value} avantages`)\n this.actor.modifyAdvantage(shieldsman.data.advances.value)\n }\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/shieldsman.png",
@ -1835,7 +1835,7 @@
"effectApplication": "actor",
"effectTrigger": "calculateOpposedDamage",
"preventDuplicateEffects": false,
"script": "if (args.sizeDiff <= -2 && args.opposeData.attackerTestResult.extra.critical)\n args.damageMultiplier = Math.abs(args.sizeDiff)\n\n let sBonusDiff = args.opposeData.defenderTestResult.actor.data.characteristics.t.bonus - args.opposeData.attackerTestResult.actor.data.characteristics.s.bonus\n let weapon = args.opposeData.attackerTestResult.weapon\n if (sBonusDiff > 0 && weapon && weapon.data.damage.value.includes(\"SB\"))\n args.damage += sBonusDiff"
"script": "if (args.sizeDiff <= -2 && args.opposedTest.attackerTest.result.critical)\n args.damageMultiplier = Math.abs(args.sizeDiff)\n\n let sBonusDiff = args.opposedTest.defenderTest.result.actor.characteristics.t.bonus - args.opposedTest.attackerTest.result.actor.characteristics.s.bonus\n let weapon = args.opposedTest.attackerTest.item\n if (sBonusDiff > 0 && weapon && weapon.damage.value.includes(\"SB\"))\n args.damage += sBonusDiff"
}
},
"icon": "modules/wfrp4e-core/icons/talents/slayer.png",
@ -1889,7 +1889,7 @@
"effectApplication": "actor",
"effectTrigger": "prepareData",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.details.move.run += 2"
"script": "args.actor.details.move.run += 2"
}
},
"icon": "modules/wfrp4e-core/icons/talents/sprinter.png",
@ -1989,7 +1989,7 @@
"effectApplication": "actor",
"effectTrigger": "rollWeaponTest",
"preventDuplicateEffects": false,
"script": "if(args.result.extra.critical)\n{\n args.result.damage +=1 \n args.result.additionalDamage += 1\n}"
"script": "if(args.test.result.critical)\n{\n args.test.result.damage +=1 \n args.test.result.additionalDamage += 1\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/strike-to-injure.png",
@ -2060,7 +2060,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareItems",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.status.encumbrance.max += 1"
"script": "args.actor.status.encumbrance.max += 1"
}
},
"icon": "modules/wfrp4e-core/icons/talents/strong-back.png",
@ -2146,7 +2146,7 @@
"effectApplication": "actor",
"effectTrigger": "prePrepareItems",
"preventDuplicateEffects": false,
"script": "args.actor.data.data.status.encumbrance.max += 2"
"script": "args.actor.status.encumbrance.max += 2"
}
},
"icon": "modules/wfrp4e-core/icons/talents/sturdy.png",
@ -2223,7 +2223,7 @@
"effectApplication": "actor",
"effectTrigger": "preRollTest",
"preventDuplicateEffects": true,
"script": "if (args.testData.extra.skill && args.testData.extra.skill.data.characteristic.value == \"fel\" && (args.testData.roll <= 5 || args.testData.roll <= args.testData.target))\n{\n\nlet SL = Math.floor(args.testData.target / 10) - Math.floor(args.testData.roll / 10)\nlet ones = Number(args.testData.roll.toString().split(\"\").pop())\n\nif (ones > SL)\n args.testData.extra.other.push(`<b>${this.effect.label}</b>: Peu utiliser l'unité comme DR de base (+${args.testData.successBonus + args.testData.slBonus} bonus DR)lorsque vous influencez des PNJs avec un statut social plus élevé.`)\n}"
"script": "if (args.test.item && args.test.item.data.characteristic.value == \"fel\" && (args.test.result.roll <= 5 || args.test.result.roll <= args.test.target))\n{\n\nlet SL = Math.floor(args.test.target / 10) - Math.floor(args.test.result.roll / 10)\nlet ones = Number(args.test.result.roll.toString().split(\"\").pop())\n\nif (ones > SL)\n args.test.result.other.push(`<b>${this.effect.label}</b>: Peu utiliser l'unité comme DR de base (+${args.test.successBonus + args.test.slBonus} bonus DR)lorsque vous influencez des PNJs avec un statut social plus élevé.`)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/talents/supportive.png",

View File

@ -494,7 +494,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de Faxtoryll\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet bleeding = this.actor.hasCondition(\"bleeding\")\nif (bleeding)\n{\n ui.notifications.notify(`Cleared ${bleeding.flags.wfrp4e.value} Bleeding Conditions`)\n this.actor.removeCondition(\"bleeding\", bleeding.flags.wfrp4e.value)\n}"
"script": "let item = duplicate(this.item)\nitem.quantity.value--\nif (item.quantity.value < 0)\n return ui.notifications.error(\"Plus de Faxtoryll\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet bleeding = this.actor.hasCondition(\"bleeding\")\nif (bleeding)\n{\n ui.notifications.notify(`Cleared ${bleeding.flags.wfrp4e.value} Bleeding Conditions`)\n this.actor.removeCondition(\"bleeding\", bleeding.flags.wfrp4e.value)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/faxtoryll.png",
@ -651,7 +651,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de potions\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet wounds = this.actor.data.data.status.wounds\nif (wounds.value == 0)\n return ui.notifications.error(\"Aucun effet à 0 points de blessure\")\nwounds.value += this.actor.data.data.characteristics.t.bonus\n\nui.notifications.notify(`Healed ${this.actor.data.data.characteristics.t.bonus} Wounds`)\n\nif (wounds.value > wounds.max)\n wounds.value = wounds.max\n\nthis.actor.update({\"data.status.wounds\" : wounds})"
"script": "let item = duplicate(this.item)\nitem.quantity.value--\nif (item.quantity.value < 0)\n return ui.notifications.error(\"Plus de potions\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet wounds = this.actor.status.wounds\nif (wounds.value == 0)\n return ui.notifications.error(\"Aucun effet à 0 points de blessure\")\nwounds.value += this.actor.characteristics.t.bonus\n\nui.notifications.notify(`Healed ${this.actor.characteristics.t.bonus} Wounds`)\n\nif (wounds.value > wounds.max)\n wounds.value = wounds.max\n\nthis.actor.update({\"data.status.wounds\" : wounds})"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/healing-draught.png",
@ -1356,7 +1356,7 @@
"effectApplication": "apply",
"effectTrigger": "oneTime",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de Soude Commune disponible\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet stunned= this.actor.hasCondition(\"stunned\")\nif (stunned)\n{\n ui.notifications.notify(`Un Etat Assomé a été enlevé`)\n this.actor.removeCondition(\"stunned\", 1)\n}"
"script": "let item = duplicate(this.item)\nitem.quantity.value--\nif (item.quantity.value < 0)\n return ui.notifications.error(\"Plus de Soude Commune disponible\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet stunned= this.actor.hasCondition(\"stunned\")\nif (stunned)\n{\n ui.notifications.notify(`Un Etat Assomé a été enlevé`)\n this.actor.removeCondition(\"stunned\", 1)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/salwort.png",
@ -1592,7 +1592,7 @@
"effectApplication": "actor",
"effectTrigger": "invoke",
"preventDuplicateEffects": false,
"script": "let item = duplicate(this.item)\nitem.data.quantity.value--\nif (item.data.quantity.value < 0)\n return ui.notifications.error(\"Plus de potion disponible\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet fatigued = this.actor.hasCondition(\"fatigued\")\nif (fatigued)\n{\n ui.notifications.notify(`${fatigued.flags.wfrp4e.value} Etats Extenué enlevés`)\n this.actor.removeCondition(\"fatigued\", fatigued.flags.wfrp4e.value)\n}"
"script": "let item = duplicate(this.item)\nitem.quantity.value--\nif (item.quantity.value < 0)\n return ui.notifications.error(\"Plus de potion disponible\")\n\nthis.actor.updateEmbeddedEntity(\"OwnedItem\", item)\n\nlet fatigued = this.actor.hasCondition(\"fatigued\")\nif (fatigued)\n{\n ui.notifications.notify(`${fatigued.flags.wfrp4e.value} Etats Extenué enlevés`)\n this.actor.removeCondition(\"fatigued\", fatigued.flags.wfrp4e.value)\n}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/herbs_and_draughts/vitality-draught.png",
@ -1648,7 +1648,7 @@
"effectApplication": "apply",
"effectTrigger": "prefillDialog",
"preventDuplicateEffects": false,
"script": "if (args.type == \"characteristic\") {\n if (args.item == \"wp\" || args.item == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item == \"ag\" || args.item == \"i\" || args.item == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"skill\") {\n if (args.item.data.characteristic.value == \"wp\" || args.item.data.characteristic.value == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item.data.characteristic.value == \"ag\" || args.item.data.characteristic.value == \"i\" || args.item.data.characteristic.value == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"cast\") {\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"channelling\") {\n args.prefillModifiers.modifier += 10\n}"
"script": "if (args.type == \"characteristic\") {\n if (args.item == \"wp\" || args.item == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item == \"ag\" || args.item == \"i\" || args.item == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"skill\") {\n if (args.item.characteristic.value == \"wp\" || args.item.characteristic.value == \"t\")\n args.prefillModifiers.modifier += 10\n else if (args.item.characteristic.value == \"ag\" || args.item.characteristic.value == \"i\" || args.item.characteristic.value == \"int\")\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"cast\") {\n args.prefillModifiers.modifier -= 10\n}\nelse if (args.type == \"channelling\") {\n args.prefillModifiers.modifier += 10\n}"
}
},
"icon": "modules/wfrp4e-core/icons/equipment/drugs_and_poisons/weirdroot.png",

View File

@ -322,7 +322,7 @@
{
"id": "Luxury Cabin",
"name": "Luxury Cabin",
"description": "<p>The Empire&rsquo;s wealthy like to travel in comfort and the kind of cabin that one finds on a noble&rsquo;s barge is very different from one on a trading or passenger vessel. For the indicated cost, and taking the space of two normal cabins, a traveller can ply the rivers in comfort and style. At your discretion, any <strong>Fellowship </strong>Tests made by the owner of a luxury cabin gain a +10 bonus, provided they are made within the cabin itself.</p>"
"description": "<p>The Empire&rsquo;s wealthy like to travel in comfort and the kind of cabin that one finds on a noble&rsquo;s barge is very different from one on a trading or passenger vessel. For the indicated cost, and taking the space of two normal cabins, a traveller can ply the rivers in comfort and style. At your discretion, any <strong>Fellowship </strong>Tests made by the.isOwner of a luxury cabin gain a +10 bonus, provided they are made within the cabin itself.</p>"
},
{
"id": "Mage-Leaf",
@ -357,27 +357,27 @@
{
"id": "Racing Hull",
"name": "Racing Hull",
"description": "<p>Wealthy nobles are addicted to contests and wagering, as everyone knows. In an effort to outdo their fellows, some wealthy boat owners have sunk immense sums into research and craftsmanship, in search of the perfect hull shape for speed. A racing hull is as smooth as glass and cunningly shaped to reduce drag to a bare minimum, allowing the boat to travel at up to twice its normal Movement rate.</p>\n<p>A boat with a racing hull is tricky to control, though, and requires a <strong>Difficult (&minus;10) Boat Handling</strong> Test every hour. On a Marginal (&minus;1 SL) or Normal Failure, Movement cannot exceed the normal rate; on an Impressive Failure (&minus;4 SL), Movement is half normal; and on an Astounding Failure (&minus;6 SL or less), the hull is damaged and the boat cannot exceed half normal Movement until it is repaired at a cost equal to half the cost of the hull, as above.</p>\n<p>Normal repairs to a racing hull cost twice the @JournalEntry[Repairing Boats]{normal rate given}, and require finer craftsmanship: all relevant Tests are one step more difficult than usual.</p>\n<blockquote>\n<p><strong>Foundry Note:&nbsp;</strong><em>Encumbrance and Price reflects 10 ft. of length. Modify this item according to the ship it's being applied to.</em></p>\n</blockquote>"
"description": "<p>Wealthy nobles are addicted to contests and wagering, as everyone knows. In an effort to outdo their fellows, some wealthy boat.isOwners have sunk immense sums into research and craftsmanship, in search of the perfect hull shape for speed. A racing hull is as smooth as glass and cunningly shaped to reduce drag to a bare minimum, allowing the boat to travel at up to twice its normal Movement rate.</p>\n<p>A boat with a racing hull is tricky to control, though, and requires a <strong>Difficult (&minus;10) Boat Handling</strong> Test every hour. On a Marginal (&minus;1 SL) or Normal Failure, Movement cannot exceed the normal rate; on an Impressive Failure (&minus;4 SL), Movement is half normal; and on an Astounding Failure (&minus;6 SL or less), the hull is damaged and the boat cannot exceed half normal Movement until it is repaired at a cost equal to half the cost of the hull, as above.</p>\n<p>Normal repairs to a racing hull cost twice the @JournalEntry[Repairing Boats]{normal rate given}, and require finer craftsmanship: all relevant Tests are one step more difficult than usual.</p>\n<blockquote>\n<p><strong>Foundry Note:&nbsp;</strong><em>Encumbrance and Price reflects 10 ft. of length. Modify this item according to the ship it's being applied to.</em></p>\n</blockquote>"
},
{
"id": "Racing Rig (Fishing Skiff)",
"name": "Racing Rig (Fishing Skiff)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Fishing Skiff)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all <strong>Boat Handling</strong> Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Fishing Skiff)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all <strong>Boat Handling</strong> Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Racing Rig (Large Barge)",
"name": "Racing Rig (Large Barge)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Large Barge)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Large Barge)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Racing Rig (Row Boat)",
"name": "Racing Rig (Row Boat)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Row Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Row Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Racing Rig (Typical Barge or Patrol Boat)",
"name": "Racing Rig (Typical Barge or Patrol Boat)",
"description": "<p>As well as developing racing hulls (see above), the wealthy boat-owners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Typical Barge or Patrol Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
"description": "<p>As well as developing racing hulls (see above), the wealthy boat.isOwners of the Empire &mdash; or rather, the talented boat-builders in their employ &mdash; have developed a system of sails and rigging designed for speed, at the expense of some sturdiness. A racing rig allows a boat an extra +10% Movement over the amount given in the @Table[wind]{wind table}, but only in a tailwind or a sidewind. In a headwind, the Movement penalty is reduced by -5%</p>\n<p>A racing rig includes a @Item[Flying Jib (Typical Barge or Patrol Boat)]{flying jib}, and the advantages of the two do not stack.</p>\n<p>This speed comes at a cost, though. The complex racing rig requires an expert crew, imposing a penalty of &minus;10 to all&nbsp;<strong>Boat Handling</strong>&nbsp;Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
},
{
"id": "Raised Gunwales (Fishing Skiff)",