IdlePixel Quick Fight Buttons

Adds buttons to combat tab to quickly start a fight in various combat zones.

目前為 2022-07-09 提交的版本,檢視 最新版本

// ==UserScript==
// @name         IdlePixel Quick Fight Buttons
// @namespace    com.anwinity.idlepixel
// @version      1.2.0
// @description  Adds buttons to combat tab to quickly start a fight in various combat zones.
// @author       Anwinity
// @license      MIT
// @match        *://idle-pixel.com/login/play*
// @grant        none
// @require      https://gf.qytechs.cn/scripts/441206-idlepixel/code/IdlePixel+.js?version=1068464
// ==/UserScript==

(function() {
    'use strict';

    class QuickFightButtonsPlugin extends IdlePixelPlusPlugin {
        constructor() {
            super("quickfight", {
                about: {
                    name: GM_info.script.name,
                    version: GM_info.script.version,
                    author: GM_info.script.author,
                    description: GM_info.script.description
                }
            });
        }

        quickFight(zoneId) {
            Combat.modal_area_last_selected = zoneId;
            IdlePixelPlus.sendMessage(`START_FIGHT=${zoneId}`);
        }

        refreshButtonStates() {
            const fp = IdlePixelPlus.getVarOrDefault("fight_points", 0, "int");
            const energy = IdlePixelPlus.getVarOrDefault("energy", 0, "int");
            Object.values(IdlePixelPlus.info.combatZones).forEach(zone => {
                let disabled = fp < zone.fightPointCost || energy < zone.energyCost;
                if(zone.id == "volcano" && IdlePixelPlus.getVar("volcano_unlocked")!="1") {
                    disabled = true;
                }
                $(`button#quickfight-${zone.id}`).prop("disabled", disabled);
            });
        }

        onVariableSet(key, valueBefore, valueAfter) {
            // fp increments every tick, so don't bother refreshing when energy changes
            if(key=="fight_points" || key=="energy") {
                this.refreshButtonStates();
            }
        }

        onLogin() {
            let html = '<h5>Quick Fight:</h5><div style="display: flex; flex-direction: row">';
            Object.values(IdlePixelPlus.info.combatZones).forEach(zone => {
                html += `<button id="quickfight-${zone.id}" class="m-1" type="button" onclick="IdlePixelPlus.plugins.quickfight.quickFight('${zone.id}')">${zone.id}</button>`;
            });
            html += "</div><hr>";
            $("#panel-combat hr").first().after(html);
            this.refreshButtonStates();
        }

    }

    const plugin = new QuickFightButtonsPlugin();
    IdlePixelPlus.registerPlugin(plugin);

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址