| @@ -248,6 +248,8 @@ function displayBuildings() { | |||||
| for (const [key, value] of Object.entries(belongings)) { | for (const [key, value] of Object.entries(belongings)) { | ||||
| let available = states.buildings[key].available; | |||||
| if (!belongings[key].visible) { | if (!belongings[key].visible) { | ||||
| if (resources.food * 10 >= costOfBuilding(key).food) { | if (resources.food * 10 >= costOfBuilding(key).food) { | ||||
| unlockBuilding(key); | unlockBuilding(key); | ||||
| @@ -270,12 +272,14 @@ function displayBuildings() { | |||||
| name.innerText = value.count + " " + (value.count == 1 ? buildings[key].name : buildings[key].plural); | name.innerText = value.count + " " + (value.count == 1 ? buildings[key].name : buildings[key].plural); | ||||
| cost.innerText = render(buildingCost.food) + " food"; | cost.innerText = render(buildingCost.food) + " food"; | ||||
| if (canAfford(buildingCost) && button.classList.contains("building-button-disabled")) { | |||||
| if (canAfford(buildingCost) && available !== true) { | |||||
| button.classList.remove("building-button-disabled"); | button.classList.remove("building-button-disabled"); | ||||
| cost.classList.add("building-button-cost-valid"); | cost.classList.add("building-button-cost-valid"); | ||||
| } else if (!canAfford(buildingCost) && !button.classList.contains("building-button-disabled")) { | |||||
| states.buildings[key].available = true; | |||||
| } else if (!canAfford(buildingCost) && available !== false) { | |||||
| button.classList.add("building-button-disabled"); | button.classList.add("building-button-disabled"); | ||||
| cost.classList.add("building-button-cost-invalid"); | cost.classList.add("building-button-cost-invalid"); | ||||
| states.buildings[key].available = false; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -472,6 +476,17 @@ const states = {}; | |||||
| // we can just check if they've been handled already | // we can just check if they've been handled already | ||||
| function initializeStates() { | function initializeStates() { | ||||
| const buildingStates = {}; | |||||
| Object.keys(buildings).forEach(key => { | |||||
| buildingStates[key] = { | |||||
| visible: undefined, | |||||
| available: undefined | |||||
| } | |||||
| }); | |||||
| states.buildings = buildingStates; | |||||
| const upgradeStates = {}; | const upgradeStates = {}; | ||||
| Object.keys(upgrades).forEach(key => { | Object.keys(upgrades).forEach(key => { | ||||