diff --git a/constants.js b/constants.js index 193774a..7e46747 100644 --- a/constants.js +++ b/constants.js @@ -137,6 +137,14 @@ const effect_types = { "desc": function(effect) { return "+" + round(effect.amount * 100) + "% food/sec from " + buildings[effect.helped].name + " for every " + buildings[effect.helper].name + " owned."; } + }, + "click": { + "apply": function(effect, bonus, productivity) { + return bonus + productivity * effect.amount; + }, + "desc": function(effect) { + return round(effect.amount * 100) + "% of food/sec gained per click"; + } } } @@ -171,6 +179,7 @@ function createTemplateUpgrades() { console.log("qwewq"); createProdUpgrades(); createProdAllUpgrades(); + createClickUpgrades(); } const prodUpgradeCounts = [1, 5, 10, 25, 50, 75, 100]; @@ -245,6 +254,41 @@ function createProdAllUpgrades() { } } +function createClickUpgrades() { + let prefix = "prod-click-"; + + let counter = 1 ; + + for (let contents of clickUpgradeText) { + upgrades[prefix + counter] = { + name: contents.name, + desc: contents.desc, + cost: { + food: Math.pow(10, (counter*2)+1) + }, + effects: [ + { + type: "click", + amount: 0.01 + } + ], + prereqs: { + productivity: { + food: Math.pow(10, counter) + } + } + }; + + if (counter > 1) { + upgrades[prefix + counter]["prereqs"].upgrades = [ + prefix + (counter - 1) + ]; + } + + counter += 1; + } +} + let prodUpgradeText = { "micro": [ { @@ -369,3 +413,26 @@ let prodAllUpgradeText = [ "desc": "Digest them all." } ] + +const clickUpgradeText = [ + { + "name": "Grabby Hands", + "desc": "" + }, + { + "name": "", + "desc": "" + }, + { + "name": "", + "desc": "" + }, + { + "name": "", + "desc": "" + }, + { + "name": "", + "desc": "" + }, +] diff --git a/gorge.js b/gorge.js index ad9f531..40e4544 100644 --- a/gorge.js +++ b/gorge.js @@ -3,16 +3,17 @@ let belongings = {}; let ownedUpgrades = {}; +let remainingUpgrades = []; let effects = {}; -let remainingUpgrades = []; let resources = {}; let updateRate = 60; let currentProductivity = {}; +let clickBonus = 0; let lastTime = 0; @@ -87,7 +88,6 @@ function updateDisplay() { let delta = newTime - lastTime; lastTime = newTime; - updateProductivity(); addResources(delta); displayResources(); displayBuildings(); @@ -203,6 +203,18 @@ function displayUpgrades() { } } +function updateClickBonus() { + let bonus = 0; + + for (let effect of effects["click"]) { + if (ownedUpgrades[effect.parent]) { + bonus = effect.apply(bonus, currentProductivity["food"]); + } + } + + clickBonus = bonus; +} + function buyUpgrade(id) { if (ownedUpgrades[id]) { return; @@ -217,10 +229,13 @@ function buyUpgrade(id) { spend(upgrade.cost); ownedUpgrades[id] = true; + + updateProductivity(); + updateClickBonus(); } function eatMicro() { - resources.food += productivityMultiplierOf("micro"); + resources.food += productivityMultiplierOf("micro") + clickBonus; } // setup stuff lol @@ -481,7 +496,7 @@ function renderPrereqs(prereqs) { if (prereqs === undefined) { return renderLines(list); } - + list.push({ "text": "Own:" });