|  | "use strict";
let belongings = {}
let resources = {
  "food": 0
}
let updateRate = 60;
function calculateProductivity() {
  let productivity = 0;
  for (const [key, value] of Object.entries(belongings)) {
      productivity += productivityOf(key);
  }
  return productivity;
}
// here's where upgrades will go :3
function productivityOf(type) {
  let baseProd = buildings[type].prod;
  return baseProd * belongings[type].count;
}
function costOf(type) {
  let baseCost =  buildings[type].cost
  let countCost = baseCost * Math.pow(1.02, belongings[type].count);
  return countCost;
}
function buyBuilding(type) {
  let cost = costOf(type);
  if (resources.food > cost) {
    belongings[type].count += 1;
    resources.food -= cost;
  }
}
// update stuff
function updateResources() {
  addResources();
  displayResources();
  displayBuildings();
  setTimeout(updateResources, 1000/updateRate);
}
function addResources() {
  resources.food += calculateProductivity() * 1 / updateRate;
}
function displayResources() {
  document.getElementById("resource-food").innerText = "Food: " + render(resources.food);
}
function displayBuildings() {
  for (const [key, value] of Object.entries(belongings)) {
    document.getElementById("building-" + key).innerText = buildings[key].name + ": " + belongings[key].count;
  }
}
function eatMicro() {
  resources.food += 1;
}
// setup stuff lol
// we'll initialize the dict of buildings we can own
function setup() {
  initializeData();
  registerListeners();
  console.log(belongings)
}
function initializeData() {
  for (const [key, value] of Object.entries(buildings)) {
    belongings[key] = {};
    belongings[key].count = 0;
  }
}
function registerListeners() {
  document.querySelectorAll(".building-button").forEach(function(button) {
    let id = button.id.replace("building-", "");
    button.addEventListener("click", function() { buyBuilding(id); });
  });
  document.querySelector("#tasty-micro").addEventListener("click", eatMicro);
}
window.onload = function() {
  setup();
  setTimeout(updateResources, 1000/updateRate);
}
 |