Foundry: Roll#evaluate sera async
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| import { Grammar } from "./grammar.js"; | ||||
| import { Misc } from "./misc.js"; | ||||
| import { RdDDice } from "./rdd-dice.js"; | ||||
| import { TMRUtility } from "./tmr-utility.js"; | ||||
| import { TMRType } from "./tmr-utility.js"; | ||||
|  | ||||
| @@ -268,7 +269,7 @@ const rencontresStandard = [ | ||||
|   { code: "reflet", name: "Reflet d'ancien Rêve", type: "reflet", genre: "m", force: "2d6", isPersistant: true }, | ||||
|   { code: "tbblanc", name: "Tourbillon blanc", type: "tbblanc", genre: "m", force: "2d6", isPersistant: true }, | ||||
|   { code: "tbnoir", name: "Tourbillon noir", type: "tbnoir", genre: "m", force: "2d8", isPersistant: true }, | ||||
|   { code: "rdd", name: "Rêve de Dragon", type: "rdd", genre: "m", force: "1ddr + 7", refoulement: 2, quitterTMR: true } | ||||
|   { code: "rdd", name: "Rêve de Dragon", type: "rdd", genre: "m", force: "1dr + 7", refoulement: 2, quitterTMR: true } | ||||
| ]; | ||||
|  | ||||
| const rencontresPresentCite = [ | ||||
| @@ -324,7 +325,7 @@ export class TMRRencontres { | ||||
|       return false; | ||||
|     } | ||||
|     if (!roll || roll <= 0 || roll > 100) { | ||||
|       roll = new Roll("1d100").evaluate().total; | ||||
|       roll = await RdDDice.rollTotal("1d100"); | ||||
|     } | ||||
|     let rencontre = await TMRRencontres.getRencontreAleatoire(terrain, roll); | ||||
|     ChatMessage.create({ | ||||
| @@ -356,15 +357,13 @@ export class TMRRencontres { | ||||
|   /* -------------------------------------------- */ | ||||
|   static async getRencontreAleatoire(terrain, roll = undefined) { | ||||
|     if (!roll || roll <= 0 || roll > 100) { | ||||
|       roll = new Roll("1d100").evaluate({ async: false }).total; | ||||
|       roll = await RdDDice.rollTotal("1d100"); | ||||
|     } | ||||
|     terrain = Grammar.toLowerCaseNoAccent(terrain); | ||||
|     //console.log("getRencontreAleatoire", terrain, roll); | ||||
|     const code = tableRencontres[terrain].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); | ||||
|     //console.log(rencontre); | ||||
|     return rencontre; | ||||
|   } | ||||
|  | ||||
| @@ -373,20 +372,14 @@ export class TMRRencontres { | ||||
|     const rencontre = duplicate( | ||||
|       (index && index >= 0 && index < mauvaisesRencontres.length) | ||||
|         ? mauvaisesRencontres[index] | ||||
|         : Misc.rollOneOf(mauvaisesRencontres)); | ||||
|         : await RdDDice.rollOneOf(mauvaisesRencontres)); | ||||
|     await TMRRencontres.evaluerForceRencontre(rencontre); | ||||
|     return rencontre; | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static async evaluerForceRencontre(rencontre) { | ||||
|     if (TMRRencontres.isReveDeDragon(rencontre)) { | ||||
|       const ddr =  new Roll("1dr + 7").evaluate(); | ||||
|       rencontre.force = 7 + ddr.total; | ||||
|     } | ||||
|     else { | ||||
|       rencontre.force = new Roll(rencontre.force).evaluate({ async: false }).total; | ||||
|     } | ||||
|     rencontre.force = await new Roll(rencontre.force).evaluate().total; | ||||
|     return rencontre.force; | ||||
|   } | ||||
|  | ||||
| @@ -426,14 +419,14 @@ export class TMRRencontres { | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static msgEchecPasseurFou(tmrData) { | ||||
|   static async msgEchecPasseurFou(tmrData) { | ||||
|     tmrData.sortReserve = Misc.templateData(tmrData.actor).reve.reserve.list[0]; | ||||
|     if (tmrData.sortReserve) { | ||||
|       // Passeur fou positionne sur la case d'un ort en réserve // TODO : Choisir le sort le plus loin ou au hasard | ||||
|       tmrData.newTMR = TMRUtility.getTMR(tmrData.sortReserve.coord); | ||||
|     } else { | ||||
|       // Déplacement aléatoire de la force du Passeur Fou | ||||
|       const newCoord = Misc.rollOneOf(TMRUtility.getTMRPortee(tmrData.tmr.coord, tmrData.rencontre.force)); | ||||
|       const newCoord = await RdDDice.rollOneOf(TMRUtility.getTMRPortee(tmrData.tmr.coord, tmrData.rencontre.force)); | ||||
|       tmrData.newTMR = TMRUtility.getTMR(newCoord); | ||||
|     } | ||||
|     if (tmrData.sortReserve) { | ||||
| @@ -472,7 +465,7 @@ export class TMRRencontres { | ||||
|   static async _toubillonner(tmrDialog, actor, cases) { | ||||
|     let coord = Misc.templateData(actor).reve.tmrpos.coord; | ||||
|     for (let i = 0; i < cases; i++) { | ||||
|       coord = TMRUtility.deplaceTMRAleatoire(actor, coord).coord; | ||||
|       coord = await TMRUtility.deplaceTMRAleatoire(actor, coord).coord; | ||||
|     } | ||||
|     await tmrDialog.forceDemiRevePosition(coord) | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user