From e83b84f1fb3de1f5aee29a844281c68c715ec2c4 Mon Sep 17 00:00:00 2001 From: landgreen Date: Wed, 2 Jun 2021 05:41:15 -0700 Subject: [PATCH] highrise some changes to highrise level boost bug fix MACHO bug fix --- .DS_Store | Bin 6148 -> 6148 bytes js/bullet.js | 52 +++++++++++--------- js/level.js | 125 ++++++++++++++++++++++------------------------- js/powerup.js | 2 +- js/simulation.js | 3 +- js/spawn.js | 36 +++++++------- todo.txt | 14 ++---- 7 files changed, 111 insertions(+), 121 deletions(-) diff --git a/.DS_Store b/.DS_Store index dc70268470432433cdfdfb225d23c69fac7db88c..042ac4d9b9d016d33e625b5baa8660350d7174bf 100644 GIT binary patch delta 15 WcmZoMXffEJ#muy|X0s0S4G{n;l?6ut delta 15 WcmZoMXffEJ#muzbVY3eN4G{n-I|U5@ diff --git a/js/bullet.js b/js/bullet.js index d24bfb1..64c4f74 100644 --- a/js/bullet.js +++ b/js/bullet.js @@ -2544,19 +2544,21 @@ const b = { } }) for (let i = 0; i < q.length; i++) { - Matter.Body.setAngularVelocity(this, this.spin) - // mobs.statusStun(q[i], 180) - // const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 2.5 : 1) - const dmg = 0.5 * b.dmgScale - q[i].damage(dmg); - q[i].foundPlayer(); - simulation.drawList.push({ //add dmg to draw queue - x: this.position.x, - y: this.position.y, - radius: Math.log(2 * dmg + 1.1) * 40, - color: 'rgba(0,0,0,0.4)', - time: simulation.drawTime - }); + if (!q[i].isShielded) { + Matter.Body.setAngularVelocity(this, this.spin) + // mobs.statusStun(q[i], 180) + // const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 2.5 : 1) + const dmg = 0.5 * b.dmgScale + q[i].damage(dmg); + q[i].foundPlayer(); + simulation.drawList.push({ //add dmg to draw queue + x: this.position.x, + y: this.position.y, + radius: Math.log(2 * dmg + 1.1) * 40, + color: 'rgba(0,0,0,0.4)', + time: simulation.drawTime + }); + } } } let history = m.history[(m.cycle - this.followDelay) % 600] @@ -3142,17 +3144,19 @@ const b = { } }) for (let i = 0; i < q.length; i++) { - mobs.statusStun(q[i], 180) - const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 3 : 1) * (tech.isCrit ? 4 : 1) - q[i].damage(dmg); - q[i].foundPlayer(); - simulation.drawList.push({ //add dmg to draw queue - x: this.position.x, - y: this.position.y, - radius: Math.log(2 * dmg + 1.1) * 40, - color: 'rgba(0,0,0,0.4)', - time: simulation.drawTime - }); + if (!q[i].isShielded) { + mobs.statusStun(q[i], 180) + const dmg = 0.5 * b.dmgScale * (this.isUpgraded ? 3 : 1) * (tech.isCrit ? 4 : 1) + q[i].damage(dmg); + q[i].foundPlayer(); + simulation.drawList.push({ //add dmg to draw queue + x: this.position.x, + y: this.position.y, + radius: Math.log(2 * dmg + 1.1) * 40, + color: 'rgba(0,0,0,0.4)', + time: simulation.drawTime + }); + } } } //orbit player diff --git a/js/level.js b/js/level.js index e345ab5..0924573 100644 --- a/js/level.js +++ b/js/level.js @@ -53,29 +53,12 @@ const level = { // level.crossfire() //community level // level.vats() //community level // level["n-gon"]() //community level - - // powerUps.directSpawn(simulation.mouseInGame.x, simulation.mouseInGame.y, "tech"); // tech.giveTech("undefined") // lore.techCount = 6 // localSettings.loreCount = 1; // localStorage.setItem("localSettings", JSON.stringify(localSettings)); //update local storage // simulation.isCheating = false //true; // 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 { spawn.setSpawnList(); //picks a couple mobs types for a themed random mob spawns // spawn.pickList = ["focuser", "focuser"] @@ -329,7 +312,7 @@ const level = { }, max: { x: x + 100, - y: y - 20 + height + y: y } }, yVelocity: -1.21 * Math.sqrt(Math.abs(height)), @@ -672,6 +655,9 @@ const level = { Matter.Body.setStatic(doorBlock, true); //make static return doorBlock }, + + + portal(centerA, angleA, centerB, angleB) { const width = 50 const height = 150 @@ -1223,7 +1209,7 @@ const level = { // spawn.randomMob(2650, -975, 0.8); // spawn.randomGroup(1700, -900, 0.4); // 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); }, 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() > 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 (simulation.isHorizontalFlipped) { //flip the map horizontally @@ -1758,7 +1744,7 @@ const level = { 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); @@ -1963,7 +1949,7 @@ const level = { spawn.randomMob(4100, 1225, 0.9); spawn.randomMob(2825, 400, 0.9); 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); @@ -2013,7 +1999,7 @@ const level = { }, satellite() { 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 = () => { boost1.query(); @@ -2048,7 +2034,7 @@ const level = { level.defaultZoom = 1700 // 4500 // 1400 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(4830, -1330, 850, 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); //structure bellow tall stairs - spawn.mapRect(3925, -300, 425, 50); - spawn.mapRect(4700, -375, 425, 50); + spawn.mapRect(3900, -300, 450, 50); + spawn.mapRect(4675, -375, 450, 50); + // spawn.mapRect(4000, -1300, 1050, 100); spawn.mapRect(4000, -1300, 200, 100); spawn.mapRect(4600, -1300, 450, 100); @@ -2151,7 +2138,7 @@ const level = { 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 (simulation.isHorizontalFlipped) { //flip the map horizontally @@ -2322,7 +2309,7 @@ const level = { spawn.randomGroup(2225, -1325, 0.4); spawn.randomGroup(4900, -1200, 0); 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 (simulation.isHorizontalFlipped) { //flip the map horizontally @@ -2539,7 +2526,7 @@ const level = { 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 (simulation.isHorizontalFlipped) { //flip the map horizontally @@ -2707,7 +2694,7 @@ const level = { spawn.randomGroup(3700, -1500, 0.4); spawn.randomGroup(1700, -900, 0.4); 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 (simulation.isHorizontalFlipped) { //flip the map horizontally @@ -2749,15 +2736,15 @@ const level = { const elevator1 = level.elevator(-790, -190, 180, 25, -1150) //, 0.007 elevator1.addConstraint(); 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(); const button2 = level.button(-3100, -1330) level.custom = () => { - ctx.fillStyle = "#d0d0d2" - ctx.fillRect(-2475, -2450, 25, 750) - ctx.fillRect(-2975, -2750, 25, 600) - ctx.fillRect(-3375, -2875, 25, 725) + // ctx.fillStyle = "#d0d0d2" + // ctx.fillRect(-2475, -2450, 25, 750) + // ctx.fillRect(-2975, -2750, 25, 600) + // ctx.fillRect(-3375, -2875, 25, 725) ctx.fillStyle = "#cff" //exit ctx.fillRect(-4425, -3050, 425, 275) level.playerExitCheck(); @@ -2806,19 +2793,20 @@ const level = { if (elevator2.isOn) { elevator2.move(); ctx.fillStyle = "#444" - ctx.fillRect(-3540, -2170, 1, 870) + ctx.fillRect(-3540, -1720, 1, 740) } else { 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.fillRect(-4450, -750, 800, 200) ctx.fillStyle = "rgba(0,0,0,0.12)" + ctx.fillRect(-2500, -1975, 150, 300); ctx.fillRect(-1830, -1150, 2030, 1150) ctx.fillRect(-3410, -2150, 495, 1550) ctx.fillRect(-2585, -1675, 420, 1125) - ctx.fillRect(-1740, -1575, 840, 425) + ctx.fillRect(-1650, -1575, 750, 450) }; level.setPosToSpawn(-300, -700); //normal spawn @@ -2837,12 +2825,12 @@ const level = { spawn.debris(-2000, -60, 1200, 5); //16 debris per level //3 platforms that lead to exit - spawn.mapRect(-3440, -2875, 155, 25); - spawn.mapRect(-3025, -2775, 125, 25); - spawn.mapRect(-2525, -2475, 125, 25); - spawn.bodyRect(-2600, -2500, 225, 20, 0.7); - spawn.bodyRect(-3350, -2900, 25, 25, 0.5); - spawn.bodyRect(-3400, -2950, 50, 75, 0.5); + // spawn.mapRect(-3440, -2875, 155, 25); + // spawn.mapRect(-3025, -2775, 125, 25); + // spawn.mapRect(-2525, -2475, 125, 25); + // spawn.bodyRect(-2600, -2500, 225, 20, 0.7); + // spawn.bodyRect(-3350, -2900, 25, 25, 0.5); + // spawn.bodyRect(-3400, -2950, 50, 75, 0.5); powerUps.spawn(-4300, -700, "heal"); powerUps.spawn(-4200, -700, "ammo"); @@ -2868,7 +2856,7 @@ const level = { // spawn.mapRect(-1650, -1575, 600, 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(-1850, -1150, 1050, 175); spawn.bodyRect(-1907, -1600, 550, 25); @@ -2888,14 +2876,20 @@ const level = { spawn.mapRect(-2600, -1700, 450, 50); // spawn.mapRect(-2600, -2450, 450, 50); 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(-3390, -1525, 100, 100); spawn.bodyRect(-3245, -1425, 100, 100); //building 3 - spawn.mapRect(-4450, -1700, 800, 1000); - spawn.mapRect(-3850, -2000, 125, 400); - spawn.mapRect(-4000, -2350, 200, 800); + spawn.mapRect(-4450, -1750, 800, 1050); + // spawn.mapRect(-3850, -2000, 125, 400); + spawn.mapRect(-4000, -2390, 200, 800); // spawn.mapRect(-4450, -2650, 475, 1000); spawn.mapRect(-4450, -2775, 475, 1125); spawn.bodyRect(-3715, -2050, 50, 50); @@ -2937,8 +2931,8 @@ const level = { spawn.randomGroup(-3250, -2700, 0.2); spawn.randomGroup(-2450, -1100, 0); - if (simulation.difficulty > 3) spawn.randomLevelBoss(-2400, -3000); - powerUps.addRerollToLevel() //needs to run after mobs are spawned + if (simulation.difficulty > 3) spawn.randomLevelBoss(-2400, -2650); + powerUps.addResearchToLevel() //needs to run after mobs are spawned if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(-1825, -1975); if (simulation.isHorizontalFlipped) { //flip the map horizontally @@ -2959,10 +2953,6 @@ const level = { button2.max.x = -button2.max.x + 126 // flip the button horizontally 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.fillRect(4425 - 425, -3050, 425, 275) level.playerExitCheck(); @@ -3011,19 +3001,20 @@ const level = { if (elevator2.isOn) { elevator2.move(); ctx.fillStyle = "#444" - ctx.fillRect(3540 - 1, -2170, 1, 870) + ctx.fillRect(3540 - 1, -1720, 1, 740) } else { 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.fillRect(4450 - 800, -750, 800, 200) ctx.fillStyle = "rgba(0,0,0,0.12)" + ctx.fillRect(2500 - 150, -1975, 150, 300); ctx.fillRect(1830 - 2030, -1150, 2030, 1150) ctx.fillRect(3410 - 495, -2150, 495, 1550) 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); - 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 level.flipHorizontal(); //only flips map,body,mob,powerUp,cons,consBB, exit @@ -3476,7 +3467,7 @@ const level = { 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 (simulation.isHorizontalFlipped) { //flip the map horizontally @@ -3689,7 +3680,7 @@ const level = { spawn.randomGroup(100, -450, 0.9); 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 let button, door, buttonDoor, buttonPlateformEnd, doorPlateform @@ -3960,7 +3951,7 @@ const level = { spawn.randomGroup(2980, -400, 0.3); spawn.randomGroup(5750, -3860, 0.4); 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(3000, -230, "heal"); powerUps.spawn(5450, -3675, "ammo"); @@ -4959,7 +4950,7 @@ const level = { 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); }, coliseum() { @@ -5109,7 +5100,7 @@ const level = { 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"]); }, @@ -5256,7 +5247,7 @@ const level = { powerUps.chooseRandomPowerUp(4006, 400); powerUps.chooseRandomPowerUp(4407, 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 // spawn.bodyRect(-100, 200, 100, 400); //spawn door @@ -5457,7 +5448,7 @@ const level = { spawn.randomGroup(3000, -450, 0.3) spawn.randomGroup(6000, -2700, 0) spawn.randomGroup(-1200, -1300, -0.3) - powerUps.addRerollToLevel() + powerUps.addResearchToLevel() if (simulation.difficulty > 3) { spawn.randomLevelBoss(1900, 400, ["shieldingBoss", "shooterBoss", "launcherBoss", "streamBoss"]) @@ -5961,7 +5952,7 @@ const level = { //top right 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 abc = Math.random(); if (simulation.difficulty > 3) { diff --git a/js/powerup.js b/js/powerup.js index 98d3f86..3fa9a3d 100644 --- a/js/powerup.js +++ b/js/powerup.js @@ -706,7 +706,7 @@ const powerUps = { 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 const index = Math.floor(Math.random() * mob.length) powerUps.spawn(mob[index].position.x, mob[index].position.y, "research"); diff --git a/js/simulation.js b/js/simulation.js index f17e877..9e4e384 100644 --- a/js/simulation.js +++ b/js/simulation.js @@ -511,7 +511,7 @@ const simulation = { } 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 if (simulation.isCommunityMaps) { level.levels.push("stronghold"); @@ -1183,6 +1183,7 @@ const simulation = { }, enableConstructMode() { simulation.isConstructionMode = true; + simulation.isHorizontalFlipped = false; simulation.isAutoZoom = false; simulation.zoomScale = 2600; simulation.setZoom(); diff --git a/js/spawn.js b/js/spawn.js index 1c81a1b..38569de 100644 --- a/js/spawn.js +++ b/js/spawn.js @@ -2,25 +2,25 @@ const spawn = { pickList: ["starter", "starter"], fullPickList: [ - // "hopper", "hopper", "hopper", - // "shooter", "shooter", - // "striker", "striker", - // "laser", "laser", - // "exploder", "exploder", - // "stabber", "stabber", - // "launcher", "launcher", + "hopper", "hopper", "hopper", + "shooter", "shooter", + "striker", "striker", + "laser", "laser", + "exploder", "exploder", + "stabber", "stabber", + "launcher", "launcher", "springer", "springer", - // "pulsar", "pulsar", - // "sucker", - // "chaser", - // "sniper", - // "spinner", - // "grower", - // "beamer", - // "focuser", - // "spawner", - // "ghoster", - // "sneaker", + "pulsar", "pulsar", + "sucker", + "chaser", + "sniper", + "spinner", + "grower", + "beamer", + "focuser", + "spawner", + "ghoster", + "sneaker", ], 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 diff --git a/todo.txt b/todo.txt index eebe2cf..649e1b8 100644 --- a/todo.txt +++ b/todo.txt @@ -1,20 +1,14 @@ ******************************************************** NEXT PATCH ******************************************************** -levels are now randomly flipped horizontally +some changes to highrise level -removed spawn.boost( from n-gon -make boosts with these commands: - 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 +boost bug fix +MACHO bug fix ******************************************************** BUGS ******************************************************** 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 Why does micro-extruder lag so much