diff --git a/.DS_Store b/.DS_Store
index b958507..305f838 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/js/level.js b/js/level.js
index 675806f..b0a5c05 100644
--- a/js/level.js
+++ b/js/level.js
@@ -1091,7 +1091,7 @@ const level = {
spawn.bodyRect(x + 5, y - 260 + i * blockSize, 30, blockSize);
}
}
- // blockDoor(710, -710);
+ blockDoor(710, -710);
spawn.mapRect(2500, -1200, 200, 750); //right wall
blockDoor(2585, -210)
spawn.mapRect(2500, -200, 200, 300); //right wall
@@ -1103,7 +1103,7 @@ const level = {
spawn.mapRect(6700, -1800, 800, 2600); //right wall
spawn.mapRect(level.exit.x, level.exit.y + 20, 100, 100); //exit bump
- spawn.starter(1900, -500, 200) //big boy
+ // spawn.starter(1900, -500, 200) //big boy
// spawn.grower(1900, -500)
// spawn.pulsarBoss(1900, -500)
// spawn.shooterBoss(1900, -500)
@@ -1112,7 +1112,10 @@ const level = {
// spawn.striker(1600, -500)
// spawn.laserTargetingBoss(1700, -120)
// spawn.bomberBoss(1400, -500)
- // spawn.ghoster(1800, -120)
+ spawn.ghoster(1800, -120)
+ spawn.ghoster(1800, -120)
+ spawn.ghoster(1800, -120)
+ spawn.ghoster(1800, -120)
// spawn.streamBoss(1600, -500)
// spawn.orbitalBoss(1600, -500)
// spawn.cellBossCulture(1600, -500)
diff --git a/js/player.js b/js/player.js
index c3de7f0..f845447 100644
--- a/js/player.js
+++ b/js/player.js
@@ -2321,6 +2321,7 @@ const m = {
const unit = Vector.mult(Vector.normalise(sub), body[i].mass * tech.pilotForce * Vector.magnitude(sub))
body[i].force.x += unit.x
body[i].force.y += unit.y - body[i].mass * simulation.g //remove gravity effects
+ if (tech.isBlockBullets && body[i].collisionFilter.category !== cat.bullet) body[i].collisionFilter.category = cat.bullet;
} else {
m.fieldCDcycle = m.cycle + 120;
m.fieldOn = false
@@ -2330,6 +2331,24 @@ const m = {
}
}
+
+ // m.holdingTarget.collisionFilter.category = cat.bullet;
+ // m.holdingTarget.collisionFilter.mask = cat.map | cat.body | cat.bullet | cat.mob | cat.mobBullet | cat.mobShield;
+ // //check every second to see if player is away from thrown body, and make solid
+ // const solid = function(that) {
+ // const dx = that.position.x - player.position.x;
+ // const dy = that.position.y - player.position.y;
+ // if (that.speed < 3 && dx * dx + dy * dy > 10000 && that !== m.holdingTarget) {
+ // that.collisionFilter.category = cat.body; //make solid
+ // that.collisionFilter.mask = cat.player | cat.map | cat.body | cat.bullet | cat.mob | cat.mobBullet; //can hit player now
+ // } else {
+ // setTimeout(solid, 40, that);
+ // }
+ // };
+ // setTimeout(solid, 200, m.holdingTarget);
+
+
+
if (tech.isFreezeMobs) {
for (let i = 0, len = mob.length; i < len; ++i) {
if (Vector.magnitude(Vector.sub(mob[i].position, m.fieldPosition)) < m.fieldRadius) {
diff --git a/js/tech.js b/js/tech.js
index dc4872d..cfc6b6b 100644
--- a/js/tech.js
+++ b/js/tech.js
@@ -1489,9 +1489,9 @@
frequency: 4,
frequencyDefault: 4,
allowed() {
- return tech.throwChargeRate > 1 && !tech.isNoHeals
+ return tech.throwChargeRate > 1 && !tech.isNoHeals && m.fieldUpgrades[m.fieldMode].name !== "pilot wave"
},
- requires: "mass driver, not ergodicity",
+ requires: "mass driver, not ergodicity, pilot wave",
effect() {
tech.isBlockPowerUps = true
},
@@ -5110,7 +5110,7 @@
allowed() {
return m.fieldUpgrades[m.fieldMode].name === "pilot wave"
},
- requires: "metamaterial cloaking",
+ requires: "pilot wave",
effect() {
tech.pilotForce = 0.0006
},
@@ -5118,6 +5118,24 @@
tech.pilotForce = 0.00002
}
},
+ {
+ name: "fermions",
+ description: "after a block is affected by pilot wave it
collides with intangible mobs, but not you",
+ isFieldTech: true,
+ maxCount: 1,
+ count: 0,
+ frequency: 2,
+ allowed() {
+ return m.fieldUpgrades[m.fieldMode].name === "pilot wave"
+ },
+ requires: "pilot wave",
+ effect() {
+ tech.isBlockBullets = true
+ },
+ remove() {
+ tech.isBlockBullets = false
+ }
+ },
{
name: "cosmic string",
description: "stun and do radioactive damage to mobs
if you tunnel through them with a wormhole",
@@ -6711,11 +6729,11 @@
blockingIce: null,
isPhaseVelocity: null,
wavePacketLength: null,
- isImaginaryWave: null,
waveBeamSpeed: null,
wavePacketAmplitude: null,
waveLengthRange: null,
isCollisionRealitySwitch: null,
iceIXOnDeath: null,
- wimpCount: null
+ wimpCount: null,
+ isBlockBullets: null
}
\ No newline at end of file
diff --git a/todo.txt b/todo.txt
index ad1005d..2768939 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,13 +1,14 @@
******************************************************** NEXT PATCH ********************************************************
-pilot wave energy is back to it's old energy settings
-tech: restitution - now only triggers power ups from blocks thrown by the player
- (this makes pilot wave and naturally falling blocks not spawn power ups. flywheel will work if a block was thrown in the last 3 seconds)
-
-standing wave harmonic has reduced blocking recoil
+fermions: after a block is affected by pilot wave it collides with intangible mobs, but not you
******************************************************** BUGS ********************************************************
+mine reclamation is giving mine ammo back after you fire, not after explode
+
+undefined count did not seem to reset between games
+ only display not reset
+
Why does micro-extruder lag so much anyway
blue triangle boss can move backwards and aim away from you if set up properly