From 8406c8434ae00de0b2768a17cf553f0406bb299d Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 Jan 2025 19:24:21 +0100 Subject: [PATCH 1/7] =?UTF-8?q?Fix:=20lien=20jets=20de=20d=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - les boutons pour envoyer dans le tchat sont affichés - les jets de carac utilisent bien les compétences et difficulté --- module/apps/rdd-text-roll-editor.js | 8 ++++---- module/apps/textroll/text-roll-carac-competence.js | 5 ++++- .../apps/textroll/link-text-roll-carac-competence.hbs | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/module/apps/rdd-text-roll-editor.js b/module/apps/rdd-text-roll-editor.js index 1cadfbfa..33463eca 100644 --- a/module/apps/rdd-text-roll-editor.js +++ b/module/apps/rdd-text-roll-editor.js @@ -9,16 +9,17 @@ import { TextRollManager } from "./textroll/text-roll-formatter.js"; const TEXT_ROLL_MANAGERS = [ new TextRollAlchimie(), new TextRollCaracCompetence(), - new TextRollFormula()]; + new TextRollFormula()] export class RdDTextEditor { static registerChatCallbacks(html) { html.on("click", '.roll-text', async event => await RdDTextEditor.rollText(event)) } - static async enrichHTML(text, object, options = {}) { + static async enrichHTML(text, object, options = {showlink:true}) { const context = { - text, object, + text, + object, options, competences: await SystemCompendiums.getCompetences(ACTOR_TYPES.personnage), } @@ -29,7 +30,6 @@ export class RdDTextEditor { context.text = await manager.onReplaceRoll(context); } - // TEXT_ROLL_MANAGERS.forEach(async manager => await RdDTextEditor._applyReplaceAll(manager, context)) return await TextEditor.enrichHTML(context.text, { relativeTo: object, secrets: object?.isOwner, diff --git a/module/apps/textroll/text-roll-carac-competence.js b/module/apps/textroll/text-roll-carac-competence.js index 1f0f23c2..c7511696 100644 --- a/module/apps/textroll/text-roll-carac-competence.js +++ b/module/apps/textroll/text-roll-carac-competence.js @@ -5,7 +5,10 @@ import { RdDItemCompetence } from "../../item-competence.js"; import { RdDUtility } from "../../rdd-utility.js"; import { TextRollManager } from "./text-roll-formatter.js"; -const REGEXP_ROLL_CARAC_COMP = "(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+)(\\/(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+))?(/(?[\\+\\-]?\\d+))?" +const REGECP_CARAC = "(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+)" +const REGEXP_COMP = "(\\/(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+))?" +const REGEXP_DIFF = "(/(?[\\+\\-]?\\d+))?" +const REGEXP_ROLL_CARAC_COMP = REGECP_CARAC + REGEXP_COMP + REGEXP_DIFF const XREGEXP_ROLL_CARAC_COMP = XRegExp("@roll\\[" + REGEXP_ROLL_CARAC_COMP + "\\]", 'giu') /** diff --git a/templates/apps/textroll/link-text-roll-carac-competence.hbs b/templates/apps/textroll/link-text-roll-carac-competence.hbs index af0528c8..212628a7 100644 --- a/templates/apps/textroll/link-text-roll-carac-competence.hbs +++ b/templates/apps/textroll/link-text-roll-carac-competence.hbs @@ -2,8 +2,8 @@ data-code="{{param.code}}" data-json="{{json-stringify param}}" data-carac-code="{{param.carac.code}}" - {{#if competence}}data-competence="{{param.competence}}"{{/if~}} - {{#if diff}}data-diff="{{param.diff}}"{{/if~}}> + {{#if param.competence}}data-competence="{{param.competence}}"{{/if~}} + {{#if param.diff}}data-diff="{{param.diff}}"{{/if~}}> {{~uppercase param.carac.label~}} {{#if param.competence}} / {{upperFirst param.competence}}{{/if~}} From efdffd171c861c1ad05a422a21d041805e336b9d Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 Jan 2025 19:46:55 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Support=20de=20difficult=C3=A9s=20al=C3=A9a?= =?UTF-8?q?toires?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Par exemple: `@roll[vue/vigil/-1d6]` pour "VUE / Vigilance à -1d6" --- .../apps/textroll/text-roll-carac-competence.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/module/apps/textroll/text-roll-carac-competence.js b/module/apps/textroll/text-roll-carac-competence.js index c7511696..6441a2a8 100644 --- a/module/apps/textroll/text-roll-carac-competence.js +++ b/module/apps/textroll/text-roll-carac-competence.js @@ -7,7 +7,8 @@ import { TextRollManager } from "./text-roll-formatter.js"; const REGECP_CARAC = "(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+)" const REGEXP_COMP = "(\\/(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+))?" -const REGEXP_DIFF = "(/(?[\\+\\-]?\\d+))?" +const REGEXP_DIFF = "(/(?[\\+\\-]?\\d+(d\\d+)?))?" +const REGEX_DICE_DIFF = /[\+\-]?\d+d\d+/; const REGEXP_ROLL_CARAC_COMP = REGECP_CARAC + REGEXP_COMP + REGEXP_DIFF const XREGEXP_ROLL_CARAC_COMP = XRegExp("@roll\\[" + REGEXP_ROLL_CARAC_COMP + "\\]", 'giu') @@ -29,12 +30,23 @@ export class TextRollCaracCompetence { const caracCode = node.data('carac-code') if (caracCode) { const competence = node.data('competence') - const diff = node.data('diff') + const diff = await this.calculDiff(node) const actors = this.getSelectedActors(actor) actors.forEach(async it => await this.doRoll(it, caracCode, competence, diff)) } } + async calculDiff(node) { + const diff = node.data('diff') ?? 0 + if (diff.match(REGEX_DICE_DIFF)) { + const roll = new Roll(diff) + await roll.evaluate() + await roll.toMessage({flavor: `La difficulté de ${diff} a donné ${roll.total}`}) + return roll.total + } + return diff + } + async doRoll(actor, caracCode, competence, diff) { caracCode = actor.mapCarac(caracCode) if (competence) { From de9d3bbb485424fbaa77ab9ab1d56d9c8973747b Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 Jan 2025 20:10:11 +0100 Subject: [PATCH 3/7] =?UTF-8?q?Difficult=C3=A9s=20al=C3=A9atoires=20dans?= =?UTF-8?q?=20les=20maladresses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sort_D_rision_7q0zFbBhxYdf6OZ2.yml | 4 ++-- .../tables_Maladresse_arm__pXYVWRlCftWdwsBP.yml | 8 ++++---- ...ables_Maladresses_non_arm__7Py520wVyrjAgS9j.yml | 14 ++++++-------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/packs_src/sorts-hypnos/sort_D_rision_7q0zFbBhxYdf6OZ2.yml b/packs_src/sorts-hypnos/sort_D_rision_7q0zFbBhxYdf6OZ2.yml index 9beab6ca..251de16d 100644 --- a/packs_src/sorts-hypnos/sort_D_rision_7q0zFbBhxYdf6OZ2.yml +++ b/packs_src/sorts-hypnos/sort_D_rision_7q0zFbBhxYdf6OZ2.yml @@ -18,8 +18,8 @@ system:

Si un personnage ainsi rendu dérisoire participe à un combat, il peut tenter une fois par round de lancer une plaisanterie en guise d’attaque - (tout en esquivant/parant normalement). Il joue pour cela @roll[APPARENCE/Comédie] - à @roll[-1d4] (ce d4 résume les conditions ponctuelles plus ou moins propices, et + (tout en esquivant/parant normalement). Il joue pour cela @roll[APPARENCE/Comédie/-1d4] + (ce d4 résume les conditions ponctuelles plus ou moins propices, et il est en fait soustrait du bonus de +4 conféré par le sort). Puis selon la réussite, on obtient un ajustement :

diff --git a/packs_src/tables-diverses/tables_Maladresse_arm__pXYVWRlCftWdwsBP.yml b/packs_src/tables-diverses/tables_Maladresse_arm__pXYVWRlCftWdwsBP.yml index b6dcd07f..205e3a8a 100644 --- a/packs_src/tables-diverses/tables_Maladresse_arm__pXYVWRlCftWdwsBP.yml +++ b/packs_src/tables-diverses/tables_Maladresse_arm__pXYVWRlCftWdwsBP.yml @@ -23,7 +23,7 @@ results: type: text text: >- Ami bousculé : Le compagnon bousculé doit réussir - @roll[Empathie/Vigilance] à @roll[-1d6] ou être en + @roll[Empathie/Vigilance/-1d6] ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 @@ -91,7 +91,7 @@ results: flags: {} type: text text: >- - Déséquilibré : Réussir @roll[Agilité/Vigilance] à @roll[-1d6] ou être en demi-surprise + Déséquilibré : Réussir @roll[Agilité/Vigilance/-1d6] ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 @@ -125,7 +125,7 @@ results: flags: {} type: text text: >- - Déséquilibré : Réussir @roll[Agilité/Vigilance] à @roll[-1d6] ou être en demi-surprise + Déséquilibré : Réussir @roll[Agilité/Vigilance/-1d6] ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 @@ -194,7 +194,7 @@ results: type: text text: >- Ami bousculé : Le compagnon bousculé doit réussir - @roll[Empathie/Vigilance] à @roll[-1d6] ou être en + @roll[Empathie/Vigilance/-1d6] ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 diff --git a/packs_src/tables-diverses/tables_Maladresses_non_arm__7Py520wVyrjAgS9j.yml b/packs_src/tables-diverses/tables_Maladresses_non_arm__7Py520wVyrjAgS9j.yml index 4e5efc79..f67785e4 100644 --- a/packs_src/tables-diverses/tables_Maladresses_non_arm__7Py520wVyrjAgS9j.yml +++ b/packs_src/tables-diverses/tables_Maladresses_non_arm__7Py520wVyrjAgS9j.yml @@ -23,7 +23,7 @@ results: type: text text: >- Ami bousculé : Le compagnon bousculé doit réussir - @roll[Empathie/Vigilance] à @roll[-1d6] ou être en + @roll[Empathie/Vigilance/-1d6] ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 @@ -57,9 +57,8 @@ results: flags: {} type: text text: >- - Déséquilibré : Réussir @roll[Agilité/Vigilance] - à @roll[-1d6] ou être en demi-surprise - jusqu’à la fin du round suivant. + Déséquilibré : Réussir @roll[Agilité/Vigilance/-1d6] + ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 range: @@ -92,9 +91,8 @@ results: flags: {} type: text text: >- - Déséquilibré : Réussir @roll[Agilité/Vigilance] - à @roll[-1d6] ou être en demi-surprise - jusqu’à la fin du round suivant. + Déséquilibré : Réussir @roll[Agilité/Vigilance/-1d6] + ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 range: @@ -128,7 +126,7 @@ results: type: text text: >- Ami bousculé : Le compagnon bousculé doit réussir - @roll[Empathie/Vigilance] à @roll[-1d6] ou être en + @roll[Empathie/Vigilance/-1d6] ou être en demi-surprise jusqu’à la fin du round suivant. img: icons/svg/d20-black.svg weight: 1 From c733644f3a6143827eca8c9d28f7e0dedc6a98d3 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 Jan 2025 21:44:02 +0100 Subject: [PATCH 4/7] =?UTF-8?q?Jets=20de=20comp=C3=A9tence=20avec=20carac?= =?UTF-8?q?=20impos=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fonctionne maintenant correctement Pour les créatures/entitées: on fait au mieux, mais ça ne correspond pas forcément bien, car les carac/compétences ne correspondent pas toujours --- module/actor.js | 20 ------------------- module/actor/base-actor-reve.js | 19 ++++++++++++++++++ module/actor/creature.js | 10 ++++++---- module/actor/entite.js | 1 + .../textroll/text-roll-carac-competence.js | 11 ++++------ module/rdd-roll.js | 12 ++++++----- 6 files changed, 37 insertions(+), 36 deletions(-) diff --git a/module/actor.js b/module/actor.js index ec2ac7cf..f107bc3e 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1850,26 +1850,6 @@ export class RdDActor extends RdDBaseActorSang { return undefined; } - async rollCaracCompetence(caracName, compName, diff, options = { title: "" }) { - RdDEmpoignade.checkEmpoignadeEnCours(this) - const competence = this.getCompetence(compName); - await this.openRollDialog({ - name: 'jet-competence', - label: 'Jet ' + Grammar.apostrophe('de', competence.name), - template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-competence.html', - rollData: { - alias: this.getAlias(), - carac: this.system.carac, - selectedCarac: this.getCaracByName(caracName), - selectedCaracName: caracName, - diffLibre: diff, - competence: competence, - show: { title: options?.title ?? '' } - }, - callbackAction: r => this.$onRollCompetence(r, options) - }); - } - /* -------------------------------------------- */ async rollTache(id, options = {}) { RdDEmpoignade.checkEmpoignadeEnCours(this) diff --git a/module/actor/base-actor-reve.js b/module/actor/base-actor-reve.js index ae40b532..b920cf8a 100644 --- a/module/actor/base-actor-reve.js +++ b/module/actor/base-actor-reve.js @@ -294,6 +294,25 @@ export class RdDBaseActorReve extends RdDBaseActor { createCallbackAppelAuMoral() { return this.createEmptyCallback(); } async _onCloseRollDialog(html) { } + async rollCaracCompetence(caracName, compName, diff, options = { title: "" }) { + RdDEmpoignade.checkEmpoignadeEnCours(this) + const competence = this.getCompetence(compName); + await this.openRollDialog({ + name: 'jet-competence', + label: competence? 'Jet ' + Grammar.apostrophe('de', competence.name) : `Jet sans compétence (${compName})`, + template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-competence.html', + rollData: { + alias: this.getAlias(), + carac: this.system.carac, + selectedCarac: this.getCaracByName(caracName), + selectedCaracName: caracName, + diffLibre: diff, + competence: competence, + show: { title: options?.title ?? '' } + }, + callbackAction: r => this.$onRollCompetence(r, options) + }); + } /** * Méthode pour faire un jet prédéterminer sans ouvrir la fenêtre de dialogue * @param {*} caracName code ou label de la caractéristique. On peut utiliser 'intel' pour Intellect. diff --git a/module/actor/creature.js b/module/actor/creature.js index 78d3f0cc..8f65041f 100644 --- a/module/actor/creature.js +++ b/module/actor/creature.js @@ -36,12 +36,14 @@ export class RdDCreature extends RdDBaseActorSang { mapCarac(caracCode) { switch (caracCode) { - case 'vue': case 'ouie': - case 'odoratgout': - case 'empathie': + case 'vue': case 'ouie': case 'odoratgout': case 'empathie': case 'perception': return 'perception' + case 'agilite': + return 'force' + case 'force': case 'constitution': case 'taille': case 'reve': case 'volonte': + return caracCode } - return caracCode + return undefined } } diff --git a/module/actor/entite.js b/module/actor/entite.js index ee6e480b..eea0b9cb 100644 --- a/module/actor/entite.js +++ b/module/actor/entite.js @@ -121,6 +121,7 @@ export class RdDEntite extends RdDBaseActorReve { mapCarac(caracCode) { switch (caracCode) { case 'taille': + case 'reve': return caracCode } return 'reve' diff --git a/module/apps/textroll/text-roll-carac-competence.js b/module/apps/textroll/text-roll-carac-competence.js index 6441a2a8..71349c63 100644 --- a/module/apps/textroll/text-roll-carac-competence.js +++ b/module/apps/textroll/text-roll-carac-competence.js @@ -41,7 +41,7 @@ export class TextRollCaracCompetence { if (diff.match(REGEX_DICE_DIFF)) { const roll = new Roll(diff) await roll.evaluate() - await roll.toMessage({flavor: `La difficulté de ${diff} a donné ${roll.total}`}) + await roll.toMessage({ flavor: `La difficulté de ${diff} a donné ${roll.total}` }) return roll.total } return diff @@ -49,17 +49,14 @@ export class TextRollCaracCompetence { async doRoll(actor, caracCode, competence, diff) { caracCode = actor.mapCarac(caracCode) - if (competence) { - if (actor.type == ACTOR_TYPES.personnage) { + if (caracCode) { + if (competence) { await actor.rollCaracCompetence(caracCode, competence, diff) } else { - await actor.doRollCaracCompetence(caracCode, competence, diff) + await actor.rollCarac(caracCode, { diff }) } } - else { - await actor.rollCarac(caracCode, { diff }) - } } getSelectedActors(actor) { diff --git a/module/rdd-roll.js b/module/rdd-roll.js index b76e64b0..c6d2f029 100644 --- a/module/rdd-roll.js +++ b/module/rdd-roll.js @@ -8,6 +8,7 @@ import { RdDCarac } from "./rdd-carac.js"; import { RdDResolutionTable } from "./rdd-resolution-table.js"; import { ReglesOptionnelles } from "./settings/regles-optionnelles.js"; import { Grammar } from "./grammar.js"; +import { ACTOR_TYPES } from "./item.js"; /** * Extend the base Dialog entity to select roll parameters @@ -62,7 +63,7 @@ export class RdDRoll extends Dialog { forceDiceResult: -1 } // Mini patch :Ajout du rêve actuel - if (actor.system.type == "personnage") { + if (actor.type == ACTOR_TYPES.personnage) { defaultRollData.carac["reve-actuel"] = actor.system.reve.reve } @@ -131,11 +132,12 @@ export class RdDRoll extends Dialog { console.log('RdDRoll.activateListeners', this.rollData); // Update html, according to rollData - if (this.rollData.competence) { - const defaut_carac = this.rollData.competence.system.defaut_carac + if (!this.rollData.selectedCarac && this.rollData.competence) { // Set the default carac from the competence item - this.rollData.selectedCarac = this.rollData.carac[defaut_carac]; - this.html.find("[name='carac']").val(defaut_carac); + this.rollData.selectedCarac = this.rollData.carac[this.actor.mapCarac(this.rollData.competence.system.defaut_carac)] + } + if (this.rollData.selectedCarac) { + this.html.find("[name='carac']").val(RdDCarac.caracDetails(this.rollData.selectedCarac.label).code) } if (this.rollData.selectedSort) { this.setSelectedSort(this.rollData.selectedSort); From 90d096a6dfa20c46317540baa6472b3af395ad5d Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 Jan 2025 22:03:18 +0100 Subject: [PATCH 5/7] Utilisation des class au lieu d'id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Un seul fichier oublié sur un changement précédent (pas de vrai sauvegarde dans VSCode...) --- templates/chat-demande-attaque-particuliere.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/chat-demande-attaque-particuliere.html b/templates/chat-demande-attaque-particuliere.html index 77456709..031d4c5b 100644 --- a/templates/chat-demande-attaque-particuliere.html +++ b/templates/chat-demande-attaque-particuliere.html @@ -2,19 +2,19 @@

{{alias}} réussit une attaque particulière!

{{#if isForce}}
-
+ Attaquer en Force {{/if}} {{#if isRapide}}
- + Attaquer en Rapidité {{/if}} {{#if isFinesse}}
- + Attaquer en Finesse {{/if}} From 6de19eb35728718de41c6c0fa1a40c7126b0b1c8 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 Jan 2025 22:27:13 +0100 Subject: [PATCH 6/7] =?UTF-8?q?Convertir=20tous=20les=20jets=20de=20d?= =?UTF-8?q?=C3=A9s=20dans=20le=20tchat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/chat-utility.js | 2 ++ module/rdd-rolltables.js | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/module/chat-utility.js b/module/chat-utility.js index 5f515ce8..9f6c053e 100644 --- a/module/chat-utility.js +++ b/module/chat-utility.js @@ -1,6 +1,7 @@ import { Misc } from "./misc.js"; import { SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js"; import { RdDTimestamp } from "./time/rdd-timestamp.js"; +import { RdDTextEditor } from "./apps/rdd-text-roll-editor.js"; /** @@ -198,6 +199,7 @@ export class ChatUtility { static async onCreateChatMessage(chatMessage, options, id) { if (chatMessage.isAuthor) { await chatMessage.setFlag(SYSTEM_RDD, 'rdd-timestamp', game.system.rdd.calendrier.getTimestamp()); + await chatMessage.update({ content: await RdDTextEditor.enrichHTML(chatMessage.content, undefined, {showLink:false}) }) } } } diff --git a/module/rdd-rolltables.js b/module/rdd-rolltables.js index 16e74554..d24d474b 100644 --- a/module/rdd-rolltables.js +++ b/module/rdd-rolltables.js @@ -102,10 +102,9 @@ export class RdDRollTables { /* -------------------------------------------- */ static async getMaladresse(options = { toChat: false, arme: false }) { - const maladresse = await RdDRollTables.drawTextFromRollTable( + return await RdDRollTables.drawTextFromRollTable( options.arme ? "Maladresse armé" : "Maladresses non armé", - options); - return await RdDTextEditor.enrichHTML(maladresse, undefined, {showLink:false}) + options) } } From 5ac9c682d98c63c2aa3565c83274902b997d2246 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 Jan 2025 22:34:34 +0100 Subject: [PATCH 7/7] =?UTF-8?q?Support=20difficult=C3=A9=20num=C3=A9rique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/apps/textroll/text-roll-carac-competence.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/module/apps/textroll/text-roll-carac-competence.js b/module/apps/textroll/text-roll-carac-competence.js index 71349c63..7c2f5572 100644 --- a/module/apps/textroll/text-roll-carac-competence.js +++ b/module/apps/textroll/text-roll-carac-competence.js @@ -1,5 +1,4 @@ import "../xregexp-all.js"; -import { ACTOR_TYPES } from "../../item.js"; import { RdDCarac } from "../../rdd-carac.js"; import { RdDItemCompetence } from "../../item-competence.js"; import { RdDUtility } from "../../rdd-utility.js"; @@ -8,7 +7,6 @@ import { TextRollManager } from "./text-roll-formatter.js"; const REGECP_CARAC = "(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+)" const REGEXP_COMP = "(\\/(?[A-Za-zÀ-ÖØ-öø-ÿ\\s\\-]+))?" const REGEXP_DIFF = "(/(?[\\+\\-]?\\d+(d\\d+)?))?" -const REGEX_DICE_DIFF = /[\+\-]?\d+d\d+/; const REGEXP_ROLL_CARAC_COMP = REGECP_CARAC + REGEXP_COMP + REGEXP_DIFF const XREGEXP_ROLL_CARAC_COMP = XRegExp("@roll\\[" + REGEXP_ROLL_CARAC_COMP + "\\]", 'giu') @@ -38,7 +36,7 @@ export class TextRollCaracCompetence { async calculDiff(node) { const diff = node.data('diff') ?? 0 - if (diff.match(REGEX_DICE_DIFF)) { + if (!Number.isInteger(diff)) { const roll = new Roll(diff) await roll.evaluate() await roll.toMessage({ flavor: `La difficulté de ${diff} a donné ${roll.total}` })