highrise
some changes to highrise level boost bug fix MACHO bug fix
This commit is contained in:
@@ -2544,6 +2544,7 @@ const b = {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
for (let i = 0; i < q.length; i++) {
|
for (let i = 0; i < q.length; i++) {
|
||||||
|
if (!q[i].isShielded) {
|
||||||
Matter.Body.setAngularVelocity(this, this.spin)
|
Matter.Body.setAngularVelocity(this, this.spin)
|
||||||
// mobs.statusStun(q[i], 180)
|
// mobs.statusStun(q[i], 180)
|
||||||
// const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 2.5 : 1)
|
// const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 2.5 : 1)
|
||||||
@@ -2559,6 +2560,7 @@ const b = {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
let history = m.history[(m.cycle - this.followDelay) % 600]
|
let history = m.history[(m.cycle - this.followDelay) % 600]
|
||||||
Matter.Body.setPosition(this, { x: history.position.x, y: history.position.y - history.yOff + 24.2859 }) //bullets move with player
|
Matter.Body.setPosition(this, { x: history.position.x, y: history.position.y - history.yOff + 24.2859 }) //bullets move with player
|
||||||
}
|
}
|
||||||
@@ -3142,6 +3144,7 @@ const b = {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
for (let i = 0; i < q.length; i++) {
|
for (let i = 0; i < q.length; i++) {
|
||||||
|
if (!q[i].isShielded) {
|
||||||
mobs.statusStun(q[i], 180)
|
mobs.statusStun(q[i], 180)
|
||||||
const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 3 : 1) * (tech.isCrit ? 4 : 1)
|
const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 3 : 1) * (tech.isCrit ? 4 : 1)
|
||||||
q[i].damage(dmg);
|
q[i].damage(dmg);
|
||||||
@@ -3155,6 +3158,7 @@ const b = {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//orbit player
|
//orbit player
|
||||||
const time = simulation.cycle * this.orbitalSpeed + this.phase
|
const time = simulation.cycle * this.orbitalSpeed + this.phase
|
||||||
const orbit = {
|
const orbit = {
|
||||||
|
|||||||
125
js/level.js
125
js/level.js
@@ -53,29 +53,12 @@ const level = {
|
|||||||
// level.crossfire() //community level
|
// level.crossfire() //community level
|
||||||
// level.vats() //community level
|
// level.vats() //community level
|
||||||
// level["n-gon"]() //community level
|
// level["n-gon"]() //community level
|
||||||
|
|
||||||
// powerUps.directSpawn(simulation.mouseInGame.x, simulation.mouseInGame.y, "tech");
|
|
||||||
// tech.giveTech("undefined")
|
// tech.giveTech("undefined")
|
||||||
// lore.techCount = 6
|
// lore.techCount = 6
|
||||||
// localSettings.loreCount = 1;
|
// localSettings.loreCount = 1;
|
||||||
// localStorage.setItem("localSettings", JSON.stringify(localSettings)); //update local storage
|
// localStorage.setItem("localSettings", JSON.stringify(localSettings)); //update local storage
|
||||||
// simulation.isCheating = false //true;
|
// simulation.isCheating = false //true;
|
||||||
// level.null()
|
// level.null()
|
||||||
// let text = ''
|
|
||||||
// if (level.fillBG) {
|
|
||||||
// for (let i = 0; i < level.fillBG.length; i++) {
|
|
||||||
// text += `ctx.fillStyle = "${level.fillBG[i].color}"; ctx.fillRect(${level.fillBG[i].x}, ${level.fillBG[i].y}, ${level.fillBG[i].width}, ${level.fillBG[i].height});`
|
|
||||||
// }
|
|
||||||
// console.log(text)
|
|
||||||
// }
|
|
||||||
// text = ''
|
|
||||||
// if (level.fill) {
|
|
||||||
// for (let i = 0; i < level.fill.length; i++) {
|
|
||||||
// text += `ctx.fillStyle = "${level.fill[i].color}"; ctx.fillRect(${level.fill[i].x}, ${level.fill[i].y}, ${level.fill[i].width}, ${level.fill[i].height});`
|
|
||||||
// }
|
|
||||||
// console.log(text)
|
|
||||||
// }
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
spawn.setSpawnList(); //picks a couple mobs types for a themed random mob spawns
|
spawn.setSpawnList(); //picks a couple mobs types for a themed random mob spawns
|
||||||
// spawn.pickList = ["focuser", "focuser"]
|
// spawn.pickList = ["focuser", "focuser"]
|
||||||
@@ -329,7 +312,7 @@ const level = {
|
|||||||
},
|
},
|
||||||
max: {
|
max: {
|
||||||
x: x + 100,
|
x: x + 100,
|
||||||
y: y - 20 + height
|
y: y
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
yVelocity: -1.21 * Math.sqrt(Math.abs(height)),
|
yVelocity: -1.21 * Math.sqrt(Math.abs(height)),
|
||||||
@@ -672,6 +655,9 @@ const level = {
|
|||||||
Matter.Body.setStatic(doorBlock, true); //make static
|
Matter.Body.setStatic(doorBlock, true); //make static
|
||||||
return doorBlock
|
return doorBlock
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
portal(centerA, angleA, centerB, angleB) {
|
portal(centerA, angleA, centerB, angleB) {
|
||||||
const width = 50
|
const width = 50
|
||||||
const height = 150
|
const height = 150
|
||||||
@@ -1223,7 +1209,7 @@ const level = {
|
|||||||
// spawn.randomMob(2650, -975, 0.8);
|
// spawn.randomMob(2650, -975, 0.8);
|
||||||
// spawn.randomGroup(1700, -900, 0.4);
|
// spawn.randomGroup(1700, -900, 0.4);
|
||||||
// if (simulation.difficulty > 3) spawn.randomLevelBoss(2200, -1300);
|
// if (simulation.difficulty > 3) spawn.randomLevelBoss(2200, -1300);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
// if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(4800, -500);
|
// if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(4800, -500);
|
||||||
},
|
},
|
||||||
final() {
|
final() {
|
||||||
@@ -1343,7 +1329,7 @@ const level = {
|
|||||||
if (simulation.difficulty * Math.random() > 10 * i) spawn.randomGroup(3500 + 500 * (Math.random() - 0.5), -800 + 200 * (Math.random() - 0.5), Infinity);
|
if (simulation.difficulty * Math.random() > 10 * i) spawn.randomGroup(3500 + 500 * (Math.random() - 0.5), -800 + 200 * (Math.random() - 0.5), Infinity);
|
||||||
if (simulation.difficulty * Math.random() > 7 * i) spawn.randomGroup(5000 + 500 * (Math.random() - 0.5), -800 + 200 * (Math.random() - 0.5), Infinity);
|
if (simulation.difficulty * Math.random() > 7 * i) spawn.randomGroup(5000 + 500 * (Math.random() - 0.5), -800 + 200 * (Math.random() - 0.5), Infinity);
|
||||||
}
|
}
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(4125, -350);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(4125, -350);
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
@@ -1758,7 +1744,7 @@ const level = {
|
|||||||
spawn.randomLevelBoss(675, -2775, ["shooterBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "shieldingBoss", "pulsarBoss"]);
|
spawn.randomLevelBoss(675, -2775, ["shooterBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "shieldingBoss", "pulsarBoss"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(1925, -1250);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(1925, -1250);
|
||||||
|
|
||||||
|
|
||||||
@@ -1963,7 +1949,7 @@ const level = {
|
|||||||
spawn.randomMob(4100, 1225, 0.9);
|
spawn.randomMob(4100, 1225, 0.9);
|
||||||
spawn.randomMob(2825, 400, 0.9);
|
spawn.randomMob(2825, 400, 0.9);
|
||||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(6000, 2300, ["spiderBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "historyBoss", "orbitalBoss", "shieldingBoss"]);
|
if (simulation.difficulty > 3) spawn.randomLevelBoss(6000, 2300, ["spiderBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "historyBoss", "orbitalBoss", "shieldingBoss"]);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(7725, 2275);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(7725, 2275);
|
||||||
|
|
||||||
|
|
||||||
@@ -2013,7 +1999,7 @@ const level = {
|
|||||||
},
|
},
|
||||||
satellite() {
|
satellite() {
|
||||||
const boost1 = level.boost(5825, 235, 1400)
|
const boost1 = level.boost(5825, 235, 1400)
|
||||||
const elevator = level.elevator(4210, -1285, 380, 70, -3450) //, 0.003, { up: 0.01, down: 0.2 }
|
const elevator = level.elevator(4210, -1265, 380, 50, -3450) //, 0.003, { up: 0.01, down: 0.2 }
|
||||||
level.custom = () => {
|
level.custom = () => {
|
||||||
boost1.query();
|
boost1.query();
|
||||||
|
|
||||||
@@ -2048,7 +2034,7 @@ const level = {
|
|||||||
level.defaultZoom = 1700 // 4500 // 1400
|
level.defaultZoom = 1700 // 4500 // 1400
|
||||||
simulation.zoomTransition(level.defaultZoom)
|
simulation.zoomTransition(level.defaultZoom)
|
||||||
|
|
||||||
powerUps.spawnStartingPowerUps(4900, -500);
|
powerUps.spawnStartingPowerUps(4900, -500); //1 per level
|
||||||
spawn.debris(1000, 20, 1800, 3); //16 debris per level //but less here because a few mobs die from laser
|
spawn.debris(1000, 20, 1800, 3); //16 debris per level //but less here because a few mobs die from laser
|
||||||
spawn.debris(4830, -1330, 850, 3); //16 debris per level
|
spawn.debris(4830, -1330, 850, 3); //16 debris per level
|
||||||
spawn.debris(3035, -3900, 1500, 3); //16 debris per level
|
spawn.debris(3035, -3900, 1500, 3); //16 debris per level
|
||||||
@@ -2105,8 +2091,9 @@ const level = {
|
|||||||
spawn.mapRect(5300, -1075, 350, 1220);
|
spawn.mapRect(5300, -1075, 350, 1220);
|
||||||
|
|
||||||
//structure bellow tall stairs
|
//structure bellow tall stairs
|
||||||
spawn.mapRect(3925, -300, 425, 50);
|
spawn.mapRect(3900, -300, 450, 50);
|
||||||
spawn.mapRect(4700, -375, 425, 50);
|
spawn.mapRect(4675, -375, 450, 50);
|
||||||
|
|
||||||
// spawn.mapRect(4000, -1300, 1050, 100);
|
// spawn.mapRect(4000, -1300, 1050, 100);
|
||||||
spawn.mapRect(4000, -1300, 200, 100);
|
spawn.mapRect(4000, -1300, 200, 100);
|
||||||
spawn.mapRect(4600, -1300, 450, 100);
|
spawn.mapRect(4600, -1300, 450, 100);
|
||||||
@@ -2151,7 +2138,7 @@ const level = {
|
|||||||
spawn.laserBoss(600 + 200 * Math.random(), -2150 + 250 * Math.random());
|
spawn.laserBoss(600 + 200 * Math.random(), -2150 + 250 * Math.random());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(3950, -850);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(3950, -850);
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
@@ -2322,7 +2309,7 @@ const level = {
|
|||||||
spawn.randomGroup(2225, -1325, 0.4);
|
spawn.randomGroup(2225, -1325, 0.4);
|
||||||
spawn.randomGroup(4900, -1200, 0);
|
spawn.randomGroup(4900, -1200, 0);
|
||||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(3200, -1900);
|
if (simulation.difficulty > 3) spawn.randomLevelBoss(3200, -1900);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(2175, -2425);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(2175, -2425);
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
@@ -2539,7 +2526,7 @@ const level = {
|
|||||||
spawn.suckerBoss(4500, -400);
|
spawn.suckerBoss(4500, -400);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(5350, -325);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(5350, -325);
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
@@ -2707,7 +2694,7 @@ const level = {
|
|||||||
spawn.randomGroup(3700, -1500, 0.4);
|
spawn.randomGroup(3700, -1500, 0.4);
|
||||||
spawn.randomGroup(1700, -900, 0.4);
|
spawn.randomGroup(1700, -900, 0.4);
|
||||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(2600, -2300);
|
if (simulation.difficulty > 3) spawn.randomLevelBoss(2600, -2300);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(3075, -2050);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(3075, -2050);
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
@@ -2749,15 +2736,15 @@ const level = {
|
|||||||
const elevator1 = level.elevator(-790, -190, 180, 25, -1150) //, 0.007
|
const elevator1 = level.elevator(-790, -190, 180, 25, -1150) //, 0.007
|
||||||
elevator1.addConstraint();
|
elevator1.addConstraint();
|
||||||
const button1 = level.button(-500, -200)
|
const button1 = level.button(-500, -200)
|
||||||
const elevator2 = level.elevator(-3630, -1315, 180, 25, -2190) //, 0.007
|
const elevator2 = level.elevator(-3630, -1000, 180, 25, -1740) //, 0.007
|
||||||
elevator2.addConstraint();
|
elevator2.addConstraint();
|
||||||
const button2 = level.button(-3100, -1330)
|
const button2 = level.button(-3100, -1330)
|
||||||
|
|
||||||
level.custom = () => {
|
level.custom = () => {
|
||||||
ctx.fillStyle = "#d0d0d2"
|
// ctx.fillStyle = "#d0d0d2"
|
||||||
ctx.fillRect(-2475, -2450, 25, 750)
|
// ctx.fillRect(-2475, -2450, 25, 750)
|
||||||
ctx.fillRect(-2975, -2750, 25, 600)
|
// ctx.fillRect(-2975, -2750, 25, 600)
|
||||||
ctx.fillRect(-3375, -2875, 25, 725)
|
// ctx.fillRect(-3375, -2875, 25, 725)
|
||||||
ctx.fillStyle = "#cff" //exit
|
ctx.fillStyle = "#cff" //exit
|
||||||
ctx.fillRect(-4425, -3050, 425, 275)
|
ctx.fillRect(-4425, -3050, 425, 275)
|
||||||
level.playerExitCheck();
|
level.playerExitCheck();
|
||||||
@@ -2806,19 +2793,20 @@ const level = {
|
|||||||
if (elevator2.isOn) {
|
if (elevator2.isOn) {
|
||||||
elevator2.move();
|
elevator2.move();
|
||||||
ctx.fillStyle = "#444"
|
ctx.fillStyle = "#444"
|
||||||
ctx.fillRect(-3540, -2170, 1, 870)
|
ctx.fillRect(-3540, -1720, 1, 740)
|
||||||
} else {
|
} else {
|
||||||
ctx.fillStyle = "#aaa"
|
ctx.fillStyle = "#aaa"
|
||||||
ctx.fillRect(-3540, -2170, 1, 870)
|
ctx.fillRect(-3540, -1720, 1, 740)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.fillStyle = "rgba(64,64,64,0.97)" //hidden section
|
ctx.fillStyle = "rgba(64,64,64,0.97)" //hidden section
|
||||||
ctx.fillRect(-4450, -750, 800, 200)
|
ctx.fillRect(-4450, -750, 800, 200)
|
||||||
ctx.fillStyle = "rgba(0,0,0,0.12)"
|
ctx.fillStyle = "rgba(0,0,0,0.12)"
|
||||||
|
ctx.fillRect(-2500, -1975, 150, 300);
|
||||||
ctx.fillRect(-1830, -1150, 2030, 1150)
|
ctx.fillRect(-1830, -1150, 2030, 1150)
|
||||||
ctx.fillRect(-3410, -2150, 495, 1550)
|
ctx.fillRect(-3410, -2150, 495, 1550)
|
||||||
ctx.fillRect(-2585, -1675, 420, 1125)
|
ctx.fillRect(-2585, -1675, 420, 1125)
|
||||||
ctx.fillRect(-1740, -1575, 840, 425)
|
ctx.fillRect(-1650, -1575, 750, 450)
|
||||||
};
|
};
|
||||||
|
|
||||||
level.setPosToSpawn(-300, -700); //normal spawn
|
level.setPosToSpawn(-300, -700); //normal spawn
|
||||||
@@ -2837,12 +2825,12 @@ const level = {
|
|||||||
spawn.debris(-2000, -60, 1200, 5); //16 debris per level
|
spawn.debris(-2000, -60, 1200, 5); //16 debris per level
|
||||||
|
|
||||||
//3 platforms that lead to exit
|
//3 platforms that lead to exit
|
||||||
spawn.mapRect(-3440, -2875, 155, 25);
|
// spawn.mapRect(-3440, -2875, 155, 25);
|
||||||
spawn.mapRect(-3025, -2775, 125, 25);
|
// spawn.mapRect(-3025, -2775, 125, 25);
|
||||||
spawn.mapRect(-2525, -2475, 125, 25);
|
// spawn.mapRect(-2525, -2475, 125, 25);
|
||||||
spawn.bodyRect(-2600, -2500, 225, 20, 0.7);
|
// spawn.bodyRect(-2600, -2500, 225, 20, 0.7);
|
||||||
spawn.bodyRect(-3350, -2900, 25, 25, 0.5);
|
// spawn.bodyRect(-3350, -2900, 25, 25, 0.5);
|
||||||
spawn.bodyRect(-3400, -2950, 50, 75, 0.5);
|
// spawn.bodyRect(-3400, -2950, 50, 75, 0.5);
|
||||||
|
|
||||||
powerUps.spawn(-4300, -700, "heal");
|
powerUps.spawn(-4300, -700, "heal");
|
||||||
powerUps.spawn(-4200, -700, "ammo");
|
powerUps.spawn(-4200, -700, "ammo");
|
||||||
@@ -2868,7 +2856,7 @@ const level = {
|
|||||||
|
|
||||||
// spawn.mapRect(-1650, -1575, 600, 50);
|
// spawn.mapRect(-1650, -1575, 600, 50);
|
||||||
// spawn.mapRect(-1875, -1575, 850, 50);
|
// spawn.mapRect(-1875, -1575, 850, 50);
|
||||||
spawn.mapRect(-1750, -1575, 725, 50);
|
spawn.mapRect(-1675, -1575, 650, 50);
|
||||||
spawn.mapRect(-600, -1150, 850, 175);
|
spawn.mapRect(-600, -1150, 850, 175);
|
||||||
spawn.mapRect(-1850, -1150, 1050, 175);
|
spawn.mapRect(-1850, -1150, 1050, 175);
|
||||||
spawn.bodyRect(-1907, -1600, 550, 25);
|
spawn.bodyRect(-1907, -1600, 550, 25);
|
||||||
@@ -2888,14 +2876,20 @@ const level = {
|
|||||||
spawn.mapRect(-2600, -1700, 450, 50);
|
spawn.mapRect(-2600, -1700, 450, 50);
|
||||||
// spawn.mapRect(-2600, -2450, 450, 50);
|
// spawn.mapRect(-2600, -2450, 450, 50);
|
||||||
spawn.bodyRect(-2275, -2700, 50, 60);
|
spawn.bodyRect(-2275, -2700, 50, 60);
|
||||||
spawn.bodyRect(-2600, -1925, 250, 225);
|
|
||||||
|
// spawn.bodyRect(-2560, -1925, 250, 225);
|
||||||
|
// spawn.mapRect(-2525, -2025, 125, 25);
|
||||||
|
// spawn.mapRect(-2525, -1900, 125, 225);
|
||||||
|
// spawn.mapRect(-2600, -1975, 250, 25);
|
||||||
|
spawn.mapRect(-2515, -2000, 180, 50);
|
||||||
|
|
||||||
spawn.bodyRect(-3410, -1425, 100, 100);
|
spawn.bodyRect(-3410, -1425, 100, 100);
|
||||||
spawn.bodyRect(-3390, -1525, 100, 100);
|
spawn.bodyRect(-3390, -1525, 100, 100);
|
||||||
spawn.bodyRect(-3245, -1425, 100, 100);
|
spawn.bodyRect(-3245, -1425, 100, 100);
|
||||||
//building 3
|
//building 3
|
||||||
spawn.mapRect(-4450, -1700, 800, 1000);
|
spawn.mapRect(-4450, -1750, 800, 1050);
|
||||||
spawn.mapRect(-3850, -2000, 125, 400);
|
// spawn.mapRect(-3850, -2000, 125, 400);
|
||||||
spawn.mapRect(-4000, -2350, 200, 800);
|
spawn.mapRect(-4000, -2390, 200, 800);
|
||||||
// spawn.mapRect(-4450, -2650, 475, 1000);
|
// spawn.mapRect(-4450, -2650, 475, 1000);
|
||||||
spawn.mapRect(-4450, -2775, 475, 1125);
|
spawn.mapRect(-4450, -2775, 475, 1125);
|
||||||
spawn.bodyRect(-3715, -2050, 50, 50);
|
spawn.bodyRect(-3715, -2050, 50, 50);
|
||||||
@@ -2937,8 +2931,8 @@ const level = {
|
|||||||
spawn.randomGroup(-3250, -2700, 0.2);
|
spawn.randomGroup(-3250, -2700, 0.2);
|
||||||
spawn.randomGroup(-2450, -1100, 0);
|
spawn.randomGroup(-2450, -1100, 0);
|
||||||
|
|
||||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(-2400, -3000);
|
if (simulation.difficulty > 3) spawn.randomLevelBoss(-2400, -2650);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(-1825, -1975);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(-1825, -1975);
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
@@ -2959,10 +2953,6 @@ const level = {
|
|||||||
button2.max.x = -button2.max.x + 126 // flip the button horizontally
|
button2.max.x = -button2.max.x + 126 // flip the button horizontally
|
||||||
|
|
||||||
level.custom = () => {
|
level.custom = () => {
|
||||||
ctx.fillStyle = "#d0d0d2"
|
|
||||||
ctx.fillRect(2475 - 25, -2450, 25, 750)
|
|
||||||
ctx.fillRect(2975 - 25, -2750, 25, 600)
|
|
||||||
ctx.fillRect(3375 - 25, -2875, 25, 725)
|
|
||||||
ctx.fillStyle = "#cff" //exit
|
ctx.fillStyle = "#cff" //exit
|
||||||
ctx.fillRect(4425 - 425, -3050, 425, 275)
|
ctx.fillRect(4425 - 425, -3050, 425, 275)
|
||||||
level.playerExitCheck();
|
level.playerExitCheck();
|
||||||
@@ -3011,19 +3001,20 @@ const level = {
|
|||||||
if (elevator2.isOn) {
|
if (elevator2.isOn) {
|
||||||
elevator2.move();
|
elevator2.move();
|
||||||
ctx.fillStyle = "#444"
|
ctx.fillStyle = "#444"
|
||||||
ctx.fillRect(3540 - 1, -2170, 1, 870)
|
ctx.fillRect(3540 - 1, -1720, 1, 740)
|
||||||
} else {
|
} else {
|
||||||
ctx.fillStyle = "#aaa"
|
ctx.fillStyle = "#aaa"
|
||||||
ctx.fillRect(3540 - 1, -2170, 1, 870)
|
ctx.fillRect(3540 - 1, -1720, 1, 740)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.fillStyle = "rgba(64,64,64,0.97)" //hidden section
|
ctx.fillStyle = "rgba(64,64,64,0.97)" //hidden section
|
||||||
ctx.fillRect(4450 - 800, -750, 800, 200)
|
ctx.fillRect(4450 - 800, -750, 800, 200)
|
||||||
ctx.fillStyle = "rgba(0,0,0,0.12)"
|
ctx.fillStyle = "rgba(0,0,0,0.12)"
|
||||||
|
ctx.fillRect(2500 - 150, -1975, 150, 300);
|
||||||
ctx.fillRect(1830 - 2030, -1150, 2030, 1150)
|
ctx.fillRect(1830 - 2030, -1150, 2030, 1150)
|
||||||
ctx.fillRect(3410 - 495, -2150, 495, 1550)
|
ctx.fillRect(3410 - 495, -2150, 495, 1550)
|
||||||
ctx.fillRect(2585 - 420, -1675, 420, 1125)
|
ctx.fillRect(2585 - 420, -1675, 420, 1125)
|
||||||
ctx.fillRect(1740 - 840, -1575, 840, 425)
|
ctx.fillRect(1650 - 750, -1575, 750, 450)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3246,7 +3237,7 @@ const level = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(300, -800);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(300, -800);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
level.flipHorizontal(); //only flips map,body,mob,powerUp,cons,consBB, exit
|
level.flipHorizontal(); //only flips map,body,mob,powerUp,cons,consBB, exit
|
||||||
@@ -3476,7 +3467,7 @@ const level = {
|
|||||||
spawn.randomLevelBoss(2200, -450)
|
spawn.randomLevelBoss(2200, -450)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(1875, -675);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(1875, -675);
|
||||||
|
|
||||||
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
if (simulation.isHorizontalFlipped) { //flip the map horizontally
|
||||||
@@ -3689,7 +3680,7 @@ const level = {
|
|||||||
spawn.randomGroup(100, -450, 0.9);
|
spawn.randomGroup(100, -450, 0.9);
|
||||||
|
|
||||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(1850, -1400);
|
if (simulation.difficulty > 3) spawn.randomLevelBoss(1850, -1400);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
},
|
},
|
||||||
basement() { // player made level by Francois 👑 from discord
|
basement() { // player made level by Francois 👑 from discord
|
||||||
let button, door, buttonDoor, buttonPlateformEnd, doorPlateform
|
let button, door, buttonDoor, buttonPlateformEnd, doorPlateform
|
||||||
@@ -3960,7 +3951,7 @@ const level = {
|
|||||||
spawn.randomGroup(2980, -400, 0.3);
|
spawn.randomGroup(2980, -400, 0.3);
|
||||||
spawn.randomGroup(5750, -3860, 0.4);
|
spawn.randomGroup(5750, -3860, 0.4);
|
||||||
spawn.randomGroup(1130, 1300, 0.1);
|
spawn.randomGroup(1130, 1300, 0.1);
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
powerUps.spawn(1900, -940, "heal");
|
powerUps.spawn(1900, -940, "heal");
|
||||||
powerUps.spawn(3000, -230, "heal");
|
powerUps.spawn(3000, -230, "heal");
|
||||||
powerUps.spawn(5450, -3675, "ammo");
|
powerUps.spawn(5450, -3675, "ammo");
|
||||||
@@ -4959,7 +4950,7 @@ const level = {
|
|||||||
spawn.randomLevelBoss(-300, -3200, ["shooterBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "shieldingBoss", "pulsarBoss", "laserBoss"]);
|
spawn.randomLevelBoss(-300, -3200, ["shooterBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "shieldingBoss", "pulsarBoss", "laserBoss"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(7725, 2275);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(7725, 2275);
|
||||||
},
|
},
|
||||||
coliseum() {
|
coliseum() {
|
||||||
@@ -5109,7 +5100,7 @@ const level = {
|
|||||||
powerUps.spawn(200, 50, "ammo");
|
powerUps.spawn(200, 50, "ammo");
|
||||||
powerUps.spawn(200, 50, "ammo");
|
powerUps.spawn(200, 50, "ammo");
|
||||||
|
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
|
|
||||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(6600, 600, ["historyBoss", "powerUpBoss", "pulsarBoss", "orbitalBoss"]);
|
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(6600, 600, ["historyBoss", "powerUpBoss", "pulsarBoss", "orbitalBoss"]);
|
||||||
},
|
},
|
||||||
@@ -5256,7 +5247,7 @@ const level = {
|
|||||||
powerUps.chooseRandomPowerUp(4006, 400);
|
powerUps.chooseRandomPowerUp(4006, 400);
|
||||||
powerUps.chooseRandomPowerUp(4407, 400);
|
powerUps.chooseRandomPowerUp(4407, 400);
|
||||||
powerUps.chooseRandomPowerUp(4409, 400);
|
powerUps.chooseRandomPowerUp(4409, 400);
|
||||||
powerUps.addRerollToLevel(); //needs to run after mobs are spawned
|
powerUps.addResearchToLevel(); //needs to run after mobs are spawned
|
||||||
|
|
||||||
//Block Spawning
|
//Block Spawning
|
||||||
// spawn.bodyRect(-100, 200, 100, 400); //spawn door
|
// spawn.bodyRect(-100, 200, 100, 400); //spawn door
|
||||||
@@ -5457,7 +5448,7 @@ const level = {
|
|||||||
spawn.randomGroup(3000, -450, 0.3)
|
spawn.randomGroup(3000, -450, 0.3)
|
||||||
spawn.randomGroup(6000, -2700, 0)
|
spawn.randomGroup(6000, -2700, 0)
|
||||||
spawn.randomGroup(-1200, -1300, -0.3)
|
spawn.randomGroup(-1200, -1300, -0.3)
|
||||||
powerUps.addRerollToLevel()
|
powerUps.addResearchToLevel()
|
||||||
|
|
||||||
if (simulation.difficulty > 3) {
|
if (simulation.difficulty > 3) {
|
||||||
spawn.randomLevelBoss(1900, 400, ["shieldingBoss", "shooterBoss", "launcherBoss", "streamBoss"])
|
spawn.randomLevelBoss(1900, 400, ["shieldingBoss", "shooterBoss", "launcherBoss", "streamBoss"])
|
||||||
@@ -5961,7 +5952,7 @@ const level = {
|
|||||||
//top right
|
//top right
|
||||||
spawn.randomGroup(2000, -5700, 0.6);
|
spawn.randomGroup(2000, -5700, 0.6);
|
||||||
|
|
||||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
powerUps.addResearchToLevel() //needs to run after mobs are spawned
|
||||||
let bosses = ["shooterBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "pulsarBoss", "spawnerBossCulture", "laserBoss"];
|
let bosses = ["shooterBoss", "launcherBoss", "laserTargetingBoss", "streamBoss", "pulsarBoss", "spawnerBossCulture", "laserBoss"];
|
||||||
let abc = Math.random();
|
let abc = Math.random();
|
||||||
if (simulation.difficulty > 3) {
|
if (simulation.difficulty > 3) {
|
||||||
|
|||||||
@@ -706,7 +706,7 @@ const powerUps = {
|
|||||||
powerUps.spawn(x, y, "ammo", false);
|
powerUps.spawn(x, y, "ammo", false);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
addRerollToLevel() { //add a random power up to a location that has a mob, mostly used to give each level one randomly placed research
|
addResearchToLevel() { //add a random power up to a location that has a mob, mostly used to give each level one randomly placed research
|
||||||
if (mob.length && Math.random() < 0.8) { // 80% chance
|
if (mob.length && Math.random() < 0.8) { // 80% chance
|
||||||
const index = Math.floor(Math.random() * mob.length)
|
const index = Math.floor(Math.random() * mob.length)
|
||||||
powerUps.spawn(mob[index].position.x, mob[index].position.y, "research");
|
powerUps.spawn(mob[index].position.x, mob[index].position.y, "research");
|
||||||
|
|||||||
@@ -511,7 +511,7 @@ const simulation = {
|
|||||||
}
|
}
|
||||||
m.look = m.lookDefault
|
m.look = m.lookDefault
|
||||||
|
|
||||||
simulation.isHorizontalFlipped = Math.random() < 0.5 ? true : false //if true, some maps are flipped horizontally
|
simulation.isHorizontalFlipped = (Math.random() < 0.5) ? true : false //if true, some maps are flipped horizontally
|
||||||
level.levels = level.playableLevels.slice(0) //copy array, not by just by assignment
|
level.levels = level.playableLevels.slice(0) //copy array, not by just by assignment
|
||||||
if (simulation.isCommunityMaps) {
|
if (simulation.isCommunityMaps) {
|
||||||
level.levels.push("stronghold");
|
level.levels.push("stronghold");
|
||||||
@@ -1183,6 +1183,7 @@ const simulation = {
|
|||||||
},
|
},
|
||||||
enableConstructMode() {
|
enableConstructMode() {
|
||||||
simulation.isConstructionMode = true;
|
simulation.isConstructionMode = true;
|
||||||
|
simulation.isHorizontalFlipped = false;
|
||||||
simulation.isAutoZoom = false;
|
simulation.isAutoZoom = false;
|
||||||
simulation.zoomScale = 2600;
|
simulation.zoomScale = 2600;
|
||||||
simulation.setZoom();
|
simulation.setZoom();
|
||||||
|
|||||||
36
js/spawn.js
36
js/spawn.js
@@ -2,25 +2,25 @@
|
|||||||
const spawn = {
|
const spawn = {
|
||||||
pickList: ["starter", "starter"],
|
pickList: ["starter", "starter"],
|
||||||
fullPickList: [
|
fullPickList: [
|
||||||
// "hopper", "hopper", "hopper",
|
"hopper", "hopper", "hopper",
|
||||||
// "shooter", "shooter",
|
"shooter", "shooter",
|
||||||
// "striker", "striker",
|
"striker", "striker",
|
||||||
// "laser", "laser",
|
"laser", "laser",
|
||||||
// "exploder", "exploder",
|
"exploder", "exploder",
|
||||||
// "stabber", "stabber",
|
"stabber", "stabber",
|
||||||
// "launcher", "launcher",
|
"launcher", "launcher",
|
||||||
"springer", "springer",
|
"springer", "springer",
|
||||||
// "pulsar", "pulsar",
|
"pulsar", "pulsar",
|
||||||
// "sucker",
|
"sucker",
|
||||||
// "chaser",
|
"chaser",
|
||||||
// "sniper",
|
"sniper",
|
||||||
// "spinner",
|
"spinner",
|
||||||
// "grower",
|
"grower",
|
||||||
// "beamer",
|
"beamer",
|
||||||
// "focuser",
|
"focuser",
|
||||||
// "spawner",
|
"spawner",
|
||||||
// "ghoster",
|
"ghoster",
|
||||||
// "sneaker",
|
"sneaker",
|
||||||
],
|
],
|
||||||
allowedGroupList: ["chaser", "spinner", "striker", "springer", "laser", "focuser", "beamer", "exploder", "spawner", "shooter", "launcher", "stabber", "sniper", "pulsar"],
|
allowedGroupList: ["chaser", "spinner", "striker", "springer", "laser", "focuser", "beamer", "exploder", "spawner", "shooter", "launcher", "stabber", "sniper", "pulsar"],
|
||||||
setSpawnList() { //this is run at the start of each new level to determine the possible mobs for the level
|
setSpawnList() { //this is run at the start of each new level to determine the possible mobs for the level
|
||||||
|
|||||||
14
todo.txt
14
todo.txt
@@ -1,20 +1,14 @@
|
|||||||
******************************************************** NEXT PATCH ********************************************************
|
******************************************************** NEXT PATCH ********************************************************
|
||||||
|
|
||||||
levels are now randomly flipped horizontally
|
some changes to highrise level
|
||||||
|
|
||||||
removed spawn.boost( from n-gon
|
boost bug fix
|
||||||
make boosts with these commands:
|
MACHO bug fix
|
||||||
const boost1 = level.boost(2550, 1500, 1700) //x,y, boost height
|
|
||||||
const boost2 = level.boost(-3400, -2050, 3000)
|
|
||||||
level.custom = () => {
|
|
||||||
boost1.query();
|
|
||||||
boost2.query();
|
|
||||||
also you don't have to draw the boosts any more, the query command does it for you
|
|
||||||
|
|
||||||
******************************************************** BUGS ********************************************************
|
******************************************************** BUGS ********************************************************
|
||||||
|
|
||||||
figure out how to undo ship mode
|
figure out how to undo ship mode
|
||||||
if you die in ship mode it respawns with m.look set to non ship methods
|
if you die in ship mode it spawns with m.look set to non ship methods
|
||||||
look is set in many tech and in startGame
|
look is set in many tech and in startGame
|
||||||
|
|
||||||
Why does micro-extruder lag so much
|
Why does micro-extruder lag so much
|
||||||
|
|||||||
Reference in New Issue
Block a user