mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2024-11-30 12:36:03 +00:00
580 lines
14 KiB
JavaScript
Executable File
580 lines
14 KiB
JavaScript
Executable File
/*
|
|
|
|
Copyright (C) 2021 Hash Borgir
|
|
|
|
This file is part of D2Modder
|
|
|
|
Redistribution and use in source and binary forms, with
|
|
or without modification, are permitted provided that the
|
|
following conditions are met:
|
|
|
|
* Redistributions of source code must retain the above
|
|
copyright notice, this list of conditions and the
|
|
following disclaimer.
|
|
|
|
* Redistributions in binary form must reproduce the above
|
|
copyright notice, this list of conditions and the
|
|
following disclaimer in the documentation and/or other
|
|
materials provided with the distribution.
|
|
|
|
* This software must not be used for commercial purposes
|
|
* without my consent. Any sales or commercial use are prohibited
|
|
* without my express knowledge and consent.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY!
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*/
|
|
|
|
function syntaxHighlight(json) {
|
|
json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
|
|
var cls = 'number';
|
|
if (/^"/.test(match)) {
|
|
if (/:$/.test(match)) {
|
|
cls = 'key';
|
|
} else {
|
|
cls = 'string';
|
|
}
|
|
} else if (/true|false/.test(match)) {
|
|
cls = 'boolean';
|
|
} else if (/null/.test(match)) {
|
|
cls = 'null';
|
|
}
|
|
return '<span class="' + cls + '">' + match + '</span>';
|
|
});
|
|
}
|
|
|
|
|
|
function search() {
|
|
$.get("/ajax/uniqueitems.php?cmd=search&search=" + searchbox.value, function (data) {
|
|
$('.uniqueitems-select').html(data)
|
|
});
|
|
}
|
|
|
|
function capitalizeFirstLetter(string) {
|
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
$('.form-text').hide();
|
|
$('.help').click(function () {
|
|
// $('.form-text').slideToggle();
|
|
});
|
|
|
|
$('.op1').val(this.checked);
|
|
$('.op1').change(function () {
|
|
if (this.checked) {
|
|
$('option[disabled="disabled"]').hide();
|
|
} else {
|
|
$('option[disabled="disabled"]').show();
|
|
}
|
|
});
|
|
|
|
$(function () {
|
|
$('[data-toggle="tooltip"]').tooltip()
|
|
})
|
|
|
|
$('.w-select').change(function () {
|
|
$('.a-select,.m-select').each(function (i, v) {
|
|
v.value = '';
|
|
v.required = '';
|
|
});
|
|
|
|
x = $(this).find(':selected').text();
|
|
y = document.getElementById('item');
|
|
y.value = x;
|
|
|
|
});
|
|
|
|
$('.a-select').change(function () {
|
|
$('.w-select,.m-select').each(function (i, v) {
|
|
v.value = '';
|
|
v.required = '';
|
|
});
|
|
|
|
|
|
x = $(this).find(':selected').text();
|
|
y = document.getElementById('item');
|
|
y.value = x;
|
|
});
|
|
$('.m-select').change(function () {
|
|
$('.w-select,.a-select').each(function (i, v) {
|
|
v.value = '';
|
|
v.required = '';
|
|
});
|
|
|
|
|
|
x = $(this).find(':selected').text();
|
|
y = document.getElementById('item');
|
|
y.value = x;
|
|
});
|
|
|
|
$(".btnconfig").click(function () {
|
|
$(".ctrl-config").hide();
|
|
$("#loading").show();
|
|
|
|
});
|
|
|
|
$('.help').click(function () {
|
|
$(".fa-help").remove();
|
|
$(this).next().fadeToggle().focus().css({
|
|
"position": "absolute",
|
|
"z-index": "1000",
|
|
"background": "#eee",
|
|
"color": "black !important",
|
|
"border": "1px solid #aaa",
|
|
"width": "300px",
|
|
})
|
|
});
|
|
|
|
// $('.help').prev().hover(function () {
|
|
// $(".fa-help").remove();
|
|
// $(this).next().next().fadeToggle().focus().css({
|
|
// "position": "absolute",
|
|
// "z-index": "1000",
|
|
// "background": "#eee",
|
|
// "color": "black !important",
|
|
// "border": "1px solid #aaa",
|
|
// "width": "300px",
|
|
// })
|
|
// });
|
|
|
|
|
|
|
|
$('.form-text').click(function () {
|
|
$(this).fadeOut("slow");
|
|
});
|
|
|
|
|
|
|
|
$('').change(function () {
|
|
if (this.checked) {
|
|
$('option[disabled="disabled"]').hide();
|
|
} else {
|
|
$('option[disabled="disabled"]').show();
|
|
}
|
|
});
|
|
|
|
|
|
|
|
/*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
|
|
**/
|
|
|
|
// every time we change a prop dropdown,
|
|
//
|
|
// 1 send to server,
|
|
// 2 grab string,
|
|
// 3 update item display
|
|
$('select[name^="prop"]').change(function () {
|
|
prop = capitalizeFirstLetter($(this).attr("name"));
|
|
propNum = prop.substring(4);
|
|
par = $(this).next().val();
|
|
min = $(this).next().next().val();
|
|
max = $(this).next().next().next().val();
|
|
|
|
val = escape(this.value);
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
/*
|
|
* Properties/par/min/max onchange function, updated item string stats
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
|
|
**/
|
|
|
|
|
|
$('.par1, .min1, .max1').change(function () {
|
|
prop = "Prop1";
|
|
|
|
par = $('.par1').val();
|
|
if (par == '')
|
|
par = 0;
|
|
min = $('.min1').val();
|
|
max = $('.max1').val();
|
|
|
|
val = escape($("*[name='prop1'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
$('.par2, .min2, .max2').change(function () {
|
|
prop = "Prop2";
|
|
|
|
par = $('.par2').val();
|
|
if (par == '')
|
|
par = 0;
|
|
min = $('.min2').val();
|
|
max = $('.max2').val();
|
|
|
|
val = escape($("*[name='prop2'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
$('.par3, .min3, .max3').change(function () {
|
|
prop = "Prop3";
|
|
|
|
par = $('.par3').val();
|
|
if (par == '')
|
|
par = 0;
|
|
min = $('.min3').val();
|
|
max = $('.max3').val();
|
|
|
|
val = escape($("*[name='prop3'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
$('.par4, .min4, .max4').change(function () {
|
|
prop = "Prop4";
|
|
|
|
par = $('.par4').val();
|
|
if (par == '')
|
|
par = 0;
|
|
min = $('.min4').val();
|
|
max = $('.max4').val();
|
|
|
|
val = escape($("*[name='prop4'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
$('.par5, .min5, .max5').change(function () {
|
|
prop = "Prop5";
|
|
|
|
par = $('.par5').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min5').val();
|
|
max = $('.max5').val();
|
|
|
|
val = escape($("*[name='prop5'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
$('.par6, .min6, .max6').change(function () {
|
|
prop = "Prop6";
|
|
|
|
par = $('.par6').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min6').val();
|
|
max = $('.max6').val();
|
|
|
|
val = escape($("*[name='prop6'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
$('.par7, .min7, .max7').change(function () {
|
|
prop = "Prop7";
|
|
|
|
par = $('.par7').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min7').val();
|
|
max = $('.max7').val();
|
|
|
|
val = escape($("*[name='prop7'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
|
|
$('.par8, .min8, .max8').change(function () {
|
|
prop = "Prop8";
|
|
|
|
par = $('.par8').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min8').val();
|
|
max = $('.max8').val();
|
|
|
|
val = escape($("*[name='prop8'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
$('.par9, .min9, .max9').change(function () {
|
|
prop = "Prop9";
|
|
|
|
par = $('.par9').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min9').val();
|
|
max = $('.max9').val();
|
|
|
|
val = escape($("*[name='prop9'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
$('.par10, .min10, .max10').change(function () {
|
|
prop = "Prop10";
|
|
|
|
par = $('.par10').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min10').val();
|
|
max = $('.max10').val();
|
|
|
|
val = escape($("*[name='prop10'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
$('.par11, .min11, .max11').change(function () {
|
|
prop = "Prop11";
|
|
|
|
par = $('.par11').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min11').val();
|
|
max = $('.max11').val();
|
|
|
|
val = escape($("*[name='prop11'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
$('.par12, .min12, .max12').change(function () {
|
|
prop = "Prop12";
|
|
|
|
par = $('.par12').val();
|
|
if (par == '') par = 0;
|
|
min = $('.min12').val();
|
|
max = $('.max12').val();
|
|
|
|
val = escape($("*[name='prop12'").val());
|
|
$.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) {
|
|
console.log(data);
|
|
$(`.item_stats ul .${prop}`).html(data);
|
|
});
|
|
});
|
|
|
|
|
|
/*
|
|
*
|
|
* END on change for inputs
|
|
*
|
|
*
|
|
*
|
|
* update item index, lvl, lvl req
|
|
*
|
|
*
|
|
*
|
|
**/
|
|
|
|
$("input[name='index']").keyup(function(){
|
|
$(".itemindex").html($(this).val());
|
|
});
|
|
|
|
$('input[name="lvl"]').keyup(function(){
|
|
$(".itemlvl").html("Level: "+$(this).val());
|
|
});
|
|
$('input[name="lvl req"]').keyup(function(){
|
|
$(".itemlvlreq").html("Level Required: "+$(this).val());
|
|
});
|
|
|
|
|
|
// cmd = getUniqueItem
|
|
$('.uniqueitems-select').change(function () {
|
|
|
|
$(".item").attr("src", "/img/items/1.png");
|
|
$(".item_debug_link").attr('href', "/ajax/uniqueitems.php?cmd=getUniqueItem&index=" + this.value)
|
|
$.get("/ajax/uniqueitems.php?cmd=getUniqueItem&index=" + this.value, function (data) {
|
|
|
|
|
|
debugData = (JSON.stringify(data, null, 4));
|
|
$('.debug, .debug_preview').html(syntaxHighlight(debugData));
|
|
props = data.props;
|
|
|
|
// update preview
|
|
//$('.item_stats div').hide().html("<p></p>");
|
|
|
|
invImg = "/img/items/" + data.invfile + ".png";
|
|
$(".item").attr("src", invImg);
|
|
|
|
|
|
type = data["*type"];
|
|
lvlreq = data["lvl req"];
|
|
|
|
base = data.baseItemInfo;
|
|
|
|
$('.item_stats ul .itemindex').html(data.index);
|
|
$('.item_stats ul .itemtype').html(`(${type})`);
|
|
$('.item_stats ul .itemlvl').html(`Level: ${base.level}`);
|
|
$('.item_stats ul .itemlvlreq').html(`Level Required: ${lvlreq}`);
|
|
|
|
$('.item_stats ul .itemcode').html(`Item Code: (${base.code})`);
|
|
|
|
if (base.reqstr) {
|
|
$('.item_stats ul .itemstreq').html(`Required Strength: ${base.reqstr}`);
|
|
}
|
|
if (base.reqdex) {
|
|
$('.item_stats ul .itemdexreq').html(`Required Dexterity: ${base.reqdex}`);
|
|
}
|
|
if (base['gemsockets']) {
|
|
$('.item_stats ul .itemgemsockets').html(`Max Sockets: (${base.gemsockets})`);
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
* THIS LINE BREAKS hidden fields and set them to blank.
|
|
*
|
|
*/
|
|
|
|
$('.props-container select, .props-container input').val('');
|
|
|
|
|
|
|
|
$('.item_stats ul .blue').each(function (i, v) {
|
|
$(v).html("");
|
|
});
|
|
|
|
// add the rest of the prop li's here
|
|
$.each(props, function (i, v) {
|
|
if (v.string) {
|
|
$(`.item_stats ul .${i}`).html(v.string[0]);
|
|
}
|
|
});
|
|
|
|
// add the rest of the prop li's here
|
|
|
|
// var i;
|
|
// for (i = 1; i <= 12; i++) {
|
|
// if (props['Prop' + i]['string'] && props['Prop' + i]['string'] !== '') {
|
|
// $(`.item_stats ul .Prop${i}`).html(`${data.index}`);
|
|
// }
|
|
// }
|
|
|
|
|
|
//$('.item_stats div').show();
|
|
|
|
//console.log(data['lvl req']);
|
|
|
|
$.each(data, function (i, v) {
|
|
$('*[name="' + i + '"]').val(v);
|
|
if (i == 'code') {
|
|
$('select[name="code[]"]').val(v);
|
|
$('select[name="code[]"]').prop('required', '');
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
$(".btnDebug").click(function () {
|
|
$(".debug_preview").slideToggle();
|
|
});
|
|
|
|
|
|
// cmd = sortBy
|
|
$('input[name="sort"]').change(function () {
|
|
$.get("/ajax/uniqueitems.php?cmd=sortBy&sort=" + this.value, function (data) {
|
|
$('.uniqueitems-select').html(data)
|
|
});
|
|
});
|
|
|
|
// cmd = viewOnly
|
|
$('input[name="view"]').change(function () {
|
|
$.get("/ajax/uniqueitems.php?cmd=viewOnly&view=" + this.value, function (data) {
|
|
$('.uniqueitems-select').html(data)
|
|
});
|
|
});
|
|
|
|
searchbox = document.getElementById('search');
|
|
searchbox.addEventListener('input', search);
|
|
|
|
|
|
$('input[name="theme"]').change(function () {
|
|
modname = $('input[name="modname"]').val();
|
|
$.get("/res/css.php?theme=" + this.value + "&modname=" + modname, function (data) {
|
|
location.reload();
|
|
});
|
|
|
|
|
|
// $('body').toggleClass("body-dark");
|
|
// $('.container-top').toggleClass("container-top-dark");
|
|
// $('input').toggleClass("input-dark");
|
|
// $('select').toggleClass("select-dark");
|
|
// $('option').toggleClass("option-dark");
|
|
// $('.col-2,.col-3,.col-4').attr({"style":""});
|
|
});
|
|
|
|
|
|
|
|
//genDocUniqueItems
|
|
$("#Unique .btnDocs").click(function () {
|
|
window.open('/genDocs.php?cmd=genDocUniqueItems', '_blank');
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |