From fc34952a86707ba27696bf33d6041b9ed355f174 Mon Sep 17 00:00:00 2001 From: landgreen Date: Tue, 31 Mar 2020 06:01:54 -0700 Subject: [PATCH] timeskip --- js/bullets.js | 36 ++++++++++++++++++------------------ js/game.js | 14 ++++++++++++++ js/level.js | 3 ++- js/player.js | 18 +++++++++--------- todo.txt | 9 +++------ 5 files changed, 46 insertions(+), 34 deletions(-) diff --git a/js/bullets.js b/js/bullets.js index 81482ef..3a205cd 100644 --- a/js/bullets.js +++ b/js/bullets.js @@ -584,24 +584,6 @@ const b = { b.isModEntanglement = false; } }, - { - name: "ground state", - description: "reduce harm by 67%
you no longer passively regenerate energy", - maxCount: 1, - count: 0, - allowed() { - return true - }, - requires: "", - effect: () => { - b.modEnergyRegen = 0; - mech.fieldRegen = b.modEnergyRegen; - }, - remove() { - b.modEnergyRegen = 0.005; - mech.fieldRegen = b.modEnergyRegen; - } - }, { name: "piezoelectricity", description: "colliding with mobs fills your energy
15% less harm from mob collisions", @@ -619,6 +601,24 @@ const b = { b.isModPiezo = false; } }, + { + name: "ground state", + description: "reduce harm by 50%
you no longer passively regenerate energy", + maxCount: 1, + count: 0, + allowed() { + return b.isModPiezo + }, + requires: "piezoelectricity", + effect: () => { + b.modEnergyRegen = 0; + mech.fieldRegen = b.modEnergyRegen; + }, + remove() { + b.modEnergyRegen = 0.001; + mech.fieldRegen = b.modEnergyRegen; + } + }, { name: "energy conservation", description: "15% of damage done is recovered as energy", diff --git a/js/game.js b/js/game.js index 0f7fc92..1e5bbc2 100644 --- a/js/game.js +++ b/js/game.js @@ -56,6 +56,20 @@ const game = { ctx.restore(); game.drawCursor(); }, + timeSkip(cycles = 60) { + for (let i = 0; i < cycles; i++) { + game.cycle++; + // mech.cycle++; + game.gravity(); + Engine.update(engine, game.delta); + level.checkZones(); + level.checkQuery(); + mech.move(); + mobs.loop(); + mech.hold(); + b.bulletActions(); + } + }, mouse: { x: canvas.width / 2, y: canvas.height / 2 diff --git a/js/level.js b/js/level.js index 61ad407..f00dd60 100644 --- a/js/level.js +++ b/js/level.js @@ -16,8 +16,9 @@ const level = { // level.difficultyIncrease(9) // b.giveGuns("ice IX") // mech.setField("time dilation field") + // mech.energy = 0.1; // b.giveMod("ground state"); - // b.giveMod("reflective cavity"); + // b.giveMod("photovoltaics"); level.intro(); //starting level // level.testingMap(); diff --git a/js/player.js b/js/player.js index a54e3ab..c1bf9eb 100644 --- a/js/player.js +++ b/js/player.js @@ -508,10 +508,10 @@ const mech = { if (b.isModDroneOnDamage) { const len = (dmg - 0.06 * Math.random()) * 40 for (let i = 0; i < len; i++) { - if (Math.random() < 0.75) b.drone() //spawn drone + if (Math.random() < 0.5) b.drone() //spawn drone } } - if (b.isModMineOnDamage && dmg > 0.005 + 0.1 * Math.random()) { + if (b.isModMineOnDamage && dmg > 0.004 + 0.05 * Math.random()) { b.mine({ x: mech.pos.x, y: mech.pos.y - 80 @@ -522,7 +522,7 @@ const mech = { } dmg *= mech.fieldDamageResistance - if (!b.modEnergyRegen) dmg *= 0.33 //0.22 + 0.78 * mech.energy //77% damage reduction at zero energy + if (!b.modEnergyRegen) dmg *= 0.5 //0.22 + 0.78 * mech.energy //77% damage reduction at zero energy if (b.isModEntanglement && b.inventory[0] === b.activeGun) { for (let i = 0, len = b.inventory.length; i < len; i++) { dmg *= 0.84 // 1 - 0.16 @@ -738,7 +738,7 @@ const mech = { }, setHoldDefaults() { if (mech.energy < mech.fieldEnergyMax) mech.energy = mech.fieldEnergyMax; - mech.fieldRegen = b.modEnergyRegen; + mech.fieldRegen = b.modEnergyRegen; //0.001 mech.fieldMeterColor = "#0cf" mech.fieldShieldingScale = 1; mech.fieldDamageResistance = 1; @@ -1305,8 +1305,8 @@ const mech = { const DRAIN = 0.0023 if (mech.energy > DRAIN) { mech.energy -= DRAIN; - if (mech.energy < 0) { - mech.fieldCDcycle = mech.cycle + 60; + if (mech.energy < DRAIN) { + mech.fieldCDcycle = mech.cycle + 120; mech.energy = 0; mech.wakeCheck(); } @@ -1370,7 +1370,7 @@ const mech = { if (mech.energy > DRAIN) { mech.energy -= DRAIN; if (mech.energy < 0) { - mech.fieldCDcycle = mech.cycle + 60; + mech.fieldCDcycle = mech.cycle + 120; mech.energy = 0; } //calculate laser collision @@ -1585,7 +1585,7 @@ const mech = { zeroG(body, this.fieldDrawRadius); } if (mech.energy < 0) { - mech.fieldCDcycle = mech.cycle + 60; + mech.fieldCDcycle = mech.cycle + 120; mech.energy = 0; } //add extra friction for horizontal motion @@ -1765,7 +1765,7 @@ const mech = { if (mech.energy > DRAIN) { mech.energy -= DRAIN; if (mech.energy < 0) { - mech.fieldCDcycle = mech.cycle + 60; + mech.fieldCDcycle = mech.cycle + 120; mech.energy = 0; } mech.isStealth = true //isStealth disables most uses of foundPlayer() diff --git a/todo.txt b/todo.txt index d19c875..4f38392 100644 --- a/todo.txt +++ b/todo.txt @@ -1,13 +1,10 @@ -new mod - ground state: reduce harm by 77% but you don't regen energy -negative feedback, entanglement, fluoroantimonic acid now indicate effects with text -entanglement 13% -> 16% damage reduction -piezoelectricity 10% -> 15% harm reduction -acute stress response now does 33% damage and drains 50% energy once when a mob dies - ************** TODO - n-gon ************** +mob Boss - time skipper: sends a pulse wave out that will cause time to jump forward 1 second. + what about a series of short time skips forward 10 cycles at a time + add a way to run player submitted maps. MOB stabber - extends one vector like the shooter, but quickly in order to stab