mirror of
https://github.com/misode/misode.github.io.git
synced 2026-05-04 22:51:47 +00:00
Add bonus rolls
This commit is contained in:
+21
-1
@@ -76,7 +76,7 @@
|
||||
<a class="dropdown-item" onclick="switchRollsType(this, 'binomial')">Binomial</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control exact d-none rounded-right" onchange="updateRollsField(this)" value="1">
|
||||
<input type="text" class="form-control exact d-none rounded-right" onchange="updateRollsField(this)">
|
||||
<span class="input-group-text rounded-0 range d-none">Min</span>
|
||||
<input type="text" class="form-control range min d-none" value="1" onchange="updateRollsField(this)">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
@@ -86,6 +86,26 @@
|
||||
<span class="input-group-text rounded-0 binomial d-none">p</span>
|
||||
<input type="text" class="form-control binomial p d-none rounded-right" value="0.5" onchange="updateRollsField(this)">
|
||||
</div>
|
||||
<div class="input-group mt-3 bonus-rolls" data-type="exact">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Bonus Rolls</span>
|
||||
<button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown"></button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" onclick="switchBonusRollsType(this, 'exact')">Exact</a>
|
||||
<a class="dropdown-item" onclick="switchBonusRollsType(this, 'range')">Range</a>
|
||||
<a class="dropdown-item" onclick="switchBonusRollsType(this, 'binomial')">Binomial</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control exact d-none rounded-right" onchange="updateBonusRollsField(this)">
|
||||
<span class="input-group-text rounded-0 range d-none">Min</span>
|
||||
<input type="text" class="form-control range min d-none" value="1" onchange="updateBonusRollsField(this)">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
<input type="text" class="form-control range max d-none rounded-right" value="2" onchange="updateBonusRollsField(this)">
|
||||
<span class="input-group-text rounded-0 binomial d-none">n</span>
|
||||
<input type="text" class="form-control binomial n d-none" value="1" onchange="updateBonusRollsField(this)">
|
||||
<span class="input-group-text rounded-0 binomial d-none">p</span>
|
||||
<input type="text" class="form-control binomial p d-none rounded-right" value="0.5" onchange="updateBonusRollsField(this)">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="entryTemplate" class="card mt-3 entry">
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user