why not
why mode is now 20% easier, but still 25% harder than hard mode easy:1, normal:2, hard:4, why:6->5 new community map unchartedCave by 3xionDev! Newtons 1st law 66->88% defense when moving fast Newtons 2nd law 66->88% damage when moving fast CIWS energy 20->18 per shot rupture disables reel and tokamak
This commit is contained in:
@@ -52,10 +52,10 @@
|
|||||||
<div style="line-height: 150%;" class="details-div">
|
<div style="line-height: 150%;" class="details-div">
|
||||||
<label for="difficulty-select" title="effects: number of mobs, damage done by mobs, damage done to mobs, mob speed, heal effects">combat difficulty:</label>
|
<label for="difficulty-select" title="effects: number of mobs, damage done by mobs, damage done to mobs, mob speed, heal effects">combat difficulty:</label>
|
||||||
<select name="difficulty-select" id="difficulty-select" style="background-color: #fff">
|
<select name="difficulty-select" id="difficulty-select" style="background-color: #fff">
|
||||||
<option value="1">easy ⚆</option>
|
<option value="1">easy</option>
|
||||||
<option value="2" selected>normal ⚆</option>
|
<option value="2" selected>normal ⚆</option>
|
||||||
<option value="4">hard ⚆</option>
|
<option value="4">hard ⚆</option>
|
||||||
<option value="6">why ⚇</option>
|
<option value="5">why ⚇</option>
|
||||||
</select>
|
</select>
|
||||||
<br>
|
<br>
|
||||||
<input onclick="build.showImages('settings')" type="checkbox" id="hide-images" name="hide-images" style="width:17px; height:17px;">
|
<input onclick="build.showImages('settings')" type="checkbox" id="hide-images" name="hide-images" style="width:17px; height:17px;">
|
||||||
|
|||||||
@@ -305,17 +305,14 @@ const build = {
|
|||||||
// console.log(localSettings.isHideImages, from)
|
// console.log(localSettings.isHideImages, from)
|
||||||
},
|
},
|
||||||
hideHUD() {
|
hideHUD() {
|
||||||
|
|
||||||
if (simulation.isTraining) {
|
if (simulation.isTraining) {
|
||||||
localSettings.isHideHUD = false
|
localSettings.isHideHUD = false
|
||||||
} else {
|
} else {
|
||||||
localSettings.isHideHUD = !localSettings.isHideHUD
|
localSettings.isHideHUD = !localSettings.isHideHUD
|
||||||
}
|
}
|
||||||
|
|
||||||
if (localSettings.isAllowed) localStorage.setItem("localSettings", JSON.stringify(localSettings)); //update local storage
|
if (localSettings.isAllowed) localStorage.setItem("localSettings", JSON.stringify(localSettings)); //update local storage
|
||||||
document.getElementById("hide-hud").checked = localSettings.isHideHUD
|
document.getElementById("hide-hud").checked = localSettings.isHideHUD
|
||||||
document.getElementById("hide-hud").classList.toggle("ticked")
|
document.getElementById("hide-hud").classList.toggle("ticked")
|
||||||
|
|
||||||
simulation.removeEphemera("dmgDefBars")
|
simulation.removeEphemera("dmgDefBars")
|
||||||
if (!localSettings.isHideHUD) {
|
if (!localSettings.isHideHUD) {
|
||||||
simulation.ephemera.push({
|
simulation.ephemera.push({
|
||||||
@@ -791,9 +788,9 @@ ${simulation.isCheating ? "<br><br><em>lore disabled</em>" : ""}
|
|||||||
<div>
|
<div>
|
||||||
<select name="difficulty-select" id="difficulty-select-experiment">
|
<select name="difficulty-select" id="difficulty-select-experiment">
|
||||||
<option value="1">easy</option>
|
<option value="1">easy</option>
|
||||||
<option value="2" selected>normal</option>
|
<option value="2" selected>normal ⚆</option>
|
||||||
<option value="4">hard</option>
|
<option value="4">hard ⚆</option>
|
||||||
<option value="6">why</option>
|
<option value="5">why ⚇</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<label for="hide-images-experiment" title="reload experiment with no images for fields, guns, and tech" style="font-size: 0.85em;">hide images</label>
|
<label for="hide-images-experiment" title="reload experiment with no images for fields, guns, and tech" style="font-size: 0.85em;">hide images</label>
|
||||||
|
|||||||
423
js/level.js
423
js/level.js
@@ -11,7 +11,7 @@ const level = {
|
|||||||
// playableLevels: ["pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion"],
|
// playableLevels: ["pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion"],
|
||||||
//see level.populateLevels: (intro, ... , reservoir or factory, reactor, ... , subway, final) added later
|
//see level.populateLevels: (intro, ... , reservoir or factory, reactor, ... , subway, final) added later
|
||||||
playableLevels: ["labs", "rooftops", "skyscrapers", "warehouse", "highrise", "office", "aerie", "satellite", "sewers", "testChamber", "pavilion", "lock"],
|
playableLevels: ["labs", "rooftops", "skyscrapers", "warehouse", "highrise", "office", "aerie", "satellite", "sewers", "testChamber", "pavilion", "lock"],
|
||||||
communityLevels: ["gauntlet", "stronghold", "basement", "crossfire", "vats", "run", "ngon", "house", "perplex", "coliseum", "tunnel", "islands", "temple", "dripp", "biohazard", "stereoMadness", "yingYang", "staircase", "fortress", "commandeer", "clock", "buttonbutton", "downpour", "superNgonBros", "underpass", "cantilever", "tlinat", "ruins", "ace", "crimsonTowers", "LaunchSite", "shipwreck"],
|
communityLevels: ["gauntlet", "stronghold", "basement", "crossfire", "vats", "run", "ngon", "house", "perplex", "coliseum", "tunnel", "islands", "temple", "dripp", "biohazard", "stereoMadness", "yingYang", "staircase", "fortress", "commandeer", "clock", "buttonbutton", "downpour", "superNgonBros", "underpass", "cantilever", "tlinat", "ruins", "ace", "crimsonTowers", "LaunchSite", "shipwreck", "unchartedCave"],
|
||||||
trainingLevels: ["walk", "crouch", "jump", "hold", "throw", "throwAt", "deflect", "heal", "fire", "nailGun", "shotGun", "superBall", "matterWave", "missile", "stack", "mine", "grenades", "harpoon", "diamagnetism"],
|
trainingLevels: ["walk", "crouch", "jump", "hold", "throw", "throwAt", "deflect", "heal", "fire", "nailGun", "shotGun", "superBall", "matterWave", "missile", "stack", "mine", "grenades", "harpoon", "diamagnetism"],
|
||||||
levels: [],
|
levels: [],
|
||||||
start() {
|
start() {
|
||||||
@@ -49,7 +49,7 @@ const level = {
|
|||||||
// for (let i = 0; i < 10; i++) powerUps.directSpawn(1750, -500, "research");
|
// for (let i = 0; i < 10; i++) powerUps.directSpawn(1750, -500, "research");
|
||||||
// for (let i = 0; i < 100; i++) powerUps.directSpawn(1750, -500, "coupling");
|
// for (let i = 0; i < 100; i++) powerUps.directSpawn(1750, -500, "coupling");
|
||||||
|
|
||||||
// level.shipwreck();
|
// level.unchartedCave();
|
||||||
|
|
||||||
// for (let i = 0; i < 4; ++i) spawn.hopMother(1900, -500)
|
// for (let i = 0; i < 4; ++i) spawn.hopMother(1900, -500)
|
||||||
// for (let i = 0; i < 5; ++i) spawn.starter(1900, -500)
|
// for (let i = 0; i < 5; ++i) spawn.starter(1900, -500)
|
||||||
@@ -218,7 +218,7 @@ const level = {
|
|||||||
return "normal"
|
return "normal"
|
||||||
} else if (simulation.difficultyMode === 4) {
|
} else if (simulation.difficultyMode === 4) {
|
||||||
return "hard"
|
return "hard"
|
||||||
} else if (simulation.difficultyMode === 6) {
|
} else if (simulation.difficultyMode === 5) {
|
||||||
return "why"
|
return "why"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -30076,6 +30076,423 @@ const level = {
|
|||||||
if (simulation.difficulty > 1) spawn.randomLevelBoss(3928, -655);
|
if (simulation.difficulty > 1) spawn.randomLevelBoss(3928, -655);
|
||||||
spawn.secondaryBossChance(4088, -1744)
|
spawn.secondaryBossChance(4088, -1744)
|
||||||
|
|
||||||
|
level.custom = () => {
|
||||||
|
level.exit.drawAndCheck();
|
||||||
|
|
||||||
|
level.enter.draw();
|
||||||
|
};
|
||||||
|
},
|
||||||
|
unchartedCave() {
|
||||||
|
simulation.makeTextLog(`<strong>unchartedCave</strong> by <span class='color-var'>3xionDev</span>`);
|
||||||
|
//lore.unlockTesting();
|
||||||
|
//simulation.enableConstructMode();
|
||||||
|
level.difficultyIncrease(15);
|
||||||
|
level.setPosToSpawn(0, -50); //normal spawn
|
||||||
|
level.exit.x = 20985;
|
||||||
|
level.exit.y = 2816;
|
||||||
|
spawn.mapRect(level.enter.x, level.enter.y + 20, 100, 20); //bump for level entrance
|
||||||
|
spawn.mapRect(level.exit.x, level.exit.y + 20, 100, 20); //bump for level exit
|
||||||
|
level.defaultZoom = 1900
|
||||||
|
simulation.zoomTransition(level.defaultZoom)
|
||||||
|
document.body.style.backgroundColor = "#979797";
|
||||||
|
// color.map = "#444" //custom map color
|
||||||
|
|
||||||
|
spawn.randomMob(1000, -975, 0);
|
||||||
|
spawn.randomMob(2550, -575, 0);
|
||||||
|
spawn.randomMob(2050, -325, 0);
|
||||||
|
spawn.randomMob(2475, -1350, 0);
|
||||||
|
spawn.randomMob(2800, -1100, 0);
|
||||||
|
spawn.randomMob(3400, -1250, 0);
|
||||||
|
spawn.randomMob(3375, -425, 0);
|
||||||
|
spawn.randomMob(4575, -775, 0);
|
||||||
|
spawn.randomMob(5750, -750, 0);
|
||||||
|
spawn.randomMob(5475, -325, 0);
|
||||||
|
spawn.randomMob(7625, -250, 0);
|
||||||
|
spawn.randomMob(9675, 525, 0);
|
||||||
|
spawn.randomMob(12150, 1200, 0);
|
||||||
|
spawn.randomMob(12825, 1275, 0);
|
||||||
|
spawn.randomMob(13175, 1725, 0);
|
||||||
|
spawn.randomMob(13725, 1375, 0);
|
||||||
|
spawn.randomMob(15550, 2375, 0);
|
||||||
|
spawn.randomMob(17625, 3550, 0);
|
||||||
|
spawn.randomMob(18850, 3500, 0);
|
||||||
|
spawn.mapRect(-150, 0, 300, 75);
|
||||||
|
spawn.mapRect(-375, 25, 2550, 75);
|
||||||
|
spawn.mapRect(-400, -950, 75, 1025);
|
||||||
|
spawn.mapRect(-400, 75, 50, 25);
|
||||||
|
spawn.mapRect(-400, -1750, 100, 800);
|
||||||
|
spawn.mapRect(-350, -1050, 50, 1125);
|
||||||
|
spawn.mapRect(-400, -1950, 100, 275);
|
||||||
|
spawn.mapRect(1875, 25, 2075, 75);
|
||||||
|
spawn.mapRect(-400, 50, 4350, 1175);
|
||||||
|
spawn.mapRect(-400, 650, 4350, 1175);
|
||||||
|
spawn.mapRect(2975, 25, 3575, 1800);
|
||||||
|
spawn.mapRect(-375, -1925, 1725, 800);
|
||||||
|
spawn.mapRect(-400, -2275, 5625, 725);
|
||||||
|
spawn.mapRect(1075, -1725, 500, 425);
|
||||||
|
spawn.mapRect(1275, -1325, 200, 125);
|
||||||
|
spawn.mapRect(1525, -1325, 25, 75);
|
||||||
|
spawn.mapRect(1400, -1425, 125, 200);
|
||||||
|
spawn.mapRect(1400, -1725, 325, 275);
|
||||||
|
spawn.mapRect(1675, -1600, 125, 100);
|
||||||
|
spawn.mapRect(-350, -1200, 250, 250);
|
||||||
|
spawn.mapRect(-175, -1225, 250, 175);
|
||||||
|
spawn.mapRect(-50, -1150, 275, 50);
|
||||||
|
spawn.bodyRect(-275, -475, 75, 175);
|
||||||
|
spawn.bodyRect(325, -750, 50, 50);
|
||||||
|
spawn.mapRect(2075, -1575, 75, 725);
|
||||||
|
spawn.mapRect(1900, -1600, 50, 325);
|
||||||
|
spawn.mapRect(2600, -1675, 25, 850);
|
||||||
|
spawn.mapRect(2125, -1625, 125, 425);
|
||||||
|
spawn.mapRect(2125, -1200, 50, 75);
|
||||||
|
spawn.mapRect(2075, -875, 25, 150);
|
||||||
|
spawn.mapRect(2025, -1625, 50, 250);
|
||||||
|
spawn.mapRect(4700, -2275, 2175, 1275);
|
||||||
|
spawn.mapRect(3975, -1725, 1125, 400);
|
||||||
|
spawn.mapRect(4300, -1400, 650, 200);
|
||||||
|
spawn.mapRect(4600, -1225, 175, 125);
|
||||||
|
spawn.mapRect(3925, -1600, 175, 150);
|
||||||
|
spawn.mapRect(3950, -1450, 50, 75);
|
||||||
|
spawn.mapRect(4225, -1350, 150, 100);
|
||||||
|
spawn.mapRect(3875, -1600, 175, 175);
|
||||||
|
spawn.mapRect(4450, -1275, 200, 125);
|
||||||
|
spawn.mapRect(4850, -1125, 50, 550);
|
||||||
|
spawn.mapRect(5225, -1175, 25, 400);
|
||||||
|
spawn.mapRect(3250, -1725, 25, 1200);
|
||||||
|
spawn.mapRect(3600, -1750, 75, 550);
|
||||||
|
spawn.mapRect(2850, -1700, 325, 325);
|
||||||
|
spawn.mapRect(2900, -1525, 175, 750);
|
||||||
|
spawn.mapRect(2975, -900, 75, 450);
|
||||||
|
spawn.mapRect(550, -175, 150, 500);
|
||||||
|
spawn.mapRect(625, -300, 125, 450);
|
||||||
|
spawn.mapRect(725, -175, 50, 475);
|
||||||
|
spawn.mapRect(675, -400, 25, 200);
|
||||||
|
spawn.mapRect(450, -25, 150, 150);
|
||||||
|
spawn.mapRect(275, -1200, 75, 625);
|
||||||
|
spawn.mapRect(300, -1300, 150, 600);
|
||||||
|
spawn.mapRect(425, -1250, 25, 800);
|
||||||
|
spawn.mapRect(425, -1225, 125, 425);
|
||||||
|
spawn.mapRect(525, -1175, 100, 250);
|
||||||
|
spawn.mapRect(175, -1200, 175, 375);
|
||||||
|
spawn.mapRect(1600, -375, 50, 650);
|
||||||
|
spawn.mapRect(1650, -525, 75, 725);
|
||||||
|
spawn.mapRect(1450, -225, 150, 475);
|
||||||
|
spawn.mapRect(1400, -125, 100, 275);
|
||||||
|
spawn.mapRect(1500, -325, 125, 150);
|
||||||
|
spawn.mapRect(1750, -225, 100, 350);
|
||||||
|
spawn.mapRect(1700, -300, 75, 275);
|
||||||
|
spawn.mapRect(1850, -150, 25, 325);
|
||||||
|
spawn.mapRect(1750, -50, 75, 225);
|
||||||
|
spawn.mapRect(1600, -50, 200, 250);
|
||||||
|
spawn.mapRect(1700, -600, 25, 125);
|
||||||
|
spawn.bodyRect(1275, -250, 50, 125);
|
||||||
|
spawn.mapRect(6450, 50, 675, 2000);
|
||||||
|
spawn.mapRect(6925, 175, 675, 300);
|
||||||
|
spawn.mapRect(7450, 300, 675, 775);
|
||||||
|
spawn.mapRect(6925, 325, 1275, 1850);
|
||||||
|
spawn.mapRect(7025, 125, 375, 100);
|
||||||
|
spawn.mapRect(7500, 275, 425, 100);
|
||||||
|
spawn.mapRect(6700, -2275, 1975, 1575);
|
||||||
|
spawn.mapRect(6475, -1175, 400, 300);
|
||||||
|
spawn.mapRect(6550, -925, 250, 150);
|
||||||
|
spawn.mapRect(6600, -825, 175, 75);
|
||||||
|
spawn.mapRect(6300, -1050, 325, 100);
|
||||||
|
spawn.mapRect(8050, 400, 450, 1675);
|
||||||
|
spawn.mapRect(8275, 475, 800, 1550);
|
||||||
|
spawn.mapRect(8600, 575, 925, 1475);
|
||||||
|
spawn.mapRect(8400, 425, 300, 100);
|
||||||
|
spawn.mapRect(8975, 550, 300, 100);
|
||||||
|
spawn.mapRect(6900, -775, 2375, 200);
|
||||||
|
spawn.mapRect(7350, -725, 2125, 275);
|
||||||
|
spawn.mapRect(7725, -550, 1800, 225);
|
||||||
|
spawn.mapRect(8300, -400, 1750, 125);
|
||||||
|
spawn.mapRect(8725, -350, 1350, 225);
|
||||||
|
spawn.mapRect(8525, -375, 400, 150);
|
||||||
|
spawn.mapRect(8650, -250, 150, 50);
|
||||||
|
spawn.mapRect(8200, -350, 175, 50);
|
||||||
|
spawn.mapRect(7600, -475, 275, 100);
|
||||||
|
spawn.mapRect(7475, -500, 175, 75);
|
||||||
|
spawn.mapRect(7200, -600, 300, 75);
|
||||||
|
spawn.mapRect(7075, -600, 150, 25);
|
||||||
|
spawn.mapRect(7125, -575, 100, 25);
|
||||||
|
spawn.mapRect(7275, -525, 100, 25);
|
||||||
|
spawn.mapRect(7500, 225, 275, 125);
|
||||||
|
spawn.mapRect(5800, -1175, 675, 100);
|
||||||
|
spawn.mapRect(9400, 625, 500, 1725);
|
||||||
|
spawn.mapRect(9750, 775, 575, 1500);
|
||||||
|
spawn.mapRect(10050, 1075, 675, 1300);
|
||||||
|
spawn.mapRect(9725, -250, 975, 350);
|
||||||
|
spawn.mapRect(10275, -100, 1000, 625);
|
||||||
|
spawn.mapRect(10125, 25, 375, 350);
|
||||||
|
spawn.mapRect(9900, 25, 375, 225);
|
||||||
|
spawn.mapRect(10075, 250, 200, 50);
|
||||||
|
spawn.mapRect(10275, 425, 75, 75);
|
||||||
|
spawn.mapRect(10150, 325, 200, 75);
|
||||||
|
spawn.mapRect(10200, 375, 125, 100);
|
||||||
|
spawn.mapRect(9600, -175, 225, 200);
|
||||||
|
spawn.mapRect(9650, -25, 125, 100);
|
||||||
|
spawn.mapRect(9450, -200, 225, 175);
|
||||||
|
spawn.mapRect(10000, 200, 50, 25);
|
||||||
|
spawn.mapRect(9800, 50, 200, 125);
|
||||||
|
spawn.mapRect(9875, 725, 150, 75);
|
||||||
|
spawn.mapRect(10300, 900, 100, 325);
|
||||||
|
spawn.mapRect(10375, 950, 75, 225);
|
||||||
|
spawn.mapRect(10425, 1000, 75, 175);
|
||||||
|
spawn.mapRect(9100, -150, 375, 75);
|
||||||
|
spawn.mapRect(3525, 0, 1850, 100);
|
||||||
|
spawn.mapRect(3650, -25, 1475, 175);
|
||||||
|
spawn.mapRect(4000, -100, 950, 225);
|
||||||
|
spawn.mapRect(4450, -175, 300, 175);
|
||||||
|
spawn.mapRect(1825, -25, 775, 100);
|
||||||
|
spawn.mapRect(4150, -1375, 175, 75);
|
||||||
|
spawn.mapRect(3800, -1600, 125, 100);
|
||||||
|
spawn.mapRect(2700, 0, 175, 100);
|
||||||
|
spawn.mapRect(2750, -50, 75, 150);
|
||||||
|
spawn.mapRect(2775, -25, 75, 75);
|
||||||
|
spawn.bodyRect(3775, -575, 50, 75);
|
||||||
|
spawn.mapRect(8050, -2300, 4650, 1750);
|
||||||
|
spawn.mapRect(9300, -975, 2450, 575);
|
||||||
|
spawn.mapRect(9925, -775, 2350, 700);
|
||||||
|
spawn.mapRect(10675, -600, 2025, 1175);
|
||||||
|
spawn.mapRect(10300, 825, 50, 125);
|
||||||
|
spawn.mapRect(10000, 750, 100, 25);
|
||||||
|
spawn.mapRect(9875, 700, 75, 75);
|
||||||
|
spawn.mapRect(9850, 675, 75, 50);
|
||||||
|
spawn.mapRect(8975, 525, 225, 50);
|
||||||
|
spawn.mapRect(8625, 450, 225, 50);
|
||||||
|
spawn.mapRect(8925, -150, 175, 50);
|
||||||
|
spawn.mapRect(-500, 1775, 10800, 1800);
|
||||||
|
spawn.mapRect(10075, 2200, 625, 1850);
|
||||||
|
spawn.mapRect(10525, 475, 250, 75);
|
||||||
|
spawn.mapRect(10450, 1025, 25, 25);
|
||||||
|
spawn.mapRect(10450, 1050, 150, 25);
|
||||||
|
spawn.mapRect(10675, 1125, 175, 1700);
|
||||||
|
spawn.mapRect(10725, 1225, 400, 725);
|
||||||
|
spawn.mapRect(10975, 1425, 300, 1300);
|
||||||
|
spawn.mapRect(11225, 1550, 700, 1275);
|
||||||
|
spawn.mapRect(11725, 1625, 1150, 1150);
|
||||||
|
spawn.mapRect(11050, 1275, 125, 350);
|
||||||
|
spawn.mapRect(11150, 1350, 75, 175);
|
||||||
|
spawn.mapRect(10825, 1200, 125, 75);
|
||||||
|
spawn.mapRect(10325, 1750, 1275, 1150);
|
||||||
|
spawn.mapRect(11250, 1500, 325, 100);
|
||||||
|
spawn.mapRect(11225, 1475, 200, 75);
|
||||||
|
spawn.mapRect(11525, 1525, 350, 75);
|
||||||
|
spawn.mapRect(11875, 1575, 425, 100);
|
||||||
|
spawn.mapRect(12200, 1625, 25, 25);
|
||||||
|
spawn.mapRect(12200, 1600, 250, 75);
|
||||||
|
spawn.randomMob(11250, 675, 0);
|
||||||
|
spawn.bodyRect(10900, 575, 50, 625);
|
||||||
|
spawn.mapRect(11050, 575, 1725, 200);
|
||||||
|
spawn.mapRect(11275, 750, 1650, 125);
|
||||||
|
spawn.mapRect(11575, 875, 1525, 150);
|
||||||
|
spawn.mapRect(11450, 850, 250, 125);
|
||||||
|
spawn.mapRect(11325, 850, 225, 50);
|
||||||
|
spawn.mapRect(11400, 875, 100, 75);
|
||||||
|
spawn.mapRect(11175, 750, 200, 75);
|
||||||
|
spawn.mapRect(11125, 775, 100, 25);
|
||||||
|
spawn.mapRect(11250, 825, 50, 25);
|
||||||
|
spawn.mapRect(11675, 1025, 400, 50);
|
||||||
|
spawn.mapRect(12175, 1025, 50, 150);
|
||||||
|
spawn.mapRect(11625, 1000, 75, 50);
|
||||||
|
spawn.mapRect(12200, 1175, 25, 25);
|
||||||
|
spawn.mapRect(12400, 950, 100, 275);
|
||||||
|
spawn.mapRect(12450, 1200, 50, 100);
|
||||||
|
spawn.mapRect(12425, 1225, 50, 125);
|
||||||
|
spawn.mapRect(12425, 1325, 25, 75);
|
||||||
|
spawn.mapRect(12325, 1025, 25, 100);
|
||||||
|
spawn.mapRect(12625, 1000, 625, 150);
|
||||||
|
spawn.mapRect(12775, 1150, 600, 50);
|
||||||
|
spawn.bodyRect(12075, 1325, 100, 50);
|
||||||
|
spawn.mapRect(12825, 2000, 800, 975);
|
||||||
|
spawn.mapRect(13475, 1625, 150, 475);
|
||||||
|
spawn.mapRect(12850, 1750, 50, 275);
|
||||||
|
spawn.mapRect(12875, 1850, 75, 225);
|
||||||
|
spawn.mapRect(12950, 1925, 75, 125);
|
||||||
|
spawn.mapRect(13450, 1700, 50, 350);
|
||||||
|
spawn.mapRect(13400, 1750, 75, 350);
|
||||||
|
spawn.mapRect(13325, 1875, 100, 200);
|
||||||
|
spawn.mapRect(13350, 1800, 75, 100);
|
||||||
|
spawn.mapRect(13300, 1950, 25, 75);
|
||||||
|
spawn.mapRect(12925, 1900, 75, 25);
|
||||||
|
spawn.mapRect(12900, 1800, 25, 75);
|
||||||
|
spawn.mapRect(13000, 1975, 150, 25);
|
||||||
|
spawn.mapRect(12475, 100, 1150, 925);
|
||||||
|
spawn.mapRect(13200, 100, 925, 1100);
|
||||||
|
spawn.mapRect(13525, 1150, 400, 75);
|
||||||
|
spawn.mapRect(13875, 1200, 175, 125);
|
||||||
|
spawn.mapRect(13975, 1300, 75, 225);
|
||||||
|
spawn.mapRect(14025, 1425, 25, 225);
|
||||||
|
spawn.mapRect(13600, 1700, 100, 1250);
|
||||||
|
spawn.mapRect(13675, 1775, 150, 1200);
|
||||||
|
spawn.mapRect(13775, 1825, 75, 1150);
|
||||||
|
spawn.mapRect(13825, 1900, 50, 1075);
|
||||||
|
spawn.mapRect(13850, 1950, 75, 1025);
|
||||||
|
spawn.mapRect(13875, 2025, 75, 950);
|
||||||
|
spawn.mapRect(13925, 2100, 50, 1025);
|
||||||
|
spawn.mapRect(13900, 2125, 100, 1000);
|
||||||
|
spawn.mapRect(13975, 2225, 75, 900);
|
||||||
|
spawn.mapRect(14000, 2375, 100, 750);
|
||||||
|
spawn.mapRect(14050, 1200, 75, 525);
|
||||||
|
spawn.mapRect(14075, 1625, 100, 150);
|
||||||
|
spawn.mapRect(14175, 1750, 50, 175);
|
||||||
|
spawn.mapRect(14150, 1750, 50, 75);
|
||||||
|
spawn.mapRect(14225, 1875, 50, 150);
|
||||||
|
spawn.mapRect(14250, 2000, 50, 150);
|
||||||
|
spawn.mapRect(14100, 300, 300, 1450);
|
||||||
|
spawn.mapRect(14225, 1675, 150, 250);
|
||||||
|
spawn.mapRect(14300, 1700, 100, 675);
|
||||||
|
spawn.mapRect(14275, 1925, 50, 175);
|
||||||
|
spawn.mapRect(14025, 2300, 50, 200);
|
||||||
|
spawn.mapRect(14075, 2600, 275, 700);
|
||||||
|
spawn.mapRect(14050, 2425, 75, 475);
|
||||||
|
spawn.mapRect(14100, 2525, 50, 150);
|
||||||
|
spawn.mapRect(14150, 2575, 50, 100);
|
||||||
|
spawn.mapRect(14325, 2650, 800, 1300);
|
||||||
|
spawn.mapRect(15000, 2600, 1075, 1275);
|
||||||
|
spawn.mapRect(15100, 2550, 1200, 1400);
|
||||||
|
spawn.mapRect(14375, 1075, 1400, 1175);
|
||||||
|
spawn.mapRect(14375, 2225, 200, 50);
|
||||||
|
spawn.mapRect(14375, 2275, 75, 75);
|
||||||
|
spawn.mapRect(14425, 2275, 75, 25);
|
||||||
|
spawn.mapRect(14775, 2200, 50, 125);
|
||||||
|
spawn.mapRect(14725, 2250, 25, 125);
|
||||||
|
spawn.bodyRect(14300, 2375, 50, 225);
|
||||||
|
spawn.mapRect(15075, 2600, 50, 25);
|
||||||
|
spawn.mapRect(15075, 2575, 50, 50);
|
||||||
|
spawn.mapRect(14950, 2625, 50, 25);
|
||||||
|
spawn.mapRect(15525, 2525, 300, 50);
|
||||||
|
spawn.mapRect(15550, 2500, 175, 100);
|
||||||
|
spawn.mapRect(14975, 2250, 200, 25);
|
||||||
|
spawn.mapRect(14400, 1000, 1900, 1250);
|
||||||
|
spawn.mapRect(15925, 2250, 275, 25);
|
||||||
|
spawn.mapRect(15975, 2275, 150, 25);
|
||||||
|
spawn.mapRect(16075, 2300, 25, 75);
|
||||||
|
spawn.mapRect(16250, 2575, 275, 1275);
|
||||||
|
spawn.mapRect(16400, 2600, 250, 1300);
|
||||||
|
spawn.mapRect(16525, 2675, 300, 1150);
|
||||||
|
spawn.mapRect(16650, 2725, 300, 1175);
|
||||||
|
spawn.mapRect(16200, 1050, 600, 1225);
|
||||||
|
spawn.mapRect(16525, 1025, 500, 1300);
|
||||||
|
spawn.mapRect(16725, 1150, 525, 1225);
|
||||||
|
spawn.mapRect(16900, 1425, 550, 1000);
|
||||||
|
spawn.mapRect(16375, 2250, 250, 50);
|
||||||
|
spawn.mapRect(16675, 2325, 75, 25);
|
||||||
|
spawn.mapRect(16850, 2400, 25, 25);
|
||||||
|
spawn.mapRect(16850, 2375, 100, 50);
|
||||||
|
spawn.mapRect(16800, 2375, 50, 25);
|
||||||
|
spawn.mapRect(16575, 2650, 150, 75);
|
||||||
|
spawn.mapRect(16625, 2625, 50, 50);
|
||||||
|
spawn.mapRect(16800, 2700, 50, 50);
|
||||||
|
spawn.mapRect(16950, 2900, 450, 1175);
|
||||||
|
spawn.mapRect(16900, 2825, 100, 275);
|
||||||
|
spawn.mapRect(16900, 2775, 75, 150);
|
||||||
|
spawn.mapRect(16950, 2850, 100, 125);
|
||||||
|
spawn.mapRect(17600, 3000, 350, 25);
|
||||||
|
spawn.mapRect(17650, 3025, 200, 50);
|
||||||
|
spawn.mapRect(17750, 3050, 100, 1200);
|
||||||
|
spawn.mapRect(17850, 3025, 25, 425);
|
||||||
|
spawn.mapRect(18200, 3100, 450, 25);
|
||||||
|
spawn.mapRect(18250, 3125, 150, 100);
|
||||||
|
spawn.mapRect(18400, 3125, 200, 50);
|
||||||
|
spawn.mapRect(18400, 3150, 75, 900);
|
||||||
|
spawn.mapRect(18400, 3950, 75, 375);
|
||||||
|
spawn.mapRect(17750, 4000, 100, 325);
|
||||||
|
spawn.mapRect(18200, 3075, 525, 50);
|
||||||
|
spawn.mapRect(18450, 3175, 50, 275);
|
||||||
|
spawn.mapRect(18575, 3125, 50, 50);
|
||||||
|
spawn.mapRect(18600, 3100, 50, 50);
|
||||||
|
spawn.mapRect(18325, 3200, 100, 175);
|
||||||
|
spawn.mapRect(18350, 3350, 75, 100);
|
||||||
|
spawn.mapRect(18375, 3450, 25, 75);
|
||||||
|
spawn.mapRect(18500, 3175, 25, 150);
|
||||||
|
spawn.mapRect(17725, 3075, 50, 175);
|
||||||
|
spawn.mapRect(17700, 3075, 25, 50);
|
||||||
|
spawn.mapRect(18550, 3150, 50, 1275);
|
||||||
|
spawn.mapRect(18975, 2975, 525, 25);
|
||||||
|
spawn.mapRect(19025, 2975, 400, 75);
|
||||||
|
spawn.mapRect(19150, 3025, 150, 1400);
|
||||||
|
spawn.mapRect(19250, 3025, 100, 325);
|
||||||
|
spawn.mapRect(19100, 3050, 75, 225);
|
||||||
|
spawn.mapRect(19125, 3275, 50, 75);
|
||||||
|
spawn.mapRect(19275, 3325, 50, 200);
|
||||||
|
spawn.mapRect(19700, 3000, 525, 50);
|
||||||
|
spawn.mapRect(19750, 3050, 175, 1275);
|
||||||
|
spawn.mapRect(19925, 3025, 100, 225);
|
||||||
|
spawn.mapRect(19900, 3200, 75, 250);
|
||||||
|
spawn.mapRect(20025, 3050, 50, 100);
|
||||||
|
spawn.mapRect(20000, 3150, 50, 75);
|
||||||
|
spawn.mapRect(19900, 3450, 50, 125);
|
||||||
|
spawn.mapRect(19725, 3050, 75, 150);
|
||||||
|
spawn.mapRect(19650, 3025, 25, 25);
|
||||||
|
spawn.mapRect(19650, 3000, 625, 25);
|
||||||
|
spawn.mapRect(17375, 1450, 3525, 250);
|
||||||
|
spawn.mapRect(17400, 1675, 100, 400);
|
||||||
|
spawn.mapRect(17475, 1675, 75, 150);
|
||||||
|
spawn.mapRect(17525, 1650, 125, 75);
|
||||||
|
spawn.mapRect(17475, 1775, 50, 175);
|
||||||
|
spawn.mapRect(17425, 2025, 50, 200);
|
||||||
|
spawn.mapRect(17825, 1650, 375, 75);
|
||||||
|
spawn.mapRect(17975, 1700, 100, 125);
|
||||||
|
spawn.mapRect(18050, 1800, 50, 150);
|
||||||
|
spawn.mapRect(18025, 1675, 100, 150);
|
||||||
|
spawn.mapRect(18075, 1900, 25, 175);
|
||||||
|
spawn.mapRect(20550, 2825, 825, 1525);
|
||||||
|
spawn.mapRect(20825, 1450, 550, 250);
|
||||||
|
spawn.mapRect(21350, 1450, 300, 2700);
|
||||||
|
spawn.mapRect(21100, 1650, 275, 425);
|
||||||
|
spawn.mapRect(21225, 2025, 175, 275);
|
||||||
|
spawn.mapRect(21175, 2025, 75, 150);
|
||||||
|
spawn.mapRect(21300, 2275, 75, 150);
|
||||||
|
spawn.mapRect(21000, 1675, 100, 300);
|
||||||
|
spawn.mapRect(21050, 1950, 50, 100);
|
||||||
|
spawn.mapRect(20700, 1700, 200, 50);
|
||||||
|
spawn.mapRect(20750, 1725, 50, 225);
|
||||||
|
spawn.mapRect(20800, 1725, 50, 175);
|
||||||
|
spawn.mapRect(20750, 1925, 25, 150);
|
||||||
|
spawn.mapRect(20975, 1675, 50, 225);
|
||||||
|
spawn.mapRect(21275, 2300, 50, 50);
|
||||||
|
spawn.mapRect(20550, 1700, 150, 50);
|
||||||
|
spawn.mapRect(20550, 1725, 50, 825);
|
||||||
|
spawn.mapRect(20575, 1725, 50, 300);
|
||||||
|
spawn.mapRect(20600, 1725, 50, 75);
|
||||||
|
spawn.mapRect(20600, 1875, 25, 350);
|
||||||
|
spawn.mapRect(20675, 1750, 25, 400);
|
||||||
|
spawn.bodyRect(20550, 2550, 50, 275);
|
||||||
|
spawn.mapRect(20500, 2850, 75, 1500);
|
||||||
|
spawn.mapRect(20475, 2900, 50, 1425);
|
||||||
|
spawn.bodyRect(21200, 2550, 50, 75);
|
||||||
|
spawn.bodyRect(20775, 2225, 75, 75);
|
||||||
|
|
||||||
|
spawn.mapRect(19525, 1700, 550, 25);
|
||||||
|
spawn.mapRect(19650, 1725, 100, 275);
|
||||||
|
spawn.mapRect(19725, 1700, 50, 525);
|
||||||
|
spawn.mapRect(19750, 1725, 250, 150);
|
||||||
|
spawn.mapRect(19775, 1850, 100, 225);
|
||||||
|
spawn.mapRect(19850, 1875, 100, 75);
|
||||||
|
spawn.mapRect(19600, 1675, 125, 175);
|
||||||
|
spawn.mapRect(18425, 1700, 1050, 50);
|
||||||
|
spawn.mapRect(18475, 1750, 800, 25);
|
||||||
|
spawn.randomMob(12000, 2850, 0);
|
||||||
|
spawn.mapRect(10550, 2725, 5275, 1775);
|
||||||
|
spawn.mapRect(15700, 3850, 5950, 1050);
|
||||||
|
spawn.mapRect(8225, 2975, 4050, 1500);
|
||||||
|
spawn.mapRect(12100, -2300, 9350, 2925);
|
||||||
|
spawn.mapRect(14175, 350, 8725, 1075);
|
||||||
|
spawn.mapRect(20825, -2325, 3700, 2650);
|
||||||
|
spawn.mapRect(21450, 50, 4450, 5925);
|
||||||
|
spawn.mapRect(16325, 1125, 7175, 400);
|
||||||
|
spawn.mapRect(-875, -3775, 27375, 1625);
|
||||||
|
spawn.mapRect(-3250, -4000, 2925, 8075);
|
||||||
|
spawn.mapRect(8125, 4475, 18250, 7300);
|
||||||
|
spawn.mapRect(7125, 3975, 8775, 2800);
|
||||||
|
spawn.mapRect(-4300, -4475, 2300, 11350);
|
||||||
|
spawn.randomGroup(5835, -532, 0.4);
|
||||||
|
if (simulation.difficulty > 1) spawn.randomLevelBoss(18823, 2191);
|
||||||
|
spawn.secondaryBossChance(20217, 1913)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
level.custom = () => {
|
level.custom = () => {
|
||||||
level.exit.drawAndCheck();
|
level.exit.drawAndCheck();
|
||||||
|
|
||||||
|
|||||||
16
js/player.js
16
js/player.js
@@ -567,7 +567,7 @@ const m = {
|
|||||||
if (tech.isHarmReduceNoKill && m.lastKillCycle + 300 < m.cycle) dmg *= 0.33
|
if (tech.isHarmReduceNoKill && m.lastKillCycle + 300 < m.cycle) dmg *= 0.33
|
||||||
if (tech.squirrelFx !== 1) dmg *= 0.78//Math.pow(0.78, (tech.squirrelFx - 1) / 0.4)
|
if (tech.squirrelFx !== 1) dmg *= 0.78//Math.pow(0.78, (tech.squirrelFx - 1) / 0.4)
|
||||||
if (tech.isAddBlockMass && m.isHolding) dmg *= 0.1
|
if (tech.isAddBlockMass && m.isHolding) dmg *= 0.1
|
||||||
if (tech.isSpeedHarm && player.speed > 0.1) dmg *= 1 - Math.min(player.speed * 0.0165, 0.66)
|
if (tech.isSpeedHarm && player.speed > 0.1) dmg *= 1 - Math.min(player.speed * 0.0193, 0.88) //capped at speed of 55
|
||||||
if (tech.isHarmReduce && input.field) dmg *= 0.15
|
if (tech.isHarmReduce && input.field) dmg *= 0.15
|
||||||
if (tech.isNeutronium && input.field && m.fieldCDcycle < m.cycle) dmg *= 0.05
|
if (tech.isNeutronium && input.field && m.fieldCDcycle < m.cycle) dmg *= 0.05
|
||||||
if (tech.isBotArmor) dmg *= 0.94 ** b.totalBots()
|
if (tech.isBotArmor) dmg *= 0.94 ** b.totalBots()
|
||||||
@@ -3025,12 +3025,12 @@ const m = {
|
|||||||
m.drawHold(m.holdingTarget);
|
m.drawHold(m.holdingTarget);
|
||||||
m.holding();
|
m.holding();
|
||||||
m.throwBlock();
|
m.throwBlock();
|
||||||
} else if (input.field && m.fieldCDcycle < m.cycle) { //push away
|
} else if (input.field) { //push away
|
||||||
if (m.energy > m.fieldRegen) m.energy -= m.fieldRegen
|
if (m.energy > m.fieldRegen) m.energy -= m.fieldRegen
|
||||||
m.grabPowerUp();
|
m.grabPowerUp();
|
||||||
m.lookForPickUp();
|
m.lookForPickUp();
|
||||||
const DRAIN = 0.00035
|
const DRAIN = 0.00035
|
||||||
if (m.energy > DRAIN) {
|
if (m.energy > DRAIN && m.fieldCDcycle < m.cycle) {
|
||||||
if (tech.isFlyFaster) {
|
if (tech.isFlyFaster) {
|
||||||
//look for nearby objects to make zero-g
|
//look for nearby objects to make zero-g
|
||||||
function moveThis(who, range, mag = 1.06) {
|
function moveThis(who, range, mag = 1.06) {
|
||||||
@@ -4980,8 +4980,6 @@ const m = {
|
|||||||
} else {
|
} else {
|
||||||
m.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
m.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
||||||
if (tech.isHookDefense && m.energy > 0.33 && m.fieldCDcycle < m.cycle) {
|
if (tech.isHookDefense && m.energy > 0.33 && m.fieldCDcycle < m.cycle) {
|
||||||
const maxCount = 6 //scale the number of hooks fired
|
|
||||||
let count = maxCount
|
|
||||||
const range = 300
|
const range = 300
|
||||||
for (let i = 0; i < mob.length; i++) {
|
for (let i = 0; i < mob.length; i++) {
|
||||||
if (!mob[i].isBadTarget &&
|
if (!mob[i].isBadTarget &&
|
||||||
@@ -4989,14 +4987,14 @@ const m = {
|
|||||||
Vector.magnitude(Vector.sub(m.pos, mob[i].position)) < range &&
|
Vector.magnitude(Vector.sub(m.pos, mob[i].position)) < range &&
|
||||||
Matter.Query.ray(map, m.pos, mob[i].position).length === 0
|
Matter.Query.ray(map, m.pos, mob[i].position).length === 0
|
||||||
) {
|
) {
|
||||||
count--
|
m.energy -= 0.18
|
||||||
m.energy -= 0.2
|
|
||||||
if (m.fieldCDcycle < m.cycle + 30) m.fieldCDcycle = m.cycle + 30
|
if (m.fieldCDcycle < m.cycle + 30) m.fieldCDcycle = m.cycle + 30
|
||||||
const angle = Math.atan2(mob[i].position.y - player.position.y, mob[i].position.x - player.position.x);
|
const angle = Math.atan2(mob[i].position.y - player.position.y, mob[i].position.x - player.position.x);
|
||||||
b.harpoon(m.pos, mob[i], angle, 0.75, true, 20) // harpoon(where, target, angle = m.angle, harpoonSize = 1, isReturn = false, totalCycles = 35, isReturnAmmo = true, thrust = 0.1) {
|
b.harpoon(m.pos, mob[i], angle, 0.75, true, 20) // harpoon(where, target, angle = m.angle, harpoonSize = 1, isReturn = false, totalCycles = 35, isReturnAmmo = true, thrust = 0.1) {
|
||||||
bullet[bullet.length - 1].drain = 0
|
bullet[bullet.length - 1].drain = 0
|
||||||
for (; count > 0; count--) {
|
const maxCount = 6
|
||||||
b.harpoon(m.pos, mob[i], angle + count * 2 * Math.PI / maxCount, 0.75, true, 10)
|
for (let j = maxCount - 1; j > 0; j--) {
|
||||||
|
b.harpoon(m.pos, mob[i], angle + j * 2 * Math.PI / maxCount, 0.75, true, 10)
|
||||||
bullet[bullet.length - 1].drain = 0
|
bullet[bullet.length - 1].drain = 0
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -1424,7 +1424,7 @@ const powerUps = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
addResearchToLevel() { //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.45 - 0.3 * (simulation.difficultyMode > 5)) { //lower chance on why difficulty
|
if (mob.length && Math.random() < 0.45 - 0.3 * (simulation.difficultyMode > 4)) { //lower chance on why difficulty
|
||||||
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");
|
||||||
}
|
}
|
||||||
|
|||||||
20
js/tech.js
20
js/tech.js
@@ -253,7 +253,7 @@ const tech = {
|
|||||||
if (tech.energyDamage) dmg *= 1 + m.energy * 0.22 * tech.energyDamage;
|
if (tech.energyDamage) dmg *= 1 + m.energy * 0.22 * tech.energyDamage;
|
||||||
if (tech.isDamageFromBulletCount) dmg *= 1 + bullet.length * 0.007
|
if (tech.isDamageFromBulletCount) dmg *= 1 + bullet.length * 0.007
|
||||||
if (tech.isNoFireDamage && m.cycle > m.fireCDcycle + 120) dmg *= 2
|
if (tech.isNoFireDamage && m.cycle > m.fireCDcycle + 120) dmg *= 2
|
||||||
if (tech.isSpeedDamage) dmg *= 1 + Math.min(0.66, player.speed * 0.0165)
|
if (tech.isSpeedDamage) dmg *= 1 + Math.min(0.88, player.speed * 0.0193)
|
||||||
if (tech.isDamageAfterKillNoRegen && m.lastKillCycle + 300 > m.cycle) dmg *= 1.83
|
if (tech.isDamageAfterKillNoRegen && m.lastKillCycle + 300 > m.cycle) dmg *= 1.83
|
||||||
if (tech.isAxion && tech.isHarmMACHO) dmg *= 2 - m.defense()
|
if (tech.isAxion && tech.isHarmMACHO) dmg *= 2 - m.defense()
|
||||||
if (tech.isHarmDamage && m.lastHarmCycle + 480 > m.cycle) dmg *= 3;
|
if (tech.isHarmDamage && m.lastHarmCycle + 480 > m.cycle) dmg *= 3;
|
||||||
@@ -1047,7 +1047,7 @@ const tech = {
|
|||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
name: "Newtons 1st law",
|
name: "Newtons 1st law",
|
||||||
description: "<strong class='color-defense'>defense</strong> is proportional to your <strong>speed</strong><br>up to <strong>+66%</strong> <strong class='color-defense'>defense</strong> at <strong>40 speed</strong>",
|
description: "<strong class='color-defense'>defense</strong> is proportional to your <strong>speed</strong><br>up to <strong>+88%</strong> <strong class='color-defense'>defense</strong> at <strong>55 speed</strong>",
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
frequency: 1,
|
frequency: 1,
|
||||||
@@ -1065,7 +1065,7 @@ const tech = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Newtons 2nd law",
|
name: "Newtons 2nd law",
|
||||||
description: "<strong class='color-d'>damage</strong> is proportional to your <strong>speed</strong><br>up to <strong>+66%</strong> <strong class='color-d'>damage</strong> at <strong>40 speed</strong>",
|
description: "<strong class='color-d'>damage</strong> is proportional to your <strong>speed</strong><br>up to <strong>+88%</strong> <strong class='color-d'>damage</strong> at <strong>55 speed</strong>",
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
frequency: 1,
|
frequency: 1,
|
||||||
@@ -8121,9 +8121,9 @@ const tech = {
|
|||||||
frequency: 2,
|
frequency: 2,
|
||||||
frequencyDefault: 2,
|
frequencyDefault: 2,
|
||||||
allowed() {
|
allowed() {
|
||||||
return (m.fieldMode === 5 || m.fieldMode === 4 || m.fieldMode === 10) && !tech.isPrinter && !tech.isReel
|
return (m.fieldMode === 5 || m.fieldMode === 4 || m.fieldMode === 10) && !tech.isPrinter && !tech.isReel && !tech.isHookExplosion
|
||||||
},
|
},
|
||||||
requires: "plasma torch, molecular assembler, grappling hook, not printer, reel",
|
requires: "plasma torch, molecular assembler, grappling hook, not printer, reel, rupture",
|
||||||
effect() {
|
effect() {
|
||||||
tech.isTokamak = true;
|
tech.isTokamak = true;
|
||||||
},
|
},
|
||||||
@@ -8775,7 +8775,7 @@ const tech = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "CIWS",
|
name: "CIWS",
|
||||||
description: "<strong>grappling hook</strong> uses <strong>20</strong> <strong class='color-f'>energy</strong><br> to fire <strong>harpoons</strong> at nearby mobs",
|
description: "<strong>grappling hook</strong> uses <strong>18</strong> <strong class='color-f'>energy</strong><br> to fire <strong>harpoons</strong> at nearby mobs",
|
||||||
isFieldTech: true,
|
isFieldTech: true,
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
@@ -8801,9 +8801,9 @@ const tech = {
|
|||||||
frequency: 2,
|
frequency: 2,
|
||||||
frequencyDefault: 2,
|
frequencyDefault: 2,
|
||||||
allowed() {
|
allowed() {
|
||||||
return m.fieldMode === 10
|
return m.fieldMode === 10 && !tech.isReel && !tech.isTokamak
|
||||||
},
|
},
|
||||||
requires: "grappling hook",
|
requires: "grappling hook, not reel, tokamak",
|
||||||
effect() {
|
effect() {
|
||||||
tech.isHookExplosion = true
|
tech.isHookExplosion = true
|
||||||
},
|
},
|
||||||
@@ -8820,9 +8820,9 @@ const tech = {
|
|||||||
frequency: 1,
|
frequency: 1,
|
||||||
frequencyDefault: 1,
|
frequencyDefault: 1,
|
||||||
allowed() {
|
allowed() {
|
||||||
return m.fieldMode === 10 && !tech.isTokamak && tech.blockDamage === 0.075
|
return m.fieldMode === 10 && !tech.isTokamak && tech.blockDamage === 0.075 && !tech.isHookExplosion
|
||||||
},
|
},
|
||||||
requires: "not mass driver",
|
requires: "grappling hook, not mass driver, rupture, tokamak",
|
||||||
effect() {
|
effect() {
|
||||||
tech.blockDamage = 0.375
|
tech.blockDamage = 0.375
|
||||||
tech.isReel = true
|
tech.isReel = true
|
||||||
|
|||||||
35
todo.txt
35
todo.txt
@@ -1,26 +1,29 @@
|
|||||||
******************************************************** NEXT PATCH **************************************************
|
******************************************************** NEXT PATCH **************************************************
|
||||||
|
|
||||||
new community level shipwreck by 3xionDev
|
why mode is now 20% easier, but still 25% harder than hard mode
|
||||||
|
easy:1, normal:2, hard:4, why:6->5
|
||||||
|
|
||||||
grappling hook
|
new community map unchartedCave by 3xionDev!
|
||||||
tech: reel - increase block damage 400%, generate 30 energy after hooking blocks
|
|
||||||
added tokamak to grappling hook
|
Newtons 1st law 66->88% defense when moving fast
|
||||||
updated rope graphics
|
Newtons 2nd law 66->88% damage when moving fast
|
||||||
added input.up to adjust positioning while hook is attached
|
CIWS energy 20->18 per shot
|
||||||
added images for CIWS, rupture, autonomous defense
|
rupture disables reel and tokamak
|
||||||
aerostat: 25->15% reduced damage on ground
|
|
||||||
rupture unlocks explosive tech
|
|
||||||
rupture destroys blocks
|
|
||||||
autonomous defense renamed to CIWS
|
|
||||||
|
|
||||||
field emitter 6->4 base energy regen
|
|
||||||
tech: autonomous defense - harpoon tech that fires harpoons after taking damage
|
|
||||||
degenerate matter: 75->85% defense while field is active
|
|
||||||
neutronium: 90->95% defense while field is active
|
|
||||||
unified field theory no longer has field emitter as an option
|
|
||||||
|
|
||||||
*********************************************************** TODO *****************************************************
|
*********************************************************** TODO *****************************************************
|
||||||
|
|
||||||
|
|
||||||
|
scrap bots don't follow player
|
||||||
|
adjust spawn rates to balance
|
||||||
|
|
||||||
|
|
||||||
|
make grappling hook of different shapes
|
||||||
|
indicate tech upgrades?
|
||||||
|
rupture, reel, tokamak
|
||||||
|
do this in draw or in verticies?
|
||||||
|
draw can have different colors
|
||||||
|
|
||||||
player got stuck inside block that wasn't pick up able
|
player got stuck inside block that wasn't pick up able
|
||||||
|
|
||||||
grappling hook field
|
grappling hook field
|
||||||
|
|||||||
Reference in New Issue
Block a user