Table de rencontre sur une TMR

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
This commit is contained in:
Vincent Vandemeulebrouck 2022-11-07 19:57:39 +01:00
parent dc07b60acf
commit 2106e6ebef
2 changed files with 15 additions and 7 deletions

View File

@ -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();

View File

@ -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;
}