Auto Slayer Skip

Automate easy slayer rerolls for Melvor Idle v0.18.2

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

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

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

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

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         Auto Slayer Skip
// @namespace    http://tampermonkey.net/
// @version      0.3.1
// @description  Automate easy slayer rerolls for Melvor Idle v0.18.2
// @author       Tristo7
// @match        https://*.melvoridle.com/*
// @exclude      https://wiki.melvoridle.com/*
// @grant        none
// @noframes
// ==/UserScript==

const getMonsterHtml = () => {
    const monsterList = MONSTERS.filter((monster, index) => getMonsterCombatLevel(index, true) <= SLAYER.task.Easy.maxLevel && monster.canSlayer);
    // sort alphanumeric ascending by monster name
    monsterList.sort((a,b) => {
        if(a.name < b.name) return -1;
        if(a.name > b.name) return 1;
        return 0;
    });
    let html = ``;
    monsterList.forEach(monster => html += `<option value="${monster.id}">${monster.name}</option>`);
    return html;
};

const autoSkip = () => {
    const mySwitch = document.getElementById("autoSkip");
    return mySwitch !== null && mySwitch.checked;
};

const getSkipHtml = () =>
`<span>AutoSkip</span> <input id="autoSkip" type="checkbox">
<select id="monsterSelect">
    ${getMonsterHtml()}
</select>`;

const loadHtml = setInterval(() => {
    if (!isLoaded) {
        return;
    }
    clearInterval(loadHtml);

    console.log("Auto Slayer Skip Adding...");
    document
        .getElementById("combat-slayer-task-container")
        .insertAdjacentHTML("afterbegin", getSkipHtml());
}, 100);

const slayerSkip = () => {
    if (!autoSkip() || !slayerTask[0])
        return;

    if (slayerTask[0].monsterID != document.getElementById("monsterSelect").value) {
        selectNewSlayerTask(0);
    }
}

setInterval(slayerSkip, 2000);