Rare Potion in combat tab

lol

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

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

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

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

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         Rare Potion in combat tab
// @namespace    namespaceuniquetome
// @version      1.13
// @description  lol
// @author       shtos
// @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,
                    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="websocket.send('DRINK=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="websocket.send('DRINK=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

})();