taf/scripts/macros/rollDice.mjs
2024-08-28 23:35:26 -06:00

35 lines
No EOL
642 B
JavaScript

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(`, `)}<br>Successes: ${successes}`,
});
}
rollDice()