您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds calculator to factory supply page
// ==UserScript== // @name Virtonomics: Product Quality Calculator // @namespace virtonomics // @include *virtonomic*.*/*/main/unit/view/*/supply // @version 1.1 // @grant none // @description Adds calculator to factory supply page // ==/UserScript== // Written to work in all realms and languages var run = function() { if (window.top != window.self) { //-- Don't run on frames or iframes return; } var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window); $ = win.$; // calculate weighted average quality of inputs function CalcProdQlty() { var total = 0; var pcs = 0; var qlty = document.getElementsByName("qlty"); var numProducts = qlty.length; var tech = parseFloat(document.getElementById("techLvl").value); var qMod = parseFloat(document.getElementById("qltyMod").value); for (var i=0;i<numProducts;i++) { var nRow = productRow.eq(i); var nTbl = $("tbody", nRow).eq(1); var cRow = $("tr", nTbl).eq(0); var amtReq = parseFloat($("td", cRow).eq(1).html().replace(/ /g,'')); var q = parseFloat(qlty[i].value); pcs += amtReq; total += amtReq * q; } var avgQlty = total / pcs; // calculate product quality var t = Math.pow(tech, 0.65); var m = 1 + (qMod / 100); var i = Math.sqrt(avgQlty); var productQuality = t * m * i; console.log (productQuality); document.getElementById("prodQlty").value = productQuality.toFixed(2); } // check for factory subdivision if (/workshop/i.test (document.body.innerHTML) ) { console.log("factory subdivision found"); var tbl = $("table.infoblock")[0]; h1 = $("th", tbl).eq(0); h2 = $("th", tbl).eq(1); var ph1 = h1.parent()[0]; var cell = document.createElement("th"); var cellText = document.createTextNode('Technology: '); cell.appendChild(cellText); ph1.insertBefore(cell,ph1.childNodes[0]); var cell = document.createElement("td"); var input = document.createElement('input'); input.setAttribute("type", "text"); input.setAttribute("id", "techLvl"); input.setAttribute("name", "tech"); input.setAttribute("style", "width:50px"); cell.appendChild(input); ph1.insertBefore(cell,ph1.childNodes[1]); var ph2 = h2.parent()[0]; var tblBody = h2.parent().parent()[0]; var cell = document.createElement("th"); var cellText = document.createTextNode('Quality Modifier: '); cell.appendChild(cellText); ph2.insertBefore(cell,ph2.childNodes[0]); var cell = document.createElement("td"); var input = document.createElement('input'); input.setAttribute("type", "text"); input.setAttribute("value", "0"); input.setAttribute("id", "qltyMod"); input.setAttribute("name", "modifier"); input.setAttribute("style", "width:50px"); cell.appendChild(input); ph2.insertBefore(cell,ph2.childNodes[1]); var row = document.createElement("tr"); var cell = document.createElement("th"); var cellText = document.createTextNode('Product Quality: '); cell.appendChild(cellText); row.appendChild(cell); var cell = document.createElement("td"); var input = document.createElement('input'); input.setAttribute("type", "text"); input.setAttribute("id", "prodQlty"); input.setAttribute("name", "outputQlty"); input.setAttribute("style", "width:50px"); cell.appendChild(input); row.appendChild(cell); var cell = document.createElement("td"); var input=document.createElement("input"); input.type="button"; input.value="Calc"; input.onclick = CalcProdQlty; cell.appendChild(input); row.appendChild(cell); tblBody.appendChild(row); var tbl2 = $("table.list")[0]; tb = $("tbody", tbl2).eq(1); tr = $("tr", tbl2); var productRow = $('tr[id^="product_row_"]'); var product = $("img[src^='/img/products']"); var numInputs = product.length; for (var i=0;i<numInputs;i++) { var pProduct = product.parent().parent().parent().parent()[i]; var cell = document.createElement("td"); var input = document.createElement('input'); input.setAttribute("type", "text"); var newRow = productRow.eq(i); var newTbl = $("tbody", newRow).eq(2); var curRow = $("tr", newTbl).eq(1); $(curRow).css("background-color","orange"); $( "td", curRow ).eq( 1 ).css( "background-color", "yellow" ); stockQlty = $( "td", curRow ).eq( 1 ).html(); input.setAttribute("value", stockQlty); input.setAttribute("name", "qlty"); input.setAttribute("style", "width:50px"); cell.appendChild(input); pProduct.insertBefore(cell,pProduct.childNodes[0]); } } } var script = document.createElement("script"); script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script);