Compare commits
56 Commits
foundryvtt
...
foundryvtt
Author | SHA1 | Date | |
---|---|---|---|
d17de7fc8e | |||
afba184836 | |||
0036fb8e7d | |||
abfc91e3f4 | |||
8112dae14d | |||
4ead400c2e | |||
3602fdc5f9 | |||
5c4c6b8163 | |||
9ba6bde6e0 | |||
1ff7be02d4 | |||
bd113b6ef3 | |||
db1bf4e23a | |||
4cf52343c6 | |||
83822ade7f | |||
e79474ab8d | |||
8d5fb68182 | |||
54612628b8 | |||
3f861ed86c | |||
a15260bff7 | |||
541e2836ca | |||
73133b0abf | |||
7ceaa73233 | |||
a888502952 | |||
a1f1861172 | |||
0335ffb354 | |||
303cdece36 | |||
71b45c0cad | |||
1408122c59 | |||
7305a9c370 | |||
e427e3702b | |||
8c7848bf2b | |||
e5ba63b8e0 | |||
16f97040d3 | |||
a9aa0edad8 | |||
0f0c482187 | |||
644e8b8146 | |||
044dcde7bf | |||
fb6ef1b0b3 | |||
2eee4d5da1 | |||
6149261726 | |||
4a1295de15 | |||
095a3a0929 | |||
b3703c62d3 | |||
b5f77c27c6 | |||
6eaf2bb030 | |||
2ae5349f15 | |||
0650e39019 | |||
959e0e0555 | |||
27788a3f15 | |||
037ba87761 | |||
e2178329f7 | |||
83da960d30 | |||
4f22403c5f | |||
6e9df6e59a | |||
43d78c5c68 | |||
6918eaeb1b |
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,6 +1 @@
|
||||
.history/
|
||||
.vscode/
|
||||
/packs/*/
|
||||
/packs/*/CURRENT
|
||||
/packs/*/LOG
|
||||
/packs/*/LOCK
|
||||
|
@ -72,6 +72,7 @@ Pour info, il existe énormément de cas particuliers dans le système de règle
|
||||
* compendium/talents -> LeRatier/Dr.Droide/Moilu/Gharazel
|
||||
* various modules and fixes -> Ashburry77
|
||||
* various modules and fixes -> Bimkiz
|
||||
* contributions au code et améliorations -> Pallando
|
||||
|
||||
## Feedback
|
||||
|
||||
|
@ -41,7 +41,7 @@ Hooks.once('init', () => {
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------*/
|
||||
game.wfrp4e.entities.ItemWfrp4e.prototype.computeSpellDamage = function (formula, isMagicMissile) {
|
||||
/* DEPRECATED : game.wfrp4e.entities.ItemWfrp4e.prototype.computeSpellDamage = function (formula, isMagicMissile) {
|
||||
try {
|
||||
|
||||
formula = formula.toLowerCase();
|
||||
@ -85,10 +85,10 @@ Hooks.once('init', () => {
|
||||
catch (e) {
|
||||
throw ui.notifications.error("Error: could not parse spell damage. See console for details")
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
/*---------------------------------------------------------------------*/
|
||||
game.wfrp4e.entities.ItemWfrp4e.prototype.computeSpellPrayerFormula = function (type, aoe = false, formulaOverride) {
|
||||
/* DEPRECATED : game.wfrp4e.entities.ItemWfrp4e.prototype.computeSpellPrayerFormula = function (type, aoe = false, formulaOverride) {
|
||||
let formula = formulaOverride || this[type]?.value
|
||||
if (Number.isNumeric(formula))
|
||||
return formula
|
||||
@ -134,7 +134,7 @@ Hooks.once('init', () => {
|
||||
|
||||
//console.log("calculateSpellAttributes -> " + formula );
|
||||
return formula.capitalize();
|
||||
}
|
||||
}*/
|
||||
|
||||
/*---------------------------------------------------------------------*/
|
||||
// Converters area
|
||||
@ -149,39 +149,43 @@ Hooks.once('init', () => {
|
||||
Babele.get().registerConverters({
|
||||
|
||||
"career_skills": (skills_list) => {
|
||||
let compendiumName = 'wfrp4e-core.skills' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumName = 'wfrp4e-core.items'
|
||||
}
|
||||
//console.log( "Thru here ...", compendium, skills_list);
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("skill")
|
||||
//DEBUG: console.log( "Thru here ...", compendium, skills_list);
|
||||
if (skills_list) {
|
||||
let i;
|
||||
let len = skills_list.length;
|
||||
let re = /(.*)\((.*)\)/i;
|
||||
for (i = 0; i < len; i++) {
|
||||
skills_list[i] = skills_list[i].trim();
|
||||
let transl = game.babele.translate(compendiumName, { name: skills_list[i] }, true).name;
|
||||
if (!transl) transl = skills_list[i]
|
||||
//console.log("List ...", skills_list[i]);
|
||||
if (transl == skills_list[i]) {
|
||||
let res = re.exec(skills_list[i]);
|
||||
if (res) {
|
||||
//console.log("Matched/split:", res[1], res[2]);
|
||||
let subword = game.i18n.localize(res[2].trim());
|
||||
let s1 = res[1].trim() + " ()";
|
||||
let translw = game.babele.translate(compendiumName, { name: s1 }, true).name;
|
||||
if (translw != s1) {
|
||||
let res2 = re.exec(translw);
|
||||
transl = res2[1] + "(" + subword + ")";
|
||||
} else {
|
||||
s1 = res[1].trim() + " ( )";
|
||||
translw = game.babele.translate(compendiumName, { name: s1 }, true).name;
|
||||
let res2 = re.exec(translw);
|
||||
transl = res2[1] + "(" + subword + ")";
|
||||
for (let compData of validCompendiums) {
|
||||
let translItem = game.babele.translate(compData.metadata.id, { name: skills_list[i], type: "skill" }, true)
|
||||
let transl = translItem?.name || undefined
|
||||
if (!transl) transl = skills_list[i]
|
||||
//console.log("List ...", skills_list[i], compData.metadata.id, translItem);
|
||||
if (transl == skills_list[i]) {
|
||||
let res = re.exec(skills_list[i]);
|
||||
if (res) {
|
||||
//console.log("Matched/split:", res[1], res[2]);
|
||||
let subword = game.i18n.localize(res[2].trim());
|
||||
let s1 = res[1].trim() + " ()";
|
||||
translItem = game.babele.translate(compData.metadata.id, { name: s1, type: "skill" }, true)
|
||||
let translw = translItem?.name || undefined
|
||||
if (translw && translw != s1) {
|
||||
let res2 = re.exec(translw);
|
||||
transl = res2[1] + "(" + subword + ")";
|
||||
} else {
|
||||
s1 = res[1].trim() + " ( )";
|
||||
translItem = game.babele.translate(compData.metadata.id, { name: s1, type: "skill" }, true)
|
||||
translw = translItem?.name || undefined
|
||||
let res2 = re.exec(translw);
|
||||
transl = res2[1] + "(" + subword + ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
skills_list[i] = transl;
|
||||
if (translItem?.system)
|
||||
break;
|
||||
}
|
||||
skills_list[i] = transl;
|
||||
}
|
||||
}
|
||||
return skills_list;
|
||||
@ -198,13 +202,13 @@ Hooks.once('init', () => {
|
||||
return results
|
||||
}
|
||||
// Auto patch
|
||||
if (results[0].text.includes("wfrp4e-core.career-descriptions") ) {
|
||||
if (results[0].text.includes("wfrp4e-core.career-descriptions")) {
|
||||
if (game.system.version.match("7.")) {
|
||||
results[0].text = "wfrp4e-core.journals"
|
||||
} else {
|
||||
results[0].text = "wfrp4e-core.journal-entries"
|
||||
results[0].text = "wfrp4e-core.journal-entries"
|
||||
}
|
||||
}
|
||||
}
|
||||
if (results[0].text.includes("wfrp4e-core.journal")) {
|
||||
for (let data of results) {
|
||||
let career = data.text.match(/{(.*)}/)
|
||||
@ -234,39 +238,34 @@ Hooks.once('init', () => {
|
||||
},
|
||||
|
||||
"career_talents": (talents_list) => {
|
||||
let compendiumName = 'wfrp4e-core.talents' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumName = 'wfrp4e-core.items'
|
||||
}
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("talent")
|
||||
let i;
|
||||
if (talents_list) {
|
||||
let len = talents_list.length;
|
||||
let re = /(.*)\((.*)\)/i;
|
||||
for (i = 0; i < len; i++) {
|
||||
let transl = game.babele.translate(compendiumName, { name: talents_list[i] }, true).name;
|
||||
if (!transl) transl = talents_list[i]
|
||||
if (transl == talents_list[i]) {
|
||||
let res = re.exec(talents_list[i]);
|
||||
if (res) {
|
||||
//console.log("Matched/split:", res[1], res[2]);
|
||||
let subword = game.i18n.localize(res[2].trim());
|
||||
let s1 = res[1].trim(); // No () in talents table
|
||||
let translw = game.babele.translate(compendiumName, { name: s1 }, true).name;
|
||||
if (translw != s1) {
|
||||
transl = translw + " (" + subword + ")";
|
||||
} else {
|
||||
s1 = res[1].trim() + " ( )";
|
||||
translw = game.babele.translate(compendiumName, { name: s1 }, true).name;
|
||||
let res2 = re.exec(translw);
|
||||
if (res2) {
|
||||
transl = res2[1] + " (" + subword + ")";
|
||||
} else {
|
||||
transl = translw
|
||||
}
|
||||
for (let compData of validCompendiums) {
|
||||
let translItem = game.babele.translate(compData.metadata.id, { name: talents_list[i] }, true);
|
||||
//console.log("Search talent name:", compData.metadata.id, talents_list[i], translItem);
|
||||
let transl = translItem?.name || undefined
|
||||
if (!transl) transl = talents_list[i]
|
||||
if (transl == talents_list[i]) {
|
||||
let res = re.exec(talents_list[i]);
|
||||
if (res) {
|
||||
let subword = game.i18n.localize(res[2].trim());
|
||||
let s1 = res[1].trim(); // No () in talents table
|
||||
translItem = game.babele.translate(compData.metadata.id, { name: s1 }, true)
|
||||
let translw = translItem?.name || undefined
|
||||
console.log("Ssearch talent name:", compData.metadata.id, s1, translw);
|
||||
if (translw && translw != s1) {
|
||||
transl = translw + " (" + subword + ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
talents_list[i] = transl;
|
||||
if (translItem?.system)
|
||||
break;
|
||||
}
|
||||
talents_list[i] = transl;
|
||||
}
|
||||
}
|
||||
return talents_list;
|
||||
@ -289,6 +288,7 @@ Hooks.once('init', () => {
|
||||
console.log("No beast traits found here ...")
|
||||
return beast_traits
|
||||
}
|
||||
//console.log("TRANS:", beast_traits)
|
||||
for (let trait_en of beast_traits) {
|
||||
let special = "";
|
||||
let nbt = "";
|
||||
@ -312,25 +312,19 @@ Hooks.once('init', () => {
|
||||
name_en = res[1]; // Get the root traits name
|
||||
special = " (" + game.i18n.localize(res[2].trim()) + ")"; // And the special keyword
|
||||
}
|
||||
let compendiumName = 'wfrp4e-core.traits' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumName = 'wfrp4e-core.items'
|
||||
}
|
||||
let trait_fr = game.babele.translate(compendiumName, { name: name_en }, true);
|
||||
//console.log(">>>>> Trait ?", name_en, nbt, trait_fr, trait_fr.name, special);
|
||||
trait_fr.name = trait_fr.name || trait_en.name
|
||||
trait_en.name = nbt + trait_fr.name + special;
|
||||
if (trait_fr.system?.description?.value) {
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
} else if (game.modules.get('wfrp4e-eis')) { // No description in the FR compendium -> test other compendium if presenr
|
||||
trait_fr = game.babele.translate('wfrp4e-eis.items', { name: name_en }, true);
|
||||
trait_en.name = nbt + trait_fr.name + special;
|
||||
if (trait_fr.system?.description?.value)
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("trait")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
trait_fr.name = trait_fr.name || trait_en.name
|
||||
trait_en.name = nbt + trait_fr.name + special;
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
}
|
||||
if (trait_en.system?.specification && isNaN(trait_en.system.specification.value)) { // This is a string, so translate it
|
||||
//console.log("Translating : ", trait_en.system.specification.value);
|
||||
trait_en.system.specification.value = game.i18n.localize(trait_en.system.specification.value.trim());
|
||||
if (trait_en.system?.specification && isNaN(trait_en.system.specification.value)) { // This is a string, so translate it
|
||||
//console.log("Translating : ", trait_en.system.specification.value);
|
||||
trait_en.system.specification.value = game.i18n.localize(trait_en.system.specification.value.trim());
|
||||
}
|
||||
break // Translation has been found, skip other compendiums
|
||||
}
|
||||
}
|
||||
} else if (trait_en.type == "skill") {
|
||||
if (name_en.includes("(") && name_en.includes(")")) { // Then process specific skills name with (xxxx) inside
|
||||
@ -339,94 +333,90 @@ Hooks.once('init', () => {
|
||||
name_en = res[1].trim(); // Get the root skill name
|
||||
special = " (" + game.i18n.localize(res[2].trim()) + ")"; // And the special keyword
|
||||
}
|
||||
let compendiumSkills = 'wfrp4e-core.skills' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumSkills = 'wfrp4e-core.items'
|
||||
}
|
||||
let trait_fr = game.babele.translate(compendiumSkills, { name: name_en }, true);
|
||||
//console.log(">>>>> Skill ?", name_en, special, trait_fr.name, trait_fr);
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
if (trait_fr.name != name_en) { // Translation OK
|
||||
trait_en.name = trait_fr.name + special;
|
||||
if (trait_fr.system) {
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("skill")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
//console.log(">>>>> Skill ?", name_en, special, trait_fr.name, trait_fr);
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
trait_en.name = trait_fr.name + special;
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
break; // Translation has been found, skip other compendiums
|
||||
}
|
||||
}
|
||||
|
||||
} else if (trait_en.type == "prayer") {
|
||||
let compendiumPrayers = 'wfrp4e-core.prayers' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumPrayers = 'wfrp4e-core.items'
|
||||
}
|
||||
let trait_fr = game.babele.translate(compendiumPrayers, { name: name_en }, true);
|
||||
//console.log(">>>>> Prayer ?", name_en, special, trait_fr.name );
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
trait_en.name = trait_fr.name + special;
|
||||
if (trait_fr.system?.description?.value)
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("prayer")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
//DEBUG : console.log(">>>>> Prayer ?", name_en, special, trait_fr.name );
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
trait_en.name = trait_fr.name + special;
|
||||
if (trait_fr.system?.description?.value) {
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (trait_en.type == "spell") {
|
||||
let compendiumSpells = 'wfrp4e-core.spells' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumSpells = 'wfrp4e-core.items'
|
||||
}
|
||||
let trait_fr = game.babele.translate(compendiumSpells, { name: name_en }, true)
|
||||
if (trait_fr.name == name_en) { // If no translation, test eisspells
|
||||
trait_fr = game.babele.translate('wfrp4e-eis.eisspells', { name: name_en }, true);
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("spell")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
//DEBUG : console.log(">>>>> Spell ?", name_en, special, trait_fr.name );
|
||||
trait_en.name = trait_fr.name + special;
|
||||
if (trait_fr.system?.description?.value) {
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (trait_fr.name == name_en) { // If no translation, test unofficial grimoire
|
||||
trait_fr = game.babele.translate('wfrp4e-unofficial-grimoire.ug-spells', { name: name_en }, true);
|
||||
}
|
||||
trait_fr.name = trait_fr.name || name_en
|
||||
//console.log(">>>>> Spell ?", name_en, special, trait_fr.name );
|
||||
trait_en.name = trait_fr.name + special;
|
||||
if (trait_fr.system?.description?.value)
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
|
||||
} else if (trait_en.type == "talent") {
|
||||
} else if (trait_en.type == "talent") {
|
||||
if (name_en.includes("(") && name_en.includes(")")) { // Then process specific skills name with (xxxx) inside
|
||||
let re = /(.*) +\((.*)\)/i;
|
||||
let res = re.exec(name_en);
|
||||
name_en = res[1].trim(); // Get the root talent name, no parenthesis this time...
|
||||
special = " (" + game.i18n.localize(res[2].trim()) + ")"; // And the special keyword
|
||||
}
|
||||
let compendiumTalents = 'wfrp4e-core.talents' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumTalents = 'wfrp4e-core.items'
|
||||
}
|
||||
let trait_fr = game.babele.translate(compendiumTalents, { name: name_en }, true)
|
||||
trait_fr.name = trait_fr.name || name_en // Security since babele v10
|
||||
//console.log(">>>>> Talent ?", trait_fr, name_en, special, trait_fr.name);
|
||||
if (trait_fr.name != "Sprinter" && trait_fr.name == name_en) { // If no translation, test ugtalents
|
||||
trait_fr = game.babele.translate('wfrp4e-unofficial-grimoire.ug-careerstalentstraits', { name: name_en }, true);
|
||||
trait_fr.name = trait_fr.name || name_en // Security since babele v10
|
||||
}
|
||||
if (trait_fr.name && (trait_fr.name == "Sprinter" || trait_fr.name != name_en)) { // Talent translated!
|
||||
trait_en.name = trait_fr.name.trim() + special
|
||||
if (trait_fr.system) { // Why ???
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("talent")
|
||||
for (let compData of validCompendiums) {
|
||||
let trait_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true)
|
||||
if (trait_fr?.system) {
|
||||
trait_fr.name = trait_fr.name || name_en // Security since babele v10
|
||||
//console.log(">>>>> Talent ?", trait_fr, name_en, special, trait_fr.name);
|
||||
if (trait_fr.name && (trait_fr.name == "Sprinter" || trait_fr.name != name_en)) { // Talent translated!
|
||||
trait_en.name = trait_fr.name.trim() + special
|
||||
if (trait_fr.system?.description?.value) { // Why ???
|
||||
trait_en.system.description.value = trait_fr.system.description.value;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (trait_en.type == "career") {
|
||||
let compendiumCareers = 'wfrp4e-core.careers' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumCareers = 'wfrp4e-core.items'
|
||||
}
|
||||
let career_fr = game.babele.translate(compendiumCareers, trait_en, true);
|
||||
career_fr.name = career_fr.name || trait_en.name
|
||||
//console.log(">>>>> Career ?", career_fr.name );
|
||||
trait_en.system = duplicate(career_fr.system);
|
||||
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("career")
|
||||
for (let compData of validCompendiums) {
|
||||
let career_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true);
|
||||
if (career_fr?.system) {
|
||||
trait_en.name = career_fr.name || trait_en.name
|
||||
// DEBG: console.log(">>>>> Career ?", career_fr.name );
|
||||
trait_en.system = duplicate(career_fr.system);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (trait_en.type == "trapping" || trait_en.type == "weapon" || trait_en.type == "armour" || trait_en.type == "container" || trait_en.type == "money") {
|
||||
let compendiumTrappings = 'wfrp4e-core.trappings' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumTrappings = 'wfrp4e-core.items'
|
||||
}
|
||||
let trapping_fr = game.babele.translate(compendiumTrappings, trait_en, true);
|
||||
//console.log(">>>>> Trapping ?", name_en, trapping_fr.name);
|
||||
trapping_fr.name = trapping_fr.name || trait_en.name
|
||||
if (trapping_fr.system) {
|
||||
trait_en.system.description = trapping_fr.system.description;
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag(["trapping"], ["weapon", "armour", "container", "money"])
|
||||
for (let compData of validCompendiums) {
|
||||
let trapping_fr = game.babele.translate(compData.metadata.id, { name: name_en }, true);
|
||||
if (trapping_fr?.system) {
|
||||
//console.log(">>>>> Trapping ?", name_en, trapping_fr.name);
|
||||
trait_en.name = trapping_fr.name || trait_en.name
|
||||
if (trapping_fr.system?.description?.value) {
|
||||
trait_en.system.description.value = trapping_fr.system.description.value
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -478,18 +468,13 @@ Hooks.once('init', () => {
|
||||
}
|
||||
//console.log("Carre groupe : ", value )
|
||||
// Per default
|
||||
let compendiumCareers = 'wfrp4e-core.careers' // Per default
|
||||
if (game.system.version.match("7.")) {
|
||||
compendiumCareers = 'wfrp4e-core.items'
|
||||
}
|
||||
let compendium = game.packs.find(p => p.collection === compendiumCareers);
|
||||
if (compendium) {
|
||||
let newName = game.babele.translate(compendiumCareers, { name: value }).name
|
||||
let validCompendiums = game.wfrp4e.tags.getPacksWithTag("career")
|
||||
for (let compData of validCompendiums) {
|
||||
let newName = game.babele.translate(compData.metadata.id, { name: value }).name
|
||||
if (!newName) newName = value
|
||||
return newName
|
||||
} else {
|
||||
ui.notifications.error("Impossible de trouver la carrière " + value + ". Elle n'est probablement pas traduite.", { permanent: true })
|
||||
}
|
||||
ui.notifications.error("Impossible de trouver la carrière " + value + ". Elle n'est probablement pas traduite.", { permanent: true })
|
||||
return value
|
||||
},
|
||||
|
||||
@ -556,10 +541,11 @@ Hooks.once('init', () => {
|
||||
if (value == "Touch") return "Contact"; // Hop !
|
||||
if (value == "You") return "Vous"; // Hop !
|
||||
if (value == "Instant") return "Instantané"; // Hop !
|
||||
var translw = value;
|
||||
var re = /(.*) Bonus (\w*)/i;
|
||||
var res = re.exec(value);
|
||||
var unit = "";
|
||||
let translw = value;
|
||||
let re = /(.*) Bonus (\w*)/i;
|
||||
let res = re.exec(value);
|
||||
//console.log("RES1:", res);
|
||||
let unit = "";
|
||||
if (res) { // Test "<charac> Bonus <unit>" pattern
|
||||
if (res[1]) { // We have char name, then convert it
|
||||
translw = "Bonus de " + game.i18n.localize(res[1].trim());
|
||||
@ -585,7 +571,12 @@ Hooks.once('init', () => {
|
||||
if (unit == "days") unit = "jours";
|
||||
if (unit == "yard") unit = "mètre";
|
||||
if (unit == "yards") unit = "mètres";
|
||||
translw += " " + unit;
|
||||
if (unit == "Bonus") { // Another weird management
|
||||
translw = "Bonus de " + translw;
|
||||
} else {
|
||||
translw += " " + unit;
|
||||
}
|
||||
//console.log("Spell duration/range/damage/target :", value, translw);
|
||||
return translw;
|
||||
}
|
||||
});
|
||||
@ -593,34 +584,15 @@ Hooks.once('init', () => {
|
||||
|
||||
});
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register world usage statistics
|
||||
function registerUsageCount(registerKey) {
|
||||
if (game.user.isGM) {
|
||||
game.settings.register(registerKey, "world-key", {
|
||||
name: "Unique world key",
|
||||
scope: "world",
|
||||
config: false,
|
||||
default: "",
|
||||
type: String
|
||||
});
|
||||
|
||||
let worldKey = game.settings.get(registerKey, "world-key")
|
||||
if (worldKey == undefined || worldKey == "") {
|
||||
worldKey = randomID(32)
|
||||
game.settings.set(registerKey, "world-key", worldKey)
|
||||
}
|
||||
// Simple API counter
|
||||
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
|
||||
$.ajax(regURL)
|
||||
/* -------------------------------------------- */
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------*/
|
||||
Hooks.once('ready', () => {
|
||||
|
||||
registerUsageCount("wh4-fr-translation")
|
||||
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||
console.log("ClassCounter loaded", moduleCounter)
|
||||
moduleCounter.ClassCounter.registerUsageCount("wh4-fr-translation")
|
||||
}).catch(err=>
|
||||
console.log("No stats available, giving up.")
|
||||
)
|
||||
|
||||
});
|
@ -31,7 +31,7 @@
|
||||
{
|
||||
"id": "Karak Mountain Strider",
|
||||
"name": "Arpenteur des karak",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"career_careergroup": "Patrouilleur des karak",
|
||||
"trappings": [
|
||||
"4 apprentis Coureurs des forts",
|
||||
@ -52,7 +52,7 @@
|
||||
{
|
||||
"id": "Field Warden Captain",
|
||||
"name": "Capitaine Gardechamps",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"career_careergroup": "Gardechamps",
|
||||
"trappings": [
|
||||
"garnison de Sergent Gardechamps",
|
||||
@ -72,7 +72,7 @@
|
||||
{
|
||||
"id": "Badger Rider",
|
||||
"name": "Chevaucheur de blaireau",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"career_careergroup": "Chevaucheur de blaireau",
|
||||
"trappings": [
|
||||
"fontes de selle",
|
||||
@ -83,7 +83,7 @@
|
||||
{
|
||||
"id": "Hold Runner",
|
||||
"name": "Coureur des forts",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"career_careergroup": "Patrouilleur des karak",
|
||||
"trappings": [
|
||||
"sac à dos",
|
||||
@ -95,7 +95,7 @@
|
||||
{
|
||||
"id": "Forest's Wrath",
|
||||
"name": "Courrouxde de la forêt",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"career_careergroup": "Rôdeur fantôme",
|
||||
"trappings": [
|
||||
"trophée d'un ennemi légendaire",
|
||||
@ -111,7 +111,7 @@
|
||||
{
|
||||
"id": "Windwraith",
|
||||
"name": "Esprit du vent",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"career_careergroup": "Rôdeur fantôme",
|
||||
"trappings": [
|
||||
"arc elfique et armure de cuir avec au moins 1 Atout chacun",
|
||||
@ -131,7 +131,7 @@
|
||||
{
|
||||
"id": "Forest Ranger",
|
||||
"name": "Garde forestier",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"career_careergroup": "Rôdeur fantôme",
|
||||
"trappings": [
|
||||
"sac à dos",
|
||||
@ -143,7 +143,7 @@
|
||||
{
|
||||
"id": "Novice Warden",
|
||||
"name": "Garde novice",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"career_careergroup": "Gardechamps",
|
||||
"trappings": [
|
||||
"sac à dos",
|
||||
@ -156,7 +156,7 @@
|
||||
{
|
||||
"id": "Field Warden",
|
||||
"name": "Gardechamps",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"career_careergroup": "Gardechamps",
|
||||
"trappings": [
|
||||
"veste en cuir",
|
||||
@ -167,7 +167,7 @@
|
||||
{
|
||||
"id": "Karak Pathkeeper",
|
||||
"name": "Gardien des routes des karak",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"career_careergroup": "Patrouilleur des karak",
|
||||
"trappings": [
|
||||
"outils (Maçonnerie)"
|
||||
@ -206,7 +206,7 @@
|
||||
{
|
||||
"id": "Badger Master",
|
||||
"name": "Maître blaireau",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"career_careergroup": "Chevaucheur de blaireau",
|
||||
"trappings": [
|
||||
"gros blaireau apprivoisé (blaireau-poney tacheté du Moot)",
|
||||
@ -223,7 +223,7 @@
|
||||
{
|
||||
"id": "Karak Ranger",
|
||||
"name": "Patrouilleur des karak",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.GBhO6rb28jKbYfEk]{Patrouilleur des Karak}</p>",
|
||||
"career_careergroup": "Patrouilleur des karak",
|
||||
"trappings": [
|
||||
"arme à poudre noire avec munitions",
|
||||
@ -248,7 +248,7 @@
|
||||
{
|
||||
"id": "Ghost Strider",
|
||||
"name": "Rôdeur fantôme",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.J4o6g4sjXQ8OXjIj]{Rôdeur Fantôme}</p>",
|
||||
"career_careergroup": "Rôdeur fantôme",
|
||||
"trappings": [
|
||||
"arc elfique et 10 flèches fabriquées par le Personnage",
|
||||
@ -264,7 +264,7 @@
|
||||
{
|
||||
"id": "Badger Sergeant",
|
||||
"name": "Sergent blaireau",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"career_careergroup": "Chevaucheur de blaireau",
|
||||
"trappings": [
|
||||
"caparaçon pour blaireau (2 PA sur la tête et le torse)",
|
||||
@ -274,7 +274,7 @@
|
||||
{
|
||||
"id": "Field Warden Sergeant",
|
||||
"name": "Sergent Gardechamps",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.vnLLLPnNYS97hJVe]{Gardechamps}</p>",
|
||||
"career_careergroup": "Gardechamps",
|
||||
"trappings": [
|
||||
"chemise de mailles de bonne qualité",
|
||||
@ -284,7 +284,7 @@
|
||||
{
|
||||
"id": "Badger Botherer",
|
||||
"name": "Taquineur de blaireau",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.archives1-journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-archives1.journals.AKNVB3Of7B82YFT1]{Chevaucheur de blaireau}</p>",
|
||||
"career_careergroup": "Chevaucheur de blaireau",
|
||||
"trappings": [
|
||||
"sac à dos",
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -104,11 +104,11 @@
|
||||
"name": "Ivre-mort",
|
||||
"description": "Si vous échouez à un nombre de Tests de Résistance à l'Alcool égal à votre Bonus d’Endurance, vous êtes Ivre. Faites un lancer sur le tableau suivant pour en connaître les conséquences:",
|
||||
"results": {
|
||||
"1-2": "<b>« Bravoure du Marienburgher ! »</b>: Gagnez un bonus de +20 à votre Compétence @Compendium[wfrp4e-core.skills.pxNjTxsp1Kp0SmQe].",
|
||||
"3-4": "<b>« : Ignorez tous vos @Compendium[wfrp4e-core.psychologies.klCJX0mNpXYH5AIx]{Préjugés} et toutes vos @Compendium[wfrp4e-core.psychologies.Q2MCUrG2HppMcvN0]{Animosités} existantes.",
|
||||
"1-2": "<b>« Bravoure du Marienburgher ! »</b>: Gagnez un bonus de +20 à votre Compétence @Compendium[wfrp4e-core.items.pxNjTxsp1Kp0SmQe].",
|
||||
"3-4": "<b>« : Ignorez tous vos @Compendium[wfrp4e-core.items.klCJX0mNpXYH5AIx]{Préjugés} et toutes vos @Compendium[wfrp4e-core.items.Q2MCUrG2HppMcvN0]{Animosités} existantes.",
|
||||
"5-6": "<b>« Pourquoi est-ce que la pièce tourne ? »</b>: : À votre tour, vous pouvez soit effectuer un Mouvement, soit une Action, mais pas les deux (voir page 157).",
|
||||
"7-8": "<b>« Je vais tous vous prendre un par un ! »</b>: Gagnez @Compendium[wfrp4e-core.psychologies.Q2MCUrG2HppMcvN0]{Animosité (Tout le monde !)}.",
|
||||
"9-10": "<b>« Comment je suis arrivé là ? »</b>: Vous vous réveillez le lendemain, avec une gueule de bois de tous les diables et peu de souvenirs de ce qui s’est passé. Le MJ et les autres Joueurs qui étaient avec vous combleront les lacunes embarrassantes si vous cherchez à le savoir. Réussissez un Test de @Compendium[wfrp4e-core.skills.R2ytluHiEFF2KQ5e] ou gagnez un État @Condition[Empoisonné]."
|
||||
"7-8": "<b>« Je vais tous vous prendre un par un ! »</b>: Gagnez @Compendium[wfrp4e-core.items.Q2MCUrG2HppMcvN0]{Animosité (Tout le monde !)}.",
|
||||
"9-10": "<b>« Comment je suis arrivé là ? »</b>: Vous vous réveillez le lendemain, avec une gueule de bois de tous les diables et peu de souvenirs de ce qui s’est passé. Le MJ et les autres Joueurs qui étaient avec vous combleront les lacunes embarrassantes si vous cherchez à le savoir. Réussissez un Test de @Compendium[wfrp4e-core.items.R2ytluHiEFF2KQ5e] ou gagnez un État @Condition[Empoisonné]."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -953,7 +953,7 @@
|
||||
"76-80": "<b>Coeur du traître<\/b>:Les Sombres Dieux vous incitent à commettre une immonde perfidie. Si vous attaquez ou trahissez un allié dans toute la mesure de vos capacités, regagnez tous vos Points de Chance. Si vous faites perdre 1 Point de Destin à un autre Personnage, gagnez 1 Point de Destin.",
|
||||
"1-5": "<b>Voix fantomatique<\/b>:Toutes les personnes dans un rayon de (Force Mentale) mètres entendent de sombres murmures envoûtants émanant du Royaume du Choas. Toutes les créatures douées de conscience doivent réussir un Test de Calme Accessible (+20) ou gagner 1 Point de Corruption.",
|
||||
"6-10": "<b>Regard maudit<\/b>:Vos yeux prennent une couleur anormale associée à votre Domaine pendant [[1d10]] heures. Tant que vos yeux gardent cette couleur, vous possédez un État @Condition[Aveuglé] qui ne peut être retiré d'aucune façon.",
|
||||
"11-15": "<b>Choc aethyrique<\/b>:Vous subissez <a class = 'chat-roll'><i class='fas fa-dice'><\/i> [[1d10]]<\/a> Blessures qui ignorent le Bonus d'Endurance et les PA. Réussissez un Test de Résistance Accessible (+20) ou gagnez également 1 État Assommé.",
|
||||
"11-15": "<b>Choc aethyrique<\/b>:Vous subissez <a class = 'chat-roll'><i class='fas fa-dice'><\/i> [[1d10]]<\/a> Blessures qui ignorent le Bonus d'Endurance et les PA. Réussissez un Test de Résistance Accessible (+20) ou gagnez également 1 État Sonné.",
|
||||
"16-20": "<b>Marche de la mort<\/b>:Vos pas sèment la mort sur leur passage. Pour les [[1d10]] prochaines heures, toutes lesp lantes vivantes près de vous fanent et meurent.",
|
||||
"21-25": "<b>Rébellion intestinale<\/b>:Vos intestins deviennent incontrôlables et vous vous souillez. Gagnez 1 État @Condition[Exténué] qui ne peut être retiré tant que vous ne pouvez pas changer de vêtement et vous nettoyer",
|
||||
"26-30": "<b>Feu de l'âme<\/b>:Gagnez 1 État @Condition[En Flammes], alors que vous êtes enveloppé de flammes impies de la couleur associée à votre Domaine.",
|
||||
@ -966,7 +966,7 @@
|
||||
"96-100": "<b>Contre-réaction aethyrique<\/b>:Quiconque situé dans un rayon en mètres égal à votre Bonus de Force Mentale, ami ou ennemi, subit [[1d10]] Points de Blessure qui ignore le Bonus d'Endurance et les PA, et reçoit 1 État @Condition[A Terre]. S'il n'y a aucune cible à portée, la magie n'a nulle part où aller, donc votre tête explose, vous tuant instantanément.",
|
||||
"61-65": "<b>Lévitation<\/b>:Vous êtes soulevé par les Vents de Magie, flottant [[1d10]] mètres au-dessus du sol pendant [[1d10]] minutes. Les autres personnages peuvent vous déplacer de force, et vous pouvez avançer à l'aide de Sorts, d'ailes ou autre, mais vous revenez continuellement à votre position de lévitation lorsqu'on vous laisse tranquille.",
|
||||
"91-95": "<b>Drain de puissance<\/b>:Vous êtes incapable d'utiliser le Talent vous permettant de lancer des Sorts, pendant [[1d10]] minutes.",
|
||||
"66-70": "<b>Régurgitation<\/b>:Vous vomissez de façon incontrôlable bien plus de rejets que votre corps ne peut normallement en contenir. Gagnez l'État @Condition[Assommé], qui dure [[1d10]] rounds.",
|
||||
"66-70": "<b>Régurgitation<\/b>:Vous vomissez de façon incontrôlable bien plus de rejets que votre corps ne peut normallement en contenir. Gagnez l'État @Condition[Sonné], qui dure [[1d10]] rounds.",
|
||||
"86-90": "<b>Puanteur infernale<\/b>:VOus sentez vraiment mauvais ! Vous gagnez le Trait de créature Perturbant, et probablement l'inimité de toute personne ayant de l'odorat. Cet effet dure [[1d10]] heures.",
|
||||
"71-75": "<b>Secousse du Chaos<\/b>:Toutes les créatures dans un rayon de 1d100 mètres doivent réussir un Test d'Athlétisme Accessible (+20) ou gagner l'État @Condition[Prone]{A Terre}.",
|
||||
"81-85": "<b>Terrible affaiblissement<\/b>:Gagnez 1 point de Corruption, 1 État À Terre et 1 État @Condition[Exténué]."
|
||||
@ -1019,8 +1019,8 @@
|
||||
"41-60": "Vous avez mal jugé de votre manoeuvre, ce qui vous laisse hors de position, ou vous perdez la prise de votre arme à distance. Au cours du prochain round, votre Action subira une pénalité de -10.",
|
||||
"61-70": "Vous trébuchez franchement et peinez à vous redresser. Vous perdez votre prochain Mouvement.",
|
||||
"71-80": "Vous ne tenez pas votre arme correctement, ou vous laissez tomber vos munitions. Vous perdez votre prochaine Action",
|
||||
"81-90": "Vous effectuez un mouvement trop ample, ou vous trébuchez et vous tordez la cheville. Subissez le traumatisme @Compendium[wfrp4e-core.injuries.rlXUw5Bgz2xUjVbU]{Déchirure Musculaire (Mineur)} (voir p179). Ce dernier compte comme une Blessure Critique.",
|
||||
"91-100": "Vous manquez complètement votre attaque et touchez 1 Allié au hasard à distance en utilisant le chiffre des unités de votre lancer de dés pour déterminer le DR.SI personne n'est à distance, vous vous frappez tout seul et obtenez l'état @Condition[Assommé] (voir p 167)."
|
||||
"81-90": "Vous effectuez un mouvement trop ample, ou vous trébuchez et vous tordez la cheville. Subissez le traumatisme @Compendium[wfrp4e-core.items.rlXUw5Bgz2xUjVbU]{Déchirure Musculaire (Mineur)} (voir p179). Ce dernier compte comme une Blessure Critique.",
|
||||
"91-100": "Vous manquez complètement votre attaque et touchez 1 Allié au hasard à distance en utilisant le chiffre des unités de votre lancer de dés pour déterminer le DR.SI personne n'est à distance, vous vous frappez tout seul et obtenez l'état @Condition[Sonné] (voir p 167)."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -1077,13 +1077,13 @@
|
||||
"101-105": "<b>Châtiment<\/b>:Vous êtes réduit à 0 Blessures (si vous n'y êtes pas déjà) puis gagnez un État @Condition[Inconscient], qui ne peut pas être enlevée tant que vous n'avez pas récupéré au moins 1 Blessures.",
|
||||
"31-35": "<b>Je trouve inquiétant votre manque de foi<\/b>:Vous ne pouvez pas faire de Tests de Prières pour [[1d10]] + (Points de Péché) Rounds.",
|
||||
"106-110": "<b>Ne prononcez pas mon nom en vain<\/b>:Vous perdez les Talents Bénis et Invoqués pour les prochains [[1d10]] + (Points de Péché) jours.",
|
||||
"36-40": "<b>Partagez ma douleur<\/b>:Vous souffrez de blessures de 1+(Points de Péché), ignorant le bonus d'Endurance et les PA. Tentez également un Test de Résistance Accessible (+20). Si vous échouez, gagnez un État @Condition[Assommé].",
|
||||
"36-40": "<b>Partagez ma douleur<\/b>:Vous souffrez de blessures de 1+(Points de Péché), ignorant le bonus d'Endurance et les PA. Tentez également un Test de Résistance Accessible (+20). Si vous échouez, gagnez un État @Condition[Sonné].",
|
||||
"141-145": "<b>Prouvez votre valeur<\/b>:Un serviteur divin de votre divinité apparaît à moins de 100 mètres et attaque, intervient, réprimande ou similaire selon la nature du dieu offensé.",
|
||||
"41-45": "<b>Votre cause est indigne<\/b>:Vos cibles gagnent un État À Terre. Toutes les Bénédictions ou Miracles de votre divinité qui les ciblent échouent automatiquement pour les prochains [[1d10]] + (Points de Péché) jours.",
|
||||
"136-140": "<b>Excommunication<\/b>:Vous perdez les Talents Invoquer et Bénir jusqu'à ce que vous exécutiez 2 Pénitences ; la première Pénitence rend le Talent Bénir, et la seconde rend le Talent Invoquer. Tous les adeptes de votre dieu sont automatiquement conscients de votre situation ; tous les Tests pour interagir avec eux sont automatiquement Très Difficile (-30), et ne peuvent être modifiés positivement au-delà de cela.",
|
||||
"46-50": "<b>Cessez vos babillages<\/b>:Vous ne pouvez pas faire de Tests de Prière pour les prochains [[2d10]] + (Points de Péché) rounds.",
|
||||
"131-135": "<b>Souffrez comme je souffre<\/b>:Vous gagnez 1+(Points de Péché) @Condition[Hémorragique] chaque matin, jusqu'à ce que vous ayez fait une pénitence.",
|
||||
"51-55": "<b>Ressentez ma colère<\/b>:Vous souffrez de [[1d10]] + (Points de Péché) Blessures. Tentez également un Test de Résistance Intermédiaire (+0). Si vous échouez, gagnez un État @Condition[Assommé].",
|
||||
"51-55": "<b>Ressentez ma colère<\/b>:Vous souffrez de [[1d10]] + (Points de Péché) Blessures. Tentez également un Test de Résistance Intermédiaire (+0). Si vous échouez, gagnez un État @Condition[Sonné].",
|
||||
"126-130": "<b>Tonerre et foudre<\/b>:Ton dieu te frappe. Vous êtes réduit à 0 Blessures (si vous n'y êtes pas déjà) et obtenez l'État @Condition[En Flammes].",
|
||||
"56-60": "<b>Je ne vous aiderez pas<\/b>:Vous subissez une pénalité de -10 à une Compétence associée à votre divinité (telle que déterminée par le MJ) pour les prochains [[1d10]] + (Points de Péché) jours .",
|
||||
"121-125": "<b>Contemplez votre cruauté<\/b>:Vous souffrez de visions atroces de tous vos échecs, qui semblent durer une éternité, mais qui sont terminés en un instant. Discutez avec votre MJ pour crée une psychologie personnalisée (voir page 190) qui reflète votre personnage qui vit l'expérience traumatisante.",
|
||||
@ -1091,18 +1091,18 @@
|
||||
"116-120": "<b>Vous abusez de ma miséricorde<\/b>:Vous perdez les Talents d'Invoquer et de Bénir pour les prochains [[2d10]] + Jours de (Points de Péché).",
|
||||
"66-70": "<b>Frappé de cécité<\/b>:Gagnez l'État @Condition[A Terre]. Gagnez 1+(Points de Péché) État @Condition[Aveuglé], qui ne peut être éliminé qu'en passant un Test de Prière Intermédiaire (+0), avec succès en éliminant 1 + DR États @Condition[Aveuglé].",
|
||||
"111-115": "<b>Ne vous attachez pas aux futilités<\/b>:Toutes vos Objet sont retirées, vous laissant nue. Pour chaque pénitence que vous complétez, vous aurez un objet magique pris qui vous sera retourné, si vous avez un.",
|
||||
"71-75": "<b>Qu'allez-vous sacrifier ?<\/b>:Vous souffrez [[1d10]] + (Points de Péché) Blessures, ignorant le Bonus d'Endurance et les PA. Essayez également un Test de Résistance Complexe (-10). Si vous échouez, gagnez un État @Condition[Assommé].",
|
||||
"71-75": "<b>Qu'allez-vous sacrifier ?<\/b>:Vous souffrez [[1d10]] + (Points de Péché) Blessures, ignorant le Bonus d'Endurance et les PA. Essayez également un Test de Résistance Complexe (-10). Si vous échouez, gagnez un État @Condition[Sonné].",
|
||||
"146-150": "<b>Je te chasse<\/b>:Tu es abandonné par ton dieu. Vous perdez définitivement les Talents Bénis et Invoqués, et vous perdez toutes les Avancées de Prière. De plus, tous les adeptes de votre dieu sont automatiquement conscients de votre situation ; tous les Tests pour interagir avec eux sont automatiquement Très Difficile (-30), et ne peuvent être modifiés positivement au-delà.",
|
||||
"76-80": "<b>Vous avez péché contre moi<\/b>:Votre dieu est extrêmement agacé et vous force à faire des Tests de Prière en guise d'Action pour les prochains [[1d10]] + Points Péché Rounds en pénitence.",
|
||||
"151-151": "<b>Appelé à rendre des comtes<\/b>:Tu es convoqué devant ton dieu pour faire face au jugement final. A moins d'avoir un Point de Destins, vous ne revenez jamais. Si vous dépensez un Point de Destin, vous êtes renvoyé à un point choisi par le MJ, et vous subissez également les effets de Je vous chasse.",
|
||||
"1-5": "<b>Visions sacrées<\/b>:Les visions de votre dieu tourmentent vos sens. Tenter un Test de Résistance Accessible (+20). Si vous échouez, gagnez un Etat @Condition[Assommé]. Le MJ détermine ce que peuvent être les visions.",
|
||||
"1-5": "<b>Visions sacrées<\/b>:Les visions de votre dieu tourmentent vos sens. Tenter un Test de Résistance Accessible (+20). Si vous échouez, gagnez un Etat @Condition[Sonné]. Le MJ détermine ce que peuvent être les visions.",
|
||||
"96-100": "<b>Faites pénitence<\/b>:Tu dois faire une pénitence.",
|
||||
"6-10": "<b>Pensez à vos actes<\/b>:Tout Test de Prière réussi ne peut pas atteindre plus de +0 DR pour la semaine suivante.",
|
||||
"89-95": "<b>Redoutez ma colère<\/b>:Gagnez 1+(Points de Péché) en État @Condition[Brisé].",
|
||||
"11-15": "<b>Tenez compte de mes enseignements<\/b>:Vous souffrez d'une pénalité de -10 à votre Compétence de Prière pour les [[1d10]] + (Points de Péché) prochains Rounds.",
|
||||
"88-88": "<b>Interférence démoniaque<\/b>:Les Dieux des Ténèbres répondent à vos supplications au lieu de votre dieux. [[1d10]] Petits Démons apparaissent à moins de [[2d10]] mètres de votre position, et attaquent les cibles les plus proches.",
|
||||
"16-20": "<b>Prouvez votre dévotion<\/b>:Gagnez un État @Condition[A Terre]. Cette condition n'est pas supprimée tant que vous n'avez pas réussi un Test de Prière Accessible (+20).",
|
||||
"81-87": "<b>Purifier la chair<\/b>:Vous souffrez de [[2d10]] + (Points de Péché) Blessures, ignorant le bonus d'Endurance et les PA. Tentez également un Test de Résistance Difficile (-20). Si vous échouez, gagnez un État @Condition[Assommé]. Si vous échouez avec -4 DR ou moins, obtenez un État @Condition[Unconscious]{Inconscient} qui dure un minimum de [[1d10]] Rounds.",
|
||||
"81-87": "<b>Purifier la chair<\/b>:Vous souffrez de [[2d10]] + (Points de Péché) Blessures, ignorant le bonus d'Endurance et les PA. Tentez également un Test de Résistance Difficile (-20). Si vous échouez, gagnez un État @Condition[Sonné]. Si vous échouez avec -4 DR ou moins, obtenez un État @Condition[Unconscious]{Inconscient} qui dure un minimum de [[1d10]] Rounds.",
|
||||
"21-25": "<b>Vous abusez de ma patience<\/b>:Vous ne pouvez pas faire de Tests de Prière pour [[1d10]] Rounds."
|
||||
}
|
||||
},
|
||||
|
@ -779,7 +779,7 @@
|
||||
{
|
||||
"description": "<p style=\"text-align: justify;\">Le prix varie en fonction de la fabrication, du type de métal et de la valeur des gemmes. En règle générale, des bagues communes sans gemme coûtent 10 pièces du métal correspondant (par exemple, cuivre, argent ou or) alors que les colliers coûtent 20 pièces du métal correspondant.</p>",
|
||||
"effects": [],
|
||||
"id": "Jewellry",
|
||||
"id": "Jewellery",
|
||||
"name": "Bijoux"
|
||||
},
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
660
compendium/wfrp4e-dotr.dotr-items_OLD.json
Normal file
660
compendium/wfrp4e-dotr.dotr-items_OLD.json
Normal file
@ -0,0 +1,660 @@
|
||||
{
|
||||
"label": "Items (Mort sur le Reik)",
|
||||
"mapping": {
|
||||
"skills": {
|
||||
"path": "system.skills",
|
||||
"converter": "career_skills"
|
||||
},
|
||||
"talents": {
|
||||
"path": "system.talents",
|
||||
"converter": "career_talents"
|
||||
},
|
||||
"class": {
|
||||
"path": "system.class.value",
|
||||
"converter": "generic_localization"
|
||||
},
|
||||
"careergroup": {
|
||||
"path": "system.careergroup.value",
|
||||
"converter": "career_careergroup"
|
||||
},
|
||||
"sduration": {
|
||||
"path": "system.duration.value",
|
||||
"converter": "spells_duration_range_target_damage"
|
||||
},
|
||||
"srange": {
|
||||
"path": "system.range.value",
|
||||
"converter": "spells_duration_range_target_damage"
|
||||
},
|
||||
"starget": {
|
||||
"path": "system.target.value",
|
||||
"converter": "spells_duration_range_target_damage"
|
||||
},
|
||||
"sdamage": {
|
||||
"path": "system.damage.value",
|
||||
"converter": "spells_duration_range_target_damage"
|
||||
},
|
||||
"trappings": "system.trappings",
|
||||
"gmdescription": "system.gmdescription.value",
|
||||
"durationValue": "system.duration.value",
|
||||
"durationUnit": "system.duration.unit",
|
||||
"contraction": "system.contraction.value",
|
||||
"incubationValue": "system.incubation.value",
|
||||
"incubationUnit": "system.incubation.unit",
|
||||
"symptoms": "system.symptoms.value",
|
||||
"permanent": "system.permanent.value"
|
||||
},
|
||||
"entries": [
|
||||
{
|
||||
"id": "Agurk",
|
||||
"name": "Agurk",
|
||||
"description": "<h3>Baume Elfique</h3>\n<p>Communément appelé Agurk, les habitants du Moot appellent cette herbe <em>L'Herbe à Frissons</em>. Aussi connu comme <em>Zitterwort </em> dans l'Empire, <em>Trema </em> en Tilée et <em>Gysenblat </em>en Norsca. Les Elfes l'appelle <em>Echryddeillen</em>. Elle pousse dans les vastes prairie dont le sol est bien drainé mais pas trop sabloneux. Pour la préparer, cueillez les feuilles, enlevez la tige, et suspendez les près du feu pour les faire sécher pendant au moins une semaine. Cette herbe est très utile pour améliorer la circulation sanguine et se débarasser d'un gros rhume. Ne l'utilisez pas pour soigner la fièvre, car elle peut avoir l'effet inverse. Pour l'utiliser, ajouter quelques feuilles à un bol d'eau bouillante, laissez infuser une à deux minutes jusqu'à légère coloration, alors seulement le patient peut inhaler les vapeurs pendant trois à quatre minutes. Le patient devrait alors commencer à trembler. Installez le confortablement et surveillez le trois ou quatre heures. Si les tremblements n'ont pas totalement disparu, vous pouvez administrer un léger sédatif. Attention de bien jeter l'infusion car si elle est bu, elle peut provoquer des convulsions mortelles.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Alfunas",
|
||||
"name": "Alfunas",
|
||||
"description": "<h3>L'enchantement des Rebouteux</h3>\n<p><em>Alfunas </em>est le nom elfique de cette plante et est devenu son nom commun dans tout l'Empire car les Elfes de Bois en ont le quasi monopole de la culture. Dans le Moot nous l'appelons ‘Bonewort’; les Bretonies l'appelle <em>Ossefeuille </em>et les Tiléens <em>Ossoripa</em>; certains érudits l'appellent <em>Folium Emendata</em>.</p>\n<p>Afin que l'emplatre soit le plus efficace possible, il est conseillé de le laisser reposer au moins deux semaines dans un bocal couvert, entreposé dans un endroit frais et sec. Ne surtout pas le laisser trop sécher : quand la surface de l'emplatre laisse apparaître de petites fissures, bien fermer le bocal avec de la cire ou avec un bouchon en liège.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ammo",
|
||||
"name": "Munition",
|
||||
"description": "<p>Munitions par défaut d'une arme présente sur un véhicule</p>"
|
||||
},
|
||||
{
|
||||
"id": "Analgesic Saliva",
|
||||
"name": "Salive Analgésique",
|
||||
"description": "<p>La morsure de la créature ne fait pas souffrir, ce qui lui permet d'enlacer ses victimes endormies sans se faire remarquer. Cet effet disparait 10-Bonus d'Endurance rounds après que la créature se soit détachée.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Anticoagulant Saliva",
|
||||
"name": "Salive Anticoagulante",
|
||||
"description": "<p>La victime mordue par la créature gagne une condition @Condition[Hémorragique].</p>"
|
||||
},
|
||||
{
|
||||
"id": "Aquatic",
|
||||
"name": "Aquatique",
|
||||
"description": "<p>La créature peut respirer et se déplace à sa vitesse maximum sous l'eau. Elle ne peut se déplacer sur terre.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Armour Plating (Bronze)",
|
||||
"name": "Coque renforcée (Bronze)",
|
||||
"description": "<p>Une fine couche de bronze ajoute 1 points d'armure à la coque d'un bateau, mais elle augmente son poids et requiert un entretien régulier. Celui ci consiste à sortir le bateau entièrement de l'eau et à gratter la coque.</p>\n<p><strong>Bronze</strong>: 1 PA; doit être grattée au moins une fois tous les trois mois sinon l'oxidation est telle que la surface se recouvre d'algues, ce qui augmente la friction et réduit la manoeuvrabilité (M -1, Test de <strong>Maniement de Bateau</strong> -10). Cela n'affecte pas la valeur d'armure.</p>\n<blockquote>\n<p><strong>Note pour Foundry: </strong>Cette plaque représente 3 mètres de longeur d'armure. Ne pas oublier de modifier le prix et l'encombrement en fonction du nombre de plaques à utiliser pour couvrir la coque.</p>\n</blockquote>"
|
||||
},
|
||||
{
|
||||
"id": "Armour Plating (Iron)",
|
||||
"name": "Coque renforcée (Fer)",
|
||||
"description": "<p>Une fine couche de fer ajoute 1 à 2 points d'armure à la coque d'un bateau, mais elle augmente son poids et requiert un entretien régulier. Celui ci consiste à sortir le bateau entièrement de l'eau et à gratter la coque.</p>\n<p><strong>Fer: </strong>2 PA; doit être grattée au moins une fois par mois ou des tâches de rouille apparaissent, ce qui augmente la friction et réduit la manoeuvrabilité (M -1, Test de <strong>Navigation</strong> -10). Si la maintenance n'est pas réalisée, la couche de fer a rouillé et ne protège plus.</p>\n<blockquote>\n<p><strong>Note pour Foundry: </strong>Cette plaque représente 3 mètres de longeur d'armure. Ne pas oublier de modifier le prix et l'encombrement en fonction du nombre de plaques à utiliser pour couvrir la coque.</p>\n</blockquote>"
|
||||
},
|
||||
{
|
||||
"id": "Armoured Walls (Fishing Skiff)",
|
||||
"name": "Murs renforcés (Petit bateau de pêche)",
|
||||
"description": "<p>Les murs de la cabine ou autre structure sur le bateau sont renforcés avec des feuilles de fer. Tous les personnages ou PNJ protégés derrière sont considérés comme @JournalEntry[Difficulté de combat]{couverture totale} et les attaques à distance contre eux sont Très Difficile.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Armoured Walls (Large Barge)",
|
||||
"name": "Murs renforcés (Grande barge)",
|
||||
"description": "<p>Les murs de la cabine ou autre structure sur le bateau sont renforcés avec des feuilles de fer. Tous les personnages ou PNJ protégés derrière sont considérés comme @JournalEntry[Difficulté de combat]{couverture totale} et les attaques à distance contre eux sont Très Difficile.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Armoured Walls (Row Boat)",
|
||||
"name": "Murs renforcés (Barque)",
|
||||
"description": "<p>Les murs de la cabine ou autre structure sur le bateau sont renforcés avec des feuilles de fer. Tous les personnages ou PNJ protégés derrière sont considérés comme @JournalEntry[Difficulté de combat]{couverture totale} et les attaques à distance contre eux sont Très Difficile.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Armoured Walls (Typical Barge or Patrol Boat)",
|
||||
"name": "Murs renforcés (Barge standard ou Bateau de Patrouille)",
|
||||
"description": "<p>Les murs de la cabine ou autre structure sur le bateau sont renforcés avec des feuilles de fer. Tous les personnages ou PNJ protégés derrière sont considérés comme @JournalEntry[Difficulté de combat]{couverture totale} et les attaques à distance contre eux sont Très Difficile.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Attach and Feed",
|
||||
"name": "Piquer, s'attacher et aspirer",
|
||||
"description": "<p>Si la créature réussit son attaque de morsure, elle s'attache à la victime avec une force surprenante. Alors elle commence à aspirer le sang, causant une perte de 1 Blessure automatique par round tant qu'elle est attachée. Les victimes réduites à zero Blessure gagne la condition @Condition[Inconsciente] par manque de sang.</p>\n<p>La créature se détache seulement quand elle s'est suffisament nourrie, c'est à dire quand elle a extrait son Bonus Endurance en Blessure sur la victime. A ce moment là, elle se retire pour digérer.</p>\n<p>La créature peut être arrachée grâce à un jet <strong>opposé de Force</strong>, qui même réussi infligera un point de blessure à la victime. Si la créature posséde un trait Effrayé, ce qui peut l'effrayer la fera lâcher immédiatement sa proie.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ball (Cannon)",
|
||||
"name": "Boulet de Canon",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "Ballista",
|
||||
"name": "Balliste",
|
||||
"description": "<p>Les balistes sont des arbalètes géantes qui tirent des projectiles à tête de fer de la taille de piquets de clôture. Elles peuvent embrocher une personne ou une créature comme un poulet, ou faire un joli trou dans la coque d'un bateau. Les balistes sont normalement montées sur des pivots, ce qui leur permet d'avoir un large arc de tir.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Barrakul",
|
||||
"name": "Barrakul",
|
||||
"description": "<p><img src=\"modules/wfrp4e-dotr/assets/items/barrakul.png\" alt=\"\" width=\"119\" height=\"368\" /></p>",
|
||||
"gmdescription": "L’épée, que le MJ peut choisir de considérer comme une Arme simple ou une zweihänder en fonction des compétences du groupe, est en parfait état. Son nom, Barrakul (« Espoir des montagnes »), est inscrit en runes naines le long de sa lame. Il s’agit sans aucun doute de la création d’un forgeron des runes d’une grande compétence. Lorsqu’elle est maniée au combat, la lame brille, visible un instant et disparaissant l’instant d’après, et seule la lueur rouge de ses runes est constante. Les armures magiques sont inutiles contre cette lame, vous pouvez donc ignorer les PA des armures ou boucliers non magiques. Elle la qualité Incassable, mais gagne le défaut Inoffensive si elle est brandie contre un nain."
|
||||
},
|
||||
{
|
||||
"id": "Beast Tongue",
|
||||
"name": "Langage des Hommes-Bêtes",
|
||||
"description": "<p>Vous pouvez parler et comprendre la Langue des Hommes-Bêtes, même si vous n'avez pas la compétence adéquate.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Bension of Tzeentch",
|
||||
"name": "Bénédiction de Tzeentch",
|
||||
"description": "<p>Vous faites appel à la faveur de Tzeentch et obtenez un bonus temporaire de +10 à l'une des Caractéristiques suivantes: <strong>Capacité de Combats, Endurance, Agilité ou Force Mentale</strong>.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Bestial Rage",
|
||||
"name": "Rage Bestiale",
|
||||
"description": "<p>Vous invoquez la fureur de la bête, obtenant temporairement le Trait @Compendium[wfrp4e-core.items.fjd1u9VAgiYzhBRp]{Rage} .</p>"
|
||||
},
|
||||
{
|
||||
"id": "Blood Drain",
|
||||
"name": "Drain de sang",
|
||||
"description": "<p>Si la sangsue causse une blessure, elle s'attache à sa victime, lui infligeant 1 @Condition[Hémorragique] jusqu'à ce qu'elle soit tuée ou gorgée de sang. Pour voir si elle est gorgée de sang, lancez un 1d10 à chaque Round : si le résultat est un 9 ou un 10, elle tombe, sinon elle continue à se nourrir. Le feu ou des substances irritantes (sel, acide, etc.) lui fera relâcher son emprise et la sangsue tentera de s'enfuir. Le simple fait de l'arracher de la victime provoque 1 condition @Condition[Hémorragique].</p>"
|
||||
},
|
||||
{
|
||||
"id": "Broad Rudder (Fishing Skiff)",
|
||||
"name": "Grand Gouvernail (Petit bateau de pêche)",
|
||||
"description": "<p>Un gouvernail plus grand améliore la direction, mais nécessite un barreur plus fort en raison de la résistance accrue à l'eau. Chaque Test de <strong>Maniement de Bateau</strong> doit être accompagné d'un Test de Force; si le Test de Force est réussi, les DR peuvent être ajoutés à ceux du Test de Maniement de Bateau. Il n'y a pas de pénalité pour un échec ordinaire à ce test de <strong>force</strong>. Cependant, un échec critique ou un échec stupéfiants entraînent un brusque mouvement de rotation du gouvernail qui envoie le malheureux personnage la tête la première dans l'eau!</p>"
|
||||
},
|
||||
{
|
||||
"id": "Broad Rudder (Large Barge)",
|
||||
"name": "Grand Gouvernail (Grande Barge)",
|
||||
"description": "<p>Un gouvernail plus grand améliore la direction, mais nécessite un barreur plus fort en raison de la résistance accrue à l'eau. Chaque Test de <strong>Maniement de Bateau</strong> doit être accompagné d'un Test de Force; si le Test de Force est réussi, les DR peuvent être ajoutés à ceux du Test de Maniement de Bateau. Il n'y a pas de pénalité pour un échec ordinaire à ce test de <strong>force</strong>. Cependant, un échec critique ou un échec stupéfiants entraînent un brusque mouvement de rotation du gouvernail qui envoie le malheureux personnage la tête la première dans l'eau!</p>"
|
||||
},
|
||||
{
|
||||
"id": "Broad Rudder (Row Boat)",
|
||||
"name": "Grand Gouvernail (Barque)",
|
||||
"description": "<p>Un gouvernail plus grand améliore la direction, mais nécessite un barreur plus fort en raison de la résistance accrue à l'eau. Chaque Test de <strong>Maniement de Bateau</strong> doit être accompagné d'un Test de Force; si le Test de Force est réussi, les DR peuvent être ajoutés à ceux du Test de Maniement de Bateau. Il n'y a pas de pénalité pour un échec ordinaire à ce test de <strong>force</strong>. Cependant, un échec critique ou un échec stupéfiants entraînent un brusque mouvement de rotation du gouvernail qui envoie le malheureux personnage la tête la première dans l'eau!</p>"
|
||||
},
|
||||
{
|
||||
"id": "Broad Rudder (Typical Barge or Patrol Boat)",
|
||||
"name": "Grand Gouvernail (Barge standard ou Bateau de Patrouille)",
|
||||
"description": "<p>Un gouvernail plus grand améliore la direction, mais nécessite un barreur plus fort en raison de la résistance accrue à l'eau. Chaque Test de <strong>Maniement de Bateau</strong> doit être accompagné d'un Test de Force; si le Test de Force est réussi, les DR peuvent être ajoutés à ceux du Test de Maniement de Bateau. Il n'y a pas de pénalité pour un échec ordinaire à ce test de <strong>force</strong>. Cependant, un échec critique ou un échec stupéfiants entraînent un brusque mouvement de rotation du gouvernail qui envoie le malheureux personnage la tête la première dans l'eau!</p>"
|
||||
},
|
||||
{
|
||||
"id": "Cannon (Medium)",
|
||||
"name": "Canon (Moyen)",
|
||||
"description": "<p>Les canons sont difficiles à trouver, dangereux à utiliser et terrifiants pour quiconque les charge. Les plus gros canons sont réservés aux forteresses, mais ceux de petite et moyenne taille peuvent être montés sur des bateaux. La Patrouille Fluviale a tendance à voir d'un mauvais oeil les navires non militaires qui sont armés de canons, et les aventuriers trouvés en possession de canons devront prouver qu'ils ne sont pas des pirates.</p>\n<p>Les canons peuvent tirer trois types de munitions:</p>\n<p>@Item[Ball (Cannon)]{Ball}</p>\n<p>@Item[Chain Shot (Cannon)]{Chain Shot}</p>\n<p>@Item[Grapeshot (Cannon)]{Grapeshot}</p>\n<p>Le canon peut être monté à l'avant d'un bateau, ou à l'arrière, ou sur un ou deux côtés. Contrairement à une @Item[Ballista]{ballista}, un canon ne peut pas pivoter et ne peut tirer que droit devant, derrière ou par le travers, selon son emplacement.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Cannon (Small)",
|
||||
"name": "Canon (Petit)",
|
||||
"description": "<p>Les canons sont difficiles à trouver, dangereux à utiliser et terrifiants pour quiconque les charge. Les plus gros canons sont réservés aux forteresses, mais ceux de petite et moyenne taille peuvent être montés sur des bateaux. La Patrouille Fluviale a tendance à voir d'un mauvais oeil les navires non militaires qui sont armés de canons, et les aventuriers trouvés en possession de canons devront prouver qu'ils ne sont pas des pirates.</p>\n<p>Les canons peuvent tirer trois types de munitions:</p>\n<p>@Item[Ball (Cannon)]{Ball}</p>\n<p>@Item[Chain Shot (Cannon)]{Chain Shot}</p>\n<p>@Item[Grapeshot (Cannon)]{Grapeshot}</p>\n<p>Le canon peut être monté à l'avant d'un bateau, ou à l'arrière, ou sur un ou deux côtés. Contrairement à une @Item[Ballista]{ballista}, un canon ne peut pas pivoter et ne peut tirer que droit devant, derrière ou par le travers, selon son emplacement.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Capricious",
|
||||
"name": "Inconstant",
|
||||
"description": "<p>L'humeur de la créature varie d'un extrème à l'autre. Quand un personnage réalise u n jet de <strong>Sociabilité </strong>en intéraction avec la créature, tirez un jet sur la table suivante:</p>\n<table style=\"width: 77.0354%; height: 95px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 16px;\">\n<td style=\"width: 14.1285%; text-align: center; height: 15px;\"><strong>[[/r 1d10]]</strong></td>\n<td style=\"width: 84.5762%; text-align: center; height: 15px;\"><strong>Resultat</strong></td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 14.1285%; height: 16px;\">1</td>\n<td style=\"width: 84.5762%; height: 16px;\">Soustraire 2 au DR</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 14.1285%; height: 16px;\">2-3</td>\n<td style=\"width: 84.5762%; height: 16px;\">Soustraire 1 au DR</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 14.1285%; height: 16px;\">4-7</td>\n<td style=\"width: 84.5762%; height: 16px;\">Pas de modificateur au DR</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 14.1285%; height: 16px;\">8-9</td>\n<td style=\"width: 84.5762%; height: 16px;\">Ajouter 1 au DR</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 14.1285%; height: 16px;\">10</td>\n<td style=\"width: 84.5762%; height: 16px;\">Ajouter 2 au DR</td>\n</tr>\n</tbody>\n</table>"
|
||||
},
|
||||
{
|
||||
"id": "Carapace",
|
||||
"name": "Carapace",
|
||||
"description": "+1 point d'armure sur toutes les parties du corps; cette mutation peut être cachée en s'habillant de pied en cape."
|
||||
},
|
||||
{
|
||||
"id": "Catapult (Medium)",
|
||||
"name": "Catapulte (Moyenne)",
|
||||
"description": "<p>Les catapultes sont des armes à tir indirect qui lancent des roches, des bombes ou des engins incendiaires en arc de cercle, les faisant s'écraser sur la tête de leurs cibles. Elles sont simples à construire mais difficiles à diriger, surtout contre une cible qui bouge. Les catapultes sont difficiles à manipuler, car il faut deux ou trois actions pour les déplacer, selon leur taille.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Catapult (Small)",
|
||||
"name": "Catapulte (Petite)",
|
||||
"description": "<p>Les catapultes sont des armes à tir indirect qui lancent des roches, des bombes ou des engins incendiaires en arc de cercle, les faisant s'écraser sur la tête de leurs cibles. Elles sont simples à construire mais difficiles à diriger, surtout contre une cible qui bouge. Les catapultes sont difficiles à manipuler, car il faut deux ou trois actions pour les déplacer, selon leur taille.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Cavity Worms",
|
||||
"name": "Vers des Creux",
|
||||
"description": "<p>Le vers des creux est un dangereux parasite qui infeste l'eau sale et les denrées alimentaires avariées. D'une longueur d'environ un 2cm et de quelques millimètres large, le vers a une peau marbrée vert-brun qui forme un étrange motif de crâne près de sa tête. Les mères racontent des contes de vers des creux pour effrayer leurs enfants et les inciter à se laver la bouche. C'est pourquoi la plupart des habitants du Vieux Monde considère ces créatures comme une simple légende. Ils ont tort de le croire.</p>\n<h4>Effet du Vers des Creux</h4>\n<p>Une fois ingéré, le Vers de Creux s'enfonce dans les tissus mous de la bouche ou de la gorge. Il sécrète un liquide anesthésiant qui engourdit instantanément la zone affectée. Chaque jour, la victime peut effectuer un <strong>Test de Perception</strong> pour remarquer la présence du ver. Un Médecin ou un autre Personnage qualifié peut faire un <strong>Test de Guérison Accessible (+10)</strong> pour éliminer le vers; les Personnages non qualifiés font un Test de Dextérité standard. Les Personnages qui essaient de se soigner eux-même ont besoin d'un miroir et souffrent d'une pénalité de -10%. En cas d'échec au Test, le personnage obtient un @Condition[Hémorragique]. Une fois installé dans la bouche de la victime, le Vers de creux se nourrit de la respiration de sa victime : l'essence de son esprit. Tant que ce parasite reste, l'hôte est soumis à une pénalité de -10% à tous ses Tests.</p>\n<p>Au bout d'une semaine, le parasite commence son chemin vers le cerveau de la victime. Chaque jour, la victime peut effectuer un <strong>Test de Perception Accessible (+20)</strong> pour remarquer une petite quantité de sang s'écoulant de sa bouche. L'élimination du Vers de Creux à ce stade, nécessite un <strong>Test de Chirurgie Complexe (-10)</strong>.</p>\n<p>Si le Vers de Creux n'est pas enlevé dans les trois jours suivants, il n'est plus possible de l'enlever sans tuer l'hôte. Alors que le vers s'enfonce dans le cerveau et se prépare à pondre ses oeufs, la victime doit effectuer un <strong>Test de Résistance</strong> chaque jour. Chaque jour où le Test échoue, lancez 1d10, ajoutez le nombre de degrés d'échec, et consultez le tableau @Table[cavityworms]</p>\n<p>Les oeufs du Vers de Creux éclosent 1d10 jours après avoir été pondus, sortant des narines de la victime pour trouver un nouvel hôte. Pour ceux qui survivent à ce processus, toutes les pénalités sont permanentes et ne peuvent enlevées que par des moyens magiques ou miraculeux.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Chain Shot (Cannon)",
|
||||
"name": "Boulets enchainés (Canon)",
|
||||
"description": "<p>Le projectile est constitué d'une paire de boulets de fer reliés par une chaîne. Tiré par un canon, il tourne en rond dans l'air s'enroulant violemment autour des cibles résistantes. Un canon chargé de boulet enchainés n'obtient pas de nouvelles qualités mais cause des dommages doubles par rapport à la normale sur les mâts et le gréement. La chaine a été développée pour détruire rapidement les voiles d'un navire ennemi, le laissant immobilisé.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Chosen of Tzeentch (Warrior)",
|
||||
"name": "Choisi de Tzeentch (Guerrier)",
|
||||
"description": "<p>@JournalEntry[Warrior of Tzeentch]{Warrior of Tzeentch}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Climb",
|
||||
"name": "Escalade",
|
||||
"description": "<p>Vos ongles de doigts et d'orteils deviennent des courtes griffes, pas assez longues pour servir d'armes mais suffisantes pour rendre l'escalade beaucoup plus facile. Lorsque vous êtes pieds nus et sans gants, vous obtenez le Talent @Compendium[wfrp4e-core.items.MGEPI4jNhymNIRVz]{Grimpeur} Grimpeur pour la durée du sort.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Closed Rowlock",
|
||||
"name": "Dame de nage fermée",
|
||||
"description": "<p>Une dame de nage est une sorte de support qui maintient la rame sur un bateau à rames. La plupart sont soit des butées en bois en forme de C intégrées dans le bastingage, soit des fixations en fer en forme de U qui pivotent avec le mouvement de la rame. Dans les deux cas, une rame peut se détacher de son pivot en cas d'échec à un <strong>Test de Rame</strong>, et le rameur doit prendre une action pour remettre la rame avant de reprendre la route. Les dames de nage fermées permettent de résoudre ce problème. La rame peut être enfilée par un trou dans le bastingage ou attachée à un pivot standard avec des lanières de cuir, mais dans les deux cas, elle ne peut physiquement pas en sortir.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Creeping",
|
||||
"name": "Rampant",
|
||||
"description": "<p>Cette créature est tenace, mais lente. Elle ne peut pas courrir.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Engulf",
|
||||
"name": "Engloutir",
|
||||
"description": "<p>Si la créature est de taille suffisante, toute attaque réussie l'engloutie, même si elle ne cause aucun dégâts; cela inflige un état Empêtré. Au début de chaque Round, les victimes englouties obtiennent un État Empêtré par Round, et perdent automatiquement 1 Point de Blessure car de puissantes enzymes commencent à la digérer. Si la créature n'est pas de taille suffisante pour engloutir complètement une victime, elle peut être encore assez grande pour immobiliser l'emplacement touché. La créature ne peut plus attaquer les victimes complètement englouties, mais elle peut toujours en attaquer d'autres si elles sont suffisamment proches.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Enrage Beast",
|
||||
"name": "Enragez les Bêtes",
|
||||
"description": "<p>Vos yeux brillent d'une lumière malsaine alors que vous inspirez la peur à un seul animal ordinaire dans un rayon de 12 mètres. L'animal ciblé a droit à un Test de Force Mentale pour résister à ce sort. En cas d'échec au Test, il se comporte de manière étrange. Lancez 1d10 sur le tableau @Table[enrage-beast]{Enrage Beast Table} pour voir ce qu'il fait.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Eyes of the Beast",
|
||||
"name": "Eyes of the Beast",
|
||||
"description": "<p>Vos yeux brillent d'une lumière verte impie, vous permettant de voir comme si vous aviez le Trait @Compendium[wfrp4e-core.items.FmHDbCOy3pH8yKhm]{Night Vision} Vision Nocturne . Si vous avez déjà la Vision Nocturne, la portée de votre vue nocturne double.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Favoured of Tzeentch",
|
||||
"name": "Favori de Tzeentch",
|
||||
"description": "<p>@JournalEntry[Warrior of Tzeentch]{Warrior of Tzeentch}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Flying Jib (Fishing Skiff)",
|
||||
"name": "Foc Volant (Petit bateau de pêche)",
|
||||
"description": "<p>Un foc volant est une voile additionnelle et nécessite l'ajout d'un mât de proue au bateau, ce qui augmente sa longueur de 10 %. Gonflé par le vent arrière, le foc volant donne au bateau un mouvement supplémentaire de +5% par rapport à la valeur indiquée dans le tableau des vents @Table[wind]{wind table}. Il n'a aucun effet en cas de vent latéral et double la pénalité de mouvement pour un vent de face.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Flying Jib (Large Barge)",
|
||||
"name": "Foc Volant (Grande Barge)",
|
||||
"description": "<p>Un foc volant est une voile additionnelle et nécessite l'ajout d'un mât de proue au bateau, ce qui augmente sa longueur de 10 %. Gonflé par le vent arrière, le foc volant donne au bateau un mouvement supplémentaire de +5% par rapport à la valeur indiquée dans le tableau des vents @Table[wind]{wind table}. Il n'a aucun effet en cas de vent latéral et double la pénalité de mouvement pour un vent de face.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Flying Jib (Row Boat)",
|
||||
"name": "Foc Volant (Barque)",
|
||||
"description": "<p>Un foc volant est une voile additionnelle et nécessite l'ajout d'un mât de proue au bateau, ce qui augmente sa longueur de 10 %. Gonflé par le vent arrière, le foc volant donne au bateau un mouvement supplémentaire de +5% par rapport à la valeur indiquée dans le tableau des vents @Table[wind]{wind table}. Il n'a aucun effet en cas de vent latéral et double la pénalité de mouvement pour un vent de face.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Flying Jib (Typical Barge or Patrol Boat)",
|
||||
"name": "Foc Volant (Barge standard ou Bateau de Patrouille)",
|
||||
"description": "<p>Un foc volant est une voile additionnelle et nécessite l'ajout d'un mât de proue au bateau, ce qui augmente sa longueur de 10 %. Gonflé par le vent arrière, le foc volant donne au bateau un mouvement supplémentaire de +5% par rapport à la valeur indiquée dans le tableau des vents @Table[wind]{wind table}. Il n'a aucun effet en cas de vent latéral et double la pénalité de mouvement pour un vent de face.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Fore-and-Aft Rudder (Fishing Skiff)",
|
||||
"name": "Gouvernail supplémentaire à l'avant (Petit bateau de pêche)",
|
||||
"description": "<p>Pour une manoeuvrabilité maximale, un second gouvernail peut être ajouté à l'avant du bateau. Cela réduit le score de mouvement du bateau de 1, mais si utilisé par un membre d'équipage formé aux deux gouvernails, tous les Tests de <strong>Maniement de Bateau</strong> reçoivent un bonus de +20%.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Fore-and-Aft Rudder (Large Barge)",
|
||||
"name": "Gouvernail supplémentaire à l'avant (Grande Barge)",
|
||||
"description": "<p>Pour une manoeuvrabilité maximale, un second gouvernail peut être ajouté à l'avant du bateau. Cela réduit le score de mouvement du bateau de 1, mais si utilisé par un membre d'équipage formé aux deux gouvernails, tous les Tests de <strong>Maniement de Bateau</strong> reçoivent un bonus de +20%.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Fore-and-Aft Rudder (Row Boat)",
|
||||
"name": "Gouvernail supplémentaire à l'avant (Barque)",
|
||||
"description": "<p>Pour une manoeuvrabilité maximale, un second gouvernail peut être ajouté à l'avant du bateau. Cela réduit le score de mouvement du bateau de 1, mais si utilisé par un membre d'équipage formé aux deux gouvernails, tous les Tests de <strong>Maniement de Bateau</strong> reçoivent un bonus de +20%.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Fore-and-Aft Rudder (Typical Barge or Patrol Boat)",
|
||||
"name": "Gouvernail supplémentaire à l'avant (Barge standard ou Bateau de Patrouille)",
|
||||
"description": "<p>Pour une manoeuvrabilité maximale, un second gouvernail peut être ajouté à l'avant du bateau. Cela réduit le score de mouvement du bateau de 1, mais si utilisé par un membre d'équipage formé aux deux gouvernails, tous les Tests de <strong>Maniement de Bateau</strong> reçoivent un bonus de +20%.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Gesundheit",
|
||||
"name": "Gesundheit",
|
||||
"description": "<h3>Un traitement pour les blessures purulentes</h3>\n<p>Gesundheit, signifie communément ‘Bonne Santé’ en Reikspiel, et un nom si simple me laisse penser que cette plante est connue depuis très longtemps. Les Elfes l'appellent <em>Leoleghas</em>, et en Bretonnie elle est connue comme la <em>Feuille de Blessure</em>. Dans le Moot, nous l'appelons ‘Soigne Tout’.</p>\n<p>C'est une herbe très simple à utiliser : il suffit de frotter les feuilles pour qu'elles libèrent leur sève, et de créer un cataplasme. Certains l'accompagnent avec d'autres herbes curatives selon la nature de la blessure ou la source de l'infection, mais je n'ai jamais trouvé cela nécessaire.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Gift of the Beast",
|
||||
"name": "Don de la Bête",
|
||||
"description": "<p>Vous appelez les Faveurs de Tzeentch and vous recevez une Mutation temporaire: consultez la Table @Table[giftofthebeast].</p>"
|
||||
},
|
||||
{
|
||||
"id": "Grapeshot (Cannon)",
|
||||
"name": "Grapeshot (Cannon)",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "Graveroot",
|
||||
"name": "Graveroot",
|
||||
"description": "<h3>Grave Matters</h3>\n<p>Also known as Grabwort, Dead Man’s Finger, Ghostbane and Morr’s Root, Graveroot is attracted to shady, sheltered locations with slightly damp soil. It flourishes especially in graveyards, which, together with its well-known magical properties, has led some people to theorise that it somehow feeds on the magical energies of the bodies buried beneath it. The root, when dried and grated, may be used in a number of preparations and magical spells concerning the Undead, and it actually seems to affect them as poison would affect a living creature. An infusion of the root seems to have no particular effect on a living patient, except to cause vomiting at higher concentrations. Less well known is the fact that a hot poultice made from both the leaves and root of this plant speeds the healing of infected wounds caused by undead creatures.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Gun Ports (Large)",
|
||||
"name": "Gun Ports (Large)",
|
||||
"description": "<p>Cut into a boat’s @Item[Raised Gunwales (Large Barge)] or the walls of a superstructure, gun ports are closable hatches that allow a missile weapon to be fired from behind cover. Large gun ports can accommodate cannon, ballistae, and other crew-served weapons, while small gun ports are intended for single-user guns, bows, and crossbows.</p>\n<p>Opening or closing a gun port counts as a single action.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Gun Ports (Small)",
|
||||
"name": "Gun Ports (Small)",
|
||||
"description": "<p>Cut into a boat’s @Item[Raised Gunwales (Fishing Skiff)] or the walls of a superstructure, gun ports are closable hatches that allow a missile weapon to be fired from behind cover. Large gun ports can accommodate cannon, ballistae, and other crew-served weapons, while small gun ports are intended for single-user guns, bows, and crossbows.</p>\n<p>Opening or closing a gun port counts as a single action.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Hallucinogen",
|
||||
"name": "Hallucinogen",
|
||||
"description": "<p>The creature exudes a hallucinogenic musk. Victims within 2 yards (more, at the GM’s discretion, if the victim is downwind) must pass an <strong>Average (+20) Willpower</strong> Test or succumb, gaining one @Condition[Stunned] Condition for each level of failure.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Hull",
|
||||
"name": "Hull",
|
||||
"description": "<p>The boat is holed and begins to ship water. It sinks in a number of minutes equal to the boat’s Toughness (see @JournalEntry[Boat Damage]{Holed}). The water may ruin the cargo, if any.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Initiate of the Mysteries",
|
||||
"name": "Initié des Mystères",
|
||||
"description": "<p>@JournalEntry[Warrior of Tzeentch]{Guerrier de Tzeentch}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Invisible",
|
||||
"name": "Invisible",
|
||||
"description": "<p>A Character with the @Compendium[wfrp4e-core.items.OEjUvJKi0xmBwbS2]{Second Sight} Talent can see the ghost as a faint, smoke-like swirl in the air, and may attack with no penalties to hit. Attacks by other Characters suffer a -40 penalty to hit, reduced to -30 if a Character with Second Sight is directing the attacks.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Juck",
|
||||
"name": "Juck",
|
||||
"description": "<h3>Juck's The Thing</h3>\n<p>Also known as Nettlesap, Klosaft, Itching Weed and by several other names with the same meaning, this plant is well-known to children who live in rural areas, and use it for all kinds of practical jokes. Growing in woodlands and flowering before the trees put on enough leaf to block sunlight from the forest floor, the sap of this plant can also be used to help restore feeling to the skin in cases of numbness caused by cold or injury. On one occasion, I used it in a concentrated form — boiled until it reached the consistency of hot custard — as a treatment for frostbite, and was able to restore feeling to a foot which otherwise might have had to be amputated. Because of the itching it causes, you may sometimes need to administer a mild sedative to the patient, especially if you use Juck repeatedly, or over a large area such as an entire leg.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Lice",
|
||||
"name": "Poux",
|
||||
"description": "<p>Bien qu’il s’agisse d’un problème très courant et relativement bénin dans le Vieux Monde, les infestations de poux peuvent être très perturbantes. Ces petits insectes, qui vivent dans et autour des cheveux, provoquent des démangeaisons et des irritations de la peau au niveau de la tête et du haut du ou. Si les mêmes vêtements sont portés pendant plusieurs semaines, les poux de corps peuvent également devenir problématiques. Parmi les traitements efficaces, on trouve l’utilisation d’un peigne très fin pour enlever les poux et leurs lentes, le rasage de la tête ou encore l’utilisation d’un savon de soude caustique très rugueux.</p>",
|
||||
"durationValue": "jusqu'au traitement",
|
||||
"contraction": "sur un échec à un Test de Résistance Accessible (+20) après un contact rapproché avec une personne infectée.",
|
||||
"incubationValue": "1d10+5",
|
||||
"incubationUnit": "heures",
|
||||
"symptoms": "démangeaisons fréquentes, honte."
|
||||
},
|
||||
{
|
||||
"id": "Luxury Cabin",
|
||||
"name": "Cabines de Luxe",
|
||||
"description": "<p>Les nantis de l’Empire aiment voyager confortablement, et les cabines que l’on peut trouver sur le bateau d’un noble sont très différentes de celles d’un navire de commerce ou d’un navire à passagers. Pour le prix indiqué ci-dessus et à condition de disposer d’un espace équivalent à celui occupé par deux cabines ordinaires, vous pourrez naviguer sur les rivières de l’Empire confortablement et avec classe. À la discrétion du MJ, tous les <strong>Tests de Sociabilité</strong> réalisés par le propriétaire d’une cabine de luxe bénéficient d’un bonus de +10, à condition qu’ils soient réalisés à l’intérieur de la cabine en question.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Mage-Leaf",
|
||||
"name": "Feuille de Mage",
|
||||
"description": "<h3>L'Aubaine du Sorcier</h3>\n<p>Au départ, je n’étais pas sûre de traiter de cette herbe, étant donné qu’elle n’a propriété médicinale. Cependant, ses effets magiques sont assez connus pour que je mentionne ses différents noms à travers les régions, cela évitera à mes lecteurs de croire qu’il existe plusieurs plantes avec les mêmes propriétés. Les elfes l’appellent daionillyseiwyn, ce qui, si j’en crois mes recherches, veut dire « la bonne plante ». En Norsca, elle s’appelle troldblat, en Bretonnie la feuille sorcière, en Tilée folimaggi (une version abâtardie de l’appellation classique folia magii) et enfin, draodill en Albion, ce qu’on pourrait traduire par « La feuille des Druides ».</p>",
|
||||
"gmdescription": "<p><strong>Emplacement</strong>:<strong> </strong>Collines</p> <p><strong>Saison</strong>: Printemps</p> <p><strong>Préparations: </strong>Cru</p> <p>La feuille de mage se mange fraîche, et garde ses pouvoirs pendant une semaine après sa récolte. Comme son nom le suggère, elle est utilisée exclusivement par les lanceurs de sorts. Une dose donne au lanceur un bonus de +10 à son prochain Test d’Incantation, mais pour chaque nouvelle dose prise, il faut lancer [[/r 1d10]]. Si le résultat est inférieur ou égal au nombre de doses déjà prises ce jour-là, la plante ne fait pas effet.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Magical",
|
||||
"name": "Magical",
|
||||
"description": "<p>For a price, some Wizards will enchant a boat so that a wind blows constantly into its sails, or the water moves constantly under its hull, increasing its M score by up to 3 points and/or making it immune to weather and other factors that normally impede a boat’s Movement. These enchantments are normally temporary and always fantastically expensive, and it is left up to you to decide whether or not the Characters can have access to them at any time.</p>\n<p>On very rare occasions, normally tied to the main plot of an adventure, a group of Characters might be loaned a magical boat by an Elf or Dwarf ruler, or perhaps by the head of one of the Colleges of Magic — but they will never be sold or given one outright.</p>\n<p>That said, though, it can be fun for Players to experiment with spells and see how they can use them to improve their vessel’s performance, sturdiness, and other features, and this should be encouraged, especially between adventures. Success can bring some small temporary benefits, and failure should be entertaining as well as frustrating.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Mortar",
|
||||
"name": "Mortar",
|
||||
"description": "<p>A mortar is the blackpowder equivalent of a catapult, firing a heavy ball or a bomb in a high arc. On the battlefield, they are used mainly in sieges, throwing explosives over castle walls to wreak damage in the courtyard. They are rarely seen on boats, except those employed as floating siege batteries by the navies of the Old World’s wealthier nations. As with cannon, possession of a mortar is sufficient to arouse deep suspicions on the part of the authorities.</p>\n<p>Like @Item[Catapult]{medium catapults}, mortars require 3 actions to move them, making them awkward to aim precisely.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Musket Rests",
|
||||
"name": "Musket Rests",
|
||||
"description": "<p>Forked poles set up along a boat’s rail support the barrel of a blackpowder longarm, such as a blunderbuss, a Hochland long rifle, a repeater handgun, or a volley gun. This makes the weapon easier to aim (+10 to hit) but requires an action to place the weapon in the rest after reloading.</p>\n<blockquote>\n<p><strong>Foundry Note:</strong> <em>In the book these are classified as Weapons, but since they do not act as weapons themselves, they are classified here as Superstructure</em></p>\n</blockquote>"
|
||||
},
|
||||
{
|
||||
"id": "Oars",
|
||||
"name": "Oars",
|
||||
"description": "<p>The oars are splintered, and rowers take one hit for +5 Damage from flying splinters. Until the oars are replaced, the boat can only drift. Optionally, an oar Critical Hit only destroys one oar, according to the direction from which the attack came. Given a couple of turns to improvise a mount — a <strong>Difficult (–10) Trade (Boatbuilding </strong>or<strong> Carpentry)</strong> Test — the surviving oar can be fixed to the rear of the boat and used to stern-scull at half the normal speed. Steering while stern-sculling requires a successful <strong>Challenging (+0) Boat Handling</strong> Test.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Potion of Flight",
|
||||
"name": "Potion of Flight",
|
||||
"description": "<p>When drunk, this potion affects the drinker as a @Compendium[wfrp4e-core.items.9wmmln3DunIqGXM2]{Flight} Spell. The effect lasts for 20 Rounds, minus the drinker’s Toughness bonus.</p>"
|
||||
},
|
||||
{
|
||||
"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.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 (−10) Boat Handling</strong> Test every hour. On a Marginal (−1 SL) or Normal Failure, Movement cannot exceed the normal rate; on an Impressive Failure (−4 SL), Movement is half normal; and on an Astounding Failure (−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: </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.isOwners of the Empire — or rather, the talented boat-builders in their employ — 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 −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.isOwners of the Empire — or rather, the talented boat-builders in their employ — 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 −10 to all <strong>Boat Handling</strong> 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.isOwners of the Empire — or rather, the talented boat-builders in their employ — 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 −10 to all <strong>Boat Handling</strong> 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.isOwners of the Empire — or rather, the talented boat-builders in their employ — 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 −10 to all <strong>Boat Handling</strong> Tests. In addition, all hits to the rigging cause double normal Damage.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Raised Gunwales (Fishing Skiff)",
|
||||
"name": "Raised Gunwales (Fishing Skiff)",
|
||||
"description": "<p>The hull extends upward to about waist height on a Human character. As well as blocking high waves from washing onto the deck and potentially swamping the boat, gunwales offer @JournalEntry[Combat Difficulty]{medium cover} to anyone crouching on the deck; ranged attacks against them are Hard.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Raised Gunwales (Large Barge)",
|
||||
"name": "Raised Gunwales (Large Barge)",
|
||||
"description": "<p>The hull extends upward to about waist height on a Human character. As well as blocking high waves from washing onto the deck and potentially swamping the boat, gunwales offer @JournalEntry[Combat Difficulty]{medium cover} to anyone crouching on the deck; ranged attacks against them are Hard.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Raised Gunwales (Row Boat)",
|
||||
"name": "Raised Gunwales (Row Boat)",
|
||||
"description": "<p>The hull extends upward to about waist height on a Human character. As well as blocking high waves from washing onto the deck and potentially swamping the boat, gunwales offer @JournalEntry[Combat Difficulty]{medium cover} to anyone crouching on the deck; ranged attacks against them are Hard.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Raised Gunwales (Typical Barge or Patrol Boat)",
|
||||
"name": "Raised Gunwales (Typical Barge or Patrol Boat)",
|
||||
"description": "<p>The hull extends upward to about waist height on a Human character. As well as blocking high waves from washing onto the deck and potentially swamping the boat, gunwales offer @JournalEntry[Combat Difficulty]{medium cover} to anyone crouching on the deck; ranged attacks against them are Hard.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ram (Large River Boat)",
|
||||
"name": "Ram (Large River Boat)",
|
||||
"description": "<p>A metal ram can be fitted to the front of a boat, ensuring that in any head-on collision, the other vessel takes all the damage. It also gives the boat 5 AP at the front. Possession of a ram is taken by the River Patrol and other authorities as evidence of the crew’s intent to ram and sink other vessels, and anyone with a ram on their boat had better be able to produce a letter of authorization from a local noble or some other power unless they want to be taken for pirates.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ram (Medium River Boat)",
|
||||
"name": "Ram (Medium River Boat)",
|
||||
"description": "<p>A metal ram can be fitted to the front of a boat, ensuring that in any head-on collision, the other vessel takes all the damage. It also gives the boat 5 AP at the front. Possession of a ram is taken by the River Patrol and other authorities as evidence of the crew’s intent to ram and sink other vessels, and anyone with a ram on their boat had better be able to produce a letter of authorization from a local noble or some other power unless they want to be taken for pirates.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ram (Small River Boat)",
|
||||
"name": "Ram (Small River Boat)",
|
||||
"description": "<p>A metal ram can be fitted to the front of a boat, ensuring that in any head-on collision, the other vessel takes all the damage. It also gives the boat 5 AP at the front. Possession of a ram is taken by the River Patrol and other authorities as evidence of the crew’s intent to ram and sink other vessels, and anyone with a ram on their boat had better be able to produce a letter of authorization from a local noble or some other power unless they want to be taken for pirates.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Reikworms",
|
||||
"name": "Reikworms",
|
||||
"description": "<p>Any body of water can carry the Reikworm, and different healers have all kinds of bizarre methods that supposedly keep them at bay, including swirling water around the mouth six times before swallowing it (a common superstition in Ostermark), or never drinking untested water when Morrsleib is visible (Nordland).</p>\n<p>When the tiny larva of the Reikworm enters the body, it burrows deep into the guts of its host, where it feeds and grows. Soon, the host’s immune system is diminished, decreasing resistance to other diseases.</p>\n<p>After three months, the worm has grown to four feet in length and is ready to start the next phase of its life cycle. The first visible sign of the parasite is a massive blister that forms on the surface of the skin. After a week, the blister bursts, causing an intense burning pain. Commonly, sufferers plunge their hot wounds into cooling water for relief. If this happens, the mature Reikworm emerges and spits forth a new batch of young as a sickly yellowish fluid, which soon disperse in the water, ready to infect new hosts. After this, the worm dies.</p>\n<h4>Effects of Reikworms</h4>\n<p>For every full 30 days of infection, the Character suffers a –5 penalty to all Endurance Tests to resist disease. This penalty is reduced by 1 point per day after the worm dies.</p>\n<p>To determine where the worm surfaces, roll for @Table[hitloc]{Hit Location} as in normal combat. When the blister forms, the patient suffers a –5% penalty to all Agility Tests due to the constant irritation; further, if the blister is in a visible location, the Character also suffers a –10 penalty to Fellowship Tests.</p>\n<p>On the seventh day after the blister appears, the sufferer must make an Endurance Test every hour. On the first failure — or on the last hour of the day if all Tests are passed — the blister bursts wetly, inflicting 1 Wound and causing one @Condition[Stunned] Condition owing to the almost unbearable burning sensation that results. This persists until the wound receives medical attention but may be allayed temporarily if the site of the blister is immersed in water.</p>\n<p>There is no known treatment for infestation with Reikworms, other than to let the cycle run its course. Some physicians have tried to cut it out of a patient once the blister forms and the parasite’s location becomes apparent, but this approach usually does more harm than good, and the patient takes longer to recover from it.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Rigging",
|
||||
"name": "Rigging",
|
||||
"description": "<p>The sail is brought down, dragging ropes and tackle with it. All personnel on deck must make an <strong>Initiative </strong>Test or suffer one hit for +5 Damage and gain one @Condition[Entangled] Condition. Until the rigging is repaired, the boat can only drift.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ring of Protection against Undead",
|
||||
"name": "Ring of Protection against Undead",
|
||||
"description": "<p>The wearer of the Ring of Protection against Undead takes half normal damage from all attacks by enemies with the @Compendium[wfrp4e-core.items.PFTD9gDvRWW9uh5g]{Undead} Creature Trait that do not also have the @Compendium[wfrp4e-core.items.tNWrJUOArwfWXsPw]{Ethereal} Creature Trait, and gains a bonus of + 10 to all tests for all spells, Skills, and Traits pertaining to such creatures.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ring of Protection from Fire",
|
||||
"name": "Ring of Protection from Fire",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "Rotgut",
|
||||
"name": "Rotgut",
|
||||
"description": null
|
||||
},
|
||||
{
|
||||
"id": "Rotting Flesh",
|
||||
"name": "Rotting Flesh",
|
||||
"description": "<p>Anyone viewing a guard’s uncovered face or body must make a Fear Test or be rooted to the spot. In addition, they all stink of decay and uncleanliness: the stench requires anyone within 2 yds to make a successful <strong>Challenging (+0) Endurance</strong> Test, or fight with a penalty of -10 to WS.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Schlafenkraut",
|
||||
"name": "Schlafenkraut",
|
||||
"description": "<h3>A Restful Concoction</h3>\n<p>Known in the Moot as Dreamleaf, in Tilea as <em>Dormifolio</em>, and to the Elves as <em>Paraudiel</em>, this plant grows in open grasslands, and is especially prolific when the last snows of winter are melting. It also grows well in open marshy areas and beside streams whose banks are not too high. It is a very good sedative and sleeping-draught, and may combine with other preparations, with no fear of ill effects. The dried leaves are steeped in water which has boiled and been left to stand for a minute or so — if the water is boiling when the leaves are put in, they will scald and the resulting infusion will be unpleasantly bitter as well as less effective. The leaves can also be added to tea or mulled wine; a little honey will soften any sharpness that it adds to their flavour.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Sign of the Beast",
|
||||
"name": "Sign of the Beast",
|
||||
"description": "<p>Your face shifts subtly, displaying the mark of Tzeentch and the signs of bestial nature; Beastmen of Tzeentch know you as a friend and ally. Gain +20 to all <strong>Fellowship </strong>Tests when dealing with such creatures. Any followers or creatures of Khorne or Slaanesh suffer @Compendium[wfrp4e-core.items.0VpT5yubw4UL7j6f]{Animosity} toward you, while those of Nurgle regard you with @Compendium[wfrp4e-core.items.aE3pyW20Orvdjzj0]{Hatred}.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Slave to Chaos",
|
||||
"name": "Slave to Chaos",
|
||||
"description": "<p>You send your consciousness into another living creature, which can attempt a <strong>Willpower </strong>Test to resist your intrusion. On a failed Test, you take control of the subject’s actions for the duration of the spell. If you command the subject to act in a suicidal way, the target receives another <strong>Willpower </strong>Test to break the effect. While in possession of another body, your own body lies in a deep sleep. When the spell ends, the subject must make a <strong>Challenging (–10%) Willpower</strong> Test or gain one mutation from the Tzeentch column of the @Table[expandedmutatephys]</p>"
|
||||
},
|
||||
{
|
||||
"id": "Slowmind",
|
||||
"name": "Slowmind",
|
||||
"description": "<h3>Slowmind</h3>\n<p>I know that there are those who regard this plant as nothing more than a poison, but I have found it useful in extreme cases of nervous hysteria where the patient must be kept still to avoid self-inflicted injuries, and also in cases where the pain of a wound or infection makes it impossible for the patient to fall into a healing sleep. Provided the dosage is strictly controlled and the patient’s temperature and breathing are constantly watched, I believe there is no significant risk. The root of this plant, which grows in marshy areas and is often found together with water-lilies, is first soaked in salt water for three days and nights to leach out any impurities, then dried on a pan in front of the fire for two days, or until it sounds woody when tapped with a fork. Then, it is finely grated — mixed with a little nutmeg if available — tied in a cloth bag and hung in the chimney to smoke for two weeks. The powder is then boiled for two days in water with a little vinegar, strained and added in small quantities to a sweet tea or mulled wine.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Smoothing",
|
||||
"name": "Smoothing",
|
||||
"description": "<p>Less radical than a racing hull is the process of smoothing a boat’s hull with sand and abrasive rocks, to remove any irregularities that might cause unnecessary drag. Initial smoothing of a hull takes at least a week at a boatyard and gives the boat M +1.</p>\n<p>@JournalEntry[Repairing Boats]{Repairing} a smoothed hull costs 50% more than normal; cheaper repairs lose all the benefits of the smoothing.</p>\n<blockquote>\n<p><strong>Foundry Note: </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": "Speckled Rustwort",
|
||||
"name": "Speckled Rustwort",
|
||||
"description": "<h3>A Poxy Treatment</h3>\n<p>This herb is unusual among those used to treat poxes, in that it must be eaten; most are applied to the rash in a salve or poultice. Many have tried to do the same with Speckled Restwort, but it has no effect at all when applied externally.</p>\n<p>Some find the taste of the leaves bitter, and it is permissible to add a spoonful of honey to a dose, especially in the case of children. Avoid overdosing, though, as it can lead to constipation.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Spellwort",
|
||||
"name": "Spellwort",
|
||||
"description": "<h3>The Witch-Hunter's Friend</h3>\n<p>Spellwort is the name by which this plant is known in the Moot. Other names include <em>Unzauber</em>, <em>Wizard’s Bane</em>, <em>Feuille Contraire</em> and Witch-Hunter’s Friend. It is similar in appearance to Mage-Leaf, and someone without the proper herbal training may easily mistake the two. Made into a tea, the dried leaves can help a patient resist any kind of ailment that comes from a magical cause. It is as well to store dried Spellwort away from ingredients such as @Item[Graveroot]{Graveroot} and @Item[Mage-Leaf]{Mage-Leaf}, since I have found that their magical properties are sometimes diminished by sitting too close to Spellwort for a time.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Spiderleaf",
|
||||
"name": "Spiderleaf",
|
||||
"description": "<h3>Spiderleaf</h3>\n<p>This herb gets its name from the shape and arrangement of its long, narrow leaves, which look as though a spider has been impaled on the main stem with its legs in the air. All across the Old World, it is known by the same name in the local language. There are even some healers — mostly Human — in remote areas who wrap the leaves in cobwebs before applying them to a wound, thinking that some magical sympathy between the spider-shaped plant and the webs of an actual spider will make the treatment more effective. It does not seem to do so.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Spoons",
|
||||
"name": "Spoons",
|
||||
"description": "<p>Standard oars have long, narrow blades, which are good for most purposes. Spoons, as their name suggests, have a shorter, wider, curved blade that can exert more pressure on the water — but they require strength to operate properly. When using spoons, a rower may make a <strong>Strength </strong>Test when speed is required, and if successful may add his or her Strength Bonus in yards to the boat’s Movement for that round.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Steam",
|
||||
"name": "Steam",
|
||||
"description": "<p>The Dwarf Engineers’ Guild and the Imperial Engineers’ School have both been developing steam engines, and one could be adapted to drive a boat. Of course, a steam engine is large and heavy, and will take up a considerable amount of space that could otherwise be devoted to cargo and/or passengers: about half of a boat’s carrying capacity seems about right. This includes storage for enough coal to keep the boat running for a week, or enough wood to keep it running for two days.</p>\n<p>A boat powered by a steam engine can maintain its standard Movement rate for as long as the fuel holds out, regardless of wind direction. It requires tending by a qualified engineer, with <strong>Trade (Engineer) </strong>Tests made in place of <strong>Boat Handling</strong> Tests. Steam engines can be unreliable, though, and despite their size and bulk their mechanisms are easily upset. Whenever a double is rolled on a failed <strong>Trade (Engineer)</strong> Test, or the result is an Astounding Failure, or the boat takes a Critical Hull Hit, roll on the @Table[steam-engine] table</p>"
|
||||
},
|
||||
{
|
||||
"id": "Steering",
|
||||
"name": "Steering",
|
||||
"description": "<p>The rudder is splintered, and the helmsman takes one hit for +5 Damage from flying splinters. Until the rudder is repaired, all Tests to steer the boat are <strong>Very Hard (–30)</strong>.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Stripped (Fishing Skiff)",
|
||||
"name": "Stripped (Fishing Skiff)",
|
||||
"description": "<p>A boat can be stripped of all cabins and superstructures, either to lighten it or to maximize cargo space. Stripping a standard boat costs the indicated amount; building a stripped boat costs 75% of the normal price. Weight is reduced as shown above, and cargo space is increased by 75% over the normal capacity.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Stripped (Large Barge)",
|
||||
"name": "Stripped (Large Barge)",
|
||||
"description": "<p>A boat can be stripped of all cabins and superstructures, either to lighten it or to maximize cargo space. Stripping a standard boat costs the indicated amount; building a stripped boat costs 75% of the normal price. Weight is reduced as shown above, and cargo space is increased by 75% over the normal capacity.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Stripped (Row Boat)",
|
||||
"name": "Stripped (Row Boat)",
|
||||
"description": "<p>A boat can be stripped of all cabins and superstructures, either to lighten it or to maximize cargo space. Stripping a standard boat costs the indicated amount; building a stripped boat costs 75% of the normal price. Weight is reduced as shown above, and cargo space is increased by 75% over the normal capacity.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Stripped (Typical Barge or Patrol Boat)",
|
||||
"name": "Stripped (Typical Barge or Patrol Boat)",
|
||||
"description": "<p>A boat can be stripped of all cabins and superstructures, either to lighten it or to maximize cargo space. Stripping a standard boat costs the indicated amount; building a stripped boat costs 75% of the normal price. Weight is reduced as shown above, and cargo space is increased by 75% over the normal capacity.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Subvert Strength",
|
||||
"name": "Subvert Strength",
|
||||
"description": "<p>Your hand glows with queer blue spots. The next non-magical, inanimate object you touch loses its hardness, becoming soft and malleable. Steel bends; glass folds; rock becomes putty. If you cast this spell on a weapon, it bends or even breaks if used in combat. Armour affected by this spell ceases to offer protection, losing all armour points in the affected location (and if it takes a hit, armour there is destroyed). You may only affect an object of up to two cubic yards. You can shape this material as you like, though the GM may require an appropriate <strong>Trade </strong>Test.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Superstructure",
|
||||
"name": "Superstructure",
|
||||
"description": "<p>The cabin, if any, is hit, and all characters inside must make an <strong>Initiative</strong> Test or take one hit for +5 Damage from flying splinters. The boat is not affected otherwise.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Swivel Gun",
|
||||
"name": "Swivel Gun",
|
||||
"description": "<p>A swivel gun is similar to a blunderbuss, but larger. Because of its weight, it is normally mounted on a swivel or tripod, although some Ogre mercenaries have been known to use them hand-held.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Tarrabeth",
|
||||
"name": "Tarrabeth",
|
||||
"description": "<h3>Tarrabeth</h3>\n<p>Tarrabeth is an elven name, and the herb is found mostly in the deep forests where the Wood Elves live. There are few other names for the herb, although I have heard it called Emperor’s Wort in some cities, often by Humans who came by the herb dishonestly and use a Human name in order to avoid the wrath of the authorities. For the best effect, the leaves should be boiled until they completely disintegrate; the mixture is then strained, boiled down to the consistency of melted cheese, and left to cool.</p>"
|
||||
},
|
||||
{
|
||||
"id": "The Gripe",
|
||||
"name": "The Gripe",
|
||||
"description": "<p>The patient is seized by the sharp abdominal pains that give the disease its name. They strike without pattern or warning, and may be accompanied by Fever, Flux, and Vomiting.</p>\n<p>Almost every herbalist and rural crone in the Empire claims to have an infallible cure; they all take the form of a broth or tea, and while ingredients vary, none seems to be more effective than any other. The only real treatment for this disease is liquids to replace those lost, and time.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Transformation of the Beast",
|
||||
"name": "Transformation of the Beast",
|
||||
"description": "<p>You channel the power of Tzeentch, and your body transforms into that of a @Compendium[wfrp4e-core.bestiary.R37OtN5gmPWCYOP3]{Gor}. You gain the following temporary benefits:</p>\n<p><strong>Characteristics</strong>: use your own characteristic or that of a Gor, whichever is better.</p>\n<p><strong>Traits</strong>: gain @Compendium[wfrp4e-core.items.VUJUZVN3VYhOaPjj]{Armour 1}, @Compendium[wfrp4e-core.items.fjd1u9VAgiYzhBRp]{Fury}, and @Compendium[wfrp4e-core.items.BqPZn6q3VHn9HUrW]{Horns +6}</p>\n<p><strong>Skills</strong>: gain Beast Tongue but lose the ability to speak intelligibly in any other language.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Tremor",
|
||||
"name": "Tremor",
|
||||
"description": "<p>Your foot transforms briefly into a great hoof wreathed in purple flame. The ground shakes as you stamp; all creatures within a radius equal to your Willpower Bonus in yards (except you) must make an <strong>Agility </strong>Test or fall down, gaining a @Condition[Prone] Condition.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Trinkwort",
|
||||
"name": "Trinkwort",
|
||||
"description": "<h3>Trinkwort</h3>\n<p>According to Halfling tradition, the knowledge of this plant was given to us by the goddess Esmeralda herself, after her first husband Bibogenitus brought the knowledge of brewing and winemaking to the Moot. We know it as Sober-root, and the Elves call it <em>Corrylliamid</em>. It is found in the deepest forest, often growing between the roots of the lornalim tree, or next to ancient oaks. The root is peeled and roasted in a slow oven until it is as soft as a well-cooked parsnip, and then eaten.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Valerian",
|
||||
"name": "Valerian",
|
||||
"description": "<h3>Strong Tea</h3>\n<p>Valerian is called Strong Tea in the Moot; this confuses some outside visitors, but any Halfling knows from the context of the conversation whether this or some other kind of tea is meant. The Elves call it <em>Taillegas </em>and the Bretonnians <em>Thé de Médecin</em>.</p>\n<p>It is important to air-dry the leaves in a cool, dry place. Before brewing, they should be inspected carefully for any trace of limp-rot, a fungus which is particularly attracted to these leaves. Even a slight infestation can make the tea ineffective; a serious amount can turn it poisonous.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Vanera",
|
||||
"name": "Vanera",
|
||||
"description": "<h3>The Goddess' Gift</h3>\n<p>Some herbalists in the Empire and Tilea believe that the name of this plant comes from the Human goddess Verena. I don’t believe this myself, since it is also known by this name in Norsca and Kislev, where Ulric is far more commonly worshipped than Verena. It grows on the south side of chalk hills, where there is plenty of sun and not too much wind. The leaves are picked, cleaned, soaked in salt water for two weeks, and then boiled and served like spinach. A little butter and black pepper helps their flavour enormously. I personally don’t use it for convalescents, because the headache that occurs when the herb wears off can often undo any good that the patient received from the herb’s stimulant effect. However, I will prescribe it for those on watch, or required to search all night for missing travellers, or anyone else who needs to stay awake when they should be asleep, and who doesn’t mind paying the price later.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Vigwort",
|
||||
"name": "Vigwort",
|
||||
"description": "<h3>Ma Favorite</h3>\n<p>Aussi connue sous le nome de Fidget, Jumpweed, et <em>Folia Vitae</em>, cette plante poursse dans les zones ensoleillées, surtout dans les jachères après des pâturages. La racine est séchée, rapée, et laissée marinée dans du vinaigre dilué pendant 10 jours. La mixtures est alors bouillie, filtrée et laissée à reposer dans une pièce froide et sombre pendant 4 autres jours. Adoucie avec du miel et ajoutée à du thé ou du vin chaud, cette préparation permet de soulager temporairement les maux de têtes, somnolence ou léthargie. Elle doit cependant être utilisée que pour des résultats à courts-termes, car lorsque les effets prennent fin, le patient peut se retrouver dans un état pire qu'avant.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Volley Gun",
|
||||
"name": "Volley Gun",
|
||||
"description": "<p>The volley gun looks similar to a repeating handgun, but all the barrels are set to fire at once. There are normally seven barrels: one in the middle, with six more clustered around it in a hexagonal shape. While deadly to those in front of it, a volley gun can also be dangerous to an inexperienced user. Every time it is fired, the user must make an <strong>Average (+20) Endurance</strong> Test, suffering 1 Wound for each level of Failure as the weapon kicks violently against the shoulder. On an Astounding Failure, the user takes a Critical Hit to the shoulder: use the @Table[critarm]{Arm Critical Wound Table}, adjusting details as necessary to reflect a shoulder hit.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Wand of Jet",
|
||||
"name": "Baguette de Jet",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"id": "Wand of Onyx",
|
||||
"name": "Baguette d'Onyx",
|
||||
"description": "<p>Cette baguette polie de minéral noir agit comme une réserve de pouvoir. Une fois par jour, le porteur de la baguette, lorsqu'il incante un sort de 5NI ou moins, peut considérer que le sort a été Incanté avec un réussite critiqueavec @JournalEntry[Magic Rules]{Puissance Totale}. Lancez [[/r 1d100]]. Si le résultat est moins que NI du sort, la baguette se brise et est détruite, blessant les personnages dans un rayon de 2 mètres de [[/r 1d10]] Blessures.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Warrior of Tzeentch",
|
||||
"name": "Guerrier de Tzeentch",
|
||||
"description": "<p>@JournalEntry[Warrior of Tzeentch]{Guerrier de Tzeentch}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Water Brakes (Fishing Skiff)",
|
||||
"name": "Frein Aquatique (Bateau de Pêche)",
|
||||
"description": "<p>Cet appareil consist en deux larges volets en bois qui peuvent être dépliées depuis les flancs du navire. En remontant le courant, ouvrir les freins réduit le Mouvement de 1 ou 2 points, selon leur degré d'ouverture partiel ou total. En descendant le courant, les volets amplifient la prise au courant et augmente le Mouvement de manière identique.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Water Brakes (Large Barge)",
|
||||
"name": "Frein Aquatique (Grande Barge)",
|
||||
"description": "<p>Cet appareil consist en deux larges volets en bois qui peuvent être dépliées depuis les flancs du navire. En remontant le courant, ouvrir les freins réduit le Mouvement de 1 ou 2 points, selon leur degré d'ouverture partiel ou total. En descendant le courant, les volets amplifient la prise au courant et augmente le Mouvement de manière identique.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Water Brakes (Row Boat)",
|
||||
"name": "Frein Aquatique (Barque)",
|
||||
"description": "<p>Cet appareil consist en deux larges volets en bois qui peuvent être dépliées depuis les flancs du navire. En remontant le courant, ouvrir les freins réduit le Mouvement de 1 ou 2 points, selon leur degré d'ouverture partiel ou total. En descendant le courant, les volets amplifient la prise au courant et augmente le Mouvement de manière identique.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Water Brakes (Typical Barge or Patrol Boat)",
|
||||
"name": "Frein Aquatique (Barge typique ou Navire de Patrouille)",
|
||||
"description": "<p>Cet appareil consist en deux larges volets en bois qui peuvent être dépliées depuis les flancs du navire. En remontant le courant, ouvrir les freins réduit le Mouvement de 1 ou 2 points, selon leur degré d'ouverture partiel ou total. En descendant le courant, les volets amplifient la prise au courant et augmente le Mouvement de manière identique.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Wilful Corruption",
|
||||
"name": "Corruption Volontaire",
|
||||
"description": "<p>Les Favoris de Tzeentch sont des maîtres de Magie, et gagnent ainsi un contrôle limité sur les terribles cadeaux que leur Seigneur leur octroie. Lorsque vous gagnez une muttion, vous jetez deux fois les dés et vous choisissez le résultat qui a votre préférence.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Zone of Sanctuary",
|
||||
"name": "Zone de Sanctuaire",
|
||||
"description": "<p>Vous appelez la grâce divine de Sigmar pour juger les corrompus afin de les bannir hors de votre vue. Les personnages dans l'aire d'effet du Miracle gagnent un bonus de +20 pour résister à la Peur et à la Terreur. Aucune créature mort-vivante ou Démoniaque ne peut entrer dans cette zone ou ne peut attaquer quelqu'un dans la zone. Ces créatures dans la portée du Miracle lorsqu'il est incanté doivent quitter la zone. Ce Miracle est centré sur le Personnage qui l'a invoqué, qui ne peut rien faire aucune autre action que déclamer des litanies contres la corruption pendant la durée du Miracle.</p>"
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -49,7 +49,7 @@
|
||||
{
|
||||
"id": "Waterborne Diseases",
|
||||
"name": "Maladies Fluviales",
|
||||
"results": {"76-80":"@Compendium[wfrp4e-dotr.dotr-items.PIqixe4OQgrVQpFc]{Vers des Cavités}","81-90":"@Compendium[wfrp4e-dotr.items.pl0JMqXbCFSYGvBLnE]{Vers du Reik}","91-100":"@Compendium[wfrp4e-core.diseases.herUmN51D9TiL2Vn]{Flux sanglant}","1-40":"@Compendium[wfrp4e-core.diseases.txeLd7R13qxSvmsr]{Galopante}","41-60":"@Compendium[wfrp4e-dotr.dotr-items.fUYD3itr7AlZwQDI]{La Grippe}","61-70":"@Compendium[wfrp4e-core.diseases.1hQuVFZt9QnnbWzg]{Infection Mineure}","71-75":"@Compendium[wfrp4e-core.diseases.kKccDTGzWzSXCBOb]{Blessure Infectée}"}
|
||||
"results": {"76-80":"@Compendium[wfrp4e-dotr.items.PIqixe4OQgrVQpFc]{Vers des Cavités}","81-90":"@Compendium[wfrp4e-dotr.items.pl0JMqXbCFSYGvBLnE]{Vers du Reik}","91-100":"@Compendium[wfrp4e-core.diseases.herUmN51D9TiL2Vn]{Flux sanglant}","1-40":"@Compendium[wfrp4e-core.diseases.txeLd7R13qxSvmsr]{Galopante}","41-60":"@Compendium[wfrp4e-dotr.items.fUYD3itr7AlZwQDI]{La Grippe}","61-70":"@Compendium[wfrp4e-core.diseases.1hQuVFZt9QnnbWzg]{Infection Mineure}","71-75":"@Compendium[wfrp4e-core.diseases.kKccDTGzWzSXCBOb]{Blessure Infectée}"}
|
||||
},
|
||||
{
|
||||
"id": "Wind Table",
|
||||
|
@ -78,7 +78,7 @@
|
||||
{
|
||||
"id": "Fleshthief",
|
||||
"name": "Voleur de chair",
|
||||
"description": "<p><span class=\"fontstyle0\">La créature, qui doit posséder le Trait @Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]{Démoniaque}</span><span class=\"fontstyle2\"> </span><span class=\"fontstyle0\">, peut porter l'apparence de n'importe quel humain qu'elle a tué. De plus, elle peut parfaitement imiter la personne, y compris sa voix et ses manières. Préparer cette apparence prend <a class=\"chat-roll\">1d10</a> Rounds, après quoi cette aparence peut être enlevée ou remise en 1 Round. Une fois revêtue, l'apparence disparait uniquement si la créature est tuée, et elle peut-être atteinte par des armes normales. Si la créature le souhaite, elle peut gratuitement transformer cette apparence d'une manière horrible, gagnant aisni le Trait @Compendium[wfrp4e.traits.kJNAY1YRaCy9IgmT]{Terreur 1}</span><span class=\"fontstyle2\"> </span><span class=\"fontstyle0\"> pendant 1 Round. L'apparence ainsi transformée est détruite par l'opération et ne peut plus être utilisée par la créature.</span></p>\n<p><span class=\"fontstyle0\"><br>Ceux qui connaissent la personne dont l'apparence a été prise peut tenter un Test </span><strong><span class=\"fontstyle3\">d'Intuition Futile (-40)</span></strong><span class=\"fontstyle0\"> pour détecter su'il ya quelque chose de curieux, mais sans savoir exactement quoi.</span> .</p>"
|
||||
"description": "<p><span class=\"fontstyle0\">La créature, qui doit posséder le Trait @Compendium[wfrp4e-core.items.v3uzEthcq0JRar0J]{Démoniaque}</span><span class=\"fontstyle2\"> </span><span class=\"fontstyle0\">, peut porter l'apparence de n'importe quel humain qu'elle a tué. De plus, elle peut parfaitement imiter la personne, y compris sa voix et ses manières. Préparer cette apparence prend <a class=\"chat-roll\">1d10</a> Rounds, après quoi cette aparence peut être enlevée ou remise en 1 Round. Une fois revêtue, l'apparence disparait uniquement si la créature est tuée, et elle peut-être atteinte par des armes normales. Si la créature le souhaite, elle peut gratuitement transformer cette apparence d'une manière horrible, gagnant aisni le Trait @Compendium[wfrp4e-core.items.kJNAY1YRaCy9IgmT]{Terreur 1}</span><span class=\"fontstyle2\"> </span><span class=\"fontstyle0\"> pendant 1 Round. L'apparence ainsi transformée est détruite par l'opération et ne peut plus être utilisée par la créature.</span></p>\n<p><span class=\"fontstyle0\"><br>Ceux qui connaissent la personne dont l'apparence a été prise peut tenter un Test </span><strong><span class=\"fontstyle3\">d'Intuition Futile (-40)</span></strong><span class=\"fontstyle0\"> pour détecter su'il ya quelque chose de curieux, mais sans savoir exactement quoi.</span> .</p>"
|
||||
},
|
||||
{
|
||||
"id": "Mark of Tzeentch",
|
||||
@ -128,7 +128,7 @@
|
||||
{
|
||||
"id": "Tzeentch's Fire",
|
||||
"name": "Feu de Tzeentch",
|
||||
"description": "<p><span class=\"fontstyle0\">La créature est courronnée par le Feu de Tzeentch, qui s'échappe frequemment par les doigts, la mouche ou les yeux. Toutes les créatures d'un même type (ie toutes les Horreurs Roses, toutes les Horreur Bleues) dans le voisinnage groupent leur pouvoirs. L'une des Horreurs est choisie pour recevoir ce pouvoir et peut Incanter 1 sort de Tzeentch. Les Horreurs Roses lancent le sort @Compendium[eis.eisspells.sklbZU3K8ogeu3mC]{Flammes Roses de Tzeentch}; les autres peuvent lancer @Compendium[eis.eisspells.mR4cEXEAfLCqlnQ6]{Flamme Bleue de Tzeentch}. Chaque créature supplémentaire qui contribue ajoute gratuitement +1 DR, jusqu'à un maximum de +9 DR</span></p>"
|
||||
"description": "<p><span class=\"fontstyle0\">La créature est courronnée par le Feu de Tzeentch, qui s'échappe frequemment par les doigts, la mouche ou les yeux. Toutes les créatures d'un même type (ie toutes les Horreurs Roses, toutes les Horreur Bleues) dans le voisinnage groupent leur pouvoirs. L'une des Horreurs est choisie pour recevoir ce pouvoir et peut Incanter 1 sort de Tzeentch. Les Horreurs Roses lancent le sort @Compendium[wfrp4e-eis.items.sklbZU3K8ogeu3mC]{Flammes Roses de Tzeentch}; les autres peuvent lancer @Compendium[wfrp4e-eis.items.mR4cEXEAfLCqlnQ6]{Flamme Bleue de Tzeentch}. Chaque créature supplémentaire qui contribue ajoute gratuitement +1 DR, jusqu'à un maximum de +9 DR</span></p>"
|
||||
},
|
||||
{
|
||||
"id": "Dog",
|
||||
|
@ -14,12 +14,12 @@
|
||||
{
|
||||
"id": "Acid Blood",
|
||||
"name": "Sang acide",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.M5QSWOYt2Rbv2yxW]{Sang corrosif}</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.M5QSWOYt2Rbv2yxW]{Sang corrosif}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Aethyric Leak",
|
||||
"name": "Fuite Aethérique",
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.talents.qdMbxW09FUoYBzmB]{Sorcier!}</p>"
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.items.qdMbxW09FUoYBzmB]{Sorcier!}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Animalistic Legs",
|
||||
@ -29,22 +29,22 @@
|
||||
{
|
||||
"id": "Animalistic Psyche",
|
||||
"name": "Esprit Animal",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.AGcJl5rHjkyIQBPP]{Bestial} pour <strong><a class=\"chat-roll\">1d10</a></strong> heures si vous échouez à n'importe quel Test dérivé de Force Mentale</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.AGcJl5rHjkyIQBPP]{Bestial} pour <strong><a class=\"chat-roll\">1d10</a></strong> heures si vous échouez à n'importe quel Test dérivé de Force Mentale</p>"
|
||||
},
|
||||
{
|
||||
"id": "Beacon of Corruption",
|
||||
"name": "Balise de Corruption",
|
||||
"description": "<p>Lorsque vous êtes sujet à la Psychologie, gagnez le Trait de Creature @Compendium[wfrp4e-core.traits.xsGbDFqK2qh7lsIj]{Corruption} (Mineure)</p>"
|
||||
"description": "<p>Lorsque vous êtes sujet à la Psychologie, gagnez le Trait de Creature @Compendium[wfrp4e-core.items.xsGbDFqK2qh7lsIj]{Corruption} (Mineure)</p>"
|
||||
},
|
||||
{
|
||||
"id": "Beaked Face",
|
||||
"name": "Bec au visage",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +3; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +3; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Bear Head",
|
||||
"name": "Tête d'Ours",
|
||||
"description": "<p>+1 PA à la tête; Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +9 ; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>+1 PA à la tête; Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +9 ; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Beast Head",
|
||||
@ -59,42 +59,42 @@
|
||||
{
|
||||
"id": "Beyond Pain",
|
||||
"name": "Au delà de la souffrance",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.wMwSRDmgiF2IdCJr]{Insensible à la douleur}</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.wMwSRDmgiF2IdCJr]{Insensible à la douleur}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Big Ears",
|
||||
"name": "Grandes Oreilles",
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.talents.9h82z72XGo9tfgQS]{Sens auguisé} (Ouïe); cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.items.9h82z72XGo9tfgQS]{Sens auguisé} (Ouïe); cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Bird's Feet",
|
||||
"name": "Pieds d'Oiseaux",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.rOV2s6PQBBrhpMOv]{Arboricole}</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.rOV2s6PQBBrhpMOv]{Arboricole}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Blank Face",
|
||||
"name": "Visage Vide",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur} 2; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur} 2; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Blasphemous Soul",
|
||||
"name": "Ame blasphématoire",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.aE3pyW20Orvdjzj0]{Haine} (Religion)</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.aE3pyW20Orvdjzj0]{Haine} (Religion)</p>"
|
||||
},
|
||||
{
|
||||
"id": "Blasted Mind",
|
||||
"name": "Esprit dévasté",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.IAWyzDfC286a9MPz]{Immunité psychologique} pour <strong><a class=\"chat-roll\">1d10</a></strong> Rounds au lieu de subir un état Brisé, après quoi subissez <strong><a class=\"chat-roll\">1d10</a></strong> états Brisés</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.IAWyzDfC286a9MPz]{Immunité psychologique} pour <strong><a class=\"chat-roll\">1d10</a></strong> Rounds au lieu de subir un état Brisé, après quoi subissez <strong><a class=\"chat-roll\">1d10</a></strong> états Brisés</p>"
|
||||
},
|
||||
{
|
||||
"id": "Boar Head",
|
||||
"name": "Tête de Sanglier",
|
||||
"description": "<p>+1 PA à la Tête; @Compendium[wfrp4e-core.traits.BqPZn6q3VHn9HUrW]{Cornes (Défenses)}; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>+1 PA à la Tête; @Compendium[wfrp4e-core.items.BqPZn6q3VHn9HUrW]{Cornes (Défenses)}; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Breathe Fire",
|
||||
"name": "Souffe Enflammé",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.uqGxFOEqeurwkAO3]{Souffle} 5 (Feu)</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.uqGxFOEqeurwkAO3]{Souffle} 5 (Feu)</p>"
|
||||
},
|
||||
{
|
||||
"id": "Bulging Eyes",
|
||||
@ -104,7 +104,7 @@
|
||||
{
|
||||
"id": "Bull Head",
|
||||
"name": "Tête de Taureau",
|
||||
"description": "<p>+1 PA à la Tête; Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.BqPZn6q3VHn9HUrW]{Cornes}; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>+1 PA à la Tête; Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.BqPZn6q3VHn9HUrW]{Cornes}; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Burning Skin",
|
||||
@ -119,12 +119,12 @@
|
||||
{
|
||||
"id": "Claws",
|
||||
"name": "Griffes",
|
||||
"description": "<p>Les main sont considérées comme des armes : @Compendium[wfrp4e-core.traits.AtpAudHA4ybXVlWM]{Weapon}, avec des dommages égal au Bonus de Force; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Les main sont considérées comme des armes : @Compendium[wfrp4e-core.items.AtpAudHA4ybXVlWM]{Weapon}, avec des dommages égal au Bonus de Force; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Cloud of Flies",
|
||||
"name": "Nuage de Mouches",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.MVI0lXcg6vvtooAF]{Perturbant} ; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.MVI0lXcg6vvtooAF]{Perturbant} ; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Corpulent",
|
||||
@ -134,12 +134,12 @@
|
||||
{
|
||||
"id": "Crested Head",
|
||||
"name": "Crête de Coq",
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.talents.6l3jvIAvrKxt0lA9]{Attirant} lorsque vous interagissez avec des Muntants ou des Hommes-Bêtes; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.items.6l3jvIAvrKxt0lA9]{Attirant} lorsque vous interagissez avec des Muntants ou des Hommes-Bêtes; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Deafening Cry",
|
||||
"name": "Cri Assourdissant",
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.traits.MVI0lXcg6vvtooAF]{Perturbant} </p>"
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.items.MVI0lXcg6vvtooAF]{Perturbant} </p>"
|
||||
},
|
||||
{
|
||||
"id": "Distended Digits",
|
||||
@ -149,12 +149,12 @@
|
||||
{
|
||||
"id": "Dog Head",
|
||||
"name": "Tête de Chien",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +5; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +5; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Eagle Head",
|
||||
"name": "Tête d'Aigle",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +4; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +4; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Elastic Arms",
|
||||
@ -194,17 +194,17 @@
|
||||
{
|
||||
"id": "Fitful Hatred",
|
||||
"name": "Haine Changeante",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.aE3pyW20Orvdjzj0]{Haine} (Cible). Effectuez un lancer sur la table des <a class=\"table-click\" data-table=\"fixations\">Fixations</a> une fois par jour pour déterminer la cible</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.aE3pyW20Orvdjzj0]{Haine} (Cible). Effectuez un lancer sur la table des <a class=\"table-click\" data-table=\"fixations\">Fixations</a> une fois par jour pour déterminer la cible</p>"
|
||||
},
|
||||
{
|
||||
"id": "Fleshy Tentacle",
|
||||
"name": "Tentacule de Chair",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.4xF7M6ylIiGntekh]{# Tentacules} ; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.4xF7M6ylIiGntekh]{# Tentacules} ; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Foul Odour",
|
||||
"name": "Odeur Nauséabonde",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.MVI0lXcg6vvtooAF]{Perturbant} </p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.MVI0lXcg6vvtooAF]{Perturbant} </p>"
|
||||
},
|
||||
{
|
||||
"id": "Furred Skin",
|
||||
@ -214,7 +214,7 @@
|
||||
{
|
||||
"id": "Giant Spider Head",
|
||||
"name": "Tête d'Araignée Géante",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +3 et @Compendium[wfrp4e-core.traits.gFkRm9wS65qe18Xv]{Venin (Intermédiaire}, cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +3 et @Compendium[wfrp4e-core.items.gFkRm9wS65qe18Xv]{Venin (Intermédiaire}, cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Gills",
|
||||
@ -234,17 +234,17 @@
|
||||
{
|
||||
"id": "Goat Head",
|
||||
"name": "Tête de Chèvre",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.BqPZn6q3VHn9HUrW]{Cornes}, cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.BqPZn6q3VHn9HUrW]{Cornes}, cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Headless",
|
||||
"name": "Sans-tête",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur} 2; les coups à la tête sont considérés comme ratés; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur} 2; les coups à la tête sont considérés comme ratés; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Hopper",
|
||||
"name": "Sauteur",
|
||||
"description": "<p>Votre Mouvement est réduit de 2 et ne peut plus êter augmenté; gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.j6v78dnOOdCB6c3d]{Bond} ; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Votre Mouvement est réduit de 2 et ne peut plus êter augmenté; gagnez le Trait de Créature @Compendium[wfrp4e-core.items.j6v78dnOOdCB6c3d]{Bond} ; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Hounds of Despair",
|
||||
@ -254,7 +254,7 @@
|
||||
{
|
||||
"id": "Hurried Masochism",
|
||||
"name": "Masochisme Urgent",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.GbDyBCu8ZjDp6dkj]{Belliqueux}; vous ne pouvez pas fuir volontairement</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.GbDyBCu8ZjDp6dkj]{Belliqueux}; vous ne pouvez pas fuir volontairement</p>"
|
||||
},
|
||||
{
|
||||
"id": "Inhuman Beauty",
|
||||
@ -294,12 +294,12 @@
|
||||
{
|
||||
"id": "Mindless Wandering",
|
||||
"name": "Errance Sans Esprit",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.9GNpAqgsKzxZKJpp]{Stupide} lorsque seul</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.9GNpAqgsKzxZKJpp]{Stupide} lorsque seul</p>"
|
||||
},
|
||||
{
|
||||
"id": "Monstrous Paranoia",
|
||||
"name": "Paranoïa Monstrueuse",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.IPKRMGry6WotuS1G]{Craintif}</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.IPKRMGry6WotuS1G]{Craintif}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Multiple Arms",
|
||||
@ -329,37 +329,37 @@
|
||||
{
|
||||
"id": "Pin Head",
|
||||
"name": "Tête d'épingle",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.9GNpAqgsKzxZKJpp]{Stupide} ; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.9GNpAqgsKzxZKJpp]{Stupide} ; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Pointed Head",
|
||||
"name": "Tête Pointue",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.9GNpAqgsKzxZKJpp]{Stupide} ; vous ne pouvez pas porter de casque; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.9GNpAqgsKzxZKJpp]{Stupide} ; vous ne pouvez pas porter de casque; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Rat Head",
|
||||
"name": "Tête de Rat",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +4 et @Compendium[wfrp4e-core.traits.V0c3qBU1CMm8bmsW]{Infecté}s; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +4 et @Compendium[wfrp4e-core.items.V0c3qBU1CMm8bmsW]{Infecté}s; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Ravenous Hunger",
|
||||
"name": "Faim Vorace",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.xneBqGOs1QS7kfUr]{Affamé}</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.xneBqGOs1QS7kfUr]{Affamé}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Rearranged Face",
|
||||
"name": "Visage Arrangé",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur} 1; Les Personnages cherchant à savoir si vous mentez subissent un malus de -20 à leurs tests d'Intuition; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur} 1; Les Personnages cherchant à savoir si vous mentez subissent un malus de -20 à leurs tests d'Intuition; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Rotting Flesh",
|
||||
"name": "Chaire Pourrie",
|
||||
"description": "<p>Gagnez les Traits de Créature @Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur} 2, et @Compendium[wfrp4e.traits.V0c3qBU1CMm8bmsW]{Infecté} </p>"
|
||||
"description": "<p>Gagnez les Traits de Créature @Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur} 2, et @Compendium[wfrp4e.traits.V0c3qBU1CMm8bmsW]{Infecté} </p>"
|
||||
},
|
||||
{
|
||||
"id": "Shifting Colours",
|
||||
"name": "Couleurs Changeantes",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.MVI0lXcg6vvtooAF]{Perturbant} ; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.MVI0lXcg6vvtooAF]{Perturbant} ; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Short Legs",
|
||||
@ -369,27 +369,27 @@
|
||||
{
|
||||
"id": "Skull Face",
|
||||
"name": "Face de Crâne",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur} 2; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur} 2; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Snake Head",
|
||||
"name": "Tête de Serpent",
|
||||
"description": "<p>+1 PA à la Tête; Gagnez les Traits de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +3 et @Compendium[wfrp4e-core.traits.gFkRm9wS65qe18Xv]{Venin (Intermédiaire)}; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>+1 PA à la Tête; Gagnez les Traits de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +3 et @Compendium[wfrp4e-core.items.gFkRm9wS65qe18Xv]{Venin (Intermédiaire)}; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Spiked Skin",
|
||||
"name": "Peau Cloutée",
|
||||
"description": "<p>Pas d'armure possible; +1 PA sur tout les corps; gagnez une attaque gratuite (@Compendium[wfrp4e-core.traits.AtpAudHA4ybXVlWM]{Arme} +4) lors des Charges; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Pas d'armure possible; +1 PA sur tout les corps; gagnez une attaque gratuite (@Compendium[wfrp4e-core.items.AtpAudHA4ybXVlWM]{Arme} +4) lors des Charges; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Suckered Hands and Feet",
|
||||
"name": "Mains et Pieds Ventouses",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.KII1gWnxIZ8HzmU5]{Grimpant} ; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.KII1gWnxIZ8HzmU5]{Grimpant} ; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Terrible Phobia",
|
||||
"name": "Phobie Terrible",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.4CMKeDTDrRQZbPIJ]{Craintif} (Cible), faites un jet sur table des <a class=\"table-click\" data-table=\"fixations\">Idées Fixes</a> pour déterminer la cible</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.4CMKeDTDrRQZbPIJ]{Craintif} (Cible), faites un jet sur table des <a class=\"table-click\" data-table=\"fixations\">Idées Fixes</a> pour déterminer la cible</p>"
|
||||
},
|
||||
{
|
||||
"id": "Thorny Scales",
|
||||
@ -399,7 +399,7 @@
|
||||
{
|
||||
"id": "Three Eyes",
|
||||
"name": "Troisième Oeil",
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.talents.9h82z72XGo9tfgQS]{Sens aiguisé} (Vue); cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Talent @Compendium[wfrp4e-core.items.9h82z72XGo9tfgQS]{Sens aiguisé} (Vue); cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Thrill Seeker",
|
||||
@ -409,12 +409,12 @@
|
||||
{
|
||||
"id": "Transparent Skin",
|
||||
"name": "Peau Transparente",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur} 2; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur} 2; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Two Heads",
|
||||
"name": "Bicéphale",
|
||||
"description": "<p>Gagnez leTalent @Compendium[wfrp4e-core.talents.IFKWu98qmWpaSfUi]{Ambidextre}; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>Gagnez leTalent @Compendium[wfrp4e-core.items.IFKWu98qmWpaSfUi]{Ambidextre}; cette mutation ne peut pas être cachée</p>"
|
||||
},
|
||||
{
|
||||
"id": "Uneven Horns",
|
||||
@ -429,12 +429,12 @@
|
||||
{
|
||||
"id": "Warp Frenzy",
|
||||
"name": "Frénésie Mutagène",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.yRhhOlt18COq4e1q]{Frénésie} ; Quand vous entrez en Frénésie, gagnez temporairement une autre mutation physique</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.yRhhOlt18COq4e1q]{Frénésie} ; Quand vous entrez en Frénésie, gagnez temporairement une autre mutation physique</p>"
|
||||
},
|
||||
{
|
||||
"id": "Webbed Feet",
|
||||
"name": "Pieds Palmés",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.sJ3yX1kvzu2hgNq5]{Amphibie} ; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.sJ3yX1kvzu2hgNq5]{Amphibie} ; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Weeping Pus",
|
||||
@ -449,12 +449,12 @@
|
||||
{
|
||||
"id": "Wings",
|
||||
"name": "Ailes",
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.EO05HX7jql0g605A]{Vol} 60; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
"description": "<p>Gagnez le Trait de Créature @Compendium[wfrp4e-core.items.EO05HX7jql0g605A]{Vol} 60; cette mutation ne peut-être cachée qu'avec des vêtements</p>"
|
||||
},
|
||||
{
|
||||
"id": "Wolf Head",
|
||||
"name": "Tête de Loup",
|
||||
"description": "<p>+1 PA à la Tête; gagnez le Trait de Créature @Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure} +6; gagnez le Talent @Compendium[wfrp4e-core.talents.9h82z72XGo9tfgQS]{Sens Aiguisé (Odorat)}; cette mutation ne peut pas être cachée</p>"
|
||||
"description": "<p>+1 PA à la Tête; gagnez le Trait de Créature @Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure} +6; gagnez le Talent @Compendium[wfrp4e-core.items.9h82z72XGo9tfgQS]{Sens Aiguisé (Odorat)}; cette mutation ne peut pas être cachée</p>"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -23,13 +23,13 @@
|
||||
{
|
||||
"id": "Demonic Mien (Undivided)",
|
||||
"name": "Allure Démoniaque (Indivisible)",
|
||||
"description": "<p><span class=\"fontstyle0\">Vous canalisez le pouvoir de transformation du Chaos dans votre propre chair, sacrifiant temporairement votre forme mortelle sur l’autel de la volonté de votre dieu. Votre corps est déformé, prenant les aspects d’un démon loyal à votre dieu protecteur. Lancez 1d10 sur le <a class=\"table-click\" data-table=\"demonic-mien\">Tableau de la page 78</a>, et appliquez le Trait pertinent pour toute la durée du Sort. Pour chaque +2 DR, vous pouvez à la fois prolonger la durée et refaire un jet sur le Tableau. Si vous obtenez le Trait <span class=\"fontstyle3\">@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]Démoniaque</span> et que vous êtes réduit à 0 Blessure, votre âme est aspirée dans les Royaumes du Chaos, comme décrit dans les règles des Traits de créature.</span></p>",
|
||||
"description": "<p><span class=\"fontstyle0\">Vous canalisez le pouvoir de transformation du Chaos dans votre propre chair, sacrifiant temporairement votre forme mortelle sur l’autel de la volonté de votre dieu. Votre corps est déformé, prenant les aspects d’un démon loyal à votre dieu protecteur. Lancez 1d10 sur le <a class=\"table-click\" data-table=\"demonic-mien\">Tableau de la page 78</a>, et appliquez le Trait pertinent pour toute la durée du Sort. Pour chaque +2 DR, vous pouvez à la fois prolonger la durée et refaire un jet sur le Tableau. Si vous obtenez le Trait <span class=\"fontstyle3\">@Compendium[wfrp4e-core.items.v3uzEthcq0JRar0J]Démoniaque</span> et que vous êtes réduit à 0 Blessure, votre âme est aspirée dans les Royaumes du Chaos, comme décrit dans les règles des Traits de créature.</span></p>",
|
||||
"effets": []
|
||||
},
|
||||
{
|
||||
"id": "Demonic Mien (Tzeentch)",
|
||||
"name": "Allure Démoniaque (Tzeentch)",
|
||||
"description": "<p><span class=\"fontstyle0\">Vous canalisez le pouvoir de transformation du Chaos dans votre propre chair, sacrifiant temporairement votre forme mortelle sur l’autel de la volonté de votre dieu. Votre corps est déformé, prenant les aspects d’un démon loyal à votre dieu protecteur. Lancez 1d10 sur le <a class=\"table-click\" data-table=\"demonic-mien\">Tableau de la page 78</a>, et appliquez le Trait pertinent pour toute la durée du Sort. Pour chaque +2 DR, vous pouvez à la fois prolonger la durée et refaire un jet sur le Tableau. Si vous obtenez le Trait <span class=\"fontstyle3\">@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]Démoniaque</span> et que vous êtes réduit à 0 Blessure, votre âme est aspirée dans les Royaumes du Chaos, comme décrit dans les règles des Traits de créature.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
|
||||
"description": "<p><span class=\"fontstyle0\">Vous canalisez le pouvoir de transformation du Chaos dans votre propre chair, sacrifiant temporairement votre forme mortelle sur l’autel de la volonté de votre dieu. Votre corps est déformé, prenant les aspects d’un démon loyal à votre dieu protecteur. Lancez 1d10 sur le <a class=\"table-click\" data-table=\"demonic-mien\">Tableau de la page 78</a>, et appliquez le Trait pertinent pour toute la durée du Sort. Pour chaque +2 DR, vous pouvez à la fois prolonger la durée et refaire un jet sur le Tableau. Si vous obtenez le Trait <span class=\"fontstyle3\">@Compendium[wfrp4e-core.items.v3uzEthcq0JRar0J]Démoniaque</span> et que vous êtes réduit à 0 Blessure, votre âme est aspirée dans les Royaumes du Chaos, comme décrit dans les règles des Traits de créature.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
|
||||
"effets": []
|
||||
},
|
||||
{
|
||||
@ -47,7 +47,7 @@
|
||||
{
|
||||
"id": "Tzeentch's Golden Aura",
|
||||
"name": "Aura Dorée de Tzeentch",
|
||||
"description": "<p><span class=\"fontstyle0\">Ce Sort est l’un des plus simples et des plus pratiques dans l’arsenal d’un sorcier de Tzeentch. Un tourbillon de feu jaune est invoqué à partir de l’Aethyr et enveloppe le corps du Lanceur, le protégeant des coups et des projectiles. Tant que le Sort est en vigueur, le Lanceur bénéficie du Trait de créature @Compendium[wfrp4e.traits.Bvd2aZ0gQUXHfCTh]{Protection 9+}.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
|
||||
"description": "<p><span class=\"fontstyle0\">Ce Sort est l’un des plus simples et des plus pratiques dans l’arsenal d’un sorcier de Tzeentch. Un tourbillon de feu jaune est invoqué à partir de l’Aethyr et enveloppe le corps du Lanceur, le protégeant des coups et des projectiles. Tant que le Sort est en vigueur, le Lanceur bénéficie du Trait de créature @Compendium[wfrp4e-core.items.Bvd2aZ0gQUXHfCTh]{Protection 9+}.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
|
||||
"effets": []
|
||||
},
|
||||
{
|
||||
@ -125,7 +125,7 @@
|
||||
{
|
||||
"id": "Bolt of Change",
|
||||
"name": "Éclair du changement",
|
||||
"description": "<p><span class=\"fontstyle0\">Un éclair pulsant d’une scintillante énergie chaotique déchire l'air. L'Éclair du changement est un <i>Projectile magique</i>, et la Cible subit des Dégâts +7. De plus, elle doit effectuer un Test de </strong>Résistance Intermédiaire (+0)</strong>. Une Cible qui échoue gagne +1 Point de Corruption. En cas de Maladresse, la Cible effectue immédiatement un jet de Mutation, et gagne le Talent Compendium[wfrp4e.talents.hiU7vhBOVpVI8c7C]{Magie du Chaos (Tzeentch)}. Un Personnage affecté par ce sort peut résister à une Mutation en dépensant un Point de Détermination.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
|
||||
"description": "<p><span class=\"fontstyle0\">Un éclair pulsant d’une scintillante énergie chaotique déchire l'air. L'Éclair du changement est un <i>Projectile magique</i>, et la Cible subit des Dégâts +7. De plus, elle doit effectuer un Test de </strong>Résistance Intermédiaire (+0)</strong>. Une Cible qui échoue gagne +1 Point de Corruption. En cas de Maladresse, la Cible effectue immédiatement un jet de Mutation, et gagne le Talent Compendium[wfrp4e-core.items.hiU7vhBOVpVI8c7C]{Magie du Chaos (Tzeentch)}. Un Personnage affecté par ce sort peut résister à une Mutation en dépensant un Point de Détermination.</span></p><p>\n\n <b>Domaine:</b> Les Cibles des Sorts issus du Domaine de Tzeentch sont déchirées par la Magie transformatrice du Chaos. Celles affectées par un Sort du Domaine de Tzeentch doivent réussir un Test de Résistance Intermédiaire (+0) ou gagner +1 point de Corruption. Si elles réussissent leur Test, elles gagnent +1 Point de Chance, qu'elles peuvent utiliser normalement. Tels sont les caprices de Tzeentch.<p>",
|
||||
"effets": [
|
||||
{
|
||||
"_id": "35UAihuCR5o2saMI",
|
||||
@ -142,7 +142,7 @@
|
||||
"wfrp4e": {
|
||||
"effectTrigger": "oneTime",
|
||||
"effectApplication": "apply",
|
||||
"script": "args.actor.setupSkill(\"Résistance\", { context: { failure: \"1 Point de Corruption acquis\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\" && args.actor.type == \"character\") {\n let msg = \"\"\n args.actor.update({ \"data.status.corruption.value\": parseInt(args.actor.status.corruption.value) + 1 })\n msg += `<b>${args.actor.prototypeToken.name}</b> gains a Corruption point<br>`\n if ((test.result.outcome.roll % 11 == 0) || test.result.outcome.roll == 100 || test.result.outcome.roll == 99)\n msg += `<b>${args.actor.prototypeToken.name}</b> reçoit une mutation (@Table[expandedmutatephys]{Physique} ou @Table[expandedmutatemental]{Mentale}) et reçoit @Compendium[wfrp4e-core.talents.hiU7vhBOVpVI8c7C]{Chaos Magic (Tzeentch)}`\n ChatMessage.create({content : msg, speaker : {alias : this.effect.label}})\n args.actor.checkCorruption()\n }\n })\n})",
|
||||
"script": "args.actor.setupSkill(\"Résistance\", { context: { failure: \"1 Point de Corruption acquis\" } }).then(setupData => {\n args.actor.basicTest(setupData).then(test => {\n if (test.result.outcome == \"failure\" && args.actor.type == \"character\") {\n let msg = \"\"\n args.actor.update({ \"data.status.corruption.value\": parseInt(args.actor.status.corruption.value) + 1 })\n msg += `<b>${args.actor.prototypeToken.name}</b> gains a Corruption point<br>`\n if ((test.result.outcome.roll % 11 == 0) || test.result.outcome.roll == 100 || test.result.outcome.roll == 99)\n msg += `<b>${args.actor.prototypeToken.name}</b> reçoit une mutation (@Table[expandedmutatephys]{Physique} ou @Table[expandedmutatemental]{Mentale}) et reçoit @Compendium[wfrp4e-core.items.hiU7vhBOVpVI8c7C]{Chaos Magic (Tzeentch)}`\n ChatMessage.create({content : msg, speaker : {alias : this.effect.label}})\n args.actor.checkCorruption()\n }\n })\n})",
|
||||
"preventDuplicateEffects": false
|
||||
}
|
||||
}
|
||||
|
@ -105,30 +105,30 @@
|
||||
"id": "Demonic Mien - Nurgle",
|
||||
"name": "Trait Démonique - Nurgle",
|
||||
"results": {
|
||||
"1-1": "@Compendium[wfrp4e.traits.a8MC97PLzl10WocT]{Grand}",
|
||||
"2-2": "@Compendium[wfrp4e.traits.uqGxFOEqeurwkAO3]{Souffle +7 (Corrosion & Poison)}",
|
||||
"3-3": "@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]{Démoniaque 7}",
|
||||
"4-4": "@Compendium[wfrp4e.traits.PaW8i6JOxWyzAZCz]{Maladie (Nurgle's Rot)}",
|
||||
"5-5": "@Compendium[wfrp4e.traits.MVI0lXcg6vvtooAF]{Perturbant (Puanteur)}",
|
||||
"1-1": "@Compendium[wfrp4e-core.items.a8MC97PLzl10WocT]{Grand}",
|
||||
"2-2": "@Compendium[wfrp4e-core.items.uqGxFOEqeurwkAO3]{Souffle +7 (Corrosion & Poison)}",
|
||||
"3-3": "@Compendium[wfrp4e-core.items.v3uzEthcq0JRar0J]{Démoniaque 7}",
|
||||
"4-4": "@Compendium[wfrp4e-core.items.PaW8i6JOxWyzAZCz]{Maladie (Nurgle's Rot)}",
|
||||
"5-5": "@Compendium[wfrp4e-core.items.MVI0lXcg6vvtooAF]{Perturbant (Puanteur)}",
|
||||
"6-6": "@Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur (3)}",
|
||||
"7-7": "@Compendium[wfrp4e.traits.TBcdTlYSRH8Rd1x0]{Infecté}",
|
||||
"7-7": "@Compendium[wfrp4e-core.items.TBcdTlYSRH8Rd1x0]{Infecté}",
|
||||
"8-8": "<a class = 'table-click' data-table='expandedmutatephys'>Mutation<\/a>",
|
||||
"9-9": "@Compendium[wfrp4e.traits.SfUUdOGjdYpr3KSR]{Régénération}",
|
||||
"10-10": "@Compendium[wfrp4e.traits.JzeN9MZ0xUDvpE2l]{Vomissement}"
|
||||
"9-9": "@Compendium[wfrp4e-core.items.SfUUdOGjdYpr3KSR]{Régénération}",
|
||||
"10-10": "@Compendium[wfrp4e-core.items.JzeN9MZ0xUDvpE2l]{Vomissement}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "Demonic Mien - Slaanesh",
|
||||
"name": "Trait Démonique - Slaanesh",
|
||||
"results": {
|
||||
"1-1": "@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]{Démoniaque (6)}",
|
||||
"2-2": "@Compendium[wfrp4e.traits.MVI0lXcg6vvtooAF]{Perturbant}",
|
||||
"4-4": "@Compendium[wfrp4e.traits.yRhhOlt18COq4e1q]{Frénésie}",
|
||||
"5-5": "@Compendium[wfrp4e.traits.IAWyzDfC286a9MPz]{Immunité Psychologique}",
|
||||
"7-7": "@Compendium[wfrp4e.traits.wMwSRDmgiF2IdCJr]{Insensible à la douleur}",
|
||||
"8-8": "@Compendium[wfrp4e.traits.0eEJ280MIC0IbEop]{Regard pétrifiant}",
|
||||
"9-9": "@Compendium[wfrp4e.traits.xg6z63j6BH5AaqLL]{Langue préhensile (6 mètres) +6}",
|
||||
"10-10": "@Compendium[wfrp4e.traits.gFkRm9wS65qe18Xv]{Venin}",
|
||||
"1-1": "@Compendium[wfrp4e-core.items.v3uzEthcq0JRar0J]{Démoniaque (6)}",
|
||||
"2-2": "@Compendium[wfrp4e-core.items.MVI0lXcg6vvtooAF]{Perturbant}",
|
||||
"4-4": "@Compendium[wfrp4e-core.items.yRhhOlt18COq4e1q]{Frénésie}",
|
||||
"5-5": "@Compendium[wfrp4e-core.items.IAWyzDfC286a9MPz]{Immunité Psychologique}",
|
||||
"7-7": "@Compendium[wfrp4e-core.items.wMwSRDmgiF2IdCJr]{Insensible à la douleur}",
|
||||
"8-8": "@Compendium[wfrp4e-core.items.0eEJ280MIC0IbEop]{Regard pétrifiant}",
|
||||
"9-9": "@Compendium[wfrp4e-core.items.xg6z63j6BH5AaqLL]{Langue préhensile (6 mètres) +6}",
|
||||
"10-10": "@Compendium[wfrp4e-core.items.gFkRm9wS65qe18Xv]{Venin}",
|
||||
"3-3": "@Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur (3)}",
|
||||
"6-6": "<a class = 'table-click' data-table='expandedmutatephys'>Mutation<\/a>"
|
||||
}
|
||||
@ -139,27 +139,27 @@
|
||||
"results": {
|
||||
"4-4": "@Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur (3)}",
|
||||
"8-9": "<a class = 'table-click' data-table='expandedmutatephys'>Mutation<\/a>",
|
||||
"1-1": "@Compendium[wfrp4e.traits.uqGxFOEqeurwkAO3]{Souffle +9 (Feu)}",
|
||||
"2-2": "@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]{Démoniaque (9)}",
|
||||
"3-3": "@Compendium[wfrp4e.traits.tNWrJUOArwfWXsPw]{Ethéré}",
|
||||
"5-5": "@Compendium[wfrp4e.traits.EO05HX7jql0g605A]{Vol (9)}",
|
||||
"6-6": "@Compendium[wfrp4e.traits.mDgEMOoJpi8DkRYb]{Magique}",
|
||||
"7-7": "@Compendium[wfrp4e.traits.yrkI7ATjqLPDTFmZ]{Résistance à la Magie}}",
|
||||
"10-10": "@Compendium[wfrp4e.traits.vY0CHKsJRV3gYBj3]{Lanceur de Sorts (Au choix)}"
|
||||
"1-1": "@Compendium[wfrp4e-core.items.uqGxFOEqeurwkAO3]{Souffle +9 (Feu)}",
|
||||
"2-2": "@Compendium[wfrp4e-core.items.v3uzEthcq0JRar0J]{Démoniaque (9)}",
|
||||
"3-3": "@Compendium[wfrp4e-core.items.tNWrJUOArwfWXsPw]{Ethéré}",
|
||||
"5-5": "@Compendium[wfrp4e-core.items.EO05HX7jql0g605A]{Vol (9)}",
|
||||
"6-6": "@Compendium[wfrp4e-core.items.mDgEMOoJpi8DkRYb]{Magique}",
|
||||
"7-7": "@Compendium[wfrp4e-core.items.yrkI7ATjqLPDTFmZ]{Résistance à la Magie}}",
|
||||
"10-10": "@Compendium[wfrp4e-core.items.vY0CHKsJRV3gYBj3]{Lanceur de Sorts (Au choix)}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "Demonic Mien - Undivided",
|
||||
"name": "Trait Démonique - Commun",
|
||||
"results": {
|
||||
"8-8": "@Compendium[wfrp4e.traits.BqPZn6q3VHn9HUrW]{Cornes +10}",
|
||||
"10-10": "@Compendium[wfrp4e.traits.UnJ25lL8aUzem5JO]{Attaque Caudale (+10)}",
|
||||
"8-8": "@Compendium[wfrp4e-core.items.BqPZn6q3VHn9HUrW]{Cornes +10}",
|
||||
"10-10": "@Compendium[wfrp4e-core.items.UnJ25lL8aUzem5JO]{Attaque Caudale (+10)}",
|
||||
"5-5": "@Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur (3)}",
|
||||
"9-9": "@Compendium[wfrp4e.traits.mDgEMOoJpi8DkRYb]{Magique}",
|
||||
"1-2": "@Compendium[wfrp4e.traits.v3uzEthcq0JRar0J]{Démoniaque (8)}",
|
||||
"3-3": "@Compendium[wfrp4e.traits.9NROryHer1uXAKwY]{Elite}",
|
||||
"4-4": "@Compendium[wfrp4e.traits.9MjH4xyVrd3Inzak]Rapide}",
|
||||
"6-6": "@Compendium[wfrp4e.traits.EO05HX7jql0g605A]{Vol (8)}"
|
||||
"9-9": "@Compendium[wfrp4e-core.items.mDgEMOoJpi8DkRYb]{Magique}",
|
||||
"1-2": "@Compendium[wfrp4e-core.items.v3uzEthcq0JRar0J]{Démoniaque (8)}",
|
||||
"3-3": "@Compendium[wfrp4e-core.items.9NROryHer1uXAKwY]{Elite}",
|
||||
"4-4": "@Compendium[wfrp4e-core.items.9MjH4xyVrd3Inzak]Rapide}",
|
||||
"6-6": "@Compendium[wfrp4e-core.items.EO05HX7jql0g605A]{Vol (8)}"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -40,7 +40,7 @@
|
||||
{
|
||||
"id": "Boots of Gucci",
|
||||
"name": "Bottes de Gucci",
|
||||
"description": "<p>En activant les bottes à l'aide de la phrase ‘La grâce va au-delà du style’, le porteur bénéficie du Talent @Compendium[wfrp4e-core.talents.sYbgpSnRqSZWgwFP]{Savoir-vivre (Noble, Guilde, Serviteur)} tant qu'il garde les bottes aux pieds. S'il le souhaite, il peut prononcer à nouveau la phrase pour changer la version du Talent dont il bénéficie.</p>"
|
||||
"description": "<p>En activant les bottes à l'aide de la phrase ‘La grâce va au-delà du style’, le porteur bénéficie du Talent @Compendium[wfrp4e-core.items.sYbgpSnRqSZWgwFP]{Savoir-vivre (Noble, Guilde, Serviteur)} tant qu'il garde les bottes aux pieds. S'il le souhaite, il peut prononcer à nouveau la phrase pour changer la version du Talent dont il bénéficie.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Magical Dagger",
|
||||
@ -50,12 +50,12 @@
|
||||
{
|
||||
"id": "Child of Ulric",
|
||||
"name": "Enfant d'Ulric",
|
||||
"description": "<h4>Traits</h4>\n<p>@Compendium[wfrp4e-core.traits.VUJUZVN3VYhOaPjj]{Armure}</p>\n<p>@Compendium[wfrp4e-core.traits.pLW9SVX0TVTYPiPv]{Morsure}</p>\n<p>@Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur}</p>\n<p>@Compendium[wfrp4e-core.traits.FmHDbCOy3pH8yKhm]{Vision nocturne}</p>\n<p>@Compendium[wfrp4e-core.traits.ClOlztW6hH8rslbp]{Pisteur}</p>\n<p>@Compendium[wfrp4e-core.traits.AtpAudHA4ybXVlWM]{Arme}</p>\n<h4>Optional</h4>\n<p>@Compendium[wfrp4e-core.traits.GbDyBCu8ZjDp6dkj]{Belliqueux}</p>\n<p>@Compendium[wfrp4e-core.traits.AGcJl5rHjkyIQBPP]{Bestial}</p>\n<p>@Compendium[wfrp4e-core.traits.a8MC97PLzl10WocT]{Grand}</p>\n<p>@Compendium[wfrp4e-core.traits.5muSFXd6oc760uVj]{Béni (Ulric)}</p>\n<p>@Compendium[wfrp4e-core.traits.4mF5Sp3t09kZhBYc]{Champion}</p>\n<p>@Compendium[wfrp4e-core.traits.UsJ2uIOOtHA7JqD5]{Increvable}</p>\n<p>@Compendium[wfrp4e-core.traits.9MjH4xyVrd3Inzak]{Rapide}</p>\n<p>@Compendium[wfrp4e-core.traits.yRhhOlt18COq4e1q]{Frénésie}</p>\n<p>@Compendium[wfrp4e-core.traits.IAWyzDfC286a9MPz]{Immunité psycologique}</p>\n<p>@Compendium[wfrp4e-core.traits.SfUUdOGjdYpr3KSR]{Régénération}</p>\n<p>@Compendium[wfrp4e-core.traits.8slW8CJ2oVTxeQ6q]{Taille (Grande)}</p>"
|
||||
"description": "<h4>Traits</h4>\n<p>@Compendium[wfrp4e-core.items.VUJUZVN3VYhOaPjj]{Armure}</p>\n<p>@Compendium[wfrp4e-core.items.pLW9SVX0TVTYPiPv]{Morsure}</p>\n<p>@Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur}</p>\n<p>@Compendium[wfrp4e-core.items.FmHDbCOy3pH8yKhm]{Vision nocturne}</p>\n<p>@Compendium[wfrp4e-core.items.ClOlztW6hH8rslbp]{Pisteur}</p>\n<p>@Compendium[wfrp4e-core.items.AtpAudHA4ybXVlWM]{Arme}</p>\n<h4>Optional</h4>\n<p>@Compendium[wfrp4e-core.items.GbDyBCu8ZjDp6dkj]{Belliqueux}</p>\n<p>@Compendium[wfrp4e-core.items.AGcJl5rHjkyIQBPP]{Bestial}</p>\n<p>@Compendium[wfrp4e-core.items.a8MC97PLzl10WocT]{Grand}</p>\n<p>@Compendium[wfrp4e-core.items.5muSFXd6oc760uVj]{Béni (Ulric)}</p>\n<p>@Compendium[wfrp4e-core.items.4mF5Sp3t09kZhBYc]{Champion}</p>\n<p>@Compendium[wfrp4e-core.items.UsJ2uIOOtHA7JqD5]{Increvable}</p>\n<p>@Compendium[wfrp4e-core.items.9MjH4xyVrd3Inzak]{Rapide}</p>\n<p>@Compendium[wfrp4e-core.items.yRhhOlt18COq4e1q]{Frénésie}</p>\n<p>@Compendium[wfrp4e-core.items.IAWyzDfC286a9MPz]{Immunité psycologique}</p>\n<p>@Compendium[wfrp4e-core.items.SfUUdOGjdYpr3KSR]{Régénération}</p>\n<p>@Compendium[wfrp4e-core.items.8slW8CJ2oVTxeQ6q]{Taille (Grande)}</p>"
|
||||
},
|
||||
{
|
||||
"id": "Sword of Fear",
|
||||
"name": "Épée de la peur",
|
||||
"description": "<p>Le porteur de l'épée peut invoquer son pouvoir en prononçant les mots ‘Rend-toi ou meurs!’, et obtien le Trait @Compendium[wfrp4e-core.traits.pTorrE0l3VybAbtn]{Peur (2)} (WFJDR, p. 190) pendant [[/r 2d10]] Rounds. L'épée inflige également des dégâts aux créatures normalement immunisées aux attaques non magique et bénéficie des Qualités d'objet <em>Raffiné</em> et <em>Solide</em> (WFJDR, p. 292).</p>"
|
||||
"description": "<p>Le porteur de l'épée peut invoquer son pouvoir en prononçant les mots ‘Rend-toi ou meurs!’, et obtien le Trait @Compendium[wfrp4e-core.items.pTorrE0l3VybAbtn]{Peur (2)} (WFJDR, p. 190) pendant [[/r 2d10]] Rounds. L'épée inflige également des dégâts aux créatures normalement immunisées aux attaques non magique et bénéficie des Qualités d'objet <em>Raffiné</em> et <em>Solide</em> (WFJDR, p. 292).</p>"
|
||||
},
|
||||
{
|
||||
"id": "Gromril Helm",
|
||||
@ -65,12 +65,12 @@
|
||||
{
|
||||
"id": "Bless With Filth",
|
||||
"name": "Infecte bénédiction",
|
||||
"description": "<p>Vous maudissez les lames, griffes et dents de ceux qui vous entourent pour entraîner des blessures infectées. Pour le durée du sort, chaque Personnage dans la zone d'effet compte comme possédant le Trait de créature @Compendium[wfrp4e-core.traits.V0c3qBU1CMm8bmsW]{Infecté}.</p>"
|
||||
"description": "<p>Vous maudissez les lames, griffes et dents de ceux qui vous entourent pour entraîner des blessures infectées. Pour le durée du sort, chaque Personnage dans la zone d'effet compte comme possédant le Trait de créature @Compendium[wfrp4e-core.items.V0c3qBU1CMm8bmsW]{Infecté}.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Survivor",
|
||||
"name": "Survivant",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.middenheim-journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"career_careergroup": "Frère loup",
|
||||
"trappings": [
|
||||
"arme simple",
|
||||
@ -85,7 +85,7 @@
|
||||
{
|
||||
"id": "Wolf Brother",
|
||||
"name": "Grand Loup",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.middenheim-journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"career_careergroup": "Frère loup",
|
||||
"trappings": [
|
||||
"arme simple",
|
||||
@ -96,7 +96,7 @@
|
||||
{
|
||||
"id": "Wolf Club",
|
||||
"name": "Compagnon Loup",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.middenheim-journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"career_careergroup": "Frère loup",
|
||||
"trappings": [
|
||||
"arme simple",
|
||||
@ -106,7 +106,7 @@
|
||||
{
|
||||
"id": "Wolf Kin",
|
||||
"name": "Frère Loup",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.middenheim-journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"description": "<p>@Compendium[wfrp4e-middenheim.journals.GkT1arSV9rYhYvrG]{Frère loup}</p>",
|
||||
"career_careergroup": "Frère loup",
|
||||
"trappings": [
|
||||
"arme simple",
|
||||
|
@ -59,7 +59,7 @@
|
||||
"results": {
|
||||
"80-83": "Un joueur choisi au hasard parmi tous les joueurs présents sur le terrain (sauf un des PJs ou le joueur en possession de la balle) glisse dans la boue, se tord la cheville et est contraint d'abandonné.",
|
||||
"84-86": "Un joueur choisi au hasard parmi tous les joueurs présents sur le terrain (sauf un des PJs ou le joueur en possession de la balle) a bu dans une gourde, désignez le joueur et faites lui un test de Résistance à l'alcool <b>difficile (-20)<\/b>. ",
|
||||
"87-89": "Un joueur choisi au hasard parmi tous les joueurs présents sur le terrain (sauf un des PJs ou le joueur en possession de la balle) a pris un stimulant qui améliore ses performances. Il ressent immédiatement les effets bénifiques pour ensuite souffrir de @Compendium[wfrp4e-core.trappings.jTFOrokjEHbi12rT]{Délice de Ranald}.",
|
||||
"87-89": "Un joueur choisi au hasard parmi tous les joueurs présents sur le terrain (sauf un des PJs ou le joueur en possession de la balle) a pris un stimulant qui améliore ses performances. Il ressent immédiatement les effets bénifiques pour ensuite souffrir de @Compendium[wfrp4e-core.items.jTFOrokjEHbi12rT]{Délice de Ranald}.",
|
||||
"90-95": "Les supporters de l'équipe locale commencent à chanter, leur équipe bénéficie de +5 B au prochain tour.",
|
||||
"96-100": "Les supporters de l'équipe en déplacement donnent de la voie. Leur équipe bénéficie +5 B au prochain tour.",
|
||||
"1-33": "Rien de particulier ne se passe pour ce tour.",
|
||||
|
@ -101,7 +101,7 @@
|
||||
{
|
||||
"id": "Katya's Cordial",
|
||||
"name": "Sirop de Katya",
|
||||
"description": "<p>Ce mélange diffuse une odeur légèrement sucrée de couleur rose perle au goût épicé. Cette potion augmente le charme de celui qui l’ingère, avec cependant un effet indésirable. Lorsqu’elle est sous l’effet de la potion, la personne qui l’a ingérée gagne le Talent @Compendium[wfrp4e-core.talents.6l3jvIAvrKxt0lA9]{Attractive}. Cependant, dès que l’effet se dissipe, ce dernier subit une pénalité de -20 à tous les Tests de Sociabilité pendant [[/r 1d10]] jours au cours desquels sa peau et ses yeux dégorgeront des sécrétions jaunâtres à l’odeur nauséabonde. Durée : [[/r 1d10]] heures.</p>"
|
||||
"description": "<p>Ce mélange diffuse une odeur légèrement sucrée de couleur rose perle au goût épicé. Cette potion augmente le charme de celui qui l’ingère, avec cependant un effet indésirable. Lorsqu’elle est sous l’effet de la potion, la personne qui l’a ingérée gagne le Talent @Compendium[wfrp4e-core.items.6l3jvIAvrKxt0lA9]{Attractive}. Cependant, dès que l’effet se dissipe, ce dernier subit une pénalité de -20 à tous les Tests de Sociabilité pendant [[/r 1d10]] jours au cours desquels sa peau et ses yeux dégorgeront des sécrétions jaunâtres à l’odeur nauséabonde. Durée : [[/r 1d10]] heures.</p>"
|
||||
},
|
||||
{
|
||||
"id": "Liquor of Luck",
|
||||
@ -166,7 +166,7 @@
|
||||
{
|
||||
"id": "Tonic of Sight Beyond Sight",
|
||||
"name": "Tonique de Vue au-delà de la Vue",
|
||||
"description": "<p>L’étiquette de la bouteille contenant ce liquide vert foncé est ornée d’un grand globe oculaire rouge. Cette potion porte la promesse d’améliorer la vision de celui qui la boit. La boire vous conférera l’un des Talents suivants, voire plusieurs (lancer [[/r 1d10]]) : 1-2 : @Compendium[wfrp4e-core.talents.9h82z72XGo9tfgQS]{Acute Sense (Sight)}; 3-4 : @Compendium[wfrp4e-core.talents.Nj3tC8A5fZ3zEdMR]{Holy Visions}; 5-6 : @Compendium[wfrp4e-core.talents.6w30u0VPsAicrqb5]{Magical Sense}; 7-8 : @Compendium[wfrp4e-core.talents.OEjUvJKi0xmBwbS2]{Second Sight}; 9-10 : tous les effets ci-dessus. Durée : [[/r 1d10]] minutes</p>"
|
||||
"description": "<p>L’étiquette de la bouteille contenant ce liquide vert foncé est ornée d’un grand globe oculaire rouge. Cette potion porte la promesse d’améliorer la vision de celui qui la boit. La boire vous conférera l’un des Talents suivants, voire plusieurs (lancer [[/r 1d10]]) : 1-2 : @Compendium[wfrp4e-core.items.9h82z72XGo9tfgQS]{Acute Sense (Sight)}; 3-4 : @Compendium[wfrp4e-core.items.Nj3tC8A5fZ3zEdMR]{Holy Visions}; 5-6 : @Compendium[wfrp4e-core.items.6w30u0VPsAicrqb5]{Magical Sense}; 7-8 : @Compendium[wfrp4e-core.items.OEjUvJKi0xmBwbS2]{Second Sight}; 9-10 : tous les effets ci-dessus. Durée : [[/r 1d10]] minutes</p>"
|
||||
},
|
||||
{
|
||||
"id": "Torn Apart",
|
||||
|
@ -48,7 +48,7 @@
|
||||
{
|
||||
"id": "Basilisk's Baleful Bile",
|
||||
"name": "Bile Funeste de Basilic",
|
||||
"description": "<p>Ce poison est créé en combinant des liquides oculaires et les glandes de poison d'un basilic recemment tué. C’est un poison nauséabond, et quiconque ingère de la nourriture ou une boisson contenant cette bile devra passer un test de <strong> Perception Facile (+40) </strong>. Le succès indique que la souillure est detectée et que quelque chose qui ne va pas. La victime subit des effets digestifs, et gagne l'état Assomé pendant un round, alors que la victime vomit. S'il le poison est ingéré, le mélange inflige 2 états @Condition[Empoisonné]. Il est possible d'y résister avec un Test Difficile (-10) de Résistance</strong>. Si la victime échoue à son Test de Résistance, elle est définitivement changée en pierre.</strong>",
|
||||
"description": "<p>Ce poison est créé en combinant des liquides oculaires et les glandes de poison d'un basilic recemment tué. C’est un poison nauséabond, et quiconque ingère de la nourriture ou une boisson contenant cette bile devra passer un test de <strong> Perception Facile (+40) </strong>. Le succès indique que la souillure est detectée et que quelque chose qui ne va pas. La victime subit des effets digestifs, et gagne l'état Sonné pendant un round, alors que la victime vomit. S'il le poison est ingéré, le mélange inflige 2 états @Condition[Empoisonné]. Il est possible d'y résister avec un Test Difficile (-10) de Résistance</strong>. Si la victime échoue à son Test de Résistance, elle est définitivement changée en pierre.</strong>",
|
||||
"sdamage": "undefined "
|
||||
},
|
||||
{
|
||||
|
23
compendium/wfrp4e-starter-set.tables.json
Normal file
23
compendium/wfrp4e-starter-set.tables.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"label": "Tables (Starter Set)",
|
||||
"mapping": {
|
||||
"results": {
|
||||
"path": "results",
|
||||
"converter": "resultConverter"
|
||||
}
|
||||
},
|
||||
"entries": {
|
||||
"3m4LPj58xoNju80B": {
|
||||
"name": "Blessures Critiques - Tête (Starter Set)"
|
||||
},
|
||||
"BlDLji1LeqHOVj8r": {
|
||||
"name": "Blessures Critiques - Jambe (Starter Set)"
|
||||
},
|
||||
"yYfGtudjckO3bubF": {
|
||||
"name": "Blessures Critiques - Bras (Starter Set)"
|
||||
},
|
||||
"yvzv7xxQuxX7N16b": {
|
||||
"name": "Blessures Critiques - Corps (Starter Set)"
|
||||
}
|
||||
}
|
||||
}
|
@ -23,7 +23,7 @@
|
||||
},
|
||||
"Animal Carcass": {
|
||||
"name": "Animal Carcass",
|
||||
"description": "<p>An Animal Carcass inflicts Damage +4 to everyone in the area of Blast 3. Furthermore every target within Blast 20 must pass an <strong>Very Easy (+60) Endurance</strong> Test or develop a @UUID[Compendium.wfrp4e-core.diseases.kKccDTGzWzSXCBOb]{Festering Wound}.</p>"
|
||||
"description": "<p>An Animal Carcass inflicts Damage +4 to everyone in the area of Blast 3. Furthermore every target within Blast 20 must pass an <strong>Very Easy (+60) Endurance</strong> Test or develop a @UUID[Compendium.wfrp4e-core.items.kKccDTGzWzSXCBOb]{Festering Wound}.</p>"
|
||||
},
|
||||
"Apprentice Artillerist": {
|
||||
"name": "Apprentice Artillerist",
|
||||
@ -667,7 +667,7 @@
|
||||
},
|
||||
"Scrap and Powder": {
|
||||
"name": "Scrap and Powder",
|
||||
"description": "<p>Scrap is a catch-all term for old roofing nails, used horseshoe fragments, arrow heads, and other bits of sharp and pointy material scavenged from whatever pile or rust or slag can be found. Attacks made using this shot benefit from the @UUID[Compendium.wfrp4e-core.traits.V0c3qBU1CMm8bmsW]{Infected} Creature Trait</p>"
|
||||
"description": "<p>Scrap is a catch-all term for old roofing nails, used horseshoe fragments, arrow heads, and other bits of sharp and pointy material scavenged from whatever pile or rust or slag can be found. Attacks made using this shot benefit from the @UUID[Compendium.wfrp4e-core.items.V0c3qBU1CMm8bmsW]{Infected} Creature Trait</p>"
|
||||
},
|
||||
"Sealskin": {
|
||||
"name": "Sealskin",
|
||||
@ -687,7 +687,7 @@
|
||||
},
|
||||
"Shieldmaiden's Devotion": {
|
||||
"name": "Shieldmaiden's Devotion",
|
||||
"description": "<p>Your chanted prayers fill the hearts of the faithful with the fearlessness of her bravest Shieldmaidens. All Myrmidians within range gain the @UUID[Compendium.wfrp4e-core.talents.8pVzgPkgWpTJvfhG]{Fearless (Enemy)} Talent. This enemy may either be a particular individual, or a particular species.</p>"
|
||||
"description": "<p>Your chanted prayers fill the hearts of the faithful with the fearlessness of her bravest Shieldmaidens. All Myrmidians within range gain the @UUID[Compendium.wfrp4e-core.items.8pVzgPkgWpTJvfhG]{Fearless (Enemy)} Talent. This enemy may either be a particular individual, or a particular species.</p>"
|
||||
},
|
||||
"Shieldsman": {
|
||||
"name": "Shieldsman",
|
||||
|
23
compendium/wfrp4e-up-in-arms.tables.json
Normal file
23
compendium/wfrp4e-up-in-arms.tables.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"label": "Tables (Up In Arms)",
|
||||
"mapping": {
|
||||
"results": {
|
||||
"path": "results",
|
||||
"converter": "resultConverter"
|
||||
}
|
||||
},
|
||||
"entries": {
|
||||
"Head Critical Wounds (Up In Arms)": {
|
||||
"name": "Head Critical Wounds (Up In Arms)"
|
||||
},
|
||||
"Leg Critical Wounds (Up In Arms)": {
|
||||
"name": "Leg Critical Wounds (Up In Arms)"
|
||||
},
|
||||
"Arm Critical Wounds (Up In Arms)": {
|
||||
"name": "Arm Critical Wounds (Up In Arms)"
|
||||
},
|
||||
"Body Critical Wounds (Up In Arms)": {
|
||||
"name": "Body Critical Wounds (Up In Arms)"
|
||||
}
|
||||
}
|
||||
}
|
1791
compendium/wfrp4e-wom.items.json
Normal file
1791
compendium/wfrp4e-wom.items.json
Normal file
File diff suppressed because one or more lines are too long
31
fr.json
31
fr.json
@ -495,7 +495,7 @@
|
||||
"Resolve" : "Détermination",
|
||||
"Resilience" : "Résilience",
|
||||
"Career" : "Carrière",
|
||||
"Careers" : "Careers",
|
||||
"Careers" : "Carrières",
|
||||
"Level" : "Niveau",
|
||||
"Biography" : "Biographie",
|
||||
"Personal Ambitions" : "Ambitions personnelles",
|
||||
@ -1177,7 +1177,7 @@
|
||||
"WFRP4E.Properties.Penetrating" : "L'arme est extrêmement efficace pour pénétrer les armures. Les PA ne provenant pas de métal sont ignorés, et le premier point de toutes les autres armures est ignoré.",
|
||||
"WFRP4E.Properties.Pistol" : "Vous pouvez utiliser cette arme pour attaquer en Combat rapproché.",
|
||||
"WFRP4E.Properties.Precise" : "L'arme trouve facilement sa cible. Gagnez +1DR à tout Test réussi lors d'une attaque avec cette arme.",
|
||||
"WFRP4E.Properties.Pummel" : "Les armes Assommantes sont particulièrement efficaces pour forcer les ennemis à se soumettre. Si vous touchez la Tête avec une arme Assomante, tentez un Test opposé de Force / Résistance contre la cible frappée. Si vous remportez le Test, votre adversaire gagne un État Assommé.",
|
||||
"WFRP4E.Properties.Pummel" : "Les armes Assommantes sont particulièrement efficaces pour forcer les ennemis à se soumettre. Si vous touchez la Tête avec une arme Assomante, tentez un Test opposé de Force / Résistance contre la cible frappée. Si vous remportez le Test, votre adversaire gagne un État Sonné.",
|
||||
"WFRP4E.Properties.Repeater" : "Votre arme contient (Indice) munitions, automatiquement rechargées après chaque coup que vous tirez. Lorsque vous avez utilisé toutes vos munitions, vous devez recharger entièrement l'arme en utilisant les règles normales.",
|
||||
"WFRP4E.Properties.Shield" : "Si vous utilisez cette arme pour opposer une attaque, vous êtes considéré comme ayant (Indice) PA à tous les endroits de votre corps. Si votre arme possède un Indice de Protection de 2 ou plus, vous pouvez aussi opposer des projectiles tirés dans votre ligne de vue.",
|
||||
"WFRP4E.Properties.Trapblade" : "Certaines armes sont conçues pour piéger d'autres armes, et parfois même les briser. Si vous obtenez un Critique quand vous défendez contre une attaque provenant d'une arme possédant une lame, vous pouvez choisir de la piéger plutôt que de causer un Coup Critique. Si vous choisissez cela, effectuez un <b>Test opposé de Force</b>, en ajoutant votre DR obtenu au précédent Test de Corps à corps. Si vous l'emportez, votre adversaire laisse tomber la lame qui lui est arrachée. Si vous obtenez un Succès Stupéfiant, vous ne désarmez pas seulement votre adversaire, mais la force de votre manoeuvre brise la lame à moins qu'elle ne possède l'Atout Incassable. Si vous échouez au Test, votre adversaire libère sa lame et peut combattre normalement.",
|
||||
@ -1303,7 +1303,7 @@
|
||||
"WFRP4E.Conditions.Fatigued" : "<p>Vous êtes épuisé, ou stressé, mais quoi qu'il en soit, vous avez besoin de repos.</p><p>Vous subissez une pénalité de -10 à tous vos Tests.</p><p>Pour retirer un État <em>Exténué</em>, il faut normalement du repos, un Sort ou un effet divin, mais, dans certaines conditions, par exemple lorsque l'État <em>Exténué</em> est dû à une charge portée trop importante (voir Encombrement, page 293), le fait de faire des modifications (comme porter moins de pièges, par exemple) peut permettre de retirer l'État.</p>",
|
||||
"WFRP4E.Conditions.Poisoned" : "<p>Vous avez été <em>Empoisonné</em> ou un venin vous a été injecté. La difficulté de tous les Tests effectués pour éliminer le poison est dictée par le poison ou le venin en question.</p><p>À la fin de chaque round, perdez 1 Point de Blessure, en ignorant tous les modificateurs. De plus, vous subissez une pénalité de -10 à tous vos Tests.</p><p>Si vous atteignez 0 Point de Blessure alors que vous êtes <em>Empoisonné</em>, vous ne pouvez soigner aucune Blessure tant qu'il vous reste des États <em>Empoisonné</em>. Si vous tombez <em>@Condition[Inconscient]</em> alors que vous êtes <em>Empoisonné</em>, effectuez un Test de Résistance après un nombre de Rounds équivalent à votre Bonus d'Endurance ou vous mourrez dans d'horribles souffrances. Voir Traumatisme page 172 pour en savoir plus.</p><p>À la fin de chaque Round, vous pouvez effectuer un test de Résistance. Sur un succès, retirez un État <em>Empoisonné</em>, et chaque DR permet d'en retirer un supplémentaire. Un Test de @Compendium[wfrp4e-core.skills.HXZaV1CJhmTvcAz4] permet d'obtenir le même résultat.</p><p>Une fois débarassé de tous les États <em>Empoisonné</em>, gagnez 1 État <em>@Condition[Extenué]{Exténué}</em>.</p>",
|
||||
"WFRP4E.Conditions.Prone" : "<p>Vous vous retrouvez au sol, sans doute parce que vous n'avez plus de Points de Blessure disponibles, que vous avez chuté ou que vous avez été frappé par quelque chose de très gros.</p><p>Pendant votre tour, votre Mouvement ne peut être utilisé que pour vous relever ou encore ramper de la moitié de votre Mouvement en mètres (Note : s'il ne vous reste plus aucune Blessure, vous ne pouvez que ramper). Vous subissez une pénalité de -20 à tout Test qui implique un déplacement quelconque, et tout adversaire qui tente de vous attaquer en Combat au Corps à corps gagne un bonus de +20 pour vous toucher.</p><p>À l'inverse de la plupart des États, <em>À Terre</em> ne se cumule pas. Vous perdez l'État <em>À Terre</em> lorsque vous vous relevez.</p>",
|
||||
"WFRP4E.Conditions.Stunned" : "<p>Vous avez reçu un coup sur la tête, ou êtes désorienté ou confus ; vos oreilles bourdonnent et plus rien n'a vraiment de sens.</p><p> Vous êtes incapable d'effectuer votre Action au cours de votre tour et vous ne pouvez vous déplacer que de la moitié de votre Mouvement. Vous pouvez vous défendre lors des Tests opposés - mais pas ceux qui utilisent Langue (Magick). Vous subissez également une pénalité de -10 à tous les Tests, et tout adversaire qui tente de vous frapper en Combat au Corps à corps gagne +1 Avantage avant d'effectuer son attaque.</p><p>À la fin de chaque round, vous pouvez tenter un Test de <strong>Résistance Intermédiaire (+0)</strong>. Sur un succès, retirez 1 État <em>Assommé</em>, et chaque DR obtenu permet de retirer 1 État <em>Assommé</em> supplémentaire.</p><p>Une fois débarassé de tous les États <em>Assommé</em>, gagnez 1 État <em>@Condition[Extenué]{Exténué}</em> si vous n'en possédez pas déjà.</p>",
|
||||
"WFRP4E.Conditions.Stunned" : "<p>Vous avez reçu un coup sur la tête, ou êtes désorienté ou confus ; vos oreilles bourdonnent et plus rien n'a vraiment de sens.</p><p> Vous êtes incapable d'effectuer votre Action au cours de votre tour et vous ne pouvez vous déplacer que de la moitié de votre Mouvement. Vous pouvez vous défendre lors des Tests opposés - mais pas ceux qui utilisent Langue (Magick). Vous subissez également une pénalité de -10 à tous les Tests, et tout adversaire qui tente de vous frapper en Combat au Corps à corps gagne +1 Avantage avant d'effectuer son attaque.</p><p>À la fin de chaque round, vous pouvez tenter un Test de <strong>Résistance Intermédiaire (+0)</strong>. Sur un succès, retirez 1 État <em>Sonné</em>, et chaque DR obtenu permet de retirer 1 État <em>Sonné</em> supplémentaire.</p><p>Une fois débarassé de tous les États <em>Sonné</em>, gagnez 1 État <em>@Condition[Extenué]{Exténué}</em> si vous n'en possédez pas déjà.</p>",
|
||||
"WFRP4E.Conditions.Surprised" : "<p>Vous avez été pris au dépourvu et vous n'êtes absolument pas prêt à réagir à ce qui arrive.</p><p>Vous ne pouvez effectuer ni votre Mouvement ni votre Action pendant ce tour et vous ne pouvez pas vous défendre lors de Tests opposés. Tout adversaire qui tente de vous frapper en Combat au Corps à corps gagne +20 à la CC.</p><p>L'État <em>Surpris</em> ne se cumule pas, et donc vous ne pouvez pas en subir plusieurs, même si, techniquement, vous pouvez être surpris plus d’une fois dans un même Round.</p><p>À la fin de chaque Round, ou après la première tentative effectuée pour vous toucher, vous perdez l'État <em>Surpris</em>.</p>",
|
||||
"WFRP4E.Conditions.Unconscious" : "<p>Vous êtes KO, inconscient, ou frappé d'incapacité. Vous ne pouvez absolument rien faire de votre tour et n'avez aucune conscience de ce qui vous entoure. Un attaquant qui vous cible gagne le bénéfice de la règle Je ne faillirai pas ! (voir p. 171) sans avoir à dépenser un Point de Résilience ; ou, si le MJ préfère, une attaque en combat rapproché vou tue automatiquement. Toute attaque à distance est également un succès et occassionne les mêmes Dégâts que si le tireur était à bout portant.</p><p>L'État <em>Inconscient</em> ne se cumule pas.</p><p>Récupérer d'un État <em>Inconscient</em> va bien souvent dépendre des circonstances qui ont causé cette inconscience. Reportez-vous aux Traumatismes à la page 172 pour en savoir plus sur le sujet. Si vous dépensez un Point de Détermination pour vous débarasser d'un État <em>Inconscient</em>, mais que vous êtes toujours sujet aux causes de cette inconscience, vous gagnez un nouvel État <em>Inconscient</em> à la fin du round.</p><p>Lorsque vous vous débarassez de l'État <em>Inconscient</em>, vous gagnez les États <em>@Condition[A Terre]{À Terre}</em> et <em>@Condition[Extenué]{Exténué}</em>.</p>",
|
||||
"WFRP4E.Conditions.Grappling" : "<p>Si vous commencez votre tour Empoigné, vous pouvez briser l'Empoignade si vous disposez d'un Avantage supérieur à celui de votre adversaire, et vous n'êtes pas considéré comme <em>Engagé</em> pour votre Mouvement ; autrement, vous devez effectuer un Test opposé <strong>de Force</strong> pour votre Action. Sur un succès, vous pouvez choisir une des deux options suivantes :<ul><li>Infliger BF+DR Dégâts en utilisant votre lancer de Force pour déterminer la Localisation affectée. Vous ignorez tous les PA car vous ne faites qu'effectuer des clefs de bras tout en tirant sur les muscles ;</li><li>Soit : 1) Conférer l'État <em>@Condition[Empêtré]</em> à votre adversaire, ou 2) Vous défaire de ce même État et vous débarasser d'un État <em>@Condition[Empêtré]</em> supplémentaire pour chaque DR obtenu.</li></ul></p>",
|
||||
@ -1319,7 +1319,7 @@
|
||||
"WFRP4E.ConditionName.Fatigued" : "Extenué",
|
||||
"WFRP4E.ConditionName.Poisoned" : "Empoisonné",
|
||||
"WFRP4E.ConditionName.Prone" : "A Terre",
|
||||
"WFRP4E.ConditionName.Stunned" : "Assommé",
|
||||
"WFRP4E.ConditionName.Stunned" : "Sonné",
|
||||
"WFRP4E.ConditionName.Surprised" : "Surpris",
|
||||
"WFRP4E.ConditionName.Unconscious" : "Inconscient",
|
||||
"WFRP4E.ConditionName.Grappling" : "Empoigné",
|
||||
@ -1336,7 +1336,7 @@
|
||||
"WFRP4E.SymptomDescriptions.Gangrene" : "Votre chair noircit et pourrit, infectée par quelque chose d'horrible. Et cela ne semble pas s'arranger. Effectuez un lancer de pourcentage pour déterminer une <a class ='table-click' data-table='hitloc'><i class='fas fa-list'></i> Localisation</a>. Si vous obtenez Corps, vous avez de la chance, la Gangrène ne s'est pas propagée au cours de l'infection. Si vous obtenez la Tête, c'est votre nez qui est touché. Si vous obtenez Bras, ce sont vos doigts. Si c'est la Jambe, c'est votre pied qui est atteint. Chaque jour, effectuez un <b>Test de Résistance Accessible (+20)</b>. Sur un succès, la Gangrène est contenue. Sur un échec, elle empire. Si vous obtenez plus d'échecs que votre Bonus d'Endurance, la Localisation devient totalement inutilisable. Si cela se produit, utilisez les mêmes règles que pour l'Amputation (voir Blessures Critiques). Tant que vous souffrez de la Gangrène, subissez une pénalité de –10 à tous vos Tests de Sociabilité, et vous subissez le symptôme Blessé. De plus, comme si ce n'était pas suffisant, vous souffrez également du symptôme Toxine tant que le membre affecté ne sera pas amputé. Et cela perdurera même après que vous avez été guéri de la maladie à l'origine de la Gangrène. ",
|
||||
"WFRP4E.SymptomDescriptions.Lingering" : "Vous avez une infection qui perdure. De ce fait, vous craignez que cela empire... Après que votre maladie est arrivée à la fin de sa Durée, effectuez un Test de Résistance avec la Difficulté indiquée entre parenthèses après le symptôme comme ceci : Persistant (Accessible) ou Persistant (Facile). Sur un Echec Minime (0), rajoutez <a class = 'chat-roll'><i class='fas fa-dice'></i> 1d10</a> jours à la Durée. Sur un Echec (-2), vous subissez une Blessure Purulente. Sur un Echec Stupéfiant (-6), vous développez une Infection du sang.",
|
||||
"WFRP4E.SymptomDescriptions.Malaise" : "Vous ne vous sentez pas bien du tout. Vous êtes fatigué, ressentez des difficultés à vous concentrer. En fait, vous vous sentez malade. Gagnez un État <a class='condition-chat'><i class='fas fa-user-injured'></i> Extenué</a> dont vous ne pourrez vous défaire qu'une fois votre maladie guérie.",
|
||||
"WFRP4E.SymptomDescriptions.Nausea" : "Vous vous sentez très malade et vous risquez de vomir si vous vous déplacez trop vite. Chaque fois que vous échouez à un Test qui implique un déplacement physique, votre nausée prend le dessus et vous vomissez. Vous gagnez l'État <a class = 'condition-chat'><i class='fas fa-user-injured'></i> Assommé</a> qui représente les conséquences de ces vomissements répétitifs ou de la déshydratation, en fonction des circonstances.",
|
||||
"WFRP4E.SymptomDescriptions.Nausea" : "Vous vous sentez très malade et vous risquez de vomir si vous vous déplacez trop vite. Chaque fois que vous échouez à un Test qui implique un déplacement physique, votre nausée prend le dessus et vous vomissez. Vous gagnez l'État <a class = 'condition-chat'><i class='fas fa-user-injured'></i> Sonné</a> qui représente les conséquences de ces vomissements répétitifs ou de la déshydratation, en fonction des circonstances.",
|
||||
"WFRP4E.SymptomDescriptions.Pox" : "Vous êtes recouvert de pustules, de gonflements, d'éruptions cutanées ou de boutons qui vous démangent, et c'est loin de vous rendre attirant. Les démangeaisons constituent surtout un problème esthétique, et impliquent une pénalité de -10 à tous les Tests de Sociabilité. De plus, n'oubliez pas d'interpréter ces démangeaisons en cours de jeu. Si vous voulez vous retenir un tant soit peu, réussissez un <b>Test de Calme Accessible (+20)</b>. Lorsque les démangeaisons s'arrêtent, effectuez un <b>Test de Calme Accessible (+20)</b>. Sur un échec, intervertissez les deux chiffres du résultat et vous recevez une cicatrice permanente à la Localisation correspondante, montrant ainsi l'endroit où ce démangeaisons n'ont pas été correctement traitées. Si la <a class='table-click' data-table = 'hitloc'><i class='fas fa-list'></i> Localisation</a> est la Tête, perdez définitivement 1 point de Sociabilité.",
|
||||
"WFRP4E.SymptomDescriptions.Wounded" : "Vous avez une blessure ou une plaie ouverte qui ne guérit pas correctement à cause d'une infection. Pour chaque symptôme Blessé dont vous souffrez, vous ne pouvez pas guérir l'une de vos Blessures, qui reste donc ouverte et vous fait souffrir. Certains écoulements de pus sont même possibles. Chaque jour, réussissez un <b>Test de Résistance Facile (+20)</b> ou subissez une Blessure Purulente si vous n'en avez pas déjà une.",
|
||||
"WFRP4E.SymptomDescriptions.Delirium" : "Votre sensibilité va et vient, avec des moments de clarté remplacés soudainement par des accès de délire, d'hallucinations et de terreur. Faites un <b>Test de Résistance Intermédiaire (+0)</b> toutes les heures et consultez le <a class='table-click' data-table='delirium'><i class='fas fa-list'></i> Tableau de Corruption Mentale</a>.",
|
||||
@ -1523,14 +1523,19 @@
|
||||
|
||||
"Academics": "Lettrés",
|
||||
"Academic": "Lettré",
|
||||
"Burgher": "Citadins",
|
||||
"Rogues": "Roublards",
|
||||
"Burghers": "Citadins",
|
||||
"Burgher": "Citadin",
|
||||
"Rogues": "Roublards",
|
||||
"Rogue": "Roublard",
|
||||
"Riverfolk": "Riverains",
|
||||
"Peasants": "Ruraux",
|
||||
"Peasant": "Ruraux",
|
||||
"Warrior": "Guerriers",
|
||||
"Ranger": "Itinérants",
|
||||
"Courtier": "Courtisans",
|
||||
"Peasant": "Rural",
|
||||
"Warriors": "Guerriers",
|
||||
"Warrior": "Guerrier",
|
||||
"Rangers": "Itinérants",
|
||||
"Ranger": "Itinérant",
|
||||
"Courtiers": "Courtisans",
|
||||
"Courtier": "Courtisan",
|
||||
|
||||
"Calvalry": "Cavalerie",
|
||||
"Flail": "Fléau",
|
||||
@ -2303,5 +2308,7 @@
|
||||
"TYPES.Item.weapon":"Arme",
|
||||
|
||||
"Badger": "Blaireau",
|
||||
"Badgers": "Blaireaux"
|
||||
"Badgers": "Blaireaux",
|
||||
"Choose one": "A choisir",
|
||||
"Bestial": "Bestial"
|
||||
}
|
||||
|
123
module.json
123
module.json
@ -8,7 +8,7 @@
|
||||
}
|
||||
],
|
||||
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
|
||||
"version": "7.0.2",
|
||||
"version": "7.0.26",
|
||||
"esmodules": [
|
||||
"babele-register.js",
|
||||
"addon-register.js",
|
||||
@ -30,107 +30,96 @@
|
||||
"label": "Plats d'Auberges",
|
||||
"type": "RollTable",
|
||||
"name": "plats-dauberges",
|
||||
"path": "packs/plats-dauberges.db",
|
||||
"path": "packs/plats-dauberges",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Dons de Rhya",
|
||||
"type": "JournalEntry",
|
||||
"name": "dons-de-rhya",
|
||||
"path": "packs/dons-de-rhya.db",
|
||||
"path": "packs/dons-de-rhya",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Sorts FR",
|
||||
"type": "Item",
|
||||
"name": "sort-fr",
|
||||
"path": "packs/sort-fr.db",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Aides de Jeu FR",
|
||||
"type": "JournalEntry",
|
||||
"name": "aides-de-jeu-fr",
|
||||
"path": "packs/aides-de-jeu-fr.db",
|
||||
"path": "packs/aides-de-jeu-fr",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Potions : Drogues et Sédatifs",
|
||||
"type": "Item",
|
||||
"name": "drogues-and-sedatifs",
|
||||
"path": "packs/drogues-and-sedatifs.db",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Potions : Pansements et Cataplasmes",
|
||||
"type": "Item",
|
||||
"name": "pansements-and-cataplasmes",
|
||||
"path": "packs/pansements-and-cataplasmes.db",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Potions : Poisons et Toxiques",
|
||||
"type": "Item",
|
||||
"name": "poisons-and-toxiques",
|
||||
"path": "packs/poisons-and-toxiques.db",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Potions : Potions et Décoctions",
|
||||
"type": "Item",
|
||||
"name": "potions-and-decoctions",
|
||||
"path": "packs/potions-and-decoctions.db",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Potions : Antidotes et Remèdes",
|
||||
"label": "Potions",
|
||||
"type": "Item",
|
||||
"name": "antidotes-and-remedes",
|
||||
"path": "packs/antidotes-and-remedes.db",
|
||||
"path": "packs/antidotes-and-remedes",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Tables des Traductions",
|
||||
"type": "JournalEntry",
|
||||
"name": "tables-des-traductions",
|
||||
"path": "packs/tables-des-traductions.db",
|
||||
"path": "packs/tables-des-traductions",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Apothicarium",
|
||||
"type": "JournalEntry",
|
||||
"name": "apothicarium",
|
||||
"path": "packs/apothicarium.db",
|
||||
"path": "packs/apothicarium",
|
||||
"system": "wfrp4e",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
}
|
||||
],
|
||||
"packFolders": [
|
||||
{
|
||||
"name": "Module WFRP4 FR",
|
||||
"sorting": "m",
|
||||
"color": "#00435c",
|
||||
"packs": [
|
||||
"apothicarium",
|
||||
"tables-des-traductions",
|
||||
"antidotes-and-remedes",
|
||||
"aides-de-jeu-fr",
|
||||
"dons-de-rhya",
|
||||
"plats-dauberges"
|
||||
],
|
||||
"folders": []
|
||||
}
|
||||
],
|
||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-7.0.2.zip",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-7.0.26.zip",
|
||||
"id": "wh4-fr-translation",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"minimum": "11",
|
||||
"verified": "11"
|
||||
},
|
||||
"relationships": {
|
||||
|
@ -176,6 +176,28 @@ export class WH4FRPatchConfig {
|
||||
game.wfrp4e.config.species["welf"] = "Elfe Sylvain";
|
||||
}
|
||||
|
||||
if (game.wfrp4e.config.charastericticsBonus) {
|
||||
game.wfrp4e.config.charastericticsBonus =
|
||||
{
|
||||
"ws": "Bonus de Capacité de Combat",
|
||||
"bs": "Bonus de Capacité de Tir",
|
||||
"s": "Bonus de Force",
|
||||
"t": "Bonus d'Endurance",
|
||||
"i": "Bonus d'Initiative",
|
||||
"ag": "Bonus d'Agilité",
|
||||
"dex": "Bonus de Dexterité",
|
||||
"int": "Bonus d'Intelligence",
|
||||
"wp": "Bonus de Force Mentale",
|
||||
"fel": "Bonus de Sociabilité"
|
||||
}
|
||||
}
|
||||
|
||||
if (game.wfrp4e.config.classTrappings) {
|
||||
for(const c of Object.keys(game.wfrp4e.config.classTrappings)) {
|
||||
game.wfrp4e.config.classTrappings[game.i18n.localize(c)] = game.wfrp4e.config.classTrappings[c];
|
||||
}
|
||||
}
|
||||
|
||||
this.patch_species_skills();
|
||||
this.patch_species_talents();
|
||||
this.patch_subspecies();
|
||||
@ -262,7 +284,7 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
}*/
|
||||
|
||||
game.wfrp4e.config.statusEffects = [
|
||||
/*game.wfrp4e.config.statusEffects = [
|
||||
{
|
||||
icon: "systems/wfrp4e/icons/conditions/bleeding.png",
|
||||
id: "bleeding",
|
||||
@ -474,7 +496,7 @@ export class WH4FRPatchConfig {
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
]*/
|
||||
|
||||
/*game.wfrp4e.config.systemEffects = {
|
||||
"enc1": {
|
||||
|
@ -52,35 +52,59 @@ import "./xregexp-all.js";
|
||||
const us_carac = 'm\\s+ws\\s+bs\\s+s\\s+t\\s+i\\s+agi?\\s+dex\\s+int\\s+\\wp\\s+fel\\s+w';
|
||||
const fr_carac = 'm\\s+cc\\s+ct\\s+f\\s+e\\s+i\\s+agi?\\s+dex\\s+int\\s+fm\\s+soc\\s+b';
|
||||
const carac_val = '(?<m>[0-9\\-]+)\\s+(?<ws>[0-9\\-]+)\\s+(?<bs>[0-9\\-]+)\\s+(?<s>[0-9\\-]+)\\s+(?<t>[0-9\\-]+)\\s+(?<i>[0-9\\-]+)\\s+(?<ag>[0-9\\-]+)\\s+(?<dex>[0-9\\-]+)\\s+(?<int>[0-9\\-]+)\\s+(?<wp>[0-9\\-]+)\\s+(?<fel>[0-9\\-]+)\\s+(?<w>[0-9\\-\*]+)';
|
||||
const name_val = '(?<name>[a-zA-Z\\s\\-,]*)[\\s\\r\\na-zA-Z]*(?<tiers>.*|[\\(\\)a-z0-9]+)';
|
||||
const name_val = '(?<name>[a-zA-Z\\s\\-,\']*)[\\s\\r\\na-zA-Z]*(?<tiers>.*|[\\(\\)a-z0-9]+)';
|
||||
let sectionDataFR = [
|
||||
{ name: "trait", toFind: "Traits\\s*:", secondParse: '(?<name>[a-zàéè\\s]*)[\\s\\+]*(?<value>.*|[\\+0-9]+)', index: -1 },
|
||||
{ name: "trait", toFind: "Traits\\s*:", secondParse: '(?<name>[a-zöàéè\\s]*)[\\s\\+]*(?<value>.*|[\\+0-9]+)', index: -1 },
|
||||
{ name: "skill", toFind: "Compétences\\s*:", secondParse: '(?<name>[a-zàéè\\s\\(\\)]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "talent", toFind: "Talents\\s*:", secondParse: '(?<name>[a-zàéè\\-\\(\\)\\s\\/]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "mutation", toFind: "Mutations\\s*:", secondParse: '(?<name>[a-zàéè\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "trapping", toFind: "Equipement\\s*:", secondParse: '(?<name>[a-zàéè\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "spell", toFind: "Sorts\\s*\\([a-z\\s]*\\)*:", secondParse: '(?<name>[a-zàéè\\s]*)', index: -1 }
|
||||
{ name: "talent", toFind: "Talents\\s*:", secondParse: '(?<name>[a-zöàéè\\-\\!\\(\\)\\s\\/\'’]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "mutation", toFind: "Mutations\\s*:", secondParse: '(?<name>[a-zöàéè\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "trapping", toFind: "Equipement\\s*:", secondParse: '(?<name>[a-zöàéè0-9\\s(\\)\\-]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "spell", toFind: "Sorts\\s*\\([a-z\\s]*\\)*:", secondParse: '(?<name>[a-zöàéè\\s]*)', index: -1 },
|
||||
{ name: "spellpetty", toFind: "Spells\\s*\\(Magie Mineure\\)*:", secondParse: '(?<name>[a-zö\\-\\s]*)', index: -1 },
|
||||
{ name: "spellarcane", toFind: "Spells\\s*\\(Arcane[a-z\\s]*\\)*:", secondParse: '(?<name>[a-zö\\-\\s]*)', index: -1 },
|
||||
{ name: "spellarcane", toFind: "Spells\\s*\\(Domaine\\s*(?<lore>[a-z\\s]*)\\)*:", secondParse: '(?<name>[a-zö\\-\\s]*)', index: -1 }
|
||||
];
|
||||
let sectionDataUS = [
|
||||
{ name: "trait", toFind: "Traits\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[\\+0-9]+)', index: -1 },
|
||||
{ name: "skill", toFind: "Skills\\s*:", secondParse: '(?<name>[a-z\\s\\(\\)]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "talent", toFind: "Talents\\s*:", secondParse: '(?<name>[a-z\\-\\s\\(\\)\\/]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "mutation", toFind: "Mutations\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "trapping", toFind: "Trappings\\s*:", secondParse: '(?<name>[a-z\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "spell", toFind: "Spells\\s*\\([a-z\\s]*\\)*:", secondParse: '(?<name>[a-z\\s]*)', index: -1 }
|
||||
{ name: "talent", toFind: "Talents\\s*:", secondParse: '(?<name>[a-z\\-\\s\\!\\(\\)\\/\'’]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "mutation", toFind: "Mutations\\s*:", secondParse: '(?<name>[a-zö\\s]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "trapping", toFind: "Trappings\\s*:", secondParse: '(?<name>[a-zö0-9\\s\\(\\)\\-]*)[\\s\\+]*(?<value>.*|[0-9]+)', index: -1 },
|
||||
{ name: "spellpetty", toFind: "Spells\\s*\\(Petty\\s*[a-z\\s]*\\)*:", secondParse: '(?<name>[a-zö\\-\\s]*)', index: -1 },
|
||||
{ name: "spellarcane", toFind: "Spells\\s*\\(Arcane\\s*[a-z\\s]*\\)*:", secondParse: '(?<name>[a-zö\\-\\s]*)', index: -1 },
|
||||
{ name: "spelllore", toFind: "Spells\\s*\\(Lore\\s*of\\s*(?<lore>[a-z\\s]*)\\)*:", secondParse: '(?<name>[a-zö\\-\\s]*)', index: -1 }
|
||||
]
|
||||
let moneyUS = [ {name:" gold crown", key: "gc"}, {name: " gc", key: "gc"},
|
||||
{name:" silver shilling", key:"ss"}, {name:" ss", key: "ss"}, {name:"/-", key: "ss"}, {name:" brass penn", key: "bp"}, {name:" bp", key: "bp"} ]
|
||||
let moneyFR = [ {name:" couronnes d", key: "gc"}, {name: " co", key: "gc"},
|
||||
{name:" pistoles ", key:"ss"}, {name:" pa", key: "ss"}, {name:"/-", key: "ss"}, {name:" sous de cuivre", key: "bp"}, {name:" sc", key: "bp"} ]
|
||||
let regSep = XRegExp('\\s*,\\s*', 'gi'); // Term separator, with auto trim
|
||||
let regLine1 = XRegExp('[\\r\\n\\.]', 'gi'); // Term separator, with auto trim
|
||||
let regName = XRegExp(name_val, 'gi');
|
||||
|
||||
// Used to detect/manage the skill groupings in the statblock
|
||||
const __SkillGroupsUS = ["Melee", "Lore", "Trade"]
|
||||
const __SkillGroupsFR = ["Corps à corps", "Domaine", "Métier"]
|
||||
// Used to auto update the system.tests.value field
|
||||
const __hasTestValue = {
|
||||
"etiquette": true,
|
||||
"resistance": true,
|
||||
"acute sense": true,
|
||||
"strider": true,
|
||||
"savant": true,
|
||||
"craftsman": true
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
async function __findItem(itemName, itemType, location = null) {
|
||||
let toSearch = itemName.toLowerCase().trim();
|
||||
let items = game.items.contents.filter(i => i.type == itemType)
|
||||
|
||||
console.log("Searching for", toSearch, itemType)
|
||||
|
||||
// Search imported items first
|
||||
for (let i of items) {
|
||||
if (i.name.toLowerCase() == itemName.toLowerCase() && i.type == itemType)
|
||||
if (i.name.toLowerCase() == toSearch.toLowerCase() && i.type == itemType)
|
||||
return i.toObject();
|
||||
}
|
||||
let itemList
|
||||
@ -88,12 +112,11 @@ async function __findItem(itemName, itemType, location = null) {
|
||||
// find pack -> search pack -> return entity
|
||||
if (location) {
|
||||
let pack = game.packs.find(p => {
|
||||
location.split(".")[0] == p.metadata.package &&
|
||||
location.split(".")[1] == p.metadata.name
|
||||
location.split(".")[0] == p.metadata.package && location.split(".")[1] == p.metadata.name
|
||||
})
|
||||
if (pack) {
|
||||
await pack.getIndex().then(index => itemList = index);
|
||||
let searchResult = itemList.find(t => (t.translated && t.type == itemType && t.originalName.toLowerCase() == toSearch) || (t.type == itemType && t.name.toLowerCase() == toSearch) );
|
||||
let searchResult = itemList.find(t => (t.translated && t.type == itemType && (t.flags?.babele?.originalName.toLowerCase() == toSearch || s.flags?.babele?.originalName.toLowerCase().split("(")[0].trim() == toSearch)) || (t.type == itemType && (t.name.toLowerCase() == toSearch || t.name.toLowerCase().split("(")[0].trim() == toSearch)));
|
||||
if (searchResult) {
|
||||
let item = await pack.getDocument(searchResult._id)
|
||||
return item.toObject()
|
||||
@ -104,7 +127,8 @@ async function __findItem(itemName, itemType, location = null) {
|
||||
// If all else fails, search each pack
|
||||
for (let p of game.wfrp4e.tags.getPacksWithTag(itemType)) {
|
||||
await p.getIndex().then(index => itemList = index);
|
||||
let searchResult = itemList.find(t => (t.translated && t.type == itemType && t.originalName.toLowerCase() == toSearch) || (t.type == itemType && t.name.toLowerCase() == toSearch) );
|
||||
console.log("Seatch", itemType, toSearch, itemList);
|
||||
let searchResult = itemList.find(t => (t.translated && t.type == itemType && (t.flags?.babele?.originalName.toLowerCase() == toSearch || t.flags?.babele?.originalName.toLowerCase().split("(")[0].trim() == toSearch)) || (t.type == itemType && (t.name.toLowerCase() == toSearch || t.name.toLowerCase().split("(")[0].trim() == toSearch)));
|
||||
if (searchResult) {
|
||||
let item = await p.getDocument(searchResult._id)
|
||||
return item.toObject()
|
||||
@ -120,80 +144,102 @@ async function __findSkill(skillName, value = undefined) {
|
||||
let skillSplit = XRegExp.exec(skillName, XRegExp(parseStr, 'gi'));
|
||||
|
||||
// First try world items
|
||||
let item
|
||||
let worldItem = game.items.contents.filter(i => i.type == "skill" && i.name.toLowerCase() == toSearch)[0];
|
||||
if (worldItem) return worldItem;
|
||||
|
||||
let packs = game.wfrp4e.tags.getPacksWithTag("skill");
|
||||
for (let pack of packs) {
|
||||
let skillList = await pack.getIndex();
|
||||
// Search for specific skill (won't find unlisted specializations)
|
||||
let searchResult = skillList.find(s => (s.type == "skill" && s.translated && s.originalName.toLowerCase() == toSearch) || (s.type == "skill" && s.name.toLowerCase() == toSearch ) );
|
||||
if (!searchResult) {
|
||||
let toSearchClean = toSearch.split("(")[0].trim();
|
||||
searchResult = skillList.find(s => (s.type == "skill" && s.translated && s.originalName.toLowerCase().split("(")[0].trim() == toSearchClean) ||
|
||||
(s.type == "skill" && s.name.toLowerCase().split("(")[0].trim() == toSearchClean) );
|
||||
}
|
||||
if (searchResult) {
|
||||
let dbSkill;
|
||||
await pack.getDocument(searchResult._id).then(packSkill => dbSkill = packSkill);
|
||||
let item = dbSkill.toObject();
|
||||
//console.log("Skill name1", skillSplit)
|
||||
if (skillSplit.specialized && ( item.name.includes('()') || item.name.includes('( )' ) ) ) {
|
||||
let spec = XRegExp.replace(skillSplit.specialized, "(", "");
|
||||
spec = XRegExp.replace(spec, ")", "");
|
||||
let skillSplit2 = XRegExp.exec(item.name, XRegExp(parseStr, 'gi'));
|
||||
item.name = skillSplit2.name + '(' + game.i18n.localize( spec.trim() ) + ')'
|
||||
//dbSkill.update( { name: } );
|
||||
if (worldItem) {
|
||||
item = worldItem.toObject()
|
||||
} else {
|
||||
let packs = game.wfrp4e.tags.getPacksWithTag("skill");
|
||||
for (let pack of packs) {
|
||||
let skillList = await pack.getIndex();
|
||||
// Search for specific skill (won't find unlisted specializations)
|
||||
let searchResult = skillList.find(s => (s.type == "skill" && s.translated && s.flags?.babele?.originalName.toLowerCase() == toSearch) || (s.type == "skill" && s.name.toLowerCase() == toSearch));
|
||||
if (!searchResult) {
|
||||
let toSearchClean = toSearch.split("(")[0].trim();
|
||||
searchResult = skillList.find(s => (s.type == "skill" && s.translated && s.flags?.babele?.originalName.toLowerCase().split("(")[0].trim() == toSearchClean) ||
|
||||
(s.type == "skill" && s.name.toLowerCase().split("(")[0].trim() == toSearchClean));
|
||||
}
|
||||
if (searchResult) {
|
||||
let dbSkill;
|
||||
await pack.getDocument(searchResult._id).then(packSkill => dbSkill = packSkill);
|
||||
item = dbSkill.toObject();
|
||||
}
|
||||
//game.babele.translate('wfrp4e-core.skills', dbSkill);
|
||||
return item
|
||||
}
|
||||
}
|
||||
throw "Could not find skill (or specialization of) " + skillName + " in compendum or world"
|
||||
if (item) {
|
||||
//console.log("Skill name1", skillSplit)
|
||||
if (skillSplit.specialized && (item.name.includes('()') || item.name.includes('( )'))) {
|
||||
let spec = XRegExp.replace(skillSplit.specialized, "(", "");
|
||||
spec = XRegExp.replace(spec, ")", "");
|
||||
let skillSplit2 = XRegExp.exec(item.name, XRegExp(parseStr, 'gi'));
|
||||
item.name = skillSplit2.name + '(' + game.i18n.localize(spec.trim()) + ')'
|
||||
//dbSkill.update( { name: } );
|
||||
}
|
||||
//game.babele.translate('wfrp4e-core.skills', dbSkill);
|
||||
return item
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
async function __findTalent(talentName) {
|
||||
let parseStr = '(?<name>[a-z\\s\\/]*)[\\s\\+]*(?<specialized>[a-z\\s\\(\\)]*)';
|
||||
let parseStr = '(?<name>[a-z\\s\\!\\/\']*)[\\s\\+]*(?<specialized>[a-z\\s\\(\\)\'’]*)';
|
||||
let talentSplit = XRegExp.exec(talentName, XRegExp(parseStr, 'gi'));
|
||||
let toSearch = talentSplit.name.toLowerCase().trim();
|
||||
|
||||
//console.log("Talent name", talentName, talentSplit)
|
||||
|
||||
//console.log("Talent name", toSearch, talentName, talentSplit)
|
||||
|
||||
// First try world items
|
||||
let item
|
||||
let worldItem = game.items.contents.filter(i => i.type == "talent" && i.name.toLowerCase() == toSearch)[0];
|
||||
if (worldItem) return worldItem;
|
||||
|
||||
let packs = game.wfrp4e.tags.getPacksWithTag("talent");
|
||||
for (let pack of packs) {
|
||||
let talentList = await pack.getIndex();
|
||||
// Search for specific skill (won't find unlisted specializations)
|
||||
let searchResult = talentList.find(s => (s.translated && s.originalName.toLowerCase() == toSearch) || (s.name.toLowerCase() == toSearch ) );
|
||||
if (!searchResult) {
|
||||
let toSearchClean = toSearch.split("(")[0].trim();
|
||||
searchResult = talentList.find(s => (s.translated && s.originalName.toLowerCase().split("(")[0].trim() == toSearchClean) ||
|
||||
(s.name.toLowerCase().split("(")[0].trim() == toSearchClean) );
|
||||
}
|
||||
if (searchResult) {
|
||||
let dbTalent;
|
||||
//console.log("Talent name1", talentSplit)
|
||||
await pack.getDocument(searchResult._id).then(packTalent => dbTalent = packTalent);
|
||||
let item = dbTalent.toObject();
|
||||
if ( talentSplit.specialized ) {
|
||||
let spec = XRegExp.replace(talentSplit.specialized, "(", "");
|
||||
spec = XRegExp.replace(spec, ")", "");
|
||||
item.name = talentSplit.name + '(' + game.i18n.localize( spec.trim() ) + ')'
|
||||
//console.log("Talent name2", dbTalent.name, spec, game.i18n.localize( spec.trim()) )
|
||||
if (worldItem) {
|
||||
item = worldItem.toObject()
|
||||
} else {
|
||||
let packs = game.wfrp4e.tags.getPacksWithTag("talent");
|
||||
for (let pack of packs) {
|
||||
let talentList = await pack.getIndex();
|
||||
// Search for specific talent (won't find unlisted specializations)
|
||||
let searchResult = talentList.find(s => (s.type == "talent" && s.translated && s.flags?.babele?.originalName.toLowerCase() == toSearch) || (s.type == "talent" && s.name.toLowerCase() == toSearch));
|
||||
if (!searchResult) {
|
||||
let toSearchClean = toSearch.split("(")[0].trim();
|
||||
searchResult = talentList.find(s => (s.type == "talent" && s.translated && s.flags?.babele?.originalName.toLowerCase().split("(")[0].trim() == toSearchClean) ||
|
||||
(s.type == "talent" && s.name.toLowerCase().split("(")[0].trim() == toSearchClean));
|
||||
}
|
||||
if (searchResult) {
|
||||
let dbTalent;
|
||||
//console.log("Talent name1", talentSplit)
|
||||
await pack.getDocument(searchResult._id).then(packTalent => dbTalent = packTalent);
|
||||
item = dbTalent.toObject();
|
||||
}
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw "Could not find talent (or specialization of) " + talentName + " in compendium or world"
|
||||
if (item) {
|
||||
if (talentSplit.specialized) {
|
||||
let spec = XRegExp.replace(talentSplit.specialized, "(", "");
|
||||
spec = XRegExp.replace(spec, ")", "");
|
||||
spec = spec.trim()
|
||||
let addToName = true
|
||||
//console.log("Talent name2", dbTalent.name, spec, game.i18n.localize( spec.trim()) )
|
||||
if (toSearch == 'doomed') {
|
||||
item.system.description.value += `<br><br><em>${spec}</em>`;
|
||||
addToName = false // Very specific case
|
||||
}
|
||||
if (__hasTestValue[toSearch]) {
|
||||
item.system.tests.value = game.i18n.localize(spec);
|
||||
}
|
||||
item.name = talentSplit.name
|
||||
if (addToName) {
|
||||
item.name += '(' + game.i18n.localize(spec) + ')'
|
||||
}
|
||||
item.system.advances.value = 1 // Set 1 advance
|
||||
}
|
||||
// Specific Talent post-processing
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
function __patchName ( name) {
|
||||
if (name.toLowerCase == 'magic sense')
|
||||
function __patchName(name) {
|
||||
if (name.toLowerCase == 'magic sense')
|
||||
name = 'Magical Sense'
|
||||
return name
|
||||
}
|
||||
@ -204,33 +250,42 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
|
||||
// Patch wront/strange carac value before processing
|
||||
statString = statString.replace(/ –/g, " 0")
|
||||
let moneys = { gc: 0, ss: 0, bp: 0 }
|
||||
|
||||
let statNameReg = us_carac
|
||||
let sectionData = sectionDataUS
|
||||
let sectionData = duplicate(sectionDataUS)
|
||||
let skillGrouping = __SkillGroupsUS
|
||||
let moneyLang = moneyUS
|
||||
// Detect French stat block
|
||||
if (statString.includes('CC') && statString.includes('CT') && statString.includes('FM')) {
|
||||
//ui.notifications.warn("Le parsing de stablock en Français n'est pas encore prêt")
|
||||
statNameReg = fr_carac
|
||||
sectionData = sectionDataFR
|
||||
sectionData = duplicate(sectionDataFR)
|
||||
skillGrouping = __SkillGroupsFR
|
||||
moneyLang = moneyFR
|
||||
}
|
||||
|
||||
let reg1 = XRegExp(statNameReg, 'gi')
|
||||
let res = reg1.test(statString)
|
||||
if (res) { //stat block identified go on
|
||||
let globalItemList = []
|
||||
|
||||
// Extract the name
|
||||
let res1 = XRegExp.exec(statString, reg1)
|
||||
console.log("REG", res1)
|
||||
let pnjStr = statString.substring(0, res1.index)
|
||||
console.log("REG", res1, pnjStr, res)
|
||||
let nameRes = XRegExp.exec(pnjStr, regName)
|
||||
console.log(nameRes)
|
||||
console.log("REG", nameRes, regName)
|
||||
//console.log(nameRes)
|
||||
if (nameRes.tiers && nameRes.tiers.length > 0 && hasProperty(model, "details.status.value")) {
|
||||
let regTiers = XRegExp("(?<name>[A-Za-z]*)\\s+(?<level>[0-9]*)");
|
||||
let resTiers = XRegExp.exec(nameRes.tiers, regTiers);
|
||||
console.log(resTiers);
|
||||
model.details.status.value = game.i18n.localize(resTiers.name.trim()) + " " + resTiers.level;
|
||||
}
|
||||
let baseName = nameRes.name.split("\n")
|
||||
// Compute the PNJ name
|
||||
let pnjName = nameRes.name.split("—")[0].split(" ").filter(f => !!f);
|
||||
let pnjName = baseName[0].split("—")[0].split(" ").filter(f => !!f)
|
||||
pnjName = pnjName.map(word => {
|
||||
if (word == "VON")
|
||||
return word.toLowerCase();
|
||||
@ -240,7 +295,14 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
return word;
|
||||
})
|
||||
pnjName = pnjName.join(" ")
|
||||
|
||||
if (baseName[1]) {
|
||||
let careerName = baseName[1].split(",")[0]
|
||||
//console.log("CAREER", careerName)
|
||||
let career = await __findItem(careerName, "career")
|
||||
if (career) {
|
||||
globalItemList.push(career)
|
||||
}
|
||||
}
|
||||
// Get the carac values
|
||||
let reg2 = XRegExp(carac_val, 'gi')
|
||||
let resCarac = XRegExp.exec(statString, reg2) // resr contains all carac found
|
||||
@ -259,20 +321,23 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
for (let def of sectionData) {
|
||||
def.regDef = XRegExp(def.toFind, 'gi');
|
||||
let res = XRegExp.exec(statString, def.regDef);
|
||||
if (res) def.index = res.index; // Get the index in the string
|
||||
if (res) {
|
||||
def.index = res.index // Position of the string in the whole statblock
|
||||
def.lore = res.lore // Extraction of the lore, when present
|
||||
} // Get the index in the string
|
||||
//console.log(" Parsing", def.name, res);
|
||||
}
|
||||
// Sort to split position of various substring
|
||||
sectionData.sort(function (a, b) { return a.index - b.index; });
|
||||
|
||||
let globalItemList = [];
|
||||
// Then loop again and process each item type
|
||||
for (let i = 0; i < sectionData.length; i++) {
|
||||
let def = sectionData[i];
|
||||
if (def.index > -1) {
|
||||
let maxIndex = statString.length
|
||||
if (sectionData[i + 1] && sectionData[i + 1].index > -1)
|
||||
if (sectionData[i + 1] && sectionData[i + 1].index > -1) {
|
||||
maxIndex = sectionData[i + 1].index
|
||||
}
|
||||
def.substring = statString.substring(def.index, maxIndex)
|
||||
def.substring = XRegExp.replace(def.substring, def.regDef, "")
|
||||
def.substring = XRegExp.replace(def.substring, regLine1, " ")
|
||||
@ -280,16 +345,17 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
|
||||
// Then create a table of it in termList, with specific sub-parsing rules
|
||||
let termList = XRegExp.split(def.substring, regSep);
|
||||
//console.log("Term list identified", termList)
|
||||
let lastSkillName
|
||||
for (let name of termList) {
|
||||
let itemFound, subres, value;
|
||||
if (def.secondParse) {
|
||||
subres = XRegExp.exec(name, XRegExp(def.secondParse, 'gi'))
|
||||
//console.log("Second pars", def, name, subres)
|
||||
name = subres.name.trim().replace("\n", "").replace("\r", "")
|
||||
name = subres.name.trim().replace("\n", "").replace("\r", "")
|
||||
if (subres.value) {
|
||||
value = XRegExp.replace(subres.value, "(", "")
|
||||
value = XRegExp.replace(value, ")", "")
|
||||
value = XRegExp.replace(value, ")", "")
|
||||
} else {
|
||||
value = 0
|
||||
}
|
||||
@ -301,38 +367,42 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
}
|
||||
catch { }
|
||||
if (itemFound && value && value.length > 0) {
|
||||
if (name.toLowerCase() == 'weapon' || name.toLowerCase() == "bite" || name.toLowerCase() == "tail" ||
|
||||
name.toLowerCase() == 'arme' || name.toLowerCase() == "morsure" || name.toLowerCase() == "queue") {
|
||||
let number = value.match(/\d+/g);
|
||||
if (number && (name.toLowerCase() == 'ranged' || name.toLowerCase() == 'weapon' || name.toLowerCase() == "bite" || name.toLowerCase() == "tail" ||
|
||||
name.toLowerCase() == 'arme' || name.toLowerCase() == "morsure" || name.toLowerCase() == "queue")) {
|
||||
//console.log(itemFound)
|
||||
itemFound.system.specification.value = Number(value) - Math.floor( Number(model.characteristics.s.initial) / 10)
|
||||
number = number[0] // Take first number ....
|
||||
itemFound.system.specification.value = Number(number) - ((name.toLowerCase() == 'ranged') ? 0 : Math.floor(Number(model.characteristics.s.initial) / 10))
|
||||
} else {
|
||||
itemFound.system.specification.value = game.i18n.localize(value)
|
||||
}
|
||||
//itemFound.name += "(" + value + ")"
|
||||
}
|
||||
if (!itemFound)
|
||||
ui.notifications.error("Trait non trouvé, à ajouter manuellement : " + name, { permanent: true })
|
||||
|
||||
|
||||
} else if (def.name == 'skill') {
|
||||
try {
|
||||
itemFound = await __findSkill(name, value);
|
||||
}
|
||||
catch { }
|
||||
let newName = name
|
||||
if (!itemFound && lastSkillName) {
|
||||
name = lastSkillName + " (" + name + ")"
|
||||
itemFound = await __findSkill(name, value);
|
||||
newName = lastSkillName + " (" + name + ")"
|
||||
itemFound = await __findSkill(newName, value)
|
||||
}
|
||||
if (itemFound && subres && value) {
|
||||
itemFound.system.advances.value = Number(value) - Number(model.characteristics[itemFound.system.characteristic.value].initial);
|
||||
}
|
||||
lastSkillName = undefined
|
||||
if ( itemFound?.name?.includes('Trade')) { // useful to handle skills grouping
|
||||
lastSkillName = "Trade"
|
||||
}
|
||||
if ( itemFound?.name?.includes('Lore')) {
|
||||
lastSkillName = "Lore"
|
||||
}
|
||||
if (!itemFound)
|
||||
for (let keySkillGroup of skillGrouping) {
|
||||
if (newName.includes(keySkillGroup)) { // useful to handle skills grouping
|
||||
lastSkillName = keySkillGroup
|
||||
}
|
||||
}
|
||||
if (!itemFound) {
|
||||
ui.notifications.error("Compétence non trouvée, à ajouter manuellement : " + name, { permanent: true })
|
||||
}
|
||||
} else if (def.name == 'talent') {
|
||||
try {
|
||||
itemFound = await __findTalent(name);
|
||||
@ -340,35 +410,62 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
catch { }
|
||||
if (itemFound && subres && value)
|
||||
itemFound.system.advances.value = Number(value);
|
||||
if (!itemFound)
|
||||
if (!itemFound) {
|
||||
ui.notifications.error("Talent non trouvé, à ajouter manuellement : " + name, { permanent: true })
|
||||
} else if (def.name == 'trapping') {
|
||||
try {
|
||||
itemFound = await __findItem(name, "trapping");
|
||||
}
|
||||
catch { }
|
||||
|
||||
} else if (def.name == 'trapping') {
|
||||
itemFound = await __findItem(name, "trapping");
|
||||
if (!itemFound) {
|
||||
itemFound = await __findItem(name, "weapon");
|
||||
}
|
||||
if (!itemFound) {
|
||||
itemFound = await __findItem(name, "armor");
|
||||
}
|
||||
if (!itemFound && name) {
|
||||
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", system: game.system.model.Item.trapping })
|
||||
itemFound.system.trappingType.value = "misc"
|
||||
itemFound = itemFound.toObject()
|
||||
}
|
||||
} else if (def.name == 'spell') {
|
||||
console.log("Found spells section!!!!")
|
||||
try {
|
||||
itemFound = await __findItem(name, "spell");
|
||||
if (name.toLowerCase().includes("armor") || name.toLowerCase().includes("armure") || name.toLowerCase().includes("armour")) {
|
||||
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "armour", system: game.system.model.Item.armor })
|
||||
} else if (name.toLowerCase().includes("weapon") || name.toLowerCase().includes("arme")) {
|
||||
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "weapon", system: game.system.model.Item.weapon })
|
||||
} else {
|
||||
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", system: game.system.model.Item.trapping })
|
||||
itemFound.system.trappingType.value = "misc"
|
||||
if (name.toLowerCase().includes("cloth")) {
|
||||
itemFound.system.trappingType.value = "clothingAccessories"
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
if (!itemFound && name) {
|
||||
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "spell", system: game.system.model.Item.spell })
|
||||
itemFound = itemFound.toObject();
|
||||
}
|
||||
itemFound = itemFound.toObject()
|
||||
}
|
||||
// Searching money stuff
|
||||
for (let mondeyDef of moneyLang) {
|
||||
if (name.toLowerCase().includes(mondeyDef.name)) {
|
||||
let regMoney = XRegExp("(\\d+)\\s*" + mondeyDef.name.trim(), 'gi')
|
||||
let moneyParsed = XRegExp.exec(name.toLowerCase(), regMoney)
|
||||
console.log("Parsing money", name, moneyParsed)
|
||||
moneys[mondeyDef.key] += (moneyParsed && moneyParsed[1]) ? Number(moneyParsed[1]) : 0
|
||||
}
|
||||
}
|
||||
} else if (def.name.includes('spell')) {
|
||||
console.log("Found spells section!!!!", name, def, def.lore || "NO LORE")
|
||||
// Lore management, firs pass
|
||||
if (def.lore) {
|
||||
let newName = name + " (" + def.lore + ")"
|
||||
itemFound = await __findItem(newName, "spell");
|
||||
//console.log("Trying to find ", newName, itemFound)
|
||||
}
|
||||
if (!itemFound) { // If not found with Lore, try without the lore
|
||||
itemFound = await __findItem(name, "spell");
|
||||
}
|
||||
if (!itemFound && name) { // Auto-create the spell name
|
||||
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name + "(To be checked/completed)", type: "spell", system: game.system.model.Item.spell })
|
||||
itemFound = itemFound.toObject();
|
||||
}
|
||||
} else if (def.name == 'mutation') {
|
||||
try {
|
||||
itemFound = await __findItem(name, "mutation");
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
if (itemFound)
|
||||
globalItemList.push(itemFound);
|
||||
}
|
||||
@ -376,14 +473,39 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
}
|
||||
let moneyItems = await game.wfrp4e.utility.allMoneyItems() || [];
|
||||
moneyItems = moneyItems.sort((a, b) => (a.system.coinValue.value > b.system.coinValue.value) ? -1 : 1);
|
||||
moneyItems.forEach(m => m.system.quantity.value = 0)
|
||||
for (let m of moneyItems) {
|
||||
m.system.quantity.value = 0
|
||||
if (m.system.coinValue.value == 1) {
|
||||
m.system.quantity.value += moneys.bp
|
||||
}
|
||||
if (m.system.coinValue.value == 240) {
|
||||
m.system.quantity.value += moneys.gc
|
||||
}
|
||||
if (m.system.coinValue.value == 12) {
|
||||
m.system.quantity.value += moneys.ss
|
||||
}
|
||||
}
|
||||
globalItemList = globalItemList.concat(moneyItems);
|
||||
//console.log("My liste :", globalItemList);
|
||||
//DEBUG : console.log("My liste :", moneyItems, moneys);
|
||||
let name = pnjName;
|
||||
|
||||
let effects = globalItemList.reduce((total, globItem) => total.concat(globItem.effects), [])
|
||||
effects = effects.filter(e => !!e)
|
||||
effects = effects.filter(e => e.transfer)
|
||||
for (let e of effects) {
|
||||
for (let c of e.changes) {
|
||||
// Charac management stuff
|
||||
if (c.key?.includes("characteristics")) {
|
||||
let cKey = c.key.split(".")[2]
|
||||
model.characteristics[cKey].initial -= Number(c.value)
|
||||
}
|
||||
// Move management
|
||||
if (c.key?.includes("move")) {
|
||||
model.details.move.value -= Number(c.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
//DEBUG : console.log("EFFECTS", effects)
|
||||
|
||||
return { name, type, data: model, items: globalItemList, effects }
|
||||
}
|
||||
|
BIN
packs/aides-de-jeu-fr/000346.ldb
Normal file
BIN
packs/aides-de-jeu-fr/000346.ldb
Normal file
Binary file not shown.
0
packs/aides-de-jeu-fr/000463.log
Normal file
0
packs/aides-de-jeu-fr/000463.log
Normal file
1
packs/aides-de-jeu-fr/CURRENT
Normal file
1
packs/aides-de-jeu-fr/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000461
|
0
packs/aides-de-jeu-fr/LOCK
Normal file
0
packs/aides-de-jeu-fr/LOCK
Normal file
7
packs/aides-de-jeu-fr/LOG
Normal file
7
packs/aides-de-jeu-fr/LOG
Normal file
@ -0,0 +1,7 @@
|
||||
2024/02/26-21:07:28.143772 7fc2116006c0 Recovering log #460
|
||||
2024/02/26-21:07:28.153882 7fc2116006c0 Delete type=0 #460
|
||||
2024/02/26-21:07:28.153970 7fc2116006c0 Delete type=3 #459
|
||||
2024/02/26-21:12:40.903599 7fc20a6006c0 Level-0 table #464: started
|
||||
2024/02/26-21:12:40.903663 7fc20a6006c0 Level-0 table #464: 0 bytes OK
|
||||
2024/02/26-21:12:40.909994 7fc20a6006c0 Delete type=0 #462
|
||||
2024/02/26-21:12:40.918070 7fc20a6006c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal!suuYN87Al1ZZWtQQ' @ 0 : 0; will stop at (end)
|
3
packs/aides-de-jeu-fr/LOG.old
Normal file
3
packs/aides-de-jeu-fr/LOG.old
Normal file
@ -0,0 +1,3 @@
|
||||
2024/02/26-14:35:24.808732 7f1336a006c0 Recovering log #457
|
||||
2024/02/26-14:35:24.819197 7f1336a006c0 Delete type=3 #455
|
||||
2024/02/26-14:35:24.819270 7f1336a006c0 Delete type=0 #457
|
BIN
packs/aides-de-jeu-fr/MANIFEST-000461
Normal file
BIN
packs/aides-de-jeu-fr/MANIFEST-000461
Normal file
Binary file not shown.
0
packs/aides-de-jeu-fr/lost/000340.log
Normal file
0
packs/aides-de-jeu-fr/lost/000340.log
Normal file
BIN
packs/antidotes-and-remedes/000347.ldb
Normal file
BIN
packs/antidotes-and-remedes/000347.ldb
Normal file
Binary file not shown.
0
packs/antidotes-and-remedes/000464.log
Normal file
0
packs/antidotes-and-remedes/000464.log
Normal file
1
packs/antidotes-and-remedes/CURRENT
Normal file
1
packs/antidotes-and-remedes/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000462
|
0
packs/antidotes-and-remedes/LOCK
Normal file
0
packs/antidotes-and-remedes/LOCK
Normal file
7
packs/antidotes-and-remedes/LOG
Normal file
7
packs/antidotes-and-remedes/LOG
Normal file
@ -0,0 +1,7 @@
|
||||
2024/02/26-21:07:28.157759 7fc2120006c0 Recovering log #461
|
||||
2024/02/26-21:07:28.169286 7fc2120006c0 Delete type=0 #461
|
||||
2024/02/26-21:07:28.169410 7fc2120006c0 Delete type=3 #460
|
||||
2024/02/26-21:12:40.895951 7fc20a6006c0 Level-0 table #465: started
|
||||
2024/02/26-21:12:40.896011 7fc20a6006c0 Level-0 table #465: 0 bytes OK
|
||||
2024/02/26-21:12:40.903076 7fc20a6006c0 Delete type=0 #463
|
||||
2024/02/26-21:12:40.903401 7fc20a6006c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
3
packs/antidotes-and-remedes/LOG.old
Normal file
3
packs/antidotes-and-remedes/LOG.old
Normal file
@ -0,0 +1,3 @@
|
||||
2024/02/26-14:35:24.823227 7f13374006c0 Recovering log #458
|
||||
2024/02/26-14:35:24.833905 7f13374006c0 Delete type=3 #456
|
||||
2024/02/26-14:35:24.834022 7f13374006c0 Delete type=0 #458
|
BIN
packs/antidotes-and-remedes/MANIFEST-000462
Normal file
BIN
packs/antidotes-and-remedes/MANIFEST-000462
Normal file
Binary file not shown.
0
packs/antidotes-and-remedes/lost/000341.log
Normal file
0
packs/antidotes-and-remedes/lost/000341.log
Normal file
BIN
packs/apothicarium/000346.ldb
Normal file
BIN
packs/apothicarium/000346.ldb
Normal file
Binary file not shown.
0
packs/apothicarium/000463.log
Normal file
0
packs/apothicarium/000463.log
Normal file
1
packs/apothicarium/CURRENT
Normal file
1
packs/apothicarium/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000461
|
0
packs/apothicarium/LOCK
Normal file
0
packs/apothicarium/LOCK
Normal file
7
packs/apothicarium/LOG
Normal file
7
packs/apothicarium/LOG
Normal file
@ -0,0 +1,7 @@
|
||||
2024/02/26-21:07:28.191897 7fc2120006c0 Recovering log #460
|
||||
2024/02/26-21:07:28.201973 7fc2120006c0 Delete type=0 #460
|
||||
2024/02/26-21:07:28.202098 7fc2120006c0 Delete type=3 #459
|
||||
2024/02/26-21:12:40.910164 7fc20a6006c0 Level-0 table #464: started
|
||||
2024/02/26-21:12:40.910208 7fc20a6006c0 Level-0 table #464: 0 bytes OK
|
||||
2024/02/26-21:12:40.917892 7fc20a6006c0 Delete type=0 #462
|
||||
2024/02/26-21:12:40.918122 7fc20a6006c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal!cZtNgayIw2QFhC9u' @ 0 : 0; will stop at (end)
|
3
packs/apothicarium/LOG.old
Normal file
3
packs/apothicarium/LOG.old
Normal file
@ -0,0 +1,3 @@
|
||||
2024/02/26-14:35:24.853616 7f13374006c0 Recovering log #457
|
||||
2024/02/26-14:35:24.863955 7f13374006c0 Delete type=3 #455
|
||||
2024/02/26-14:35:24.864065 7f13374006c0 Delete type=0 #457
|
BIN
packs/apothicarium/MANIFEST-000461
Normal file
BIN
packs/apothicarium/MANIFEST-000461
Normal file
Binary file not shown.
0
packs/apothicarium/lost/000340.log
Normal file
0
packs/apothicarium/lost/000340.log
Normal file
BIN
packs/dons-de-rhya/000346.ldb
Normal file
BIN
packs/dons-de-rhya/000346.ldb
Normal file
Binary file not shown.
0
packs/dons-de-rhya/000463.log
Normal file
0
packs/dons-de-rhya/000463.log
Normal file
1
packs/dons-de-rhya/CURRENT
Normal file
1
packs/dons-de-rhya/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000461
|
0
packs/dons-de-rhya/LOCK
Normal file
0
packs/dons-de-rhya/LOCK
Normal file
7
packs/dons-de-rhya/LOG
Normal file
7
packs/dons-de-rhya/LOG
Normal file
@ -0,0 +1,7 @@
|
||||
2024/02/26-21:07:28.127649 7fc2120006c0 Recovering log #460
|
||||
2024/02/26-21:07:28.138683 7fc2120006c0 Delete type=0 #460
|
||||
2024/02/26-21:07:28.139040 7fc2120006c0 Delete type=3 #459
|
||||
2024/02/26-21:12:40.874720 7fc20a6006c0 Level-0 table #464: started
|
||||
2024/02/26-21:12:40.874773 7fc20a6006c0 Level-0 table #464: 0 bytes OK
|
||||
2024/02/26-21:12:40.881392 7fc20a6006c0 Delete type=0 #462
|
||||
2024/02/26-21:12:40.903312 7fc20a6006c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal!yzw9I0r3hCK7PJnz' @ 0 : 0; will stop at (end)
|
3
packs/dons-de-rhya/LOG.old
Normal file
3
packs/dons-de-rhya/LOG.old
Normal file
@ -0,0 +1,3 @@
|
||||
2024/02/26-14:35:24.793231 7f13374006c0 Recovering log #457
|
||||
2024/02/26-14:35:24.804533 7f13374006c0 Delete type=3 #455
|
||||
2024/02/26-14:35:24.804975 7f13374006c0 Delete type=0 #457
|
BIN
packs/dons-de-rhya/MANIFEST-000461
Normal file
BIN
packs/dons-de-rhya/MANIFEST-000461
Normal file
Binary file not shown.
0
packs/dons-de-rhya/lost/000340.log
Normal file
0
packs/dons-de-rhya/lost/000340.log
Normal file
BIN
packs/drogues-and-sedatifs/000005.ldb
Normal file
BIN
packs/drogues-and-sedatifs/000005.ldb
Normal file
Binary file not shown.
0
packs/drogues-and-sedatifs/000270.log
Normal file
0
packs/drogues-and-sedatifs/000270.log
Normal file
1
packs/drogues-and-sedatifs/CURRENT
Normal file
1
packs/drogues-and-sedatifs/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000268
|
0
packs/drogues-and-sedatifs/LOCK
Normal file
0
packs/drogues-and-sedatifs/LOCK
Normal file
8
packs/drogues-and-sedatifs/LOG
Normal file
8
packs/drogues-and-sedatifs/LOG
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-20:44:40.570183 7f5807fff6c0 Recovering log #266
|
||||
2023/10/01-20:44:40.632484 7f5807fff6c0 Delete type=3 #264
|
||||
2023/10/01-20:44:40.632822 7f5807fff6c0 Delete type=0 #266
|
||||
2023/10/01-20:59:02.099129 7f58067fc6c0 Level-0 table #271: started
|
||||
2023/10/01-20:59:02.099170 7f58067fc6c0 Level-0 table #271: 0 bytes OK
|
||||
2023/10/01-20:59:02.106069 7f58067fc6c0 Delete type=0 #269
|
||||
2023/10/01-20:59:02.112689 7f58067fc6c0 Manual compaction at level-0 from '!items!0LoyZMCXQNdFa2eX' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-20:59:02.112752 7f58067fc6c0 Manual compaction at level-1 from '!items!0LoyZMCXQNdFa2eX' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
8
packs/drogues-and-sedatifs/LOG.old
Normal file
8
packs/drogues-and-sedatifs/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-18:43:22.727478 7f5807fff6c0 Recovering log #262
|
||||
2023/10/01-18:43:22.785389 7f5807fff6c0 Delete type=3 #260
|
||||
2023/10/01-18:43:22.785534 7f5807fff6c0 Delete type=0 #262
|
||||
2023/10/01-18:47:48.446951 7f58067fc6c0 Level-0 table #267: started
|
||||
2023/10/01-18:47:48.447052 7f58067fc6c0 Level-0 table #267: 0 bytes OK
|
||||
2023/10/01-18:47:48.485936 7f58067fc6c0 Delete type=0 #265
|
||||
2023/10/01-18:47:48.524251 7f58067fc6c0 Manual compaction at level-0 from '!items!0LoyZMCXQNdFa2eX' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-18:47:48.524330 7f58067fc6c0 Manual compaction at level-1 from '!items!0LoyZMCXQNdFa2eX' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
BIN
packs/drogues-and-sedatifs/MANIFEST-000268
Normal file
BIN
packs/drogues-and-sedatifs/MANIFEST-000268
Normal file
Binary file not shown.
BIN
packs/pansements-and-cataplasmes/000005.ldb
Normal file
BIN
packs/pansements-and-cataplasmes/000005.ldb
Normal file
Binary file not shown.
0
packs/pansements-and-cataplasmes/000270.log
Normal file
0
packs/pansements-and-cataplasmes/000270.log
Normal file
1
packs/pansements-and-cataplasmes/CURRENT
Normal file
1
packs/pansements-and-cataplasmes/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000268
|
0
packs/pansements-and-cataplasmes/LOCK
Normal file
0
packs/pansements-and-cataplasmes/LOCK
Normal file
8
packs/pansements-and-cataplasmes/LOG
Normal file
8
packs/pansements-and-cataplasmes/LOG
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-20:44:40.636180 7f5a9cdff6c0 Recovering log #266
|
||||
2023/10/01-20:44:40.697598 7f5a9cdff6c0 Delete type=3 #264
|
||||
2023/10/01-20:44:40.697748 7f5a9cdff6c0 Delete type=0 #266
|
||||
2023/10/01-20:59:02.084751 7f58067fc6c0 Level-0 table #271: started
|
||||
2023/10/01-20:59:02.084857 7f58067fc6c0 Level-0 table #271: 0 bytes OK
|
||||
2023/10/01-20:59:02.091434 7f58067fc6c0 Delete type=0 #269
|
||||
2023/10/01-20:59:02.112649 7f58067fc6c0 Manual compaction at level-0 from '!items!25lWFfePrPzoL9qs' @ 72057594037927935 : 1 .. '!items!t9Z8fy9D9bcgBzj0' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-20:59:02.112721 7f58067fc6c0 Manual compaction at level-1 from '!items!25lWFfePrPzoL9qs' @ 72057594037927935 : 1 .. '!items!t9Z8fy9D9bcgBzj0' @ 0 : 0; will stop at (end)
|
8
packs/pansements-and-cataplasmes/LOG.old
Normal file
8
packs/pansements-and-cataplasmes/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-18:43:22.793152 7f5806ffd6c0 Recovering log #262
|
||||
2023/10/01-18:43:22.857219 7f5806ffd6c0 Delete type=3 #260
|
||||
2023/10/01-18:43:22.857359 7f5806ffd6c0 Delete type=0 #262
|
||||
2023/10/01-18:47:48.340716 7f58067fc6c0 Level-0 table #267: started
|
||||
2023/10/01-18:47:48.340770 7f58067fc6c0 Level-0 table #267: 0 bytes OK
|
||||
2023/10/01-18:47:48.376145 7f58067fc6c0 Delete type=0 #265
|
||||
2023/10/01-18:47:48.376399 7f58067fc6c0 Manual compaction at level-0 from '!items!25lWFfePrPzoL9qs' @ 72057594037927935 : 1 .. '!items!t9Z8fy9D9bcgBzj0' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-18:47:48.376460 7f58067fc6c0 Manual compaction at level-1 from '!items!25lWFfePrPzoL9qs' @ 72057594037927935 : 1 .. '!items!t9Z8fy9D9bcgBzj0' @ 0 : 0; will stop at (end)
|
BIN
packs/pansements-and-cataplasmes/MANIFEST-000268
Normal file
BIN
packs/pansements-and-cataplasmes/MANIFEST-000268
Normal file
Binary file not shown.
BIN
packs/plats-dauberges/000346.ldb
Normal file
BIN
packs/plats-dauberges/000346.ldb
Normal file
Binary file not shown.
0
packs/plats-dauberges/000463.log
Normal file
0
packs/plats-dauberges/000463.log
Normal file
1
packs/plats-dauberges/CURRENT
Normal file
1
packs/plats-dauberges/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000461
|
0
packs/plats-dauberges/LOCK
Normal file
0
packs/plats-dauberges/LOCK
Normal file
7
packs/plats-dauberges/LOG
Normal file
7
packs/plats-dauberges/LOG
Normal file
@ -0,0 +1,7 @@
|
||||
2024/02/26-21:07:28.111799 7fc2116006c0 Recovering log #460
|
||||
2024/02/26-21:07:28.122652 7fc2116006c0 Delete type=0 #460
|
||||
2024/02/26-21:07:28.122806 7fc2116006c0 Delete type=3 #459
|
||||
2024/02/26-21:12:40.881541 7fc20a6006c0 Level-0 table #464: started
|
||||
2024/02/26-21:12:40.881586 7fc20a6006c0 Level-0 table #464: 0 bytes OK
|
||||
2024/02/26-21:12:40.887998 7fc20a6006c0 Delete type=0 #462
|
||||
2024/02/26-21:12:40.903343 7fc20a6006c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
3
packs/plats-dauberges/LOG.old
Normal file
3
packs/plats-dauberges/LOG.old
Normal file
@ -0,0 +1,3 @@
|
||||
2024/02/26-14:35:24.778171 7f1336a006c0 Recovering log #457
|
||||
2024/02/26-14:35:24.788678 7f1336a006c0 Delete type=3 #455
|
||||
2024/02/26-14:35:24.788758 7f1336a006c0 Delete type=0 #457
|
BIN
packs/plats-dauberges/MANIFEST-000461
Normal file
BIN
packs/plats-dauberges/MANIFEST-000461
Normal file
Binary file not shown.
0
packs/plats-dauberges/lost/000340.log
Normal file
0
packs/plats-dauberges/lost/000340.log
Normal file
BIN
packs/poisons-and-toxiques/000005.ldb
Normal file
BIN
packs/poisons-and-toxiques/000005.ldb
Normal file
Binary file not shown.
0
packs/poisons-and-toxiques/000270.log
Normal file
0
packs/poisons-and-toxiques/000270.log
Normal file
1
packs/poisons-and-toxiques/CURRENT
Normal file
1
packs/poisons-and-toxiques/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000268
|
0
packs/poisons-and-toxiques/LOCK
Normal file
0
packs/poisons-and-toxiques/LOCK
Normal file
8
packs/poisons-and-toxiques/LOG
Normal file
8
packs/poisons-and-toxiques/LOG
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-20:44:40.701549 7f5806ffd6c0 Recovering log #266
|
||||
2023/10/01-20:44:40.764544 7f5806ffd6c0 Delete type=3 #264
|
||||
2023/10/01-20:44:40.764684 7f5806ffd6c0 Delete type=0 #266
|
||||
2023/10/01-20:59:02.106210 7f58067fc6c0 Level-0 table #271: started
|
||||
2023/10/01-20:59:02.106249 7f58067fc6c0 Level-0 table #271: 0 bytes OK
|
||||
2023/10/01-20:59:02.112490 7f58067fc6c0 Delete type=0 #269
|
||||
2023/10/01-20:59:02.112706 7f58067fc6c0 Manual compaction at level-0 from '!items!7NSF4hTW0QUkYCnZ' @ 72057594037927935 : 1 .. '!items!xobXk8u7SVQ49eP8' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-20:59:02.112767 7f58067fc6c0 Manual compaction at level-1 from '!items!7NSF4hTW0QUkYCnZ' @ 72057594037927935 : 1 .. '!items!xobXk8u7SVQ49eP8' @ 0 : 0; will stop at (end)
|
8
packs/poisons-and-toxiques/LOG.old
Normal file
8
packs/poisons-and-toxiques/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-18:43:22.865435 7f58077fe6c0 Recovering log #262
|
||||
2023/10/01-18:43:22.924289 7f58077fe6c0 Delete type=3 #260
|
||||
2023/10/01-18:43:22.924448 7f58077fe6c0 Delete type=0 #262
|
||||
2023/10/01-18:47:48.407565 7f58067fc6c0 Level-0 table #267: started
|
||||
2023/10/01-18:47:48.407608 7f58067fc6c0 Level-0 table #267: 0 bytes OK
|
||||
2023/10/01-18:47:48.446683 7f58067fc6c0 Delete type=0 #265
|
||||
2023/10/01-18:47:48.524233 7f58067fc6c0 Manual compaction at level-0 from '!items!7NSF4hTW0QUkYCnZ' @ 72057594037927935 : 1 .. '!items!xobXk8u7SVQ49eP8' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-18:47:48.524299 7f58067fc6c0 Manual compaction at level-1 from '!items!7NSF4hTW0QUkYCnZ' @ 72057594037927935 : 1 .. '!items!xobXk8u7SVQ49eP8' @ 0 : 0; will stop at (end)
|
BIN
packs/poisons-and-toxiques/MANIFEST-000268
Normal file
BIN
packs/poisons-and-toxiques/MANIFEST-000268
Normal file
Binary file not shown.
BIN
packs/potions-and-decoctions/000005.ldb
Normal file
BIN
packs/potions-and-decoctions/000005.ldb
Normal file
Binary file not shown.
0
packs/potions-and-decoctions/000270.log
Normal file
0
packs/potions-and-decoctions/000270.log
Normal file
1
packs/potions-and-decoctions/CURRENT
Normal file
1
packs/potions-and-decoctions/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000268
|
0
packs/potions-and-decoctions/LOCK
Normal file
0
packs/potions-and-decoctions/LOCK
Normal file
8
packs/potions-and-decoctions/LOG
Normal file
8
packs/potions-and-decoctions/LOG
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-20:44:40.768234 7f58077fe6c0 Recovering log #266
|
||||
2023/10/01-20:44:40.821657 7f58077fe6c0 Delete type=3 #264
|
||||
2023/10/01-20:44:40.821800 7f58077fe6c0 Delete type=0 #266
|
||||
2023/10/01-20:59:02.112885 7f58067fc6c0 Level-0 table #271: started
|
||||
2023/10/01-20:59:02.112924 7f58067fc6c0 Level-0 table #271: 0 bytes OK
|
||||
2023/10/01-20:59:02.119967 7f58067fc6c0 Delete type=0 #269
|
||||
2023/10/01-20:59:02.147587 7f58067fc6c0 Manual compaction at level-0 from '!items!0iQg3XJmxAAbFief' @ 72057594037927935 : 1 .. '!items!uwcMzO6u0rnhqLdf' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-20:59:02.147752 7f58067fc6c0 Manual compaction at level-1 from '!items!0iQg3XJmxAAbFief' @ 72057594037927935 : 1 .. '!items!uwcMzO6u0rnhqLdf' @ 0 : 0; will stop at (end)
|
8
packs/potions-and-decoctions/LOG.old
Normal file
8
packs/potions-and-decoctions/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2023/10/01-18:43:22.932395 7f5a9cdff6c0 Recovering log #262
|
||||
2023/10/01-18:43:22.998115 7f5a9cdff6c0 Delete type=3 #260
|
||||
2023/10/01-18:43:22.998245 7f5a9cdff6c0 Delete type=0 #262
|
||||
2023/10/01-18:47:48.376668 7f58067fc6c0 Level-0 table #267: started
|
||||
2023/10/01-18:47:48.376711 7f58067fc6c0 Level-0 table #267: 0 bytes OK
|
||||
2023/10/01-18:47:48.407379 7f58067fc6c0 Delete type=0 #265
|
||||
2023/10/01-18:47:48.524212 7f58067fc6c0 Manual compaction at level-0 from '!items!0iQg3XJmxAAbFief' @ 72057594037927935 : 1 .. '!items!uwcMzO6u0rnhqLdf' @ 0 : 0; will stop at (end)
|
||||
2023/10/01-18:47:48.524283 7f58067fc6c0 Manual compaction at level-1 from '!items!0iQg3XJmxAAbFief' @ 72057594037927935 : 1 .. '!items!uwcMzO6u0rnhqLdf' @ 0 : 0; will stop at (end)
|
BIN
packs/potions-and-decoctions/MANIFEST-000268
Normal file
BIN
packs/potions-and-decoctions/MANIFEST-000268
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user