|  | "use strict";
const resourceTypes = {
  "food": {
    name: "Food"
  }
}
const buildings = {
  "micro": {
    "name": "Micro",
    "plural": "Micros",
    "desc": "A tasty, squirmy treat.",
    "cost": 1e1,
    "prod": 1e-1/1
  },
  "anthro": {
    "name": "Anthro",
    "plural": "Anthros",
    "desc": "Something more substantial to sate your hunger.",
    "cost": 1e2,
    "prod": 1e0/1.1
  },
  "car": {
    "name": "Car",
    "plural": "Cars",
    "desc": "Crunchy shell, tasty center.",
    "cost": 1.2e3,
    "prod": 1e1/1.2
  },
  "bus": {
    "name": "Bus",
    "plural": "Buses",
    "desc": "Probably the worst place to be when a macro is aroud.",
    "cost": 1.4e4,
    "prod": 1e2/1.3
  },
  "house": {
    "name": "House",
    "plural": "Houses",
    "desc": "Home sweet home - but it doesn't taste sweet?",
    "cost": 1.6e5,
    "prod": 1e3/1.4
  },
  "apartment": {
    "name": "Apartment",
    "plural": "Apartments",
    "desc": "More snacks, less packaging.",
    "cost": 1.8e6,
    "prod": 1e4/1.5
  },
  "block": {
    "name": "Block",
    "plural": "Blocks",
    "desc": "A whole pile of buildings.",
    "cost": 2e7,
    "prod": 1e5/1.6
  },
  "town": {
    "name": "Town",
    "plural": "Towns",
    "desc": "'Tourist trap' has never been this literal.",
    "cost": 2.2e8,
    "prod": 1e6/1.7
  },
  "city": {
    "name": "City",
    "plural": "Cities",
    "desc": "Please no sitty on our city.",
    "cost": 2.4e9,
    "prod": 1e7/1.8
  },
  "metro": {
    "name": "Metropolis",
    "plural": "Metropolises",
    "desc": "A big ol' city. Tasty, too.",
    "cost": 2.6e10,
    "prod": 1e8/1.9
  },
  "county": {
    "name": "County",
    "plural": "Counties",
    "desc": "Why salt the land when you can slurp it?",
    "cost": 2.8e11,
    "prod": 1e9/2
  },
  "state": {
    "name": "State",
    "plural": "States",
    "desc": "The United States is made up of...43 states - no, 42...",
    "cost": 3e12,
    "prod": 1e10/2.1
  },
  "country": {
    "name": "Country",
    "plural": "Countries",
    "desc": "One nation, under paw.",
    "cost": 3.2e13,
    "prod": 1e11/2.2
  },
  "continent": {
    "name": "Continent",
    "plural": "Continents",
    "desc": "Earth-shattering appetite!",
    "cost": 3.4e14,
    "prod": 1e12/2.3
  },
  "planet": {
    "name": "Planet",
    "plural": "Planets",
    "desc": "Earth appetite!",
    "cost": 3.6e15,
    "prod": 1e13/2.4
  }
}
const effect_types = {
  "prod": {
    "apply": function(effect, productivity) {
      return productivity * effect.amount;
    },
    "desc": function(effect) {
      return round(effect.amount, 2) + "x food production from " + buildings[effect.target].plural;
    }
  },
  "prod-all": {
    "apply": function(effect, productivity) {
      return productivity * effect.amount;
    },
    "desc": function(effect) {
      return round((effect.amount - 1) * 100) + "% increase to food production";
    }
  },
  "helper": {
    "apply": function(effect, productivity, helperCount) {
      return productivity * (1 + effect.amount * helperCount);
    },
    "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";
    }
  }
}
let upgrades = {
  "anthro-help-micro-1": {
    "name": "Servants",
    "desc": "Why bother walking anywhere, really?",
    "cost": {
      "food": buildings.anthro.cost * 25 + buildings.micro.cost * 50
    },
    "effects": [
      {
        "type": "helper",
        "helper": "anthro",
        "helped": "micro",
        "amount": 0.01
      }
    ],
    "prereqs": {
      "buildings": {
        "anthro": 10
      },
      "upgrades": [
        "anthro-prod-1"
      ]
    }
  }
}
function createTemplateUpgrades() {
  console.log("qwewq");
  createProdUpgrades();
  createProdAllUpgrades();
  createClickUpgrades();
}
const prodUpgradeCounts = [1, 5, 10, 25, 50, 75, 100];
function createProdUpgrades() {
  for (const [key, value] of Object.entries(prodUpgradeText)) {
    let counter = 1;
    let prefix = key + "-prod-";
    for (let contents of value) {
      upgrades[prefix + counter] = {
        "name": contents.name,
        "desc": contents.desc,
        "cost": {
          "food": buildings[key].cost * 5 * Math.pow(10,counter - 1)
        },
        "effects": [
          {
            "type": "prod",
            "amount": 2 + (counter - 1) * 0.25,
            "target": key
          }
        ]
      };
      upgrades[prefix + counter]["prereqs"] = {};
      upgrades[prefix + counter]["prereqs"]["buildings"] = {};
      upgrades[prefix + counter]["prereqs"]["buildings"][key] = prodUpgradeCounts[counter - 1];
      if (counter > 1) {
        upgrades[prefix + counter]["prereqs"]["upgrades"] = [
            prefix + (counter - 1)
        ];
      }
      counter += 1;
    }
  }
}
function createProdAllUpgrades() {
  let prefix = "prod-all-"
  let counter = 1;
  for (let contents of prodAllUpgradeText) {
    upgrades[prefix + counter] = {
      "name": contents.name,
      "desc": contents.desc,
      "cost": {
        "food": 5 * Math.pow(10, counter+1)
      },
      "effects": [
        {
          "type": "prod-all",
          "amount": 1.05
        }
      ],
      "prereqs": {
        "productivity": {
          "food": Math.pow(10, counter)
        }
      }
    };
    if (counter > 1) {
      upgrades[prefix + counter]["prereqs"].upgrades = [
        prefix + (counter - 1)
      ];
    }
    counter += 1;
  }
}
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": [
    {
      "name": "Bigger Micros",
      "desc": "A macro micro? It's more filling, for sure.",
    },
    {
      "name": "Beefy Micros",
      "desc": "25% more protein, 10% fewer carbs."
    },
    {
      "name": "Delicious Micros",
      "desc": "Betcha' can't eat just one."
    },
    {
      "name": "Irresistable Micros",
      "desc": "Genetically engineered to be delectable."
    },
    {
      "name": "Exquisite Micros",
      "desc": "Dangerously delicious."
    }
  ],
  "anthro": [
    {
      "name": "Willing Prey",
      "desc": "Why bother chasing down your meal?"
    },
    {
      "name": "Fattened Prey",
      "desc": "9 calories per gram!"
    },
    {
      "name": "Mesmerized Prey",
      "desc": "Why bother walking to your meal?"
    },
    {
      "name": "Food-Safe Lubricant",
      "desc": "Ease them down your gullet with ease. Thanks, chemistry!"
    },
    {
      "name": "Mandatory Meal Training",
      "desc": "Educating prey on basic food etiquette helps reduce maw congestion and speeds digestion by 27%."
    }
  ],
  "car": [
    {
      "name": "HOV Lane",
      "desc": "Think of the environment! And of your impending digestion, I guess."
    },
    {
      "name": "Lightweight Frames",
      "desc": "Although crunchy, the shell around the snacks isn't very appetizing."
    },
    {
      "name": "Traffic Engineering",
      "desc": "Maximizing throughput into your gullet."
    },
    {
      "name": "Super Highways",
      "desc": "Six lanes! Fresh pavement! A ravenous maw!"
    },
    {
      "name": "Stacked Cars",
      "desc": "When we couldn't make the roads any wider, we tried stacking the cars higher."
    }
  ],
  "bus": [
    {
      "name": "Bus Passes",
      "desc": "Save on greenhouse emissions. Save your predator's effort. Everyone wins!"
    },
    {
      "name": "Double Deckers",
      "desc": "Stack 'em up! Slurp 'em down!"
    },
    {
      "name": "Articulated Buses",
      "desc": "The bend really helps them slip down your throat."
    }
  ],
  "house": [
    {
      "name": "Remodeling",
      "desc": "Strip out that icky asbestos."
    },
    {
      "name": "Suburbia",
      "desc": "It's like a buffet line!"
    },
  ]
}
let prodAllUpgradeText = [
  {
    "name": "Sloth Metabolism",
    "desc": "Burn those calories. Eventually."
  },
  {
    "name": "Decent Metabolism",
    "desc": "Picking up the pace."
  },
  {
    "name": "Perky Metabolism",
    "desc": "Sweat a little."
  },
  {
    "name": "Quick Metabolism",
    "desc": "Burn those calories."
  },
  {
    "name": "Speedy Metabolism",
    "desc": "More prey, more power."
  },
  {
    "name": "Fast Metabolism",
    "desc": "You're a furnace. Fueled by people."
  },
  {
    "name": "Powerful Metabolism",
    "desc": "Digest them all."
  }
]
const clickUpgradeText = [
  {
    "name": "Grabby Hands",
    "desc": "Gathers prey, opens rooftops"
  },
  {
    "name": "Long Tongue",
    "desc": "Catches stragglers, tastes architecture"
  },
  {
    "name": "Sharp Eyes",
    "desc": "Spots snacks, probably unblinking"
  },
  {
    "name": "Keen Nose",
    "desc": "Sniffs meals, savors scents"
  },
  {
    "name": "Sensitive Ears",
    "desc": "Hears screams, finds leftovers"
  },
]
 |