forked from public/foundryvtt-wh4-lang-fr-fr
Divers fixes
This commit is contained in:
@ -37,9 +37,10 @@ const fr_carac = 'm\\s+ws\\s+bs\\s+s\\s+t\\s+i\\s+agi?\\s+dex\\s+int\\s+\\wp\\s+
|
||||
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]+)';
|
||||
let sectionData = [
|
||||
{ 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: "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 }
|
||||
];
|
||||
let regSep = XRegExp('\\s*,\\s*', 'gi'); // Term separator, with auto trim
|
||||
@ -152,6 +153,13 @@ async function __findTalent(talentName) {
|
||||
throw "Could not find talent (or specialization of) " + talentName + " in compendium or world"
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
function __patchName ( name) {
|
||||
if (name.toLowerCase == 'magic sense')
|
||||
name = 'Magical Sense';
|
||||
return name;
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
export default async function statParserFR(statString, type = "npc") {
|
||||
let model = duplicate(game.system.model.Actor[type]);
|
||||
@ -225,17 +233,24 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
let itemFound, subres, value;
|
||||
if (def.secondParse) {
|
||||
subres = XRegExp.exec(name, XRegExp(def.secondParse, 'gi'));
|
||||
name = subres.name.trim();
|
||||
name = subres.name.trim().replace("\n", "").replace("\r", "");
|
||||
value = XRegExp.replace(subres.value, "(", "");
|
||||
value = XRegExp.replace(subres.value, ")", "");
|
||||
}
|
||||
}
|
||||
name = __patchName(name);
|
||||
if (def.name == 'trait') {
|
||||
try {
|
||||
itemFound = await __findItem(name, "trait");
|
||||
}
|
||||
catch { }
|
||||
if (itemFound)
|
||||
itemFound = itemFound.toObject();
|
||||
if (itemFound && subres && subres.value.length > 0) {
|
||||
itemFound.data.data.specification.value = game.i18n.localize(value);
|
||||
if (name.toLowerCase == 'weapon') {
|
||||
itemFound.data.specification.value = Number(value) - Math.floor( Number(model.characteristics.s.initial) / 10);
|
||||
} else {
|
||||
itemFound.data.specification.value = game.i18n.localize(value);
|
||||
}
|
||||
}
|
||||
if (!itemFound)
|
||||
ui.notifications.error("Trait non trouvé, à ajouter manuellement : " + name, { permanent: true })
|
||||
@ -244,8 +259,10 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
itemFound = await __findSkill(name, value);
|
||||
}
|
||||
catch { }
|
||||
if (itemFound)
|
||||
itemFound = itemFound.toObject();
|
||||
if (itemFound && subres && value) {
|
||||
itemFound.data.data.advances.value = Number(value) - Number(model.characteristics[itemFound.data.data.characteristic.value].initial);
|
||||
itemFound.data.advances.value = Number(value) - Number(model.characteristics[itemFound.data.characteristic.value].initial);
|
||||
}
|
||||
if (!itemFound)
|
||||
ui.notifications.error("Compétence non trouvée, à ajouter manuellement : " + name, { permanent: true })
|
||||
@ -254,8 +271,10 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
itemFound = await __findTalent(name);
|
||||
}
|
||||
catch { }
|
||||
if (itemFound)
|
||||
itemFound = itemFound.toObject();
|
||||
if (itemFound && subres && value)
|
||||
itemFound.data.data.advances.value = Number(value);
|
||||
itemFound.data.advances.value = Number(value);
|
||||
if (!itemFound)
|
||||
ui.notifications.error("Talent non trouvé, à ajouter manuellement : " + name, { permanent: true })
|
||||
} else if (def.name == 'trapping') {
|
||||
@ -263,11 +282,21 @@ export default async function statParserFR(statString, type = "npc") {
|
||||
itemFound = await __findItem(name, "trapping");
|
||||
}
|
||||
catch { }
|
||||
if (!itemFound) {
|
||||
if (!itemFound && name) {
|
||||
itemFound = new ItemWfrp4e({ img: "systems/wfrp4e/icons/blank.png", name: name, type: "trapping", data: game.system.model.Item.trapping })
|
||||
itemFound.data.data.trappingType.value = "misc"
|
||||
}
|
||||
if (itemFound)
|
||||
itemFound = itemFound.toObject();
|
||||
} else if (def.name == 'mutation') {
|
||||
try {
|
||||
itemFound = await __findItem(name, "mutation");
|
||||
}
|
||||
catch { }
|
||||
if (itemFound)
|
||||
itemFound = itemFound.toObject();
|
||||
}
|
||||
|
||||
if (itemFound)
|
||||
globalItemList.push(itemFound);
|
||||
}
|
||||
|
Reference in New Issue
Block a user