some changes to highrise level

boost bug fix
MACHO bug fix
This commit is contained in:
landgreen
2021-06-02 05:41:15 -07:00
parent 05420af818
commit e83b84f1fb
7 changed files with 111 additions and 121 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -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 = {

View File

@@ -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) {

View File

@@ -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");

View File

@@ -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();

View File

@@ -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

View File

@@ -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