diff --git a/.DS_Store b/.DS_Store index ecf6676..f15ea94 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/js/bullet.js b/js/bullet.js index c92b548..8f69c0f 100644 --- a/js/bullet.js +++ b/js/bullet.js @@ -3177,7 +3177,7 @@ const b = { // ************************************************************************************************** guns: [{ name: "nail gun", - description: "use compressed air to fire a stream of nails
delay after firing decreases as you shoot", + description: "use compressed air to fire a stream of nails
delay after firing decreases as you shoot", ammo: 0, ammoPack: 45, defaultAmmoPack: 45, @@ -3608,12 +3608,12 @@ const b = { } }, { name: "wave beam", - description: "emit a wave packet of oscillating particles
that propagate through solids", + description: "emit a wave packet of oscillating particles
that propagates through solids", ammo: 0, - ammoPack: 80, + ammoPack: 100, have: false, wavePacketCycle: 0, - delay: 40, + delay: 60, do() { if (this.wavePacketCycle && !input.fire) { this.wavePacketCycle = 0; @@ -3659,18 +3659,19 @@ const b = { } q = Matter.Query.point(mob, this.position) // check if inside a mob for (let i = 0; i < q.length; i++) { - let dmg = this.dmg / Math.min(10, q[i].mass) + let dmg = this.dmg // / Math.min(10, q[i].mass) q[i].damage(dmg); q[i].foundPlayer(); + Matter.Body.setVelocity(q[i], Vector.mult(q[i].velocity, 0.9)) - //this draw circle had to be remove to reduce lag - // simulation.drawList.push({ //add dmg to draw queue - // x: this.position.x, - // y: this.position.y, - // radius: Math.log(2 * dmg + 1.1) * 40, - // color: 'rgba(0,0,0,0.4)', - // time: simulation.drawTime - // }); + this.endCycle = 0; //bullet ends cycle after doing damage + simulation.drawList.push({ //add dmg to draw queue + x: this.position.x, + y: this.position.y, + radius: Math.log(2 * dmg + 1.1) * 40, + color: 'rgba(0,0,0,0.4)', + time: simulation.drawTime + }); } }, wiggle() { diff --git a/js/level.js b/js/level.js index 99d5d94..da69ac0 100644 --- a/js/level.js +++ b/js/level.js @@ -16,7 +16,7 @@ const level = { // simulation.zoomScale = 1000; // simulation.setZoom(); // m.setField("metamaterial cloaking") - b.giveGuns("wave beam") + // b.giveGuns("wave beam") // b.giveGuns("laser") // tech.isExplodeRadio = true // tech.giveTech("pulse") @@ -25,7 +25,7 @@ const level = { // for (let i = 0; i < 3; i++) tech.giveTech("propagation") // for (let i = 0; i < 3; i++) tech.giveTech("bound state") // for (let i = 0; i < 9; i++) tech.giveTech("slow light") - tech.giveTech("metastability") + // tech.giveTech("metastability") level.intro(); //starting level // level.testing(); //not in rotation diff --git a/js/tech.js b/js/tech.js index 286a438..1b2e9e2 100644 --- a/js/tech.js +++ b/js/tech.js @@ -1738,7 +1738,7 @@ frequency: 4, frequencyDefault: 4, allowed() { - return tech.isFlipFlopEnergy || tech.isFlipFlopDamage || tech.isFlipFlopHarm + return tech.isFlipFlopEnergy || tech.isFlipFlopDamage || tech.isFlipFlopHarm || tech.relayIce }, requires: "2 ON/OFF techs", effect() { @@ -1965,9 +1965,9 @@ count: 0, frequency: 2, allowed() { - return (tech.iceEnergy || tech.isWormholeEnergy || tech.isPiezo || tech.isRailEnergyGain) && tech.energyRegen !== 0.004 && !tech.isEnergyHealth + return (tech.iceEnergy || tech.isWormholeEnergy || tech.isPiezo || tech.isRailEnergyGain || tech.energySiphon || tech.isEnergyRecovery || tech.dynamoBotCount || tech.isFlipFlopEnergy) && tech.energyRegen !== 0.004 && !tech.isEnergyHealth }, - requires: "piezoelectricity, Penrose, half-wave, or thermoelectric, but not time crystals", + requires: "a way to regen extra energy, but not time crystals", effect: () => { tech.energyRegen = 0; m.fieldRegen = tech.energyRegen; @@ -2012,7 +2012,7 @@ description: "each heal power up you collect
increases your maximum energy by 5", maxCount: 1, count: 0, - frequency: 2, + frequency: 3, allowed() { return tech.isEnergyHealth && !tech.isNoHeals }, @@ -3686,25 +3686,7 @@ }, { name: "bound state", - description: "instead of dissipating normally
wave packets reflect backwards 1 times", - isGunTech: true, - maxCount: 9, - count: 0, - frequency: 2, - allowed() { - return tech.haveGunCheck("wave beam") - }, - requires: "wave beam", - effect() { - tech.waveReflections++ - }, - remove() { - tech.waveReflections = 1 - } - }, - { - name: "packet length", - description: "wave packet length and duration
is increased by 40%", // description: "holding fire allows the wave beam to emits a second packet
at zero ammo cost", + description: "instead of dissipating normally
wave packets reflect backwards 2 times", isGunTech: true, maxCount: 3, count: 0, @@ -3714,7 +3696,25 @@ }, requires: "wave beam", effect() { - const scale = 1.4 - 0.025 * this.count + tech.waveReflections += 2 + }, + remove() { + tech.waveReflections = 1 + } + }, + { + name: "packet length", + description: "wave packet length and duration
is increased by 50%", // description: "holding fire allows the wave beam to emits a second packet
at zero ammo cost", + isGunTech: true, + maxCount: 3, + count: 0, + frequency: 2, + allowed() { + return tech.haveGunCheck("wave beam") + }, + requires: "wave beam", + effect() { + const scale = 1.5 - 0.025 * this.count tech.wavePacketLength *= scale tech.wavePacketFrequency /= scale tech.waveLengthRange *= Math.sqrt(scale) @@ -3727,7 +3727,7 @@ }, { name: "amplitude", - description: "wave packet amplitude is 33% higher
wave damage is increased by 33%", + description: "wave packet amplitude is 33% higher
wave damage is increased by 50%", isGunTech: true, maxCount: 3, count: 0, @@ -3747,7 +3747,7 @@ }, { name: "propagation", - description: "wave packet propagation speed is 30% slower
wave damage is increased by 50%", + description: "wave packet propagation speed is 25% slower
wave damage is increased by 50%", isGunTech: true, maxCount: 9, count: 0, @@ -3757,7 +3757,7 @@ }, requires: "wave beam", effect() { - tech.waveBeamSpeed *= 0.7; + tech.waveBeamSpeed *= 0.75; tech.waveBeamDamage += 1.3 * 0.5 }, remove() { @@ -6025,7 +6025,7 @@ }, { name: "diegesis", - description: "indicate gun fire delay
through a rotation of your head", + description: "indicate gun fire delay
through a rotation of your head", maxCount: 1, count: 0, frequency: 0, diff --git a/todo.txt b/todo.txt index 26c1ceb..d6feec7 100644 --- a/todo.txt +++ b/todo.txt @@ -1,7 +1,6 @@ ******************************************************** NEXT PATCH ******************************************************** -tech: metastability - 20% dup chance, but duplicated powers up eventually explode -nerfed tech: electric reactive armor 6% (was 7%) explosion damage reduction for every 10 energy you currently have + ******************************************************** BUGS ******************************************************** @@ -39,17 +38,16 @@ is there a way to check if the player is stuck inside the map or block ******************************************************** TODO ******************************************************** -make wave packets a tech - use the tech that makes the wave packets longer? - default wave can be two oscillating waves +tech: a slow moving immortal mob follows you forever + spawns at exit and just slowing moves towards player + benefit: +tech: use the ability for power ups to have custom code + attracted to player + attracted to other power ups + explode if they touch? + make beating the final boss without undefined feel like winning, not like dieing - -try making more things const to change the color to purple in simulation loop - -power ups disappear after 3-5 seconds - only apply to drops from killing mobs - +duplication 20% tech: picking up heal power ups when at full health does harm equal to the heal values benefit on pick up: