| @@ -14,6 +14,8 @@ let updateRate = 60; | |||||
| let currentProductivity = {}; | let currentProductivity = {}; | ||||
| let lastTime = 0; | |||||
| function calculateProductivity() { | function calculateProductivity() { | ||||
| let productivity = 0; | let productivity = 0; | ||||
| for (const [key, value] of Object.entries(belongings)) { | for (const [key, value] of Object.entries(belongings)) { | ||||
| @@ -72,8 +74,13 @@ function buyBuilding(type) { | |||||
| // update stuff | // update stuff | ||||
| function updateDisplay() { | function updateDisplay() { | ||||
| let newTime = performance.now(); | |||||
| let delta = newTime - lastTime; | |||||
| lastTime = newTime; | |||||
| updateProductivity(); | updateProductivity(); | ||||
| addResources(); | |||||
| addResources(delta); | |||||
| displayResources(); | displayResources(); | ||||
| displayBuildings(); | displayBuildings(); | ||||
| displayUpgrades(); | displayUpgrades(); | ||||
| @@ -85,11 +92,12 @@ function updateProductivity() { | |||||
| currentProductivity["food"] = calculateProductivity(); | currentProductivity["food"] = calculateProductivity(); | ||||
| } | } | ||||
| function addResources() { | |||||
| resources.food += currentProductivity["food"] * 1 / updateRate; | |||||
| function addResources(delta) { | |||||
| resources.food += currentProductivity["food"] * delta / 1000; | |||||
| } | } | ||||
| function displayResources() { | function displayResources() { | ||||
| document.title = "Gorge - " + round(resources.food) + " food"; | |||||
| document.getElementById("resource-food").innerText = "Food: " + render(resources.food); | document.getElementById("resource-food").innerText = "Food: " + render(resources.food); | ||||
| document.getElementById("productivity").innerText = round(calculateProductivity(), 1) + " food/sec"; | document.getElementById("productivity").innerText = round(calculateProductivity(), 1) + " food/sec"; | ||||
| @@ -512,5 +520,7 @@ function buildingTooltipRemove() { | |||||
| window.onload = function() { | window.onload = function() { | ||||
| setup(); | setup(); | ||||
| lastTime = performance.now(); | |||||
| setTimeout(updateDisplay, 1000/updateRate); | setTimeout(updateDisplay, 1000/updateRate); | ||||
| } | } | ||||