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"); | |
| investmentEngineUpgradeElement = document.getElementById("investmentEngineUpgrade"); | |
| 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 investmentEngineUpgradeElement; | |
| 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"; | |
| } | |
| } | |
| } | |
| } | |
| 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; | |
| } | |
| } | |
| if (investmentEngineFlag == 0){ | |
| console.log("set none") | |
| investmentEngineElement.style.display="none"; | |
| investmentEngineUpgradeElement.style.display="none"; | |
| } else if(investmentEngineFlag == 1) { | |
| investmentEngineElement.style.display=""; | |
| investmentEngineUpgradeElement.style.display="none"; | |
| } | |
| 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*10); | |
| } | |
| 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 = 2*(((.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; | |
| } | |
| if (investmentEngineFlag == 0){ | |
| console.log("set none") | |
| investmentEngineElement.style.display="none"; | |
| investmentEngineUpgradeElement.style.display="none"; | |
| } else if(investmentEngineFlag == 1) { | |
| investmentEngineElement.style.display=""; | |
| investmentEngineUpgradeElement.style.display="none"; | |
| } |