diff --git a/js/bullets.js b/js/bullets.js index 088e052..1ba512f 100644 --- a/js/bullets.js +++ b/js/bullets.js @@ -2062,6 +2062,19 @@ const b = { bullet[me].endCycle = game.cycle + 70; bullet[me].dmg = 0.07; bullet[me].frictionAir = mech.crouch ? 0.007 : 0.01; + bullet[me].onDmg = function (who) { + + who.status.push({ //slow + endCycle: game.cycle + 60, + effect() { + + Matter.Body.setVelocity(who, { + x: who.velocity.x * 0.8, + y: who.velocity.y * 0.8 + }); + }, + }) + }; bullet[me].do = function () { this.force.y += this.mass * 0.0005; }; diff --git a/js/level.js b/js/level.js index c330335..d4cb228 100644 --- a/js/level.js +++ b/js/level.js @@ -14,13 +14,13 @@ const level = { start() { if (level.levelsCleared === 0) { // level.difficultyIncrease(9) - // b.giveGuns("wave beam") + b.giveGuns("minigun") // mech.setField("phase decoherence field") // b.giveMod("quantum dissipation"); // b.giveMod("reflective cavity"); - level.intro(); //starting level - // level.testingMap(); + // level.intro(); //starting level + level.testingMap(); // level.bosses(); // level.satellite(); // level.skyscrapers(); @@ -140,8 +140,8 @@ const level = { // powerUps.spawn(450, -400, "mod", false, 6); // powerUps.spawn(450, -400, "mod", false); // spawn.bodyRect(-45, -100, 40, 50); - spawn.springer(800, -450); - spawn.cellBoss(400, -750); + spawn.starter(800, -450); + // spawn.cellBoss(400, -750); // spawn.randomLevelBoss(400, -750) diff --git a/js/mobs.js b/js/mobs.js index b29ed60..b20083f 100644 --- a/js/mobs.js +++ b/js/mobs.js @@ -7,6 +7,11 @@ const mobs = { while (i--) { if (mob[i].alive) { mob[i].do(); + // let j = mob[i].status.length; + // while (j--) { + // mob[i].status[j].effect(); + // if (mob[i].status[j].endCycle > game.cycle) mob[i].status.splice(j, 0); + // } } else { mob[i].replace(i); //removing mob and replace with body, this is done here to avoid an array index bug with drawing I think } @@ -97,6 +102,14 @@ const mobs = { x: xPos, y: yPos }, + status: [], // [ { effect(), endCycle } ] + checkStatus() { + let j = this.status.length; + while (j--) { + this.status[j].effect(); + if (this.status[j].endCycle < game.cycle) this.status.splice(j, 1); + } + }, seeAtDistance2: 4000000, //sqrt(4000000) = 2000 = max seeing range distanceToPlayer() { const dx = this.position.x - player.position.x; diff --git a/js/spawn.js b/js/spawn.js index a8e7cb5..44a7bdc 100644 --- a/js/spawn.js +++ b/js/spawn.js @@ -142,6 +142,7 @@ const spawn = { Matter.Body.setDensity(me, 0.0005) // normal density is 0.001 // this reduces life by half and decreases knockback me.do = function () { + this.checkStatus() this.seePlayerByLookingAt(); this.attraction(); }; diff --git a/todo.txt b/todo.txt index e03692c..ca0b045 100644 --- a/todo.txt +++ b/todo.txt @@ -3,11 +3,6 @@ mod - lose your field, gain a gun and some ammo gain two guns? -mod - vacuum bomb pulls shields off the mob - or just greatly damages shields during the suck phase if the pulling doesn't work -mod - vacuum bomb stuns after the explosion - maybe it also does DoT damage - mod - time dilation - Quantum Recovery Expending all your energy while using the field will cause the player to go back in time to 3 seconds before the field was activated @@ -30,6 +25,7 @@ mobs - add in a function to the main loops that does injected code for each mob mod - flechettes mod for DoT poison damage mod - grenade explosions stun enemies mod - give crystal minigun a slowing effect and rename it ice crystals + mod - vacuum bomb does DoT damage after exploding mod - get your next recursive mod 3 times are players aware of what a recursive mod is? @@ -38,10 +34,6 @@ mod - get your next recursive mod 3 times settings - auto aim at nearest mob settings - custom keys binding -mod - rocket propelled grenades - grenades do +20% damage and move in an accelerating path - maybe explode on collision with map? - gun - buff vacuum bomb its weak late game can't spam it faster