mirror of
https://github.com/bartvdbraak/SlayerWeightCalculator.git
synced 2025-04-27 17:41:22 +00:00
144 lines
No EOL
3.5 KiB
JavaScript
144 lines
No EOL
3.5 KiB
JavaScript
String.prototype.capitalize = function() {
|
|
return this.charAt(0).toUpperCase() + this.slice(1);
|
|
}
|
|
|
|
function setBlocklists() {
|
|
$.getJSON( "data/monsters.json", {format: "json"}, function( data ) {
|
|
|
|
var content = '';
|
|
|
|
for (i = 0; i < data.length; i++) {
|
|
content += '<option value="'+data[i].monster+'">'+data[i].monster+'</option>'
|
|
}
|
|
|
|
$( ".blocktask" ).each(function( index ) {
|
|
$(this).append(content)
|
|
});
|
|
|
|
})
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
setBlocklists();
|
|
applyChanges('krystilia');
|
|
});
|
|
|
|
function filterTasks(data) {
|
|
index_list = []
|
|
|
|
for (i = 0; i < data.length; i++) {
|
|
|
|
// Unlocks
|
|
|
|
switch (data[i].monster) {
|
|
case 'Red dragons':
|
|
if ($("#reddrags").prop("checked") == false) {
|
|
index_list.push(i)
|
|
}
|
|
break;
|
|
case 'Mithril dragons':
|
|
if ($("#mithdrags").prop("checked") == false) {
|
|
index_list.push(i)
|
|
}
|
|
break;
|
|
case 'Aviansie':
|
|
if ($("#aviansies").prop("checked") == false) {
|
|
index_list.push(i)
|
|
}
|
|
break;
|
|
case 'Tzhaar':
|
|
if ($("#tzhaar").prop("checked") == false) {
|
|
index_list.push(i)
|
|
}
|
|
break;
|
|
case 'Lizardmen':
|
|
if ($("#lizardmen").prop("checked") == false) {
|
|
index_list.push(i)
|
|
}
|
|
break;
|
|
case 'Bosses':
|
|
if ($("#bosses").prop("checked") == false) {
|
|
index_list.push(i)
|
|
}
|
|
break;
|
|
case 'Fossil Island Wyverns':
|
|
if ($("#fossilwyverns").prop("checked") == true) {
|
|
index_list.push(i)
|
|
console.log('1')
|
|
}
|
|
}
|
|
|
|
// Slayer requirement
|
|
|
|
if (data[i].slayer_req > $("#slayerlevel").val()) {
|
|
index_list.push(i)
|
|
}
|
|
|
|
// Task blocks
|
|
|
|
$( ".blocktask" ).each(function( index ) {
|
|
if ($(this).val().toUpperCase() == data[i].monster.toUpperCase()) {
|
|
index_list.push(i)
|
|
console.log('2')
|
|
}
|
|
});
|
|
|
|
// Quest unlocks
|
|
|
|
}
|
|
|
|
console.log(index_list)
|
|
|
|
|
|
for (var i in index_list) {
|
|
data.splice(i, 1)
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
function sumWeights(data) {
|
|
var total = 0;
|
|
for (var i in data) {
|
|
total += data[i].taskweight
|
|
}
|
|
return total
|
|
}
|
|
|
|
var table, currentMaster;
|
|
|
|
function deleteOldDataTable() {
|
|
table = $('#master').DataTable()
|
|
table.destroy();
|
|
}
|
|
|
|
function setMasterTitle(master) {
|
|
$("#mastertitle").text(master.capitalize());
|
|
}
|
|
|
|
function applyChanges(master) {
|
|
currentMaster = master;
|
|
deleteOldDataTable();
|
|
setMasterTitle(master);
|
|
|
|
$.getJSON( "data/"+master+".json", function( data ) {
|
|
|
|
var data = filterTasks(data),
|
|
totalweight = sumWeights(data);
|
|
|
|
$(document).ready(function() {
|
|
table = $('#master').DataTable({
|
|
"data": data,
|
|
"columns": [
|
|
{ data: 'monster'},
|
|
{ data: 'taskweight'},
|
|
{ data: null, render: function ( data, type, row ) {
|
|
return (row.taskweight / totalweight * 100 ).toFixed(2)+'%';
|
|
}
|
|
}
|
|
]
|
|
});
|
|
});
|
|
|
|
})
|
|
} |