Execute HP

Add Execute Under X HP to Secondary Weapon

Fra 12.04.2024. Se den seneste versjonen.

// ==UserScript==
// @name         Execute HP
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Add Execute Under X HP to Secondary Weapon
// @author       Stig [2648238]
// @match        https://www.torn.com/loader.php?*
// @grant        none
// ==/UserScript==


const executePercent = 21;

(function() {
    'use strict';

    function waitForElement(selector, callback) {
        let el = document.querySelector(selector);
        if (el) {
            callback(el);
        } else {
            setTimeout(function() {
                waitForElement(selector, callback);
            }, 500); // checks every 500ms
        }
    }

    function getDefenderHP() {
        var defender = document.getElementById('defender');
        if (defender) {
            var regex = /^player-health-value_.+$/;
            var spans = defender.querySelectorAll('span');

            for (const span of spans) {
                if (regex.test(span.id)) {
                    var playerTotalHP = processHPValue(span.textContent);
                    return playerTotalHP;
                }
            }
        }
        return null;
    }

    function processHPValue(content) {
        var parts = content.split(' / ');
        if (parts.length > 1) {
            var intValue = parseInt(parts[1].replace(/,/g, ''), 10);
            return intValue;
        }
        return null;
    }

    function render() {
        var weaponSecond = document.getElementById('weapon_second');
        if (weaponSecond) {
            var targetDiv = weaponSecond.querySelector('.bottom___XSBgG');

            if (targetDiv) {
                var newDiv = document.createElement('div');
                newDiv.className = 'custom-execute-under';

                var totalHP = getDefenderHP();
                console.log(totalHP);
                var underHP = Math.ceil(totalHP * (executePercent / 100));
                newDiv.textContent = `Execute Under: ${underHP} HP`;
                targetDiv.parentNode.insertBefore(newDiv, targetDiv.nextSibling);

                // Add CSS
                var css = `.custom-execute-under {position: absolute; top: 70px; left: 24px; font-size: 10px; color: red;}`;
                var style = document.createElement('style');
                document.head.appendChild(style);
                style.appendChild(document.createTextNode(css));
            }
        }

    }

    waitForElement('.bottom___XSBgG', function() {
        render();
    });
})();