From b73d35b938e0bb0acfaacb1ff3cf85a4904ce79b Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Fri, 20 Jul 2018 13:26:00 -0500 Subject: [PATCH] Upgrades can now be bought (with no effect) --- gorge.js | 54 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/gorge.js b/gorge.js index d32a1b2..3d08f3e 100644 --- a/gorge.js +++ b/gorge.js @@ -2,7 +2,7 @@ let belongings = {}; -let ownedUpgrades = []; +let ownedUpgrades = {}; let resources = { "food": 0 @@ -71,19 +71,32 @@ function displayBuildings() { } } +function canAfford(cost) { + console.log(cost) + for (const [resource, amount] of Object.entries(cost)) { + if (resources[resource] < amount) { + return false; + } + } + + return true; +} + +function spend(cost) { + for (const [resource, amount] of Object.entries(cost)) { + resources[resource] -= amount; + } +} + function displayUpgrades() { for (const [key, value] of Object.entries(upgrades)) { let button = document.querySelector("#upgrade-" + key); - let valid = true; - for (const [resource, amount] of Object.entries(upgrades[key].cost)) { - if (resources[resource] < amount) { - valid = false; - break; - } + if (ownedUpgrades[key]) { + button.style.display = "none"; + return; } - - if (valid) { + if (canAfford(upgrades[key].cost)) { button.classList.remove("upgrade-button-inactive"); } else { button.classList.add("upgrade-button-inactive"); @@ -91,6 +104,22 @@ function displayUpgrades() { } } +function buyUpgrade(id) { + if (ownedUpgrades[id]) { + return; + } + + let upgrade = upgrades[id]; + + if (!canAfford(upgrade.cost)) { + return; + } + + spend(upgrade.cost); + + ownedUpgrades[id] = true; +} + function eatMicro() { resources.food += 1; } @@ -110,6 +139,10 @@ function initializeData() { belongings[key] = {}; belongings[key].count = 0; } + + for (const [key, value] of Object.entries(upgrades)) { + ownedUpgrades[key] = false; + } } function registerListeners() { @@ -198,8 +231,9 @@ function createUpgrades() { buttonName.innerText = value.name; button.appendChild(buttonName); - button.addEventListener("mousemove", function(e) { upgradeTooltip(key, event); }); + button.addEventListener("mousemove", function(e) { upgradeTooltip(key, e); }); button.addEventListener("mouseleave", function() { upgradeTooltipRemove(); }); + button.addEventListener("click", function() { buyUpgrade(key); }); container.appendChild(button); }