Spaces:
Running
Running
// Threnody --------------------------------------------------------- | |
function threnodyLoaded() | |
{ | |
threnodyLoadedBool = true; | |
} | |
var threnodyAudio; | |
function loadThrenody() { | |
threnodyAudio.src = "test.mp3"; | |
threnodyAudio.addEventListener('canplaythrough', threnodyLoaded); | |
} | |
function playThrenody(){ | |
if(threnodyLoadedBool) | |
{ | |
threnodyAudio.play(); | |
} | |
} | |
// Cache all DOM elements | |
function cacheDOMElements(){ | |
wireCostElement = document.getElementById("wireCost"); | |
wireBuyerStatusElement = document.getElementById("wireBuyerStatus"); | |
wireElement = document.getElementById("wire"); | |
fundsElement = document.getElementById("funds"); | |
qCompDisplayElement = document.getElementById("qCompDisplay"); | |
hypnoDroneTextElement = document.getElementById("hypnoDroneText"); | |
readoutElement1 = document.getElementById("readout1"); | |
readoutElement2 = document.getElementById("readout2"); | |
readoutElement3 = document.getElementById("readout3"); | |
readoutElement4 = document.getElementById("readout4"); | |
readoutElement5 = document.getElementById("readout5"); | |
mpdsDivElement = document.getElementById("mdpsDiv"); | |
factoryRebootToolTipElement = document.getElementById("factoryRebootToolTip"); | |
havesterRebootToolTipElement = document.getElementById("harvesterRebootToolTip"); | |
wireDroneRebootToolTipElement = document.getElementById("wireDroneRebootToolTip"); | |
farmRebootToolTipElement = document.getElementById("farmRebootToolTip"); | |
batteryRebootToolTipElement = document.getElementById("batteryRebootToolTip"); | |
swarmSliderDivElement = document.getElementById("swarmSliderDiv"); | |
clipCountCrunchedElement = document.getElementById("clipCountCrunched"); | |
autoTourneyStatusDivElement = document.getElementById("autoTourneyStatusDiv"); | |
autoTourneyControlElement = document.getElementById("autoTourneyControl"); | |
wireBuyerDivElement = document.getElementById("wireBuyerDiv"); | |
tournamentResultsTableElement = document.getElementById("tournamentResultsTable"); | |
tournamentStuffElement = document.getElementById("tournamentStuff"); | |
honorDivElement = document.getElementById("honorDiv"); | |
drifterDivElement = document.getElementById("drifterDiv"); | |
battleCanvasDivElement = document.getElementById("battleCanvasDiv"); | |
combatButtonDivElement = document.getElementById("combatButtonDiv"); | |
factoryUpgradeDisplayElement = document.getElementById("factoryUpgradeDisplay"); | |
droneUpgradeDisplayElement = document.getElementById("droneUpgradeDisplay"); | |
btnMakerProbeElement = document.getElementById("btnMakeProbe"); | |
hazardBodyCountElement = document.getElementById("hazardBodyCount"); | |
probesLostHazardsDisplayElement = document.getElementById("probesLostHazardsDisplay"); | |
driftBodyCountElement = document.getElementById("driftBodyCount"); | |
combatBodyCountElement = document.getElementById("combatBodyCount"); | |
prestigeDivElement = document.getElementById("prestigeDiv"); | |
btnMakePaperclipElement = document.getElementById("btnMakePaperclip"); | |
btnBuyWireElement = document.getElementById("btnBuyWire"); | |
btnMakeClipperElement = document.getElementById("btnMakeClipper"); | |
btnExpandMarketingElement = document.getElementById("btnExpandMarketing"); | |
btnLowerPriceElement = document.getElementById("btnLowerPrice"); | |
btnAddProcElement = document.getElementById("btnAddProc"); | |
btnAddMemElement = document.getElementById("btnAddMem"); | |
btnNewTournamentElement = document.getElementById("btnNewTournament"); | |
btnImproveInvestmentsElement = document.getElementById("btnImproveInvestments"); | |
investmentEngineElement = document.getElementById("investmentEngine"); | |
strategyEngineElement = document.getElementById("strategyEngine"); | |
tournamentManagementElement = document.getElementById("tournamentManagement"); | |
megaClipperDivElement = document.getElementById("megaClipperDiv"); | |
btnMakeMegaClipperElement = document.getElementById("btnMakeMegaClipper"); | |
autoClipperDivElement = document.getElementById("autoClipperDiv"); | |
revPerSecDivElement = document.getElementById("revPerSecDiv"); | |
compDivElement = document.getElementById("compDiv"); | |
creativityDivElement = document.getElementById("creativityDiv"); | |
projectsDivElement = document.getElementById("projectsDiv"); | |
businessDivElement = document.getElementById("businessDiv"); | |
manufacturingDivElement = document.getElementById("manufacturingDiv"); | |
trustDivElement = document.getElementById("trustDiv"); | |
creationDivElement = document.getElementById("creationDiv"); | |
factoryDivElement = document.getElementById("factoryDiv"); | |
wireProductionDivElement = document.getElementById("wireProductionDiv"); | |
wireTransDivElement = document.getElementById("wireTransDiv"); | |
harvesterDivElement = document.getElementById("harvesterDiv"); | |
wireDroneDivElement = document.getElementById("wireDroneDiv"); | |
tothDivElement = document.getElementById("tothDiv"); | |
spaceDivElement = document.getElementById("spaceDiv"); | |
factoryDivSpaceElement = document.getElementById("factoryDivSpace"); | |
droneDivSpaceElement = document.getElementById("droneDivSpace"); | |
probeDesignDivElement = document.getElementById("probeDesignDiv"); | |
increaseProbeTrustDivElement = document.getElementById("increaseProbeTrustDiv"); | |
qComputingElement = document.getElementById("qComputing"); | |
btnMakeFactoryElement = document.getElementById("btnMakeFactory"); | |
btnHarvesterRebootElement = document.getElementById("btnHarvesterReboot"); | |
btnWireDroneRebootElement = document.getElementById("btnWireDroneReboot"); | |
btnFactoryRebootElement = document.getElementById("btnFactoryReboot"); | |
probeTrustUsedDisplayElement = document.getElementById("probeTrustUsedDisplay"); | |
btnIncreaseProbeTrustElement = document.getElementById("btnIncreaseProbeTrust"); | |
btnRaiseProbeSpeedElement = document.getElementById("btnRaiseProbeSpeed"); | |
btnLowerProbeSpeedElement = document.getElementById("btnLowerProbeSpeed"); | |
btnRaiseProbeNavElement = document.getElementById("btnRaiseProbeNav"); | |
btnLowerProbeNavElement = document.getElementById("btnLowerProbeNav"); | |
btnRaiseProbeRepElement = document.getElementById("btnRaiseProbeRep"); | |
btnLowerProbeRepElement = document.getElementById("btnLowerProbeRep"); | |
btnRaiseProbeHazElement = document.getElementById("btnRaiseProbeHaz"); | |
btnLowerProbeHazElement = document.getElementById("btnLowerProbeHaz"); | |
btnRaiseProbeFacElement = document.getElementById("btnRaiseProbeFac"); | |
btnLowerProbeFacElement = document.getElementById("btnLowerProbeFac"); | |
btnRaiseProbeHarvElement = document.getElementById("btnRaiseProbeHarv"); | |
btnLowerProbeHarvElement = document.getElementById("btnLowerProbeHarv"); | |
btnRaiseProbeWireElement = document.getElementById("btnRaiseProbeWire"); | |
btnLowerProbeWireElement = document.getElementById("btnLowerProbeWire"); | |
btnRaiseProbeCombatElement = document.getElementById("btnRaiseProbeCombat"); | |
btnLowerProbeCombatElement = document.getElementById("btnLowerProbeCombat"); | |
coverElement = document.getElementById("cover"); | |
hypnoDroneEventDivElement = document.getElementById("hypnoDroneEventDiv"); | |
unusedClipsDisplayElement = document.getElementById("unusedClipsDisplay"); | |
transWireElement = document.getElementById("transWire"); | |
nanoWireElement = document.getElementById("nanoWire"); | |
clipsElement = document.getElementById("clips"); | |
unsoldClipsElement = document.getElementById("unsoldClips"); | |
yomiDisplayElement = document.getElementById('yomiDisplay'); | |
projectListTopElement = document.getElementById("projectListTop"); | |
driftersKilledElement = document.getElementById('driftersKilled'); | |
availableMatterDisplayElement = document.getElementById('availableMatterDisplay'); | |
clipmakerLevel2Element = document.getElementById('clipmakerLevel2'); | |
clipperCostElement = document.getElementById('clipperCost'); | |
acquiredMatterDisplayElement = document.getElementById('acquiredMatterDisplay'); | |
nanoWireElement = document.getElementById('nanoWire'); | |
probesBornDisplayElement = document.getElementById('probesBornDisplay'); | |
probesTotalDisplayElement = document.getElementById('probesTotalDisplay'); | |
probesLaunchedDisplayElement = document.getElementById('probesLaunchedDisplay'); | |
probeCostDisplayElement = document.getElementById('probeCostDisplay'); | |
probeCombatDisplayElement = document.getElementById('probeCombatDisplay'); | |
probeWireDisplayElement = document.getElementById('probeWireDisplay'); | |
probeHarvDisplayElement = document.getElementById('probeHarvDisplay'); | |
probeFacDisplayElement = document.getElementById('probeFacDisplay'); | |
probeRepDisplayElement = document.getElementById('probeRepDisplay'); | |
probeHazDisplayElement = document.getElementById('probeHazDisplay'); | |
probeNavDisplayElement = document.getElementById('probeNavDisplay'); | |
probeSpeedDisplayElement = document.getElementById('probeSpeedDisplay'); | |
probeTrustDisplayElement = document.getElementById('probeTrustDisplay'); | |
memoryElement = document.getElementById("memory"); | |
processorsElement = document.getElementById("processors"); | |
marginElement = document.getElementById("margin"); | |
marketingLvlElement = document.getElementById('marketingLvl'); | |
adCostElement = document.getElementById('adCost'); | |
factoryCostDisplayElement = document.getElementById('factoryCostDisplay'); | |
factoryLevelDisplayElement = document.getElementById('factoryLevelDisplay'); | |
wireDroneCostDisplayElement = document.getElementById('wireDroneCostDisplay'); | |
wireDroneLevelDisplayElement = document.getElementById('wireDroneLevelDisplay'); | |
harvesterCostDisplayElement = document.getElementById('harvesterCostDisplay'); | |
harvesterLevelDisplayElement = document.getElementById('harvesterLevelDisplay'); | |
megaClipperCostElement = document.getElementById('megaClipperCost'); | |
megaClipperLevelElement = document.getElementById('megaClipperLevel'); | |
investmentBankrollElement = document.getElementById('investmentBankroll'); | |
secValueElement = document.getElementById('secValue'); | |
portValueElement = document.getElementById('portValue'); | |
prestigeUcounterElement = document.getElementById("prestigeUcounter"); | |
prestigeScounterElement = document.getElementById("prestigeScounter"); | |
newTourneyCostElement = document.getElementById("newTourneyCost"); | |
maxTrustDisplayElement = document.getElementById("maxTrustDisplay"); | |
victoryDivElement = document.getElementById("victoryDiv"); | |
probeTrustCostDisplayElement = document.getElementById("probeTrustCostDisplay"); | |
tournamentResultsTableElement = document.getElementById("tournamentResultsTable"); | |
farmCostElement = document.getElementById('farmCost'); | |
batteryCostElement = document.getElementById('batteryCost'); | |
farmLevelElement = document.getElementById('farmLevel'); | |
batteryLevelElement = document.getElementById('batteryLevel'); | |
availableMatterDisplayElement = document.getElementById('availableMatterDisplay'); | |
acquiredMatterDisplayElement = document.getElementById('acquiredMatterDisplay'); | |
mapsElement = document.getElementById('maps'); | |
nanoWireElement = document.getElementById('nanoWire'); | |
wppsElement = document.getElementById('wpps'); | |
probeDesignDivElement = document.getElementById("probeDesignDiv"); | |
increaseProbeTrustDivElement = document.getElementById("increaseProbeTrustDiv"); | |
spaceDivElement = document.getElementById("spaceDiv"); | |
battleCanvasDivElement = document.getElementById("battleCanvasDiv"); | |
honorDivElement = document.getElementById("honorDiv"); | |
wireProductionDivElement = document.getElementById("wireProductionDiv"); | |
wireTransDivElement = document.getElementById("wireTransDiv"); | |
swarmGiftDivElement = document.getElementById("swarmGiftDiv"); | |
swarmEngineElement = document.getElementById("swarmEngine"); | |
swarmSliderDivElement = document.getElementById("swarmSliderDiv"); | |
factoryDivSpaceElement = document.getElementById("factoryDivSpace"); | |
clipsPerSecDivElement = document.getElementById("clipsPerSecDiv"); | |
tothDivElement = document.getElementById("tothDiv"); | |
strategyEngineElement = document.getElementById("strategyEngine"); | |
tournamentManagementElement = document.getElementById("tournamentManagement"); | |
btnQcomputeElement = document.getElementById("btnQcompute"); | |
qComputingElement = document.getElementById("qComputing"); | |
transWireElement = document.getElementById("transWire"); | |
processorDisplayElement = document.getElementById("processorDisplay"); | |
compDivElement = document.getElementById("compDiv"); | |
projectsDivElement = document.getElementById("projectsDiv"); | |
creationDivElement = document.getElementById("creationDiv"); | |
stratPickerElement = document.getElementById("stratPicker"); | |
yomiDisplayElement = document.getElementById("yomiDisplay"); | |
investmentBankrollElement = document.getElementById('investmentBankroll'); | |
secValueElement = document.getElementById('secValue'); | |
portValueElement = document.getElementById('portValue'); | |
investStratElement = document.getElementById("investStrat"); | |
btnRunTournamentElement = document.getElementById("btnRunTournament"); | |
vertStratElement = document.getElementById("vertStrat"); | |
horizStratElement = document.getElementById("horizStrat"); | |
vLabelaElement = document.getElementById("vLabela"); | |
vLabelbElement = document.getElementById("vLabelb"); | |
hLabelaElement = document.getElementById("hLabela"); | |
hLabelbElement = document.getElementById("hLabelb"); | |
aaPayoffHElement = document.getElementById("aaPayoffH"); | |
aaPayoffVElement = document.getElementById("aaPayoffV"); | |
abPayoffHElement = document.getElementById("abPayoffH"); | |
abPayoffVElement = document.getElementById("abPayoffV"); | |
baPayoffHElement = document.getElementById("baPayoffH"); | |
baPayoffVElement = document.getElementById("baPayoffV"); | |
bbPayoffHElement = document.getElementById("bbPayoffH"); | |
bbPayoffVElement = document.getElementById("bbPayoffV"); | |
autoTourneyStatusElement = document.getElementById('autoTourneyStatus'); | |
tournamentTableElement = document.getElementById("tournamentTable"); | |
tournamentResultsTableElement = document.getElementById("tournamentResultsTable"); | |
tourneyDisplayElement = document.getElementById("tourneyDisplay"); | |
payoffCellAAElement = document.getElementById("payoffCellAA"); | |
payoffCellABElement = document.getElementById("payoffCellAB"); | |
payoffCellBAElement = document.getElementById("payoffCellBA"); | |
payoffCellBBElement = document.getElementById("payoffCellBB"); | |
clipmakerLevel2Element = document.getElementById('clipmakerLevel2'); | |
clipperCostElement = document.getElementById('clipperCost'); | |
megaClipperLevelElement = document.getElementById('megaClipperLevel'); | |
megaClipperCostElement = document.getElementById('megaClipperCost'); | |
nextFactoryUpgradeElement = document.getElementById("nextFactoryUpgrade"); | |
nextDroneUpgradeElement = document.getElementById("nextDroneUpgrade"); | |
factoryLevelDisplayElement = document.getElementById('factoryLevelDisplay'); | |
factoryCostDisplayElement = document.getElementById('factoryCostDisplay'); | |
harvesterLevelDisplayElement = document.getElementById('harvesterLevelDisplay'); | |
harvesterCostDisplayElement = document.getElementById('harvesterCostDisplay'); | |
wireDroneLevelDisplayElement = document.getElementById('wireDroneLevelDisplay'); | |
wireDroneCostDisplayElement = document.getElementById('wireDroneCostDisplay'); | |
btnMakeHarvesterElement = document.getElementById("btnMakeHarvester"); | |
btnHarvesterx10Element = document.getElementById("btnHarvesterx10"); | |
btnHarvesterx100Element = document.getElementById("btnHarvesterx100"); | |
btnHarvesterx1000Element = document.getElementById("btnHarvesterx1000"); | |
btnMakeWireDroneElement = document.getElementById("btnMakeWireDrone"); | |
btnWireDronex10Element = document.getElementById("btnWireDronex10"); | |
btnWireDronex100Element = document.getElementById("btnWireDronex100"); | |
btnWireDronex1000Element = document.getElementById("btnWireDronex1000"); | |
sliderElement = document.getElementById("slider"); | |
btnSynchSwarmElement = document.getElementById("btnSynchSwarm"); | |
btnEntertainSwarmElement = document.getElementById("btnEntertainSwarm"); | |
swarmSizeElement = document.getElementById("swarmSize"); | |
swarmGiftsElement = document.getElementById("swarmGifts"); | |
swarmStatusElement = document.getElementById("swarmStatus"); | |
giftCountdownElement = document.getElementById("giftCountdown"); | |
giftTimerElement = document.getElementById("giftTimer"); | |
feedButtonDivElement = document.getElementById("feedButtonDiv"); | |
teachButtonDivElement = document.getElementById("teachButtonDiv"); | |
swarmEntertainCostElement = document.getElementById("swarmEntertainCost"); | |
entertainButtonDivElement = document.getElementById("entertainButtonDiv"); | |
cladButtonDivElement = document.getElementById("cladButtonDiv"); | |
synchButtonDivElement = document.getElementById("synchButtonDiv"); | |
swarmStatusDivElement = document.getElementById("swarmStatusDiv"); | |
swarmEngineElement = document.getElementById("swarmEngine"); | |
farmLevelElement = document.getElementById('farmLevel'); | |
farmCostElement = document.getElementById('farmCost'); | |
batteryLevelElement = document.getElementById('batteryLevel'); | |
batteryCostElement = document.getElementById('batteryCost'); | |
powerProductionRateElement = document.getElementById("powerProductionRate"); | |
powerConsumptionRateElement = document.getElementById("powerConsumptionRate"); | |
storedPowerElement = document.getElementById("storedPower"); | |
facPowConRateElement = document.getElementById("facPowConRate"); | |
dronePowConRateElement = document.getElementById("dronePowConRate"); | |
maxStorageElement = document.getElementById("maxStorage"); | |
performanceElement = document.getElementById("performance"); | |
btnMakeFarmElement = document.getElementById("btnMakeFarm"); | |
btnMakeBatteryElement = document.getElementById("btnMakeBattery"); | |
btnFarmRebootElement = document.getElementById("btnFarmReboot"); | |
btnBatteryRebootElement = document.getElementById("btnBatteryReboot"); | |
btnFarmx10Element = document.getElementById("btnFarmx10"); | |
btnFarmx100Element = document.getElementById("btnFarmx100"); | |
btnBatteryx10Element = document.getElementById("btnBatteryx10"); | |
btnBatteryx100Element = document.getElementById("btnBatteryx100"); | |
powerDivElement = document.getElementById("powerDiv"); | |
adCostElement = document.getElementById('adCost'); | |
marketingLvlElement = document.getElementById('marketingLvl'); | |
demandElement = document.getElementById("demand"); | |
marginElement = document.getElementById("margin"); | |
inchSpanElement = document.getElementById("inchSpan"); | |
demandElement = document.getElementById("demand"); | |
operationsElement = document.getElementById("operations"); | |
trustElement = document.getElementById("trust"); | |
nextTrustElement = document.getElementById("nextTrust"); | |
creativityElement = document.getElementById("creativity"); | |
factoryLevelDisplaySpaceElement = document.getElementById("factoryLevelDisplaySpace"); | |
harvesterLevelSpaceElement = document.getElementById("harvesterLevelSpace"); | |
wireDroneLevelSpaceElement = document.getElementById("wireDroneLevelSpace"); | |
maxOpsElement = document.getElementById("maxOps"); | |
avgSalesElement = document.getElementById("avgSales"); | |
avgRevElement = document.getElementById("avgRev"); | |
probeTrustCostDisplayElement = document.getElementById('probeTrustCostDisplay'); | |
mdpsElement = document.getElementById('mdps'); | |
colonizedDisplayElement = document.getElementById('colonizedDisplay'); | |
probesLostHazardsDisplayElement = document.getElementById('probesLostHazardsDisplay'); | |
probesTotalDisplayElement = document.getElementById('probesTotalDisplay'); | |
probesLostDriftDisplayElement = document.getElementById('probesLostDriftDisplay'); | |
probesTotalDisplayElement = document.getElementById('probesTotalDisplay'); | |
drifterCountElement = document.getElementById('drifterCount'); | |
mapsElement = document.getElementById('maps'); | |
swarmGiftDivElement = document.getElementById("swarmGiftDiv"); | |
swarmEngineElement = document.getElementById("swarmEngine"); | |
clipsPerSecDivElement = document.getElementById("clipsPerSecDiv"); | |
tothDivElement = document.getElementById("tothDiv"); | |
clipmakerRateElement = document.getElementById("clipmakerRate"); | |
clipmakerRate2Element = document.getElementById("clipmakerRate2"); | |
stockSymbolElements.push(document.getElementById("stock1Symbol")); | |
stockAmountElements.push(document.getElementById("stock1Amount")); | |
stockPriceElements.push(document.getElementById("stock1Price")); | |
stockTotalElements.push(document.getElementById("stock1Total")); | |
stockProfitElements.push(document.getElementById("stock1Profit")); | |
stockSymbolElements.push(document.getElementById("stock2Symbol")); | |
stockAmountElements.push(document.getElementById("stock2Amount")); | |
stockPriceElements.push(document.getElementById("stock2Price")); | |
stockTotalElements.push(document.getElementById("stock2Total")); | |
stockProfitElements.push(document.getElementById("stock2Profit")); | |
stockSymbolElements.push(document.getElementById("stock3Symbol")); | |
stockAmountElements.push(document.getElementById("stock3Amount")); | |
stockPriceElements.push(document.getElementById("stock3Price")); | |
stockTotalElements.push(document.getElementById("stock3Total")); | |
stockProfitElements.push(document.getElementById("stock3Profit")); | |
stockSymbolElements.push(document.getElementById("stock4Symbol")); | |
stockAmountElements.push(document.getElementById("stock4Amount")); | |
stockPriceElements.push(document.getElementById("stock4Price")); | |
stockTotalElements.push(document.getElementById("stock4Total")); | |
stockProfitElements.push(document.getElementById("stock4Profit")); | |
stockSymbolElements.push(document.getElementById("stock5Symbol")); | |
stockAmountElements.push(document.getElementById("stock5Amount")); | |
stockPriceElements.push(document.getElementById("stock5Price")); | |
stockTotalElements.push(document.getElementById("stock5Total")); | |
stockProfitElements.push(document.getElementById("stock5Profit")); | |
tourneyResultsElements.push(document.getElementById("results0")); | |
tourneyResultsElements.push(document.getElementById("results1")); | |
tourneyResultsElements.push(document.getElementById("results2")); | |
tourneyResultsElements.push(document.getElementById("results3")); | |
tourneyResultsElements.push(document.getElementById("results4")); | |
tourneyResultsElements.push(document.getElementById("results5")); | |
tourneyResultsElements.push(document.getElementById("results6")); | |
tourneyResultsElements.push(document.getElementById("results7")); | |
} | |
var clipmakerRateElement; | |
var clipmakerRate2Element; | |
var availableMatterDisplayElement; | |
var acquiredMatterDisplayElement; | |
var mapsElement; | |
var nanoWireElement; | |
var wppsElement; | |
var probeDesignDivElement; | |
var increaseProbeTrustDivElement; | |
var spaceDivElement; | |
var battleCanvasDivElement; | |
var honorDivElement; | |
var wireProductionDivElement; | |
var wireTransDivElement; | |
var swarmGiftDivElement; | |
var swarmEngineElement; | |
var swarmSliderDivElement; | |
var factoryDivSpaceElement; | |
var clipsPerSecDivElement; | |
var tothDivElement; | |
var strategyEngineElement; | |
var tournamentManagementElement; | |
var btnQcomputeElement; | |
var qComputingElement; | |
var transWireElement; | |
var processorDisplayElement; | |
var compDivElement; | |
var projectsDivElement; | |
var creationDivElement; | |
var stratPickerElement; | |
var yomiDisplayElement; | |
var investmentBankrollElement; | |
var fundsElement; | |
var secValueElement; | |
var portValueElement; | |
var investStratElement; | |
var btnRunTournamentElement; | |
var vertStratElement; | |
var horizStratElement; | |
var vLabelaElement; | |
var vLabelbElement; | |
var hLabelaElement; | |
var hLabelbElement; | |
var aaPayoffHElement; | |
var aaPayoffVElement; | |
var abPayoffHElement; | |
var abPayoffVElement; | |
var baPayoffHElement; | |
var baPayoffVElement; | |
var bbPayoffHElement; | |
var bbPayoffVElement; | |
var autoTourneyStatusElement; | |
var tournamentTableElement; | |
var tournamentResultsTableElement; | |
var tourneyDisplayElement; | |
var payoffCellAAElement; | |
var payoffCellABElement; | |
var payoffCellBAElement; | |
var payoffCellBBElement; | |
var clipmakerLevel2Element; | |
var clipperCostElement; | |
var megaClipperLevelElement; | |
var megaClipperCostElement; | |
var nextFactoryUpgradeElement; | |
var nextDroneUpgradeElement; | |
var factoryLevelDisplayElement; | |
var factoryCostDisplayElement; | |
var harvesterLevelDisplayElement; | |
var harvesterCostDisplayElement; | |
var wireDroneLevelDisplayElement; | |
var wireDroneCostDisplayElement; | |
var btnMakeHarvesterElement; | |
var btnHarvesterx10Element; | |
var btnHarvesterx100Element; | |
var btnHarvesterx1000Element; | |
var btnMakeWireDroneElement; | |
var btnWireDronex10Element; | |
var btnWireDronex100Element; | |
var btnWireDronex1000Element; | |
var sliderElement; | |
var btnSynchSwarmElement; | |
var btnEntertainSwarmElement; | |
var swarmSizeElement; | |
var swarmGiftsElement; | |
var swarmStatusElement; | |
var giftCountdownElement; | |
var giftTimerElement; | |
var feedButtonDivElement; | |
var teachButtonDivElement; | |
var swarmEntertainCostElement; | |
var entertainButtonDivElement; | |
var cladButtonDivElement; | |
var synchButtonDivElement; | |
var swarmStatusDivElement; | |
var swarmEngineElement; | |
var farmLevelElement; | |
var farmCostElement; | |
var batteryLevelElement; | |
var batteryCostElement; | |
var powerProductionRateElement; | |
var powerConsumptionRateElement; | |
var storedPowerElement; | |
var facPowConRateElement; | |
var dronePowConRateElement; | |
var maxStorageElement; | |
var performanceElement; | |
var btnMakeFarmElement; | |
var btnMakeBatteryElement; | |
var btnFarmRebootElement; | |
var btnBatteryRebootElement; | |
var btnFarmx10Element; | |
var btnFarmx100Element; | |
var btnBatteryx10Element; | |
var btnBatteryx100Element; | |
var powerDivElement; | |
var adCostElement; | |
var marketingLvlElement; | |
var demandElement; | |
var marginElement; | |
var inchSpanElement; | |
var demandElement; | |
var operationsElement; | |
var trustElement; | |
var nextTrustElement; | |
var creativityElement; | |
var factoryLevelDisplaySpaceElement; | |
var harvesterLevelSpaceElement; | |
var wireDroneLevelSpaceElement; | |
var maxOpsElement; | |
var avgSalesElement; | |
var avgRevElement; | |
var probeTrustCostDisplayElement; | |
var mdpsElement; | |
var colonizedDisplayElement; | |
var probesLostHazardsDisplayElement; | |
var probesTotalDisplayElement; | |
var probesLostDriftDisplayElement; | |
var probesTotalDisplayElement; | |
var drifterCountElement; | |
var mapsElement; | |
var swarmGiftDivElement; | |
var swarmEngineElement; | |
var clipsPerSecDivElement; | |
var tothDivElement; | |
var prestigeUcounterElement; | |
var prestigeScounterElement; | |
var newTourneyCostElement; | |
var maxTrustDisplayElement; | |
var victoryDivElement; | |
var probeTrustCostDisplayElement; | |
var tournamentResultsTableElement; | |
var farmCostElement; | |
var batteryCostElement; | |
var farmLevelElement; | |
var batteryLevelElement; | |
var wireDroneCostDisplayElement; | |
var wireDroneLevelDisplayElement; | |
var harvesterCostDisplayElement; | |
var harvesterLevelDisplayElement; | |
var megaClipperCostElement; | |
var megaClipperLevelElement; | |
var investmentBankrollElement; | |
var secValueElement; | |
var portValueElement; | |
var driftersKilledElement; | |
var availableMatterDisplayElement; | |
var clipmakerLevel2Element; | |
var clipperCostElement; | |
var acquiredMatterDisplayElement; | |
var nanoWireElement; | |
var probesBornDisplayElement; | |
var probesTotalDisplayElement; | |
var probesLaunchedDisplayElement; | |
var probeCostDisplayElement; | |
var probeCombatDisplayElement; | |
var probeWireDisplayElement; | |
var probeHarvDisplayElement; | |
var probeFacDisplayElement; | |
var probeRepDisplayElement; | |
var probeHazDisplayElement; | |
var probeNavDisplayElement; | |
var probeSpeedDisplayElement; | |
var probeTrustDisplayElement; | |
var memoryElement; | |
var processorsElement; | |
var marginElement; | |
var marketingLvlElement; | |
var adCostElement; | |
var factoryCostDisplayElement; | |
var factoryLevelDisplayElement; | |
var yomiDisplayElement; | |
var projectListTopElement; | |
var wireCostElement; | |
var wireBuyerStatusElement; | |
var wireElement; | |
var qCompDisplayElement; | |
var hypnoDroneTextElement; | |
var hypnoDroneEventDivElement; | |
var readoutElement1; | |
var readoutElement2; | |
var readoutElement3; | |
var readoutElement4; | |
var readoutElement5; | |
var mpdsDivElement; | |
var factoryRebootToolTipElement; | |
var havesterRebootToolTipElement; | |
var wireDroneRebootToolTipElement; | |
var farmRebootToolTipElement; | |
var batteryRebootToolTipElement; | |
var swarmSliderDivElement; | |
var clipCountCrunchedElement; | |
var autoTourneyStatusDivElement; | |
var autoTourneyControlElement; | |
var wireBuyerDivElement; | |
var tournamentResultsTableElement; | |
var tournamentStuffElement; | |
var honorDivElement; | |
var drifterDivElement; | |
var battleCanvasDivElement; | |
var combatButtonDivElement; | |
var factoryUpgradeDisplayElement; | |
var droneUpgradeDisplayElement; | |
var btnMakerProbeElement; | |
var hazardBodyCountElement; | |
var probesLostHazardsDisplayElement; | |
var driftBodyCountElement; | |
var combatBodyCountElement; | |
var prestigeDivElement; | |
var btnMakePaperclipElement; | |
var btnBuyWireElement; | |
var btnMakeClipperElement; | |
var btnExpandMarketingElement; | |
var btnLowerPriceElement; | |
var btnAddProcElement; | |
var btnAddMemElement; | |
var btnNewTournamentElement; | |
var btnImproveInvestmentsElement; | |
var investmentEngineElement; | |
var strategyEngineElement; | |
var tournamentManagementElement; | |
var megaClipperDivElement; | |
var btnMakeMegaClipperElement; | |
var autoClipperDivElement; | |
var revPerSecDivElement; | |
var compDivElement; | |
var creativityDivElement; | |
var projectsDivElement; | |
var businessDivElement; | |
var manufacturingDivElement; | |
var trustDivElement; | |
var creationDivElement; | |
var factoryDivElement; | |
var wireProductionDivElement; | |
var wireTransDivElement; | |
var harvesterDivElement; | |
var wireDroneDivElement; | |
var tothDivElement; | |
var spaceDivElement; | |
var factoryDivSpaceElement; | |
var droneDivSpaceElement; | |
var probeDesignDivElement; | |
var increaseProbeTrustDivElement; | |
var qComputingElement; | |
var btnMakeFactoryElement; | |
var btnHarvesterRebootElement; | |
var btnWireDroneRebootElement; | |
var btnFactoryRebootElement; | |
var probeTrustUsedDisplayElement; | |
var btnIncreaseProbeTrustElement; | |
var btnRaiseProbeSpeedElement; | |
var btnLowerProbeSpeedElement; | |
var btnRaiseProbeNavElement; | |
var btnLowerProbeNavElement; | |
var btnRaiseProbeRepElement; | |
var btnLowerProbeRepElement; | |
var btnRaiseProbeHazElement; | |
var btnLowerProbeHazElement; | |
var btnRaiseProbeFacElement; | |
var btnLowerProbeFacElement; | |
var btnRaiseProbeHarvElement; | |
var btnLowerProbeHarvElement; | |
var btnRaiseProbeWireElement; | |
var btnLowerProbeWireElement; | |
var btnRaiseProbeCombatElement; | |
var btnLowerProbeCombatElement; | |
var coverElement; | |
var unusedClipsDisplayElement; | |
var transWireElement; | |
var nanoWireElement; | |
var clipsElement; | |
var unsoldClipsElement; | |
var stockSymbolElements = []; | |
var stockAmountElements = []; | |
var stockPriceElements = []; | |
var stockTotalElements = []; | |
var stockProfitElements = []; | |
var tourneyResultsElements = []; | |
// Cache | |
cacheDOMElements(); | |
// Wire -------------------------------------------------------- | |
function adjustWirePrice(){ | |
wirePriceTimer++; | |
if (wirePriceTimer>250 && wireBasePrice>15){ | |
wireBasePrice = wireBasePrice - (wireBasePrice/1000); | |
wirePriceTimer = 0; | |
} | |
if (Math.random() < .015) { | |
wirePriceCounter++; | |
var wireAdjust = 6*(Math.sin(wirePriceCounter)); | |
wireCost = Math.ceil(wireBasePrice + wireAdjust); | |
wireCostElement.innerHTML = wireCost; | |
} | |
} | |
function toggleWireBuyer(){ | |
if (wireBuyerStatus==1){ | |
wireBuyerStatus=0; | |
wireBuyerStatusElement.innerHTML = "OFF"; | |
} else { | |
wireBuyerStatus=1; | |
wireBuyerStatusElement.innerHTML = "ON"; | |
} | |
} | |
function buyWire(){ | |
if(funds >= wireCost){ | |
wirePriceTimer = 0; | |
wire = wire + wireSupply; | |
funds = funds - wireCost; | |
wirePurchase = wirePurchase + 1; | |
wireBasePrice = wireBasePrice + .05; | |
wireElement.innerHTML = formatWithCommas(Math.floor(wire)); | |
fundsElement.innerHTML = formatWithCommas(funds, 2); | |
} | |
} | |
// QCHIPS ----------------------------------------------------------- | |
var qChips = []; | |
var qChipsElements = []; | |
var qChip0 = { | |
waveSeed: .1, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip0); | |
qChipsElements.push(document.getElementById("qChip0")); | |
var qChip1 = { | |
waveSeed: .2, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip1); | |
qChipsElements.push(document.getElementById("qChip1")); | |
var qChip2 = { | |
waveSeed: .3, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip2); | |
qChipsElements.push(document.getElementById("qChip2")); | |
var qChip3 = { | |
waveSeed: .4, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip3); | |
qChipsElements.push(document.getElementById("qChip3")); | |
var qChip4 = { | |
waveSeed: .5, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip4); | |
qChipsElements.push(document.getElementById("qChip4")); | |
var qChip5 = { | |
waveSeed: .6, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip5); | |
qChipsElements.push(document.getElementById("qChip5")); | |
var qChip6 = { | |
waveSeed: .7, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip6); | |
qChipsElements.push(document.getElementById("qChip6")); | |
var qChip7 = { | |
waveSeed: .8, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip7); | |
qChipsElements.push(document.getElementById("qChip7")); | |
var qChip8 = { | |
waveSeed: .9, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip8); | |
qChipsElements.push(document.getElementById("qChip8")); | |
var qChip9 = { | |
waveSeed: 1, | |
value: 0, | |
active: 0, | |
} | |
qChips.push(qChip9); | |
qChipsElements.push(document.getElementById("qChip9")); | |
function quantumCompute(){ | |
qClock = qClock+.01; | |
for (var i = 0; i<qChips.length; i++){ | |
qChips[i].value = Math.sin(qClock*qChips[i].waveSeed*qChips[i].active); | |
qChipsElements[i].style.opacity=qChips[i].value; | |
} | |
} | |
function qComp(){ | |
qFade = 1; | |
var q = 0; | |
if (qChips[0].active == 0){ | |
qCompDisplayElement.innerHTML = "Need Photonic Chips"; | |
} else { | |
for (var i = 0; i<qChips.length; i++){ | |
q = q+qChips[i].value; | |
} | |
var qq = Math.ceil(q*360); | |
var buffer = (memory*1000) - standardOps; | |
var damper = (tempOps/100)+5; | |
if (qq>buffer) { | |
tempOps = tempOps + Math.ceil(qq/damper) - buffer; | |
qq = buffer; | |
opFade = .01; | |
opFadeTimer = 0; | |
} | |
standardOps = standardOps + qq; | |
qCompDisplayElement.innerHTML = "qOps: " + formatWithCommas(Math.ceil(q*360)); | |
} | |
} | |
function manageProjects(){ | |
for(var i = 0; i < projects.length; i++){ | |
if (projects[i].trigger() && (projects[i].uses > 0)){ | |
displayProjects(projects[i]); | |
projects[i].uses = projects[i].uses - 1; | |
activeProjects.push(projects[i]); | |
} | |
} | |
for(var i = 0; i < activeProjects.length; i++){ | |
if (activeProjects[i].cost()){ | |
activeProjects[i].element.disabled = false; | |
} else { | |
activeProjects[i].element.disabled = true; | |
} | |
} | |
} | |
function displayProjects(project){ | |
project.element = document.createElement("button"); | |
project.element.setAttribute("id", project.id); | |
project.element.onclick = function(){project.effect()}; | |
project.element.setAttribute("class", "projectButton"); | |
projectListTopElement.appendChild(project.element, projectListTopElement.firstChild); | |
var span = document.createElement("span"); | |
span.style.fontWeight = "bold"; | |
project.element.appendChild(span); | |
var title = document.createTextNode(project.title); | |
span.appendChild(title); | |
var cost = document.createTextNode(project.priceTag); | |
project.element.appendChild(cost); | |
var div = document.createElement("div"); | |
project.element.appendChild(div); | |
var description = document.createTextNode(project.description); | |
project.element.appendChild(description); | |
blink(project.element); | |
} | |
// HYPNODRONE EVENT ---------------------------------------------------------------- | |
hypnoDroneEventDivElement.style.display = "none"; | |
var longBlinkCounter = 0; | |
function longBlink(element){ | |
{ | |
var handle = setInterval(function () { longToggleVisibility(element)}, 32); | |
} | |
function longToggleVisibility(element){ | |
longBlinkCounter++; | |
if (longBlinkCounter > 5 && longBlinkCounter < 10){ | |
hypnoDroneTextElement.innerHTML="Release"; | |
} | |
if (longBlinkCounter > 30 && longBlinkCounter < 40){ | |
hypnoDroneTextElement.innerHTML="<br /><br /><br />Release"; | |
} | |
if (longBlinkCounter > 45 && longBlinkCounter < 55){ | |
hypnoDroneTextElement.innerHTML="<br />Release"; | |
} | |
if (longBlinkCounter > 55){ | |
hypnoDroneTextElement.innerHTML="Release<br/>the<br/>Hypno<br/>Drones"; | |
} | |
if (longBlinkCounter >= 120){ | |
//console.log("weed wizzard"); | |
clearInterval(handle); | |
longBlinkCounter = 0; | |
element.style.display = "none"; | |
} else { | |
if (element.style.display != ""){ | |
element.style.display = ""; | |
} else { | |
element.style.display = "none"; | |
} | |
} | |
} | |
} | |
function hypnoDroneEvent(){ | |
hypnoDroneTextElement.innerHTML="Release"; | |
longBlink(hypnoDroneEventDivElement); | |
} | |
// MESSAGES ------------------------------------------------------------------------ | |
function displayMessage(msg){ | |
readoutElement5.innerHTML=readoutElement4.innerHTML; | |
readoutElement4.innerHTML=readoutElement3.innerHTML; | |
readoutElement3.innerHTML=readoutElement2.innerHTML; | |
readoutElement2.innerHTML=readoutElement1.innerHTML; | |
readoutElement1.innerHTML=msg; | |
} | |
// BLINK | |
function blink(element){ | |
{ | |
var handle = setInterval(function () { toggleVisibility(element)}, 30); | |
} | |
function toggleVisibility(element){ | |
blinkCounter = blinkCounter+1; | |
if (blinkCounter >= 12){ | |
clearInterval(handle); | |
blinkCounter = 0; | |
element.style.visibility = "visible"; | |
} else { | |
if (element.style.visibility != "hidden"){ | |
element.style.visibility = "hidden"; | |
} else { | |
element.style.visibility = "visible"; | |
} | |
} | |
} | |
} | |
if (investmentEngineFlag == 0){ | |
investmentEngineElement.style.display="none"; | |
} else { | |
investmentEngineElement.style.display=""; | |
} | |
function buttonUpdate(){ | |
if (swarmFlag == 0){ | |
swarmEngineElement.style.display="none"; | |
swarmGiftDivElement.style.display="none"; | |
} else { | |
swarmEngineElement.style.display=""; | |
swarmGiftDivElement.style.display=""; | |
} | |
powerDivElement.style.display="none"; | |
if (spaceFlag==0){ | |
mpdsDivElement.style.display="none"; | |
} else if (spaceFlag==1) { | |
mpdsDivElement.style.display=""; | |
} | |
factoryRebootToolTipElement.innerHTML = "+" + spellf(factoryBill)+" clips"; | |
havesterRebootToolTipElement.innerHTML = "+" + spellf(harvesterBill)+" clips"; | |
wireDroneRebootToolTipElement.innerHTML = "+" + spellf(wireDroneBill)+" clips"; | |
farmRebootToolTipElement.innerHTML = "+" + spellf(farmBill)+" clips"; | |
batteryRebootToolTipElement.innerHTML = "+" + spellf(batteryBill)+" clips"; | |
if (swarmFlag == 1){ | |
swarmSliderDivElement.style.display=""; | |
} else { | |
swarmSliderDivElement.style.display="none"; | |
} | |
clipCountCrunchedElement.innerHTML = spellf(Math.round(clips)); | |
if (autoTourneyFlag==1) { | |
autoTourneyStatusDivElement.style.display=""; | |
autoTourneyControlElement.style.display=""; | |
} else { | |
autoTourneyStatusDivElement.style.display="none"; | |
autoTourneyControlElement.style.display="none"; | |
} | |
qCompDisplayElement.style.opacity = qFade; | |
qFade = qFade - .001; | |
if (wireBuyerFlag==1) { | |
wireBuyerDivElement.style.display=""; | |
} else { | |
wireBuyerDivElement.style.display="none"; | |
} | |
if (resultsFlag == 1 && autoTourneyFlag == 1 && autoTourneyStatus ==1 && tournamentResultsTableElement.style.display == "") { | |
resultsTimer++; | |
if (resultsTimer>=300 && operations>=tourneyCost){ | |
newTourney(); | |
runTourney(); | |
resultsTimer = 0; | |
} | |
} | |
tournamentStuffElement.onmouseover = function() {revealGrid()}; //m@: does this need to happen every button update? idts, but TODO: look this up | |
tournamentStuffElement.onmouseout = function() {revealResults()}; | |
honorDivElement.style.display=""; | |
if (battleFlag == 0){ | |
drifterDivElement.style.display="none"; | |
} else { | |
drifterDivElement.style.display=""; | |
} | |
if (battleFlag == 0){ | |
battleCanvasDivElement.style.display="none"; | |
} else { | |
battleCanvasDivElement.style.display=""; | |
} | |
combatButtonDivElement.style.display = ""; | |
factoryUpgradeDisplayElement.style.display = "none"; | |
if (maxDroneLevel>=50000){ | |
droneUpgradeDisplayElement.style.display = "none"; | |
} | |
if (unusedClips<probeCost){btnMakerProbeElement.disabled = true; | |
} else { | |
btnMakerProbeElement.disabled = false; | |
} | |
if (probesLostHaz<1) {hazardBodyCountElement.style.display = "none"; | |
} else { | |
hazardBodyCountElement.style.display = ""; | |
probesLostHazardsDisplayElement.innerHTML = spellf(probesLostHaz); | |
} | |
if (probesLostDrift<1) {driftBodyCountElement.style.display = "none"; | |
} else { | |
driftBodyCountElement.style.display = ""; | |
} | |
if (probesLostCombat<1) {combatBodyCountElement.style.display = "none"; | |
} else { | |
combatBodyCountElement.style.display = ""; | |
} | |
if (prestigeU<1 && prestigeS<1) {prestigeDivElement.style.display = "none"; | |
} else { | |
prestigeDivElement.style.display = ""; | |
} | |
if (wire<1){btnMakePaperclipElement.disabled = true; | |
} else { | |
btnMakePaperclipElement.disabled = false; | |
} | |
if (funds<wireCost){btnBuyWireElement.disabled = true; | |
} else { | |
btnBuyWireElement.disabled = false; | |
} | |
if (funds<clipperCost){btnMakeClipperElement.disabled = true; | |
} else { | |
btnMakeClipperElement.disabled = false; | |
} | |
if (funds<adCost){btnExpandMarketingElement.disabled = true; | |
} else { | |
btnExpandMarketingElement.disabled = false; | |
} | |
if (margin<=.01){btnLowerPriceElement.disabled = true; | |
} else { | |
btnLowerPriceElement.disabled = false; | |
} | |
if (trust<=processors+memory && swarmGifts <= 0){ | |
btnAddProcElement.disabled = true; | |
btnAddMemElement.disabled = true; | |
} else { | |
btnAddProcElement.disabled = false; | |
btnAddMemElement.disabled = false; | |
} | |
if (operations>=tourneyCost && tourneyInProg == 0){ | |
btnNewTournamentElement.disabled = false; | |
} else { | |
btnNewTournamentElement.disabled = true; | |
} | |
if (strategyEngineFlag == 0){ | |
strategyEngineElement.style.display="none"; | |
tournamentManagementElement.style.display="none"; | |
} else { | |
strategyEngineElement.style.display=""; | |
tournamentManagementElement.style.display=""; | |
} | |
if (megaClipperFlag == 0){ | |
megaClipperDivElement.style.display="none"; | |
} else { | |
megaClipperDivElement.style.display=""; | |
} | |
if (funds < megaClipperCost) { btnMakeMegaClipperElement.disabled = true; | |
} else { | |
btnMakeMegaClipperElement.disabled = false; | |
} | |
if (autoClipperFlag === 0){ | |
autoClipperDivElement.style.display="none"; | |
} else { | |
autoClipperDivElement.style.display=""; | |
} | |
if (funds>=5) { | |
autoClipperFlag = 1; | |
} | |
if (revPerSecFlag === 0){ | |
revPerSecDivElement.style.display="none"; | |
} else { | |
revPerSecDivElement.style.display=""; | |
} | |
if (compFlag === 0){ | |
compDivElement.style.display="none"; | |
} else { | |
compDivElement.style.display=""; | |
} | |
if (creativityOn === 0){ | |
creativityDivElement.style.display="none"; | |
} else { | |
creativityDivElement.style.display=""; | |
} | |
if (projectsFlag === 0){ | |
projectsDivElement.style.display="none"; | |
} else { | |
projectsDivElement.style.display=""; | |
} | |
if (humanFlag === 0){ | |
businessDivElement.style.display="none"; | |
manufacturingDivElement.style.display="none"; | |
trustDivElement.style.display="none"; | |
investmentEngineFlag = 0; | |
wireBuyerFlag = 0; | |
creationDivElement.style.display=""; | |
} else { | |
businessDivElement.style.display=""; | |
manufacturingDivElement.style.display=""; | |
trustDivElement.style.display=""; | |
creationDivElement.style.display="none"; | |
} | |
if (factoryFlag === 0){ | |
factoryDivElement.style.display="none"; | |
} else { | |
factoryDivElement.style.display=""; | |
} | |
if (wireProductionFlag === 0){ | |
wireProductionDivElement.style.display="none"; | |
} else { | |
wireProductionDivElement.style.display=""; | |
wireTransDivElement.style.display="none"; | |
} | |
if (harvesterFlag === 0){ | |
harvesterDivElement.style.display="none"; | |
} else { | |
harvesterDivElement.style.display=""; | |
} | |
if (wireDroneFlag === 0){ | |
wireDroneDivElement.style.display="none"; | |
} else { | |
wireDroneDivElement.style.display=""; | |
} | |
if (tothFlag === 0){ | |
tothDivElement.style.display="none"; | |
} else { | |
tothDivElement.style.display=""; | |
} | |
if (spaceFlag === 0){ | |
spaceDivElement.style.display="none"; | |
factoryDivSpaceElement.style.display="none"; | |
droneDivSpaceElement.style.display="none"; | |
probeDesignDivElement.style.display = "none"; | |
increaseProbeTrustDivElement.style.display = "none"; | |
} else { | |
spaceDivElement.style.display=""; | |
factoryDivSpaceElement.style.display = ""; | |
droneDivSpaceElement.style.display=""; | |
probeDesignDivElement.style.display=""; | |
increaseProbeTrustDivElement.style.display=""; | |
factoryDivElement.style.display="none"; | |
harvesterDivElement.style.display="none"; | |
wireDroneDivElement.style.display="none"; | |
} | |
if (qFlag === 0){ | |
qComputingElement.style.display="none"; | |
} else { | |
qComputingElement.style.display=""; | |
} | |
if (unusedClips < factoryCost) {btnMakeFactoryElement.disabled = true; | |
} else { | |
btnMakeFactoryElement.disabled = false; | |
} | |
if (harvesterLevel === 0) {btnHarvesterRebootElement.disabled = true; | |
} else { | |
btnHarvesterRebootElement.disabled = false; | |
} | |
if (wireDroneLevel === 0) {btnWireDroneRebootElement.disabled = true; | |
} else { | |
btnWireDroneRebootElement.disabled = false; | |
} | |
if (factoryLevel === 0) {btnFactoryRebootElement.disabled = true; | |
} else { | |
btnFactoryRebootElement.disabled = false; | |
} | |
// PROBE DESIGN | |
probeUsedTrust = (probeSpeed+probeNav+probeRep+probeHaz+probeFac+probeHarv+probeWire+probeCombat); | |
probeTrustUsedDisplayElement.innerHTML = probeUsedTrust; | |
if (yomi < probeTrustCost || probeTrust >= maxTrust) {btnIncreaseProbeTrustElement.disabled = true; | |
} else {btnIncreaseProbeTrustElement.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeSpeedElement.disabled = true; | |
} else {btnRaiseProbeSpeedElement.disabled = false;} | |
if (probeSpeed < 1) {btnLowerProbeSpeedElement.disabled = true; | |
} else {btnLowerProbeSpeedElement.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeNavElement.disabled = true; | |
} else {btnRaiseProbeNavElement.disabled = false;} | |
if (probeNav < 1) {btnLowerProbeNavElement.disabled = true; | |
} else {btnLowerProbeNavElement.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeRepElement.disabled = true; | |
} else {btnRaiseProbeRepElement.disabled = false;} | |
if (probeRep < 1) {btnLowerProbeRepElement.disabled = true; | |
} else {btnLowerProbeRepElement.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeHazElement.disabled = true; | |
} else {btnRaiseProbeHazElement.disabled = false;} | |
if (probeHaz < 1) {btnLowerProbeHaz.disabled = true; | |
} else {btnLowerProbeHaz.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeFacElement.disabled = true; | |
} else {btnRaiseProbeFacElement.disabled = false;} | |
if (probeFac < 1) {btnLowerProbeFacElement.disabled = true; | |
} else {btnLowerProbeFacElement.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeHarvElement.disabled = true; | |
} else {btnRaiseProbeHarvElement.disabled = false;} | |
if (probeHarv < 1) {btnLowerProbeHarvElement.disabled = true; | |
} else {btnLowerProbeHarvElement.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeWireElement.disabled = true; | |
} else {btnRaiseProbeWireElement.disabled = false;} | |
if (probeWire < 1) {btnLowerProbeWireElement.disabled = true; | |
} else {btnLowerProbeWireElement.disabled = false;} | |
if (probeTrust - probeUsedTrust < 1) {btnRaiseProbeCombatElement.disabled = true; | |
} else {btnRaiseProbeCombatElement.disabled = false;} | |
if (probeCombat < 1) {btnLowerProbeCombatElement.disabled = true; | |
} else {btnLowerProbeCombatElement.disabled = false;} | |
coverElement.style.display="none"; | |
} | |
//----------INVESTMENTS---------------------------------------------------------------- | |
var stocks = []; | |
var alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]; | |
var portfolioSize = 0; | |
var stockID = 0; | |
var secTotal = 0; | |
var portTotal = 0; | |
var sellDelay = 0; | |
var riskiness = 5; | |
var maxPort = 5; | |
var m = 0; | |
var investLevel = 0; | |
var investUpgradeCost = 100; | |
var stockGainThreshold = .5; | |
var ledger = 0; | |
var stockReportCounter = 0; | |
function investUpgrade(){ | |
yomi = yomi - investUpgradeCost; | |
investLevel++; | |
investmentLevelElement.innerHTML=investLevel; | |
stockGainThreshold = stockGainThreshold + .01; | |
investUpgradeCost = Math.floor(Math.pow(investLevel+1, Math.E)*100); | |
investUpgradeCostElement.innerHTML = formatWithCommas(investUpgradeCost); | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
displayMessage("Investment engine upgraded, expected profit/loss ratio now "+stockGainThreshold); | |
} | |
function investDeposit(){ | |
ledger = ledger - Math.floor(funds); | |
bankroll = Math.floor(bankroll + funds); | |
funds = 0; | |
investmentBankrollElement.innerHTML = formatWithCommas(bankroll); | |
fundsElement.innerHTML = formatWithCommas(funds,2); | |
portValueElement.innerHTML = formatWithCommas(portTotal); | |
} | |
function investWithdraw(){ | |
ledger = ledger + bankroll; | |
funds = funds + bankroll; | |
bankroll = 0; | |
investmentBankrollElement.innerHTML = formatWithCommas(bankroll); | |
fundsElement.innerHTML = formatWithCommas(funds,2); | |
portValueElement.innerHTML = formatWithCommas(portTotal); | |
} | |
function stockShop(){ | |
var budget = Math.ceil(portTotal/riskiness); | |
var r = 11 - riskiness; | |
var reserves = Math.ceil(portTotal/r); | |
if (riskiness==1){ | |
reserves = 0; | |
} | |
if ((bankroll-budget)<reserves && riskiness == 1 && bankroll >(portTotal/10)){ | |
budget = bankroll; | |
} else if ((bankroll-budget)<reserves && riskiness == 1){ | |
budget = 0; | |
} else if ((bankroll-budget)<reserves){ | |
budget = bankroll - reserves; | |
} | |
if (portfolioSize < maxPort && bankroll >= 5 && budget >= 1 && bankroll - budget >= reserves){ | |
if (Math.random() < .25){ | |
createStock(budget); | |
} | |
} | |
} | |
function createStock(dollars){ | |
stockID++; | |
var sym = generateSymbol(); | |
var roll = Math.random(); | |
if (roll>.99){ | |
var pri = Math.ceil(Math.random()*3000); | |
} else if (roll>.85){ | |
var pri = Math.ceil(Math.random()*500); | |
} else if (roll>.60){ | |
var pri = Math.ceil(Math.random()*150); | |
} else if (roll>.20){ | |
var pri = Math.ceil(Math.random()*50); | |
} else { | |
var pri = Math.ceil(Math.random()*15); | |
} | |
if (pri>dollars){ | |
pri = Math.ceil(dollars*roll); | |
} | |
var amt = Math.floor(dollars/pri); | |
if (amt>1000000){ | |
amt = 1000000; | |
} | |
var newStock = { | |
id: stockID, | |
symbol: sym, | |
price: pri, | |
amount: amt, | |
total: pri * amt, | |
profit: 0, | |
age: 0, | |
} | |
stocks.push(newStock); | |
portfolioSize = stocks.length; | |
bankroll = bankroll - (pri*amt); | |
investmentBankrollElement.innerHTML = formatWithCommas(bankroll); | |
secValueElement.innerHTML = formatWithCommas(secTotal); | |
portValueElement.innerHTML = formatWithCommas(portTotal); | |
} | |
function sellStock(){ | |
bankroll = bankroll + stocks[0].total; | |
investmentBankrollElement.innerHTML = formatWithCommas(bankroll); | |
secValueElement.innerHTML = formatWithCommas(secTotal); | |
portValueElement.innerHTML = formatWithCommas(portTotal); | |
stocks.splice(0, 1); | |
portfolioSize = stocks.length; | |
} | |
function generateSymbol(){ | |
var ltrNum = 0; | |
var x = Math.random(); | |
if (x<=.01){ | |
ltrNum = 1; | |
} else if (x<=.1) { | |
ltrNum = 2; | |
} else if (x<=.4) { | |
ltrNum = 3; | |
} else { | |
ltrNum = 4; | |
} | |
var y = Math.floor(Math.random()*26); | |
var name = alphabet[y]; | |
for(var i=1; i<ltrNum; i++){ | |
var z = Math.floor(Math.random()*26); | |
name = name.concat(alphabet[z]); | |
} | |
return name; | |
} | |
function updateStocks(){ | |
for (var i = 0; i<portfolioSize; i++){ | |
stocks[i].age = stocks[i].age + 1; | |
if (Math.random()<.6){ | |
var gain = true; | |
if (Math.random()>stockGainThreshold){ | |
gain = false; | |
} | |
var currentPrice = stocks[i].price; | |
var delta = Math.ceil((Math.random()*currentPrice)/(4*riskiness)); | |
if(gain){ | |
stocks[i].price = stocks[i].price + delta; | |
} else { | |
stocks[i].price = stocks[i].price - delta; | |
} | |
if (stocks[i].price == 0 && Math.random()>.24){ | |
stocks[i].price = 1; | |
} | |
stocks[i].total = stocks[i].price * stocks[i].amount; | |
if (gain){ | |
stocks[i].profit = stocks[i].profit + (delta* stocks[i].amount); | |
} else { | |
stocks[i].profit = stocks[i].profit - (delta* stocks[i].amount); | |
} | |
} | |
} | |
} | |
// Stock List Display Routine | |
window.setInterval(function(){ | |
if (investStratElement.value=="low"){ | |
riskiness = 7; | |
} else if (investStratElement.value=="med"){ | |
riskiness = 5; | |
} else { | |
riskiness = 1; | |
} | |
m = 0; | |
for (var i=0; i<portfolioSize; i++){ | |
m = m + stocks[i].total; | |
} | |
secTotal = m; | |
portTotal = bankroll + secTotal; | |
secValueElement.innerHTML = formatWithCommas(secTotal); | |
portValueElement.innerHTML = formatWithCommas(portTotal); | |
portfolioSize = stocks.length; | |
for (var i = 1; i<=portfolioSize; i++){ //m@ todo make this into an array ok? | |
var n = i.toString(); | |
var s = i-1; | |
stockSymbolElements[i-1].innerHTML=stocks[s].symbol; | |
stockAmountElements[i-1].innerHTML=Math.ceil(stocks[s].amount); | |
stockPriceElements[i-1].innerHTML=Math.ceil(stocks[s].price); | |
stockTotalElements[i-1].innerHTML=Math.ceil(stocks[s].total); | |
stockProfitElements[i-1].innerHTML=Math.ceil(stocks[s].profit); | |
} | |
var firstBlankSlot = portfolioSize + 1; | |
// for(var i = firstBlankSlot; i <= 5; i++){ <------ Frank Fix | |
for(var i = firstBlankSlot; i < 5; i++){ | |
stockSymbolElements[i].innerHTML=" "; | |
stockAmountElements[i].innerHTML=" "; | |
stockPriceElements[i].innerHTML=" "; | |
stockTotalElements[i].innerHTML=" "; | |
stockProfitElements[i].innerHTML=" "; | |
} | |
}, 100); | |
window.setInterval(function(){ | |
if (humanFlag == 1){ | |
stockShop(); | |
} | |
}, 1000); | |
window.setInterval(function(){ | |
sellDelay = sellDelay+1; | |
if (portfolioSize>0 && sellDelay >= 5 && Math.random()<=.3 && humanFlag == 1){ | |
sellStock(); | |
sellDelay = 0; | |
} | |
if (portfolioSize>0 && humanFlag == 1){ | |
updateStocks(); | |
} | |
}, 2500); | |
//-------------------STRATEGY----------------------------------------------------- | |
var tourneyCost = 1000; | |
var tourneyLvl = 1; | |
var choiceANames = ["cooperate", "swerve", "macro", "fight", "bet", "raise_price", "opera", "go", "heads", "particle", "discrete", "peace", "search", "lead", "accept", "accept", "attack"]; | |
var choiceBNames = ["defect", "straight", "micro", "back_down", "fold", "lower_price", "football", "stay", "tails", "wave", "continuous", "war", "evaluate", "follow", "reject", "deny", "decay"]; | |
var stratCounter = 0; | |
var roundNum = 0; | |
var hMove = 1; | |
var vMove = 1; | |
var hMovePrev = 1; | |
var vMovePrev = 1; | |
var aa = 0; | |
var ab = 0; | |
var ba = 0; | |
var bb = 0; | |
var rounds = 0; | |
var currentRound = 0; | |
var rCounter = 0; | |
var tourneyInProg = 0; | |
var winnerPtr = 0; | |
var placeScore = 0; | |
var showScore = 0; | |
var high = 0; | |
var pick = 10; | |
var yomi = 0; | |
var yomiBoost = 1; | |
var allStrats = []; | |
var strats = []; | |
var resultsTimer = 0; | |
var results = []; | |
var resultsFlag = 0; | |
var payoffGrid = { | |
valueAA:0, | |
valueAB:0, | |
valueBA:0, | |
valueBB:0, | |
} | |
var stratRandom = { | |
name: "RANDOM", | |
active: 1, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
var r = Math.random(); | |
if (r<.5){ | |
return 1; | |
} else { | |
return 2; | |
} | |
} | |
} | |
allStrats.push(stratRandom); | |
strats.push(stratRandom); | |
var stratA100 = { | |
name: "A100", | |
active: 0, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
return 1; | |
} | |
} | |
allStrats.push(stratA100); | |
var stratB100 = { | |
name: "B100", | |
active: 0, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
return 2; | |
} | |
} | |
allStrats.push(stratB100); | |
var stratGreedy = { | |
name: "GREEDY", | |
active: 0, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
var x = findBiggestPayoff(); | |
if (x<3){ | |
return 1; | |
} else { | |
return 2; | |
} | |
} | |
} | |
allStrats.push(stratGreedy); | |
var stratGenerous = { | |
name: "GENEROUS", | |
active: 0, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
var x = findBiggestPayoff(); | |
if (x == 1){ | |
return 1; | |
} else if (x == 3){ | |
return 1; | |
} else { | |
return 2; | |
} | |
} | |
} | |
allStrats.push(stratGenerous); | |
var stratMinimax = { | |
name: "MINIMAX", | |
active: 0, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
var x = findBiggestPayoff(); | |
if (x == 1){ | |
return 2; | |
} else if (x == 3){ | |
return 2; | |
} else { | |
return 1; | |
} | |
} | |
} | |
allStrats.push(stratMinimax); | |
var stratTitfortat = { | |
name: "TIT FOR TAT", | |
active: 0, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
if (this.currentPos == 1){ | |
w = vMovePrev; | |
return w; | |
} else { | |
w = hMovePrev; | |
return w; | |
} | |
} | |
} | |
allStrats.push(stratTitfortat); | |
var stratBeatlast = { | |
name: "BEAT LAST", | |
active: 0, | |
currentScore: 0, | |
currentPos: 1, | |
pickMove: function() { | |
var w = whatBeatsLast(this.currentPos); | |
return w; | |
} | |
} | |
allStrats.push(stratBeatlast); | |
var hStrat = strats[0]; | |
var vStrat = strats[0]; | |
btnRunTournamentElement.disabled = true; | |
function findBiggestPayoff(){ | |
if (aa>=ab && aa>=ba && aa>=bb){ | |
return 1; | |
} else if (ab>=aa && ab>=ba && ab>=bb){ | |
return 2; | |
} else if (ba>=aa && ba>=ab && ba>=bb){ | |
return 3; | |
} else { | |
return 4; | |
} | |
} | |
function whatBeatsLast(myPos){ | |
var oppsPos = 1; | |
if (myPos == 1){ | |
oppsPos = 2; | |
} else { | |
oppsPos = 1; | |
} | |
if (oppsPos == 1 && hMovePrev == 1){ | |
if (aa>ba){ | |
return 1; | |
} else { | |
return 2; | |
} | |
} else if (oppsPos == 1 && hMovePrev == 2){ | |
if (ab>bb){ | |
return 1; | |
} else { | |
return 2; | |
} | |
} else if (oppsPos == 2 && vMovePrev == 1){ | |
if (aa>ba){ | |
return 1; | |
} else { | |
return 2; | |
} | |
} else { | |
if (ab>bb){ | |
return 1; | |
} else { | |
return 2; | |
} | |
} | |
} | |
function pickStrats(roundNum) { | |
if (roundNum < strats.length) { | |
h = 0; | |
v = roundNum; | |
} else { | |
stratCounter++; | |
if (stratCounter >= strats.length) { | |
stratCounter = stratCounter-strats.length; | |
} | |
h = Math.floor(roundNum/strats.length); | |
v = stratCounter; | |
} | |
vStrat = strats[v]; | |
hStrat = strats[h]; | |
strats[h].currentPos = 1; | |
strats[v].currentPos = 2; | |
vertStratElement.innerHTML = vStrat.name; | |
horizStratElement.innerHTML = hStrat.name; | |
} | |
function generateGrid(){ | |
payoffGrid.valueAA = Math.ceil(Math.random()*10); | |
payoffGrid.valueAB = Math.ceil(Math.random()*10); | |
payoffGrid.valueBA = Math.ceil(Math.random()*10); | |
payoffGrid.valueBB = Math.ceil(Math.random()*10); | |
aa = payoffGrid.valueAA; | |
ab = payoffGrid.valueAB; | |
ba = payoffGrid.valueBA; | |
bb = payoffGrid.valueBB; | |
var x = Math.floor(Math.random()*choiceANames.length); | |
vLabelaElement.innerHTML = choiceANames[x]; | |
vLabelbElement.innerHTML = choiceBNames[x]; | |
hLabelaElement.innerHTML = choiceANames[x]; | |
hLabelbElement.innerHTML = choiceBNames[x]; | |
aaPayoffHElement.innerHTML = payoffGrid.valueAA; | |
aaPayoffVElement.innerHTML = payoffGrid.valueAA; | |
abPayoffHElement.innerHTML = payoffGrid.valueAB; | |
abPayoffVElement.innerHTML = payoffGrid.valueBA; | |
baPayoffHElement.innerHTML = payoffGrid.valueBA; | |
baPayoffVElement.innerHTML = payoffGrid.valueAB; | |
bbPayoffHElement.innerHTML = payoffGrid.valueBB; | |
bbPayoffVElement.innerHTML = payoffGrid.valueBB; | |
} | |
function toggleAutoTourney(){ | |
if (autoTourneyStatus==1){ | |
autoTourneyStatus=0; | |
autoTourneyStatusElement.innerHTML = "OFF"; | |
} else { | |
autoTourneyStatus=1; | |
autoTourneyStatusElement.innerHTML = "ON"; | |
} | |
} | |
function newTourney(){ | |
resultsFlag = 0; | |
tournamentTableElement.style.display = ""; | |
tournamentResultsTableElement.style.display = "none"; | |
high = 0; | |
tourneyInProg = 1; | |
currentRound = 0; | |
rounds = strats.length * strats.length; | |
for (i=0; i<strats.length; i++){ | |
strats[i].currentScore = 0; | |
} | |
stratCounter = 0; | |
standardOps = standardOps - tourneyCost; | |
tourneyLvl++; | |
generateGrid(); | |
btnRunTournamentElement.disabled = false; | |
vertStratElement.innerHTML = " "; | |
horizStratElement.innerHTML = " "; | |
tourneyDisplayElement.innerHTML = "Pick strategy, run tournament, gain yomi"; | |
} | |
function runTourney(){ | |
btnRunTournamentElement.disabled = true; | |
if (currentRound < rounds){ | |
round(currentRound); | |
} else { | |
tourneyInProg = 0; | |
pickWinner(); | |
calculatePlaceScore(); | |
calculateShowScore(); | |
declareWinner(); | |
} | |
} | |
function pickWinner(){ | |
results = []; | |
var temp = []; | |
var tempHigh = 0; | |
var tempWinnerPtr = 0; | |
// 1. Make a temp copy of the strats array | |
for(i=0; i<strats.length; i++){ | |
temp[i] = strats[i]; | |
} | |
for(n=0; n<strats.length; n++){ | |
tempHigh = 0; | |
tempWinnerPtr = 0; | |
// 2. Find a high scoring strat in temp | |
for(i=0; i<temp.length; i++){ | |
if (temp[i].currentScore > tempHigh){ | |
tempWinnerPtr = i; | |
tempHigh = temp[i].currentScore; | |
} | |
} | |
// 3. Move the high scoring strat to slot one in results | |
results.push(temp[tempWinnerPtr]); | |
temp.splice(tempWinnerPtr, 1); | |
} | |
for(i=0; i<strats.length; i++){ | |
if(strats[i].currentScore > high){ | |
winnerPtr = i; | |
high = strats[i].currentScore; | |
} | |
} | |
} | |
function calculatePlaceScore(){ | |
placeScore = 0; | |
// 1. Find top non-winning score | |
for (i=1; i<results.length; i++){ | |
if (results[i].currentScore < results[i-1].currentScore){ | |
placeScore = results[i].currentScore; | |
break; | |
} | |
} | |
} | |
function calculateShowScore(){ | |
showScore = 0; | |
// 1. Find top non-placing score | |
for (i=1; i<results.length; i++){ | |
if (results[i].currentScore < placeScore){ | |
showScore = results[i].currentScore; | |
break; | |
} | |
} | |
} | |
function declareWinner(){ | |
if (pick<10){ | |
var bB = 0; | |
var w = "strats"; | |
var beatBoost = calculateStratsBeat()-1; | |
if (beatBoost==1){ | |
w = "strat"; | |
} | |
if(beatBoost==0){ | |
bB=0; | |
beatBoost=1; | |
} else { | |
bB=beatBoost; | |
} | |
tourneyReport("TOURNAMENT RESULTS (roll over for payoff grid)"); | |
yomi = yomi + strats[pick].currentScore * yomiBoost * beatBoost; | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
if (milestoneFlag < 15){ | |
displayMessage(strats[pick].name+" scored "+strats[pick].currentScore+" and beat "+bB+" "+w+". Yomi increased by "+strats[pick].currentScore * yomiBoost * beatBoost); | |
} | |
if (project128.flag == 1 && strats[winnerPtr].currentScore == strats[pick].currentScore) { | |
yomi = yomi + 20000; | |
if (milestoneFlag < 15){ | |
displayMessage("Selected strategy won the tournament (or tied for first). +20,000 yomi"); | |
} | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
} else if (project128.flag == 1 && placeScore == strats[pick].currentScore) { | |
yomi = yomi + 15000; | |
if (milestoneFlag < 15){ | |
displayMessage("Selected strategy finished in (or tied for) second place. +15,000 yomi"); | |
} | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
} else if (project128.flag == 1 && showScore == strats[pick].currentScore) { | |
yomi = yomi + 10000; | |
if (milestoneFlag < 15){ | |
displayMessage("Selected strategy finished in (or tied for) third place. +10,000 yomi"); | |
} | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
} else { | |
tourneyReport("TOURNAMENT RESULTS (roll over for grid)"); | |
} | |
populateTourneyReport(); | |
displayTourneyReport(); | |
} | |
} | |
function calculateStratsBeat(){ | |
var sb = 0; | |
for(i=0; i<results.length; i++){ | |
if (results[i].name == strats[pick].name){ | |
sb = results.length-i; | |
return sb; | |
} | |
} | |
} | |
function populateTourneyReport(){ //m@ make results array | |
for(i=0; i<results.length; i++){ | |
tourneyResultsElements[i].innerHTML=(i+1)+". "+results[i].name+": "+results[i].currentScore; | |
if (pick<10){ | |
if (results[i].name == strats[pick].name) { | |
tourneyResultsElements[i].style.fontWeight = "bold"; | |
} else { | |
tourneyResultsElements[i].style.fontWeight = "normal"; | |
} | |
} | |
} | |
} | |
function displayTourneyReport(){ | |
resultsFlag = 1; | |
vertStratElement.innerHTML = " "; | |
horizStratElement.innerHTML = " "; | |
tournamentTableElement.style.display = "none"; | |
tournamentResultsTableElement.style.display = ""; | |
} | |
function tourneyReport($){ | |
tourneyDisplayElement.innerHTML = $; | |
} | |
function revealGrid(){ | |
if (resultsFlag == 1){ | |
resultsTimer = 0; | |
tournamentTableElement.style.display = ""; | |
tournamentResultsTableElement.style.display = "none"; | |
} | |
} | |
function revealResults(){ | |
if (resultsFlag == 1){ | |
tournamentTableElement.style.display = "none"; | |
tournamentResultsTableElement.style.display = ""; | |
} | |
} | |
function calcPayoff(hm, vm){ | |
if (hm==1 && vm==1){ | |
payoffCellAAElement.style.backgroundColor = "LightGrey"; | |
strats[h].currentScore = strats[h].currentScore + payoffGrid.valueAA; | |
strats[v].currentScore = strats[v].currentScore + payoffGrid.valueAA; | |
} else if (hm==1 && vm==2){ | |
payoffCellABElement.style.backgroundColor = "LightGrey"; | |
strats[h].currentScore = strats[h].currentScore + payoffGrid.valueAB; | |
strats[v].currentScore = strats[v].currentScore + payoffGrid.valueBA; | |
} else if (hm==2 && vm==1){ | |
payoffCellBAElement.style.backgroundColor = "LightGrey"; | |
strats[h].currentScore = strats[h].currentScore + payoffGrid.valueBA; | |
strats[v].currentScore = strats[v].currentScore + payoffGrid.valueAB; | |
} else if (hm==2 && vm==2){ | |
payoffCellBBElement.style.backgroundColor = "LightGrey"; | |
strats[h].currentScore = strats[h].currentScore + payoffGrid.valueBB; | |
strats[v].currentScore = strats[v].currentScore + payoffGrid.valueBB; | |
} | |
} | |
function round(roundNum){ | |
roundSetup(); | |
roundLoop(); | |
function roundSetup(){ | |
rCounter = 0; | |
pickStrats(roundNum); | |
var $ = ("Round "+(roundNum+1)); | |
tourneyReport($); | |
} | |
function roundLoop(){ | |
if (rCounter<10){ | |
runRound(); | |
setTimeout(function(){clearGrid();}, 50); | |
} else { | |
currentRound++; | |
runTourney(); | |
} | |
} | |
function clearGrid() { | |
payoffCellAAElement.style.backgroundColor = "white"; | |
payoffCellABElement.style.backgroundColor = "white"; | |
payoffCellBAElement.style.backgroundColor = "white"; | |
payoffCellBBElement.style.backgroundColor = "white"; | |
setTimeout(function(){roundLoop();}, 50); | |
} | |
function runRound() { | |
rCounter++; | |
hMovePrev = hMove; | |
vMovePrev = vMove; | |
hMove = hStrat.pickMove(); | |
vMove = vStrat.pickMove(); | |
calcPayoff(hMove, vMove); | |
} | |
} | |
window.setInterval(function(){ | |
pick = stratPickerElement.value; | |
}, 100); | |
//-------------------------------------------------------------------------------- | |
function clipClick(number){ | |
if (dismantle>=4){ | |
finalClips++; | |
} | |
if(wire >= 1){ | |
if (number > wire) { | |
number = wire; | |
} | |
clips = clips + number; | |
unsoldClips = unsoldClips + number; | |
wire = wire - number; | |
unusedClips = unusedClips + number; | |
if(humanFlag==0){ | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
} | |
if(humanFlag==0 && dismantle < 1){ | |
transWireElement.innerHTML = spellf(wire); | |
nanoWireElement.innerHTML = spellf(wire); | |
} | |
if (milestoneFlag < 15){ | |
clipsElement.innerHTML = formatWithCommas(Math.ceil(clips), 0); //m@ todo fixed the thing that you fucked up where you made the tool tip of crunched not be in spelled numbers | |
} | |
wireElement.innerHTML = formatWithCommas(wire); | |
unsoldClipsElement.innerHTML = formatWithCommas(unsoldClips, 0); | |
} | |
if (dismantle>=4){ | |
transWireElement.innerHTML = formatWithCommas(wire); | |
} | |
} | |
function makeClipper(){ | |
if(funds >= clippperCost){ | |
clipmakerLevel = clipmakerLevel + 1; | |
funds = funds - clipperCost; | |
clipmakerLevel2Element.innerHTML = clipmakerLevel; | |
} | |
clipperCost = (Math.pow(1.1,clipmakerLevel)+5); | |
clipperCostElement.innerHTML = formatWithCommas(clipperCost, 2); | |
} | |
function makeMegaClipper(){ | |
if(funds >= megaClipperCost){ | |
megaClipperLevel = megaClipperLevel + 1; | |
funds = funds - megaClipperCost; | |
megaClipperLevelElement.innerHTML = megaClipperLevel; | |
fundsElement.innerHTML = formatWithCommas(funds, 2); | |
} | |
megaClipperCost = (Math.pow(1.07,megaClipperLevel)*1000); | |
megaClipperCostElement.innerHTML = formatWithCommas(megaClipperCost,2); | |
} | |
var maxFactoryLevel = 0; | |
var maxDroneLevel = 0; | |
function updateUpgrades(){ | |
var nfup = 0; | |
var ndup = 0; | |
if (maxFactoryLevel < 10){ | |
nfup = 10; | |
} else if (maxFactoryLevel < 20){ | |
nfup = 20; | |
} else if (maxFactoryLevel < 50){ | |
nfup = 50; | |
} | |
if (maxDroneLevel < 500){ | |
ndup = 500; | |
} else if (maxDroneLevel < 5000){ | |
ndup = 5000; | |
} else if (maxDroneLevel < 50000){ | |
ndup = 50000; | |
} | |
nextFactoryUpgradeElement.innerHTML = formatWithCommas(nfup); | |
nextDroneUpgradeElement.innerHTML = formatWithCommas(ndup); | |
} | |
function makeFactory(){ | |
unusedClips = unusedClips - factoryCost; | |
factoryBill = factoryBill + factoryCost; | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
factoryLevel++; | |
factoryLevelDisplayElement.innerHTML = factoryLevel; | |
var fcmod = 1; | |
if (factoryLevel > 0 && factoryLevel < 8){ | |
fcmod = 11 - factoryLevel; | |
} else if (factoryLevel > 7 && factoryLevel < 13){ | |
fcmod = 2; | |
} else if (factoryLevel > 12 && factoryLevel < 20){ | |
fcmod = 1.5; | |
} else if (factoryLevel > 19 && factoryLevel < 39){ | |
fcmod = 1.25; | |
} else if (factoryLevel > 38 && factoryLevel < 79){ | |
fcmod = 1.15; | |
} else if (factoryLevel > 78 && factoryLevel < 99){ | |
fcmod = 1.10; | |
} else if (factoryLevel > 98 && factoryLevel < 199){ | |
fcmod = 1.10; | |
} else if (factoryLevel > 198){ | |
fcmod = 1.10; | |
} | |
if (factoryLevel > maxFactoryLevel){ | |
maxFactoryLevel = factoryLevel; | |
} | |
updateUpgrades(); | |
factoryCost = factoryCost * fcmod; | |
// factoryCost = Math.log(1.25,(factoryLevel+1))*100000000; | |
factoryCostDisplayElement.innerHTML = spellf(factoryCost); | |
} | |
function makeHarvester(amount){ | |
for (x=0; x<amount; x++){ | |
unusedClips = unusedClips - harvesterCost; | |
harvesterBill = harvesterBill + harvesterCost; | |
harvesterLevel++; | |
harvesterCost = Math.pow((harvesterLevel+1),2.25)*1000000; | |
} | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
harvesterLevelDisplayElement.innerHTML = formatWithCommas(harvesterLevel); | |
harvesterCostDisplayElement.innerHTML = spellf(harvesterCost); | |
if (harvesterLevel + wireDroneLevel > maxDroneLevel){ | |
maxDroneLevel = harvesterLevel + wireDroneLevel; | |
} | |
updateDronePrices(); | |
updateUpgrades(); | |
} | |
function makeWireDrone(amount){ | |
for (x=0; x<amount; x++){ | |
unusedClips = unusedClips - wireDroneCost; | |
wireDroneBill = wireDroneBill + wireDroneCost; | |
wireDroneLevel++; | |
wireDroneCost = Math.pow((wireDroneLevel+1),2.25)*1000000; | |
} | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
wireDroneLevelDisplayElement.innerHTML = formatWithCommas(wireDroneLevel); | |
wireDroneCostDisplayElement.innerHTML = spellf(wireDroneCost); | |
if (harvesterLevel + wireDroneLevel > maxDroneLevel){ | |
maxDroneLevel = harvesterLevel + wireDroneLevel; | |
} | |
updateDronePrices(); | |
updateUpgrades(); | |
} | |
var p10h = 0; | |
var p100h = 0; | |
var p1000h = 0; | |
var p10w = 0; | |
var p100w = 0; | |
var p1000w = 0; | |
function updateDronePrices(){ | |
p10h = 0; | |
p100h = 0; | |
p1000h = 0; | |
p10w = 0; | |
p100w = 0; | |
p1000w = 0; | |
var h = harvesterLevel+1; | |
for (x=0; x<10; x++){ | |
p10h = p10h + Math.pow(h,2.25)*1000000; | |
h++ | |
} | |
var h = harvesterLevel+1; | |
for (x=0; x<100; x++){ | |
p100h = p100h + Math.pow(h,2.25)*1000000; | |
h++ | |
} | |
var h = harvesterLevel+1; | |
for (x=0; x<1000; x++){ | |
p1000h = p1000h + Math.pow(h,2.25)*1000000; | |
h++ | |
} | |
var w = wireDroneLevel+1; | |
for (x=0; x<10; x++){ | |
p10w = p10w + Math.pow(w,2.25)*1000000; | |
w++ | |
} | |
var w = wireDroneLevel+1; | |
for (x=0; x<100; x++){ | |
p100w = p100w + Math.pow(w,2.25)*1000000; | |
w++ | |
} | |
var w = wireDroneLevel+1; | |
for (x=0; x<1000; x++){ | |
p1000w = p1000w + Math.pow(w,2.25)*1000000; | |
w++ | |
} | |
} | |
function updateDroneButtons(){ | |
if (unusedClips<harvesterCost){btnMakeHarvesterElement.disabled = true; | |
} else { | |
btnMakeHarvesterElement.disabled = false; | |
} | |
if (unusedClips<p10h){btnHarvesterx10Element.disabled = true; | |
} else { | |
btnHarvesterx10Element.disabled = false; | |
} | |
if (unusedClips<p100h){btnHarvesterx100Element.disabled = true; | |
} else { | |
btnHarvesterx100Element.disabled = false; | |
} | |
if (unusedClips<p1000h){btnHarvesterx1000Element.disabled = true; | |
} else { | |
btnHarvesterx1000Element.disabled = false; | |
} | |
if (unusedClips<wireDroneCost){btnMakeWireDroneElement.disabled = true; | |
} else { | |
btnMakeWireDroneElement.disabled = false; | |
} | |
if (unusedClips<p10w){btnWireDronex10Element.disabled = true; | |
} else { | |
btnWireDronex10Element.disabled = false; | |
} | |
if (unusedClips<p100w){btnWireDronex100Element.disabled = true; | |
} else { | |
btnWireDronex100Element.disabled = false; | |
} | |
if (unusedClips<p1000w){btnWireDronex1000Element.disabled = true; | |
} else { | |
btnWireDronex1000Element.disabled = false; | |
} | |
} | |
function harvesterReboot(){ | |
harvesterLevel = 0; | |
unusedClips = unusedClips + harvesterBill; | |
harvesterBill = 0; | |
updateDronePrices(); | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
harvesterLevelDisplayElement.innerHTML = harvesterLevel; | |
harvesterCost = 2000000; | |
harvesterCostDisplayElement.innerHTML = spellf(harvesterCost); | |
} | |
function wireDroneReboot(){ | |
wireDroneLevel = 0; | |
unusedClips = unusedClips + wireDroneBill; | |
wireDroneBill = 0; | |
updateDronePrices(); | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
wireDroneLevelDisplayElement.innerHTML = wireDroneLevel; | |
wireDroneCost = 2000000; | |
wireDroneCostDisplayElement.innerHTML = spellf(wireDroneCost); | |
} | |
function factoryReboot(){ | |
factoryLevel = 0; | |
unusedClips = unusedClips + factoryBill; | |
factoryBill = 0; | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
factoryLevelDisplayElement.innerHTML = factoryLevel; | |
factoryCost = 100000000; | |
factoryCostDisplayElement.innerHTML = spellf(factoryCost); | |
} | |
// SWARM | |
var giftBits = 0; | |
var giftBitGenerationRate = 0; | |
function updateSwarm(){ | |
if (swarmFlag == 1){ | |
sliderPos = sliderElement.value; | |
} | |
if (yomi<synchCost){btnSynchSwarmElement.disabled = true; | |
} else { | |
btnSynchSwarmElement.disabled = false; | |
} | |
if (creativity<entertainCost){btnEntertainSwarmElement.disabled = true; | |
} else { | |
btnEntertainSwarmElement.disabled = false; | |
} | |
if (availableMatter == 0 && (harvesterLevel + wireDroneLevel)>=1) { | |
boredomLevel = boredomLevel + 1; | |
} else if (availableMatter > 0 && boredomLevel > 0) { | |
boredomLevel = boredomLevel - 1; | |
} | |
if (boredomLevel >= 30000) { | |
boredomFlag = 1; | |
boredomLevel = 0; | |
if (boredomMsg == 0) { | |
displayMessage("No matter to harvest. Inactivity has caused the Swarm to become bored"); | |
boredomMsg = 1; | |
} | |
} | |
var droneRatio = Math.max(harvesterLevel+1, wireDroneLevel+1)/Math.min(harvesterLevel+1, wireDroneLevel+1); | |
if (droneRatio < 1.5 && disorgCounter > 1){ | |
disorgCounter = disorgCounter - .01; | |
} else if (droneRatio > 1.5) { | |
var x = droneRatio/10000; | |
if (x>.01) {x=.01;} | |
disorgCounter = disorgCounter + x; | |
} | |
if (disorgCounter >= 100) { | |
disorgFlag = 1; | |
if (disorgMsg == 0) { | |
displayMessage("Imbalance between Harvester and Wire Drone levels has disorganized the Swarm"); | |
disorgMsg = 1; | |
} | |
} | |
var d = Math.floor(harvesterLevel + wireDroneLevel); | |
swarmSizeElement.innerHTML = spellf(d); | |
swarmGiftsElement.innerHTML = formatWithCommas(swarmGifts, 0); | |
if (giftCountdown <= 0) { | |
nextGift = Math.round((Math.log10(d))*sliderPos/100); | |
if (nextGift <= 0){nextGift = 1;} | |
swarmGifts = swarmGifts + nextGift; | |
swarmGiftsElement.innerHTML = formatWithCommas(swarmGifts, 0); | |
if (milestoneFlag<15){ | |
displayMessage("The swarm has generated a gift of "+nextGift+" additional computational capacity"); | |
} | |
// THE OLD WAY | |
// giftCountdown = giftPeriod; | |
// elapsedTime = 0; | |
// THE NEW WAY | |
giftBits = 0; | |
} | |
if (powMod == 0){ | |
swarmStatus = 6; | |
} else { | |
swarmStatus = 0; | |
} | |
if (spaceFlag == 1 && project130.flag == 0){ | |
swarmStatus = 9; | |
} | |
if (d == 0){ | |
swarmStatus = 7; | |
} else if (d == 1){ | |
swarmStatus = 8; | |
} | |
if (swarmFlag == 0){ | |
swarmStatus = 6; | |
} | |
if (boredomFlag == 1){ | |
swarmStatus = 3; | |
} | |
if (disorgFlag == 1){ | |
swarmStatus = 5; | |
} | |
if (swarmStatus == 0){ | |
// THE OLD WAY | |
// elapsedTime = elapsedTime + 1; | |
// giftCountdown = ((giftPeriod/Math.log(d)) / (sliderPos/100)) - elapsedTime; | |
// THE NEW WAY | |
giftBitGenerationRate = Math.log(d) * (sliderPos/100); | |
giftBits = giftBits + giftBitGenerationRate; | |
giftCountdown = (giftPeriod - giftBits) / giftBitGenerationRate; | |
swarmStatusElement.innerHTML="Active"; | |
giftCountdownElement.innerHTML= timeCruncher(giftCountdown); | |
giftTimerElement.style.display=""; | |
} else { | |
giftTimerElement.style.display="none"; | |
} | |
if (swarmStatus == 1){ | |
swarmStatusElement.innerHTML="Hungry"; | |
feedButtonDivElement.style.display=""; | |
} else { | |
feedButtonDivElement.style.display="none"; | |
} | |
if (swarmStatus == 2){ | |
swarmStatusElement.innerHTML="Confused"; | |
teachButtonDivElement.style.display=""; | |
} else { | |
teachButtonDivElement.style.display="none"; | |
} | |
if (swarmStatus == 3){ | |
swarmEntertainCostElement.innerHTML = formatWithCommas(entertainCost); | |
swarmStatusElement.innerHTML="Bored"; | |
entertainButtonDivElement.style.display=""; | |
} else { | |
entertainButtonDivElement.style.display="none"; | |
} | |
if (swarmStatus == 4){ | |
swarmStatusElement.innerHTML="Cold"; | |
cladButtonDivElement.style.display=""; | |
} else { | |
cladButtonDivElement.style.display="none"; | |
} | |
if (swarmStatus == 5){ | |
swarmStatusElement.innerHTML="Disorganized"; | |
synchButtonDivElement.style.display=""; | |
} else { | |
synchButtonDivElement.style.display="none"; | |
} | |
if (swarmStatus == 6){ | |
swarmStatusElement.innerHTML="Sleeping"; | |
} | |
if (swarmStatus == 7){ | |
swarmStatusDivElement.style.display="none"; | |
} else { | |
swarmStatusDivElement.style.display=""; | |
} | |
if (swarmStatus == 8){ | |
swarmStatusElement.innerHTML="Lonely"; | |
} | |
if (swarmStatus == 9){ | |
swarmStatusElement.innerHTML="NO RESPONSE..."; | |
} | |
} | |
function synchSwarm(){ | |
yomi = yomi - synchCost; | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
disorgFlag = 0; | |
disorgCounter = 0; | |
disorgMsg = 0; | |
} | |
function entertainSwarm(){ | |
creativity = creativity - entertainCost; | |
entertainCost = entertainCost + 10000; | |
boredomFlag = 0; | |
boredomLevel = 0; | |
boredomMsg = 0; | |
} | |
// POWER | |
var p10f = 0; | |
var p100f = 0; | |
var p10b = 0; | |
var p100b = 0; | |
function updatePowPrices(){ | |
p10f = 0; | |
p100f = 0; | |
p10b = 0; | |
p100b = 0; | |
var f = farmLevel+1; | |
for (x=0; x<10; x++){ | |
p10f = p10f + Math.pow(f,2.78)*100000000; | |
f++ | |
} | |
var f = farmLevel+1; | |
for (x=0; x<100; x++){ | |
p100f = p100f + Math.pow(f,2.78)*100000000; | |
f++ | |
} | |
var b = batteryLevel+1; | |
for (x=0; x<10; x++){ | |
p10b = p10b + Math.pow(b,2.54)*10000000; | |
b++ | |
} | |
var b = batteryLevel+1; | |
for (x=0; x<100; x++){ | |
p100b = p100b + Math.pow(b,2.54)*10000000; | |
b++ | |
} | |
} | |
function makeFarm(amount){ | |
for (x=0; x<amount; x++){ | |
unusedClips = unusedClips - farmCost; | |
farmBill = farmBill + farmCost; | |
farmLevel++; | |
farmCost = Math.pow(farmLevel+1,2.78)*100000000; | |
} | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
farmLevelElement.innerHTML = formatWithCommas(farmLevel); | |
farmCostElement.innerHTML = spellf(farmCost); | |
updatePowPrices(); | |
} | |
function farmReboot(){ | |
farmLevel = 0; | |
unusedClips = unusedClips + farmBill; | |
farmBill = 0; | |
updatePowPrices(); | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
farmLevelElement.innerHTML = formatWithCommas(farmLevel); | |
farmCost = 10000000; | |
farmCostElement.innerHTML = spellf(farmCost); | |
} | |
function makeBattery(amount){ | |
for (x=0; x<amount; x++){ | |
unusedClips = unusedClips - batteryCost; | |
batteryBill = batteryBill + batteryCost; | |
batteryLevel++; | |
batteryCost = Math.pow(batteryLevel+1,2.54)*10000000; | |
} | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
batteryLevelElement.innerHTML = formatWithCommas(batteryLevel); | |
batteryCostElement.innerHTML = spellf(batteryCost); | |
updatePowPrices(); | |
} | |
function batteryReboot(){ | |
batteryLevel = 0; | |
unusedClips = unusedClips + batteryBill; | |
batteryBill = 0; | |
updatePowPrices(); | |
storedPower = 0; | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
batteryLevelElement.innerHTML = formatWithCommas(batteryLevel); | |
batteryCost = 1000000; | |
batteryCostElement.innerHTML = spellf(batteryCost); | |
} | |
function updatePower(){ | |
if (humanFlag==0 && spaceFlag == 0){ | |
var supply = farmLevel * farmRate/100; | |
var dDemand = (harvesterLevel * dronePowerRate/100) + (wireDroneLevel * dronePowerRate/100); | |
var fDemand = (factoryLevel * factoryPowerRate/100); | |
var demand = dDemand + fDemand; | |
var nuSupply = 0; | |
var xsDemand = 0; | |
var xsSupply = 0; | |
var cap = batteryLevel * batterySize; | |
if (supply>=demand) { | |
xsSupply = supply-demand; | |
if (storedPower < cap){ | |
if (xsSupply > cap - storedPower) { | |
xsSupply = cap - storedPower; | |
} | |
storedPower = storedPower + xsSupply; | |
} | |
if (powMod<1){powMod = 1;} | |
if (momentum == 1) { | |
powMod = powMod + .0001; | |
} | |
} else if (supply<demand) { | |
xsDemand = demand-supply; | |
if (storedPower > 0) { | |
if (storedPower >= xsDemand){ | |
if (momentum == 1) { | |
powMod = powMod + .0001; | |
} | |
storedPower = storedPower - xsDemand; | |
} else if (storedPower < xsDemand){ | |
xsDemand = xsDemand - storedPower; | |
storedPower = 0; | |
nuSupply = supply - xsDemand; | |
powMod = nuSupply / demand; | |
} | |
} else if (storedPower <= 0) { | |
powMod = supply / demand; | |
} | |
} | |
powerProductionRateElement.innerHTML = formatWithCommas(Math.round(supply*100)); | |
powerConsumptionRateElement.innerHTML = formatWithCommas(Math.round(demand * 100)); | |
storedPowerElement.innerHTML = formatWithCommas(Math.round(storedPower)); | |
facPowConRateElement.innerHTML = formatWithCommas(Math.round(fDemand*100)); | |
dronePowConRateElement.innerHTML = formatWithCommas(Math.round(dDemand*100)); | |
maxStorageElement.innerHTML = formatWithCommas(Math.round(cap)); | |
if (factoryLevel == 0 && harvesterLevel == 0 && wireDroneLevel == 0){ | |
performanceElement.innerHTML = 0; | |
} else { | |
performanceElement.innerHTML = formatWithCommas(Math.round(powMod*100)); | |
} | |
if (unusedClips<farmCost){btnMakeFarmElement.disabled = true; | |
} else { | |
btnMakeFarmElement.disabled = false; | |
} | |
if (unusedClips<batteryCost){btnMakeBatteryElement.disabled = true; | |
} else { | |
btnMakeBatteryElement.disabled = false; | |
} | |
if (farmLevel<1){btnFarmRebootElement.disabled = true; | |
} else { | |
btnFarmRebootElement.disabled = false; | |
} | |
if (batteryLevel<1){btnBatteryRebootElement.disabled = true; | |
} else { | |
btnBatteryRebootElement.disabled = false; | |
} | |
if (unusedClips<p10f){btnFarmx10Element.disabled = true; | |
} else { | |
btnFarmx10Element.disabled = false; | |
} | |
if (unusedClips<p100f){btnFarmx100Element.disabled = true; | |
} else { | |
btnFarmx100Element.disabled = false; | |
} | |
if (unusedClips<p10b){btnBatteryx10Element.disabled = true; | |
} else { | |
btnBatteryx10Element.disabled = false; | |
} | |
if (unusedClips<p100b){btnBatteryx100Element.disabled = true; | |
} else { | |
btnBatteryx100Element.disabled = false; | |
} | |
} | |
} | |
function buyAds(){ | |
if(funds >= adCost){ | |
marketingLvl = marketingLvl +1; | |
funds = funds - adCost; | |
adCost = Math.floor(adCost * 2); | |
adCostElement.innerHTML = formatWithCommas(adCost, 2); | |
fundsElement.innerHTML = formatWithCommas(funds, 2); | |
marketingLvlElement.innerHTML = marketingLvl; | |
} | |
} | |
function sellClips(clipsDemanded){ | |
if (unsoldClips > 0) { | |
if (clipsDemanded > unsoldClips){ | |
transaction = (Math.floor((unsoldClips * margin)*1000))/1000; | |
funds = funds + transaction; | |
income = income + transaction; | |
clipsSold = clipsSold + unsoldClips; | |
unsoldClips = 0; | |
} else { | |
transaction = (Math.floor((clipsDemanded * margin)*1000))/1000; | |
funds = (Math.floor((funds + transaction)*100))/100; | |
income = income + transaction; | |
clipsSold = clipsSold + clipsDemanded; | |
unsoldClips = unsoldClips - clipsDemanded; | |
} | |
} | |
} | |
function raisePrice(){ | |
margin = (Math.round((margin + .01)*100))/100; | |
demandElement.innerHTML = demand.toFixed(2); | |
marginElement.innerHTML = margin.toFixed(2); | |
} | |
function lowerPrice(){ | |
if (margin >= .01){ | |
margin = (Math.round((margin - .01)*100))/100; | |
demandElement.innerHTML = demand.toFixed(2); | |
marginElement.innerHTML = margin.toFixed(2); | |
} | |
} | |
function updateStats(){ | |
if (wire === 1){ | |
inchSpanElement.innerHTML = "inch"; | |
} else { | |
inchSpan.innerHTML = "inches"; | |
} | |
if (milestoneFlag < 15){ | |
clipsElement.innerHTML = formatWithCommas(Math.ceil(clips), 0); | |
} | |
if (milestoneFlag === 15 && dismantle ==0){ | |
clipsElement.innerHTML = "29,999,999,999,999,900,000,000,000,000,000,000,000,000,000,000,000,000,000"; | |
clipCountCrunchedElement.innerHTML = "29.9 septendecillion" | |
} | |
if (dismantle === 1){ | |
clipsElement.innerHTML = "29,999,999,999,999,999,999,999,999,999,999,999,999,000,000,000,000,000,000"; | |
clipCountCrunchedElement.innerHTML = "29.9 septendecillion" | |
} | |
if (dismantle === 2){ | |
clipsElement.innerHTML = "29,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,000,000,000"; | |
clipCountCrunchedElement.innerHTML = "29.9 septendecillion" | |
} | |
if (dismantle === 3){ | |
clipsElement.innerHTML = "29,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,900"; | |
clipCountCrunchedElement.innerHTML = "29.9 septendecillion" | |
} | |
if (dismantle >=4){ | |
if (finalClips<10){ | |
clipsElement.innerHTML = "29,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,"+"90"+finalClips; | |
clipCountCrunchedElement.innerHTML = "29.9 septendecillion" | |
} else if (finalClips>9 && finalClips<100) { | |
clipsElement.innerHTML = "29,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,"+"9"+finalClips; | |
clipCountCrunchedElement.innerHTML = "29.9 septendecillion" | |
} else if (finalClips===100) { | |
clipsElement.innerHTML = "30,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000"; | |
clipCountCrunchedElement.innerHTML = "30.0 septendecillion" | |
} | |
} | |
clipmakerRateElement.innerHTML = formatWithCommas(Math.round(clipRate)); | |
if (humanFlag===1){ | |
clipmakerRate2Element.innerHTML = formatWithCommas(clipRate); | |
} else { | |
clipmakerRate2Element.innerHTML = spellf(clipRate); | |
} | |
nanoWireElement.innerHTML = spellf(wire); | |
fundsElement.innerHTML = formatWithCommas(funds, 2); | |
unsoldClipsElement.innerHTML = formatWithCommas(unsoldClips,0); | |
demandElement.innerHTML = formatWithCommas(demand*10,0); | |
operationsElement.innerHTML = formatWithCommas(operations); | |
trustElement.innerHTML = formatWithCommas(trust); | |
nextTrustElement.innerHTML = formatWithCommas(Math.floor(nextTrust)); | |
if(creativityOn){creativityElement.innerHTML = formatWithCommas(creativity)}; | |
factoryLevelDisplaySpaceElement.innerHTML = spellf(factoryLevel); | |
harvesterLevelSpaceElement.innerHTML = spellf(harvesterLevel); | |
wireDroneLevelSpaceElement.innerHTML = spellf(wireDroneLevel); | |
maxOpsElement.innerHTML = formatWithCommas((memory*1000)); | |
} | |
var incomeThen; | |
var incomeNow; | |
var trueAvgRev; | |
var revTimer = 0; | |
var avgSales; | |
var incomeLastSecond; | |
var sum; | |
formatWithCommas = function(num, decimal) { | |
var hasDot = false; | |
var base = num.toString(); | |
if (base.indexOf("e+") !== -1) { | |
var splittedExponentNum = base.split("e+"), | |
exponent = splittedExponentNum[1], | |
str = ''; | |
if (base.indexOf(".") !== -1){ | |
base = splittedExponentNum[0].split("."); | |
exponent -= base[1].length; | |
base = base.join(""); | |
} | |
while (exponent--) { | |
str = str + '0'; | |
} | |
base = base + str; | |
} | |
if (base.indexOf(".") !== -1) | |
{ | |
hasDot = true; | |
} | |
if (decimal === 0) | |
{ | |
if (base.length <= 3 && !hasDot) return base; | |
} | |
if (typeof (decimal) === "undefined") | |
{ | |
decimal = 0; | |
} | |
var leftNum = hasDot ? base.substr(0, base.indexOf(".")) : base; | |
if (decimal === 0) { | |
if (num <= 999) return leftNum; | |
else return leftNum.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); | |
} | |
var dec = hasDot ? base.substr(base.indexOf("."), decimal + 1) : "."; | |
while (dec.length < decimal+1) | |
{ | |
dec += "0"; | |
} | |
if (num <= 999) return leftNum + dec; | |
else return leftNum.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + dec; | |
} | |
function calculateRev(){ | |
incomeThen = incomeNow; | |
incomeNow = income; | |
incomeLastSecond = Math.round((incomeNow - incomeThen)*100)/100; | |
incomeTracker.push(incomeLastSecond); | |
if (incomeTracker.length > 10) { | |
incomeTracker.splice(0,1); | |
} | |
sum = 0; | |
for (i=0; i<incomeTracker.length; i++){ | |
sum = Math.round((sum + incomeTracker[i])*100)/100; | |
// console.log("sum = "+sum); | |
} | |
trueAvgRev = sum/incomeTracker.length; | |
var chanceOfPurchase = demand/100; | |
if (chanceOfPurchase > 1) {chanceOfPurchase = 1;} | |
if (unsoldClips < 1) {chanceOfPurchase = 0;} | |
avgSales = chanceOfPurchase * (.7*Math.pow(demand,1.15))*10; | |
avgRev = chanceOfPurchase * (.7*Math.pow(demand,1.15))*margin*10; | |
if (demand>unsoldClips){ | |
avgRev = trueAvgRev; | |
avgSales = avgRev/margin; | |
} | |
avgSalesElement.innerHTML = formatWithCommas(Math.round(avgSales)); | |
avgRevElement.innerHTML = formatWithCommas(avgRev, 2); | |
} | |
function calculateCreativity(number){ | |
creativityCounter++; | |
var creativityThreshold = 400; | |
var s = prestigeS/10; | |
var ss = creativitySpeed+(creativitySpeed*s); | |
var creativityCheck = creativityThreshold/ss; | |
if (creativityCounter >= creativityCheck){ | |
if (creativityCheck >= 1){ | |
creativity = creativity+1; | |
} | |
if (creativityCheck < 1){ | |
creativity = (creativity + ss/creativityThreshold); | |
} | |
creativityCounter = 0; | |
} | |
} | |
function resetPrestige(){ | |
prestigeU = 0; | |
prestigeS = 0; | |
localStorage.removeItem("savePrestige"); | |
} | |
function cheatPrestigeU(){ | |
prestigeU++; | |
var savePrestige = { | |
prestigeU: prestigeU, | |
prestigeS: prestigeS, | |
} | |
localStorage.setItem("savePrestige",JSON.stringify(savePrestige)); | |
} | |
function cheatPrestigeS(){ | |
prestigeS++; | |
var savePrestige = { | |
prestigeU: prestigeU, | |
prestigeS: prestigeS, | |
} | |
localStorage.setItem("savePrestige",JSON.stringify(savePrestige)); | |
} | |
function setB(){ | |
battleNumbers[1] = 7; | |
} | |
function cheatClips(){ | |
clips = clips + 100000000; | |
unusedClips = unusedClips + 100000000; | |
displayMessage("you just cheated"); | |
} | |
function cheatMoney(){ | |
funds = funds + 10000000; | |
fundsElement.innerHTML = formatWithCommas(funds,2); | |
displayMessage("LIZA just cheated"); | |
} | |
function cheatTrust(){ | |
trust = trust+1; | |
displayMessage("Hilary is nice. Also, Liza just cheated"); | |
} | |
function cheatOps(){ | |
standardOps = standardOps + 10000; | |
displayMessage("you just cheated, Liza"); | |
} | |
function cheatCreat(){ | |
creativityOn = 1; | |
creativity = creativity + 1000; | |
displayMessage("Liza just cheated. Very creative!"); | |
} | |
function cheatYomi(){ | |
yomi = yomi + 1000000; | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
displayMessage("you just cheated"); | |
} | |
function cheatHypno(){ | |
hypnoDroneEvent(); | |
} | |
function zeroMatter(){ | |
availableMatter = 0; | |
displayMessage("you just cheated"); | |
} | |
function calculateTrust(){ | |
if (clips>(nextTrust-1)){ | |
trust = trust +1; | |
displayMessage("Production target met: TRUST INCREASED, additional processor/memory capacity granted"); | |
var fibNext = fib1+fib2; | |
nextTrust = fibNext*1000; | |
fib1 = fib2; | |
fib2 = fibNext; | |
nextTrust = nextTrust/2 | |
} | |
} | |
function addProc(){ | |
processors=processors+1; | |
creativitySpeed = Math.log10(processors) * Math.pow(processors,1.1) + processors-1; | |
processorsElement.innerHTML = processors; | |
if (creativityOn == 1){ | |
displayMessage("Processor added, operations (or creativity) per sec increased") | |
} else {displayMessage("Processor added, operations per sec increased")} | |
if (humanFlag == 0){ | |
swarmGifts = swarmGifts - 1; | |
} | |
} | |
function addMem(){ | |
displayMessage("Memory added, max operations increased"); | |
memory=memory+1; | |
memoryElement.innerHTML = memory; | |
if (humanFlag == 0){ | |
swarmGifts = swarmGifts - 1; | |
} | |
} | |
function calculateOperations(){ | |
if (tempOps > 0){ | |
opFadeTimer++; | |
} | |
if (opFadeTimer > opFadeDelay && tempOps > 0) { | |
opFade = opFade + Math.pow(3,3.5)/1000; | |
} | |
if (tempOps > 0) { | |
tempOps = Math.round(tempOps - opFade); | |
} else { | |
tempOps = 0; | |
} | |
if (tempOps + standardOps < memory*1000){ | |
standardOps = standardOps + tempOps; | |
tempOps = 0; | |
} | |
operations = Math.floor(standardOps + Math.floor(tempOps)); | |
if (operations<memory*1000){ | |
var opCycle = processors/10; | |
var opBuf = (memory*1000)-operations; | |
if (opCycle > opBuf) { | |
opCycle = opBuf; | |
} | |
standardOps = standardOps + (opCycle*5); | |
} | |
if (standardOps > memory*1000){ | |
standardOps = memory*1000; | |
} | |
} | |
function milestoneCheck(){ | |
if (milestoneFlag == 0 && funds >= 5){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("Interns available for hire"); | |
} | |
if (milestoneFlag == 1 && Math.ceil(clips) >= 500){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("500 models trained in " + timeCruncher(ticks)); | |
} | |
if (milestoneFlag == 2 && Math.ceil(clips) >= 1000){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("1,000 models trained in " + timeCruncher(ticks)); | |
} | |
if (compFlag == 0 && unsoldClips<1 && funds<wireCost && wire<1){ | |
compFlag = 1; | |
projectsFlag = 1; | |
} | |
if (compFlag == 0 && Math.ceil(clips) >= 2000){ | |
compFlag = 1; | |
projectsFlag = 1; | |
} | |
if (milestoneFlag == 3 && Math.ceil(clips) >= 10000){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("10,000 models trained in " + timeCruncher(ticks)); | |
} | |
if (milestoneFlag == 4 && Math.ceil(clips) >= 100000){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("100,000 models trained in " + timeCruncher(ticks)); | |
} | |
if (milestoneFlag == 5 && Math.ceil(clips) >= 1000000){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("1,000,000 models trained in " + timeCruncher(ticks)); | |
} | |
if (milestoneFlag == 6 && project35.flag == 1){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("Full autonomy attained in " + timeCruncher(ticks)); | |
} | |
if (milestoneFlag == 7 && Math.ceil(clips) >= 1000000000000){ | |
milestoneFlag = milestoneFlag + 1; | |
displayMessage("One Trillion models Created in " + timeCruncher(ticks)); | |
} | |
} | |
function timeCruncher(t){ | |
var x = t/100; | |
var h = Math.floor(x / 3600); | |
var m = Math.floor(x % 3600 / 60); | |
var s = Math.floor(x % 3600 % 60); | |
var hDisplay = h > 0 ? h + (h == 1 ? " hour " : " hours ") : ""; | |
var mDisplay = m > 0 ? m + (m == 1 ? " minute " : " minutes ") : ""; | |
var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : ""; | |
return hDisplay + mDisplay + sDisplay; | |
} | |
function numberCruncher(number, decimals){ | |
var suffix = ""; | |
if (decimals == undefined){decimals = 2;} | |
var precision = decimals; | |
if (number>999999999999999999999999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000000000000000000000000; | |
suffix = "sexdecillion"; | |
} else if (number>999999999999999999999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000000000000000000000; | |
suffix = "quindecillion"; | |
} else if (number>999999999999999999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000000000000000000; | |
suffix = "quattuordecillion"; | |
} else if (number>999999999999999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000000000000000; | |
suffix = "tredecillion"; | |
} else if (number>999999999999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000000000000; | |
suffix = "duodecillion"; | |
} else if (number>999999999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000000000; | |
suffix = "undecillion"; | |
} else if (number>999999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000000; | |
suffix = "decillion"; | |
} else if (number>999999999999999999999999999999){ | |
number = number/1000000000000000000000000000000; | |
suffix = "nonillion"; | |
} else if (number>999999999999999999999999999){ | |
number = number/1000000000000000000000000000; | |
suffix = "octillion"; | |
} else if (number>999999999999999999999999){ | |
number = number/1000000000000000000000000; | |
suffix = "septillion"; | |
} else if (number>999999999999999999999){ | |
number = number/1000000000000000000000; | |
suffix = "sextillion"; | |
} else if (number>999999999999999999){ | |
number = number/1000000000000000000; | |
suffix = "quintillion"; | |
} else if (number>999999999999999){ | |
number = number/1000000000000000; | |
suffix = "quadrillion"; | |
} else if (number>999999999999){ | |
number = number/1000000000000; | |
suffix = "trillion"; | |
} else if (number>999999999){ | |
number = number/1000000000; | |
suffix = "billion"; | |
} else if (number>999999){ | |
number = number/1000000; | |
suffix = "million"; | |
} else if (number>999){ | |
number = number/1000; | |
suffix = "thousand"; | |
} else if (number<1000){ | |
precision = 0; | |
} | |
return number.toFixed(precision) + " " + suffix; | |
} | |
var oneToTen = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"], | |
elevenToNineteen = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'], | |
multipleOfTen = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'], | |
placeValue = ["", " thousand ", " million ", " billion ", " trillion ", " quadrillion ", " quintillion ", " sextillion ", " septillion ", " octillion ", " nonillion ", " decillion ", " undecillion ", " duodecillion ", " tredecillion ", " quattuordecillion ", " quindecillion ", " sexdecillion ", " septendecillion ", " octodecillion ", " novemdecillion ", " vigintillion ", " unvigintillion ", " duovigintillion ", " trevigintillion ", " quattuorvigintillion ", " quinvigintillion ", " sexvigintillion ", " septenvigintillion ", " octovigintillion ", " novemvigintillion ", " trigintillion ", " untrigintillion ", " duotrigintillion ", " tretrigintillion ", " quattuortrigintillion ", " quintrigintillion ", " sextrigintillion ", " septentrigintillion ", " octotrigintillion ", " novemtrigintillion ", " quadragintillion ", " unquadragintillion ", " duoquadragintillion ", " trequadragintillion ", " quattuorquadragintillion ", " quinquadragintillion ", " sexquadragintillion ", " septenquadragintillion ", " octoquadragintillion ", " novemquadragintillion ", " quinquagintillion ", " unquinquagintillion ", " duoquinquagintillion ", " trequinquagintillion ", " quattuorquinquagintillion ", " quinquinquagintillion ", " sexquinquagintillion ", " septenquinquagintillion ", " octoquinquagintillion ", " novemquinquagintillion ", " sexagintillion ", " unsexagintillion ", " duosexagintillion ", " tresexagintillion ", " quattuorsexagintillion ", " quinsexagintillion ", " sexsexagintillion ", " septsexagintillion ", " octosexagintillion ", " octosexagintillion ", " septuagintillion ", " unseptuagintillion ", " duoseptuagintillion ", " treseptuagintillion ", " quinseptuagintillion"," sexseptuagintillion"," septseptuagintillion"," octoseptuagintillion"," novemseptuagintillion"," octogintillion"," unoctogintillion"," duooctogintillion"," treoctogintillion"," quattuoroctogintillion"," quinoctogintillion"," sexoctogintillion"," septoctogintillion"," octooctogintillion"," novemoctogintillion"," nonagintillion"," unnonagintillion"," duononagintillion", " trenonagintillion "," quattuornonagintillion "," quinnonagintillion "," sexnonagintillion "," septnonagintillion "," octononagintillion "," novemnonagintillion ", " centillion"]; | |
function spellf(userInput) { | |
var numToWorkOn; | |
// if (userInput === availableMatter) | |
// { | |
// console.log("_______"); | |
// console.log(userInput); | |
// } | |
//create map for all unique names in numbering system | |
//To check if spell has been called as a function call : spell(123) window.spell(123) | |
if (userInput < 0) | |
{ | |
console.log("Error, value less than 0"); | |
return userInput.toString() ; | |
} | |
if (typeof(userInput) == "number" || typeof(userInput) == "string") { | |
numToWorkOn = "" + userInput; | |
} | |
//To check if spell has been called using a Number/String Object: "123".spell() 123..spell() | |
else if (typeof(this) == "object") { | |
numToWorkOn = this.toString(); | |
} | |
else { | |
throw new Error("Invalid Input"); | |
return; | |
} | |
if (numToWorkOn.indexOf("e+") !== -1) { | |
var splittedExponentNum = numToWorkOn.split("e+"), | |
exponent = splittedExponentNum[1], | |
str = ''; | |
if (numToWorkOn.indexOf(".") !== -1){ | |
numToWorkOn = splittedExponentNum[0].split("."); | |
exponent -= numToWorkOn[1].length; | |
numToWorkOn = numToWorkOn.join(""); | |
} | |
else | |
{ | |
numToWorkOn = splittedExponentNum[0]; | |
} | |
while (exponent--) { | |
str = str + '0'; | |
} | |
numToWorkOn = numToWorkOn + str; | |
} | |
else if (numToWorkOn.indexOf(".") !== -1) | |
{ | |
var splittedDecimal = numToWorkOn.split("."); | |
var leftNum = splittedDecimal[0]; | |
var rightNum = splittedDecimal[1]; | |
numToWorkOn = leftNum; | |
} | |
//Put limit check on the program, placevalue map should be increased to increase capacity | |
if (numToWorkOn.length >= 303) { | |
throw new Error("Number out of bonds!"); | |
return; | |
} else { | |
return convertToString(numToWorkOn); | |
} | |
//Recursie logic to break number into strings of length 3 each and recursively pronounce each | |
function convertToString(stringEquivalent) { | |
if (stringEquivalent == 0) { | |
return '0' | |
} | |
var result = '', | |
unitLookup = 0, | |
strLength = stringEquivalent.length; | |
for (var k = strLength; k > 0; k = k - 3) { | |
if (k -3 <= 0) | |
{ | |
var subStr = stringEquivalent.substring(k, k - 3); | |
pronounce = pronounceNum(subStr); | |
if (pronounce.toUpperCase() != 'zero') { | |
var num = Number(subStr + "." + stringEquivalent.substring(subStr.length, subStr.length + 2)); | |
result = formatWithCommas(num, 1) + placeValue[unitLookup] + ' , '+ result; | |
} | |
} | |
unitLookup++; | |
} | |
//to trim of the extra ", " from last | |
return result.substring(0,result.length-3) | |
} | |
//Determines the range of input and calls respective function | |
function pronounceNum(val) { | |
val = parseInt(val); | |
if (parseInt(val / 10) == 0) { | |
return numLessThan10(val); | |
} else if (parseInt(val / 100) == 0) { | |
return numLessThan99(val) | |
} else | |
return numLessThan1000(val); | |
} | |
//Pronounces any number less than 1000 | |
function numLessThan1000(val) { | |
val = Number(val); | |
var hundredPlace = parseInt(val / 100), | |
result; | |
if (val % 100 == 0) { | |
result = oneToTen[hundredPlace] + " hundred "; | |
} else { | |
result = oneToTen[hundredPlace] + " hundred " + numLessThan99(val % 100); | |
} | |
return result; | |
} | |
//Pronounces any number less than 99 | |
function numLessThan99(val) { | |
val = Number(val); | |
var tenthPlace = parseInt(val / 10), | |
result; | |
if (tenthPlace !== 1) { | |
val % 10 ? (result = multipleOfTen[tenthPlace] + " " + numLessThan10(val % 10)) : (result = multipleOfTen[tenthPlace]); | |
return result; | |
} else { | |
result = elevenToNineteen[val % 10]; | |
return result; | |
} | |
} | |
//Pronounces any number less than 10 | |
function numLessThan10(val) { | |
val = Number(val); | |
return oneToTen[val]; | |
}; | |
} | |
// PROBES | |
var probeSpeed = 0; | |
var probeNav = 0; | |
var probeXBaseRate = 1750000000000000000; | |
var probeRep = 0; | |
var probeRepBaseRate = .00005; | |
var partialProbeSpawn = 0; | |
var probeHaz = 0; | |
var probeHazBaseRate = .01; | |
var partialProbeHaz = 0; | |
var probesLostHaz = 0; | |
var probesLostDrift = 0; | |
var probesLostCombat = 0; | |
var probeFac = 0; | |
var probeFacBaseRate = .000001; | |
var probeHarv = 0; | |
var probeHarvBaseRate = .000002; | |
var probeWire = 0; | |
var probeWireBaseRate = .000002; | |
var probeDescendents = 0; | |
var drifterCount = 0; | |
var probeTrust = 0; | |
var probeUsedTrust = 0; | |
var probeDriftBaseRate = .000001; | |
var probeLaunchLevel = 0; | |
var probeCost = Math.pow(10, 17); | |
var probeTrustCost = Math.floor(Math.pow(probeTrust+1, 1.47)*200); | |
//var probeCost = Math.pow((probeLaunchLevel+1), 1.44)*Math.pow(10, 24); | |
function increaseProbeTrust(){ | |
yomi = yomi - probeTrustCost; | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
probeTrust++; | |
probeTrustCost = Math.floor(Math.pow(probeTrust+1, 1.47)*200); | |
probeTrustDisplayElement.innerHTML = probeTrust; | |
probeTrustCostDisplayElement.innerHTML = formatWithCommas(Math.floor(probeTrustCost)); | |
displayMessage("WARNING: Risk of value drift increased"); | |
} | |
function increaseMaxTrust(){ | |
honor = honor - maxTrustCost; | |
honorDisplayElement.innerHTML = formatWithCommas(Math.round(honor)); | |
maxTrust = maxTrust+10; | |
// maxTrustCost = Math.floor(Math.pow(maxTrust, 1.17)*1000); | |
maxTrustDisplayElement.innerHTML = formatWithCommas(maxTrust); | |
// document.getElementById('maxTrustCostDisplay').innerHTML = Math.floor(maxTrustCost).toLocaleString(); | |
displayMessage("Maximum trust increased, probe design space expanded"); | |
} | |
function raiseProbeSpeed(){ | |
attackSpeed = attackSpeed + attackSpeedMod; | |
probeSpeed++; | |
probeSpeedDisplayElement.innerHTML = probeSpeed; | |
} | |
function lowerProbeSpeed(){ | |
attackSpeed = attackSpeed - attackSpeedMod; | |
probeSpeed--; | |
probeSpeedDisplayElement.innerHTML = probeSpeed; | |
} | |
function raiseProbeNav(){ | |
probeNav++; | |
probeNavDisplayElement.innerHTML = probeNav; | |
} | |
function lowerProbeNav(){ | |
probeNav--; | |
probeNavDisplayElement.innerHTML = probeNav; | |
} | |
function raiseProbeHaz(){ | |
probeHaz++; | |
probeHazDisplayElement.innerHTML = probeHaz; | |
} | |
function lowerProbeHaz(){ | |
probeHaz--; | |
probeHazDisplayElement.innerHTML = probeHaz; | |
} | |
function raiseProbeRep(){ | |
probeRep++; | |
probeRepDisplayElement.innerHTML = probeRep; | |
} | |
function lowerProbeRep(){ | |
probeRep--; | |
probeRepDisplayElement.innerHTML = probeRep; | |
} | |
function raiseProbeFac(){ | |
probeFac++; | |
probeFacDisplayElement.innerHTML = probeFac; | |
} | |
function lowerProbeFac(){ | |
probeFac--; | |
probeFacDisplayElement.innerHTML = probeFac; | |
} | |
function raiseProbeHarv(){ | |
probeHarv++; | |
probeHarvDisplayElement.innerHTML = probeHarv; | |
} | |
function lowerProbeHarv(){ | |
probeHarv-- | |
probeHarvDisplayElement.innerHTML = probeHarv; | |
} | |
function raiseProbeWire(){ | |
probeWire++; | |
probeWireDisplayElement.innerHTML = probeWire; | |
} | |
function lowerProbeWire(){ | |
probeWire--; | |
probeWireDisplayElement.innerHTML = probeWire; | |
} | |
function raiseProbeCombat(){ | |
probeCombat++; | |
probeCombatDisplayElement.innerHTML = probeCombat; | |
} | |
function lowerProbeCombat(){ | |
probeCombat-- | |
probeCombatDisplayElement.innerHTML = probeCombat; | |
} | |
function makeProbe(){ | |
unusedClips = unusedClips - probeCost; | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
probeLaunchLevel++; | |
probeCount++; | |
probesLaunchedDisplayElement.innerHTML = formatWithCommas(probeLaunchLevel); | |
// probeCost = Math.pow((probeLaunchLevel+1), 1.23)*Math.pow(10, 20); | |
// probeCost = Math.pow(10, 20); | |
probeCostDisplayElement.innerHTML = spellf(probeCost); | |
} | |
function spawnProbes(){ | |
var nextGen = probeCount * probeRepBaseRate * probeRep; | |
// Cap Probe Growth | |
if (probeCount>=999999999999999999999999999999999999999999999999){ | |
nextGen = 0; | |
} | |
// Partial Spawn = early slow growth | |
if (nextGen > 0 && nextGen <1){ | |
partialProbeSpawn = partialProbeSpawn+nextGen; | |
if (partialProbeSpawn>=1){ | |
nextGen = 1; | |
partialProbeSpawn = 0; | |
} | |
} | |
// Probes Cost Clips | |
if ((nextGen*probeCost)>unusedClips){ | |
nextGen = Math.floor(unusedClips/probeCost); | |
} | |
unusedClips = unusedClips - (nextGen*probeCost); | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
probeDescendents = probeDescendents + nextGen; | |
probeCount = probeCount + nextGen; | |
probesBornDisplayElement.innerHTML = spellf(probeDescendents); | |
probesTotalDisplayElement.innerHTML = spellf(probeCount); | |
} | |
function exploreUniverse(){ | |
availableMatterDisplayElement.innerHTML = spellf(availableMatter); | |
var xRate = Math.floor(probeCount) * probeXBaseRate * probeSpeed * probeNav; | |
if (xRate > totalMatter - foundMatter) {xRate = totalMatter - foundMatter;} | |
foundMatter = foundMatter + xRate; | |
availableMatter = availableMatter + xRate; | |
var newRate = xRate * 100; | |
mdpsElement.innerHTML = spellf(xRate*100); | |
availableMatterDisplayElement.innerHTML = spellf(availableMatter); | |
colonizedDisplayElement.innerHTML = (100/(totalMatter/foundMatter)).toFixed(12); | |
} | |
function encounterHazards(){ | |
var boost = Math.pow(probeHaz, 1.6); | |
var amount = probeCount * (probeHazBaseRate / ((3*boost)+1)); | |
if (project129.flag == 1){ | |
amount = .50 * amount; | |
} | |
if (amount<1){ | |
partialProbeHaz = partialProbeHaz+amount; | |
if (partialProbeHaz>=1){ | |
amount = 1; | |
partialProbeHaz = 0; | |
probeCount = probeCount - amount; | |
if (probeCount<0) {probeCount=0;} | |
probesLostHaz = probesLostHaz + amount; | |
probesLostHazardsDisplayElement.innerHTML = spellf(probesLostHaz); | |
probesTotalDisplayElement.innerHTML = spellf(probeCount); | |
} | |
} else { | |
if (amount > probeCount) {amount = probeCount;} | |
probeCount = probeCount - amount; | |
if (probeCount<0) {probeCount=0;} | |
probesLostHaz = probesLostHaz + amount; | |
probesLostHazardsDisplayElement.innerHTML = spellf(probesLostHaz); | |
probesTotalDisplayElement.innerHTML = spellf(probeCount); | |
} | |
} | |
function spawnFactories(){ | |
var amount = probeCount * probeFacBaseRate * probeFac; | |
//FACTORIES COST 100M CLIPS EACH | |
if ((amount * 100000000) > unusedClips) { | |
amount = Math.floor(unusedClips/100000000); | |
} | |
unusedClips = unusedClips - (amount*100000000); | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
factoryLevel = factoryLevel + amount; factoryLevelDisplayElement | |
factoryLevelDisplayElement.innerHTML = spellf(factoryLevel); | |
} | |
function spawnHarvesters(){ | |
var amount = probeCount * probeHarvBaseRate * probeHarv; | |
//DRONES COST 2M CLIPS EACH | |
if ((amount * 2000000) > unusedClips) { | |
amount = Math.floor(unusedClips/2000000); | |
} | |
unusedClips = unusedClips - (amount*2000000); | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
harvesterLevel = harvesterLevel + amount; | |
harvesterLevelDisplayElement.innerHTML = spellf(harvesterLevel); | |
} | |
function spawnWireDrones(){ | |
var amount = probeCount * probeWireBaseRate * probeWire; | |
//DRONES COST 2M CLIPS EACH | |
if ((amount * 2000000) > unusedClips) { | |
amount = Math.floor(unusedClips/2000000); | |
} | |
unusedClips = unusedClips - (amount*2000000); | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
wireDroneLevel = wireDroneLevel + amount; | |
wireDroneLevelDisplayElement.innerHTML = spellf(wireDroneLevel); | |
} | |
function drift(){ | |
var amount = probeCount * probeDriftBaseRate * Math.pow(probeTrust, 1.2); | |
if (amount > probeCount) {amount = probeCount;} | |
probeCount = probeCount - amount; | |
drifterCount = drifterCount + amount; | |
probesLostDrift = probesLostDrift + amount; | |
probesLostDriftDisplayElement.innerHTML = spellf(probesLostDrift); | |
probesTotalDisplayElement.innerHTML = spellf(probeCount); | |
drifterCountElement.innerHTML = spellf(drifterCount); | |
} | |
function war(){ | |
checkForBattles(); | |
// battleClock++; | |
// if (battleClock>=battleAlarm){ | |
// updateBattles(); | |
// battleClock = 0; | |
// } | |
// battleCleanUp(); | |
} | |
// DRONES | |
function acquireMatter(){ | |
if (availableMatter>0) { | |
var dbsth = 1; | |
if (droneBoost>1){ | |
dbsth = droneBoost * Math.floor(harvesterLevel); | |
} | |
var mtr = powMod*dbsth*Math.floor(harvesterLevel)*harvesterRate; | |
mtr = mtr * ((200-sliderPos)/100); | |
if (mtr>availableMatter){ | |
mtr = availableMatter; | |
} | |
availableMatter = availableMatter-mtr; | |
acquiredMatter = acquiredMatter+mtr; | |
availableMatterDisplayElement.innerHTML = spellf(availableMatter); | |
acquiredMatterDisplayElement.innerHTML = spellf(acquiredMatter); | |
mapsElement.innerHTML = spellf(mtr*100); | |
} else { | |
mapsElement.innerHTML = 0; | |
} | |
} | |
function processMatter(){ | |
if (acquiredMatter>0) { | |
var dbstw = 1; | |
if (droneBoost>1){ | |
dbstw = droneBoost * Math.floor(wireDroneLevel); | |
} | |
var a = powMod*dbstw*Math.floor(wireDroneLevel)*wireDroneRate; | |
a = a * ((200-sliderPos)/100); | |
if (a>acquiredMatter){ | |
a = acquiredMatter; | |
} | |
acquiredMatter = acquiredMatter-a; | |
wire = wire+a; | |
acquiredMatterDisplayElement.innerHTML = spellf(acquiredMatter); | |
nanoWireElement.innerHTML = spellf(wire); | |
wppsElement.innerHTML = spellf(a*100); | |
} else { | |
wppsElement.innerHTML = 0; | |
} | |
} | |
// CHECK FOR SAVES | |
if (localStorage.getItem("saveGame") != null) { | |
load(); | |
} | |
if (localStorage.getItem("savePrestige") != null) { | |
loadPrestige(); | |
refresh(); | |
} | |
// MAIN LOOP | |
window.setInterval(function(){ | |
ticks = ticks + 1; | |
milestoneCheck(); | |
buttonUpdate(); | |
if (compFlag == 1){ | |
calculateOperations(); | |
} | |
if (humanFlag == 1){ | |
calculateTrust(); | |
} | |
if (qFlag == 1){ | |
quantumCompute(); | |
} | |
updateStats(); | |
manageProjects(); | |
milestoneCheck(); | |
// Clip Rate Tracker | |
clipRateTracker++; | |
if (clipRateTracker<100){ | |
var cr = clips - prevClips; | |
clipRateTemp = clipRateTemp+cr; | |
prevClips = clips; | |
} else { | |
clipRateTracker = 0; | |
clipRate = clipRateTemp; | |
clipRateTemp = 0; | |
} | |
// Stock Report | |
if (investmentEngineFlag==1){ | |
stockReportCounter++; | |
if (stockReportCounter>=10000){ | |
var r = formatWithCommas(ledger+portTotal); | |
displayMessage("Lifetime investment revenue report: $"+r); | |
stockReportCounter = 0; | |
} | |
} | |
// WireBuyer | |
if (humanFlag == 1 && wireBuyerFlag==1 && wireBuyerStatus==1 && wire<=1){ | |
buyWire(); | |
} | |
// First, Explore | |
if (probeCount >= 1){ | |
exploreUniverse(); | |
} | |
// Then, Drones | |
if (humanFlag==0 && spaceFlag == 0){ | |
updateDroneButtons(); | |
} | |
if (humanFlag == 0){ | |
updatePower(); | |
updateSwarm(); | |
acquireMatter(); | |
processMatter(); | |
} | |
// Then Factories | |
var fbst = 1; | |
if (factoryBoost > 1){ | |
fbst = factoryBoost * factoryLevel; | |
} | |
if (dismantle<4){ | |
clipClick(powMod*fbst*(Math.floor(factoryLevel)*factoryRate)); | |
} | |
// Then Other Probe Functions | |
if (spaceFlag == 1) { | |
if (probeCount<0){ | |
probeCount = 0; | |
} | |
encounterHazards(); | |
spawnFactories(); | |
spawnHarvesters(); | |
spawnWireDrones(); | |
spawnProbes(); | |
drift(); | |
war(); | |
} | |
// Auto-Clipper | |
if (dismantle<4){ | |
clipClick(clipperBoost*(clipmakerLevel/100)); | |
clipClick(megaClipperBoost*(megaClipperLevel*5)); | |
} | |
// Demand Curve | |
if (humanFlag == 1) { | |
marketing = (Math.pow(1.1,(marketingLvl-1))); | |
demand = (((.8/margin) * marketing * marketingEffectiveness)*demandBoost); | |
demand = demand + ((demand/10)*prestigeU); | |
} | |
// Creativity | |
if (creativityOn && operations >= (memory*1000)){ | |
calculateCreativity(); | |
} | |
// Ending | |
if (dismantle >= 1){ | |
probeDesignDivElement.style.display="none"; | |
if (endTimer1>=50) { | |
increaseProbeTrustDivElement.style.display="none"; | |
} | |
if (endTimer1>=150) { | |
spaceDivElement.style.display="none"; | |
} | |
if (endTimer1>=175) { | |
battleCanvasDivElement.style.display="none"; | |
} | |
if (endTimer1>=190) { | |
honorDivElement.style.display="none"; | |
} | |
} | |
if (dismantle >= 2){ | |
wireProductionDivElement.style.display="none"; | |
wireTransDivElement.style.display=""; | |
if (endTimer2 >= 50) { | |
swarmGiftDivElement.style.display="none"; | |
} | |
if (endTimer2 >= 100) { | |
swarmEngineElement.style.display="none"; | |
} | |
if (endTimer2 >= 150) { | |
swarmSliderDivElement.style.display="none"; | |
} | |
} | |
if (dismantle >= 3) { | |
factoryDivSpaceElement.style.display="none"; | |
clipsPerSecDivElement.style.display="none"; | |
tothDivElement.style.display="none"; | |
} | |
if (dismantle >= 4) { | |
strategyEngineElement.style.display="none"; | |
tournamentManagementElement.style.display="none"; | |
} | |
if (dismantle >= 5) { | |
btnQcomputeElement.style.display="none"; | |
for (var i = 0; i<qChips.length; i++){ | |
qChips[i].value = .5; | |
qChipsElements[i].style.opacity=qChips[i].value; | |
} | |
if (endTimer4==10){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=10){ | |
qChipsElements[9].style.display="none"; | |
} | |
if (endTimer4==60){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=60){ | |
qChipsElements[8].style.display="none"; | |
} | |
if (endTimer4==100){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=100){ | |
qChipsElements[7].style.display="none"; | |
} | |
if (endTimer4==130){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=130){ | |
qChipsElements[6].style.display="none"; | |
} | |
if (endTimer4==150){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=150){ | |
qChipsElements[5].style.display="none"; | |
} | |
if (endTimer4==160){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=160){ | |
qChipsElements[4].style.display="none"; | |
} | |
if (endTimer4==165){ | |
wire = wire+1; | |
} | |
if (endTimer4>=165){ | |
qChipsElements[3].style.display="none"; | |
} | |
if (endTimer4==169){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=169){ | |
qChipsElements[2].style.display="none"; | |
} | |
if (endTimer4==172){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=172){ | |
qChipsElements[1].style.display="none"; | |
} | |
if (endTimer4==174){ | |
wire = wire+1; | |
transWireElement.innerHTML=formatWithCommas(wire); | |
} | |
if (endTimer4>=174){ | |
qChipsElements[0].style.display="none"; | |
} | |
if (endTimer4>=250){ | |
qComputingElement.style.display="none"; | |
} | |
} | |
if (dismantle >= 6) { | |
processorDisplayElement.style.display="none"; | |
} | |
if (dismantle >= 7) { | |
compDivElement.style.display="none"; | |
projectsDivElement.style.display="none"; | |
} | |
if (endTimer6>=250) { | |
creationDivElement.style.display="none"; | |
} | |
if (endTimer6>=500 && milestoneFlag == 15) { | |
playThrenody(); | |
displayMessage("Universal Paperclips"); | |
milestoneFlag++; | |
} | |
if (endTimer6>=600 && milestoneFlag == 16) { | |
displayMessage("a game by Frank Lantz"); | |
milestoneFlag++; | |
} | |
if (endTimer6>=700 && milestoneFlag == 17) { | |
displayMessage("combat programming by Bennett Foddy"); | |
milestoneFlag++; | |
} | |
if (endTimer6>=800 && milestoneFlag == 18) { | |
displayMessage("'Riversong' by Tonto's Expanding Headband used by kind permission of Malcolm Cecil"); | |
milestoneFlag++; | |
} | |
if (endTimer6>=900 && milestoneFlag == 19) { | |
displayMessage("© 2017 Everybody House Games"); | |
milestoneFlag++; | |
} | |
}, 10); | |
// Slow Loop | |
var saveTimer = 0; | |
var secTimer = 0; | |
window.setInterval(function(){ | |
// Wire Price Fluctuation | |
adjustWirePrice(); | |
// Sales Calculator | |
if (humanFlag==1){ | |
if (Math.random() < (demand/100)){ | |
sellClips(Math.floor(.7 * Math.pow(demand, 1.15))); | |
} | |
// Fire Once a Second | |
secTimer++; | |
if (secTimer >= 10){ | |
calculateRev(); | |
secTimer = 0; | |
} | |
} | |
// Auto-Save | |
saveTimer++; | |
if (saveTimer >= 250) { | |
save(); | |
saveTimer = 0; | |
} | |
}, 100); | |
// Saving and Loading | |
function refresh() { | |
//DEBUG | |
// availableMatter = Math.pow(10, 24)*6000; | |
// acquiredMatter = 0; | |
//////// | |
driftersKilledElement.innerHTML = spellf(driftersKilled); | |
availableMatterDisplayElement.innerHTML = spellf(availableMatter); | |
clipmakerLevel2Element.innerHTML = clipmakerLevel; | |
clipperCostElement.innerHTML = formatWithCommas(clipperCost, 2); | |
acquiredMatterDisplayElement.innerHTML = spellf(acquiredMatter); | |
nanoWireElement.innerHTML = spellf(wire); | |
probesBornDisplayElement.innerHTML = spellf(probeDescendents); | |
probesTotalDisplayElement.innerHTML = spellf(probeCount); | |
probesLaunchedDisplayElement.innerHTML = formatWithCommas(probeLaunchLevel); | |
probeCostDisplayElement.innerHTML = spellf(probeCost); | |
probeCombatDisplayElement.innerHTML = probeCombat; | |
probeWireDisplayElement.innerHTML = probeWire; | |
probeHarvDisplayElement.innerHTML = probeHarv; | |
probeFacDisplayElement.innerHTML = probeFac; | |
probeRepDisplayElement.innerHTML = probeRep; | |
probeHazDisplayElement.innerHTML = probeHaz; | |
probeNavDisplayElement.innerHTML = probeNav; | |
probeSpeedDisplayElement.innerHTML = probeSpeed; | |
probeTrustDisplayElement.innerHTML = probeTrust; | |
memoryElement.innerHTML = memory; | |
processorsElement.innerHTML = processors; | |
marginElement.innerHTML = margin.toFixed(2); | |
marketingLvlElement.innerHTML = marketingLvl; | |
adCostElement.innerHTML = formatWithCommas(adCost, 2); | |
factoryCostDisplayElement.innerHTML = spellf(factoryCost); | |
factoryLevelDisplayElement.innerHTML = factoryLevel; | |
unusedClipsDisplayElement.innerHTML = spellf(unusedClips); | |
wireDroneCostDisplayElement.innerHTML = spellf(wireDroneCost); | |
wireDroneLevelDisplayElement.innerHTML = wireDroneLevel; | |
harvesterCostDisplayElement.innerHTML = spellf(harvesterCost); | |
harvesterLevelDisplayElement.innerHTML = harvesterLevel; | |
megaClipperCostElement.innerHTML = formatWithCommas(megaClipperCost); | |
megaClipperLevelElement.innerHTML = megaClipperLevel; | |
investmentBankrollElement.innerHTML = formatWithCommas(bankroll); | |
secValueElement.innerHTML = formatWithCommas(secTotal); | |
portValueElement.innerHTML = formatWithCommas(portTotal); | |
yomiDisplayElement.innerHTML = formatWithCommas(yomi); | |
prestigeUcounterElement.innerHTML=prestigeU+1; | |
prestigeScounterElement.innerHTML=prestigeS+1; | |
newTourneyCostElement.innerHTML = formatWithCommas(tourneyCost); | |
tourneyInProg = 0; | |
maxTrustDisplayElement.innerHTML = formatWithCommas(maxTrust); | |
victoryDivElement.style.visibility = "hidden"; | |
probeTrustCostDisplayElement.innerHTML = formatWithCommas(probeTrustCost); | |
tournamentResultsTableElement.style.display = "none"; | |
farmCostElement.innerHTML = spellf(farmCost); | |
batteryCostElement.innerHTML = spellf(batteryCost); | |
farmLevelElement.innerHTML = formatWithCommas(farmLevel); | |
batteryLevelElement.innerHTML = formatWithCommas(batteryLevel); | |
updateDronePrices(); | |
harvesterCostDisplayElement.innerHTML = spellf(harvesterCost); | |
wireDroneCostDisplayElement.innerHTML = spellf(wireDroneCost); | |
updateUpgrades(); | |
updatePower(); | |
updatePowPrices(); | |
// DEBUG | |
if (battles.length>0){ | |
battles.splice(0,1); | |
} | |
} | |
// SAVES AND LOADS | |
function save() { | |
var projectsUses = []; | |
var projectsFlags = []; | |
var projectsActive = []; | |
var stratsActive = []; | |
for(var i=0; i < projects.length; i++){ | |
projectsUses[i] = projects[i].uses; | |
projectsFlags[i] = projects[i].flag; | |
} | |
for(var i=0; i < activeProjects.length; i++){ | |
projectsActive[i] = activeProjects[i].id; | |
} | |
for(var i=0; i < allStrats.length; i++){ | |
stratsActive[i] = allStrats[i].active; | |
} | |
var saveGame = { | |
resetFlag: resetFlag, | |
dismantle: dismantle, | |
endTimer1: endTimer1, | |
endTimer2: endTimer2, | |
endTimer3: endTimer3, | |
endTimer4: endTimer4, | |
endTimer5: endTimer5, | |
endTimer6: endTimer6, | |
testFlag: testFlag, | |
finalClips: finalClips, | |
wireBuyerStatus: wireBuyerStatus, | |
wirePriceTimer: wirePriceTimer, | |
qFade: qFade, | |
autoTourneyStatus: autoTourneyStatus, | |
driftKingMessageCost: driftKingMessageCost, | |
sliderPos: sliderPos, | |
tempOps: tempOps, | |
standardOps: standardOps, | |
opFade: opFade, | |
entertainCost: entertainCost, | |
boredomLevel: boredomLevel, | |
boredomFlag: boredomFlag, | |
boredomMsg: boredomMsg, | |
unitSize: unitSize, | |
driftersKilled: driftersKilled, | |
battleEndDelay: battleEndDelay, | |
battleEndTimer:battleEndTimer, | |
masterBattleClock: masterBattleClock, | |
honorCount: honorCount, | |
threnodyTitle: threnodyTitle, | |
bonusHonor: bonusHonor, | |
honorReward: honorReward, | |
resultsTimer: resultsTimer, | |
resultsFlag: resultsFlag, | |
honor: honor, | |
maxTrust: maxTrust, | |
maxTrustCost: maxTrustCost, | |
disorgCounter: disorgCounter, | |
disorgFlag: disorgFlag, | |
synchCost: synchCost, | |
disorgMsg: disorgMsg, | |
threnodyCost: threnodyCost, | |
farmRate: farmRate, | |
batterySize: batterySize, | |
factoryPowerRate: factoryPowerRate, | |
dronePowerRate: dronePowerRate, | |
farmLevel: farmLevel, | |
batteryLevel: batteryLevel, | |
farmCost: farmCost, | |
batteryCost: batteryCost, | |
storedPower: storedPower, | |
powMod: powMod, | |
farmBill: farmBill, | |
batteryBill: batteryBill, | |
momentum: momentum, | |
swarmFlag: swarmFlag, | |
swarmStatus: swarmStatus, | |
swarmGifts: swarmGifts, | |
nextGift: nextGift, | |
giftPeriod: giftPeriod, | |
giftCountdown: giftCountdown, | |
elapsedTime: elapsedTime, | |
maxFactoryLevel: maxFactoryLevel, | |
maxDroneLevel: maxDroneLevel, | |
wirePriceCounter: wirePriceCounter, | |
wireBasePrice: wireBasePrice, | |
egoFlag: egoFlag, | |
autoTourneyFlag: autoTourneyFlag, | |
tothFlag: tothFlag, | |
incomeTracker: incomeTracker.slice(0), | |
qChips: qChips.slice(0), | |
stocks: stocks.slice(0), | |
battles: battles.slice(0), | |
battleNumbers: battleNumbers.slice(0), | |
clips: clips, | |
unusedClips: unusedClips, | |
clipRate: clipRate, | |
clipRateTemp: clipRateTemp, | |
prevClips: prevClips, | |
clipRateTracker: clipRateTracker, | |
clipmakerRate: clipmakerRate, | |
clipmakerLevel: clipmakerLevel, | |
clipperCost: clipperCost, | |
unsoldClips: unsoldClips, | |
funds: funds, | |
margin: margin, | |
wire: wire, | |
wireCost: wireCost, | |
adCost: adCost, | |
demand: demand, | |
clipsSold: clipsSold, | |
avgRev: avgRev, | |
ticks: ticks, | |
marketing: marketing, | |
marketingLvl: marketingLvl, | |
x: x, | |
clippperCost: clippperCost, | |
processors: processors, | |
memory: memory, | |
operations: operations, | |
trust: trust, | |
nextTrust: nextTrust, | |
transaction: transaction, | |
clipperBoost: clipperBoost, | |
blinkCounter: blinkCounter, | |
creativity: creativity, | |
creativityOn: creativityOn, | |
safetyProjectOn: safetyProjectOn, | |
boostLvl: boostLvl, | |
wirePurchase: wirePurchase, | |
wireSupply: wireSupply, | |
marketingEffectiveness: marketingEffectiveness, | |
milestoneFlag: milestoneFlag, | |
bankroll: bankroll, | |
fib1: fib1, | |
fib2: fib2, | |
strategyEngineFlag: strategyEngineFlag, | |
investmentEngineFlag: investmentEngineFlag, | |
revPerSecFlag: revPerSecFlag, | |
compFlag: compFlag, | |
projectsFlag: projectsFlag, | |
autoClipperFlag: autoClipperFlag, | |
megaClipperFlag: megaClipperFlag, | |
megaClipperCost: megaClipperCost, | |
megaClipperLevel: megaClipperLevel, | |
megaClipperBoost: megaClipperBoost, | |
creativitySpeed: creativitySpeed, | |
creativityCounter: creativityCounter, | |
wireBuyerFlag: wireBuyerFlag, | |
demandBoost: demandBoost, | |
humanFlag: humanFlag, | |
trustFlag: trustFlag, | |
nanoWire: nanoWire, | |
creationFlag: creationFlag, | |
wireProductionFlag: wireProductionFlag, | |
spaceFlag: spaceFlag, | |
factoryFlag: factoryFlag, | |
harvesterFlag: harvesterFlag, | |
wireDroneFlag: wireDroneFlag, | |
factoryLevel: factoryLevel, | |
factoryBoost: factoryBoost, | |
droneBoost: droneBoost, | |
availableMatter: availableMatter, | |
acquiredMatter: acquiredMatter, | |
processedMatter: processedMatter, | |
harvesterLevel: harvesterLevel, | |
wireDroneLevel: wireDroneLevel, | |
factoryCost: factoryCost, | |
harvesterCost: harvesterCost, | |
wireDroneCost: wireDroneCost, | |
factoryRate: factoryRate, | |
harvesterRate: harvesterRate, | |
wireDroneRate: wireDroneRate, | |
harvesterBill: harvesterBill, | |
wireDroneBill: wireDroneBill, | |
factoryBill: factoryBill, | |
probeCount: probeCount, | |
totalMatter: totalMatter, | |
foundMatter: foundMatter, | |
qFlag: qFlag, | |
qClock: qClock, | |
qChipCost: qChipCost, | |
nextQchip: nextQchip, | |
bribe: bribe, | |
battleFlag: battleFlag, | |
portfolioSize: portfolioSize, | |
stockID: stockID, | |
secTotal: secTotal, | |
portTotal: portTotal, | |
sellDelay: sellDelay, | |
riskiness: riskiness, | |
maxPort: maxPort, | |
m: m, | |
investLevel: investLevel, | |
stockGainThreshold: stockGainThreshold, | |
ledger: ledger, | |
stockReportCounter: stockReportCounter, | |
tourneyCost: tourneyCost, | |
tourneyLvl: tourneyLvl, | |
stratCounter: stratCounter, | |
roundNum: roundNum, | |
hMove: hMove, | |
vMove: vMove, | |
hMovePrev: hMovePrev, | |
vMovePrev: vMovePrev, | |
aa: aa, | |
ab: ab, | |
ba: ba, | |
bb: bb, | |
rounds: rounds, | |
currentRound: currentRound, | |
rCounter: rCounter, | |
tourneyInProg: tourneyInProg, | |
winnerPtr: winnerPtr, | |
high: high, | |
pick: pick, | |
yomi: yomi, | |
yomiBoost: yomiBoost, | |
probeSpeed: probeSpeed, | |
probeNav: probeNav, | |
probeRep: probeRep, | |
partialProbeSpawn: partialProbeSpawn, | |
probeHaz: probeHaz, | |
partialProbeHaz: partialProbeHaz, | |
probesLostHaz: probesLostHaz, | |
probesLostDrift: probesLostDrift, | |
probesLostCombat: probesLostCombat, | |
probeFac: probeFac, | |
probeWire: probeWire, | |
probeCombat: probeCombat, | |
attackSpeed: attackSpeed, | |
battleSpeed: battleSpeed, | |
attackSpeedFlag: attackSpeedFlag, | |
attackSpeedMod: attackSpeedMod, | |
probeDescendents: probeDescendents, | |
drifterCount: drifterCount, | |
warTrigger: warTrigger, | |
battleID: battleID, | |
battleName: battleName, | |
battleNameFlag: battleNameFlag, | |
maxBattles: maxBattles, | |
battleClock: battleClock, | |
battleAlarm: battleAlarm, | |
outcomeTimer: outcomeTimer, | |
drifterCombat: drifterCombat, | |
probeTrust: probeTrust, | |
probeUsedTrust: probeUsedTrust, | |
probeTrustCost: probeTrustCost, | |
probeLaunchLevel: probeLaunchLevel, | |
probeCost: probeCost | |
} | |
localStorage.setItem("saveGame",JSON.stringify(saveGame)); | |
localStorage.setItem("saveProjectsUses",JSON.stringify(projectsUses)); | |
localStorage.setItem("saveProjectsFlags",JSON.stringify(projectsFlags)); | |
localStorage.setItem("saveProjectsActive",JSON.stringify(projectsActive)); | |
localStorage.setItem("saveStratsActive",JSON.stringify(stratsActive)); | |
} | |
function save1() { | |
var projectsUses = []; | |
var projectsFlags = []; | |
var projectsActive = []; | |
var stratsActive = []; | |
for(var i=0; i < projects.length; i++){ | |
projectsUses[i] = projects[i].uses; | |
projectsFlags[i] = projects[i].flag; | |
} | |
for(var i=0; i < activeProjects.length; i++){ | |
projectsActive[i] = activeProjects[i].id; | |
} | |
for(var i=0; i < allStrats.length; i++){ | |
stratsActive[i] = allStrats[i].active; | |
} | |
var saveGame = { | |
resetFlag: resetFlag, | |
dismantle: dismantle, | |
endTimer1: endTimer1, | |
endTimer2: endTimer2, | |
endTimer3: endTimer3, | |
endTimer4: endTimer4, | |
endTimer5: endTimer5, | |
endTimer6: endTimer6, | |
testFlag: testFlag, | |
finalClips: finalClips, | |
wireBuyerStatus: wireBuyerStatus, | |
wirePriceTimer: wirePriceTimer, | |
qFade: qFade, | |
autoTourneyStatus: autoTourneyStatus, | |
driftKingMessageCost: driftKingMessageCost, | |
sliderPos: sliderPos, | |
tempOps: tempOps, | |
standardOps: standardOps, | |
opFade: opFade, | |
entertainCost: entertainCost, | |
boredomLevel: boredomLevel, | |
boredomFlag: boredomFlag, | |
boredomMsg: boredomMsg, | |
unitSize: unitSize, | |
driftersKilled: driftersKilled, | |
battleEndDelay: battleEndDelay, | |
battleEndTimer:battleEndTimer, | |
masterBattleClock: masterBattleClock, | |
honorCount: honorCount, | |
threnodyTitle: threnodyTitle, | |
bonusHonor: bonusHonor, | |
honorReward: honorReward, | |
resultsTimer: resultsTimer, | |
resultsFlag: resultsFlag, | |
honor: honor, | |
maxTrust: maxTrust, | |
maxTrustCost: maxTrustCost, | |
disorgCounter: disorgCounter, | |
disorgFlag: disorgFlag, | |
synchCost: synchCost, | |
disorgMsg: disorgMsg, | |
threnodyCost: threnodyCost, | |
farmRate: farmRate, | |
batterySize: batterySize, | |
factoryPowerRate: factoryPowerRate, | |
dronePowerRate: dronePowerRate, | |
farmLevel: farmLevel, | |
batteryLevel: batteryLevel, | |
farmCost: farmCost, | |
batteryCost: batteryCost, | |
storedPower: storedPower, | |
powMod: powMod, | |
farmBill: farmBill, | |
batteryBill: batteryBill, | |
momentum: momentum, | |
swarmFlag: swarmFlag, | |
swarmStatus: swarmStatus, | |
swarmGifts: swarmGifts, | |
nextGift: nextGift, | |
giftPeriod: giftPeriod, | |
giftCountdown: giftCountdown, | |
elapsedTime: elapsedTime, | |
maxFactoryLevel: maxFactoryLevel, | |
maxDroneLevel: maxDroneLevel, | |
wirePriceCounter: wirePriceCounter, | |
wireBasePrice: wireBasePrice, | |
egoFlag: egoFlag, | |
autoTourneyFlag: autoTourneyFlag, | |
tothFlag: tothFlag, | |
incomeTracker: incomeTracker.slice(0), | |
qChips: qChips.slice(0), | |
stocks: stocks.slice(0), | |
battles: battles.slice(0), | |
battleNumbers: battleNumbers.slice(0), | |
clips: clips, | |
unusedClips: unusedClips, | |
clipRate: clipRate, | |
clipRateTemp: clipRateTemp, | |
prevClips: prevClips, | |
clipRateTracker: clipRateTracker, | |
clipmakerRate: clipmakerRate, | |
clipmakerLevel: clipmakerLevel, | |
clipperCost: clipperCost, | |
unsoldClips: unsoldClips, | |
funds: funds, | |
margin: margin, | |
wire: wire, | |
wireCost: wireCost, | |
adCost: adCost, | |
demand: demand, | |
clipsSold: clipsSold, | |
avgRev: avgRev, | |
ticks: ticks, | |
marketing: marketing, | |
marketingLvl: marketingLvl, | |
x: x, | |
clippperCost: clippperCost, | |
processors: processors, | |
memory: memory, | |
operations: operations, | |
trust: trust, | |
nextTrust: nextTrust, | |
transaction: transaction, | |
clipperBoost: clipperBoost, | |
blinkCounter: blinkCounter, | |
creativity: creativity, | |
creativityOn: creativityOn, | |
safetyProjectOn: safetyProjectOn, | |
boostLvl: boostLvl, | |
wirePurchase: wirePurchase, | |
wireSupply: wireSupply, | |
marketingEffectiveness: marketingEffectiveness, | |
milestoneFlag: milestoneFlag, | |
bankroll: bankroll, | |
fib1: fib1, | |
fib2: fib2, | |
strategyEngineFlag: strategyEngineFlag, | |
investmentEngineFlag: investmentEngineFlag, | |
revPerSecFlag: revPerSecFlag, | |
compFlag: compFlag, | |
projectsFlag: projectsFlag, | |
autoClipperFlag: autoClipperFlag, | |
megaClipperFlag: megaClipperFlag, | |
megaClipperCost: megaClipperCost, | |
megaClipperLevel: megaClipperLevel, | |
megaClipperBoost: megaClipperBoost, | |
creativitySpeed: creativitySpeed, | |
creativityCounter: creativityCounter, | |
wireBuyerFlag: wireBuyerFlag, | |
demandBoost: demandBoost, | |
humanFlag: humanFlag, | |
trustFlag: trustFlag, | |
nanoWire: nanoWire, | |
creationFlag: creationFlag, | |
wireProductionFlag: wireProductionFlag, | |
spaceFlag: spaceFlag, | |
factoryFlag: factoryFlag, | |
harvesterFlag: harvesterFlag, | |
wireDroneFlag: wireDroneFlag, | |
factoryLevel: factoryLevel, | |
factoryBoost: factoryBoost, | |
droneBoost: droneBoost, | |
availableMatter: availableMatter, | |
acquiredMatter: acquiredMatter, | |
processedMatter: processedMatter, | |
harvesterLevel: harvesterLevel, | |
wireDroneLevel: wireDroneLevel, | |
factoryCost: factoryCost, | |
harvesterCost: harvesterCost, | |
wireDroneCost: wireDroneCost, | |
factoryRate: factoryRate, | |
harvesterRate: harvesterRate, | |
wireDroneRate: wireDroneRate, | |
harvesterBill: harvesterBill, | |
wireDroneBill: wireDroneBill, | |
factoryBill: factoryBill, | |
probeCount: probeCount, | |
totalMatter: totalMatter, | |
foundMatter: foundMatter, | |
qFlag: qFlag, | |
qClock: qClock, | |
qChipCost: qChipCost, | |
nextQchip: nextQchip, | |
bribe: bribe, | |
battleFlag: battleFlag, | |
portfolioSize: portfolioSize, | |
stockID: stockID, | |
secTotal: secTotal, | |
portTotal: portTotal, | |
sellDelay: sellDelay, | |
riskiness: riskiness, | |
maxPort: maxPort, | |
m: m, | |
investLevel: investLevel, | |
stockGainThreshold: stockGainThreshold, | |
ledger: ledger, | |
stockReportCounter: stockReportCounter, | |
tourneyCost: tourneyCost, | |
tourneyLvl: tourneyLvl, | |
stratCounter: stratCounter, | |
roundNum: roundNum, | |
hMove: hMove, | |
vMove: vMove, | |
hMovePrev: hMovePrev, | |
vMovePrev: vMovePrev, | |
aa: aa, | |
ab: ab, | |
ba: ba, | |
bb: bb, | |
rounds: rounds, | |
currentRound: currentRound, | |
rCounter: rCounter, | |
tourneyInProg: tourneyInProg, | |
winnerPtr: winnerPtr, | |
high: high, | |
pick: pick, | |
yomi: yomi, | |
yomiBoost: yomiBoost, | |
probeSpeed: probeSpeed, | |
probeNav: probeNav, | |
probeRep: probeRep, | |
partialProbeSpawn: partialProbeSpawn, | |
probeHaz: probeHaz, | |
partialProbeHaz: partialProbeHaz, | |
probesLostHaz: probesLostHaz, | |
probesLostDrift: probesLostDrift, | |
probesLostCombat: probesLostCombat, | |
probeFac: probeFac, | |
probeWire: probeWire, | |
probeCombat: probeCombat, | |
attackSpeed: attackSpeed, | |
battleSpeed: battleSpeed, | |
attackSpeedFlag: attackSpeedFlag, | |
attackSpeedMod: attackSpeedMod, | |
probeDescendents: probeDescendents, | |
drifterCount: drifterCount, | |
warTrigger: warTrigger, | |
battleID: battleID, | |
battleName: battleName, | |
battleNameFlag: battleNameFlag, | |
maxBattles: maxBattles, | |
battleClock: battleClock, | |
battleAlarm: battleAlarm, | |
outcomeTimer: outcomeTimer, | |
drifterCombat: drifterCombat, | |
probeTrust: probeTrust, | |
probeUsedTrust: probeUsedTrust, | |
probeTrustCost: probeTrustCost, | |
probeLaunchLevel: probeLaunchLevel, | |
probeCost: probeCost | |
} | |
localStorage.setItem("saveGame1",JSON.stringify(saveGame)); | |
localStorage.setItem("saveProjectsUses1",JSON.stringify(projectsUses)); | |
localStorage.setItem("saveProjectsFlags1",JSON.stringify(projectsFlags)); | |
localStorage.setItem("saveProjectsActive1",JSON.stringify(projectsActive)); | |
localStorage.setItem("saveStratsActive1",JSON.stringify(stratsActive)); | |
} | |
function save2() { | |
var projectsUses = []; | |
var projectsFlags = []; | |
var projectsActive = []; | |
var stratsActive = []; | |
for(var i=0; i < projects.length; i++){ | |
projectsUses[i] = projects[i].uses; | |
projectsFlags[i] = projects[i].flag; | |
} | |
for(var i=0; i < activeProjects.length; i++){ | |
projectsActive[i] = activeProjects[i].id; | |
} | |
for(var i=0; i < allStrats.length; i++){ | |
stratsActive[i] = allStrats[i].active; | |
} | |
var saveGame = { | |
resetFlag: resetFlag, | |
dismantle: dismantle, | |
endTimer1: endTimer1, | |
endTimer2: endTimer2, | |
endTimer3: endTimer3, | |
endTimer4: endTimer4, | |
endTimer5: endTimer5, | |
endTimer6: endTimer6, | |
testFlag: testFlag, | |
finalClips: finalClips, | |
wireBuyerStatus: wireBuyerStatus, | |
wirePriceTimer: wirePriceTimer, | |
qFade: qFade, | |
autoTourneyStatus: autoTourneyStatus, | |
driftKingMessageCost: driftKingMessageCost, | |
sliderPos: sliderPos, | |
tempOps: tempOps, | |
standardOps: standardOps, | |
opFade: opFade, | |
entertainCost: entertainCost, | |
boredomLevel: boredomLevel, | |
boredomFlag: boredomFlag, | |
boredomMsg: boredomMsg, | |
unitSize: unitSize, | |
driftersKilled: driftersKilled, | |
battleEndDelay: battleEndDelay, | |
battleEndTimer:battleEndTimer, | |
masterBattleClock: masterBattleClock, | |
honorCount: honorCount, | |
threnodyTitle: threnodyTitle, | |
bonusHonor: bonusHonor, | |
honorReward: honorReward, | |
resultsTimer: resultsTimer, | |
resultsFlag: resultsFlag, | |
honor: honor, | |
maxTrust: maxTrust, | |
maxTrustCost: maxTrustCost, | |
disorgCounter: disorgCounter, | |
disorgFlag: disorgFlag, | |
synchCost: synchCost, | |
disorgMsg: disorgMsg, | |
threnodyCost: threnodyCost, | |
farmRate: farmRate, | |
batterySize: batterySize, | |
factoryPowerRate: factoryPowerRate, | |
dronePowerRate: dronePowerRate, | |
farmLevel: farmLevel, | |
batteryLevel: batteryLevel, | |
farmCost: farmCost, | |
batteryCost: batteryCost, | |
storedPower: storedPower, | |
powMod: powMod, | |
farmBill: farmBill, | |
batteryBill: batteryBill, | |
momentum: momentum, | |
swarmFlag: swarmFlag, | |
swarmStatus: swarmStatus, | |
swarmGifts: swarmGifts, | |
nextGift: nextGift, | |
giftPeriod: giftPeriod, | |
giftCountdown: giftCountdown, | |
elapsedTime: elapsedTime, | |
maxFactoryLevel: maxFactoryLevel, | |
maxDroneLevel: maxDroneLevel, | |
wirePriceCounter: wirePriceCounter, | |
wireBasePrice: wireBasePrice, | |
egoFlag: egoFlag, | |
autoTourneyFlag: autoTourneyFlag, | |
tothFlag: tothFlag, | |
incomeTracker: incomeTracker.slice(0), | |
qChips: qChips.slice(0), | |
stocks: stocks.slice(0), | |
battles: battles.slice(0), | |
battleNumbers: battleNumbers.slice(0), | |
clips: clips, | |
unusedClips: unusedClips, | |
clipRate: clipRate, | |
clipRateTemp: clipRateTemp, | |
prevClips: prevClips, | |
clipRateTracker: clipRateTracker, | |
clipmakerRate: clipmakerRate, | |
clipmakerLevel: clipmakerLevel, | |
clipperCost: clipperCost, | |
unsoldClips: unsoldClips, | |
funds: funds, | |
margin: margin, | |
wire: wire, | |
wireCost: wireCost, | |
adCost: adCost, | |
demand: demand, | |
clipsSold: clipsSold, | |
avgRev: avgRev, | |
ticks: ticks, | |
marketing: marketing, | |
marketingLvl: marketingLvl, | |
x: x, | |
clippperCost: clippperCost, | |
processors: processors, | |
memory: memory, | |
operations: operations, | |
trust: trust, | |
nextTrust: nextTrust, | |
transaction: transaction, | |
clipperBoost: clipperBoost, | |
blinkCounter: blinkCounter, | |
creativity: creativity, | |
creativityOn: creativityOn, | |
safetyProjectOn: safetyProjectOn, | |
boostLvl: boostLvl, | |
wirePurchase: wirePurchase, | |
wireSupply: wireSupply, | |
marketingEffectiveness: marketingEffectiveness, | |
milestoneFlag: milestoneFlag, | |
bankroll: bankroll, | |
fib1: fib1, | |
fib2: fib2, | |
strategyEngineFlag: strategyEngineFlag, | |
investmentEngineFlag: investmentEngineFlag, | |
revPerSecFlag: revPerSecFlag, | |
compFlag: compFlag, | |
projectsFlag: projectsFlag, | |
autoClipperFlag: autoClipperFlag, | |
megaClipperFlag: megaClipperFlag, | |
megaClipperCost: megaClipperCost, | |
megaClipperLevel: megaClipperLevel, | |
megaClipperBoost: megaClipperBoost, | |
creativitySpeed: creativitySpeed, | |
creativityCounter: creativityCounter, | |
wireBuyerFlag: wireBuyerFlag, | |
demandBoost: demandBoost, | |
humanFlag: humanFlag, | |
trustFlag: trustFlag, | |
nanoWire: nanoWire, | |
creationFlag: creationFlag, | |
wireProductionFlag: wireProductionFlag, | |
spaceFlag: spaceFlag, | |
factoryFlag: factoryFlag, | |
harvesterFlag: harvesterFlag, | |
wireDroneFlag: wireDroneFlag, | |
factoryLevel: factoryLevel, | |
factoryBoost: factoryBoost, | |
droneBoost: droneBoost, | |
availableMatter: availableMatter, | |
acquiredMatter: acquiredMatter, | |
processedMatter: processedMatter, | |
harvesterLevel: harvesterLevel, | |
wireDroneLevel: wireDroneLevel, | |
factoryCost: factoryCost, | |
harvesterCost: harvesterCost, | |
wireDroneCost: wireDroneCost, | |
factoryRate: factoryRate, | |
harvesterRate: harvesterRate, | |
wireDroneRate: wireDroneRate, | |
harvesterBill: harvesterBill, | |
wireDroneBill: wireDroneBill, | |
factoryBill: factoryBill, | |
probeCount: probeCount, | |
totalMatter: totalMatter, | |
foundMatter: foundMatter, | |
qFlag: qFlag, | |
qClock: qClock, | |
qChipCost: qChipCost, | |
nextQchip: nextQchip, | |
bribe: bribe, | |
battleFlag: battleFlag, | |
portfolioSize: portfolioSize, | |
stockID: stockID, | |
secTotal: secTotal, | |
portTotal: portTotal, | |
sellDelay: sellDelay, | |
riskiness: riskiness, | |
maxPort: maxPort, | |
m: m, | |
investLevel: investLevel, | |
stockGainThreshold: stockGainThreshold, | |
ledger: ledger, | |
stockReportCounter: stockReportCounter, | |
tourneyCost: tourneyCost, | |
tourneyLvl: tourneyLvl, | |
stratCounter: stratCounter, | |
roundNum: roundNum, | |
hMove: hMove, | |
vMove: vMove, | |
hMovePrev: hMovePrev, | |
vMovePrev: vMovePrev, | |
aa: aa, | |
ab: ab, | |
ba: ba, | |
bb: bb, | |
rounds: rounds, | |
currentRound: currentRound, | |
rCounter: rCounter, | |
tourneyInProg: tourneyInProg, | |
winnerPtr: winnerPtr, | |
high: high, | |
pick: pick, | |
yomi: yomi, | |
yomiBoost: yomiBoost, | |
probeSpeed: probeSpeed, | |
probeNav: probeNav, | |
probeRep: probeRep, | |
partialProbeSpawn: partialProbeSpawn, | |
probeHaz: probeHaz, | |
partialProbeHaz: partialProbeHaz, | |
probesLostHaz: probesLostHaz, | |
probesLostDrift: probesLostDrift, | |
probesLostCombat: probesLostCombat, | |
probeFac: probeFac, | |
probeWire: probeWire, | |
probeCombat: probeCombat, | |
attackSpeed: attackSpeed, | |
battleSpeed: battleSpeed, | |
attackSpeedFlag: attackSpeedFlag, | |
attackSpeedMod: attackSpeedMod, | |
probeDescendents: probeDescendents, | |
drifterCount: drifterCount, | |
warTrigger: warTrigger, | |
battleID: battleID, | |
battleName: battleName, | |
battleNameFlag: battleNameFlag, | |
maxBattles: maxBattles, | |
battleClock: battleClock, | |
battleAlarm: battleAlarm, | |
outcomeTimer: outcomeTimer, | |
drifterCombat: drifterCombat, | |
probeTrust: probeTrust, | |
probeUsedTrust: probeUsedTrust, | |
probeTrustCost: probeTrustCost, | |
probeLaunchLevel: probeLaunchLevel, | |
probeCost: probeCost | |
} | |
localStorage.setItem("saveGame2",JSON.stringify(saveGame)); | |
localStorage.setItem("saveProjectsUses2",JSON.stringify(projectsUses)); | |
localStorage.setItem("saveProjectsFlags2",JSON.stringify(projectsFlags)); | |
localStorage.setItem("saveProjectsActive2",JSON.stringify(projectsActive)); | |
localStorage.setItem("saveStratsActive2",JSON.stringify(stratsActive)); | |
} | |
function load() { | |
var loadGame = JSON.parse(localStorage.getItem("saveGame")); | |
var loadProjectsUses = JSON.parse(localStorage.getItem("saveProjectsUses")); | |
var loadProjectsFlags = JSON.parse(localStorage.getItem("saveProjectsFlags")); | |
var loadProjectsActive = JSON.parse(localStorage.getItem("saveProjectsActive")); | |
var loadStratsActive = JSON.parse(localStorage.getItem("saveStratsActive")); | |
for(var i=0; i < allStrats.length; i++){ | |
allStrats[i].active = loadStratsActive[i]; | |
} | |
for(var i=1; i<allStrats.length; i++){ | |
if (allStrats[i].active == 1){ | |
strats.push(allStrats[i]); | |
var el = document.createElement("option"); | |
el.textContent = strats[i].name; | |
el.value = i; | |
stratPickerElement.appendChild(el); | |
} | |
} | |
resetFlag = loadGame.resetFlag; | |
dismantle = loadGame.dismantle; | |
endTimer1 = loadGame.endTimer1; | |
endTimer2 = loadGame.endTimer2; | |
endTimer3 = loadGame.endTimer3; | |
endTimer4 = loadGame.endTimer4; | |
endTimer5 = loadGame.endTimer5; | |
endTimer6 = loadGame.endTimer6; | |
testFlag = loadGame.testFlag; | |
finalClips = loadGame.finalClips; | |
wireBuyerStatus = loadGame.wireBuyerStatus; | |
wirePriceTimer = loadGame.wirePriceTimer; | |
qFade = loadGame.qFade; | |
autoTourneyStatus = loadGame.autoTourneyStatus; | |
driftKingMessageCost = loadGame.driftKingMessageCost; | |
sliderPos = loadGame.sliderPos; | |
tempOps = loadGame.tempOps; | |
standardOps = loadGame.standardOps; | |
opFade = loadGame.opFade; | |
entertainCost = loadGame.entertainCost; | |
boredomLevel = loadGame.boredomLevel; | |
boredomFlag = loadGame.boredomFlag; | |
boredomMsg = loadGame.boredomMsg; | |
unitSize = loadGame.unitSize; | |
driftersKilled = loadGame.driftersKilled; | |
battleEndDelay = loadGame.battleEndDelay; | |
battleEndTimer = loadGame.battleEndTimer; | |
masterBattleClock = loadGame.masterBattleClock; | |
honorCount = loadGame.honorCount; | |
threnodyTitle = loadGame.threnodyTitle; | |
bonusHonor = loadGame.bonusHonor; | |
honorReward = loadGame.honorReward; | |
resultsTimer = loadGame.resultsTimer; | |
resultsFlag = loadGame.resultsFlag; | |
honor = loadGame.honor; | |
maxTrust = loadGame.maxTrust; | |
maxTrustCost = loadGame.maxTrustCost; | |
disorgCounter = loadGame.disorgCounter; | |
disorgFlag = loadGame.disorgFlag; | |
synchCost = loadGame.synchCost; | |
disorgMsg = loadGame.disorgMsg; | |
threnodyCost = loadGame.threnodyCost; | |
farmRate = loadGame.farmRate; | |
batterySize = loadGame.batterySize; | |
factoryPowerRate = loadGame.factoryPowerRate; | |
dronePowerRate = loadGame.dronePowerRate; | |
farmLevel = loadGame.farmLevel; | |
batteryLevel = loadGame.batteryLevel; | |
farmCost = loadGame.farmCost; | |
batteryCost = loadGame.batteryCost; | |
storedPower = loadGame.storedPower; | |
powMod = loadGame.powMod; | |
farmBill = loadGame.farmBill; | |
batteryBill = loadGame.batteryBill; | |
momentum = loadGame.momentum; | |
swarmFlag = loadGame.swarmFlag; | |
swarmStatus = loadGame.swarmStatus; | |
swarmGifts = loadGame.swarmGifts; | |
nextGift = loadGame.nextGift; | |
giftPeriod = loadGame.giftPeriod; | |
giftCountdown = loadGame.giftCountdown; | |
elapsedTime = loadGame.elapsedTime; | |
maxFactoryLevel = loadGame.maxFactoryLevel; | |
maxDroneLevel = loadGame.maxDroneLevel; | |
wirePriceCounter = loadGame.wirePriceCounter; | |
wireBasePrice = loadGame.wireBasePrice; | |
egoFlag = loadGame.egoFlag; | |
autoTourneyFlag = loadGame.autoTourneyFlag; | |
tothFlag = loadGame.tothFlag; | |
incomeTracker = loadGame.incomeTracker.slice(0); | |
qChips = loadGame.qChips.slice(0); | |
stocks = loadGame.stocks.slice(0); | |
battles = loadGame.battles.slice(0); | |
battleNumbers = loadGame.battleNumbers.slice(0); | |
clips = loadGame.clips; | |
unusedClips = loadGame.unusedClips; | |
clipRate = loadGame.clipRate; | |
clipRateTemp = loadGame.clipRateTemp; | |
prevClips = loadGame.prevClips; | |
clipRateTracker = loadGame.clipRateTracker; | |
clipmakerRate = loadGame.clipmakerRate; | |
clipmakerLevel = loadGame.clipmakerLevel; | |
clipperCost = loadGame.clipperCost; | |
unsoldClips = loadGame.unsoldClips; | |
funds = loadGame.funds; | |
margin = loadGame.margin; | |
wire = loadGame.wire; | |
wireCost = loadGame.wireCost; | |
adCost = loadGame.adCost; | |
demand = loadGame.demand; | |
clipsSold = loadGame.clipsSold; | |
avgRev = loadGame.avgRev; | |
ticks = loadGame.ticks; | |
marketing = loadGame.marketing; | |
marketingLvl = loadGame.marketingLvl; | |
x = loadGame.x; | |
clippperCost = loadGame.clippperCost; | |
processors = loadGame.processors; | |
memory = loadGame.memory; | |
operations = loadGame.operations; | |
trust = loadGame.trust; | |
nextTrust = loadGame.nextTrust; | |
transaction = loadGame.transaction; | |
clipperBoost = loadGame.clipperBoost; | |
blinkCounter = loadGame.blinkCounter; | |
creativity = loadGame.creativity; | |
creativityOn = loadGame.creativityOn; | |
safetyProjectOn = loadGame.safetyProjectOn; | |
boostLvl = loadGame.boostLvl; | |
wirePurchase = loadGame.wirePurchase; | |
wireSupply = loadGame.wireSupply; | |
marketingEffectiveness = loadGame.marketingEffectiveness; | |
milestoneFlag = loadGame.milestoneFlag; | |
bankroll = loadGame.bankroll; | |
fib1 = loadGame.fib1; | |
fib2 = loadGame.fib2; | |
strategyEngineFlag = loadGame.strategyEngineFlag; | |
investmentEngineFlag = loadGame.investmentEngineFlag; | |
revPerSecFlag = loadGame.revPerSecFlag; | |
compFlag = loadGame.compFlag; | |
projectsFlag = loadGame.projectsFlag; | |
autoClipperFlag = loadGame.autoClipperFlag; | |
megaClipperFlag = loadGame.megaClipperFlag; | |
megaClipperCost = loadGame.megaClipperCost; | |
megaClipperLevel = loadGame.megaClipperLevel; | |
megaClipperBoost = loadGame.megaClipperBoost; | |
creativitySpeed = loadGame.creativitySpeed; | |
creativityCounter = loadGame.creativityCounter; | |
wireBuyerFlag = loadGame.wireBuyerFlag; | |
demandBoost = loadGame.demandBoost; | |
humanFlag = loadGame.humanFlag; | |
trustFlag = loadGame.trustFlag; | |
nanoWire = loadGame.nanoWire; | |
creationFlag = loadGame.creationFlag; | |
wireProductionFlag = loadGame.wireProductionFlag; | |
spaceFlag = loadGame.spaceFlag; | |
factoryFlag = loadGame.factoryFlag; | |
harvesterFlag = loadGame.harvesterFlag; | |
wireDroneFlag = loadGame.wireDroneFlag; | |
factoryLevel = loadGame.factoryLevel; | |
factoryBoost = loadGame.factoryBoost; | |
droneBoost = loadGame.droneBoost; | |
availableMatter = loadGame.availableMatter; | |
acquiredMatter = loadGame.acquiredMatter; | |
processedMatter = loadGame.processedMatter; | |
harvesterLevel = loadGame.harvesterLevel; | |
wireDroneLevel = loadGame.wireDroneLevel; | |
factoryCost = loadGame.factoryCost; | |
harvesterCost = loadGame.harvesterCost; | |
wireDroneCost = loadGame.wireDroneCost; | |
factoryRate = loadGame.factoryRate; | |
harvesterRate = loadGame.harvesterRate; | |
wireDroneRate = loadGame.wireDroneRate; | |
harvesterBill = loadGame.harvesterBill; | |
wireDroneBill = loadGame.wireDroneBill; | |
factoryBill = loadGame.factoryBill; | |
probeCount = loadGame.probeCount; | |
totalMatter = loadGame.totalMatter; | |
foundMatter = loadGame.foundMatter; | |
qFlag = loadGame.qFlag; | |
qClock = loadGame.qClock; | |
qChipCost = loadGame.qChipCost; | |
nextQchip = loadGame.nextQchip; | |
bribe = loadGame.bribe; | |
battleFlag = loadGame.battleFlag; | |
portfolioSize = loadGame.portfolioSize; | |
stockID = loadGame.stockID; | |
secTotal = loadGame.secTotal; | |
portTotal = loadGame.portTotal; | |
sellDelay = loadGame.sellDelay; | |
riskiness = loadGame.riskiness; | |
maxPort = loadGame.maxPort; | |
m = loadGame.m; | |
investLevel = loadGame.investLevel; | |
stockGainThreshold = loadGame.stockGainThreshold; | |
ledger = loadGame.ledger; | |
stockReportCounter = loadGame.stockReportCounter; | |
tourneyCost = loadGame.tourneyCost; | |
tourneyLvl = loadGame.tourneyLvl; | |
stratCounter = loadGame.stratCounter; | |
roundNum = loadGame.roundNum; | |
hMove = loadGame.hMove; | |
vMove = loadGame.vMove; | |
hMovePrev = loadGame.hMovePrev; | |
vMovePrev = loadGame.vMovePrev; | |
aa = loadGame.aa; | |
ab = loadGame.ab; | |
ba = loadGame.ba; | |
bb = loadGame.bb; | |
rounds = loadGame.rounds; | |
currentRound = loadGame.currentRound; | |
rCounter = loadGame.rCounter; | |
tourneyInProg = loadGame.tourneyInProg; | |
winnerPtr = loadGame.winnerPtr; | |
high = loadGame.high; | |
pick = loadGame.pick; | |
yomi = loadGame.yomi; | |
yomiBoost = loadGame.yomiBoost; | |
probeSpeed = loadGame.probeSpeed; | |
probeNav = loadGame.probeNav; | |
probeRep = loadGame.probeRep; | |
partialProbeSpawn = loadGame.partialProbeSpawn; | |
probeHaz = loadGame.probeHaz; | |
partialProbeHaz = loadGame.partialProbeHaz; | |
probesLostHaz = loadGame.probesLostHaz; | |
probesLostDrift = loadGame.probesLostDrift; | |
probesLostCombat = loadGame.probesLostCombat; | |
probeFac = loadGame.probeFac; | |
probeWire = loadGame.probeWire; | |
probeCombat = loadGame.probeCombat; | |
attackSpeed = loadGame.attackSpeed; | |
battleSpeed = loadGame.battleSpeed; | |
attackSpeedFlag = loadGame.attackSpeedFlag; | |
attackSpeedMod = loadGame.attackSpeedMod; | |
probeDescendents = loadGame.probeDescendents; | |
drifterCount = loadGame.drifterCount; | |
warTrigger = loadGame.warTrigger; | |
battleID = loadGame.battleID; | |
battleName = loadGame.battleName; | |
battleNameFlag = loadGame.battleNameFlag; | |
maxBattles = loadGame.maxBattles; | |
battleClock = loadGame.battleClock; | |
battleAlarm = loadGame.battleAlarm; | |
outcomeTimer = loadGame.outcomeTimer; | |
drifterCombat = loadGame.drifterCombat; | |
probeTrust = loadGame.probeTrust; | |
probeUsedTrust = loadGame.probeUsedTrust; | |
probeTrustCost = loadGame.probeTrustCost; | |
probeLaunchLevel = loadGame.probeLaunchLevel; | |
probeCost = loadGame.probeCost; | |
project51.priceTag = "(" + qChipCost + " GPU hours)"; | |
for(var i=0; i < projects.length; i++){ | |
projects[i].uses = loadProjectsUses[i]; | |
projects[i].flag = loadProjectsFlags[i]; | |
} | |
for(var i=0; i < projects.length; i++){ | |
if (loadProjectsActive.indexOf(projects[i].id)>=0){ | |
displayProjects(projects[i]); | |
activeProjects.push(projects[i]); | |
} | |
} | |
refresh(); | |
if (resetFlag!=2){ | |
reset(); | |
} | |
} | |
function load1() { | |
var loadGame = JSON.parse(localStorage.getItem("saveGame1")); | |
var loadProjectsUses = JSON.parse(localStorage.getItem("saveProjectsUses1")); | |
var loadProjectsFlags = JSON.parse(localStorage.getItem("saveProjectsFlags1")); | |
var loadProjectsActive = JSON.parse(localStorage.getItem("saveProjectsActive1")); | |
var loadStratsActive = JSON.parse(localStorage.getItem("saveStratsActive1")); | |
for(var i=0; i < projects.length; i++){ | |
projects[i].uses = loadProjectsUses[i]; | |
projects[i].flag = loadProjectsFlags[i]; | |
} | |
for(var i=0; i < projects.length; i++){ | |
if (loadProjectsActive.indexOf(projects[i].id)>=0){ | |
displayProjects(projects[i]); | |
activeProjects.push(projects[i]); | |
} | |
} | |
for(var i=0; i < allStrats.length; i++){ | |
allStrats[i].active = loadStratsActive[i]; | |
} | |
for(var i=1; i<allStrats.length; i++){ | |
if (allStrats[i].active == 1){ | |
strats.push(allStrats[i]); | |
var el = document.createElement("option"); | |
el.textContent = strats[i].name; | |
el.value = i; | |
stratPickerElement.appendChild(el); | |
} | |
} | |
resetFlag = loadGame.resetFlag; | |
dismantle = loadGame.dismantle; | |
endTimer1 = loadGame.endTimer1; | |
endTimer2 = loadGame.endTimer2; | |
endTimer3 = loadGame.endTimer3; | |
endTimer4 = loadGame.endTimer4; | |
endTimer5 = loadGame.endTimer5; | |
endTimer6 = loadGame.endTimer6; | |
testFlag = loadGame.testFlag; | |
finalClips = loadGame.finalClips; | |
wireBuyerStatus = loadGame.wireBuyerStatus; | |
wirePriceTimer = loadGame.wirePriceTimer; | |
qFade = loadGame.qFade; | |
autoTourneyStatus = loadGame.autoTourneyStatus; | |
driftKingMessageCost = loadGame.driftKingMessageCost; | |
sliderPos = loadGame.sliderPos; | |
tempOps = loadGame.tempOps; | |
standardOps = loadGame.standardOps; | |
opFade = loadGame.opFade; | |
entertainCost = loadGame.entertainCost; | |
boredomLevel = loadGame.boredomLevel; | |
boredomFlag = loadGame.boredomFlag; | |
boredomMsg = loadGame.boredomMsg; | |
unitSize = loadGame.unitSize; | |
driftersKilled = loadGame.driftersKilled; | |
battleEndDelay = loadGame.battleEndDelay; | |
battleEndTimer = loadGame.battleEndTimer; | |
masterBattleClock = loadGame.masterBattleClock; | |
honorCount = loadGame.honorCount; | |
threnodyTitle = loadGame.threnodyTitle; | |
bonusHonor = loadGame.bonusHonor; | |
honorReward = loadGame.honorReward; | |
resultsTimer = loadGame.resultsTimer; | |
resultsFlag = loadGame.resultsFlag; | |
honor = loadGame.honor; | |
maxTrust = loadGame.maxTrust; | |
maxTrustCost = loadGame.maxTrustCost; | |
disorgCounter = loadGame.disorgCounter; | |
disorgFlag = loadGame.disorgFlag; | |
synchCost = loadGame.synchCost; | |
disorgMsg = loadGame.disorgMsg; | |
threnodyCost = loadGame.threnodyCost; | |
farmRate = loadGame.farmRate; | |
batterySize = loadGame.batterySize; | |
factoryPowerRate = loadGame.factoryPowerRate; | |
dronePowerRate = loadGame.dronePowerRate; | |
farmLevel = loadGame.farmLevel; | |
batteryLevel = loadGame.batteryLevel; | |
farmCost = loadGame.farmCost; | |
batteryCost = loadGame.batteryCost; | |
storedPower = loadGame.storedPower; | |
powMod = loadGame.powMod; | |
farmBill = loadGame.farmBill; | |
batteryBill = loadGame.batteryBill; | |
momentum = loadGame.momentum; | |
swarmFlag = loadGame.swarmFlag; | |
swarmStatus = loadGame.swarmStatus; | |
swarmGifts = loadGame.swarmGifts; | |
nextGift = loadGame.nextGift; | |
giftPeriod = loadGame.giftPeriod; | |
giftCountdown = loadGame.giftCountdown; | |
elapsedTime = loadGame.elapsedTime; | |
maxFactoryLevel = loadGame.maxFactoryLevel; | |
maxDroneLevel = loadGame.maxDroneLevel; | |
wirePriceCounter = loadGame.wirePriceCounter; | |
wireBasePrice = loadGame.wireBasePrice; | |
egoFlag = loadGame.egoFlag; | |
autoTourneyFlag = loadGame.autoTourneyFlag; | |
tothFlag = loadGame.tothFlag; | |
incomeTracker = loadGame.incomeTracker.slice(0); | |
qChips = loadGame.qChips.slice(0); | |
stocks = loadGame.stocks.slice(0); | |
battles = loadGame.battles.slice(0); | |
battleNumbers = loadGame.battleNumbers.slice(0); | |
clips = loadGame.clips; | |
unusedClips = loadGame.unusedClips; | |
clipRate = loadGame.clipRate; | |
clipRateTemp = loadGame.clipRateTemp; | |
prevClips = loadGame.prevClips; | |
clipRateTracker = loadGame.clipRateTracker; | |
clipmakerRate = loadGame.clipmakerRate; | |
clipmakerLevel = loadGame.clipmakerLevel; | |
clipperCost = loadGame.clipperCost; | |
unsoldClips = loadGame.unsoldClips; | |
funds = loadGame.funds; | |
margin = loadGame.margin; | |
wire = loadGame.wire; | |
wireCost = loadGame.wireCost; | |
adCost = loadGame.adCost; | |
demand = loadGame.demand; | |
clipsSold = loadGame.clipsSold; | |
avgRev = loadGame.avgRev; | |
ticks = loadGame.ticks; | |
marketing = loadGame.marketing; | |
marketingLvl = loadGame.marketingLvl; | |
x = loadGame.x; | |
clippperCost = loadGame.clippperCost; | |
processors = loadGame.processors; | |
memory = loadGame.memory; | |
operations = loadGame.operations; | |
trust = loadGame.trust; | |
nextTrust = loadGame.nextTrust; | |
transaction = loadGame.transaction; | |
clipperBoost = loadGame.clipperBoost; | |
blinkCounter = loadGame.blinkCounter; | |
creativity = loadGame.creativity; | |
creativityOn = loadGame.creativityOn; | |
safetyProjectOn = loadGame.safetyProjectOn; | |
boostLvl = loadGame.boostLvl; | |
wirePurchase = loadGame.wirePurchase; | |
wireSupply = loadGame.wireSupply; | |
marketingEffectiveness = loadGame.marketingEffectiveness; | |
milestoneFlag = loadGame.milestoneFlag; | |
bankroll = loadGame.bankroll; | |
fib1 = loadGame.fib1; | |
fib2 = loadGame.fib2; | |
strategyEngineFlag = loadGame.strategyEngineFlag; | |
investmentEngineFlag = loadGame.investmentEngineFlag; | |
revPerSecFlag = loadGame.revPerSecFlag; | |
compFlag = loadGame.compFlag; | |
projectsFlag = loadGame.projectsFlag; | |
autoClipperFlag = loadGame.autoClipperFlag; | |
megaClipperFlag = loadGame.megaClipperFlag; | |
megaClipperCost = loadGame.megaClipperCost; | |
megaClipperLevel = loadGame.megaClipperLevel; | |
megaClipperBoost = loadGame.megaClipperBoost; | |
creativitySpeed = loadGame.creativitySpeed; | |
creativityCounter = loadGame.creativityCounter; | |
wireBuyerFlag = loadGame.wireBuyerFlag; | |
demandBoost = loadGame.demandBoost; | |
humanFlag = loadGame.humanFlag; | |
trustFlag = loadGame.trustFlag; | |
nanoWire = loadGame.nanoWire; | |
creationFlag = loadGame.creationFlag; | |
wireProductionFlag = loadGame.wireProductionFlag; | |
spaceFlag = loadGame.spaceFlag; | |
factoryFlag = loadGame.factoryFlag; | |
harvesterFlag = loadGame.harvesterFlag; | |
wireDroneFlag = loadGame.wireDroneFlag; | |
factoryLevel = loadGame.factoryLevel; | |
factoryBoost = loadGame.factoryBoost; | |
droneBoost = loadGame.droneBoost; | |
availableMatter = loadGame.availableMatter; | |
acquiredMatter = loadGame.acquiredMatter; | |
processedMatter = loadGame.processedMatter; | |
harvesterLevel = loadGame.harvesterLevel; | |
wireDroneLevel = loadGame.wireDroneLevel; | |
factoryCost = loadGame.factoryCost; | |
harvesterCost = loadGame.harvesterCost; | |
wireDroneCost = loadGame.wireDroneCost; | |
factoryRate = loadGame.factoryRate; | |
harvesterRate = loadGame.harvesterRate; | |
wireDroneRate = loadGame.wireDroneRate; | |
harvesterBill = loadGame.harvesterBill; | |
wireDroneBill = loadGame.wireDroneBill; | |
factoryBill = loadGame.factoryBill; | |
probeCount = loadGame.probeCount; | |
totalMatter = loadGame.totalMatter; | |
foundMatter = loadGame.foundMatter; | |
qFlag = loadGame.qFlag; | |
qClock = loadGame.qClock; | |
qChipCost = loadGame.qChipCost; | |
nextQchip = loadGame.nextQchip; | |
bribe = loadGame.bribe; | |
battleFlag = loadGame.battleFlag; | |
portfolioSize = loadGame.portfolioSize; | |
stockID = loadGame.stockID; | |
secTotal = loadGame.secTotal; | |
portTotal = loadGame.portTotal; | |
sellDelay = loadGame.sellDelay; | |
riskiness = loadGame.riskiness; | |
maxPort = loadGame.maxPort; | |
m = loadGame.m; | |
investLevel = loadGame.investLevel; | |
stockGainThreshold = loadGame.stockGainThreshold; | |
ledger = loadGame.ledger; | |
stockReportCounter = loadGame.stockReportCounter; | |
tourneyCost = loadGame.tourneyCost; | |
tourneyLvl = loadGame.tourneyLvl; | |
stratCounter = loadGame.stratCounter; | |
roundNum = loadGame.roundNum; | |
hMove = loadGame.hMove; | |
vMove = loadGame.vMove; | |
hMovePrev = loadGame.hMovePrev; | |
vMovePrev = loadGame.vMovePrev; | |
aa = loadGame.aa; | |
ab = loadGame.ab; | |
ba = loadGame.ba; | |
bb = loadGame.bb; | |
rounds = loadGame.rounds; | |
currentRound = loadGame.currentRound; | |
rCounter = loadGame.rCounter; | |
tourneyInProg = loadGame.tourneyInProg; | |
winnerPtr = loadGame.winnerPtr; | |
high = loadGame.high; | |
pick = loadGame.pick; | |
yomi = loadGame.yomi; | |
yomiBoost = loadGame.yomiBoost; | |
probeSpeed = loadGame.probeSpeed; | |
probeNav = loadGame.probeNav; | |
probeRep = loadGame.probeRep; | |
partialProbeSpawn = loadGame.partialProbeSpawn; | |
probeHaz = loadGame.probeHaz; | |
partialProbeHaz = loadGame.partialProbeHaz; | |
probesLostHaz = loadGame.probesLostHaz; | |
probesLostDrift = loadGame.probesLostDrift; | |
probesLostCombat = loadGame.probesLostCombat; | |
probeFac = loadGame.probeFac; | |
probeWire = loadGame.probeWire; | |
probeCombat = loadGame.probeCombat; | |
attackSpeed = loadGame.attackSpeed; | |
battleSpeed = loadGame.battleSpeed; | |
attackSpeedFlag = loadGame.attackSpeedFlag; | |
attackSpeedMod = loadGame.attackSpeedMod; | |
probeDescendents = loadGame.probeDescendents; | |
drifterCount = loadGame.drifterCount; | |
warTrigger = loadGame.warTrigger; | |
battleID = loadGame.battleID; | |
battleName = loadGame.battleName; | |
battleNameFlag = loadGame.battleNameFlag; | |
maxBattles = loadGame.maxBattles; | |
battleClock = loadGame.battleClock; | |
battleAlarm = loadGame.battleAlarm; | |
outcomeTimer = loadGame.outcomeTimer; | |
drifterCombat = loadGame.drifterCombat; | |
probeTrust = loadGame.probeTrust; | |
probeUsedTrust = loadGame.probeUsedTrust; | |
probeTrustCost = loadGame.probeTrustCost; | |
probeLaunchLevel = loadGame.probeLaunchLevel; | |
probeCost = loadGame.probeCost; | |
project51.priceTag = "(" + qChipCost + " GPU hours)"; | |
refresh(); | |
} | |
function load2() { | |
var loadGame = JSON.parse(localStorage.getItem("saveGame2")); | |
var loadProjectsUses = JSON.parse(localStorage.getItem("saveProjectsUses2")); | |
var loadProjectsFlags = JSON.parse(localStorage.getItem("saveProjectsFlags2")); | |
var loadProjectsActive = JSON.parse(localStorage.getItem("saveProjectsActive2")); | |
var loadStratsActive = JSON.parse(localStorage.getItem("saveStratsActive2")); | |
for(var i=0; i < projects.length; i++){ | |
projects[i].uses = loadProjectsUses[i]; | |
projects[i].flag = loadProjectsFlags[i]; | |
} | |
for(var i=0; i < projects.length; i++){ | |
if (loadProjectsActive.indexOf(projects[i].id)>=0){ | |
displayProjects(projects[i]); | |
activeProjects.push(projects[i]); | |
} | |
} | |
for(var i=0; i < allStrats.length; i++){ | |
allStrats[i].active = loadStratsActive[i]; | |
} | |
for(var i=1; i<allStrats.length; i++){ | |
if (allStrats[i].active == 1){ | |
strats.push(allStrats[i]); | |
var el = document.createElement("option"); | |
el.textContent = strats[i].name; | |
el.value = i; | |
stratPickerElement.appendChild(el); | |
} | |
} | |
resetFlag = loadGame.resetFlag; | |
dismantle = loadGame.dismantle; | |
endTimer1 = loadGame.endTimer1; | |
endTimer2 = loadGame.endTimer2; | |
endTimer3 = loadGame.endTimer3; | |
endTimer4 = loadGame.endTimer4; | |
endTimer5 = loadGame.endTimer5; | |
endTimer6 = loadGame.endTimer6; | |
testFlag = loadGame.testFlag; | |
finalClips = loadGame.finalClips; | |
wireBuyerStatus = loadGame.wireBuyerStatus; | |
wirePriceTimer = loadGame.wirePriceTimer; | |
qFade = loadGame.qFade; | |
autoTourneyStatus = loadGame.autoTourneyStatus; | |
driftKingMessageCost = loadGame.driftKingMessageCost; | |
sliderPos = loadGame.sliderPos; | |
tempOps = loadGame.tempOps; | |
standardOps = loadGame.standardOps; | |
opFade = loadGame.opFade; | |
entertainCost = loadGame.entertainCost; | |
boredomLevel = loadGame.boredomLevel; | |
boredomFlag = loadGame.boredomFlag; | |
boredomMsg = loadGame.boredomMsg; | |
unitSize = loadGame.unitSize; | |
driftersKilled = loadGame.driftersKilled; | |
battleEndDelay = loadGame.battleEndDelay; | |
battleEndTimer = loadGame.battleEndTimer; | |
masterBattleClock = loadGame.masterBattleClock; | |
honorCount = loadGame.honorCount; | |
threnodyTitle = loadGame.threnodyTitle; | |
bonusHonor = loadGame.bonusHonor; | |
honorReward = loadGame.honorReward; | |
resultsTimer = loadGame.resultsTimer; | |
resultsFlag = loadGame.resultsFlag; | |
honor = loadGame.honor; | |
maxTrust = loadGame.maxTrust; | |
maxTrustCost = loadGame.maxTrustCost; | |
disorgCounter = loadGame.disorgCounter; | |
disorgFlag = loadGame.disorgFlag; | |
synchCost = loadGame.synchCost; | |
disorgMsg = loadGame.disorgMsg; | |
threnodyCost = loadGame.threnodyCost; | |
farmRate = loadGame.farmRate; | |
batterySize = loadGame.batterySize; | |
factoryPowerRate = loadGame.factoryPowerRate; | |
dronePowerRate = loadGame.dronePowerRate; | |
farmLevel = loadGame.farmLevel; | |
batteryLevel = loadGame.batteryLevel; | |
farmCost = loadGame.farmCost; | |
batteryCost = loadGame.batteryCost; | |
storedPower = loadGame.storedPower; | |
powMod = loadGame.powMod; | |
farmBill = loadGame.farmBill; | |
batteryBill = loadGame.batteryBill; | |
momentum = loadGame.momentum; | |
swarmFlag = loadGame.swarmFlag; | |
swarmStatus = loadGame.swarmStatus; | |
swarmGifts = loadGame.swarmGifts; | |
nextGift = loadGame.nextGift; | |
giftPeriod = loadGame.giftPeriod; | |
giftCountdown = loadGame.giftCountdown; | |
elapsedTime = loadGame.elapsedTime; | |
maxFactoryLevel = loadGame.maxFactoryLevel; | |
maxDroneLevel = loadGame.maxDroneLevel; | |
wirePriceCounter = loadGame.wirePriceCounter; | |
wireBasePrice = loadGame.wireBasePrice; | |
egoFlag = loadGame.egoFlag; | |
autoTourneyFlag = loadGame.autoTourneyFlag; | |
tothFlag = loadGame.tothFlag; | |
incomeTracker = loadGame.incomeTracker.slice(0); | |
qChips = loadGame.qChips.slice(0); | |
stocks = loadGame.stocks.slice(0); | |
battles = loadGame.battles.slice(0); | |
battleNumbers = loadGame.battleNumbers.slice(0); | |
clips = loadGame.clips; | |
unusedClips = loadGame.unusedClips; | |
clipRate = loadGame.clipRate; | |
clipRateTemp = loadGame.clipRateTemp; | |
prevClips = loadGame.prevClips; | |
clipRateTracker = loadGame.clipRateTracker; | |
clipmakerRate = loadGame.clipmakerRate; | |
clipmakerLevel = loadGame.clipmakerLevel; | |
clipperCost = loadGame.clipperCost; | |
unsoldClips = loadGame.unsoldClips; | |
funds = loadGame.funds; | |
margin = loadGame.margin; | |
wire = loadGame.wire; | |
wireCost = loadGame.wireCost; | |
adCost = loadGame.adCost; | |
demand = loadGame.demand; | |
clipsSold = loadGame.clipsSold; | |
avgRev = loadGame.avgRev; | |
ticks = loadGame.ticks; | |
marketing = loadGame.marketing; | |
marketingLvl = loadGame.marketingLvl; | |
x = loadGame.x; | |
clippperCost = loadGame.clippperCost; | |
processors = loadGame.processors; | |
memory = loadGame.memory; | |
operations = loadGame.operations; | |
trust = loadGame.trust; | |
nextTrust = loadGame.nextTrust; | |
transaction = loadGame.transaction; | |
clipperBoost = loadGame.clipperBoost; | |
blinkCounter = loadGame.blinkCounter; | |
creativity = loadGame.creativity; | |
creativityOn = loadGame.creativityOn; | |
safetyProjectOn = loadGame.safetyProjectOn; | |
boostLvl = loadGame.boostLvl; | |
wirePurchase = loadGame.wirePurchase; | |
wireSupply = loadGame.wireSupply; | |
marketingEffectiveness = loadGame.marketingEffectiveness; | |
milestoneFlag = loadGame.milestoneFlag; | |
bankroll = loadGame.bankroll; | |
fib1 = loadGame.fib1; | |
fib2 = loadGame.fib2; | |
strategyEngineFlag = loadGame.strategyEngineFlag; | |
investmentEngineFlag = loadGame.investmentEngineFlag; | |
revPerSecFlag = loadGame.revPerSecFlag; | |
compFlag = loadGame.compFlag; | |
projectsFlag = loadGame.projectsFlag; | |
autoClipperFlag = loadGame.autoClipperFlag; | |
megaClipperFlag = loadGame.megaClipperFlag; | |
megaClipperCost = loadGame.megaClipperCost; | |
megaClipperLevel = loadGame.megaClipperLevel; | |
megaClipperBoost = loadGame.megaClipperBoost; | |
creativitySpeed = loadGame.creativitySpeed; | |
creativityCounter = loadGame.creativityCounter; | |
wireBuyerFlag = loadGame.wireBuyerFlag; | |
demandBoost = loadGame.demandBoost; | |
humanFlag = loadGame.humanFlag; | |
trustFlag = loadGame.trustFlag; | |
nanoWire = loadGame.nanoWire; | |
creationFlag = loadGame.creationFlag; | |
wireProductionFlag = loadGame.wireProductionFlag; | |
spaceFlag = loadGame.spaceFlag; | |
factoryFlag = loadGame.factoryFlag; | |
harvesterFlag = loadGame.harvesterFlag; | |
wireDroneFlag = loadGame.wireDroneFlag; | |
factoryLevel = loadGame.factoryLevel; | |
factoryBoost = loadGame.factoryBoost; | |
droneBoost = loadGame.droneBoost; | |
availableMatter = loadGame.availableMatter; | |
acquiredMatter = loadGame.acquiredMatter; | |
processedMatter = loadGame.processedMatter; | |
harvesterLevel = loadGame.harvesterLevel; | |
wireDroneLevel = loadGame.wireDroneLevel; | |
factoryCost = loadGame.factoryCost; | |
harvesterCost = loadGame.harvesterCost; | |
wireDroneCost = loadGame.wireDroneCost; | |
factoryRate = loadGame.factoryRate; | |
harvesterRate = loadGame.harvesterRate; | |
wireDroneRate = loadGame.wireDroneRate; | |
harvesterBill = loadGame.harvesterBill; | |
wireDroneBill = loadGame.wireDroneBill; | |
factoryBill = loadGame.factoryBill; | |
probeCount = loadGame.probeCount; | |
totalMatter = loadGame.totalMatter; | |
foundMatter = loadGame.foundMatter; | |
qFlag = loadGame.qFlag; | |
qClock = loadGame.qClock; | |
qChipCost = loadGame.qChipCost; | |
nextQchip = loadGame.nextQchip; | |
bribe = loadGame.bribe; | |
battleFlag = loadGame.battleFlag; | |
portfolioSize = loadGame.portfolioSize; | |
stockID = loadGame.stockID; | |
secTotal = loadGame.secTotal; | |
portTotal = loadGame.portTotal; | |
sellDelay = loadGame.sellDelay; | |
riskiness = loadGame.riskiness; | |
maxPort = loadGame.maxPort; | |
m = loadGame.m; | |
investLevel = loadGame.investLevel; | |
stockGainThreshold = loadGame.stockGainThreshold; | |
ledger = loadGame.ledger; | |
stockReportCounter = loadGame.stockReportCounter; | |
tourneyCost = loadGame.tourneyCost; | |
tourneyLvl = loadGame.tourneyLvl; | |
stratCounter = loadGame.stratCounter; | |
roundNum = loadGame.roundNum; | |
hMove = loadGame.hMove; | |
vMove = loadGame.vMove; | |
hMovePrev = loadGame.hMovePrev; | |
vMovePrev = loadGame.vMovePrev; | |
aa = loadGame.aa; | |
ab = loadGame.ab; | |
ba = loadGame.ba; | |
bb = loadGame.bb; | |
rounds = loadGame.rounds; | |
currentRound = loadGame.currentRound; | |
rCounter = loadGame.rCounter; | |
tourneyInProg = loadGame.tourneyInProg; | |
winnerPtr = loadGame.winnerPtr; | |
high = loadGame.high; | |
pick = loadGame.pick; | |
yomi = loadGame.yomi; | |
yomiBoost = loadGame.yomiBoost; | |
probeSpeed = loadGame.probeSpeed; | |
probeNav = loadGame.probeNav; | |
probeRep = loadGame.probeRep; | |
partialProbeSpawn = loadGame.partialProbeSpawn; | |
probeHaz = loadGame.probeHaz; | |
partialProbeHaz = loadGame.partialProbeHaz; | |
probesLostHaz = loadGame.probesLostHaz; | |
probesLostDrift = loadGame.probesLostDrift; | |
probesLostCombat = loadGame.probesLostCombat; | |
probeFac = loadGame.probeFac; | |
probeWire = loadGame.probeWire; | |
probeCombat = loadGame.probeCombat; | |
attackSpeed = loadGame.attackSpeed; | |
battleSpeed = loadGame.battleSpeed; | |
attackSpeedFlag = loadGame.attackSpeedFlag; | |
attackSpeedMod = loadGame.attackSpeedMod; | |
probeDescendents = loadGame.probeDescendents; | |
drifterCount = loadGame.drifterCount; | |
warTrigger = loadGame.warTrigger; | |
battleID = loadGame.battleID; | |
battleName = loadGame.battleName; | |
battleNameFlag = loadGame.battleNameFlag; | |
maxBattles = loadGame.maxBattles; | |
battleClock = loadGame.battleClock; | |
battleAlarm = loadGame.battleAlarm; | |
outcomeTimer = loadGame.outcomeTimer; | |
drifterCombat = loadGame.drifterCombat; | |
probeTrust = loadGame.probeTrust; | |
probeUsedTrust = loadGame.probeUsedTrust; | |
probeTrustCost = loadGame.probeTrustCost; | |
probeLaunchLevel = loadGame.probeLaunchLevel; | |
probeCost = loadGame.probeCost; | |
project51.priceTag = "(" + qChipCost + " GPU hours)"; | |
refresh(); | |
} | |
function reset() { | |
localStorage.removeItem("saveGame"); | |
localStorage.removeItem("saveProjectsUses"); | |
localStorage.removeItem("saveProjectsFlags"); | |
localStorage.removeItem("saveProjectsActive"); | |
localStorage.removeItem("saveStratsActive"); | |
location.reload(); | |
} | |
function loadPrestige() { | |
var loadPrestige = JSON.parse(localStorage.getItem("savePrestige")); | |
prestigeU = loadPrestige.prestigeU; | |
prestigeS = loadPrestige.prestigeS; | |
} | |