Ted's market UI

Ted's Diamond Hunt 2 custom market user interface

目前為 2017-04-06 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Ted's market UI
// @namespace    Ted's market UI
// @version      1.233
// @description  Ted's Diamond Hunt 2 custom market user interface
// @author       ted120
// @match        http://*.diamondhunt.co/game.php
// @match        https://*.diamondhunt.co/game.php
// @run-at       document-idle
// @grant        none
// ==/UserScript==

$(document).ready(function () {
    // Customisable
    var myItemList = [["Stone",1],["Blue Chisel Orb",999999999]]; //itemname,price - highlights these pink if matched price or lower (has priority over hideItemList)
    var hideItemList = ["Raw Shark","Stinger","Iron Dagger","Wheat","Bear Fur","Stone","Bones","Ashes","Snake Skin","Bat Skin","Raw Shrimp","Shrimp"];
    var notEnoughCoinsOpacity = true, showMaxCanBuy = true;
    var smallMarketImages = true, marketImageSize = 30; //pixels, default:50, suggested: 30-40
    var itemTooltips = true;
    var autoUndercut = true, undercutBy = 2, matchLowestPriceAt = 20;
    var marketSlotsCustomUi = false; //incomplete leave false

    /* TODO
    add one-click search all button on main market page
    add some form of local storage for settings
    */

    // Below is not intended to be changed

    var debugToConsole = false;
    var arrMarketItems = [];
    var arrMarketSlots = [[0, 0]]; //updateMarketSlots()
    var marketInterval;
    var marketOn = true;
    var quickCalcOn = false, quickCalcElement = document.createElement('div');
    var defaultUndercutOnce;
    var zMarket = document.createElement("div");
    var zMap = document.createElement("span");
    zMap.setAttribute("id","mapSpan");
    zMap.setAttribute("style","color:gold");
    zMap.innerHTML = " You have an incomplete map!";
    var tickStart = new Date().getTime();
    var tickEnd = new Date().getTime();
    var tickTime = tickEnd - tickStart;
    var tickCheck = 0;

    

    function drawButtons() {
        zMarket = document.createElement("div");
        zMarket.setAttribute("id","zMarketId");
        zMarket.innerHTML = "<button id='marketButton' type='button'>Ted's market UI = "+marketOn+"</button><button id='quickCalcButton' type='button'>quickCalc = "+quickCalcOn+"</button>";
        document.getElementById("game-div").appendChild(zMarket);
        document.getElementById("zMarketId").appendChild(zMap);
        document.getElementById("marketButton").addEventListener(
            "click", marketButtonClickAction, false
        );
        document.getElementById("quickCalcButton").addEventListener(
            "click", quickCalcButtonClickAction, false
        );
    }
    function removeButtons() {
        document.getElementById("game-div").removeChild(zMarket);
    }
    function buttonMain() {
        removeButtons();
        drawButtons();
    }
    function nextTick() {
        if (playtime > tickCheck) {
            tickCheck = playtime;
            tickEnd = new Date().getTime();
            tickTime = tickEnd - tickStart;
            if (debugToConsole) { console.log("Tick time: "+ tickTime); }
            tickStart = new Date().getTime();
            return true;
        } else return false;
    }
    function isInArray(array, search)
    {
        return array.indexOf(search) >= 0;
    }
    function itemNameFix(string) { // market style name to var style name; Bat Skin > batSkin
        var a = string.replace(/\s/g, "");
        return a.charAt(0).toLowerCase() + a.slice(1);
    }
    function numberWithCommas(x) {
        return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    }
    function defaultUndercut() {
        if (autoUndercut) {
            if (document.getElementById("dialogue-market-chosenpostitem").parentElement.style.display != "none" && document.getElementById("chosenpostitem-price").value === "" && document.getElementById("chosenpostitem-itemName").value != defaultUndercutOnce) {
                defaultUndercutOnce = document.getElementById("chosenpostitem-itemName").value;
                for (var i = 0; i < arrMarketItems.length; i++) {
                    if (itemNameFix(arrMarketItems[i][0]) == document.getElementById("chosenpostitem-itemName").value) {
                        if (arrMarketItems[i][2][0] > matchLowestPriceAt) {
                            document.getElementById("chosenpostitem-price").value = (arrMarketItems[i][2][0] - undercutBy);
                        } else if (arrMarketItems[i][2][0] <= matchLowestPriceAt) {
                            document.getElementById("chosenpostitem-price").value = arrMarketItems[i][2][0];
                        }
                    }
                }
            } else if (document.getElementById("dialogue-market-chosenpostitem").parentElement.style.display == "none") {
                if (defaultUndercutOnce !== "") {
                    defaultUndercutOnce = "";
                }
                if (document.getElementById("chosenpostitem-price").value !== "") {
                    document.getElementById("chosenpostitem-price").value = "";
                }
                if (document.getElementById("chosenpostitem-itemName").value !== "") {
                    document.getElementById("chosenpostitem-itemName").value = "";
                }
            }
        }
    }
    function addItemTooltips() {
        if (itemTooltips) {
            for (var i = 0; i < arrMarketItems.length; i++) {
                var fixedName = itemNameFix(arrMarketItems[i][0]);
                if (document.getElementById("tooltip-"+fixedName) !== null) {
                    var newTooltip = "<b>Market price: </b><img class='image-icon-20' src='images/coins.png'> "+numberWithCommas(arrMarketItems[i][2][0]);
                    if (document.getElementById("tooltip-"+fixedName).lastElementChild.tagName == "DIV") {
                        document.getElementById("tooltip-"+fixedName).removeChild(document.getElementById("tooltip-"+fixedName).lastChild);
                    }
                    var tooltipElement = document.createElement("div");
                    tooltipElement.innerHTML = newTooltip;
                    document.getElementById("tooltip-"+fixedName).appendChild(tooltipElement);
                }
            }
        }
    }
    function quickCalcMain() {
        if (quickCalcOn) {
            var i, a, b;
            var arrQuickCalcHeat = ["Error, search for all (infinity symbol)", 999999, 0, 999999]; // name, heatprice, amount, logprice, heat
            var arrStargemInput = [["Blewit Mushroom",100,0,0],["Gold Leaf",1,0,0],["Sapphire",1,0,0],["Emerald",1,0,0],["Ruby",1,0,0],["Diamond",1,0,0]];//name,amt need, amt have, ttl price
            var arrStargemOutput = [["Stardust",0]];
            quickCalcElement.style.display = "";
            quickCalcElement.style.color = "#F5F5F5";
            quickCalcElement.innerHTML = "Quick Calc: (for accurate data search market>all before using Quick Calc)<br><br>";
            if (typeof(document.getElementById("market-table").rows[1]) == "undefined" || document.getElementById("market-table").rows[1] === null) {
                quickCalcElement.innerHTML += "Invalid data: search market for ALL first";
            } else if (typeof(document.getElementById("market-table").rows[1]) != "undefined" || document.getElementById("market-table").rows[1] !== null) {
                //heat calc
                for (i = 0; i < arrMarketItems.length; i++) {
                    var arrLogs = [["Logs",1],["Oak Logs",2],["Willow Logs",5],["Maple Logs",10],["Stardust Logs",20]];
                    for (a = 0; a < arrLogs.length; a++) {
                        if (arrMarketItems[i][0] == arrLogs[a][0]) {
                            if (arrMarketItems[i][2][0]/arrLogs[a][1] < arrQuickCalcHeat[1]) {
                                arrQuickCalcHeat[0] = arrMarketItems[i][0];
                                arrQuickCalcHeat[1] = arrMarketItems[i][2][0]/arrLogs[a][1];
                                arrQuickCalcHeat[2] = arrMarketItems[i][2][1];
                                arrQuickCalcHeat[3] = arrMarketItems[i][2][0];
                                arrQuickCalcHeat[4] = arrLogs[a][1];
                            }
                            if (debugToConsole) { console.log(arrMarketItems[i][0],arrMarketItems[i][2][0]/arrLogs[a][1],arrMarketItems[i][2][1]); }
                            if (debugToConsole) { console.log(arrQuickCalcHeat[0],arrQuickCalcHeat[1],arrQuickCalcHeat[2]); }
                        }
                    }
                    //stargem
                    for (a = 0; a < arrStargemInput.length; a++) {
                        if (arrMarketItems[i][0] == arrStargemInput[a][0]) {
                            for (b = 2; b < arrMarketItems[i].length; b++) {
                                if (arrStargemInput[a][2] < arrStargemInput[a][1]) {
                                    if (arrMarketItems[i][b][1] < arrStargemInput[a][1]-arrStargemInput[a][2]) {
                                        arrStargemInput[a][2] += arrMarketItems[i][b][1];
                                        arrStargemInput[a][3] += arrMarketItems[i][b][0]*arrMarketItems[i][b][1];
                                    } else if (arrMarketItems[i][b][1] >= arrStargemInput[a][1]-arrStargemInput[a][2]) {
                                        arrStargemInput[a][3] += (arrStargemInput[a][1]-arrStargemInput[a][2])*arrMarketItems[i][b][0];
                                        arrStargemInput[a][2] = arrStargemInput[a][1];
                                    }
                                    if (debugToConsole) { console.log(arrStargemInput[a][0], arrStargemInput[a][1], arrStargemInput[a][2], arrStargemInput[a][3]); }
                                }
                            }
                        }
                    }
                    for (a = 0; a < arrStargemOutput.length; a++) {
                        if (arrMarketItems[i][0] == arrStargemOutput[a][0]) {
                            arrStargemOutput[a][1] = arrMarketItems[i][2][0];
                            break;
                        }
                    }
                }
                quickCalcElement.innerHTML += "Cheapest heat:<br>"+arrQuickCalcHeat[0]+"<br>Total logs: "+numberWithCommas(arrQuickCalcHeat[2])+" | Total Heat: "+numberWithCommas(arrQuickCalcHeat[4]*arrQuickCalcHeat[2])+"<br>Heat price: "+numberWithCommas(arrQuickCalcHeat[1])+" | Log price: "+numberWithCommas(arrQuickCalcHeat[3])+" | Total price: "+numberWithCommas((arrQuickCalcHeat[3]*arrQuickCalcHeat[2]))+"<br><br>";
                quickCalcElement.innerHTML += "Stargem potion:<br>Input: ";
                for (a = 0; a < 2; a++) {
                    if (arrStargemInput[a][2] != arrStargemInput[a][1]) {
                        quickCalcElement.innerHTML += "!!! < "+arrStargemInput[a][1]+" "+arrStargemInput[a][0]+" x"+arrStargemInput[a][2]+" + ";
                    } else quickCalcElement.innerHTML += numberWithCommas(arrStargemInput[a][3])+" "+arrStargemInput[a][0]+" x"+arrStargemInput[a][2]+" + ";
                }
                for (a = 2; a < arrStargemInput.length; a++) {
                    if (arrStargemInput[a][2] != arrStargemInput[a][1]) {
                        quickCalcElement.innerHTML += "<br>!!! < "+arrStargemInput[a][1]+" "+arrStargemInput[a][0]+" x"+arrStargemInput[a][2]+" + ";
                    } else quickCalcElement.innerHTML += "<br>"+numberWithCommas(arrStargemInput[a][3])+" "+arrStargemInput[a][0]+" = "+numberWithCommas((arrStargemInput[a][3]+arrStargemInput[0][3]+arrStargemInput[1][3]));
                }
                quickCalcElement.innerHTML += "<br>Output: "+arrStargemOutput[0][0]+"<br>@ "+arrStargemOutput[0][1]+" | @ "+(arrStargemOutput[0][1]-1)+" net gain/loss";
                for (a = 2; a < arrStargemInput.length; a++) {
                    if (arrStargemInput[a][2] != arrStargemInput[a][1]) {
                        //
                    } else if (arrStargemInput[a][2] == arrStargemInput[a][1]) {
                        var stargemNet, stargemNet1;
                        if (a == 5) {
                            stargemNet = numberWithCommas(((arrStargemOutput[0][1]-1)*(a*120000))-(arrStargemInput[a][3]+arrStargemInput[0][3]+arrStargemInput[1][3]));
                            stargemNet1 = numberWithCommas(((arrStargemOutput[0][1]-1)*(a*120000))-(arrStargemInput[a][3]+arrStargemInput[0][3]+arrStargemInput[1][3]));
                            quickCalcElement.innerHTML += "<br>"+stargemNet+" | "+stargemNet1+" "+arrStargemInput[a][0]+": "+arrStargemOutput[0][0]+ " x"+numberWithCommas(a*120000)+" = "+numberWithCommas((arrStargemOutput[0][1]*(a*120000)));
                            continue;
                        }
                        stargemNet = numberWithCommas((arrStargemOutput[0][1]*((a-1)*100000))-(arrStargemInput[a][3]+arrStargemInput[0][3]+arrStargemInput[1][3]));
                        stargemNet1 = numberWithCommas(((arrStargemOutput[0][1]-1)*((a-1)*100000))-(arrStargemInput[a][3]+arrStargemInput[0][3]+arrStargemInput[1][3]));
                        quickCalcElement.innerHTML += "<br>"+stargemNet+" | "+stargemNet1+" "+arrStargemInput[a][0]+": "+arrStargemOutput[0][0]+ " x"+numberWithCommas(((a-1)*100000))+" = "+numberWithCommas((arrStargemOutput[0][1]*((a-1)*100000)));
                    }
                }
            }
        } else if (quickCalcOn === false) {
            quickCalcElement.style.display = "none";
        }

    }
    function quickCalcButtonClickAction (zEvent) {
        if (quickCalcOn === true) {
            quickCalcOn = false;
            quickCalcMain();
            buttonMain();
        } else if (quickCalcOn === false) {
            quickCalcOn = true;
            quickCalcMain();
            buttonMain();
        }
    }
    function getMarketItems() {
        var currentItemId, itemName, itemId, itemPrice, itemAmount, itemMarketId, uniqueMarketItems = 0;
        arrMarketItems = [];
        for (var i = 1; i < document.getElementById("market-table").rows.length; i++) {
            if (typeof(document.getElementById("market-table").rows[i].childNodes[0]) != "undefined" && document.getElementById("market-table").rows[i].childNodes[0] !== null) {
                itemName = document.getElementById("market-table").rows[i].childNodes[0].innerHTML;
                itemId = document.getElementById("market-table").rows[i].getAttribute("data-market-itemid");
                itemPrice = document.getElementById("market-table").rows[i].getAttribute("data-market-price");
                itemAmount = document.getElementById("market-table").rows[i].getAttribute("data-market-amount");
                itemMarketId = document.getElementById("market-table").rows[i].getAttribute("data-market-marketid");
                if (itemId != currentItemId) {
                    currentItemId = itemId;
                    uniqueMarketItems++;
                    arrMarketItems.push([itemName, itemId]);
                }
                arrMarketItems[uniqueMarketItems-1].push([itemPrice, itemAmount, itemMarketId, i]);
            }
        }
    }
    function alterMarketSlots() {
        if (marketSlotsCustomUi) {
            if (typeof(document.getElementsByClassName("market-slot")[0].childNodes[1].childNodes[1]) == "undefined") {
                var marketSlotFreeElement = document.createElement("div");
                marketSlotFreeElement.innerHTML = "<div id='dialogue-market-browse-all-div2' style='margin: 10px;' class='basic-smallbox-grey'><input type='image' data-item-name='All Items' onclick='postItemDialogue(document.getElementById(&quot;dialogue-market-postitem-buyorsell&quot;), &quot;ALL&quot;, this);' src='images/icons/infinity.png' class='image-icon-50'></div>";
                document.getElementsByClassName("market-slot")[0].childNodes[1].appendChild(marketSlotFreeElement);
            }
        }
    }
    function alterMarketTable() {
        var i, a, s, maxCanBuy;
        document.getElementById("market-table").rows[0].style.backgroundColor = "gold";
        if (debugToConsole) { console.log(arrMarketItems); }
        for (i = 0; i < arrMarketItems.length; i++) {
            for (a = 2; a < arrMarketItems[i].length; a++) {
                if (smallMarketImages) {
                    document.getElementById("market-table").childNodes[0].childNodes[arrMarketItems[i][a][3]].childNodes[1].childNodes[0].style = "height: "+marketImageSize+"px;width: "+marketImageSize+"px;";
                }
                maxCanBuy = Math.floor(coins / arrMarketItems[i][a][0]);
                if (showMaxCanBuy) {
                    if (maxCanBuy < arrMarketItems[i][a][1]) {
                        document.getElementById("market-table").rows[arrMarketItems[i][a][3]].cells[3].append(" (x"+numberWithCommas(maxCanBuy)+")");
                    } else if (maxCanBuy >= arrMarketItems[i][a][1]) {
                        maxCanBuy = arrMarketItems[i][a][1];
                    }
                }
                if (notEnoughCoinsOpacity && maxCanBuy === 0) {
                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.opacity = "0.3";
                }
                if (document.getElementById("market-table").rows.length < 13) {
                    if (arrMarketItems[i].length >= 4) {
                        if (arrMarketItems[i][2][0] < Math.ceil(arrMarketItems[i][3][0] * 0.86) && arrMarketItems[i][2][0]) {
                            document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#90ee90"; //lightgreen
                            document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
                            document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.fontWeight = 700;
                            document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.backgroundColor = "#ffcc66"; //lightorange
                            document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.display = "";
                        }
                    }
                    for (s = 0; s < arrMarketSlots.length; s++) {
                        if (arrMarketSlots[s][1] === false) {
                            if (arrMarketItems[i][a][2] == arrMarketSlots[s][0]) {
                                if (a == 2) {
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#bffffd"; //lightblue
                                } else if (a > 2) {
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#ffcccc"; //lighterred
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
                                    document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#ff7878"; //lightred
                                    document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
                                } else console.log("for (a... error");
                            }
                        }
                    }
                } else if (document.getElementById("market-table").rows.length > 12) {
                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "red";
                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "none";
                    if (arrMarketItems[i].length == 3 && (!isInArray(hideItemList,arrMarketItems[i][0]))) {
                        document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#ffff66"; //lightyellow
                        document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
                    } else if (arrMarketItems[i].length >= 4 && (!isInArray(hideItemList,arrMarketItems[i][0]))) {
                        if (arrMarketItems[i][2][0] < Math.ceil(arrMarketItems[i][3][0] * 0.86) && arrMarketItems[i][2][0]) {
                            document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#90ee90"; //lightgreen
                            document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
                            document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.fontWeight = 700;
                            document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.backgroundColor = "#ffcc66"; //lightorange
                            document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.display = "";
                        }
                    }
                    for (s = 0; s < arrMarketSlots.length; s++) {
                        if (arrMarketSlots[s][1] === false) {
                            if (arrMarketItems[i][a][2] == arrMarketSlots[s][0]) {
                                if (a == 2) {
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#bffffd"; //lightblue
                                } else if (a > 2) {
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#ffcccc"; //lighterred
                                    document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
                                    document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#ff7878"; //lightred
                                    document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
                                } else console.log("for (a... error");
                            }
                        }
                    }
                    // myItemList
                    for (var b = 0; b < myItemList.length; b++) {
                        if (myItemList[b][0] == arrMarketItems[i][0]) {
                            if (arrMarketItems[i][2][0] <= myItemList[b][1]) {
                                document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#ff99ff"; //pink
                                document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
                                if (arrMarketItems[i].length >= 4) {
                                    document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.backgroundColor = "#ffccff"; //pink
                                    document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.display = "";
                                }
                            }
                        }
                    }
                    if (i == arrMarketItems.length - 1 && a == arrMarketItems[i].length - 1) { //after last item in arrMarketItems
                        quickCalcMain();
                    }
                }
            }
        }
    }
    function updateMarketSlots() {
        arrMarketSlots = [[marketSlot1, false]];
        for (var i = 0; i < arrMarketSlots.length; i++) {
            if (document.getElementById("market-slot-"+(i + 1)+"-free").style.display === "") {
                arrMarketSlots[i][1] = true;
            }
        }
    }
    function marketReloaded() {
        if (typeof(document.getElementById("market-table").rows[0]) != "undefined" && document.getElementById("market-table").rows[0] !== null) {
            // exists
            if (document.getElementById("market-table").rows[0].style.backgroundColor == "silver") {
                updateMarketSlots();
                getMarketItems();
                addItemTooltips();
                alterMarketTable();
            }
        }
    }
    function marketMain() {
        if (marketOn === true) {
            marketInterval = setInterval(marketReloaded, 0);
        }
    }
    function marketButtonClickAction (zEvent) {
        if (marketOn === true) {
            marketOn = false;
            clearInterval(marketInterval);
            buttonMain();
        } else if (marketOn === false) {
            marketOn = true;
            marketMain();
            buttonMain();
        }
    }
    function persistentInterval() {
        if (nextTick()) {
            if (treasureMap > 0 && document.getElementById("mapSpan").style.display !== "") {
                document.getElementById("mapSpan").style.display = "";
            } else if (treasureMap === 0 && document.getElementById("mapSpan").style.display != "none") {
                document.getElementById("mapSpan").style.display = "none";
            }
        }
        defaultUndercut();
    }
    //tedMarketUiSettings();
    drawButtons();
    marketMain();
    document.body.append(quickCalcElement);
    alterMarketSlots();
    setInterval(persistentInterval, 100);
});