mod bot upgrades

This commit is contained in:
landgreen
2020-07-22 08:50:40 -07:00
parent 0b3d9a946c
commit e30f63ad94
10 changed files with 510 additions and 452 deletions

View File

@@ -16,12 +16,13 @@ const level = {
// game.zoomScale = 1000;
// game.setZoom();
// mech.isStealth = true;
// mod.giveMod("nail-bot");
// mod.giveMod("bot upgrades");
// mod.nailBotCount += 10
// b.giveGuns("ice IX")
// mech.setField("plasma torch")
level.intro(); //starting level
// level.testing();
level.intro(); //starting level
// level.testChamber()
// level.sewers();
// level.satellite();
@@ -39,17 +40,12 @@ const level = {
// spawn.pickList = ["focuser", "focuser"]
level[level.levels[level.onLevel]](); //picks the current map from the the levels array
}
level.levelAnnounce();
game.noCameraScroll();
game.setZoom();
level.addToWorld(); //add bodies to game engine
game.draw.setPaths();
for (let i = 0; i < mod.laserBotCount; i++) b.laserBot()
for (let i = 0; i < mod.nailBotCount; i++) b.nailBot()
for (let i = 0; i < mod.foamBotCount; i++) b.foamBot()
for (let i = 0; i < mod.boomBotCount; i++) b.boomBot()
for (let i = 0; i < mod.plasmaBotCount; i++) b.plasmaBot()
b.respawnBots();
if (mod.isArmorFromPowerUps) {
mech.maxHealth += 0.05 * powerUps.totalPowerUps
if (powerUps.totalPowerUps) game.makeTextLog("<span style='font-size:115%;'> max health increased by " + (0.05 * powerUps.totalPowerUps * 100).toFixed(0) + "%</span>", 300)
@@ -121,6 +117,19 @@ const level = {
}
}
}
//remove block if touching
touching = Matter.Query.collides(this, body)
if (touching.length !== 0) {
if (body.length) {
for (let i = 0; i < body.length; i++) {
if (body[i] === touching[0].bodyB) {
body.splice(i, 1);
break;
}
}
}
Matter.World.remove(engine.world, touching[0].bodyB);
}
}
const portalA = composite[composite.length] = Bodies.rectangle(centerA.x, centerA.y, width, height, {
@@ -172,6 +181,30 @@ const level = {
return [portalA, portalB, mapA, mapB]
},
testChamber() {
level.setPosToSpawn(0, -50); //lower start
level.exit.y = level.enter.y - 550;
spawn.mapRect(level.enter.x, level.enter.y + 20, 100, 20);
level.exit.x = level.enter.x;
spawn.mapRect(level.exit.x, level.exit.y + 20, 100, 20);
level.defaultZoom = 2000
game.zoomTransition(level.defaultZoom)
document.body.style.backgroundColor = "#444";
level.fillBG.push({ //full map white
x: -375,
y: -3700,
width: 2975,
height: 3800,
color: "#ddd"
});
level.fillBG.push({ //exit room
x: -300,
y: -1000,
width: 650,
height: 500,
color: "#d4f4f4"
});
const portal = level.portal({
x: 2500,
y: -75
@@ -188,19 +221,6 @@ const level = {
y: -2150
}, -Math.PI / 2) //up
const hazard = level.hazard(175, -2050, 1050, 10, 0.15, "hsl(0, 100%, 50%)") //laser
const hazard2 = level.hazard(1775, -2550, 150, 10, 0.15, "hsl(0, 100%, 50%)") //laser
const button = level.button(2100, -2600)
level.setPosToSpawn(0, -50); //lower start
level.exit.y = level.enter.y - 550;
level.fillBG.push({
x: -300,
y: -1000,
width: 650,
height: 500,
color: "#d4f4f4"
});
const portal3 = level.portal({
x: 1850,
y: -550
@@ -208,6 +228,9 @@ const level = {
x: 2425,
y: -600
}, -2 * Math.PI / 3) //up left
const hazard = level.hazard(175, -2050, 1050, 10, 0.15, "hsl(0, 100%, 50%)") //laser
const hazard2 = level.hazard(1775, -2550, 150, 10, 0.15, "hsl(0, 100%, 50%)") //laser
const button = level.button(2100, -2600)
level.custom = () => {
level.playerExitCheck();
@@ -245,13 +268,6 @@ const level = {
portal3[2].draw();
portal3[3].draw();
};
spawn.mapRect(level.enter.x, level.enter.y + 20, 100, 20);
level.exit.x = level.enter.x;
spawn.mapRect(level.exit.x, level.exit.y + 20, 100, 20);
level.defaultZoom = 2000
game.zoomTransition(level.defaultZoom)
document.body.style.backgroundColor = "#dcdcde";
powerUps.spawnStartingPowerUps(1975, -3075);
const powerUpPos = shuffle([{ //no debris on this level but 2 random spawn instead
@@ -278,22 +294,24 @@ const level = {
spawn.mapRect(-400, 0, 3100, 200); //floor
//lower entrance /exit
spawn.mapRect(300, -550, 50, 350); //right entrance wall
spawn.mapRect(-400, -550, 1825, 50); //ceiling
spawn.bodyRect(312, -750, 25, 200);
spawn.mapRect(1075, -100, 575, 200);
spawn.bodyRect(1775, -75, 75, 75);
// spawn.mapRect(300, -550, 50, 350); //right entrance wall
// spawn.mapRect(-400, -550, 1825, 50); //ceiling
// spawn.mapRect(1075, -100, 575, 200);
// spawn.bodyRect(312, -200, 25, 200);
// spawn.bodyRect(1775, -75, 100, 100);
spawn.mapRect(1075, -375, 50, 225);
spawn.bodyRect(1087, -150, 25, 150);
//upper entrance / exit
spawn.mapRect(-400, -1050, 750, 50);
spawn.mapRect(300, -1050, 50, 300);
spawn.bodyRect(312, -200, 25, 200);
spawn.bodyRect(312, -750, 25, 200);
// spawn.mapRect(1400, -1025, 50, 300);
// spawn.mapRect(1400, -1025, 50, 825);
spawn.mapRect(600, -600, 275, 75);
spawn.bodyRect(675, -725, 125, 125);
spawn.mapRect(1075, -1050, 550, 400);
spawn.mapRect(300, -550, 1475, 250);
spawn.mapRect(-400, -550, 2175, 250);
spawn.mapRect(-200, -1700, 150, 25); //platform above exit room
spawn.mapRect(-200, -1325, 350, 25);
@@ -332,30 +350,37 @@ const level = {
spawn.mapRect(0, -1975, 175, 50);
spawn.mapRect(1225, -1975, 175, 50);
spawn.mapRect(150, -2150, 50, 225);
spawn.mapRect(1200, -2150, 50, 225);
spawn.mapRect(150, -2150, 25, 225);
spawn.mapRect(1225, -2150, 25, 225);
spawn.randomMob(1075, -3500, 0.2);
spawn.randomMob(-75, -3425, 0.2);
spawn.randomMob(1475, -225, 0.3);
spawn.randomMob(2075, -150, 0.5);
spawn.randomMob(2175, -700, 0.5);
if (game.difficulty > 40) {
spawn.randomMob(2300, -2775, 0.4);
spawn.randomMob(600, -925, 0.1);
spawn.randomMob(1550, -2750, 0.3);
spawn.randomMob(1350, -1150, 0.4);
spawn.randomMob(-75, -1475, 0.6);
//mobs
spawn.randomMob(1075, -3500, 0);
// spawn.randomMob(-75, -3425, 0.2);
spawn.randomMob(1475, -225, 0);
spawn.randomMob(2075, -150, 0);
spawn.randomMob(2175, -700, 0);
spawn.randomMob(-75, -850, 0.1);
spawn.randomMob(1300, -600, 0.1);
spawn.randomMob(550, -3400, 0.1);
if (game.difficulty > 50) {
spawn.randomMob(2300, -2775, -0.5);
spawn.randomMob(600, -925, -0.5);
spawn.randomMob(1550, -2750, -0.5);
spawn.randomMob(1350, -1150, -0.5);
spawn.randomMob(-75, -1475, 0);
spawn.randomBoss(600, -2600, 0);
}
if (game.difficulty > 24) spawn.randomBoss(600, -2600, 0.4);
if (game.difficulty > 12) {
spawn.randomLevelBoss(700, -1550, ["shooterBoss", "bomberBoss", "spiderBoss", "launcherBoss", "laserTargetingBoss"]);
} else {
// spawn.randomMob(700, -1650, 1);
spawn.randomMob(600, -3500, 1);
spawn.randomMob(-75, -1175, 1);
if (game.difficulty < 30) {
spawn.randomMob(700, -1650, 0);
spawn.randomMob(600, -3500, 0.2);
spawn.randomMob(-75, -1175, 0.2);
powerUps.spawnBossPowerUp(-125, -1760);
} else {
if (Math.random() < 0.5) {
spawn.randomLevelBoss(700, -1550, ["shooterBoss", "launcherBoss", "laserTargetingBoss"]);
} else {
spawn.randomLevelBoss(675, -2775, ["shooterBoss", "launcherBoss", "laserTargetingBoss"]);
}
}
powerUps.addRerollToLevel() //needs to run after mobs are spawned
},
@@ -2304,26 +2329,26 @@ const level = {
// if (level.isBuildRun) num++
for (let i = 0; i < num; i++) {
game.difficulty++
game.dmgScale += 0.21; //damage done by mobs increases each level
b.dmgScale *= 0.91; //damage done by player decreases each level
game.dmgScale += 0.25; //damage done by mobs increases each level
b.dmgScale *= 0.92; //damage done by player decreases each level
game.accelScale *= 1.027 //mob acceleration increases each level
game.lookFreqScale *= 0.974 //mob cycles between looks decreases each level
game.CDScale *= 0.964 //mob CD time decreases each level
game.lookFreqScale *= 0.975 //mob cycles between looks decreases each level
game.CDScale *= 0.966 //mob CD time decreases each level
}
game.healScale = 1 / (1 + game.difficulty * 0.09) //a higher denominator makes for lower heals // mech.health += heal * game.healScale;
game.healScale = 1 / (1 + game.difficulty * 0.08) //a higher denominator makes for lower heals // mech.health += heal * game.healScale;
},
difficultyDecrease(num = 1) { //used in easy mode for game.reset()
for (let i = 0; i < num; i++) {
game.difficulty--
game.dmgScale -= 0.21; //damage done by mobs increases each level
game.dmgScale -= 0.25; //damage done by mobs increases each level
if (game.dmgScale < 0.1) game.dmgScale = 0.1;
b.dmgScale /= 0.91; //damage done by player decreases each level
b.dmgScale /= 0.92; //damage done by player decreases each level
game.accelScale /= 1.027 //mob acceleration increases each level
game.lookFreqScale /= 0.974 //mob cycles between looks decreases each level
game.CDScale /= 0.964 //mob CD time decreases each level
game.lookFreqScale /= 0.975 //mob cycles between looks decreases each level
game.CDScale /= 0.966 //mob CD time decreases each level
}
if (game.difficulty < 1) game.difficulty = 0;
game.healScale = 1 / (1 + game.difficulty * 0.09)
game.healScale = 1 / (1 + game.difficulty * 0.08)
},
difficultyText(mode = document.getElementById("difficulty-select").value) {
if (mode === "0") {