diff --git a/scripts/macros/rollDice.mjs b/scripts/macros/rollDice.mjs new file mode 100644 index 0000000..c4011eb --- /dev/null +++ b/scripts/macros/rollDice.mjs @@ -0,0 +1,35 @@ +async function rollDice() { + + const statBase = await DialogManager.ask({ + question: `How many dice to roll?`, + initialValue: 2, + inputType: `number`, + }); + + if (!statBase) { + return; + } + + const sidesOnDice = 6; + const successThreshold = 4; + + let successes = 0; + const results = []; + for (let i = statBase; i > 0; i--) { + let r = new Roll(`1d${sidesOnDice}`); + await r.evaluate(); + results.push(r.total); + if (r.total >= successThreshold) { + successes++; + } + if (r.total === sidesOnDice) { + successes++; + } + } + + await ChatMessage.create({ + content: `Rolled: ${results.join(`, `)}
Successes: ${successes}`, + }); +} + +rollDice() \ No newline at end of file