diff --git a/js/bullet.js b/js/bullet.js index df5f824..70eb8b0 100644 --- a/js/bullet.js +++ b/js/bullet.js @@ -1965,8 +1965,8 @@ const b = { name: "flak", description: "fire a cluster of short range projectiles
explodes on contact or after half a second", ammo: 0, - ammoPack: 8, - defaultAmmoPack: 8, //use to revert ammoPack after mod changes drop rate + ammoPack: 9, + defaultAmmoPack: 9, //use to revert ammoPack after mod changes drop rate have: false, isEasyToAim: false, fire() { diff --git a/js/game.js b/js/game.js index 606c389..c2725da 100644 --- a/js/game.js +++ b/js/game.js @@ -675,6 +675,8 @@ const game = { consBB = []; removeAll(bullet); bullet = []; + removeAll(composite); + composite = []; // if player was holding something this makes a new copy to hold if (holdTarget) { len = body.length; diff --git a/js/level.js b/js/level.js index ed3744f..0ea1d44 100644 --- a/js/level.js +++ b/js/level.js @@ -2,6 +2,7 @@ let body = []; //non static bodies let map = []; //all static bodies let cons = []; //all constraints between a point and a body let consBB = []; //all constraints between two bodies +let composite = [] //rotors and other map elements that don't fit const level = { defaultZoom: 1400, onLevel: 0, @@ -78,7 +79,7 @@ const level = { density: density, isNotSticky: true }); - const rotor = Body.create({ //combine rotor1 and rotor2 + rotor = Body.create({ //combine rotor1 and rotor2 parts: [rotor1, rotor2], restitution: 0, collisionFilter: { @@ -123,7 +124,7 @@ const level = { } } } - + composite[composite.length] = rotor return rotor }, button(x, y, width = 70, height = 20) { @@ -299,22 +300,22 @@ const level = { spawn.mapRect(9300, 2590, 650, 25); spawn.mapRect(9700, 2580, 100, 50); - spawn.randomBoss(1300, 2100, 0.7); - spawn.randomMob(8300, 2225, 0.5); - spawn.randomSmallMob(2575, -75, 0.5); //entrance - spawn.randomMob(8125, 2450, 0.5); - spawn.randomSmallMob(3200, 250, 0.5); - spawn.randomMob(2425, 2150, 0.5); - spawn.randomSmallMob(3825, 300, 0.5); + spawn.randomBoss(1300, 2100, 0.6); + spawn.randomMob(8300, 2100, 0.3); + spawn.randomSmallMob(2575, -75, 0.3); //entrance + spawn.randomMob(8125, 2450, 0.3); + spawn.randomSmallMob(3200, 250, 0.4); + spawn.randomMob(2425, 2150, 0.4); + spawn.randomSmallMob(3825, 300, 0.4); spawn.randomMob(3800, 2175, 0.5); spawn.randomSmallMob(1100, -300, 0.5); //entrance - spawn.randomMob(4450, 2500, 0.5); - spawn.randomMob(6350, 2525, 0.5); - spawn.randomSmallMob(1900, -250, 0.5); //entrance + spawn.randomMob(4450, 2500, 0.6); + spawn.randomMob(6350, 2525, 0.6); + spawn.randomBoss(9200, 2400, 0.5); + spawn.randomSmallMob(1900, -250, 0.7); //entrance spawn.randomMob(1500, 2100, 0.8); - spawn.randomSmallMob(1700, -150, 0.5); //entrance - spawn.randomMob(8800, 2725, 0.5); - spawn.randomBoss(8650, 2275, 0.5); + spawn.randomSmallMob(1700, -150, 0.8); //entrance + spawn.randomMob(8800, 2725, 0.9); if (game.difficulty > 3) spawn.randomLevelBoss(6000, 2300, ["shooterBoss", "spiderBoss", "launcherBoss", "laserTargetingBoss"]); }, template() { @@ -2107,7 +2108,7 @@ const level = { spawn.randomBoss(2350, -850, 1); spawn.randomBoss(100, -450, 0.9); - if (game.difficulty > 3) spawn.randomLevelBoss(1850, -1400, 1); + if (game.difficulty > 3) spawn.randomLevelBoss(1850, -1400); }, //****************************************************************************************************************** //****************************************************************************************************************** diff --git a/js/mods.js b/js/mods.js index 42785e2..ed03a48 100644 --- a/js/mods.js +++ b/js/mods.js @@ -78,6 +78,7 @@ const mod = { if (mod.isRest && player.speed < 1) dmg *= 1.20; if (mod.isEnergyDamage) dmg *= 1 + mech.energy / 5.5; if (mod.isDamageFromBulletCount) dmg *= 1 + bullet.length * 0.006 + if (mod.isRerollDamage) dmg *= 1 + 0.06 * powerUps.reroll.rerolls return dmg * mod.slowFire }, mods: [{ @@ -130,6 +131,22 @@ const mod = { mod.isRest = false; } }, + { + name: "perturbation theory", + description: "increase damage by 6%
for each reroll in your inventory", + maxCount: 1, + count: 0, + allowed() { + return powerUps.reroll.rerolls > 1 || build.isCustomSelection + }, + requires: "at least 2 rerolls", + effect() { + mod.isRerollDamage = true; + }, + remove() { + mod.isRerollDamage = false; + } + }, { name: "kinetic bombardment", description: "increase damage by up to 33%
at a distance of 40 steps from the target", @@ -1035,7 +1052,6 @@ const mod = { mod.manyWorlds = false; } }, - { name: "quantum immortality", description: "after dying, continue in an alternate reality
spawn 5 rerolls", @@ -1482,7 +1498,7 @@ const mod = { requires: "flak", effect() { for (i = 0, len = b.guns.length; i < len; i++) { //find which gun - if (b.guns[i].name === "flak") b.guns[i].ammoPack = b.guns[i].defaultAmmoPack * (3 * this.count); + if (b.guns[i].name === "flak") b.guns[i].ammoPack = b.guns[i].defaultAmmoPack * (3 * (1 + this.count)); } }, remove() { @@ -2296,5 +2312,6 @@ const mod = { isHealLowHealth: null, isAoESlow: null, isHarmArmor: null, - isTurret: null + isTurret: null, + isRerollDamage: null } \ No newline at end of file diff --git a/todo.txt b/todo.txt index b768760..72948e0 100644 --- a/todo.txt +++ b/todo.txt @@ -1,12 +1,6 @@ -new level, sewers -flak ammo buff - ************** TODO - n-gon ************** -mod: do more damage for each reroll you are holding - do more damage for the ammo/ammoPack ratio? - mod: taking damage slows (or stuns) all mobs on the map requires the mod that slows time, overclock @@ -14,7 +8,7 @@ button: blocks that are on the button at an angle will slowly slide off the butt maybe just avoid long blocks near the button? maybe actively hold the button in place? -slime should affect blocks, bullets, mobs +hazards should affect blocks, bullets, mobs and do mob damage? rotor doesn't work with