diff --git a/.DS_Store b/.DS_Store
index bd2a295..82ef999 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/js/level.js b/js/level.js
index ff42fac..b3dbd1d 100644
--- a/js/level.js
+++ b/js/level.js
@@ -2931,7 +2931,7 @@ const level = {
spawn.randomMob(-75, -1475, 0);
spawn.randomGroup(600, -2600, 0);
}
- if (simulation.difficulty < 1) {
+ if (simulation.difficulty > 1) {
if (Math.random() < 0.5) {
spawn.randomLevelBoss(700, -1550);
} else {
diff --git a/js/player.js b/js/player.js
index 1ec698f..9950837 100644
--- a/js/player.js
+++ b/js/player.js
@@ -1300,7 +1300,7 @@ const m = {
if (m.energy < 0) m.energy = 0;
m.fieldCDcycle = m.cycle + m.fieldBlockCD;
if (tech.blockingIce) {
- for (let i = 0; i < fieldBlockCost * 35 * tech.blockingIce; i++) b.iceIX(3, 2 * Math.PI * Math.random(), m.pos)
+ for (let i = 0; i < fieldBlockCost * 50 * tech.blockingIce; i++) b.iceIX(3, 2 * Math.PI * Math.random(), m.pos)
}
const unit = Vector.normalise(Vector.sub(player.position, who.position))
if (tech.blockDmg) {
@@ -1620,7 +1620,7 @@ const m = {
const unit = Vector.normalise(Vector.sub(m.fieldPosition, mob[i].position))
m.fieldCDcycle = m.cycle + m.fieldBlockCD + (mob[i].isShielded ? 15 : 0);
if (tech.blockingIce) {
- for (let i = 0; i < tech.blockingIce; i++) {
+ for (let i = 0; i < 2 * tech.blockingIce; i++) {
const angle = m.fieldAngle + 1.55 * (Math.random() - 0.5)
b.iceIX(10, angle, Vector.add(m.fieldPosition, { x: m.fieldRange * Math.cos(angle), y: m.fieldRange * Math.sin(angle) }))
}
diff --git a/js/tech.js b/js/tech.js
index 65b724e..a2846fb 100644
--- a/js/tech.js
+++ b/js/tech.js
@@ -3919,9 +3919,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("nail gun") && !tech.nailInstantFireRate
+ return tech.haveGunCheck("nail gun") && !tech.nailInstantFireRate && !tech.isNeedles
},
- requires: "nail gun, not pneumatic actuator",
+ requires: "nail gun, not pneumatic actuator, needle gun",
effect() {
tech.nailRecoil = true
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
@@ -5621,7 +5621,7 @@
//**************************************************
{
name: "zero point energy",
- description: `use ${powerUps.orb.research(2)}to increase your max energy by 74`,
+ description: `use ${powerUps.orb.research(2)}to increase your max energy by 100`,
// description: "use 2 research to
increase your maximum energy by 74",
isFieldTech: true,
maxCount: 1,
@@ -5633,7 +5633,7 @@
},
requires: "standing wave or pilot wave",
effect() {
- tech.harmonicEnergy = 0.74
+ tech.harmonicEnergy = 1
m.setMaxEnergy()
for (let i = 0; i < 2; i++) {
if (powerUps.research.count > 0) powerUps.research.changeRerolls(-1)
@@ -5702,7 +5702,7 @@
},
requires: "standing wave, perfect diamagnetism",
effect() {
- tech.blockDmg += 1.25 //if you change this value also update the for loop in the electricity graphics in m.pushMass
+ tech.blockDmg += 1.75 //if you change this value also update the for loop in the electricity graphics in m.pushMass
},
remove() {
tech.blockDmg = 0;
@@ -5729,7 +5729,7 @@
},
{
name: "flux pinning",
- description: "deflecting mobs with your field
stuns them for 2 seconds",
+ description: "deflecting mobs with your field
stuns them for 4 seconds",
isFieldTech: true,
maxCount: 9,
count: 0,
@@ -5740,7 +5740,7 @@
},
requires: "a field that can block",
effect() {
- tech.isStunField += 120;
+ tech.isStunField += 240;
},
remove() {
tech.isStunField = 0;
@@ -5786,7 +5786,7 @@
},
{
name: "tessellation",
- description: `use ${powerUps.orb.research(4)}to reduce harm by 50%`,
+ description: `use ${powerUps.orb.research(2)}to reduce harm by 50%`,
// description: "use 4 research
reduce harm by 50%",
isFieldTech: true,
maxCount: 1,
@@ -5799,18 +5799,18 @@
requires: "perfect diamagnetism or negative mass",
effect() {
tech.isFieldHarmReduction = true
- for (let i = 0; i < 4; i++) {
+ for (let i = 0; i < 2; i++) {
if (powerUps.research.count > 0) powerUps.research.changeRerolls(-1)
}
},
remove() {
tech.isFieldHarmReduction = false
- if (this.count > 0) powerUps.research.changeRerolls(4)
+ if (this.count > 0) powerUps.research.changeRerolls(2)
}
},
{
name: "neutronium",
- description: `reduce harm by 90% while your field is active
move and jump 33% slower`,
+ description: `reduce harm by 90% when your field is active
move and jump 33% slower`,
isFieldTech: true,
maxCount: 1,
count: 0,
@@ -6312,7 +6312,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return (m.fieldUpgrades[m.fieldMode].name === "time dilation") && tech.energyRegen !== 0
+ return (m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && tech.energyRegen !== 0
},
requires: "time dilation, not ground state",
effect: () => {
@@ -6333,7 +6333,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return (m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking") && tech.duplicationChance() < 1 //m.fieldUpgrades[m.fieldMode].name === "wormhole" ||
+ return (m.fieldUpgrades[m.fieldMode].name === "pilot wave" || m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking")
},
requires: "cloaking, wormhole or time dilation and below 100% duplication chance",
effect() {
@@ -6355,7 +6355,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking"
+ return m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking" || m.fieldUpgrades[m.fieldMode].name === "time dilation"
},
requires: "metamaterial cloaking",
effect() {
@@ -6543,7 +6543,7 @@
frequency: 1,
frequencyDefault: 1,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "wormhole"
+ return m.fieldUpgrades[m.fieldMode].name === "wormhole" || m.fieldUpgrades[m.fieldMode].name === "pilot wave"
},
requires: "wormhole",
effect: () => {
diff --git a/todo.txt b/todo.txt
index 5ca4af8..42b7e5c 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,34 +1,21 @@
******************************************************** NEXT PATCH **************************************************
-JUNK tech: facsimile - copy current level and insert into level queue
-JUNK tech: planetesimals - spawn a tech, and play planetesimals, an annoying asteroids like game with realistic physics
+field tech balance:
+ pilot wave has access to more field tech: time crystals, WIMPs, no-cloning
+ time dilation: can get symbiosis
+ flux pinning: 2s -> 4s stun on blocking
+ zero point energy: 74 energy -> 100 energy
+ tessellation: 4->2 research cost
+ bremsstrahlung: 33% more damage
+ triple point: 50% more ice
-tech that previously added 1 junk tech now adds 1% (of current non-JUNK tech options)
- the percent values may seem like more but I actually lowered the JUNK chance about 10%
-
-meta-analysis no longer requires replication - (if you choose a JUNK tech get a random tech and 3 research)
-symbiosis: only gives 1 bonus tech (was 1 or 2)
-blink boss rebalanced (it's easier, and has two modes)
-
-bug fixes
+ bug fixes
******************************************************** TODO ********************************************************
-fields weak in late game?
- Pilot wave?
- buff with cool tech options from other fields
- buff with another damage scaling tech
- stand wave and diamagnetism
- buff end stage tech for these
-
-
-
tech perfect diamagnetism - holding the field makes the field slowly travel forward
could be base effect
-make a field that just fires your first gun
- if they have to share a cooldown give 50% shorter fire CD
-
bug - death while paused crashes game?
tech: aerodynamic heating - railgun rods super heat the air around it doing AoE damage