From 9c2433d50d5b2c7a321042c66d68cce8bbb41a84 Mon Sep 17 00:00:00 2001 From: landgreen Date: Wed, 8 Jan 2020 17:55:17 -0800 Subject: [PATCH] bug fixes and balance --- js/bullets.js | 19 ++++++++----------- js/level.js | 37 +++++++++++++++++++------------------ js/mobs.js | 2 +- js/powerups.js | 4 +++- js/spawn.js | 2 +- 5 files changed, 32 insertions(+), 32 deletions(-) diff --git a/js/bullets.js b/js/bullets.js index 6fbf532..2591a1f 100644 --- a/js/bullets.js +++ b/js/bullets.js @@ -1627,19 +1627,16 @@ const b = { bullet[me].do = function () { this.force.y += this.mass * 0.002; //extra gravity - if (this.cycle > 10) { - ctx.setLineDash([40, 100]); - ctx.lineWidth = 1 - ctx.strokeStyle = "#357"; - ctx.beginPath(); - ctx.arc(this.position.x, this.position.y, 650, 0, 2 * Math.PI); - ctx.stroke(); - ctx.setLineDash([0, 0]); - this.cycle++ - } else if (this.speed < 1 && !mech.isBodiesAsleep) { - this.cycle++ + ctx.beginPath(); //draw block as grey + ctx.moveTo(this.vertices[0].x, this.vertices[0].y); + for (let j = 1; j < this.vertices.length; j += 1) { + ctx.lineTo(this.vertices[j].x, this.vertices[j].y); } + ctx.lineTo(this.vertices[0].x, this.vertices[0].y); + ctx.fillStyle = "#457"; + ctx.fill(); + if (this.speed < 1 && !mech.isBodiesAsleep) this.cycle++ if (this.cycle > 40) { this.do = function () { this.force.y += this.mass * 0.002; //extra gravity diff --git a/js/level.js b/js/level.js index 54dc40a..c9730c9 100644 --- a/js/level.js +++ b/js/level.js @@ -21,6 +21,7 @@ const level = { level.intro(); //starting level // level.testingMap(); // level.bosses(); + // level.skyscrapers(); // level.aerie(); // level.rooftops(); // level.warehouse(); @@ -394,7 +395,7 @@ const level = { level.enter.y = mech.spawnPos.y + 20; level.addZone(level.exit.x, level.exit.y, 100, 30, "nextLevel"); - spawn.debris(1650, -1800, 3800, 20); //20 debris per level + spawn.debris(1650, -1800, 3800, 16); //16 debris per level powerUps.spawnStartingPowerUps(2450, -1675); //foreground @@ -544,7 +545,7 @@ const level = { level.defaultZoom = 2100 game.zoomTransition(level.defaultZoom) - const backwards = (Math.random() < 0.75) ? false : true; + const backwards = (Math.random() < 0.25 && game.difficulty > 8) ? true : false; if (backwards) { mech.setPosToSpawn(4000, -3300); //normal spawn level.exit.x = -100; @@ -561,10 +562,10 @@ const level = { level.enter.y = mech.spawnPos.y + 20; level.addZone(level.exit.x, level.exit.y, 100, 30, "nextLevel"); powerUps.spawnStartingPowerUps(1075, -550); - spawn.debris(-250, 50, 1650, 2); //20 debris per level - spawn.debris(2475, 0, 750, 2); //20 debris per level - spawn.debris(3450, 0, 2000, 20); //20 debris per level - spawn.debris(3500, -2350, 1500, 2); //20 debris per level + spawn.debris(-250, 50, 1650, 2); //16 debris per level + spawn.debris(2475, 0, 750, 2); //16 debris per level + spawn.debris(3450, 0, 2000, 16); //16 debris per level + spawn.debris(3500, -2350, 1500, 2); //16 debris per level document.body.style.backgroundColor = "#dcdcde"; //foreground @@ -730,7 +731,7 @@ const level = { level.addZone(level.exit.x, level.exit.y, 100, 30, "nextLevel"); powerUps.spawnStartingPowerUps(1475, -1175); - spawn.debris(0, -2200, 4500, 20); //20 debris per level + spawn.debris(750, -2200, 3700, 16); //16 debris per level document.body.style.backgroundColor = "#dcdcde"; //foreground @@ -885,10 +886,10 @@ const level = { // spawn.laserZone(-550, -350, 10, 400, 0.3) // spawn.deathQuery(-550, -350, 50, 400) - // spawn.debris(-3950, -2575, 1050, 4); //20 debris per level - spawn.debris(-2325, -1825, 2400); //20 debris per level - spawn.debris(-2625, -600, 600, 6); //20 debris per level - spawn.debris(-2000, -60, 1200, 6); //20 debris per level + // spawn.debris(-3950, -2575, 1050, 4); //16 debris per level + spawn.debris(-2325, -1825, 2400); //16 debris per level + spawn.debris(-2625, -600, 600, 5); //16 debris per level + spawn.debris(-2000, -60, 1200, 5); //16 debris per level // if (!game.difficulty) powerUps.spawn(2450, -1675, "gun", false); //background level.fillBG.push({ @@ -1059,9 +1060,9 @@ const level = { level.addZone(level.exit.x, level.exit.y, 100, 30, "nextLevel"); //level.addQueryRegion(-600, -250, 180, 420, "death", [[player]],{}); - spawn.debris(-2250, 1330, 3000, 7); //20 debris per level - spawn.debris(-3000, -800, 3280, 7); //20 debris per level - spawn.debris(-1400, 410, 2300, 6); //20 debris per level + spawn.debris(-2250, 1330, 3000, 6); //16 debris per level + spawn.debris(-3000, -800, 3280, 6); //16 debris per level + spawn.debris(-1400, 410, 2300, 5); //16 debris per level powerUps.spawnStartingPowerUps(25, 500); //foreground @@ -1284,10 +1285,10 @@ const level = { //mech.setPosToSpawn(600, -1200); //normal spawn //mech.setPosToSpawn(525, -150); //ground first building //mech.setPosToSpawn(3150, -700); //near exit spawn - spawn.debris(-300, -200, 1000, 5); //ground debris //20 debris per level - spawn.debris(3500, -200, 800, 5); //ground debris //20 debris per level - spawn.debris(-300, -650, 1200, 5); //1st floor debris //20 debris per level - spawn.debris(3500, -650, 800, 5); //1st floor debris //20 debris per level + spawn.debris(-300, -200, 1000, 4); //ground debris //16 debris per level + spawn.debris(3500, -200, 800, 4); //ground debris //16 debris per level + spawn.debris(-300, -650, 1200, 4); //1st floor debris //16 debris per level + spawn.debris(3500, -650, 800, 5); //1st floor debris //16 debris per level powerUps.spawnStartingPowerUps(-525, -700); spawn.mapRect(-600, 25, 5600, 300); //ground diff --git a/js/mobs.js b/js/mobs.js index f09fcb4..e9677c3 100644 --- a/js/mobs.js +++ b/js/mobs.js @@ -1020,7 +1020,7 @@ const mobs = { body[len].collisionFilter.mask = cat.player | cat.map | cat.body | cat.bullet | cat.mob | cat.mobBullet; //large mobs or too many bodies go intangible and fall until removed from game to help performance - if (body[len].mass > 10 || 40 + 30 * Math.random() < body.length) { + if (body[len].mass > 10 || 45 + 10 * Math.random() < body.length) { body[len].collisionFilter.mask = cat.player | cat.bullet | cat.mob | cat.mobBullet; } body[len].classType = "body"; diff --git a/js/powerups.js b/js/powerups.js index 4972d39..158b747 100644 --- a/js/powerups.js +++ b/js/powerups.js @@ -270,7 +270,9 @@ const powerUps = { } }, spawnStartingPowerUps(x, y) { //used for map specific power ups, mostly to give player a starting gun - if (b.inventory.length < 2) { + if (b.modCount < 1) { + powerUps.spawn(x, y, "mod", false); //starting gun + } else if (b.inventory.length < 2) { powerUps.spawn(x, y, "gun", false); //starting gun } else { powerUps.spawnRandomPowerUp(x, y); diff --git a/js/spawn.js b/js/spawn.js index 1025812..2e5b698 100644 --- a/js/spawn.js +++ b/js/spawn.js @@ -1581,7 +1581,7 @@ const spawn = { color: "#f0f0f3" }); }, - debris(x, y, width, number = Math.floor(3 + Math.random() * 11)) { + debris(x, y, width, number = Math.floor(2 + Math.random() * 9)) { for (let i = 0; i < number; ++i) { if (Math.random() < 0.15) { powerUps.chooseRandomPowerUp(x + Math.random() * width, y);