From 2106e6ebefde42f09c20ca8a04e8272421329a3d Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 7 Nov 2022 19:57:39 +0100 Subject: [PATCH] Table de rencontre sur une TMR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Au lieu de passer le type de TMR, passer la TMR {type, coordonnées} Ce qui permettra de créer une rencontre avec les coordonnées si disponible --- module/rdd-tmr-dialog.js | 2 +- module/tmr-rencontres.js | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index b91b5d29..107f240a 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -552,7 +552,7 @@ export class RdDTMRDialog extends Dialog { let rencontre = TMRUtility.utiliseForceRencontre() ?? (isMauvaise ? await TMRRencontres.getMauvaiseRencontre() - : await TMRRencontres.getRencontreAleatoire(tmr.type)); + : await TMRRencontres.getRencontreAleatoire(tmr)); rencontre.coord = tmr.coord; rencontre.date = game.system.rdd.calendrier.getDateFromIndex(); rencontre.heure = game.system.rdd.calendrier.getCurrentHeure(); diff --git a/module/tmr-rencontres.js b/module/tmr-rencontres.js index a7b543ae..d8634310 100644 --- a/module/tmr-rencontres.js +++ b/module/tmr-rencontres.js @@ -331,13 +331,21 @@ export class TMRRencontres { */ static async rollRencontre(terrain, roll = undefined) { if (!terrain) { - ChatMessage.create({ content: "Un type de case doit être indiqué (par exemple sanctuaire, desert ou cité)" }); + ChatMessage.create({ + user: game.user.id, + whisper: [game.user.id], + content: "Un type de case doit être indiqué (par exemple sanctuaire, desert ou cité)" + }); return false; } + TMRRencontres.selectRencontre(terrain); + const codeTerrain = Grammar.toLowerCaseNoAccent(terrain); + if (!roll || roll <= 0 || roll > 100) { roll = await RdDDice.rollTotal("1d100"); } - let rencontre = await TMRRencontres.getRencontreAleatoire(terrain, roll); + + let rencontre = await TMRRencontres.getRencontreAleatoire({type: codeTerrain, coord:''}, roll); ChatMessage.create({ user: game.user.id, whisper: [game.user.id], @@ -365,12 +373,12 @@ export class TMRRencontres { } /* -------------------------------------------- */ - static async getRencontreAleatoire(terrain, roll = undefined) { + static async getRencontreAleatoire(tmr, roll = undefined) { if (!roll || roll <= 0 || roll > 100) { roll = await RdDDice.rollTotal("1d100"); } - terrain = Grammar.toLowerCaseNoAccent(terrain); - const code = tableRencontres[terrain].find(it => it.range[0] <= roll && roll <= it.range[1]).code; + const codeTerrain = Grammar.toLowerCaseNoAccent(tmr.type); + const code = tableRencontres[codeTerrain].find(it => it.range[0] <= roll && roll <= it.range[1]).code; const rencontre = duplicate(rencontresStandard.find(it => it.code == code)); rencontre.roll = roll; await TMRRencontres.evaluerForceRencontre(rencontre); @@ -390,7 +398,7 @@ export class TMRRencontres { /* -------------------------------------------- */ static async evaluerForceRencontre(rencontre) { const rollForce = new Roll(rencontre.force); - await rollForce.evaluate(); + await rollForce.evaluate({ async: true }); rencontre.force = rollForce.total; return rencontre.force; }