mod - bot fab

bubble fusion drops 2-3 power ups  (down from 3)
perturbation theory: damage is 5% (down from 6%) per reroll
  but the mod will not show up until you have 4 rerolls stockpiled
sporeangium grow faster when stuck to a mob

mod: liquid cooling - freeze all mobs for 6 seconds after receiving harm
mod: perimeter defense - gain 6% harm reduction for each bot
mod: bot fabrication - anytime you have 3 rerolls, convert them into a random bot
mod: Ψ(x) collapse - 33% haste, if you have no rerolls
mod: mine synthesis - drop a mine after picking up a power up
This commit is contained in:
landgreen
2020-07-14 13:13:37 -07:00
parent 92f174983a
commit cef5f4d8d0
8 changed files with 258 additions and 129 deletions

View File

@@ -306,6 +306,7 @@ const mech = {
if (mod.mods[i].count < mod.mods[i].maxCount &&
!mod.mods[i].isNonRefundable &&
mod.mods[i].name !== "quantum immortality" &&
mod.mods[i].name !== "Born rule" &&
mod.mods[i].allowed()
) options.push(i);
}
@@ -440,6 +441,7 @@ const mech = {
let dmg = 1
dmg *= mech.fieldHarmReduction
dmg *= mod.isSlowFPS ? 0.85 : 1
if (mod.isBotArmor) dmg *= 0.94 ** mod.totalBots()
if (mod.isHarmArmor && mech.lastHarmCycle + 600 > mech.cycle) dmg *= 0.5;
if (mod.energyRegen === 0) dmg *= 0.5 //0.22 + 0.78 * mech.energy //77% damage reduction at zero energy
if (mod.isTurret && mech.crouch) dmg /= 2;
@@ -467,7 +469,7 @@ const mech = {
if (mod.isDeathAvoid && powerUps.reroll.rerolls) { //&& Math.random() < 0.5
powerUps.reroll.changeRerolls(-1)
mech.energy = mech.maxEnergy * 0.6
mech.energy = mech.maxEnergy
// if (mech.energy < 0.05) mech.energy = 0.05
mech.immuneCycle = mech.cycle + 120 //disable this.immuneCycle bonus seconds
game.makeTextLog("<span style='font-size:115%;'> <strong>death</strong> avoided<br><strong>1</strong> <strong class='color-r'>reroll</strong> consumed</span>", 420)
@@ -496,7 +498,7 @@ const mech = {
if (mech.health < 0 || isNaN(mech.health)) {
if (mod.isDeathAvoid && powerUps.reroll.rerolls > 0) { //&& Math.random() < 0.5
powerUps.reroll.changeRerolls(-1)
mech.health = mech.maxHealth * 0.6
mech.health = mech.maxHealth * game.healScale
// if (mech.health < 0.05) mech.health = 0.05
mech.immuneCycle = mech.cycle + 120 //disable this.immuneCycle bonus seconds
game.makeTextLog("<span style='font-size:115%;'> <strong>death</strong> avoided<br><strong>1</strong> <strong class='color-r'>reroll</strong> consumed</span>", 420)
@@ -540,6 +542,11 @@ const mech = {
game.fpsInterval = 1000 / game.fpsCap;
//how long to wait to return to normal fps
mech.defaultFPSCycle = mech.cycle + 20 + Math.min(90, Math.floor(200 * dmg))
if (mod.isHarmFreeze) { //freeze all mobs
for (let i = 0, len = mob.length; i < len; i++) {
mobs.statusSlow(mob[i], 360)
}
}
} else {
if (dmg > 0.05) { // freeze game for high damage hits
game.fpsCap = 4 //40 - Math.min(25, 100 * dmg)
@@ -938,6 +945,13 @@ const mech = {
});
if (dist2 < 5000 && !game.isChoosing) { //use power up if it is close enough
if (mod.isMassEnergy) mech.energy = mech.maxEnergy * 3;
if (mod.isMineDrop) b.mine({
x: mech.pos.x,
y: mech.pos.y
}, {
x: 0,
y: 0
}, 0, mod.isMineAmmoBack)
Matter.Body.setVelocity(player, { //player knock back, after grabbing power up
x: player.velocity.x + ((powerUp[i].velocity.x * powerUp[i].mass) / player.mass) * 0.3,
y: player.velocity.y + ((powerUp[i].velocity.y * powerUp[i].mass) / player.mass) * 0.3