From cd4d75acdcffd0d0a3a8d18fa56ed511c35ed48b Mon Sep 17 00:00:00 2001 From: landgreen Date: Mon, 6 Jan 2020 04:49:00 -0800 Subject: [PATCH] bug fixes and balance --- js/bullets.js | 19 +++++++++---------- js/level.js | 42 ++++++++++++++++++++---------------------- js/powerups.js | 6 +++--- 3 files changed, 32 insertions(+), 35 deletions(-) diff --git a/js/bullets.js b/js/bullets.js index 571a6fb..34a82d9 100644 --- a/js/bullets.js +++ b/js/bullets.js @@ -363,7 +363,7 @@ const b = { } } }, - bulletActions() { + bulletActions() { //run in main loop //remove bullet if at end cycle for that bullet let i = bullet.length; while (i--) { @@ -961,7 +961,7 @@ const b = { name: "shotgun", //1 description: "fire a burst of short range bullets
crouch to reduce recoil", ammo: 0, - ammoPack: 5, + ammoPack: 6, have: false, isStarterGun: true, fire() { @@ -997,7 +997,7 @@ const b = { name: "super balls", //2 description: "fire five balls in a wide arc
balls bounce with no momentum loss", ammo: 0, - ammoPack: 4, + ammoPack: 5, have: false, isStarterGun: true, fire() { @@ -1069,7 +1069,7 @@ const b = { name: "wave beam", //4 description: "emit a sine wave of oscillating particles
particles propagate through walls", ammo: 0, - ammoPack: 30, + ammoPack: 32, have: false, isStarterGun: true, fire() { @@ -1084,7 +1084,7 @@ const b = { inertia: Infinity, frictionAir: 0, minDmgSpeed: 0, - dmg: 0.2, //damage done in addition to the damage from momentum + dmg: 0.3, //damage done in addition to the damage from momentum classType: "bullet", collisionFilter: { category: cat.bullet, @@ -1420,7 +1420,7 @@ const b = { name: "flak", //7 description: "fire a cluster of short range projectiles
explodes on contact or after half a second", ammo: 0, - ammoPack: 5, + ammoPack: 6, have: false, isStarterGun: true, fire() { @@ -1473,10 +1473,9 @@ const b = { bullet[me].totalCycles = 100; bullet[me].endCycle = game.cycle + Math.floor(mech.crouch ? 120 : 80); bullet[me].restitution = 0.5; - bullet[me].explodeRad = 290; + bullet[me].explodeRad = 310; bullet[me].onEnd = b.explode; //makes bullet do explosive damage before despawn bullet[me].minDmgSpeed = 1; - Matter.Body.setDensity(bullet[me], 0.0002); bullet[me].onDmg = function () { this.endCycle = 0; //bullet ends cycle after doing damage //this also triggers explosion }; @@ -1598,7 +1597,7 @@ const b = { name: "ferro frag", //10 description: "fire a grenade that ejects nails
nails are magnetically attracted to enemies", ammo: 0, - ammoPack: 3, + ammoPack: 4, have: false, isStarterGun: false, fire() { @@ -1713,7 +1712,7 @@ const b = { name: "drones", //12 description: "deploy drones that crash into enemies
collisions reduce drone cycles by 1 second", ammo: 0, - ammoPack: 5, + ammoPack: 8, have: false, isStarterGun: true, fire() { diff --git a/js/level.js b/js/level.js index 9a649af..52a3b13 100644 --- a/js/level.js +++ b/js/level.js @@ -849,7 +849,6 @@ const level = { spawn.bodyRect(1425, -1110, 115, 25, 0.9); //block on far left building spawn.bodyRect(1540, -1110, 300, 25, 0.9); //block on far left building - if (game.difficulty > 2) spawn.shooterBoss(2200, -1300); spawn.randomSmallMob(1300, -70); spawn.randomSmallMob(3200, -100); spawn.randomSmallMob(4450, -100); @@ -867,6 +866,7 @@ const level = { spawn.randomMob(-100, -900, -0.2); spawn.randomBoss(3700, -1500, 0.4); spawn.randomBoss(1700, -900, 0.4); + if (game.difficulty > 3) spawn.shooterBoss(2200, -1300); }, highrise() { level.defaultZoom = 1500 @@ -1009,8 +1009,6 @@ const level = { spawn.bodyRect(-3570, -1800, 50, 50); spawn.bodyRect(-2970, -2250, 50, 50); - if (game.difficulty < 4) spawn.bodyRect(-3760, -2400, 50, 50); - spawn.bodyRect(-3080, -2250, 40, 40); spawn.bodyRect(-3420, -650, 50, 50); @@ -1045,6 +1043,7 @@ const level = { spawn.randomMob(-550, -100, -0.1); spawn.randomBoss(-3250, -2700, 0.2); spawn.randomBoss(-2450, -1100, 0); + if (game.difficulty < 4) spawn.bodyRect(-3760, -2400, 50, 50); }, warehouse() { level.defaultZoom = 1300 @@ -1344,8 +1343,24 @@ const level = { spawn.mapRect(3000, -2000 * 0.25, 2000 - 300, 50); //1st floor spawn.spawnStairs(3000 + 2000 - 50, 0, 4, 250, 350, true); //stairs ground - // tether ball - if (game.difficulty > 2) { + spawn.randomSmallMob(4575, -560, 1); + spawn.randomSmallMob(1315, -880, 1); + spawn.randomSmallMob(800, -600); + spawn.randomSmallMob(-100, -1600); + spawn.randomMob(4100, -225, 0.8); + spawn.randomMob(-250, -700, 0.8); + spawn.randomMob(4500, -225, 0.15); + spawn.randomMob(3250, -225, 0.15); + spawn.randomMob(-100, -225, 0.1); + spawn.randomMob(1150, -225, 0.15); + spawn.randomMob(2000, -225, 0.15); + spawn.randomMob(450, -225, 0.15); + spawn.randomMob(100, -1200, 1); + spawn.randomMob(950, -1150, -0.1); + spawn.randomBoss(1800, -800, -0.2); + spawn.randomBoss(4150, -1000, 0.6); + + if (game.difficulty > 2) { // tether ball level.fillBG.push({ x: 2495, y: -500, @@ -1365,23 +1380,6 @@ const level = { //chance to spawn a ring of exploding mobs around this boss if (game.difficulty > 4) spawn.nodeBoss(2850, -80, "spawns", 8, 20, 105); } - - spawn.randomSmallMob(4575, -560, 1); - spawn.randomSmallMob(1315, -880, 1); - spawn.randomSmallMob(800, -600); - spawn.randomSmallMob(-100, -1600); - spawn.randomMob(4100, -225, 0.8); - spawn.randomMob(-250, -700, 0.8); - spawn.randomMob(4500, -225, 0.15); - spawn.randomMob(3250, -225, 0.15); - spawn.randomMob(-100, -225, 0.1); - spawn.randomMob(1150, -225, 0.15); - spawn.randomMob(2000, -225, 0.15); - spawn.randomMob(450, -225, 0.15); - spawn.randomMob(100, -1200, 1); - spawn.randomMob(950, -1150, -0.1); - spawn.randomBoss(1800, -800, -0.2); - spawn.randomBoss(4150, -1000, 0.6); }, //***************************************************************************************************************** //***************************************************************************************************************** diff --git a/js/powerups.js b/js/powerups.js index c912fd7..4972d39 100644 --- a/js/powerups.js +++ b/js/powerups.js @@ -79,7 +79,7 @@ const powerUps = { mech.fieldMeter = mech.fieldEnergyMax; if (!game.lastLogTime) game.makeTextLog("+energy", 300); } else { - let ammo = Math.ceil((target.ammoPack * (1 + 0.05 * Math.random()))); + let ammo = Math.ceil((target.ammoPack * (1 + 0.1 * Math.random()))); if (level.isBuildRun) ammo = Math.floor(ammo * 1.1) //extra ammo on build run because no ammo from getting a new gun target.ammo += ammo; game.updateGunHUD(); @@ -207,7 +207,7 @@ const powerUps = { game.makeTextLog("+" + ammo + " ammo for " + b.guns[ammoTarget].name + "", 300); }, spawnRandomPowerUp(x, y) { //mostly used after mob dies - if (Math.random() * Math.random() - 0.25 > Math.sqrt(mech.health) || Math.random() < 0.04) { //spawn heal chance is higher at low health + if (Math.random() * Math.random() - 0.3 > Math.sqrt(mech.health) || Math.random() < 0.035) { //spawn heal chance is higher at low health powerUps.spawn(x, y, "heal"); if (Math.random() < b.isModBayesian) powerUps.spawn(x, y, "heal"); return; @@ -222,7 +222,7 @@ const powerUps = { if (Math.random() < b.isModBayesian) powerUps.spawn(x, y, "gun"); return; } - if (Math.random() < 0.0031 * (10 - b.modCount)) { //a new mod has a low chance for each not acquired mod up to 7 + if (Math.random() < 0.0032 * (10 - b.modCount)) { //a new mod has a low chance for each not acquired mod up to 7 powerUps.spawn(x, y, "mod"); if (Math.random() < b.isModBayesian) powerUps.spawn(x, y, "mod"); return;