Procházet zdrojové kódy

Add prerequisites to powerups. Create a template for "free X" powerups. Add free bus

The "free X" powerups now only appear if you have at least one of the item, and also stop appearing once you have 100
tags/v0.0.6
Fen Dweller před 6 roky
rodič
revize
83e78b60af
V databázi nebyl nalezen žádný známý klíč pro tento podpis ID GPG klíče: E80B35A6F11C3656
2 změnil soubory, kde provedl 39 přidání a 18 odebrání
  1. +30
    -10
      constants.js
  2. +9
    -8
      gorge.js

+ 30
- 10
constants.js Zobrazit soubor

@@ -302,7 +302,9 @@ function createTemplateUpgrades() {
createHelperUpgrades(); createHelperUpgrades();
createClickVictimUpgrades(); createClickVictimUpgrades();
createPowerupFreqUpgrades(); createPowerupFreqUpgrades();
createFreeBuildingPowerups();
deepFreeze(upgrades); deepFreeze(upgrades);
deepFreeze(powerups);
} }


const prodUpgradeCounts = [1, 5, 10, 25, 50, 75, 100]; const prodUpgradeCounts = [1, 5, 10, 25, 50, 75, 100];
@@ -1198,27 +1200,19 @@ const powerups = {
name: "Free Food", name: "Free Food",
description: "Tasty!", description: "Tasty!",
icon: "fa-drumstick-bite", icon: "fa-drumstick-bite",
prereqs: state => true,
effect: state => state.resources.food += state.currentProductivity.food * 60, effect: state => state.resources.food += state.currentProductivity.food * 60,
popup: (self, e) => { popup: (self, e) => {
clickPopup("GULP!", "gulp", [e.clientX, e.clientY]); clickPopup("GULP!", "gulp", [e.clientX, e.clientY]);
clickPopup("+60 seconds of food", "food", [e.clientX, e.clientY]); clickPopup("+60 seconds of food", "food", [e.clientX, e.clientY]);
} }
}, },
"free-car": {
name: "Free Car",
description: "It's FREE!",
icon: "fa-car",
effect: state => state.belongings.car.count += 1,
popup: (self, e) => {
clickPopup("CAR!", "gulp", [e.clientX, e.clientY]);
clickPopup("+1 car", "food", [e.clientX, e.clientY]);
}
},
"double": { "double": {
name: "Double Dip", name: "Double Dip",
description: "Doubled productivity!", description: "Doubled productivity!",
icon: "fa-cogs", icon: "fa-cogs",
duration: 10000, duration: 10000,
prereqs: state => true,
effect: state => state.currentProductivity.food *= 2, effect: state => state.currentProductivity.food *= 2,
popup: (self, e) => { popup: (self, e) => {
clickPopup("VROOM!", "gulp", [e.clientX, e.clientY]); clickPopup("VROOM!", "gulp", [e.clientX, e.clientY]);
@@ -1226,6 +1220,32 @@ const powerups = {
} }
} }


function createFreeBuildingPowerups() {
const prefix = "free-";
Object.entries(freeBuildingPowerupText).forEach(([building, text]) => {
const key = prefix + building;

powerups[key] = {
name: text.name,
description: text.desc,
icon: buildings[building].icon,
prereqs: state => state.belongings[building].count > 0 && state.belongings[building].count < 100,
effect: state => state.belongings[building].count += 1,
popup: (self, e) => clickPopup("+1 " + buildings[building].name, "food", [e.clientX, e.clientY])
}
});
}

const freeBuildingPowerupText = {
car: {
name: "Free Car",
desc: "It's FREE!"
},
bus: {
name: "Deserted Bus",
desc: "Just kidding. It's full of people."
}
}
deepFreeze(prodUpgradeText); deepFreeze(prodUpgradeText);
deepFreeze(prodAllUpgradeText); deepFreeze(prodAllUpgradeText);
deepFreeze(clickUpgradeText); deepFreeze(clickUpgradeText);


+ 9
- 8
gorge.js Zobrazit soubor

@@ -984,8 +984,16 @@ function doPowerup() {


const choices = []; const choices = [];


const state = {
ownedUpgrades: ownedUpgrades,
resources: resources,
currentProductivity: currentProductivity,
belongings: belongings
};

Object.entries(powerups).forEach(([key, val]) => { Object.entries(powerups).forEach(([key, val]) => {
choices.push(key);
if (val.prereqs(state))
choices.push(key);
}); });


const choice = Math.floor(Math.random() * choices.length); const choice = Math.floor(Math.random() * choices.length);
@@ -1015,13 +1023,6 @@ function doPowerup() {
doPowerup(); doPowerup();
}, delay); }, delay);


const state = {
ownedUpgrades: ownedUpgrades,
resources: resources,
currentProductivity: currentProductivity,
belongings: belongings
};

button.addEventListener("mousedown", e => { button.addEventListener("mousedown", e => {
if (powerup.duration !== undefined) { if (powerup.duration !== undefined) {
addPowerup(powerup); addPowerup(powerup);


Načítá se…
Zrušit
Uložit