blocks don't block vision
more bug fixes (pulse color, backwards induction giving too many tech) mobs can now see through blocks mobs spawns and level spawns have been adjusted to prevent getting zonked at the start of a level
This commit is contained in:
@@ -452,7 +452,7 @@ const b = {
|
||||
},
|
||||
pulse(energy, angle = m.angle) {
|
||||
let best;
|
||||
let explosionRadius = 1400 * energy
|
||||
let explosionRadius = 1300 * energy
|
||||
let range = 3000
|
||||
const path = [{
|
||||
x: m.pos.x + 20 * Math.cos(angle),
|
||||
@@ -537,7 +537,7 @@ const b = {
|
||||
};
|
||||
}
|
||||
}
|
||||
if (best.who) b.explosion(path[1], explosionRadius, true)
|
||||
if (best.who) b.explosion(path[1], explosionRadius)
|
||||
|
||||
if (tech.isPulseStun) {
|
||||
const range = 100 + 2000 * energy
|
||||
@@ -661,7 +661,7 @@ const b = {
|
||||
};
|
||||
}
|
||||
}
|
||||
if (best.who) b.explosion(path[1], explosionRadius, true)
|
||||
if (best.who) b.explosion(path[1], explosionRadius)
|
||||
|
||||
//draw laser beam
|
||||
ctx.beginPath();
|
||||
|
||||
151
js/level.js
151
js/level.js
@@ -12,7 +12,7 @@ const level = {
|
||||
start() {
|
||||
if (level.levelsCleared === 0) { //this code only runs on the first level
|
||||
// simulation.enableConstructMode() //used to build maps in testing mode
|
||||
// level.difficultyIncrease(25)
|
||||
// level.difficultyIncrease(125)
|
||||
// simulation.zoomScale = 1000;
|
||||
// simulation.setZoom();
|
||||
// m.setField("nano-scale manufacturing")
|
||||
@@ -822,9 +822,9 @@ const level = {
|
||||
}
|
||||
//float
|
||||
if (player.velocity.y > 5) player.force.y -= 0.95 * player.mass * simulation.g
|
||||
const slowY = (player.velocity.y > 0) ? Math.max(0.4, 1 - 0.001 * player.velocity.y * player.velocity.y) : Math.max(0.98, 1 - 0.001 * Math.abs(player.velocity.y)) //down : up
|
||||
const slowY = (player.velocity.y > 0) ? Math.max(0.8, 1 - 0.002 * player.velocity.y * player.velocity.y) : Math.max(0.98, 1 - 0.001 * Math.abs(player.velocity.y)) //down : up
|
||||
Matter.Body.setVelocity(player, {
|
||||
x: Math.max(0.6, 1 - 0.07 * Math.abs(player.velocity.x)) * player.velocity.x,
|
||||
x: Math.max(0.95, 1 - 0.036 * Math.abs(player.velocity.x)) * player.velocity.x,
|
||||
y: slowY * player.velocity.y
|
||||
});
|
||||
}
|
||||
@@ -1221,7 +1221,7 @@ const level = {
|
||||
};
|
||||
level.customTopLayer = () => {};
|
||||
|
||||
level.setPosToSpawn(0, -750); //normal spawn
|
||||
level.setPosToSpawn(0, -475); //normal spawn
|
||||
spawn.mapRect(level.enter.x, level.enter.y + 20, 100, 20);
|
||||
level.exit.x = 6500;
|
||||
level.exit.y = -230;
|
||||
@@ -1241,7 +1241,11 @@ const level = {
|
||||
spawn.mapRect(-950, 0, 8200, 800); //ground
|
||||
spawn.mapRect(-950, -1200, 800, 1400); //left wall
|
||||
spawn.mapRect(-950, -1800, 8200, 800); //roof
|
||||
spawn.mapRect(-250, -700, 1000, 900); // shelf
|
||||
// spawn.mapRect(-250, -700, 1000, 900); // shelf
|
||||
// spawn.mapRect(-250, -350, 600, 550);
|
||||
spawn.mapRect(175, -700, 575, 950);
|
||||
spawn.mapRect(-250, -425, 600, 650);
|
||||
|
||||
spawn.mapRect(-250, -1200, 1000, 250); // shelf roof
|
||||
powerUps.spawnStartingPowerUps(600, -800);
|
||||
|
||||
@@ -1619,6 +1623,8 @@ const level = {
|
||||
spawn.mapRect(300, -375, 50, 225);
|
||||
spawn.bodyRect(312, -150, 25, 140);
|
||||
spawn.mapRect(300, -10, 50, 50);
|
||||
spawn.mapVertex(1555, 0, "625 0 75 0 200 -100 500 -100"); //entrance ramp
|
||||
|
||||
|
||||
//upper entrance / exit
|
||||
spawn.mapRect(-400, -1050, 750, 50);
|
||||
@@ -1692,16 +1698,22 @@ const level = {
|
||||
//mobs
|
||||
spawn.randomMob(1075, -3500, -0.3);
|
||||
// spawn.randomMob(-75, -3425, 0.2);
|
||||
spawn.randomMob(1475, -225, -0.3);
|
||||
spawn.randomMob(2075, -150, -0.2);
|
||||
// spawn.randomMob(1475, -225, -0.3);
|
||||
// spawn.randomMob(2075, -150, -0.2);
|
||||
spawn.randomMob(2175, -700, -0.2);
|
||||
spawn.randomMob(-75, -850, -0.1);
|
||||
spawn.randomMob(1300, -600, -0.1);
|
||||
// spawn.randomMob(1300, -600, -0.1);
|
||||
spawn.randomMob(550, -3400, 0);
|
||||
spawn.randomMob(0, -1175, 0.5);
|
||||
spawn.randomMob(-75, -1150, 0.5);
|
||||
spawn.randomMob(1075, -625, 0.5);
|
||||
spawn.randomMob(1725, -575, 0.5);
|
||||
// spawn.randomMob(1725, -575, 0.5);
|
||||
spawn.randomMob(800, -3400, -0.3);
|
||||
spawn.randomMob(1225, -3375, -0.2);
|
||||
spawn.randomMob(1200, -1125, -0.1);
|
||||
spawn.randomMob(2050, -950, 0.5);
|
||||
|
||||
|
||||
if (simulation.difficulty > 40) {
|
||||
spawn.randomMob(2300, -2775, -0.5);
|
||||
spawn.randomMob(600, -925, -0.5);
|
||||
@@ -1842,6 +1854,7 @@ const level = {
|
||||
spawn.mapRect(9300, 2590, 650, 25);
|
||||
spawn.mapRect(9700, 2580, 100, 50);
|
||||
|
||||
|
||||
spawn.randomGroup(1300, 2100, 0.1);
|
||||
spawn.randomMob(8300, 2100, 0.1);
|
||||
spawn.randomSmallMob(2575, -75, 0.1); //entrance
|
||||
@@ -1850,7 +1863,7 @@ const level = {
|
||||
spawn.randomMob(2425, 2150, 0.1);
|
||||
spawn.randomSmallMob(3500, 250, 0.2);
|
||||
spawn.randomMob(3800, 2175, 0.2);
|
||||
spawn.randomSmallMob(1100, -300, 0.2); //entrance
|
||||
spawn.randomSmallMob(2500, -275, 0.2); //entrance
|
||||
spawn.randomMob(4450, 2500, 0.2);
|
||||
spawn.randomMob(6350, 2525, 0.2);
|
||||
spawn.randomGroup(9200, 2400, 0.3);
|
||||
@@ -1891,7 +1904,8 @@ const level = {
|
||||
}
|
||||
};
|
||||
|
||||
level.setPosToSpawn(-50, -50); //normal spawn
|
||||
level.setPosToSpawn(-100, 210); //normal spawn
|
||||
spawn.mapRect(-150, 240, 100, 30);
|
||||
level.exit.x = -100;
|
||||
level.exit.y = -425;
|
||||
spawn.mapRect(level.exit.x, level.exit.y + 15, 100, 50); //exit bump
|
||||
@@ -1907,14 +1921,13 @@ const level = {
|
||||
document.body.style.backgroundColor = "#dbdcde";
|
||||
|
||||
//spawn start building
|
||||
spawn.mapRect(-300, -800, 50, 800);
|
||||
spawn.mapRect(-100, -20, 100, 30);
|
||||
spawn.mapRect(-350, -800, 100, 1100);
|
||||
// spawn.mapRect(-300, -10, 500, 50);
|
||||
spawn.mapRect(150, -510, 50, 365);
|
||||
spawn.bodyRect(170, -130, 14, 145, 1, spawn.propsFriction); //door to starting room
|
||||
spawn.bodyRect(170, -140, 20, 163, 1, spawn.propsFriction); //door to starting room
|
||||
spawn.mapVertex(175, 200, "625 0 300 0 425 -300 500 -300"); //entrance ramp
|
||||
// spawn.mapRect(-300, 0, 1000, 300); //ground
|
||||
spawn.mapVertex(-18, 145, "625 0 0 0 0 -300 500 -300"); //entrance ramp
|
||||
spawn.mapRect(-300, 250, 6300, 300); //deeper ground
|
||||
spawn.mapRect(-350, 250, 6350, 300); //deeper ground
|
||||
spawn.bodyRect(2100, 50, 80, 80);
|
||||
spawn.bodyRect(2000, 50, 60, 60);
|
||||
// spawn.bodyRect(1650, 50, 300, 200);
|
||||
@@ -1923,10 +1936,10 @@ const level = {
|
||||
|
||||
//exit building
|
||||
// spawn.mapRect(-100, -410, 100, 30);
|
||||
spawn.mapRect(-300, -800, 500, 50);
|
||||
spawn.mapRect(-350, -850, 550, 100);
|
||||
spawn.mapRect(150, -800, 50, 110);
|
||||
spawn.bodyRect(170, -690, 14, 180, 1, spawn.propsFriction); //door to exit room
|
||||
spawn.mapRect(-300, -400, 500, 100); //far left starting ceiling
|
||||
spawn.mapRect(-300, -400, 500, 150); //far left starting ceiling
|
||||
level.fill.push({
|
||||
x: -250,
|
||||
y: -400,
|
||||
@@ -2050,10 +2063,10 @@ const level = {
|
||||
spawn.randomMob(5750, 125, 0.4);
|
||||
spawn.randomMob(5900, -1500, 0.4);
|
||||
spawn.randomMob(4700, -800, 0.4);
|
||||
spawn.randomMob(1400, -400, 0.3);
|
||||
spawn.randomMob(1400, 200, 0.3);
|
||||
spawn.randomMob(2850, 175, 0.4);
|
||||
spawn.randomMob(2000, -2800, 0.4);
|
||||
spawn.randomMob(2200, -500, 0.4);
|
||||
spawn.randomMob(2400, -400, 0.4);
|
||||
spawn.randomMob(4475, -3550, 0.3);
|
||||
spawn.randomGroup(5000, -2150, 1);
|
||||
spawn.randomGroup(3700, -4100, 0.3);
|
||||
@@ -2277,12 +2290,15 @@ const level = {
|
||||
spawn.spawnStairs(3800, 0, 3, 150, 206); //stairs top exit
|
||||
spawn.mapRect(3400, -275, 450, 275); //exit platform
|
||||
|
||||
|
||||
|
||||
|
||||
spawn.randomSmallMob(2200, -1775);
|
||||
spawn.randomSmallMob(4000, -825);
|
||||
spawn.randomSmallMob(-350, -2400);
|
||||
spawn.randomSmallMob(-350, -3400);
|
||||
spawn.randomMob(4250, -1350, 0.8);
|
||||
spawn.randomMob(2550, -1350, 0.8);
|
||||
spawn.randomMob(1225, -2400, 0.3);
|
||||
spawn.randomMob(1875, -1075, 0.3);
|
||||
spawn.randomMob(1120, -1200, 0.3);
|
||||
spawn.randomMob(3000, -1150, 0.2);
|
||||
spawn.randomMob(3200, -1150, 0.3);
|
||||
@@ -2291,11 +2307,11 @@ const level = {
|
||||
spawn.randomMob(3600, -1800, 0.1);
|
||||
spawn.randomMob(5200, -100, 0.3);
|
||||
spawn.randomMob(5275, -900, 0.2);
|
||||
spawn.randomMob(900, -2125, 0.3);
|
||||
spawn.randomMob(0, -1075, 0.3);
|
||||
spawn.randomGroup(600, -1575, 0);
|
||||
spawn.randomGroup(2225, -1325, 0.4);
|
||||
spawn.randomGroup(4900, -1200, 0);
|
||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(3200, -2050);
|
||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(3200, -1900);
|
||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(2175, -2425);
|
||||
},
|
||||
@@ -2441,9 +2457,12 @@ const level = {
|
||||
spawn.mapRect(4250, -3700, 50, 300);
|
||||
spawn.mapRect(3700, -3250, 1100, 100);
|
||||
|
||||
|
||||
|
||||
spawn.randomGroup(350, -500, 1)
|
||||
spawn.randomSmallMob(-225, 25);
|
||||
spawn.randomSmallMob(1000, -1100);
|
||||
spawn.randomSmallMob(2100, -900);
|
||||
|
||||
spawn.randomSmallMob(4000, -250);
|
||||
spawn.randomSmallMob(4450, -3000);
|
||||
spawn.randomSmallMob(5600, 100);
|
||||
@@ -2454,7 +2473,8 @@ const level = {
|
||||
spawn.randomMob(3900, -2700, 0.8);
|
||||
spawn.randomMob(3600, -500, 0.8);
|
||||
spawn.randomMob(3400, -200, 0.8);
|
||||
spawn.randomMob(1650, -1300, 0.7)
|
||||
// spawn.randomMob(1650, -1300, 0.7)
|
||||
spawn.randomMob(425, 0, 0.7);
|
||||
spawn.randomMob(4100, -50, 0.7);
|
||||
spawn.randomMob(4100, -50, 0.5);
|
||||
spawn.randomMob(1700, -50, 0.3)
|
||||
@@ -2639,7 +2659,9 @@ const level = {
|
||||
spawn.bodyRect(1425, -1110, 115, 25, 0.9); //block on far left building
|
||||
spawn.bodyRect(1540, -1110, 300, 25, 0.9); //block on far left building
|
||||
|
||||
spawn.randomSmallMob(1300, -70);
|
||||
|
||||
spawn.randomMob(-100, -1300, 0.5);
|
||||
spawn.randomSmallMob(1850, -600);
|
||||
spawn.randomSmallMob(3200, -100);
|
||||
spawn.randomSmallMob(4450, -100);
|
||||
spawn.randomSmallMob(2700, -475);
|
||||
@@ -2653,7 +2675,7 @@ const level = {
|
||||
spawn.randomMob(1690, -2250, 0.25);
|
||||
spawn.randomMob(2200, -600, 0.2);
|
||||
spawn.randomMob(850, -1300, 0.25);
|
||||
spawn.randomMob(-100, -900, -0.2);
|
||||
spawn.randomMob(-100, -1700, -0.2);
|
||||
spawn.randomGroup(3700, -1500, 0.4);
|
||||
spawn.randomGroup(1700, -900, 0.4);
|
||||
if (simulation.difficulty > 3) spawn.randomLevelBoss(2600, -2300);
|
||||
@@ -2666,7 +2688,7 @@ const level = {
|
||||
};
|
||||
level.customTopLayer = () => {};
|
||||
|
||||
level.setPosToSpawn(0, -700); //normal spawn
|
||||
level.setPosToSpawn(-300, -700); //normal spawn
|
||||
spawn.mapRect(level.enter.x, level.enter.y + 20, 100, 20);
|
||||
level.exit.x = -4275;
|
||||
level.exit.y = -2805;
|
||||
@@ -2771,9 +2793,12 @@ const level = {
|
||||
spawn.mapRect(-2225, 0, 2475, 150);
|
||||
spawn.mapRect(175, -1000, 75, 1100);
|
||||
|
||||
spawn.mapRect(-175, -985, 25, 175);
|
||||
spawn.bodyRect(-170, -810, 14, 160, 1, spawn.propsFriction); //door to starting room
|
||||
spawn.mapRect(-600, -650, 825, 50);
|
||||
// spawn.mapRect(-175, -985, 50, 175);
|
||||
spawn.mapRect(-600, -1075, 50, 475);
|
||||
// spawn.bodyRect(-170, -810, 14, 160, 1, spawn.propsFriction); //door to starting room
|
||||
// spawn.mapRect(-600, -650, 825, 50);
|
||||
// spawn.mapRect(-600, -1075, 75, 475);
|
||||
spawn.mapRect(-600, -650, 625, 50);
|
||||
spawn.mapRect(-1300, -650, 500, 50);
|
||||
spawn.mapRect(-175, -250, 425, 300);
|
||||
spawn.bodyRect(-75, -300, 50, 50);
|
||||
@@ -3036,29 +3061,29 @@ const level = {
|
||||
|
||||
//mobs
|
||||
spawn.randomSmallMob(-1125, 550);
|
||||
spawn.randomSmallMob(-2325, 800);
|
||||
spawn.randomSmallMob(-2950, -50);
|
||||
spawn.randomMob(-2025, 175, 0.3);
|
||||
spawn.randomMob(-2325, 450, 0.3);
|
||||
spawn.randomMob(-2925, 675, 0.2);
|
||||
spawn.randomMob(-2700, 300, 0.1);
|
||||
spawn.randomMob(-2500, 300, 0.1);
|
||||
spawn.randomMob(-2075, -425, 0.1);
|
||||
spawn.randomMob(-1550, -725, 0.1);
|
||||
spawn.randomMob(375, 1100, 0);
|
||||
spawn.randomMob(-1575, 1100, 0);
|
||||
spawn.randomSmallMob(825, 300);
|
||||
spawn.randomSmallMob(-900, 825);
|
||||
spawn.randomMob(-2025, 175, 0.6);
|
||||
spawn.randomMob(-2325, 450, 0.6);
|
||||
spawn.randomMob(-2925, 675, 0.5);
|
||||
spawn.randomMob(-2700, 300, 0.2);
|
||||
spawn.randomMob(-2500, 300, 0.2);
|
||||
spawn.randomMob(-2075, -425, 0.2);
|
||||
spawn.randomMob(-1550, -725, 0.2);
|
||||
spawn.randomMob(375, 1100, 0.1);
|
||||
spawn.randomMob(-1425, -100, 0.1);
|
||||
spawn.randomMob(-800, -750, 0);
|
||||
spawn.randomMob(400, -350, 0);
|
||||
spawn.randomMob(650, 1300, 0);
|
||||
spawn.randomMob(-750, -150, 0);
|
||||
spawn.randomMob(475, 300, 0);
|
||||
spawn.randomMob(-75, -700, 0);
|
||||
spawn.randomMob(900, -200, -0.1);
|
||||
spawn.randomGroup(-125, 275, -0.2);
|
||||
spawn.randomGroup(-825, 1000, 0.2);
|
||||
spawn.randomMob(-800, -1750, 0);
|
||||
spawn.randomMob(400, -750, -0.1);
|
||||
spawn.randomMob(650, 1300, -0.1);
|
||||
spawn.randomMob(-2450, 1050, -0.1);
|
||||
spawn.randomMob(500, 400, -0.1);
|
||||
spawn.randomMob(-75, -1700, -0.1);
|
||||
spawn.randomMob(900, -800, -0.2);
|
||||
spawn.randomGroup(-75, 1050, -0.1);
|
||||
spawn.randomGroup(-900, 1000, 0.2);
|
||||
spawn.randomGroup(-1300, -1100, -0.3);
|
||||
spawn.randomSmallMob(-2325, 800);
|
||||
spawn.randomSmallMob(-900, 825);
|
||||
|
||||
if (simulation.difficulty > 3) {
|
||||
if (Math.random() < 0.25) {
|
||||
@@ -3067,9 +3092,8 @@ const level = {
|
||||
spawn.snakeBoss(-1000 + Math.random() * 2500, -1300); //boss snake with head
|
||||
}
|
||||
}
|
||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
||||
|
||||
if (tech.isDuplicateBoss && Math.random() < 2 * tech.duplicationChance()) spawn.randomLevelBoss(300, -800);
|
||||
powerUps.addRerollToLevel() //needs to run after mobs are spawned
|
||||
},
|
||||
office() {
|
||||
let button, door
|
||||
@@ -3077,8 +3101,8 @@ const level = {
|
||||
button = level.button(525, 0)
|
||||
door = level.door(1362, -200, 25, 200, 195)
|
||||
level.setPosToSpawn(1375, -1550); //normal spawn
|
||||
level.exit.x = 3250;
|
||||
level.exit.y = -530;
|
||||
level.exit.x = 3288;
|
||||
level.exit.y = -630;
|
||||
// spawn.randomSmallMob(3550, -550);
|
||||
level.fillBG.push({
|
||||
x: 3050,
|
||||
@@ -3090,7 +3114,7 @@ const level = {
|
||||
} else { //reverse direction, start in bottom right
|
||||
button = level.button(3800, 0)
|
||||
door = level.door(3012, -200, 25, 200, 195)
|
||||
level.setPosToSpawn(3250, -550); //normal spawn
|
||||
level.setPosToSpawn(3337, -650); //normal spawn
|
||||
level.exit.x = 1375;
|
||||
level.exit.y = -1530;
|
||||
// spawn.bodyRect(3655, -650, 40, 150); //door
|
||||
@@ -3103,7 +3127,6 @@ const level = {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
level.custom = () => {
|
||||
button.query();
|
||||
button.draw();
|
||||
@@ -3122,7 +3145,6 @@ const level = {
|
||||
level.defaultZoom = 1400
|
||||
simulation.zoomTransition(level.defaultZoom)
|
||||
spawn.mapRect(level.exit.x, level.exit.y + 20, 100, 50); //ground bump wall
|
||||
|
||||
spawn.mapRect(level.enter.x, level.enter.y + 20, 100, 20);
|
||||
|
||||
document.body.style.backgroundColor = "#e0e5e0";
|
||||
@@ -3216,19 +3238,22 @@ const level = {
|
||||
spawn.mapRect(3000, -1000, 50, 800); //left wall
|
||||
spawn.mapRect(3000 + 2000 - 50, -1300, 50, 1100); //right wall
|
||||
spawn.mapRect(4150, -600, 350, 150); //table
|
||||
spawn.mapRect(3650, -1300, 50, 650); //exit wall
|
||||
spawn.mapRect(3650, -1300, 50, 700); //exit wall
|
||||
spawn.mapRect(3650, -1300, 1350, 50); //exit wall
|
||||
spawn.bodyRect(3665, -650, 20, 150); //door
|
||||
spawn.bodyRect(3665, -600, 20, 100); //door
|
||||
// spawn.mapRect(3150, -550, 300, 75);
|
||||
// spawn.mapRect(3225, -600, 175, 75);
|
||||
spawn.mapRect(3150, -550, 375, 75);
|
||||
spawn.mapRect(3225, -600, 225, 75);
|
||||
|
||||
|
||||
spawn.mapRect(3000, -2000 * 0.5, 700, 50); //exit roof
|
||||
spawn.mapRect(3000, -2000 * 0.25, 2000 - 300, 50); //1st floor
|
||||
spawn.spawnStairs(3000 + 2000 - 50, 0, 4, 250, 350, true); //stairs ground
|
||||
|
||||
spawn.randomSmallMob(4575, -560, 1);
|
||||
spawn.randomSmallMob(1315, -880, 1);
|
||||
spawn.randomSmallMob(800, -600);
|
||||
spawn.randomSmallMob(-100, -1600);
|
||||
// spawn.randomSmallMob(-100, -1600);
|
||||
spawn.randomMob(4100, -225, 0.8);
|
||||
spawn.randomMob(-250, -700, 0.8);
|
||||
spawn.randomMob(4500, -225, 0.15);
|
||||
|
||||
@@ -312,7 +312,7 @@ const mobs = {
|
||||
if (
|
||||
this.distanceToPlayer2() < this.seeAtDistance2 &&
|
||||
Matter.Query.ray(map, this.position, this.mPosRange()).length === 0 &&
|
||||
Matter.Query.ray(body, this.position, this.mPosRange()).length === 0 &&
|
||||
// Matter.Query.ray(body, this.position, this.mPosRange()).length === 0 &&
|
||||
!m.isCloak
|
||||
) {
|
||||
this.foundPlayer();
|
||||
@@ -365,7 +365,7 @@ const mobs = {
|
||||
if (
|
||||
this.distanceToPlayer2() < this.seeAtDistance2 &&
|
||||
Matter.Query.ray(map, this.position, this.mPosRange()).length === 0 &&
|
||||
Matter.Query.ray(body, this.position, this.mPosRange()).length === 0 &&
|
||||
// Matter.Query.ray(body, this.position, this.mPosRange()).length === 0 &&
|
||||
!m.isCloak
|
||||
) {
|
||||
this.foundPlayer();
|
||||
|
||||
@@ -16,7 +16,9 @@ const powerUps = {
|
||||
m.setField(index)
|
||||
simulation.makeTextLog(`<span class='color-var'>m</span>.setField("<span class='color-text'>${m.fieldUpgrades[m.fieldMode].name}</span>")`);
|
||||
} else if (type === "tech") {
|
||||
powerUps.lastTechIndex = index
|
||||
setTimeout(() => {
|
||||
powerUps.lastTechIndex = index
|
||||
}, 100);
|
||||
tech.giveTech(index)
|
||||
simulation.makeTextLog(`<span class='color-var'>tech</span>.giveTech("<span class='color-text'>${tech.tech[index].name}</span>")`);
|
||||
}
|
||||
@@ -342,7 +344,6 @@ const powerUps = {
|
||||
// text += `<div class="choose-grid-module" onclick="powerUps.choose('tech',${choose})"><div class="grid-title"><div class="circle-grid tech"></div> ${tech.tech[choose].name}</div> ${tech.tech[choose].description}</div>`
|
||||
return choose
|
||||
}
|
||||
|
||||
}
|
||||
let text = ""
|
||||
if (!tech.isDeterminism) text += `<div class='cancel' onclick='powerUps.endDraft("tech",true)'>✕</div>`
|
||||
|
||||
@@ -1953,7 +1953,7 @@ const spawn = {
|
||||
if (
|
||||
this.distanceToPlayer2() < this.seeAtDistance2 &&
|
||||
Matter.Query.ray(map, this.position, this.mPosRange()).length === 0 &&
|
||||
Matter.Query.ray(body, this.position, this.mPosRange()).length === 0 &&
|
||||
// Matter.Query.ray(body, this.position, this.mPosRange()).length === 0 &&
|
||||
!m.isCloak
|
||||
) {
|
||||
this.foundPlayer();
|
||||
@@ -2547,7 +2547,7 @@ const spawn = {
|
||||
spawn.shield(me, x, y, 1);
|
||||
spawn.spawnOrbitals(me, radius + 50 + 200 * Math.random())
|
||||
|
||||
Matter.Body.setDensity(me, 0.008); //extra dense //normal is 0.001 //makes effective life much larger
|
||||
Matter.Body.setDensity(me, 0.004); //extra dense //normal is 0.001 //makes effective life much larger
|
||||
me.onDeath = function() {
|
||||
powerUps.spawnBossPowerUp(this.position.x, this.position.y)
|
||||
// this.vertices = Matter.Vertices.hull(Matter.Vertices.clockwiseSort(this.vertices)) //helps collisions functions work better after vertex have been changed
|
||||
|
||||
@@ -1392,9 +1392,7 @@
|
||||
}
|
||||
}, {
|
||||
name: "flip-flop",
|
||||
description: `unlock advanced <strong class='color-m'>tech</strong> that runs if flip-flop is <strong class="color-flop">ON</strong><br><strong>flip-flop</strong> toggles <strong class="color-flop">ON</strong> and <strong class="color-flop">OFF</strong> after a collision`,
|
||||
// description: `if <strong>flip-flop</strong> is <strong class="color-flop">ON</strong>, collisions set it to <strong class="color-flop">OFF</strong>
|
||||
// <br>if <strong>flip-flop</strong> is <strong class="color-flop">OFF</strong>, collisions set it to <strong class="color-flop">ON</strong>`,
|
||||
description: `<strong>flip-flop</strong> toggles <strong class="color-flop">ON</strong> and <strong class="color-flop">OFF</strong> after a <strong>collision</strong><br>unlock advanced <strong class='color-m'>tech</strong> that runs if <strong class="color-flop">ON</strong>`,
|
||||
nameInfo: "<span id = 'tech-flip-flop'></span>",
|
||||
addNameInfo() {
|
||||
setTimeout(function() {
|
||||
@@ -2742,7 +2740,7 @@
|
||||
|
||||
{
|
||||
name: "backward induction",
|
||||
description: "gain all the <strong class='color-m'>tech</strong> <strong>options</strong> you didn't <strong>choose</strong><br>from your previous <strong class='color-m'>tech</strong> selection",
|
||||
description: "<strong>choose</strong> all the <strong class='color-m'>tech</strong> <strong>options</strong> you didn't <strong>choose</strong><br>from your previous <strong class='color-m'>tech</strong> selection",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 1,
|
||||
@@ -2760,6 +2758,7 @@
|
||||
const index = powerUps.tech.choiceLog[i]
|
||||
if (powerUps.tech.choiceLog[i] !== powerUps.lastTechIndex && tech.tech[index].count < tech.tech[index].maxCount && tech.tech[index].allowed()) {
|
||||
tech.giveTech(index)
|
||||
simulation.makeTextLog(`<span class='color-var'>tech</span>.giveTech("<span class='color-text'>${tech.tech[index].name}</span>") <em>// backward induction</em>`);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user