Greasy Fork

Greasy Fork is available in English.

Stats Counter

try to take over the world!

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Stats Counter
// @namespace    http://tampermonkey.net/
// @version      0.14
// @description  try to take over the world!
// @author       You
// @include      https://s157-en.ogame.gameforge.com/game/index.php?page=overview*
// @include      https://s157-en.ogame.gameforge.com/game/index.php?page=resources*
// @include      https://s157-en.ogame.gameforge.com/game/index.php?page=research*
// @include      https://s157-en.ogame.gameforge.com/game/index.php?page=defense*
// @include      https://s157-en.ogame.gameforge.com/game/index.php?page=shipyard*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var readyStateCheckInterval = setInterval(function() {
    if (document.readyState === "complete") {
        clearInterval(readyStateCheckInterval);
        init();
    }
}, 10);

    
})();

function init()
{


    // OPTIONS
    var ENABLE_RAW_PRODUCTION_COUNTING = true;
    var ENABLE_AFFORDABLE_MINE_COUNTING = true;
    var ENABLE_AFFORDABLE_DEFENSE_COUNTING = true;
    var ENABLE_FLEET_POINTS_COUNTING = true;
    var ENABLE_DEBRIS_FROM_FIELD_COUNTING = true;
    var ENABLE_DEFENSE_POINTS_COUNTING = true;
    var ENABLE_NUMBER_OF_SHIPS_DESTROYED_BY_DEFENSE = true;


    // THESE ARE THE VARIABLES YOU SHOULD SET IF YOU USE THIS IN THE DIFFERENT UNIVERSE
    var UNIVERSE_ECO_SPEED = 6;
    var LINK_TO_OVERVIEW_PAGE = "https://s157-en.ogame.gameforge.com/game/index.php?page=overview";
    var LINK_TO_RESOURCES_PAGE = "https://s157-en.ogame.gameforge.com/game/index.php?page=resources";
    var LINK_TO_RESEARCH_PAGE = "https://s157-en.ogame.gameforge.com/game/index.php?page=research";
    var LINK_TO_DEFENCE_PAGE = "https://s157-en.ogame.gameforge.com/game/index.php?page=defense";
    var LINK_TO_SHIPYARD_PAGE = "https://s157-en.ogame.gameforge.com/game/index.php?page=shipyard";


    var full_planet_info = localStorage.getItem("full_planet_info");

    if (full_planet_info == null) // script is launched the first time
    {

        console.log("full planet info is not present. Setting it up now");
        var planetList = document.getElementById("planetList").children;
        full_planet_info = [];
        var i = 0;
        for (i = 0; i < planetList.length; i++)
        {

            full_planet_info[i] = planetList[i].children[0].children[2].innerText;
        }

        for (i = 0; i < planetList.length; i++)
        {

           full_planet_info[(i*5)+planetList.length] = 0;
            full_planet_info[(i*5)+planetList.length+1] = 0;
            full_planet_info[(i*5)+planetList.length+2] = 0;
            full_planet_info[(i*5)+planetList.length+3] = 0;
            full_planet_info[(i*5)+planetList.length+4] = 0;
        }
        localStorage.setItem("planetCount", planetList.length);
        console.log(full_planet_info);
        localStorage.setItem("full_planet_info", JSON.stringify(full_planet_info));
        localStorage.setItem("plasmaLevel", "0");
        localStorage.setItem("astroLevel", "0");

        // this refreshes the page to make all changes valid!
        document.location.reload(true);
    }
    full_planet_info = JSON.parse(full_planet_info);
    console.log(full_planet_info);
    var plasmaLevel = localStorage.getItem("plasmaLevel");
    var planetCount = localStorage.getItem("planetCount");
    // Define Behaviour on every individual page


    // Shipyard page
    if (window.location.href.includes(LINK_TO_SHIPYARD_PAGE))
    {
       if ( ENABLE_FLEET_POINTS_COUNTING )
       {
       var ships = document.getElementsByClassName("level");

       var lfs = ships[0].innerText.replace(/\D/g, "");
       var hfs = ships[1].innerText.replace(/\D/g, "");
        var cruisers = ships[2].innerText.replace(/\D/g, "");
        var battleships = ships[3].innerText.replace(/\D/g, "");
        var battlecruisers = ships[4].innerText.replace(/\D/g, "");
        var bombers = ships[5].innerText.replace(/\D/g, "");
        var destroyers = ships[6].innerText.replace(/\D/g, "");
        var death_stars = ships[7].innerText.replace(/\D/g, "");
        var small_cargo = ships[8].innerText.replace(/\D/g, "");
        var large_cargo = ships[9].innerText.replace(/\D/g, "");
        var colony_ship = ships[10].innerText.replace(/\D/g, "");
        var recycler = ships[11].innerText.replace(/\D/g, "");
        var probe = ships[12].innerText.replace(/\D/g, "");
        var sat = ships[13].innerText.replace(/\D/g, "");

        var total_points = parseInt(lfs)*4000 + parseInt(hfs)*10000 + parseInt(cruisers)*29000 + parseInt(battleships)*60000 + parseInt(battlecruisers)*85000 + parseInt(bombers)*90000 + parseInt(destroyers)*125000
        + parseInt(death_stars)*10000000 + parseInt(small_cargo)*4000 + parseInt(large_cargo)*12000 + parseInt(colony_ship)*40000 + parseInt(recycler)*18000 + parseInt(probe)*1000 + parseInt(sat)*2500;

        total_points = total_points.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");

        var block_of_text = document.createElement("p");
        block_of_text.style = "white-space: pre;";
        var text = document.createTextNode("Your total fleet points on this planet: " + total_points + "\n\n");
        block_of_text.appendChild(text);

        document.getElementById("inhalt").appendChild(block_of_text);

       }

        if( ENABLE_DEBRIS_FROM_FIELD_COUNTING)
        {
        var total_df_metal = parseInt(lfs)*1200 + parseInt(hfs)*2400 + parseInt(cruisers)*8000 + parseInt(battleships)*18000 + parseInt(battlecruisers)*12000 + parseInt(bombers)*20000 + parseInt(destroyers)*24000
        + parseInt(death_stars)*2000000 + parseInt(small_cargo)*800 + parseInt(large_cargo)*2400 + parseInt(colony_ship)*4000 + parseInt(recycler)*4000;

        var total_df_crystal = parseInt(lfs)*400 + parseInt(hfs)*1600 + parseInt(cruisers)*2800 + parseInt(battleships)*6000 + parseInt(battlecruisers)*16000 + parseInt(bombers)*10000 + parseInt(destroyers)*20000
        + parseInt(death_stars)*1600000 + parseInt(small_cargo)*800 + parseInt(large_cargo)*2400 + parseInt(colony_ship)*8000 + parseInt(recycler)*2400 + parseInt(probe)*400 + parseInt(sat)*800;




        block_of_text = document.createElement("p");
        block_of_text.style = "white-space: pre;";
        text = document.createTextNode("Total debris field from this planet's fleet: " + total_df_metal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " metal + " + total_df_crystal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " crystal" + "\n\n");
        block_of_text.appendChild(text);

        document.getElementById("inhalt").appendChild(block_of_text);

        }


    }

    // Defence page
    if (window.location.href.includes(LINK_TO_DEFENCE_PAGE))
    {
        if (ENABLE_DEFENSE_POINTS_COUNTING)
        {

        var defenses = document.getElementsByClassName("level");


        var rocket_launchers = defenses[0].innerText.replace(/\D/g, "");
        var light_lasers = defenses[1].innerText.replace(/\D/g, "");
        var heavy_lasers = defenses[2].innerText.replace(/\D/g, "");
        var gauss_cannons = defenses[3].innerText.replace(/\D/g, "");
        var ion_cannons = defenses[4].innerText.replace(/\D/g, "");
        var plasma_turrets = defenses[5].innerText.replace(/\D/g, "");
        var small_shield = defenses[6].innerText.replace(/\D/g, "");
        var large_shield = defenses[7].innerText.replace(/\D/g, "");

        var def_total_points = parseInt(rocket_launchers)*2000 + parseInt(light_lasers)*2000 + parseInt(heavy_lasers)*8000 + parseInt(gauss_cannons)*37000 + parseInt(ion_cannons)*8000 + parseInt(plasma_turrets)*130000 + parseInt(small_shield)*20000 + parseInt(large_shield)*100000;

        def_total_points = def_total_points.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");


        block_of_text = document.createElement("p");
        block_of_text.style = "white-space: pre;";
        text = document.createTextNode("Your total defense points on this planet: " + def_total_points + "\n\n");
        block_of_text.appendChild(text);

        document.getElementById("inhalt").appendChild(block_of_text);
        }

        if ( ENABLE_NUMBER_OF_SHIPS_DESTROYED_BY_DEFENSE )
        {
        bombers= Math.floor(plasma_turrets * 0.375)
        battlecruisers = Math.floor(plasma_turrets * 0.4054)
        battleships = Math.floor(plasma_turrets * 0.48387)
        cruisers = parseInt(plasma_turrets) + Math.floor(gauss_cannons * 0.4);
        var heavy_fighters = parseInt(plasma_turrets) + parseInt(gauss_cannons);
        var light_fighters = parseInt(plasma_turrets) + parseInt(gauss_cannons) + Math.floor(heavy_lasers*0.60975);

        var destroyed_points_text = "This planet's defenses are capable of 100%-destroying\n"
        + bombers.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " bombers (" + (bombers*(50000-50000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " metal + " + (bombers*(25000-25000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " crystal + "
        + (bombers*15000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " deuterium loss)\n"
        + battlecruisers.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " battlecruisers (" + (battlecruisers*(30000-30000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " metal + " + (battlecruisers*(40000-40000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " crystal + "
        + (battlecruisers*15000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " deuterium loss)\n"
        + battleships.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " battleships (" + (battleships*(45000-45000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " metal + " + (battlecruisers*(15000-15000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " crystal loss)\n"
        + cruisers.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " cruisers (" + (cruisers*(20000-20000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " metal + " + (cruisers*(7000-7000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " crystal + "
        + (cruisers*2000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " deuterium loss)\n"
        + heavy_fighters.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " heavy fighters (" + (heavy_fighters*(6000-6000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " metal + " + (heavy_fighters*(4000-4000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " crystal loss)\n"
        + light_fighters.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " light fighters (" + (light_fighters*(3000-3000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " metal + " + (light_fighters*(1000-1000*0.4)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " crystal loss)";




        block_of_text = document.createElement("p");
        block_of_text.style = "white-space: pre;";
        text = document.createTextNode(destroyed_points_text);
        block_of_text.appendChild(text);

        document.getElementById("inhalt").appendChild(block_of_text);

        }

    }


    // Resources page
    if(window.location.href.includes(LINK_TO_RESOURCES_PAGE))
    {
// Define planet's index in the local array
        var current_planet_index = 0;
        for (i = 0; i < planetCount; i++)
        {

            if(document.getElementById("planetList").children[i].children[0].className.includes("active"))
            {
               current_planet_index = full_planet_info.indexOf(document.getElementById("planetList").children[i].children[0].children[2].innerText);
                break;
            }
        }

        // Get mine levels and clear them from invalid symbols
        var mine_levels = document.getElementsByClassName("level");
        console.log(mine_levels);
        var metal_mine_level = mine_levels[0].innerText.replace(/\D/g, "");
        var crystal_mine_level = mine_levels[1].innerText.replace(/\D/g, "");
        var deut_synth_level = mine_levels[2].innerText.replace(/\D/g, "");
        var thermoplant_level = mine_levels[4].innerText.replace(/\D/g, "");


        //Load mine levels into the full_planet_info array
        full_planet_info[parseInt(planetCount) + (current_planet_index * 3)] = parseInt(metal_mine_level);
        full_planet_info[parseInt(planetCount) + (current_planet_index * 3) + 1] = parseInt(crystal_mine_level);
        full_planet_info[parseInt(planetCount) + (current_planet_index * 3) + 2] = parseInt(deut_synth_level);
        full_planet_info[parseInt(planetCount)*5+(current_planet_index)] = parseInt(thermoplant_level);

        // Save changes
         localStorage.setItem("full_planet_info", JSON.stringify(full_planet_info));
    }

    // Research page
    if(window.location.href.includes(LINK_TO_RESEARCH_PAGE))
    {

       plasmaLevel = document.getElementsByClassName("level")[4].innerText.replace(/\D/g, "");
       localStorage.setItem("plasmaLevel", plasmaLevel);
    }

    // Overview page
    if(window.location.href.includes(LINK_TO_OVERVIEW_PAGE))
    {
        current_planet_index = 0;
        for (i = 0; i < planetCount; i++)
        {

            if(document.getElementById("planetList").children[i].children[0].className.includes("active"))
            {
               current_planet_index = full_planet_info.indexOf(document.getElementById("planetList").children[i].children[0].children[2].innerText);
                break;
            }
        }

            var average_temp_string = "";

            var planet_details_children_count = document.getElementById("planetDetails").children[0].children[0].children.length;
            if (planet_details_children_count == 5)
            {
              average_temp_string = document.getElementById("planetDetails").children[0].children[0].children[1].children[1].children[0].textContent;
                console.log("defined the string as " + average_temp_string);
            } else {
                console.log("ago is present");
                average_temp_string = document.getElementById("planetDetails").children[0].children[0].children[7].children[1].children[0].textContent;
                console.log("defined the string as " + average_temp_string);
            }


        var min_temp = "";
        var max_temp = "";
        var min_set = false;
        for (i = 0; i < average_temp_string.length; i++)
        {
               if (["-", "0","1","2","3","4","5","6","7","8","9"].indexOf(average_temp_string[i]) != -1 && !min_set)
               { min_temp += average_temp_string[i]; console.log("Adding " + average_temp_string[i] + " to min_temp"); }
               else if (["-", "0","1","2","3","4","5","6","7","8","9"].indexOf(average_temp_string[i]) == -1 && !min_set)
               { min_set = true; console.log("min_temp's definition finished"); }
               else if (["-", "0","1","2","3","4","5","6","7","8","9"].indexOf(average_temp_string[i]) != -1 && min_set)
               { max_temp += average_temp_string[i]; console.log("Adding " + average_temp_string[i] + " to max_temp"); }
        }


        console.log("Temperature defintions finished");
        console.log("parseInt(min_temp) yields " + parseInt(min_temp));
        console.log("parseInt(max_temp) yields " + parseInt(max_temp));

        full_planet_info[parseInt(planetCount)+(parseInt(planetCount)*3)+parseInt(current_planet_index)] = Math.floor((parseInt(max_temp) + parseInt(min_temp)) / 2);
        localStorage.setItem("full_planet_info", JSON.stringify(full_planet_info));

        if (ENABLE_RAW_PRODUCTION_COUNTING)
        {
        var producable_resources_metal = 0;
        var producable_resources_crystal = 0;
        var producable_resources_deut = 0;
        for(var i1 = 0; i1 < planetCount; i1++)
        {
           producable_resources_metal = producable_resources_metal + 30 * (1 + plasmaLevel/100) * UNIVERSE_ECO_SPEED * full_planet_info[parseInt(planetCount) + (i1*3)] * Math.pow(1.1, full_planet_info[parseInt(planetCount) + (i1*3)]) + 30 * UNIVERSE_ECO_SPEED; //full_planet_info[planetCount + (i*3)]

           producable_resources_crystal += 15*UNIVERSE_ECO_SPEED+20*UNIVERSE_ECO_SPEED*(1+plasmaLevel*0.0066)*full_planet_info[parseInt(planetCount) + (i1*3)+1]*Math.pow(1.1, full_planet_info[parseInt(planetCount) + (i1*3)+1]);

           producable_resources_deut += UNIVERSE_ECO_SPEED*(20*full_planet_info[parseInt(planetCount) + (i1*3)+2]*Math.pow(1.1, full_planet_info[parseInt(planetCount) + (i1*3)+2]))*(0.68-0.002*full_planet_info[(parseInt(planetCount)*4+i1)]) + 0.0033 * (UNIVERSE_ECO_SPEED*(20*full_planet_info[parseInt(planetCount) + (i1*3)+2]*Math.pow(1.1, full_planet_info[parseInt(planetCount) + (i1*3)+2]))*(0.68-0.002*full_planet_info[(parseInt(planetCount)*4+i1)])) - 10*UNIVERSE_ECO_SPEED*full_planet_info[parseInt(planetCount)*5+i1]*Math.pow(1.1,full_planet_info[parseInt(planetCount)*5+i1]);
        }

        var debugging_info = "";
        if (isNaN(producable_resources_deut))
        {
            debugging_info = "ERROR RIGHT AFTER COUNTING THE DEUTERIUM PRODUCTION";
        }

        if (isNaN(Math.floor(producable_resources_deut)))
        {
            debugging_info = "ERROR WHILE TRYING TO FLOOR PRODUCABLE DEUT";
        }



        var para1 = document.createElement("p");
        para1.style = "white-space: pre;"
        var text_node = document.createTextNode("Raw resource production (hourly): " + Math.floor(producable_resources_metal).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "; " + Math.floor(producable_resources_crystal).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "; " + Math.floor(parseFloat(producable_resources_deut)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "\n"
                                               + "\Raw resource production (daily): " + (Math.floor(producable_resources_metal)*24).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "; " + (Math.floor(producable_resources_crystal)*24).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "; " + (Math.floor(parseFloat(producable_resources_deut))*24).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "\n\n");
para1.appendChild(text_node);
        var target = document.getElementById("overviewBottom");
        target.appendChild(para1);

        }

        if (ENABLE_AFFORDABLE_MINE_COUNTING)
        {
        var mine_stat_display = "With this production you can afford:\n";

        for (i = 0; i < planetCount; i++)
        {

            var metal_mine_cost_metal = Math.floor(60 * Math.pow(1.5, full_planet_info[parseInt(planetCount) + (i*3)]+1));//full_planet_info[parseInt(planetCount) + (i*3)]
            var metal_mine_cost_crystal = Math.floor(15 * Math.pow(1.5, full_planet_info[parseInt(planetCount) + (i*3)]+1));

            var toAdd = "" + Math.floor(Math.min(producable_resources_metal*24/metal_mine_cost_metal, producable_resources_crystal*24/metal_mine_cost_crystal)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " level " + (full_planet_info[parseInt(planetCount) + (i*3)]+1) + " metal mines daily\n"
            if (!mine_stat_display.includes(toAdd)) { mine_stat_display += toAdd; }

            var crystal_mine_cost_metal = Math.floor(48*Math.pow(1.6, full_planet_info[parseInt(planetCount) + (i*3)+1]+1));
            var crystal_mine_cost_crystal = Math.floor(24*Math.pow(1.6, full_planet_info[parseInt(planetCount) + (i*3)+1]+1));

            toAdd = "" + Math.floor(Math.min(producable_resources_metal*24/crystal_mine_cost_metal, producable_resources_crystal*24/crystal_mine_cost_crystal)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " level " + (full_planet_info[parseInt(planetCount) + (i*3)+1]+1) + " crystal mines daily\n"
            if (!mine_stat_display.includes(toAdd)) { mine_stat_display += toAdd; }

            var deut_mine_cost_metal = Math.floor(225 * Math.pow(1.5, full_planet_info[parseInt(planetCount) + (i*3)+2]+1));//full_planet_info[parseInt(planetCount) + (i*3)]
            var deut_mine_cost_crystal = Math.floor(75 * Math.pow(1.5, full_planet_info[parseInt(planetCount) + (i*3)+2]+1));

            toAdd = "" + Math.floor(Math.min(producable_resources_metal*24/deut_mine_cost_metal, producable_resources_crystal*24/deut_mine_cost_crystal)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " level " + (full_planet_info[parseInt(planetCount) + (i*3)+2]+1) + " deuterium mines daily\n"
            if (!mine_stat_display.includes(toAdd)) { mine_stat_display += toAdd; }
        }

        para1 = document.createElement("p");
        text_node = document.createTextNode(mine_stat_display + "\n\n");
        para1.style = "white-space: pre;"
        para1.appendChild(text_node);
        target.appendChild(para1);
        }

        if (ENABLE_AFFORDABLE_DEFENSE_COUNTING)
        {
        mine_stat_display = "You can build\n" + Math.floor(producable_resources_metal*24/2000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " rocket launchers/\n" + Math.floor(Math.min(producable_resources_metal*24/1500, producable_resources_crystal*24/500)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " light lasers/\n" +  Math.floor(Math.min(producable_resources_metal*24/6000, producable_resources_crystal*24/2000)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " heavy lasers/\n" + Math.floor(Math.min(Math.min(producable_resources_metal*24/20000, producable_resources_crystal*24/15000), producable_resources_deut*24/2000)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " gauss cannons/\n" + Math.floor(Math.min(Math.min(producable_resources_metal*24/50000, producable_resources_crystal*24/50000), producable_resources_deut*24/30000)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " plasma turrets daily!";
        para1 = document.createElement("p");
        text_node = document.createTextNode(mine_stat_display);
        para1.style = "white-space: pre;"
        para1.appendChild(text_node);
        target.appendChild(para1);
        }
    }


}