Greasy Fork is available in English.

IdlePixel Select Monster Potion in Combat Tab - GodofNades Fork

Adds in functionality to trigger Select Monster/Select Monster+ potions in the combat tab. Also adds in ability to trigger Combat Loot Potion and Rain Potions in combat. This is a fork of the shtos Rare Potion in Combat Tab script.

// ==UserScript==
// @name         IdlePixel Select Monster Potion in Combat Tab - GodofNades Fork
// @namespace    idlepixel.godofnades.greasyfork
// @version      2.0.0
// @description  Adds in functionality to trigger Select Monster/Select Monster+ potions in the combat tab.  Also adds in ability to trigger Combat Loot Potion and Rain Potions in combat. This is a fork of the shtos Rare Potion in Combat Tab script.
// @author       Original Author: shtos || Modded By: GodofNades
// @license      MIT
// @match        *://idle-pixel.com/login/play*
// @grant        none
// @require https://greasyfork.org/scripts/441206-idlepixel/code/IdlePixel+.js
// ==/UserScript==

(function() {
    'use strict';
    let loaded = false;
    class RarePotionInCombatTabPlugin extends IdlePixelPlusPlugin {
        constructor() {
            super("RarePotionInCombatTab", { // unique plugin id, "sample"
                about: { // optional, but highly recommended
                    name: GM_info.script.name + " (ver: " + GM_info.script.version + ")",
                    version: GM_info.script.version,
                    author: GM_info.script.author,
                    description: GM_info.script.description
                }
            });
        }
        onLogin(){
            $('head').append(`
               <style id="rare-potion-in-combat-styles">
               .fighting-monster-loot-potion{
                   background-color: rgba(32, 36, 33, 0.67);
                   border-color: rgb(255, 255, 255) rgb(255, 255, 255) rgb(255, 255, 255) rgb(255, 255, 255);
                   color: rgb(232, 230, 227);
                   border: 1px solid black;
  border-top-color: black;
  border-top-style: solid;
  border-top-width: 1px;
  border-right-color: black;
  border-bottom-color: black;
  border-bottom-style: solid;
  border-bottom-width: 1px;
  border-left-color: black;
  border-left-style: solid;
  border-left-width: 1px;
padding: 10px;
color: white;
border-bottom-right-radius: 5px;
border-top-right-radius: 5px;
margin-right: -3px;
margin-top: 20px;
               }
                              .fighting-monster-rain-potion{
                   background-color: rgba(38, 115, 153, 0.67);
                   border-color: rgb(33, 207, 247);
                   color: rgb(232, 230, 227);
                   border: 1px solid black;
  border-top-color: black;
  border-top-style: solid;
  border-top-width: 1px;
  border-right-color: black;
  border-bottom-color: black;
  border-bottom-style: solid;
  border-bottom-width: 1px;
  border-left-color: black;
  border-left-style: solid;
  border-left-width: 1px;
padding: 10px;
color: white;
border-bottom-right-radius: 5px;
border-top-right-radius: 5px;
margin-right: -3px;
margin-top: 20px;
               }


               </style>
            `);
            $('#game-panels-combat-items-area .itembox-fight').first().after(`
            <div id="rare-monster-pot-in-combat-tab" class="itembox-fight" data-tooltip="fight">
               <div class="center" style="margin-top: 0.55rem;"><img src="https://d1xsc8x7nc5q8t.cloudfront.net/images/rare_monster_potion.png" title="fight"></div>
               <div class="center" style="display: flex; justify-content: center;">
                  <div id="rare_monster_potion-brew" class="hover" style="padding: 3px; width: 50px;" onclick="IdlePixelPlus.plugins.slapchop.quickBrew('rare_monster_potion')">BREW</div>
                  <div id="rare_monster_potion-use" class="hover" style="padding: 3px; width: 50px;" onclick="Modals.clicks_rare_monster_potion()">USE</div>
               </div>
            </div>
      `)
            $('#rare-monster-pot-in-combat-tab').after(`
<div id="super_rare-monster-pot-in-combat-tab" class="itembox-fight" data-tooltip="fight">
               <div class="center" style="margin-top: 0.55rem;"><img src="https://d1xsc8x7nc5q8t.cloudfront.net/images/super_rare_monster_potion.png" title="fight"></div>
               <div class="center" style="display: flex; justify-content: center;">
                  <div id="super_rare_monster_potion-brew" class="hover" style="padding: 3px; width: 50px;" onclick="IdlePixelPlus.plugins.slapchop.quickBrew('super_rare_monster_potion')">BREW</div>
                  <div id="super_rare_monster_potion-use" class="hover" style="padding: 3px; width: 50px;" onclick="Modals.clicks_super_rare_monster_potion()">USE</div>
               </div>
            </div>
`)
            $('.fight-left-border .td-combat-bottom-panel').after(`
            <div style="" id="fighting-combat_loot_potion" onclick="websocket.send('BREWING_DRINK_COMBAT_LOOT_POTION')" class="fighting-monster-loot-potion hover shadow">
               <img src="https://idlepixel.s3.us-east-2.amazonaws.com/images/combat_loot_potion.png" title="combat_loot_potion_icon">
               <span id="combat_loot_potion-label" style="color: white;">Loot Potions: 0</span>
            </div>`)
            $('.fight-left-border #fighting-combat_loot_potion').after(`
            <div style="" id="fighting-rain_potion" onclick="websocket.send('DRINK=rain_potion')" class="fighting-monster-rain-potion hover shadow">
               <img src="https://idlepixel.s3.us-east-2.amazonaws.com/images/rain_potion.png" title="rain_potion_in_combat_icon">
               <span id="rain_potion-in-combat-label" style="color: white;">Rain Potions: 0</span>
            </div>`)
            loaded = true;
        }
        updateButtons(){
            let potions = ['rare_monster_potion', 'super_rare_monster_potion']
            potions.forEach(potion=>{
                let useButton = document.getElementById(`${potion}-use`)
                let brewButton = document.getElementById(`${potion}-brew`)
                IdlePixelPlus.getVarOrDefault(potion, 0, 'int') ? useButton.style.color = 'white' : useButton.style.color = 'red'
                this.canBrew(potion) ? brewButton.style.color = 'white' : brewButton.style.color = 'red'
            })
            let combatLootPotionsAmount = document.getElementById('combat_loot_potion-label');
            combatLootPotionsAmount.textContent = IdlePixelPlus.getVarOrDefault('combat_loot_potion_timer', 0, 'int') == 0 ?
                'Loot Potions: ' + IdlePixelPlus.getVarOrDefault('combat_loot_potion', 0, 'int') :
            format_time(IdlePixelPlus.getVarOrDefault('combat_loot_potion_timer', 0, 'int'));
            let rainPotionsAmount = document.getElementById('rain_potion-in-combat-label');
            rainPotionsAmount.textContent = IdlePixelPlus.getVarOrDefault('rain_potion_timer', 0, 'int') == 0 ?
                'Rain Potions: ' + IdlePixelPlus.getVarOrDefault('rain_potion', 0, 'int') :
            format_time(IdlePixelPlus.getVarOrDefault('rain_potion_timer', 0, 'int'));
        }
        canBrew(potion){
            let ingredients = Brewing.get_ingredients(potion);
            for (let i=0; i<ingredients.length; i+=2){
                if (IdlePixelPlus.getVarOrDefault(ingredients[i], 0, 'int') < ingredients[i+1]) return false;
            }
            return true;
        }

        onVariableSet(key, valueBefore, valueAfter) {
            if (!loaded){
                this.delay()
                return
            }
            let variables = ['dotted_green_leaf', 'strange_leaf', 'red_mushroom', 'rare_monster_potion', 'super_rare_monster_potion', 'combat_loot_potion', 'combat_loot_potion_timer', 'rain_potion', 'rain_potion_timer'];
            //if (key == 'combat_loot_potion_timer' && valueAfter != 0) return;
            if (variables.includes(key)){
                this.updateButtons();
            }
        }
        delay(){
            if (!loaded){
                setTimeout(()=>{this.delay()}, 1000)
                return
            }
            this.updateButtons();
        }
    }


    const plugin = new RarePotionInCombatTabPlugin();
    IdlePixelPlus.registerPlugin(plugin); // register the plugin

})();