Quellcode durchsuchen

Upgrades have prerequisites. The game only checks for upgrades that are not owned

tags/v0.0.1
Fen Dweller vor 7 Jahren
Ursprung
Commit
e14143dace
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden GPG-Schlüssel-ID: E80B35A6F11C3656
2 geänderte Dateien mit 50 neuen und 6 gelöschten Zeilen
  1. +10
    -0
      constants.js
  2. +40
    -6
      gorge.js

+ 10
- 0
constants.js Datei anzeigen

@@ -119,6 +119,11 @@ const upgrades = {
"effect": {
"type": "prod-2x",
"target": "micro"
},
"prereqs": {
"buildings": {
"micro": 1
}
}
},
"micro-prod-2": {
@@ -130,6 +135,11 @@ const upgrades = {
"effect": {
"type": "prod-2x",
"target": "micro"
},
"prereqs": {
"buildings": {
"micro": 10
}
}
}
}

+ 40
- 6
gorge.js Datei anzeigen

@@ -4,6 +4,8 @@ let belongings = {};

let ownedUpgrades = {};

let remainingUpgrades = [];

let resources = {};

let updateRate = 60;
@@ -25,7 +27,6 @@ function productivityOf(type) {
if (!ownedUpgrades[key]) {
continue;
}
console.log(value);
if (value.effect.type == "prod-2x") {
if (value.effect.target == key) {
baseProd *= 2;
@@ -105,19 +106,27 @@ function spend(cost) {
}

function displayUpgrades() {
for (const [key, value] of Object.entries(upgrades)) {
let button = document.querySelector("#upgrade-" + key);
for (let id of remainingUpgrades) {
let button = document.querySelector("#upgrade-" + id);

if (ownedUpgrades[key]) {
if (ownedUpgrades[id]) {
button.style.display = "none";
return;
continue;
}
if (canAfford(upgrades[key].cost)) {
if (upgradeAvailable(id)) {
button.classList.remove("upgrade-button-inactive");
} else {
button.classList.add("upgrade-button-inactive");
}
}

// now we throw out stuff

for (let i = remainingUpgrades.length-1; i >= 0; i--) {
if (ownedUpgrades[remainingUpgrades[i]]) {
remainingUpgrades.splice(i, 1);
}
}
}

function buyUpgrade(id) {
@@ -195,10 +204,35 @@ function createBuildings() {
}
}

function upgradeAvailable(id) {
if (ownedUpgrades[id]) {
return false;
}

if (!canAfford(upgrades[id].cost)) {
return false;
}

for (const [type, reqs] of Object.entries(upgrades[id].prereqs)) {
if (type == "buildings") {
for (const [building, amount] of Object.entries(upgrades[id].prereqs[type])) {
if (belongings[building].count < amount) {
return false;
}
}
}
}

return true;
}

function createUpgrades() {
let container = document.querySelector("#upgrades-list");

for (const [key, value] of Object.entries(upgrades)) {

remainingUpgrades.push(key);

let button = document.createElement("div");
button.classList.add("upgrade-button");
button.id = "upgrade-" + key;


Laden…
Abbrechen
Speichern