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:
Vincent Vandemeulebrouck 2024-12-04 01:43:23 +01:00
parent 417db33752
commit 57d35a0f9a

View File

@ -22,8 +22,8 @@ const compParser = {
entite: XREGEXP_COMP_CREATURE
}
const XREGEXP_SORT_VOIE = "[OHNT\\/]+"
const XREGEXP_SORT_NAME = "(?<name>[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-']+)"
const XREGEXP_SORT_VOIE = "(?<voies>[OHNT](\\/[OHNT])*)"
const XREGEXP_SORT_NAME = "(?<name>[^\\(]+)"
const XREGEXP_SORT_CASE = "\\((?<case>[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+)\\)";
const XREGEXP_SORT = "(" + XREGEXP_SORT_VOIE
@ -216,7 +216,7 @@ export class RdDStatBlockParser {
if (type == "personnage") {
await RdDStatBlockParser.parseHautReve(statString, items);
await RdDStatBlockParser.parseHautReve(statString, actorData, items);
RdDStatBlockParser.parsePersonnage(statString, actorData);
}
@ -228,7 +228,7 @@ export class RdDStatBlockParser {
console.log(actorData);
}
static async parseHautReve(statString, items) {
static async parseHautReve(statString, actorData, items) {
let hautRevant = false;
// Attemp to detect spell
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-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) {
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) {
hautRevant = true;
sort = sort.toObject();
@ -247,6 +248,10 @@ export class RdDStatBlockParser {
}
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) {