Resource bar helper

Display targets and offsets for warchests

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

// ==UserScript==
// @name         Resource bar helper
// @namespace    http://knightsradiant.pw/
// @version      0.32
// @description  Display targets and offsets for warchests
// @require      https://code.jquery.com/jquery-3.6.0.min.js
// @license      GPL-3.0-or-later
// @author       Talus
// @match        https://politicsandwar.com/*
// @grant        none
// ==/UserScript==

(function() {
    var $ = window.jQuery;

    // ADD YOUR NATION'S REQUIREMENTS BELOW (INTEGERS ONLY, NO SEPARATORS)
    var CREDITS_REQUIRED = 0;
    var URANIUM_REQUIRED = 0;
    var FOOD_REQUIRED = 0;
    var DAYS_OF_RAWS_REQUIRED = 0;
    var GASOLINE_REQUIRED = 0;
    var MUNITIONS_REQUIRED = 0;
    var STEEL_REQUIRED = 0;
    var ALUMINUM_REQUIRED = 0;
    var MONEY_REQUIRED = 0;

    var DAILY_COAL_REQUIRED = 0;
    var DAILY_OIL_REQUIRED = 0;
    var DAILY_LEAD_REQUIRED = 0;
    var DAILY_IRON_REQUIRED = 0;
    var DAILY_BAUXITE_REQUIRED = 0;

    var PROJECT_URANIUM = 0;
    var PROJECT_FOOD = 0;
    var PROJECT_COAL = 0;
    var PROJECT_OIL = 0;
    var PROJECT_LEAD = 0;
    var PROJECT_IRON = 0;
    var PROJECT_BAUXITE = 0;
    var PROJECT_GASOLINE = 0;
    var PROJECT_MUNITIONS = 0;
    var PROJECT_STEEL = 0;
    var PROJECT_ALUMINUM = 0;
    var PROJECT_MONEY = 0;

    var TARGET_PERCENTAGE = 100;
    // DO NOT EDIT BELOW THIS LINE

    var MARKET_URL = 'https://politicsandwar.com/index.php?id=90&display=world&resource1=RESOURCE1&buysell=&ob=price&od=DEF&maximum=100&minimum=0&search=Go'

    var wc = [
        {
            "target": MARKET_URL.replace('RESOURCE1','credits'),
            "icon": '<img src="https://politicsandwar.com/img/icons/16/point_gold.png" alt="credits">',
            "required": Number(CREDITS_REQUIRED * TARGET_PERCENTAGE / 100)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','coal'),
            "icon": '<img src="https://politicsandwar.com/img/resources/coal.png" alt="coal">',
            "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_COAL_REQUIRED * TARGET_PERCENTAGE / 100)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','oil'),
            "icon": '<img src="https://politicsandwar.com/img/resources/oil.png" alt="oil">',
            "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_OIL_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_OIL)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','uranium'),
            "icon": '<img src="https://politicsandwar.com/img/resources/uranium.png" alt="uranium">',
            "required": Number(URANIUM_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_URANIUM)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','lead'),
            "icon": '<img src="https://politicsandwar.com/img/resources/lead.png" alt="lead">',
            "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_LEAD_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_LEAD)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','iron'),
            "icon": '<img src="https://politicsandwar.com/img/resources/iron.png" alt="iron">',
            "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_IRON_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_IRON)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','bauxite'),
            "icon": '<img src="https://politicsandwar.com/img/resources/bauxite.png" alt="bauxite">',
            "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_BAUXITE_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_BAUXITE)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','gasoline'),
            "icon": '<img src="https://politicsandwar.com/img/resources/gasoline.png" alt="gasoline">',
            "required": Number(GASOLINE_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_GASOLINE)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','munitions'),
            "icon": '<img src="https://politicsandwar.com/img/resources/munitions.png" alt="munitions">',
            "required": Number(MUNITIONS_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_MUNITIONS)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','steel'),
            "icon": '<img src="https://politicsandwar.com/img/resources/steel.png" alt="steel">',
            "required": Number(STEEL_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_STEEL)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','aluminum'),
            "icon": '<img src="https://politicsandwar.com/img/resources/aluminum.png" alt="aluminum">',
            "required": Number(ALUMINUM_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_ALUMINUM)
        },
        {
            "target": MARKET_URL.replace('RESOURCE1','food'),
            "icon": '<img src="https://politicsandwar.com/img/icons/16/steak_meat.png" alt="food">',
            "required": Number(FOOD_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_FOOD)
        },
        {
            "target": 'https://politicsandwar.com/nation/revenue/',
            "icon": '<b style="color: #28d020;" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="Money">$</b>',
            "required": Number(MONEY_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_MONEY)
        }
    ]

    var rssCount = document.querySelector("#rssBar > div > div > span").textContent
    .trim().split(/\s+/).filter(function(val){return val != '$'})
    .map(function(x){return Number(x.replace(/,/g,''))});

    var html='<table class="col-xs-12"><tr><td><table><tr><td>Actual:</td></tr><tr><td>Target:</td></tr><tr><td>Difference:</td></tr></table></td>';
    for (var i=0; i<wc.length; i++) {
        var difference = rssCount[i] - wc[i].required;
        var color = difference >= 0 ? '#FFF' : '#000';
        html += '<td><table><tr><td rowspan="3" style="vertical-align:text-top"><a href="'+wc[i].target+'">'+wc[i].icon+'</a></td><td style="text-align:right">'+rssCount[i].toLocaleString()+'</td></tr><tr><td style="text-align:right">'+wc[i].required.toLocaleString()+'</td></tr><tr><td style="text-align:right;color:'+color+'">'+difference.toLocaleString()+'</td></tr></table></td>'
    }
    html += '</tr></table>'

    $("#rssBar > div > div > span").replaceWith(html);
})();