diff --git a/gorge.js b/gorge.js index b00a5e3..63c67bb 100644 --- a/gorge.js +++ b/gorge.js @@ -243,8 +243,6 @@ function renderResources() { return renderLines(list); } -const buildingButtons = {} - function displayBuildings() { const count = buildingCount(); @@ -259,13 +257,13 @@ function displayBuildings() { continue; } belongings[key].visible = true; - let button = buildingButtons[key].button; + let button = cache.buildingButtons[key].button; button.classList.remove("hidden"); } - let button = buildingButtons[key].button; - let name = buildingButtons[key].name; - let cost = buildingButtons[key].cost; + let button = cache.buildingButtons[key].button; + let name = cache.buildingButtons[key].name; + let cost = cache.buildingButtons[key].cost; const buildingCost = costOfBuilding(key, count); @@ -311,7 +309,7 @@ function switchShowOwnedUpgrades() { function displayUpgrades(owned) { if (owned) { Object.entries(ownedUpgrades).forEach(([key, val]) => { - let button = document.querySelector("#upgrade-" + key); + let button = cache.upgradeButtons[key]; if (val) { button.classList.remove("hidden"); } else { @@ -321,7 +319,7 @@ function displayUpgrades(owned) { } else { for (let id of remainingUpgrades) { - let button = document.querySelector("#upgrade-" + id); + let button = cache.upgradeButtons[id]; if (ownedUpgrades[id]) { button.classList.add("hidden"); @@ -425,7 +423,12 @@ function setup() { } +const cache = {}; + function initializeCaches() { + + const buildingButtons = {}; + for (const [key, value] of Object.entries(belongings)) { let button = document.querySelector("#building-" + key); @@ -439,6 +442,15 @@ function initializeCaches() { } } + cache.buildingButtons = buildingButtons; + + const upgradeButtons = {}; + + Object.keys(upgrades).forEach(key => { + upgradeButtons[key] = document.querySelector("#upgrade-" + key); + }); + + cache.upgradeButtons = upgradeButtons; } function unlockAtStart() {