Browse Source

Time between updates is measured and used to compute resource gain. Food is in title now

tags/v0.0.1
Fen Dweller 7 years ago
parent
commit
e15e82ec3c
No known key found for this signature in database GPG Key ID: E80B35A6F11C3656
1 changed files with 13 additions and 3 deletions
  1. +13
    -3
      gorge.js

+ 13
- 3
gorge.js View File

@@ -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);
} }

Loading…
Cancel
Save