This commit is contained in:
landgreen
2020-10-21 07:47:10 -07:00
parent 0c2285b1c7
commit 5bbac02f88
5 changed files with 60 additions and 62 deletions

View File

@@ -157,7 +157,7 @@
<td class='key-used'>ArrowUp</td>
</tr>
<tr>
<th>CROUCH&nbsp;</th>
<th>CROUCH</th>
<td id='key-down' class='key-input'>S</td>
<td class='key-used'>ArrowDown</td>
</tr>
@@ -172,12 +172,12 @@
<td class='key-used'>ArrowRight</td>
</tr>
<tr>
<th>GUN → </th>
<th>GUN →</th>
<td id='key-next-gun' class='key-input'>Q</td>
<td class='key-used'>MouseWheel</td>
</tr>
<tr>
<th>GUN ← </th>
<th>GUN ←</th>
<td id='key-previous-gun' class='key-input'>E</td>
<td class='key-used'>MouseWheel</td>
</tr>

View File

@@ -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

View File

@@ -791,7 +791,7 @@ const mod = {
},
{
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,
count: 0,
allowed() {
@@ -1208,7 +1208,7 @@ const mod = {
},
{
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,
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 <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",
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
}
},
{
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",
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",
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,
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();
},

View File

@@ -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) {

View File

@@ -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