diff --git a/index.html b/index.html
index 5e9a69c8..d6376680 100644
--- a/index.html
+++ b/index.html
@@ -76,7 +76,7 @@
Binomial
-
+
Min
Max
@@ -86,6 +86,26 @@
p
+
diff --git a/script.js b/script.js
index 543cac15..dd93a864 100644
--- a/script.js
+++ b/script.js
@@ -89,6 +89,22 @@ function updateRollsField(el) {
invalidated();
}
+function switchBonusRollsType(el, type) {
+ $(el).closest('.bonus-rolls').attr('data-type', type);
+ updateBonusRollsField(el);
+}
+
+function updateBonusRollsField(el) {
+ let type = $(el).closest('.bonus-rolls').attr('data-type');
+ let data = getRangeField($(el).closest('.bonus-rolls'), type);
+ if (type ==='exact' && isNaN(data)) {
+ delete getPool(el).bonus_rolls;
+ } else {
+ getPool(el).bonus_rolls = data;
+ }
+ invalidated();
+}
+
function updateEntryType(el) {
let entry = getEntry(el);
entry.type = $(el).val();
@@ -162,6 +178,9 @@ function generateStructure() {
$pool.removeAttr('id').attr('data-index', i);
// Rolls
+ if (!pool.rolls) {
+ pool.rolls = 1;
+ }
let $rolls = $pool.find('.rolls');
if (typeof pool.rolls === 'object') {
if (pool.rolls.type && pool.rolls.type.match(/(minecraft:)?binomial/)) {
@@ -181,6 +200,30 @@ function generateStructure() {
$rolls.find('.exact').val(pool.rolls);
}
+ // Bonus Rolls
+ let $bonus_rolls = $pool.find('.bonus-rolls');
+ if (pool.bonus_rolls) {
+ if (typeof pool.bonus_rolls === 'object') {
+ if (pool.bonus_rolls.type && pool.bonus_rolls.type.match(/(minecraft:)?binomial/)) {
+ $bonus_rolls.attr('data-type', 'binomial');
+ $bonus_rolls.find('.binomial').removeClass('d-none');
+ $bonus_rolls.find('.binomial.n').val(pool.bonus_rolls.n);
+ $bonus_rolls.find('.binomial.p').val(pool.bonus_rolls.p);
+ } else {
+ $bonus_rolls.attr('data-type', 'range');
+ $bonus_rolls.find('.range').removeClass('d-none');
+ $bonus_rolls.find('.range.min').val(pool.bonus_rolls.min);
+ $bonus_rolls.find('.range.max').val(pool.bonus_rolls.max);
+ }
+ } else {
+ $bonus_rolls.attr('data-type', 'exact');
+ $bonus_rolls.find('.exact').removeClass('d-none');
+ $bonus_rolls.find('.exact').val(pool.bonus_rolls);
+ }
+ } else {
+ $bonus_rolls.find('.exact').removeClass('d-none');
+ }
+
// Entries
for (let j = 0; j < pool.entries.length; j += 1) {
let entry = pool.entries[j];