//This script is for Keep Craft version 0.8.3 (updated for an undocumented bugfix revision to concrete mixers). If you use it with a newer version, you may break the game. I will try to keep the script up to date! //Keep Craft, by Ernesto Mayoral, can be played at this URL: http://morpheox.github.io/Kraft/ //At later stages in game, Keep Craft becomes very CPU intensive. This script reduces CPU load significantly, primarily by reducing how often the visuals update. //When using this script, you'll notice the game appears to lag when taking action. Be aware the game is still running at full speed behind the scenes, it's only the display that's delayed. //Feel free to send suggestions/pizza to /u/Tyrren on Reddit //INSTRUCTIONS: //You will need to follow these instructions every time you start the game. // 1. Select and copy this entire document // 2. Open your browser's console (instructions here: http://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers) // 3. Paste this document into the console and press enter. var myDelay = 0 var production = new Array() var consumption = new Array() function refresh(){ var energypro=0; var energycon=0; for(key in items){ production[key]=0; consumption[key]=0; } //buildings if(items["coal"]>=people["cargotrain"]*0.005){ consumption["coal"]+=people["cargotrain"]*0.005 if(trademission["trainbuy"]!="nothing" && craft["coin"]>=people["cargotrain"]*0.0125){ craft["coin"]-=people["cargotrain"]*0.0125 production[trademission["trainbuy"]]+=people["cargotrain"]*tradetrain[trademission["trainbuy"]]*0.0125 } } if(buildstatus["workshop"]==1 && items["coal"]>=buildings["workshop"]*0.0075 && items["chemicals"]>=buildings["workshop"]*0.0025) { consumption["coal"]+=buildings["workshop"]*0.0075 consumption["chemicals"]+=buildings["workshop"]*0.0025 bonus["auto"]=buildings["workshop"]*0.10 } else { bonus["auto"]=0 } if (items["coal"]>=buildings["powerplant"]*0.0125 && items["water"]>=buildings["powerplant"]*0.5 && buildstatus["powerplant"]==1) { consumption["water"]+=buildings["powerplant"]*0.5 consumption["coal"]+=buildings["powerplant"]*0.0125 energypro+=(0.25/3.6)*buildings["powerplant"]; bonus["energy"]+=(0.25/3.6)*buildings["powerplant"]; } else if(buildings["powerplant"]>0) { buildstatus["powerplant"]=0; $(".build_powerplant").addClass("off") } if (items["mineral"]>=buildings["cementkiln"]*25 && items["clay"]>=buildings["cementkiln"]*0.5 && bonus["energy"]>=(0.075/3.6)*buildings["cementkiln"] && buildstatus["cementkiln"]==1) { consumption["mineral"]+=buildings["cementkiln"]*25 consumption["clay"]+=buildings["cementkiln"]*0.5 production["cement"]+=buildings["cementkiln"]*0.025 energycon+=(0.075/3.6)*buildings["cementkiln"]; bonus["energy"]-=(0.075/3.6)*buildings["cementkiln"]; } else if(buildings["cementkiln"]>0) { buildstatus["cementkiln"]=0; $(".build_cementkiln").addClass("off") } if (bonus["energy"]>=(0.125/3.6)*buildings["university"] && buildstatus["university"]==1) { craft["book"]+=buildings["university"]*0.000025*(bonus["auto"]+1); production["knowledge"]+=buildings["university"]*0.0125 energycon+=(0.125/3.6)*buildings["university"]; bonus["energy"]-=(0.125/3.6)*buildings["university"]; } else if(buildings["university"]>0) { buildstatus["university"]=0; $(".build_university").addClass("off") } if (items["mineral"]>=buildings["concretemixer"]*12.5 && items["water"]>=buildings["concretemixer"]*0.5 && items["cement"]>=buildings["concretemixer"]*0.5 && bonus["energy"]>=(0.125/3.6)*buildings["concretemixer"] && buildstatus["concretemixer"]==1) { consumption["mineral"]+=buildings["concretemixer"]*12.5 consumption["water"]+=buildings["concretemixer"]*2.5 consumption["cement"]+=buildings["concretemixer"]*0.5 production["concrete"]+=buildings["concretemixer"]*0.0125 energycon+=(0.125/3.6)*buildings["concretemixer"]; bonus["energy"]-=(0.125/3.6)*buildings["concretemixer"]; } else if(buildings["concretemixer"]>0) { buildstatus["concretemixer"]=0; $(".build_concretemixer").addClass("off") } production["wood"]+=buildings["lumbermill"]/20; production["mineral"]+=buildings["mine"]/20; production["water"]+=buildings["fountain"]/10; production["gold"]+=buildings["casino"]/1000; production["knowledge"]+=buildings["scienceoutpost"]/200; production["gold"]+=buildings["tradeoutpost"]/400; production["clay"]+=buildings["quarry"]*0.05; if(technologies["safestorage"]==1){ production["nickel"]+=buildings["quarry"]/4000; } if(technologies["mineralcoal"]==1){ production["coal"]+=buildings["quarry"]*0.005; } craft["token"]+=(buildings["share"]/40)*(bonus["auto"]+1); if (items["water"]>=buildings["pasture"]/20 && buildstatus["pasture"]==1) { consumption["water"]+=buildings["pasture"]/20 production["food"]+=buildings["pasture"]/20; } if (items["mineral"]>=buildings["foundry"]/8 && buildstatus["foundry"]==1) { consumption["mineral"]+=buildings["foundry"]/8 production["iron"]+=buildings["foundry"]/200; if(technologies["bronze"]>0){ production["tin"]+=buildings["foundry"]/800; } } if (items["wood"]>=buildings["kiln"]/2 && buildstatus["kiln"]==1) { consumption["wood"]+=buildings["kiln"]/2 production["coal"]+=buildings["kiln"]/400; } if (items["wood"]>=buildings["shipyard"]*10 && buildstatus["shipyard"]==1) { consumption["wood"]+=buildings["shipyard"]*10 craft["plank"]+=(buildings["shipyard"]/80)*(bonus["auto"]+1); } if (items["gold"]>=buildings["bank"]/40 && buildstatus["bank"]==1) { consumption["gold"]+=buildings["bank"]/40 craft["coin"]+=(buildings["bank"]/200)*(bonus["auto"]+1); } if(buildings["library"]>=8){ production["knowledge"]+=buildings["library"]/400; } if (items["mineral"]>=buildings["crusher"]*2.5 && buildstatus["crusher"]==1) { consumption["mineral"]+=buildings["crusher"]*2.5; production["sand"]+=buildings["crusher"]/8; } if (items["wood"]>=buildings["blockyard"] && items["mineral"]>=buildings["blockyard"]*2 && buildstatus["blockyard"]==1) { consumption["wood"]+=buildings["blockyard"] consumption["mineral"]+=buildings["blockyard"]*2 craft["block"]+=(buildings["blockyard"]/100)*(bonus["auto"]+1); } if (items["wood"]>=buildings["carpentry"]*1.25 && items["iron"]>=buildings["carpentry"]*0.025 && buildstatus["carpentry"]==1) { consumption["wood"]+=buildings["carpentry"]*1.25 consumption["iron"]+=buildings["carpentry"]*0.025 craft["structure"]+=(buildings["carpentry"]/800)*(bonus["auto"]+1); } //people production["food"]+=people["farmer"]/10; if (items["food"]>=people["woodcutter"]/40) { consumption["food"]+=people["woodcutter"]/40 production["wood"]+=people["woodcutter"]/4 } if (items["food"]>=people["miner"]/40) { consumption["food"]+=people["miner"]/40 production["mineral"]+=people["miner"]/4 if(technologies["multitasking"]==1){ production["clay"]+=people["miner"]/80 } } if (items["food"]>=people["sailor"]/20) { consumption["food"]+=people["sailor"]/20 } if (items["mineral"]>=people["smelter"]/20 && items["food"]>=people["smelter"]/40) { consumption["mineral"]+=people["smelter"]/20 consumption["food"]+=people["smelter"]/40 production["copper"]+=people["smelter"]/400 if(technologies["metallurgy"]>0){ production["gold"]+=people["smelter"]/4000 } } if (craft["coin"]>=people["scientist"]/400 && items["food"]>=people["scientist"]/20) { craft["coin"]-=people["scientist"]/400 consumption["food"]+=people["scientist"]/20 production["knowledge"]+=people["scientist"]/200 if(buildings["laboratory"]>=1 && buildstatus["laboratory"]==1){ if(craft["bottle"]>=(buildings["laboratory"]*people["scientist"]*0.00025)){ craft["bottle"]-=(buildings["laboratory"]*people["scientist"]*0.00025) maximums["water"]-=(buildings["laboratory"]*people["scientist"]*0.00025) production["knowledge"]+=(buildings["laboratory"]*people["scientist"]*0.00125) production["chemicals"]+=(buildings["laboratory"]*people["scientist"]*0.00025) } } } if (craft["coin"]>=people["marketer"]*0.0125 && items["food"]>=people["marketer"]/20) { craft["coin"]-=people["marketer"]*0.0125 consumption["food"]+=people["marketer"]/20 craft["bronze"]+=0.00025*people["marketer"]*(bonus["auto"]+1) craft["brick"]+=0.000125*people["marketer"]*(bonus["auto"]+1) craft["glass"]+=0.000125*people["marketer"]*(bonus["auto"]+1) } if (items["iron"]>=people["foundryman"]/100 && items["food"]>=people["foundryman"]/40 && items["coal"]>=people["foundryman"]/200) { consumption["iron"]+=people["foundryman"]/100 consumption["coal"]+=people["foundryman"]/200 consumption["food"]+=people["foundryman"]/40 production["steel"]+=people["foundryman"]/400 if(buildings["blastfurnace"]>=1 && buildstatus["blastfurnace"]==1){ if(items["mineral"]>=(buildings["blastfurnace"]*people["foundryman"]*0.0625)){ consumption["mineral"]+=(buildings["blastfurnace"]*people["foundryman"]*0.0625) production["iron"]+=(buildings["blastfurnace"]*people["foundryman"]*0.0025) } } } if (items["food"]>=people["pikeman"]/40) { consumption["food"]+=people["pikeman"]/40 production["morale"]+=people["pikeman"]/200 } if (items["food"]>=people["swordman"]/10) { consumption["food"]+=people["swordman"]/10 production["morale"]+=people["swordman"]/400 } if (items["food"]>=people["knight"]/2) { consumption["food"]+=people["knight"]/2 production["morale"]+=people["knight"]/100 } consumption["food"]+=people["medic"]/10 if (items["food"]>=people["bersek"]/5 && items["gold"]>=people["bersek"]/400) { consumption["food"]+=people["bersek"]/5 consumption["gold"]+=people["bersek"]/400 production["morale"]+=people["bersek"]/25 } if (items["food"]>=people["warelephant"]*2.5 && items["water"]>=people["warelephant"]/2) { consumption["food"]+=people["warelephant"]*2.5; consumption["water"]+=people["warelephant"]/2; production["morale"]+=people["warelephant"]/200; } if (items["food"]>=people["musketeer"]/10) { consumption["food"]+=people["musketeer"]/10; production["morale"]+=people["musketeer"]*0.0125; } if (bonus["invest"]>=0.025) { bonus["invest"]-=0.025 craft["coin"]+=0.025 } if(myDelay == 11) { var inv_text="" for(key in items){ if(items[key]!=0){ inv_text+=" "; if (bonus[key]>0 || bonus["global"]>0){ inv_text+= ""; } inv_text+="" } } inv_text+="
"+key+": "+intToString(items[key])+" / "+ intToStringRound(maximums[key]*(bonus["storage"]+1))+" ("+parseFloat(4*((production[key]*(bonus[key]+bonus["global"]+1))-consumption[key])).toFixed(2)+")+"+Math.round((bonus[key]+bonus["global"])*100)+"%
" $(".inventory").html(inv_text); $(".population").html("Population: "+population+" / "+ +maximums["population"]); $(".ships").html("Ships: "+ships+" / "+ +maximums["ships"]); $(".trains").html("Trains: "+trains+" / "+ +maximums["trains"]); $(".titles").html("Titles: "+bonus["title"]); $(".territory").html("Territory: "+intToString(bonus["territory"])); var inv_text="" for(key in craft){ if(craft[key]!=0){ if(technologies["logistics"]==1) { inv_text+="" } } inv_text+="
"+key+": "+parseFloat(craft[key]).toFixed(2); } else { inv_text+="
"+key+": "+parseFloat(craft[key]).toFixed(2); } inv_text+="
" $(".inventory_craft").html(inv_text); $(".betamount").attr("max",maximums["bet"]); $(".craftamount").html("Items crafted: "+intToString((1+bonus["craft"]))+"
") } for(key in items){ var result=(production[key]*(bonus[key]+bonus["global"]+1))-consumption[key] if((items[key]+result)<(maximums[key]*(bonus["storage"]+1))){ items[key]+=(production[key]*(bonus[key]+bonus["global"]+1))-consumption[key]; } else { items[key]=(maximums[key]*(bonus["storage"]+1)) } } if(maximums["energy"]>0){ var energynet=energypro-energycon if(bonus["energy"]<0){ bonus["energy"]=0; } if(bonus["energy"]>maximums["energy"]){ bonus["energy"]=maximums["energy"]; } var energyrel=Math.round((bonus["energy"]/maximums["energy"])*100) if(myDelay == 11) { $(".progress-bar").prop("aria-valuenow",energyrel) $(".progress-bar").css("width",energyrel+"%") $(".progress-bar").text(intToString(bonus["energy"])+"KWh") var energytext="" energytext+="Energy production: +" +intToString(energypro*3.6*4)+" MWh
" energytext+="Energy consumption:-" +intToString(energycon*3.6*4)+" MWh
" energytext+="Energy capacity:" +intToString(maximums["energy"])+" KWh
" $(".energylog").html(energytext) } } if (myDelay++ >= 11) { calculatecost() // Tyrren: updates tooltips. Very cpu intensive autorefresh() // Tyrren: updates procedurally generated technology list. Is called by develop() function. myDelay = 0 } }