mirror of
https://github.com/misode/misode.github.io.git
synced 2026-05-03 22:22:54 +00:00
Add 1.13 conditions
This commit is contained in:
+4
-4
@@ -1,16 +1,16 @@
|
||||
.bg-info {
|
||||
.card.bg-info {
|
||||
background-color: #91cdd6 !important;
|
||||
}
|
||||
|
||||
.bg-success {
|
||||
.card.bg-success {
|
||||
background-color: #91d8a1 !important;
|
||||
}
|
||||
|
||||
.bg-secondary {
|
||||
.card.bg-secondary {
|
||||
background-color: #adb5bd !important;
|
||||
}
|
||||
|
||||
.bg-dark {
|
||||
.card.bg-dark {
|
||||
background-color: #646b72 !important;
|
||||
}
|
||||
|
||||
|
||||
+81
-7
@@ -73,7 +73,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)" onclick="this.select()">
|
||||
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateRollsField(this)" onclick="this.select()">
|
||||
<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)" onclick="this.select()">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
@@ -93,7 +93,7 @@
|
||||
<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)" onclick="this.select()">
|
||||
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateBonusRollsField(this)" onclick="this.select()">
|
||||
<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)" onclick="this.select()">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
@@ -112,7 +112,7 @@
|
||||
<button type="button" class="btn btn-info mr-3 mb-2 float-left" onclick="addCondition(this)">Add Condition</button>``
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="input-group entry-type">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Type</span>
|
||||
</div>
|
||||
@@ -181,7 +181,7 @@
|
||||
<a class="dropdown-item" onclick="switchCountType(this, 'binomial')">Binomial</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control exact d-none rounded-right" onchange="updateCountField(this)" onclick="this.select()">
|
||||
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateCountField(this)" onclick="this.select()">
|
||||
<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="updateCountField(this)" onclick="this.select()">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
@@ -201,7 +201,7 @@
|
||||
<a class="dropdown-item" onclick="switchDamageType(this, 'binomial')">Binomial</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control exact d-none rounded-right" onchange="updateDamageField(this)" onclick="this.select()">
|
||||
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateDamageField(this)" onclick="this.select()">
|
||||
<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="updateDamageField(this)" onclick="this.select()">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
@@ -278,7 +278,7 @@
|
||||
<a class="dropdown-item" onclick="switchLevelsType(this, 'binomial')">Binomial</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control exact d-none rounded-right" onchange="updateLevelsField(this)" onclick="this.select()">
|
||||
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateLevelsField(this)" onclick="this.select()">
|
||||
<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="updateLevelsField(this)" onclick="this.select()">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
@@ -346,7 +346,7 @@
|
||||
<a class="dropdown-item" onclick="switchModifierAmountType(this, 'binomial')">Binomial</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control exact d-none rounded-right" onchange="updateModifierAmountField(this)" onclick="this.select()">
|
||||
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateModifierAmountField(this)" onclick="this.select()">
|
||||
<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="updateModifierAmountField(this)" onclick="this.select()">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
@@ -393,6 +393,80 @@
|
||||
<button type="button" class="btn btn-danger mb-2 float-right" onclick="removeCondition(this)">Remove Condition</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Condition</span>
|
||||
</div>
|
||||
<select class="form-control condition-type" onchange="updateConditionType(this)">
|
||||
<option value="minecraft:random_chance">Random Chance</option>
|
||||
<option value="minecraft:random_chance_with_looting">Random Chance with Looting</option>
|
||||
<option value="minecraft:killed_by_player">Killed by Player</option>
|
||||
<option value="minecraft:entity_properties">Entity Properties</option>
|
||||
<option value="minecraft:entity_scores">Entity Scores</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input-group mt-3 condition-chance d-none">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Chance</span>
|
||||
</div>
|
||||
<input type="text" class="form-control" onchange="updateConditionChance(this)" onclick="this.select()">
|
||||
</div>
|
||||
<div class="input-group mt-3 condition-looting-multiplier d-none">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Looting Multiplier</span>
|
||||
</div>
|
||||
<input type="text" class="form-control" onchange="updateConditionLootingMultiplier(this)" onclick="this.select()">
|
||||
</div>
|
||||
<div class="input-group mt-3 condition-killed-inverted d-none">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="invertedCheckbox" onchange="updateInvertedField(this)">
|
||||
<label class="custom-control-label" for="invertedCheckbox">Inverted</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group mt-3 condition-entity d-none">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Entity</span>
|
||||
</div>
|
||||
<select class="form-control" onchange="updateConditionEntity(this)">
|
||||
<option value="this">This</option>
|
||||
<option value="killer">Killer</option>
|
||||
<option value="killer_player">Killer Player</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="card bg-dark mt-3 condition-predicate d-none">
|
||||
<div class="card-body">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="input-group mt-3 condition-entity-scores d-none">
|
||||
<div class="input-group-prepend">
|
||||
<label class="input-group-text">Objective</label>
|
||||
</div>
|
||||
<input type="text" class="form-control">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-dark" type="button" onclick="addScore(this)">Add Score</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3 scores-list d-none">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="scoreTemplate" class="input-group mt-3 score">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text objective"></span>
|
||||
<button type="button" class="btn btn-outline-secondary bg-light dropdown-toggle dropdown-toggle-split" data-toggle="dropdown"></button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" onclick="switchConditionScoreType(this, 'exact')">Exact</a>
|
||||
<a class="dropdown-item" onclick="switchConditionScoreType(this, 'range')">Range</a>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control exact d-none" value="1" onchange="updateConditionScoreField(this)" onclick="this.select()">
|
||||
<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="updateConditionScoreField(this)" onclick="this.select()">
|
||||
<span class="input-group-text rounded-0 range d-none">Max</span>
|
||||
<input type="text" class="form-control range max d-none" value="2" onchange="updateConditionScoreField(this)" onclick="this.select()">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-danger bg-light" type="button" onclick="removeScore(this)">Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -35,7 +35,7 @@ function getParent(el) {
|
||||
}
|
||||
|
||||
function getSuperParent(el) {
|
||||
let $parent = $(el).closest('.table, .pool, .entry, .child, .term, .function, .condition, .modifier');
|
||||
let $parent = $(el).closest('.table, .pool, .entry, .child, .term, .function, .condition, .modifier .score');
|
||||
return getParent($parent.parent());
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ function addCondition(el) {
|
||||
}
|
||||
parent.conditions.push({
|
||||
condition: "minecraft:random_chance",
|
||||
change: 0.5
|
||||
chance: 0.5
|
||||
});
|
||||
invalidated();
|
||||
}
|
||||
@@ -233,7 +233,7 @@ function updateCountField(el) {
|
||||
|
||||
function switchDamageType(el, type) {
|
||||
$(el).closest('.function-damage').attr('data-type', type);
|
||||
updateCountField(el);
|
||||
updateDamageField(el);
|
||||
}
|
||||
|
||||
function updateDamageField(el) {
|
||||
@@ -380,6 +380,81 @@ function removeModifierSlot(el) {
|
||||
}
|
||||
}
|
||||
|
||||
function updateConditionType(el) {
|
||||
let condition = $(el).val();
|
||||
let $condition = getParent(el);
|
||||
if (condition === 'minecraft:random_chance_with_looting') {
|
||||
$condition.looting_multiplier = 1;
|
||||
} else if (condition === 'minecraft:entity_properties' || condition === 'minecraft:entity_scores'){
|
||||
$condition.entity = 'this';
|
||||
}
|
||||
$condition.condition = condition;
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function updateConditionChance(el) {
|
||||
let chance = parseFloat($(el).val());
|
||||
if (isNaN(chance)) {
|
||||
delete getParent(el).chance;
|
||||
} else {
|
||||
getParent(el).chance = chance;
|
||||
}
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function updateConditionLootingMultiplier(el) {
|
||||
let multiplier = parseFloat($(el).val());
|
||||
if (isNaN(multiplier)) {
|
||||
multiplier = 1;
|
||||
}
|
||||
getParent(el).looting_multiplier = multiplier;
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function updateInvertedField(el) {
|
||||
let inverted = $(el).prop('checked');
|
||||
if (inverted) {
|
||||
getParent(el).inverted = true;
|
||||
} else {
|
||||
delete getParent(el).inverted;
|
||||
}
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function updateConditionEntity(el) {
|
||||
getParent(el).entity = $(el).val();
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function addScore(el) {
|
||||
let condition = getParent(el);
|
||||
let objective = $(el).closest('.condition-entity-scores').find('input').val();
|
||||
if (!condition.scores) {
|
||||
condition.scores = {};
|
||||
}
|
||||
condition.scores[objective] = 1;
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function removeScore(el) {
|
||||
let objective = $(el).closest('.score').attr('data-objective');
|
||||
delete getParent(el).scores[objective];
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function switchConditionScoreType(el, type) {
|
||||
$(el).closest('.score').attr('data-type', type);
|
||||
updateConditionScoreField(el);
|
||||
}
|
||||
|
||||
function updateConditionScoreField(el) {
|
||||
let type = $(el).closest('.score').attr('data-type');
|
||||
let data = getRangeField($(el).closest('.score'), type);
|
||||
let objective = $(el).closest('.score').attr('data-objective');
|
||||
getParent(el).scores[objective] = data;
|
||||
invalidated();
|
||||
}
|
||||
|
||||
function updateTableType() {
|
||||
table.type = $('#tableType').val();
|
||||
invalidated();
|
||||
@@ -648,5 +723,62 @@ function generateCondition(condition, i) {
|
||||
let $condition = $('#conditionTemplate').clone();
|
||||
$condition.removeAttr('id').attr('data-index', i);
|
||||
|
||||
$condition.find('.condition-type').val(condition.condition);
|
||||
if (condition.condition === 'minecraft:random_chance' || condition.condition === 'minecraft:random_chance_with_looting') {
|
||||
$condition.find('.condition-chance').removeClass('d-none');
|
||||
$condition.find('.condition-chance input').val(condition.chance);
|
||||
} else {
|
||||
delete condition.chance;
|
||||
}
|
||||
if (condition.condition === 'minecraft:random_chance_with_looting') {
|
||||
$condition.find('.condition-looting-multiplier').removeClass('d-none');
|
||||
$condition.find('.condition-looting-multiplier input').val(condition.looting_multiplier);
|
||||
} else {
|
||||
delete condition.looting_multiplier;
|
||||
}
|
||||
if (condition.condition === 'minecraft:killed_by_player') {
|
||||
$condition.find('.condition-killed-inverted').removeClass('d-none');
|
||||
let inverted = false;
|
||||
if (condition.inverted) {
|
||||
inverted = true;
|
||||
}
|
||||
let id = 'invertedCheckbox' + Math.floor(1000000*Math.random());
|
||||
$condition.find('.condition-killed-inverted').attr('for', id);
|
||||
$condition.find('.condition-killed-inverted label').attr('for', id);
|
||||
$condition.find('.condition-killed-inverted input').prop('checked', inverted).attr('id', id);
|
||||
} else {
|
||||
delete condition.inverted;
|
||||
}
|
||||
if (condition.condition === 'minecraft:entity_properties' || condition.condition === 'minecraft:entity_scores') {
|
||||
$condition.find('.condition-entity').removeClass('d-none');
|
||||
$condition.find('.condition-entity select').val(condition.entity);
|
||||
} else {
|
||||
delete condition.entity;
|
||||
}
|
||||
if (condition.condition === 'minecraft:entity_properties') {
|
||||
$condition.find('.condition-predicate').removeClass('d-none');
|
||||
} else {
|
||||
delete condition.predicate;
|
||||
}
|
||||
if (condition.condition === 'minecraft:entity_scores') {
|
||||
$condition.find('.condition-entity-scores').removeClass('d-none');
|
||||
|
||||
if (condition.scores) {
|
||||
$condition.find('.scores-list').removeClass('d-none');
|
||||
for (let objective in condition.scores) {
|
||||
let score = condition.scores[objective];
|
||||
delete score.type;
|
||||
let $score = $('#scoreTemplate').clone();
|
||||
$score.removeAttr('id').attr('data-objective', objective);
|
||||
$score.find('.objective').text(objective);
|
||||
generateRange($score, score);
|
||||
|
||||
$condition.find('.scores-list').append($score);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
delete condition.scores;
|
||||
}
|
||||
|
||||
return $condition;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user