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:
parent
dc07b60acf
commit
2106e6ebef
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user