diff --git a/index.html b/index.html
index 9119338..41c191a 100644
--- a/index.html
+++ b/index.html
@@ -157,7 +157,7 @@
ArrowUp |
- | CROUCH |
+ CROUCH |
S |
ArrowDown |
@@ -172,12 +172,12 @@
ArrowRight |
- | GUN → |
+ GUN → |
Q |
MouseWheel |
- | GUN ← |
+ GUN ← |
E |
MouseWheel |
diff --git a/js/bullet.js b/js/bullet.js
index f9a0c93..a6751b8 100644
--- a/js/bullet.js
+++ b/js/bullet.js
@@ -1159,7 +1159,7 @@ const b = {
World.add(engine.world, bullet[me]); //add bullet to world
bullet[me].endCycle = game.cycle + 60 + 18 * Math.random();
bullet[me].dmg = dmg
- bullet[me].beforeDmg = function (who) {
+ bullet[me].beforeDmg = function (who) { //beforeDmg is rewritten with ice crystal mod
if (mod.isNailPoison) mobs.statusDoT(who, dmg * 0.22, 120) // one tick every 30 cycles
if (mod.isNailCrit && !who.shield && Vector.dot(Vector.normalise(Vector.sub(who.position, this.position)), Vector.normalise(this.velocity)) > 0.99) this.dmg *= 5 //crit if hit near center
};
@@ -1852,6 +1852,7 @@ const b = {
bullet[bullet.length - 1].beforeDmg = function (who) {
mobs.statusSlow(who, 30)
if (mod.isNailPoison) mobs.statusDoT(who, dmg * 0.22, 120) // one tick every 30 cycles
+ if (mod.isNailCrit && !who.shield && Vector.dot(Vector.normalise(Vector.sub(who.position, this.position)), Vector.normalise(this.velocity)) > 0.99) this.dmg *= 5 //crit if hit near center
};
mech.energy -= mech.fieldRegen + 0.008
if (mech.energy < 0.02) mech.fireCDcycle = mech.cycle + 60; // cool down
diff --git a/js/mods.js b/js/mods.js
index 623ce66..77b5c68 100644
--- a/js/mods.js
+++ b/js/mods.js
@@ -791,7 +791,7 @@ const mod = {
},
{
name: "squirrel-cage rotor",
- description: "jump higher and move faster",
+ description: "move and jump about 25% faster",
maxCount: 9,
count: 0,
allowed() {
@@ -1208,7 +1208,7 @@ const mod = {
},
{
name: "Bayesian statistics",
- description: "18% chance to duplicate spawned power ups
after a collision, eject one of your mods",
+ description: "16% chance to duplicate spawned power ups
after a collision, eject one of your mods",
maxCount: 1,
count: 0,
allowed() {
@@ -1217,13 +1217,13 @@ const mod = {
requires: "",
effect: () => {
mod.isBayesian = true
- mod.duplicateChance += 0.18
+ mod.duplicateChance += 0.16
game.draw.powerUp = game.draw.powerUpBonus //change power up draw
},
remove() {
if (mod.isBayesian) {
- mod.duplicateChance -= 0.18
+ mod.duplicateChance -= 0.16
if (mod.duplicateChance < 0) mod.duplicateChance = 0
}
mod.isBayesian = false
@@ -1596,6 +1596,39 @@ const mod = {
mod.isDamageFromBulletCount = false
}
},
+ {
+ name: "ice crystal nucleation",
+ description: "the nail gun uses energy to condense
unlimited freezing ice shards",
+ maxCount: 1,
+ count: 0,
+ allowed() {
+ return mod.haveGunCheck("nail gun") && !mod.nailInstantFireRate
+ },
+ requires: "nail gun",
+ effect() {
+ mod.isIceCrystals = true;
+ for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
+ if (b.guns[i].name === "nail gun") {
+ b.guns[i].ammoPack = Infinity
+ b.guns[i].recordedAmmo = b.guns[i].ammo
+ b.guns[i].ammo = Infinity
+ game.updateGunHUD();
+ break;
+ }
+ }
+ },
+ remove() {
+ mod.isIceCrystals = false;
+ for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
+ if (b.guns[i].name === "nail gun") {
+ b.guns[i].ammoPack = b.guns[i].defaultAmmoPack;
+ b.guns[i].ammo = b.guns[i].recordedAmmo
+ game.updateGunHUD();
+ break;
+ }
+ }
+ }
+ },
{
name: "critical bifurcation",
description: "nails do 400% more damage
when they strike near the center of a mob",
@@ -1644,39 +1677,6 @@ const mod = {
mod.nailInstantFireRate = false
}
},
- {
- name: "ice crystal nucleation",
- description: "the nail gun uses energy to condense
unlimited freezing ice shards",
- maxCount: 1,
- count: 0,
- allowed() {
- return mod.haveGunCheck("nail gun") && !mod.nailInstantFireRate
- },
- requires: "nail gun",
- effect() {
- mod.isIceCrystals = true;
- for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "nail gun") {
- b.guns[i].ammoPack = Infinity
- b.guns[i].recordedAmmo = b.guns[i].ammo
- b.guns[i].ammo = Infinity
- game.updateGunHUD();
- break;
- }
- }
- },
- remove() {
- mod.isIceCrystals = false;
- for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "nail gun") {
- b.guns[i].ammoPack = b.guns[i].defaultAmmoPack;
- b.guns[i].ammo = b.guns[i].recordedAmmo
- game.updateGunHUD();
- break;
- }
- }
- }
- },
{
name: "shotgun spin-statistics",
description: "immune to harm while firing the shotgun
ammo costs are doubled",
@@ -2570,7 +2570,7 @@ const mod = {
},
{
name: "Lorentz transformation",
- description: "permanently increase your relative time rate
move, jump, and shoot 33% faster",
+ description: "permanently increase your relative time rate
move, jump, and shoot 40% faster",
maxCount: 1,
count: 0,
allowed() {
@@ -2578,8 +2578,8 @@ const mod = {
},
requires: "time dilation field",
effect() {
- mod.fastTime = 1.33;
- mod.fastTimeJump = 1.09;
+ mod.fastTime = 1.40;
+ mod.fastTimeJump = 1.11;
mech.setMovement();
b.setFireCD();
},
diff --git a/js/player.js b/js/player.js
index b7a4cf4..1f893f3 100644
--- a/js/player.js
+++ b/js/player.js
@@ -1728,7 +1728,7 @@ const mech = {
mech.grabPowerUp();
mech.lookForPickUp(180);
- const DRAIN = 0.0008
+ const DRAIN = 0.0007
if (mech.energy > DRAIN) {
mech.energy -= DRAIN;
if (mech.energy < DRAIN) {
@@ -2413,7 +2413,7 @@ const mech = {
x: velocity.x,
y: velocity.y - 4 //an extra vertical kick so the player hangs in place longer
});
- mech.immuneCycle = mech.cycle + 15; //player is immune to collision damage for 30 cycles
+ mech.immuneCycle = mech.cycle + 15; //player is immune to collision damage
// move bots to follow player
for (let i = 0; i < bullet.length; i++) {
if (bullet[i].botType) {
diff --git a/todo.txt b/todo.txt
index e6d78ae..b5ee3d2 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,16 +1,20 @@
-mod: critical bifurcation - nail gun does 400% more damage if it hits very close to the center of a mob
-mod: supercritical fission - flechettes explode if they hit very close to the center of a mob
-
-mod: transdimensional spores - after wormholes eat blocks, they disturb spores
-mod: traversable geodesics - your bullets can go through worm holes
-
-scrap bots now only last only 30 seconds, but they have a 20% chance to spawn from a kill (was 11%)
-the difficulty should feel a bit harder after clearing the boss level
- (a bit more more damage taken, and fewer mod drops)
************** TODO - n-gon **************
+foam bullet on dmg shrink effect
+ it might mess with the foam position of other bullets on the mob
+ shrink when foam bullets end while attached, or shrink on collision?
+
+effect - shrink or grow things
+
+time dilation mod rework / buff (time dilation is cool, but it can feel like a chore)
+ redistribute effects
+ take no damage
+ can fire
+ 2x move jump fire while field is active
+ 33% move jump fire always
+
mod - after a mob or shield dies, remaining dots look for a new nearby host
add an ending to the game
@@ -28,13 +32,6 @@ mod self destruct - drones explode when they die, but they last 1/2 as long
mouse event e.which is deprecated
-time dilation mod rework (time dilation is cool, but it can feel like a chore)
- redistribute effects
- take no damage
- can fire
- 2x move jump fire while field is active
- 33% move jump fire always
-
vacuum bomb applies status effect to mobs that makes blocks attracted to them
mod: take less harm if you are moving fast