diff --git a/.DS_Store b/.DS_Store
index b8d7b75..c726d99 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/js/level.js b/js/level.js
index a696d5f..698be81 100644
--- a/js/level.js
+++ b/js/level.js
@@ -18,7 +18,7 @@ const level = {
// b.giveGuns("wave beam")
// tech.giveTech("pressure wave")
// for (let i = 0; i < 9; i++) tech.giveTech("spherical harmonics")
- // tech.giveTech("supertemporal")
+ // tech.giveTech("decoherence")
// for (let i = 0; i < 3; i++) tech.giveTech("packet length")
level.intro(); //starting level
@@ -47,7 +47,8 @@ const level = {
// level.vats() //community level
// level["n-gon"]() //community level
// level.tunnel() //community level
- // for (let i = 0; i < 3; i++) powerUps.spawn(player.position.x + Math.random() * 50, player.position.y - Math.random() * 50, "tech", false);
+ // powerUps.research.changeRerolls(3000)
+ // for (let i = 0; i < 30; i++) powerUps.spawn(player.position.x + Math.random() * 50, player.position.y - Math.random() * 50, "tech", false);
// for (let i = 0; i < 7; i++) tech.giveTech("undefined")
// lore.techCount = 6
diff --git a/js/powerup.js b/js/powerup.js
index 0945ac2..67847a0 100644
--- a/js/powerup.js
+++ b/js/powerup.js
@@ -488,7 +488,10 @@ const powerUps = {
if (tech.isBanish) { //remove banished tech from last selection
for (let i = 0; i < powerUps.tech.banishLog.length; i++) {
for (let j = 0; j < options.length; j++) {
- if (powerUps.tech.banishLog[i] === options[j]) options.splice(j, 1)
+ if (powerUps.tech.banishLog[i] === options[j]) {
+ options.splice(j, 1)
+ break
+ }
}
}
} else { //remove repeats from last selection
@@ -497,7 +500,10 @@ const powerUps = {
for (let i = 0; i < totalChoices; i++) { //repeat for each choice from the last selection
if (options.length > totalChoices) {
for (let j = 0, len = options.length; j < len; j++) {
- if (powerUps.tech.choiceLog[powerUps.tech.choiceLog.length - 1 - i] === options[j]) options.splice(j, 1) //remove previous choice from option pool
+ if (powerUps.tech.choiceLog[powerUps.tech.choiceLog.length - 1 - i] === options[j]) {
+ options.splice(j, 1) //remove previous choice from option pool
+ break;
+ }
}
}
}
diff --git a/js/tech.js b/js/tech.js
index 39cfd03..80d8edb 100644
--- a/js/tech.js
+++ b/js/tech.js
@@ -1906,9 +1906,9 @@
frequency: 1,
frequencyDefault: 1,
allowed() {
- return true
+ return !tech.isEnergyHealth
},
- requires: "",
+ requires: "not mass-energy",
effect: () => {
tech.isMACHO = true; //this harm reduction comes from the particle toggling tech.isHarmMACHO
spawn.MACHO()
@@ -2560,7 +2560,7 @@
},
{
name: "maintenance",
- description: "double the frequency of finding healing tech
spawn 14 heals",
+ description: "double the frequency of finding healing tech
spawn 11 heals",
maxCount: 1,
count: 0,
frequency: 1,
@@ -2568,11 +2568,11 @@
isNonRefundable: true,
isBadRandomOption: true,
allowed() {
- return (m.health / m.maxHealth) < 0.7 && !tech.isNoHeals
+ return !tech.isNoHeals
},
- requires: "health < 70%, not ergodicity",
+ requires: "not ergodicity",
effect() {
- for (let i = 0; i < 14; i++) powerUps.spawn(m.pos.x + 60 * (Math.random() - 0.5), m.pos.y + 60 * (Math.random() - 0.5), "heal");
+ for (let i = 0; i < 11; i++) powerUps.spawn(m.pos.x + 60 * (Math.random() - 0.5), m.pos.y + 60 * (Math.random() - 0.5), "heal");
for (let i = 0, len = tech.tech.length; i < len; i++) {
if (tech.tech[i].isHealTech) tech.tech[i].frequency *= 2
}
@@ -3984,8 +3984,8 @@
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
if (b.guns[i].name === "wave beam") {
b.guns[i].chooseFireMethod()
- b.guns[i].ammoPack = b.guns[i].defaultAmmoPack * 0.1
- b.guns[i].ammo = Math.ceil(b.guns[i].ammo * 0.1);
+ b.guns[i].ammoPack = b.guns[i].defaultAmmoPack * 0.125
+ b.guns[i].ammo = Math.ceil(b.guns[i].ammo * 0.125);
simulation.updateGunHUD();
break
}
@@ -3997,7 +3997,7 @@
b.guns[i].chooseFireMethod()
if (tech.isLongitudinal) {
b.guns[i].ammoPack = b.guns[i].defaultAmmoPack
- b.guns[i].ammo = Math.ceil(b.guns[i].ammo * 10);
+ b.guns[i].ammo = Math.ceil(b.guns[i].ammo * 8);
simulation.updateGunHUD();
}
break
@@ -4658,19 +4658,19 @@
},
{
name: "gamma-ray laser",
- description: "increase all laser damage by 150%
increase all laser energy drain by 200%",
+ description: "increase all laser damage by 200%
increase all laser energy drain by 250%",
isGunTech: true,
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return (tech.haveGunCheck("laser") || tech.isLaserMine || tech.laserBotCount > 1) && !tech.isWideLaser && !tech.isPulseLaser && !tech.historyLaser
+ return (tech.haveGunCheck("laser") || tech.isLaserMine || tech.laserBotCount > 1) && !tech.isPulseLaser
},
requires: "laser, not pulse",
effect() {
- tech.laserFieldDrain = 0.006 //base is 0.002
- tech.laserDamage = 0.375; //base is 0.15
+ tech.laserFieldDrain = 0.007 //base is 0.002
+ tech.laserDamage = 0.45; //base is 0.15
tech.laserColor = "#83f"
tech.laserColorAlpha = "rgba(136, 51, 255,0.5)"
},
@@ -5937,7 +5937,7 @@
},
{
name: "hidden variable",
- description: "spawn 30 heal power ups
but hide your health bar",
+ description: "spawn 15 heal power ups
but hide your health bar",
maxCount: 1,
count: 0,
frequency: 0,
@@ -5951,7 +5951,7 @@
effect() {
document.getElementById("health").style.display = "none"
document.getElementById("health-bg").style.display = "none"
- for (let i = 0; i < 30; i++) powerUps.spawn(m.pos.x + 160 * (Math.random() - 0.5), m.pos.y + 160 * (Math.random() - 0.5), "heal");
+ for (let i = 0; i < 15; i++) powerUps.spawn(m.pos.x + 160 * (Math.random() - 0.5), m.pos.y + 160 * (Math.random() - 0.5), "heal");
},
remove() {}
},
@@ -6802,7 +6802,7 @@
ctx.stroke();
ctx.beginPath();
ctx.arc(18, 13, 10, 0, 2 * Math.PI);
- ctx.fillStyle = grd;
+ ctx.fillStyle = this.bodyGradient;
ctx.fill();
ctx.stroke();
ctx.beginPath();
diff --git a/todo.txt b/todo.txt
index f565cec..0784570 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,18 +1,9 @@
******************************************************** NEXT PATCH ********************************************************
-
-tech: pressure wave - wave beam fires lower frequency, higher damage, wide arcs that propagate through solids
-
-tech: gamma-ray laser - increase laser damage by 150% and energy drain by 200%
- works for all lasers except pulse
-
-tech: specular reflection - now just gives +2 laser reflections (was +1, and damage/energy increase)
-
-you, pilot wave, and drones can't pick up ammo if you have Infinite ammo on your current gun
- wormhole still eats everything
-
-Bayesian statistics gives 4.2% damage per research (was 3.9%)
-bot fabrication needs 3 research to make a random bot (was 4)
+pressure wave balance - slightly more ammo
+gamma-ray laser does 200% damage and 250% more drain (was 150% damage, 200% drain)
+gamma ray now doesn't lock out other laser tech
+hidden variable now gives 15, not 30 heals
******************************************************** TODO ********************************************************