diff --git a/js/bullets.js b/js/bullets.js
index edc037c..f32d5d7 100644
--- a/js/bullets.js
+++ b/js/bullets.js
@@ -57,13 +57,14 @@ const b = {
isModFlechetteMultiShot: null,
isModMineAmmoBack: null,
isModRailNails: null,
+ isModHawking: null,
modOnHealthChange() { //used with acid mod
if (b.isModAcidDmg && mech.health > 0.8) {
game.playerDmgColor = "rgba(0,80,80,0.9)"
- b.modAcidDmg = 0.9
+ b.modAcidDmg = 1.5
} else {
game.playerDmgColor = "rgba(0,0,0,0.7)"
- b.modAcidDmg = 0
+ b.modAcidDmg = 1
}
},
mods: [{
@@ -1014,6 +1015,22 @@ const b = {
b.isModSporeField = false;
}
},
+ {
+ name: "hawking radiation",
+ description: "negative mass field releases virtual particles that
damage mobs within range",
+ maxCount: 1,
+ count: 0,
+ allowed() {
+ return mech.fieldUpgrades[mech.fieldMode].name === "negative mass field"
+ },
+ requires: "negative mass field",
+ effect() {
+ b.isModHawking = true;
+ },
+ remove() {
+ b.isModHawking = false;
+ }
+ },
],
removeMod(index) {
b.mods[index].remove();
diff --git a/js/engine.js b/js/engine.js
index 1a67019..9e0e76d 100644
--- a/js/engine.js
+++ b/js/engine.js
@@ -178,6 +178,7 @@ function collisionChecks(event) {
if (obj.classType === "bullet" && obj.speed > obj.minDmgSpeed) {
// const dmg = b.dmgScale * (obj.dmg + 0.15 * obj.mass * Vector.magnitude(Vector.sub(mob[k].velocity, obj.velocity)));
let dmg = b.dmgScale * (obj.dmg + b.modAcidDmg + 0.15 * obj.mass * Vector.magnitude(Vector.sub(mob[k].velocity, obj.velocity)))
+ // console.log(obj.dmg / (0.15 * obj.mass * Vector.magnitude(Vector.sub(mob[k].velocity, obj.velocity))))
if (b.isModCrit && !mob[k].seePlayer.recall && !mob[k].shield) dmg *= 5
mob[k].foundPlayer();
mob[k].damage(dmg);
@@ -195,7 +196,7 @@ function collisionChecks(event) {
if (obj.classType === "body" && obj.speed > 5) {
const v = Vector.magnitude(Vector.sub(mob[k].velocity, obj.velocity));
if (v > 8) {
- let dmg = b.dmgScale * (b.modAcidDmg + v * Math.sqrt(obj.mass) * 0.07);
+ let dmg = b.dmgScale * (v * Math.sqrt(obj.mass) * 0.07);
mob[k].damage(dmg, true);
if (mob[k].distanceToPlayer2() < 1000000) mob[k].foundPlayer();
game.drawList.push({
diff --git a/js/player.js b/js/player.js
index 705788a..ebae8a3 100644
--- a/js/player.js
+++ b/js/player.js
@@ -1442,6 +1442,15 @@ const mech = {
ctx.globalCompositeOperation = "difference";
ctx.fill();
ctx.globalCompositeOperation = "source-over";
+
+ if (b.isModHawking) {
+ for (let i = 0, len = mob.length; i < len; i++) {
+ if (Vector.magnitude(Vector.sub(mob[i].position, mech.pos)) < this.fieldDrawRadius) {
+
+ }
+ }
+ }
+
} else {
//trigger cool down
mech.fieldCDcycle = mech.cycle + 120;
diff --git a/todo.txt b/todo.txt
index 70025f1..aa10058 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,5 +1,7 @@
************** TODO - n-gon **************
+mod - negative mass field does damage to mobs in zone
+
mod - flechettes mod for poison damage
other flechettes multi-shot is disabled
mod - flechettes are guided towards targets
@@ -13,10 +15,6 @@ gun - buff vacuum bomb
mod - double explosions?
mod - doesn't suck player in?
-mod - negative mass field does damage to mobs in zone
-
-mod - rail gun burst on impact into nails
-
mod - make bodies destroyable
they drop ammo and heals