Fix: sorts contenant des apostrophes
Le caractère utilisé dans le texte n'est pas l'apostrophe simple informatique (utilisé dans les compendiums), et pas transformé par toLowerCaseNoAccent...
This commit is contained in:
parent
417db33752
commit
57d35a0f9a
@ -22,8 +22,8 @@ const compParser = {
|
|||||||
entite: XREGEXP_COMP_CREATURE
|
entite: XREGEXP_COMP_CREATURE
|
||||||
}
|
}
|
||||||
|
|
||||||
const XREGEXP_SORT_VOIE = "[OHNT\\/]+"
|
const XREGEXP_SORT_VOIE = "(?<voies>[OHNT](\\/[OHNT])*)"
|
||||||
const XREGEXP_SORT_NAME = "(?<name>[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-']+)"
|
const XREGEXP_SORT_NAME = "(?<name>[^\\(]+)"
|
||||||
const XREGEXP_SORT_CASE = "\\((?<case>[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+)\\)";
|
const XREGEXP_SORT_CASE = "\\((?<case>[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+)\\)";
|
||||||
|
|
||||||
const XREGEXP_SORT = "(" + XREGEXP_SORT_VOIE
|
const XREGEXP_SORT = "(" + XREGEXP_SORT_VOIE
|
||||||
@ -216,7 +216,7 @@ export class RdDStatBlockParser {
|
|||||||
|
|
||||||
|
|
||||||
if (type == "personnage") {
|
if (type == "personnage") {
|
||||||
await RdDStatBlockParser.parseHautReve(statString, items);
|
await RdDStatBlockParser.parseHautReve(statString, actorData, items);
|
||||||
RdDStatBlockParser.parsePersonnage(statString, actorData);
|
RdDStatBlockParser.parsePersonnage(statString, actorData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ export class RdDStatBlockParser {
|
|||||||
console.log(actorData);
|
console.log(actorData);
|
||||||
}
|
}
|
||||||
|
|
||||||
static async parseHautReve(statString, items) {
|
static async parseHautReve(statString, actorData, items) {
|
||||||
let hautRevant = false;
|
let hautRevant = false;
|
||||||
// Attemp to detect spell
|
// Attemp to detect spell
|
||||||
let sorts = await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-oniros");
|
let sorts = await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-oniros");
|
||||||
@ -236,9 +236,10 @@ export class RdDStatBlockParser {
|
|||||||
sorts = sorts.concat(await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-narcos"));
|
sorts = sorts.concat(await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-narcos"));
|
||||||
sorts = sorts.concat(await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-thanatos"));
|
sorts = sorts.concat(await SystemCompendiums.getWorldOrCompendiumItems("sort", "sorts-thanatos"));
|
||||||
|
|
||||||
XRegExp.forEach(statString, XRegExp(XREGEXP_SORT, 'giu'),
|
XRegExp.forEach(statString, XRegExp(XREGEXP_SORT, 'gu' /* keep case sensitive to match the spell draconic skill */),
|
||||||
function (matchSort, i) {
|
function (matchSort, i) {
|
||||||
let sort = sorts.find(s => Grammar.equalsInsensitive(s.name, matchSort.name));
|
const sortName = Grammar.toLowerCaseNoAccent(matchSort.name).trim().replace("’", "'");
|
||||||
|
let sort = sorts.find(s => Grammar.toLowerCaseNoAccent(s.name) == sortName)
|
||||||
if (sort) {
|
if (sort) {
|
||||||
hautRevant = true;
|
hautRevant = true;
|
||||||
sort = sort.toObject();
|
sort = sort.toObject();
|
||||||
@ -247,6 +248,10 @@ export class RdDStatBlockParser {
|
|||||||
}
|
}
|
||||||
items.push(sort);
|
items.push(sort);
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
ui.notifications.warn(`Impossible de trouver le sort ${matchSort.name} / ${sortName}`)
|
||||||
|
console.warn(`Impossible de trouver le sort ${matchSort.name} / ${sortName}`)
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (hautRevant) {
|
if (hautRevant) {
|
||||||
|
Loading…
Reference in New Issue
Block a user