const notifStyle = ` font-size: 1.5rem; margin: 0.5rem 0; padding: 6px 8px; box-shadow: 0 0 10px var(--color-shadow-dark); color: var(--color-text-light-1); border-radius: 5px; text-align: center;`; const greenNotif = ` background: var(--color-level-success-bg); border: 1px solid var(--color-level-success-border);`; const redNotif = ` background: var(--color-level-error-bg); border: 1px solid var(--color-level-error);`; async function rollDice() { const sidesOnDice = 6; const answers = await DialogManager.ask({ id: `gunsword-dice-pool`, question: `Set up your dice pool:`, inputs: [ { key: `statBase`, inputType: `number`, label: `Stat Base`, autofocus: true, }, { key: `extraDice`, inputType: `number`, label: `Extra Dice`, defaultValue: 0, }, ], }); const { statBase, extraDice } = answers; let rollMode = game.settings.get(`core`, `rollMode`); let diceCount = statBase; diceCount += extraDice; let successes = 0; let critsOnly = 0; const results = []; for (let i = diceCount; i > 0; i--) { let r = new Roll(`1d${sidesOnDice}x=${statBase}`); await r.evaluate(); for (const die of r.terms[0].results) { let classes = `roll die d${sidesOnDice}`; const total = die.result; if (total <= statBase) { successes += 1; } else { classes += ` discarded` } if (total === statBase) { successes += 1; critsOnly += 1; classes += ` success exploded`; } // Save dice stats if present WorldAPI?.saveRollValue?.(sidesOnDice, total); results.push(`