diff --git a/index.html b/index.html index d6376680..54c23d9f 100644 --- a/index.html +++ b/index.html @@ -21,13 +21,13 @@
-
+
Type
- @@ -35,6 +35,12 @@ +
+
+ +
+
+
@@ -142,6 +148,12 @@
+
+
+ Quality +
+ +
diff --git a/script.js b/script.js index dd93a864..ee4d4fec 100644 --- a/script.js +++ b/script.js @@ -3,6 +3,7 @@ $("#source").val(''); $('#tableType').val("minecraft:generic"); $('#indentationSelect').val("2"); let indentation = 2; +let luck_based = false; let table = { type: "minecraft:generic", pools: [] @@ -134,11 +135,26 @@ function updateEntryWeight(el) { invalidated(); } +function updateEntryQuality(el) { + let quality = parseInt($(el).val()); + if (isNaN(quality)) { + delete getEntry(el).quality; + } else { + getEntry(el).quality = quality; + } + invalidated(); +} + function updateTableType() { table.type = $('#tableType').val(); invalidated(); } +function updateLuckBased() { + luck_based = $('#luckBased').prop('checked'); + invalidated(); +} + function updateSouce() { $('#source').removeClass('invalid'); try { @@ -203,6 +219,7 @@ function generateStructure() { // Bonus Rolls let $bonus_rolls = $pool.find('.bonus-rolls'); if (pool.bonus_rolls) { + luck_based = true; if (typeof pool.bonus_rolls === 'object') { if (pool.bonus_rolls.type && pool.bonus_rolls.type.match(/(minecraft:)?binomial/)) { $bonus_rolls.attr('data-type', 'binomial'); @@ -223,6 +240,9 @@ function generateStructure() { } else { $bonus_rolls.find('.exact').removeClass('d-none'); } + if (!luck_based) { + $pool.find('.bonus-rolls').addClass('d-none'); + } // Entries for (let j = 0; j < pool.entries.length; j += 1) { @@ -239,9 +259,18 @@ function generateStructure() { $entry.find('.entry-name input').val(entry.name); } $entry.find('.entry-weight').removeClass('d-none'); + if (luck_based) { + $entry.find('.entry-quality').removeClass('d-none'); + } else { + $entry.find('.entry-quality').addClass('d-none'); + } if (entry.weight) { $entry.find('.entry-weight input').val(entry.weight); } + if (entry.quality) { + luck_based = true; + $entry.find('.entry-quality input').val(entry.quality); + } if (entry.type === 'minecraft:alternatives' || entry.type === 'minecraft:sequence' || entry.type === 'minecraft:group') { delete entry.name; $entry.find('.entry-children').removeClass('d-none'); @@ -250,5 +279,7 @@ function generateStructure() { $pool.children('.card-body').append($entry); } $('#structure').append($pool); + + $('#luck-based').attr('checked', luck_based); } }