bug fix
This commit is contained in:
@@ -157,7 +157,7 @@
|
|||||||
<td class='key-used'>ArrowUp</td>
|
<td class='key-used'>ArrowUp</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>CROUCH </th>
|
<th>CROUCH</th>
|
||||||
<td id='key-down' class='key-input'>S</td>
|
<td id='key-down' class='key-input'>S</td>
|
||||||
<td class='key-used'>ArrowDown</td>
|
<td class='key-used'>ArrowDown</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -172,12 +172,12 @@
|
|||||||
<td class='key-used'>ArrowRight</td>
|
<td class='key-used'>ArrowRight</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>GUN → </th>
|
<th>GUN →</th>
|
||||||
<td id='key-next-gun' class='key-input'>Q</td>
|
<td id='key-next-gun' class='key-input'>Q</td>
|
||||||
<td class='key-used'>MouseWheel</td>
|
<td class='key-used'>MouseWheel</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>GUN ← </th>
|
<th>GUN ←</th>
|
||||||
<td id='key-previous-gun' class='key-input'>E</td>
|
<td id='key-previous-gun' class='key-input'>E</td>
|
||||||
<td class='key-used'>MouseWheel</td>
|
<td class='key-used'>MouseWheel</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1159,7 +1159,7 @@ const b = {
|
|||||||
World.add(engine.world, bullet[me]); //add bullet to world
|
World.add(engine.world, bullet[me]); //add bullet to world
|
||||||
bullet[me].endCycle = game.cycle + 60 + 18 * Math.random();
|
bullet[me].endCycle = game.cycle + 60 + 18 * Math.random();
|
||||||
bullet[me].dmg = dmg
|
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.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
|
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) {
|
bullet[bullet.length - 1].beforeDmg = function (who) {
|
||||||
mobs.statusSlow(who, 30)
|
mobs.statusSlow(who, 30)
|
||||||
if (mod.isNailPoison) mobs.statusDoT(who, dmg * 0.22, 120) // one tick every 30 cycles
|
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
|
mech.energy -= mech.fieldRegen + 0.008
|
||||||
if (mech.energy < 0.02) mech.fireCDcycle = mech.cycle + 60; // cool down
|
if (mech.energy < 0.02) mech.fireCDcycle = mech.cycle + 60; // cool down
|
||||||
|
|||||||
80
js/mods.js
80
js/mods.js
@@ -791,7 +791,7 @@ const mod = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "squirrel-cage rotor",
|
name: "squirrel-cage rotor",
|
||||||
description: "<strong>jump</strong> higher and <strong>move</strong> faster",
|
description: "<strong>move</strong> and <strong>jump</strong> about <strong>25%</strong> faster",
|
||||||
maxCount: 9,
|
maxCount: 9,
|
||||||
count: 0,
|
count: 0,
|
||||||
allowed() {
|
allowed() {
|
||||||
@@ -1208,7 +1208,7 @@ const mod = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Bayesian statistics",
|
name: "Bayesian statistics",
|
||||||
description: "<strong>18%</strong> chance to <strong>duplicate</strong> spawned <strong>power ups</strong><br>after a <strong>collision</strong>, <strong>eject</strong> one of your <strong class='color-m'>mods</strong>",
|
description: "<strong>16%</strong> chance to <strong>duplicate</strong> spawned <strong>power ups</strong><br>after a <strong>collision</strong>, <strong>eject</strong> one of your <strong class='color-m'>mods</strong>",
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
allowed() {
|
allowed() {
|
||||||
@@ -1217,13 +1217,13 @@ const mod = {
|
|||||||
requires: "",
|
requires: "",
|
||||||
effect: () => {
|
effect: () => {
|
||||||
mod.isBayesian = true
|
mod.isBayesian = true
|
||||||
mod.duplicateChance += 0.18
|
mod.duplicateChance += 0.16
|
||||||
game.draw.powerUp = game.draw.powerUpBonus //change power up draw
|
game.draw.powerUp = game.draw.powerUpBonus //change power up draw
|
||||||
|
|
||||||
},
|
},
|
||||||
remove() {
|
remove() {
|
||||||
if (mod.isBayesian) {
|
if (mod.isBayesian) {
|
||||||
mod.duplicateChance -= 0.18
|
mod.duplicateChance -= 0.16
|
||||||
if (mod.duplicateChance < 0) mod.duplicateChance = 0
|
if (mod.duplicateChance < 0) mod.duplicateChance = 0
|
||||||
}
|
}
|
||||||
mod.isBayesian = false
|
mod.isBayesian = false
|
||||||
@@ -1596,6 +1596,39 @@ const mod = {
|
|||||||
mod.isDamageFromBulletCount = false
|
mod.isDamageFromBulletCount = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "ice crystal nucleation",
|
||||||
|
description: "the <strong>nail gun</strong> uses <strong class='color-f'>energy</strong> to condense<br>unlimited <strong class='color-s'>freezing</strong> <strong>ice shards</strong>",
|
||||||
|
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",
|
name: "critical bifurcation",
|
||||||
description: "<strong>nails</strong> do <strong>400%</strong> more <strong class='color-d'>damage</strong><br>when they strike near the <strong>center</strong> of a mob",
|
description: "<strong>nails</strong> do <strong>400%</strong> more <strong class='color-d'>damage</strong><br>when they strike near the <strong>center</strong> of a mob",
|
||||||
@@ -1644,39 +1677,6 @@ const mod = {
|
|||||||
mod.nailInstantFireRate = false
|
mod.nailInstantFireRate = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "ice crystal nucleation",
|
|
||||||
description: "the <strong>nail gun</strong> uses <strong class='color-f'>energy</strong> to condense<br>unlimited <strong class='color-s'>freezing</strong> <strong>ice shards</strong>",
|
|
||||||
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",
|
name: "shotgun spin-statistics",
|
||||||
description: "<strong>immune</strong> to <strong class='color-harm'>harm</strong> while firing the <strong>shotgun</strong><br><strong class='color-g'>ammo</strong> costs are <strong>doubled</strong>",
|
description: "<strong>immune</strong> to <strong class='color-harm'>harm</strong> while firing the <strong>shotgun</strong><br><strong class='color-g'>ammo</strong> costs are <strong>doubled</strong>",
|
||||||
@@ -2570,7 +2570,7 @@ const mod = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Lorentz transformation",
|
name: "Lorentz transformation",
|
||||||
description: "permanently increase your relative time rate<br><strong>move</strong>, <strong>jump</strong>, and <strong>shoot</strong> <strong>33%</strong> faster",
|
description: "permanently increase your relative time rate<br><strong>move</strong>, <strong>jump</strong>, and <strong>shoot</strong> <strong>40%</strong> faster",
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
allowed() {
|
allowed() {
|
||||||
@@ -2578,8 +2578,8 @@ const mod = {
|
|||||||
},
|
},
|
||||||
requires: "time dilation field",
|
requires: "time dilation field",
|
||||||
effect() {
|
effect() {
|
||||||
mod.fastTime = 1.33;
|
mod.fastTime = 1.40;
|
||||||
mod.fastTimeJump = 1.09;
|
mod.fastTimeJump = 1.11;
|
||||||
mech.setMovement();
|
mech.setMovement();
|
||||||
b.setFireCD();
|
b.setFireCD();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1728,7 +1728,7 @@ const mech = {
|
|||||||
mech.grabPowerUp();
|
mech.grabPowerUp();
|
||||||
mech.lookForPickUp(180);
|
mech.lookForPickUp(180);
|
||||||
|
|
||||||
const DRAIN = 0.0008
|
const DRAIN = 0.0007
|
||||||
if (mech.energy > DRAIN) {
|
if (mech.energy > DRAIN) {
|
||||||
mech.energy -= DRAIN;
|
mech.energy -= DRAIN;
|
||||||
if (mech.energy < DRAIN) {
|
if (mech.energy < DRAIN) {
|
||||||
@@ -2413,7 +2413,7 @@ const mech = {
|
|||||||
x: velocity.x,
|
x: velocity.x,
|
||||||
y: velocity.y - 4 //an extra vertical kick so the player hangs in place longer
|
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
|
// move bots to follow player
|
||||||
for (let i = 0; i < bullet.length; i++) {
|
for (let i = 0; i < bullet.length; i++) {
|
||||||
if (bullet[i].botType) {
|
if (bullet[i].botType) {
|
||||||
|
|||||||
29
todo.txt
29
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 **************
|
************** 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
|
mod - after a mob or shield dies, remaining dots look for a new nearby host
|
||||||
|
|
||||||
add an ending to the game
|
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
|
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
|
vacuum bomb applies status effect to mobs that makes blocks attracted to them
|
||||||
|
|
||||||
mod: take less harm if you are moving fast
|
mod: take less harm if you are moving fast
|
||||||
|
|||||||
Reference in New Issue
Block a user