bug fixes and mod -> tech renaming

This commit is contained in:
landgreen
2020-12-26 08:54:16 -08:00
parent 0e9d2bcc30
commit 0d70e3918d
10 changed files with 217 additions and 241 deletions

View File

@@ -109,7 +109,7 @@ function collisionChecks(event) {
}
mech.damage(dmg);
if (tech.isPiezo) mech.energy += 2;
if (tech.isBayesian) powerUps.ejectMod()
if (tech.isBayesian) powerUps.ejectTech()
if (mob[k].onHit) mob[k].onHit(k);
mech.immuneCycle = mech.cycle + tech.collisionImmuneCycles; //player is immune to collision damage for 30 cycles
//extra kick between player and mob //this section would be better with forces but they don't work...

View File

@@ -155,7 +155,7 @@ const build = {
for (const property in set) {
set[property] = set[property].replace(/%20/g, " ")
if (property.substring(0, 3) === "gun") b.giveGuns(set[property])
if (property.substring(0, 3) === "tech") tech.giveMod(set[property])
if (property.substring(0, 3) === "tech") tech.giveTech(set[property])
if (property === "field") mech.setField(set[property])
if (property === "difficulty") {
simulation.difficultyMode = Number(set[property])
@@ -181,7 +181,7 @@ const build = {
if (!simulation.isChoosing) text += `<div class="pause-grid-module">
<span style="font-size:1.5em;font-weight: 600;">PAUSED</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; press P to resume</div>`
text += `<div class="pause-grid-module" style = "font-size: 13px;line-height: 120%;padding: 5px;">
<strong class='color-d'>damage</strong> increase: ${((tech.damageFromMods()-1)*100).toFixed(0)}%
<strong class='color-d'>damage</strong> increase: ${((tech.damageFromTech()-1)*100).toFixed(0)}%
<br><strong class='color-harm'>harm</strong> reduction: ${((1-mech.harmReduction())*100).toFixed(0)}%
<br><strong><em>fire delay</em></strong> decrease: ${((1-b.fireCD)*100).toFixed(0)}%
<br><strong class='color-dup'>duplication</strong> chance: ${(Math.min(1,tech.duplicationChance())*100).toFixed(0)}%
@@ -212,19 +212,19 @@ const build = {
el.innerHTML = text
text = "";
text += `<div class="pause-grid-module"><div class="grid-title"><div class="circle-grid field"></div> &nbsp; ${mech.fieldUpgrades[mech.fieldMode].name}</div> ${mech.fieldUpgrades[mech.fieldMode].description}</div>`
let countMods = 0
let countTech = 0
for (let i = 0, len = tech.tech.length; i < len; i++) {
if (tech.tech[i].count > 0) {
const isCount = tech.tech[i].count > 1 ? `(${tech.tech[i].count}x)` : "";
if (tech.tech[i].isFieldMod) {
if (tech.tech[i].isFieldTech) {
text += `<div class="pause-grid-module"><div class="grid-title">
<span style="position:relative;">
<div class="circle-grid tech" style="position:absolute; top:0; left:0;opacity:0.8;"></div>
<div class="circle-grid field" style="position:absolute; top:0; left:10px;opacity:0.65;"></div>
</span>
&nbsp; &nbsp; &nbsp; &nbsp; ${tech.tech[i].name} ${isCount}</div>${tech.tech[i].description}</div></div>`
} else if (tech.tech[i].isGunMod) {
} else if (tech.tech[i].isGunTech) {
text += `<div class="pause-grid-module"><div class="grid-title">
<span style="position:relative;">
<div class="circle-grid tech" style="position:absolute; top:0; left:0;opacity:0.8;"></div>
@@ -232,20 +232,15 @@ const build = {
</span>
&nbsp; &nbsp; &nbsp; &nbsp; ${tech.tech[i].name} ${isCount}</div>${tech.tech[i].description}</div></div>`
} else {
text += `<div class="pause-grid-module"><div class="grid-title"><div class="circle-grid mod"></div> &nbsp; ${tech.tech[i].name} ${isCount}</div>${tech.tech[i].description}</div></div>`
text += `<div class="pause-grid-module"><div class="grid-title"><div class="circle-grid tech"></div> &nbsp; ${tech.tech[i].name} ${isCount}</div>${tech.tech[i].description}</div></div>`
}
// if (tech.tech[i].count === 1) {
// text += `<div class="pause-grid-module"><div class="grid-title"><div class="circle-grid mod"></div> &nbsp; ${tech.tech[i].name}</div> ${tech.tech[i].description}</div>`
// } else {
// text += `<div class="pause-grid-module"><div class="grid-title"><div class="circle-grid mod"></div> &nbsp; ${tech.tech[i].name} (${tech.tech[i].count}x)</div> ${tech.tech[i].description}</div>`
// }
countMods++
countTech++
}
}
el = document.getElementById("pause-grid-right")
el.style.display = "grid"
el.innerHTML = text
if (countMods > 5 || b.inventory.length > 6) {
if (countTech > 5 || b.inventory.length > 6) {
document.body.style.overflowY = "scroll";
document.body.style.overflowX = "hidden";
}
@@ -287,9 +282,9 @@ const build = {
} else if (type === "tech") { //remove tech if you have too many
if (tech.tech[index].count < tech.tech[index].maxCount) {
if (!who.classList.contains("build-tech-selected")) who.classList.add("build-tech-selected");
tech.giveMod(index)
tech.giveTech(index)
} else {
tech.removeMod(index);
tech.removeTech(index);
who.classList.remove("build-tech-selected");
}
}
@@ -299,7 +294,7 @@ const build = {
if (!tech.tech[i].isCustomHide) {
if (tech.tech[i].allowed() || isAllowed || tech.tech[i].count > 0) {
const isCount = tech.tech[i].count > 1 ? `(${tech.tech[i].count}x)` : "";
if (tech.tech[i].isFieldMod) {
if (tech.tech[i].isFieldTech) {
techID.innerHTML = ` <div class="grid-title">
<span style="position:relative;">
<div class="circle-grid tech" style="position:absolute; top:0; left:0;opacity:0.8;"></div>
@@ -310,7 +305,7 @@ const build = {
// <div class="circle-grid gun" style="position:absolute; top:-3px; left:-3px; opacity:1; height: 33px; width:33px;"></div>
// <div class="circle-grid tech" style="position:absolute; top:5px; left:5px;opacity:1;height: 20px; width:20px;border: #fff solid 2px;"></div>
// border: #fff solid 0px;
} else if (tech.tech[i].isGunMod) {
} else if (tech.tech[i].isGunTech) {
techID.innerHTML = ` <div class="grid-title">
<span style="position:relative;">
<div class="circle-grid tech" style="position:absolute; top:0; left:0;opacity:0.8;"></div>
@@ -331,7 +326,7 @@ const build = {
techID.classList.add("build-grid-disabled");
techID.onclick = null
}
if (tech.tech[i].count > 0) tech.removeMod(i)
if (tech.tech[i].count > 0) tech.removeTech(i)
if (techID.classList.contains("build-tech-selected")) techID.classList.remove("build-tech-selected");
}
}
@@ -412,7 +407,7 @@ const build = {
b.activeGun = null;
simulation.makeGunHUD();
tech.setupAllMods();
tech.setupAllTech();
build.populateGrid();
document.getElementById("field-0").classList.add("build-field-selected");
document.getElementById("build-grid").style.display = "grid"
@@ -805,7 +800,7 @@ window.addEventListener("keydown", function(event) {
mech.energy = mech.maxEnergy;
break
case "y":
tech.giveMod()
tech.giveTech()
break
case "r":
mech.resetHistory();

View File

@@ -18,9 +18,9 @@ const level = {
// simulation.setZoom();
// mech.setField("plasma torch")
// b.giveGuns("wave beam")
// tech.giveMod("CPT reversal")
// tech.giveMod("CPT gun")
// for (let i = 0; i < 15; i++) tech.giveMod("plasma jet")
// tech.giveTech("CPT reversal")
// tech.giveTech("CPT gun")
// for (let i = 0; i < 15; i++) tech.giveTech("plasma jet")
level.intro(); //starting level
// level.testing(); //not in rotation
@@ -3834,7 +3834,7 @@ const level = {
if (tech.tech[i].isLost) tech.tech[i].isLost = false;
}
tech.isDeathAvoidedThisLevel = false;
simulation.updateModHUD();
simulation.updateTechHUD();
simulation.clearNow = true; //triggers in simulation.clearMap to remove all physics bodies and setup for new map
},
playerExitCheck() {

View File

@@ -999,7 +999,7 @@ const mobs = {
},
damage(dmg, isBypassShield = false) {
if ((!this.isShielded || isBypassShield) && this.alive) {
dmg *= tech.damageFromMods()
dmg *= tech.damageFromTech()
//mobs specific damage changes
if (tech.isFarAwayDmg) dmg *= 1 + Math.sqrt(Math.max(500, Math.min(3000, this.distanceToPlayer())) - 500) * 0.0067 //up to 50% dmg at max range of 3500
if (this.shield) dmg *= 0.075

View File

@@ -327,17 +327,17 @@ const mech = {
if (tech.isImmortal) { //if player has the immortality buff, spawn on the same level with randomized damage
simulation.isTextLogOpen = false;
//count tech
let totalMods = 0;
let totalTech = 0;
for (let i = 0; i < tech.tech.length; i++) {
if (!tech.tech[i].isNonRefundable) totalMods += tech.tech[i].count
if (!tech.tech[i].isNonRefundable) totalTech += tech.tech[i].count
}
if (tech.isDeterminism) totalMods -= 3 //remove the bonus tech
if (tech.isSuperDeterminism) totalMods -= 2 //remove the bonus tech
totalMods = totalMods * 1.15 + 1 // a few extra to make it stronger
if (tech.isDeterminism) totalTech -= 3 //remove the bonus tech
if (tech.isSuperDeterminism) totalTech -= 2 //remove the bonus tech
totalTech = totalTech * 1.15 + 1 // a few extra to make it stronger
const totalGuns = b.inventory.length //count guns
function randomizeMods() {
for (let i = 0; i < totalMods; i++) {
function randomizeTech() {
for (let i = 0; i < totalTech; i++) {
//find what tech I don't have
let options = [];
for (let i = 0, len = tech.tech.length; i < len; i++) {
@@ -351,12 +351,12 @@ const mech = {
//add a new tech
if (options.length > 0) {
const choose = Math.floor(Math.random() * options.length)
let newMod = options[choose]
tech.giveMod(newMod)
let newTech = options[choose]
tech.giveTech(newTech)
options.splice(choose, 1);
}
}
simulation.updateModHUD();
simulation.updateTechHUD();
}
function randomizeField() {
@@ -398,13 +398,13 @@ const mech = {
spawn.setSpawnList(); //new mob types
simulation.clearNow = true; //triggers a map reset
tech.setupAllMods(); //remove all tech
tech.setupAllTech(); //remove all tech
for (let i = 0; i < bullet.length; ++i) Matter.World.remove(engine.world, bullet[i]);
bullet = []; //remove all bullets
randomizeHealth()
randomizeField()
randomizeGuns()
randomizeMods()
randomizeTech()
}
randomizeEverything()
@@ -899,7 +899,7 @@ const mech = {
}
},
setMaxEnergy() {
mech.maxEnergy = (tech.isMaxEnergyMod ? 0.5 : 1) + tech.bonusEnergy + tech.healMaxEnergyBonus
mech.maxEnergy = (tech.isMaxEnergyTech ? 0.5 : 1) + tech.bonusEnergy + tech.healMaxEnergyBonus
},
fieldMeterColor: "#0cf",
drawFieldMeter(bgColor = "rgba(0, 0, 0, 0.4)", range = 60) {

View File

@@ -15,8 +15,8 @@ const powerUps = {
mech.setField(index)
simulation.makeTextLog(`<span class='color-var'>mech</span>.setField("<span class='color-text'>${mech.fieldUpgrades[mech.fieldMode].name}</span>")`);
} else if (type === "tech") {
tech.giveMod(index)
simulation.makeTextLog(`<span class='color-var'>tech</span>.giveMod("<span class='color-text'>${tech.tech[index].name}</span>")`);
tech.giveTech(index)
simulation.makeTextLog(`<span class='color-var'>tech</span>.giveTech("<span class='color-text'>${tech.tech[index].name}</span>")`);
}
powerUps.endDraft(type);
},
@@ -313,14 +313,14 @@ const powerUps = {
const choose = options[Math.floor(Math.random() * options.length)]
const isCount = tech.tech[choose].count > 0 ? `(${tech.tech[choose].count+1}x)` : "";
if (tech.tech[choose].isFieldMod) {
if (tech.tech[choose].isFieldTech) {
text += `<div class="choose-grid-module" onclick="powerUps.choose('tech',${choose})"><div class="grid-title">
<span style="position:relative;">
<div class="circle-grid tech" style="position:absolute; top:0; left:0;opacity:0.8;"></div>
<div class="circle-grid field" style="position:absolute; top:0; left:10px;opacity:0.65;"></div>
</span>
&nbsp; &nbsp; &nbsp; &nbsp; ${tech.tech[choose].name} ${isCount}</div>${tech.tech[choose].description}</div></div>`
} else if (tech.tech[choose].isGunMod) {
} else if (tech.tech[choose].isGunTech) {
text += `<div class="choose-grid-module" onclick="powerUps.choose('tech',${choose})"><div class="grid-title">
<span style="position:relative;">
<div class="circle-grid tech" style="position:absolute; top:0; left:0;opacity:0.8;"></div>
@@ -373,7 +373,7 @@ const powerUps = {
} else {
if (tech.isBanish) {
for (let i = 0, len = tech.tech.length; i < len; i++) {
if (tech.tech[i].name === "erase") powerUps.ejectMod(i)
if (tech.tech[i].name === "erase") powerUps.ejectTech(i)
}
simulation.makeTextLog(`No <strong class='color-m'>tech</strong> left<br>erased <strong class='color-m'>tech</strong> have been recovered`)
powerUps.spawn(mech.pos.x, mech.pos.y, "tech");
@@ -589,7 +589,7 @@ const powerUps = {
powerUps.spawnRandomPowerUp(x, y);
}
},
ejectMod(choose = 'random') {
ejectTech(choose = 'random') {
//find which tech you have
if (choose === 'random') {
const have = []
@@ -615,7 +615,7 @@ const powerUps = {
tech.tech[choose].remove();
tech.tech[choose].count = 0;
tech.tech[choose].isLost = true;
simulation.updateModHUD();
simulation.updateTechHUD();
mech.fieldCDcycle = mech.cycle + 30; //disable field so you can't pick up the ejected tech
}
} else {
@@ -630,7 +630,7 @@ const powerUps = {
tech.tech[choose].remove();
tech.tech[choose].count = 0;
tech.tech[choose].isLost = true;
simulation.updateModHUD();
simulation.updateTechHUD();
mech.fieldCDcycle = mech.cycle + 30; //disable field so you can't pick up the ejected tech
}
},

View File

@@ -306,7 +306,7 @@ const simulation = {
}
simulation.boldActiveGunHUD();
},
updateModHUD() {
updateTechHUD() {
let text = ""
for (let i = 0, len = tech.tech.length; i < len; i++) { //add tech
if (tech.tech[i].isLost) {
@@ -515,7 +515,7 @@ const simulation = {
b.removeAllGuns();
simulation.isNoPowerUps = false;
tech.setupAllMods(); //sets tech to default values
tech.setupAllTech(); //sets tech to default values
tech.laserBotCount = 0;
tech.orbitBotCount = 0;
tech.nailBotCount = 0;
@@ -524,7 +524,7 @@ const simulation = {
tech.plasmaBotCount = 0;
b.setFireCD();
simulation.updateModHUD();
simulation.updateTechHUD();
powerUps.totalPowerUps = 0;
powerUps.reroll.rerolls = 0;
mech.setFillColors();
@@ -650,7 +650,7 @@ const simulation = {
if (tech.isEndLevelPowerUp) {
for (let i = 0; i < powerUp.length; i++) {
if (powerUp[i].name === "tech") {
tech.giveMod()
tech.giveTech()
} else if (powerUp[i].name === "gun") {
if (!tech.isOneGun) b.giveGuns("random")
} else if (powerUp[i].name === "field") {

View File

@@ -564,7 +564,7 @@ const spawn = {
me.foundPlayer();
}
me.onHit = function() { //run this function on hitting player
powerUps.ejectMod()
powerUps.ejectTech()
powerUps.spawn(mech.pos.x, mech.pos.y, "heal");
powerUps.spawn(mech.pos.x, mech.pos.y, "heal");
};

View File

@@ -1,6 +1,6 @@
const tech = {
totalCount: null,
setupAllMods() {
setupAllTech() {
for (let i = 0, len = tech.tech.length; i < len; i++) {
tech.tech[i].remove();
tech.tech[i].isLost = false
@@ -14,14 +14,14 @@ const tech = {
// tech.plasmaBotCount = 0;
tech.armorFromPowerUps = 0;
tech.totalCount = 0;
simulation.updateModHUD();
simulation.updateTechHUD();
},
removeMod(index) {
removeTech(index) {
tech.tech[index].remove();
tech.tech[index].count = 0;
simulation.updateModHUD();
simulation.updateTechHUD();
},
giveMod(index = 'random') {
giveTech(index = 'random') {
if (index === 'random') {
let options = [];
for (let i = 0; i < tech.tech.length; i++) {
@@ -30,8 +30,8 @@ const tech = {
}
// give a random tech from the tech I don't have
if (options.length > 0) {
let newMod = options[Math.floor(Math.random() * options.length)]
tech.giveMod(newMod)
let newTech = options[Math.floor(Math.random() * options.length)]
tech.giveTech(newTech)
}
} else {
if (isNaN(index)) { //find index by name
@@ -49,10 +49,10 @@ const tech = {
tech.tech[index].effect(); //give specific tech
tech.tech[index].count++
tech.totalCount++ //used in power up randomization
simulation.updateModHUD();
simulation.updateTechHUD();
}
},
setModToNonRefundable(name) {
setTechoNonRefundable(name) {
for (let i = 0; i < tech.tech.length; i++) {
if (tech.tech.name === name) {
tech.tech[i].isNonRefundable = true;
@@ -60,25 +60,6 @@ const tech = {
}
}
},
// giveBasicMod(index = 'random') {
// // if (isNaN(index)) { //find index by name
// // let found = false;
// // for (let i = 0; i < tech.tech.length; i++) {
// // if (index === tech.tech[i].name) {
// // index = i;
// // found = true;
// // break;
// // }
// // }
// // if (!found) return //if name not found don't give any tech
// // }
// tech.basicMods[index].effect(); //give specific tech
// tech.tech[index].count++
// tech.totalCount++ //used in power up randomization
// simulation.updateModHUD();
// },
haveGunCheck(name) {
if (
!build.isCustomSelection &&
@@ -94,11 +75,11 @@ const tech = {
}
return false
},
damageFromMods() {
damageFromTech() {
let dmg = mech.fieldDamage
// if (tech.aimDamage>1)
if (tech.isLowEnergyDamage) dmg *= 1 + Math.max(0, 1 - mech.energy) * 0.5
if (tech.isMaxEnergyMod) dmg *= 1.4
if (tech.isMaxEnergyTech) dmg *= 1.4
if (tech.isEnergyNoAmmo) dmg *= 1.5
if (tech.isDamageForGuns) dmg *= 1 + 0.07 * b.inventory.length
if (tech.isLowHealthDmg) dmg *= 1 + 0.6 * Math.max(0, 1 - mech.health)
@@ -179,11 +160,11 @@ const tech = {
},
requires: "exothermic process, not max energy increase, CPT, missile or spore nano-scale",
effect() {
tech.isMaxEnergyMod = true;
tech.isMaxEnergyTech = true;
mech.setMaxEnergy()
},
remove() {
tech.isMaxEnergyMod = false;
tech.isMaxEnergyTech = false;
mech.setMaxEnergy()
}
},
@@ -1215,7 +1196,7 @@ const tech = {
maxCount: 9,
count: 0,
allowed() {
return tech.damageFromMods() > 1
return tech.damageFromTech() > 1
},
requires: "some increased damage",
effect() {
@@ -1263,7 +1244,7 @@ const tech = {
maxCount: 9,
count: 0,
allowed() {
return !tech.isEnergyHealth && tech.damageFromMods() > 1
return !tech.isEnergyHealth && tech.damageFromTech() > 1
},
requires: "some increased damage, not mass-energy equivalence",
effect() {
@@ -1307,7 +1288,7 @@ const tech = {
},
remove() {
tech.isArmorFromPowerUps = false;
// tech.armorFromPowerUps = 0; //this is now reset in tech.setupAllMods();
// tech.armorFromPowerUps = 0; //this is now reset in tech.setupAllTech();
mech.setMaxHealth();
}
},
@@ -1499,7 +1480,7 @@ const tech = {
tech.tech[choose].count = 0;
tech.tech[choose].remove(); // remove a random tech form the list of tech you have
tech.tech[choose].isLost = true
simulation.updateModHUD();
simulation.updateTechHUD();
},
remove() {}
},
@@ -1528,7 +1509,7 @@ const tech = {
tech.tech[choose].count = 0;
tech.tech[choose].remove(); // remove a random tech form the list of tech you have
tech.tech[choose].isLost = true
simulation.updateModHUD();
simulation.updateTechHUD();
},
remove() {}
},
@@ -1847,7 +1828,7 @@ const tech = {
if (tech.isDeterminism) count -= 3 //remove the bonus tech
if (tech.isSuperDeterminism) count -= 2 //remove the bonus tech
tech.setupAllMods(); // remove all tech
tech.setupAllTech(); // remove all tech
for (let i = 0; i < count; i++) { // spawn new tech power ups
powerUps.spawn(mech.pos.x, mech.pos.y, "tech");
}
@@ -1926,7 +1907,7 @@ const tech = {
{
name: "CPT gun",
description: "adds the <strong>CPT</strong> <strong class='color-g'>gun</strong> to your inventory<br>it <strong>rewinds</strong> your <strong class='color-h'>health</strong>, <strong>velocity</strong>, and <strong>position</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -1968,7 +1949,7 @@ const tech = {
{
name: "incendiary ammunition",
description: "some <strong>bullets</strong> are loaded with <strong class='color-e'>explosives</strong><br><em style = 'font-size: 90%'>nail gun, shotgun, super balls, drones</em>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -1985,7 +1966,7 @@ const tech = {
{
name: "fragmentation",
description: "some <strong class='color-e'>detonations</strong> and collisions eject <strong>nails</strong><br><em style = 'font-size: 90%'>blocks, rail gun, grenades, missiles, shotgun slugs</em>",
isGunMod: true,
isGunTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -2002,7 +1983,7 @@ const tech = {
{
name: "Lorentzian topology",
description: "some <strong>bullets</strong> last <strong>30% longer</strong><br><em style = 'font-size: 83%'>drones, spores, missiles, foam, wave, ice IX, neutron</em>",
isGunMod: true,
isGunTech: true,
maxCount: 3,
count: 0,
allowed() {
@@ -2019,7 +2000,7 @@ const tech = {
{
name: "microstates",
description: "increase <strong class='color-d'>damage</strong> by <strong>4%</strong><br>for every <strong>10</strong> active <strong>bullets</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2036,7 +2017,7 @@ const tech = {
{
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>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2072,7 +2053,7 @@ const tech = {
{
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",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2089,7 +2070,7 @@ const tech = {
{
name: "pneumatic actuator",
description: "<strong>nail gun</strong> takes <strong>45%</strong> less time to ramp up<br>to it's shortest <strong><em>delay</em></strong> after firing",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2106,7 +2087,7 @@ const tech = {
{
name: "powder-actuated",
description: "<strong>nail gun</strong> takes <strong>no</strong> time to ramp up<br>nails have a <strong>30%</strong> faster muzzle <strong>speed</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2123,7 +2104,7 @@ const tech = {
{
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>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2162,7 +2143,7 @@ const tech = {
{
name: "nailshot",
description: "the <strong>shotgun</strong> fires a burst of <strong>nails</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2179,7 +2160,7 @@ const tech = {
{
name: "shotgun slug",
description: "the <strong>shotgun</strong> fires 1 large <strong>bullet</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2196,7 +2177,7 @@ const tech = {
{
name: "Newton's 3rd law",
description: "the <strong>shotgun</strong> fire <strong><em>delay</em></strong> is <strong>66%</strong> faster<br><strong>recoil</strong> is greatly increased",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2213,7 +2194,7 @@ const tech = {
{
name: "super duper",
description: "fire <strong>1</strong> additional <strong>super ball</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -2230,7 +2211,7 @@ const tech = {
{
name: "super ball",
description: "fire just <strong>1 large</strong> super <strong>ball</strong><br>that <strong>stuns</strong> mobs for <strong>3</strong> second",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2247,7 +2228,7 @@ const tech = {
{
name: "super sized",
description: `your <strong>super balls</strong> are <strong>20%</strong> larger<br>increases mass and physical <strong class='color-d'>damage</strong>`,
isGunMod: true,
isGunTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -2264,7 +2245,7 @@ const tech = {
{
name: "flechettes cartridges",
description: "<strong>flechettes</strong> release <strong>three</strong> needles in each shot<br><strong class='color-g'>ammo</strong> costs are <strong>tripled</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2311,7 +2292,7 @@ const tech = {
{
name: "6s half-life",
description: "<strong>flechette</strong> needles made of <strong class='color-p'>plutonium-238</strong><br>increase <strong class='color-d'>damage</strong> by <strong>100%</strong> over <strong>6</strong> seconds",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2328,7 +2309,7 @@ const tech = {
{
name: "1/2s half-life",
description: "<strong>flechette</strong> needles made of <strong class='color-p'>lithium-8</strong><br>flechette <strong class='color-d'>damage</strong> occurs after <strong>1/2</strong> a second",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2345,7 +2326,7 @@ const tech = {
{
name: "supercritical fission",
description: "<strong>flechettes</strong> can <strong class='color-e'>explode</strong><br>if they strike mobs near their <strong>center</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2362,7 +2343,7 @@ const tech = {
{
name: "radioactive contamination",
description: "after a mob or shield <strong>dies</strong>,<br> leftover <strong class='color-p'>radiation</strong> <strong>spreads</strong> to a nearby mob",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2379,7 +2360,7 @@ const tech = {
{
name: "piercing needles",
description: "<strong>needles</strong> penetrate <strong>mobs</strong> and <strong>blocks</strong><br>potentially hitting <strong>multiple</strong> targets",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2396,7 +2377,7 @@ const tech = {
{
name: "wave packet",
description: "<strong>wave beam</strong> emits <strong>two</strong> oscillating particles<br>decrease wave <strong class='color-d'>damage</strong> by <strong>20%</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2413,7 +2394,7 @@ const tech = {
{
name: "phase velocity",
description: "the <strong>wave beam</strong> propagates faster in solids",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2432,7 +2413,7 @@ const tech = {
{
name: "bound state",
description: "<strong>wave beam</strong> bullets last <strong>5x</strong> longer<br>bullets are <strong>bound</strong> to a <strong>region</strong> around player",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2449,7 +2430,7 @@ const tech = {
{
name: "recursion",
description: "after <strong>missiles</strong> <strong class='color-e'>explode</strong> they have a<br><strong>20%</strong> chance to launch a larger <strong>missile</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 6,
count: 0,
allowed() {
@@ -2466,7 +2447,7 @@ const tech = {
{
name: "MIRV",
description: "launch <strong>3</strong> small <strong>missiles</strong> instead of <strong>1</strong> <br><strong>1.5x</strong> increase in <strong><em>delay</em></strong> after firing",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2483,7 +2464,7 @@ const tech = {
{
name: "rocket-propelled grenade",
description: "<strong>grenades</strong> rapidly <strong>accelerate</strong> forward<br>map <strong>collisions</strong> trigger an <strong class='color-e'>explosion</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2502,7 +2483,7 @@ const tech = {
{
name: "vacuum bomb",
description: "<strong>grenades</strong> fire slower, <strong class='color-e'>explode</strong> bigger<br> and, <strong>suck</strong> everything towards them",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2521,7 +2502,7 @@ const tech = {
{
name: "neutron bomb",
description: "<strong>grenades</strong> are irradiated with <strong class='color-p'>Cf-252</strong><br>does <strong class='color-d'>damage</strong>, <strong class='color-harm'>harm</strong>, and drains <strong class='color-f'>energy</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2540,7 +2521,7 @@ const tech = {
{
name: "water shielding",
description: "increase <strong>neutron bomb's</strong> range by <strong>20%</strong><br>player is <strong>immune</strong> to its harmful effects",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2557,7 +2538,7 @@ const tech = {
{
name: "vacuum permittivity",
description: "increase <strong>neutron bomb's</strong> range by <strong>20%</strong><br>objects in range of the bomb are <strong>slowed</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2574,7 +2555,7 @@ const tech = {
{
name: "mine reclamation",
description: "retrieve <strong class='color-g'>ammo</strong> from all undetonated <strong>mines</strong><br>and <strong>20%</strong> of <strong>mines</strong> after detonation",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2591,7 +2572,7 @@ const tech = {
{
name: "sentry",
description: "<strong>mines</strong> <strong>target</strong> mobs with nails over time<br>mines last about <strong>12</strong> seconds",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2608,7 +2589,7 @@ const tech = {
{
name: "irradiated nails",
description: "<strong>nails</strong> are made with a <strong class='color-p'>cobalt-60</strong> alloy<br><strong>85%</strong> <strong class='color-p'>radioactive</strong> <strong class='color-d'>damage</strong> over <strong>2</strong> seconds",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2625,7 +2606,7 @@ const tech = {
{
name: "railroad ties",
description: "<strong>nails</strong> are <strong>40%</strong> <strong>larger</strong><br>increases physical <strong class='color-d'>damage</strong> by about <strong>20%</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2642,7 +2623,7 @@ const tech = {
{
name: "mycelial fragmentation",
description: "<strong class='color-p' style='letter-spacing: 2px;'>sporangium</strong> release an extra <strong class='color-p' style='letter-spacing: 2px;'>spore</strong><br> once a <strong>second</strong> during their <strong>growth</strong> phase",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2659,7 +2640,7 @@ const tech = {
{
name: "tinsellated flagella",
description: "<strong class='color-p' style='letter-spacing: 2px;'>sporangium</strong> release <strong>2</strong> more <strong class='color-p' style='letter-spacing: 2px;'>spores</strong><br><strong class='color-p' style='letter-spacing: 2px;'>spores</strong> accelerate <strong>50% faster</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2677,7 +2658,7 @@ const tech = {
name: "cryodesiccation",
description: "<strong class='color-p' style='letter-spacing: 2px;'>sporangium</strong> release <strong>2</strong> more <strong class='color-p' style='letter-spacing: 2px;'>spores</strong><br><strong class='color-p' style='letter-spacing: 2px;'>spores</strong> <strong class='color-s'>freeze</strong> mobs for <strong>1</strong> second",
// <br><strong class='color-p' style='letter-spacing: 2px;'>spores</strong> do <strong>1/3</strong> <strong class='color-d'>damage</strong>
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2694,7 +2675,7 @@ const tech = {
{
name: "diplochory",
description: "<strong class='color-p' style='letter-spacing: 2px;'>spores</strong> use the player for <strong>dispersal</strong><br>until they <strong>locate</strong> a viable host",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2711,7 +2692,7 @@ const tech = {
{
name: "mutualism",
description: "increase <strong class='color-p' style='letter-spacing: 2px;'>spore</strong> <strong class='color-d'>damage</strong> by <strong>100%</strong><br><strong class='color-p' style='letter-spacing: 2px;'>spores</strong> borrow <strong>0.5</strong> <strong>health</strong> until they <strong>die</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2728,7 +2709,7 @@ const tech = {
{
name: "brushless motor",
description: "<strong>drones</strong> accelerate <strong>50%</strong> faster",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2745,7 +2726,7 @@ const tech = {
{
name: "harvester",
description: "after a <strong>drone</strong> picks up a <strong>power up</strong>,<br>it's <strong>larger</strong>, <strong>faster</strong>, and very <strong>durable</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2762,7 +2743,7 @@ const tech = {
{
name: "superfluidity",
description: "<strong class='color-s'>freeze</strong> effects apply to mobs near it's target",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2779,7 +2760,7 @@ const tech = {
{
name: "heavy water",
description: "<strong>ice IX</strong> is synthesized with an extra neutron<br>does <strong class='color-p'>radioactive</strong> <strong class='color-d'>damage</strong> over <strong>5</strong> seconds",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2796,7 +2777,7 @@ const tech = {
{
name: "thermoelectric effect",
description: "<strong>killing</strong> mobs with <strong>ice IX</strong> gives <strong>4</strong> <strong class='color-h'>health</strong><br>and <strong>100</strong> <strong class='color-f'>energy</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -2813,7 +2794,7 @@ const tech = {
{
name: "necrophoresis",
description: "<strong>foam</strong> bullets grow and split into 3 <strong>copies</strong><br> when the mob they are stuck to <strong>dies</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2830,7 +2811,7 @@ const tech = {
{
name: "colloidal foam",
description: "increase <strong>foam</strong> <strong class='color-d'>damage</strong> by <strong>366%</strong><br><strong>foam</strong> dissipates <strong>40%</strong> faster",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2881,7 +2862,7 @@ const tech = {
{
name: "half-wave rectifier",
description: "charging the <strong>rail gun</strong> gives you <strong class='color-f'>energy</strong><br><em>instead of draining it</em>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2898,7 +2879,7 @@ const tech = {
{
name: "dielectric polarization",
description: "firing the <strong>rail gun</strong> <strong class='color-d'>damages</strong> nearby <strong>mobs</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2915,7 +2896,7 @@ const tech = {
{
name: "capacitor bank",
description: "the <strong>rail gun</strong> no longer takes time to <strong>charge</strong><br><strong>rail gun</strong> rods are <strong>66%</strong> less massive",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2932,7 +2913,7 @@ const tech = {
{
name: "laser diodes",
description: "<strong>lasers</strong> drain <strong>37%</strong> less <strong class='color-f'>energy</strong><br><em>effects laser-gun and laser-bot</em>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -2949,7 +2930,7 @@ const tech = {
{
name: "specular reflection",
description: "<strong>laser</strong> beams gain <strong>1</strong> reflection<br>increase <strong class='color-d'>damage</strong> and <strong class='color-f'>energy</strong> drain by <strong>50%</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -2970,7 +2951,7 @@ const tech = {
{
name: "diffraction grating",
description: `your <strong>laser</strong> gains <strong>2 diverging</strong> beams<br>decrease individual beam <strong class='color-d'>damage</strong> by <strong>10%</strong>`,
isGunMod: true,
isGunTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -2993,7 +2974,7 @@ const tech = {
{
name: "diffuse beam",
description: "<strong>laser</strong> beam is <strong>wider</strong> and doesn't <strong>reflect</strong><br>increase full beam <strong class='color-d'>damage</strong> by <strong>175%</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3018,7 +2999,7 @@ const tech = {
{
name: "output coupler",
description: "<strong>widen</strong> diffuse <strong>laser</strong> beam by <strong>40%</strong><br>increase full beam <strong class='color-d'>damage</strong> by <strong>40%</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3045,7 +3026,7 @@ const tech = {
{
name: "slow light propagation",
description: "",
isGunMod: true,
isGunTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -3070,7 +3051,7 @@ const tech = {
{
name: "pulse",
description: "convert <strong>25%</strong> of your <strong class='color-f'>energy</strong> into a pulsed laser<br>instantly initiates a fusion <strong class='color-e'>explosion</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3093,7 +3074,7 @@ const tech = {
{
name: "shock wave",
description: "mobs caught in <strong>pulse's</strong> explosion are <strong>stunned</strong><br>for up to <strong>2 seconds</strong>",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3110,7 +3091,7 @@ const tech = {
{
name: "neocognitron",
description: "<strong>pulse</strong> automatically <strong>aims</strong> at a nearby mob<br><strong>50%</strong> decreased <strong><em>delay</em></strong> after firing",
isGunMod: true,
isGunTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3131,7 +3112,7 @@ const tech = {
{
name: "bremsstrahlung radiation",
description: "<strong>blocking</strong> with <strong>standing wave harmonics</strong><br> does <strong class='color-d'>damage</strong> to mobs",
isFieldMod: true,
isFieldTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -3148,7 +3129,7 @@ const tech = {
{
name: "frequency resonance",
description: "<strong>standing wave harmonics</strong> shield is retuned<br>increase <strong>size</strong> and <strong>blocking</strong> efficiency by <strong>40%</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -3167,7 +3148,7 @@ const tech = {
{
name: "flux pinning",
description: "blocking with <strong>perfect diamagnetism</strong><br><strong>stuns</strong> mobs for <strong>+1</strong> second",
isFieldMod: true,
isFieldTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -3184,7 +3165,7 @@ const tech = {
{
name: "eddy current brake",
description: "your stored <strong class='color-f'>energy</strong> projects a field that<br>limits the <strong>top speed</strong> of mobs",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3201,7 +3182,7 @@ const tech = {
{
name: "fracture analysis",
description: "bullet impacts do <strong>400%</strong> <strong class='color-d'>damage</strong><br>to <strong>stunned</strong> mobs",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3218,7 +3199,7 @@ const tech = {
{
name: "pair production",
description: "picking up a <strong>power up</strong> gives you <strong>250</strong> <strong class='color-f'>energy</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3236,7 +3217,7 @@ const tech = {
{
name: "bot manufacturing",
description: "use <strong>nano-scale manufacturing</strong><br>to build <strong>3</strong> random <strong>bots</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
isNonRefundable: true,
@@ -3256,7 +3237,7 @@ const tech = {
{
name: "bot prototypes",
description: "use <strong>nano-scale manufacturing</strong> to <strong>upgrade</strong><br>all bots of a random type and <strong>build</strong> <strong>2</strong> of that <strong>bot</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
isNonRefundable: true,
@@ -3270,40 +3251,40 @@ const tech = {
//fill array of available bots
const notUpgradedBots = []
if (!tech.isNailBotUpgrade) notUpgradedBots.push(() => {
tech.giveMod("nail-bot upgrade")
tech.setModToNonRefundable("nail-bot upgrade")
tech.giveTech("nail-bot upgrade")
tech.setTechoNonRefundable("nail-bot upgrade")
for (let i = 0; i < 2; i++) {
b.nailBot()
tech.nailBotCount++;
}
})
if (!tech.isFoamBotUpgrade) notUpgradedBots.push(() => {
tech.giveMod("foam-bot upgrade")
tech.setModToNonRefundable("foam-bot upgrade")
tech.giveTech("foam-bot upgrade")
tech.setTechoNonRefundable("foam-bot upgrade")
for (let i = 0; i < 2; i++) {
b.foamBot()
tech.foamBotCount++;
}
})
if (!tech.isBoomBotUpgrade) notUpgradedBots.push(() => {
tech.giveMod("boom-bot upgrade")
tech.setModToNonRefundable("boom-bot upgrade")
tech.giveTech("boom-bot upgrade")
tech.setTechoNonRefundable("boom-bot upgrade")
for (let i = 0; i < 2; i++) {
b.boomBot()
tech.boomBotCount++;
}
})
if (!tech.isLaserBotUpgrade) notUpgradedBots.push(() => {
tech.giveMod("laser-bot upgrade")
tech.setModToNonRefundable("laser-bot upgrade")
tech.giveTech("laser-bot upgrade")
tech.setTechoNonRefundable("laser-bot upgrade")
for (let i = 0; i < 2; i++) {
b.laserBot()
tech.laserBotCount++;
}
})
if (!tech.isOrbitBotUpgrade) notUpgradedBots.push(() => {
tech.giveMod("orbital-bot upgrade")
tech.setModToNonRefundable("orbital-bot upgrade")
tech.giveTech("orbital-bot upgrade")
tech.setTechoNonRefundable("orbital-bot upgrade")
for (let i = 0; i < 2; i++) {
b.orbitBot()
tech.orbitBotCount++;
@@ -3317,7 +3298,7 @@ const tech = {
{
name: "mycelium manufacturing",
description: "<strong>nano-scale manufacturing</strong> is repurposed<br>excess <strong class='color-f'>energy</strong> used to grow <strong class='color-p' style='letter-spacing: 2px;'>spores</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3334,7 +3315,7 @@ const tech = {
{
name: "missile manufacturing",
description: "<strong>nano-scale manufacturing</strong> is repurposed<br>excess <strong class='color-f'>energy</strong> used to construct <strong>missiles</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3351,7 +3332,7 @@ const tech = {
{
name: "ice IX manufacturing",
description: "<strong>nano-scale manufacturing</strong> is repurposed<br>excess <strong class='color-f'>energy</strong> used to synthesize <strong>ice IX</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3368,7 +3349,7 @@ const tech = {
{
name: "degenerate matter",
description: "reduce <strong class='color-harm'>harm</strong> by <strong>40%</strong><br>while <strong>negative mass field</strong> is active",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3385,7 +3366,7 @@ const tech = {
{
name: "annihilation",
description: "after <strong>touching</strong> mobs, they are <strong>annihilated</strong><br>drains <strong>33%</strong> of maximum <strong class='color-f'>energy</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3402,7 +3383,7 @@ const tech = {
{
name: "Bose Einstein condensate",
description: "<strong>mobs</strong> inside your <strong class='color-f'>field</strong> are <strong class='color-s'>frozen</strong><br><em style = 'font-size: 100%'>pilot wave, negative mass, time dilation</em>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3419,7 +3400,7 @@ const tech = {
// {
// name: "thermal reservoir",
// description: "increase your <strong class='color-plasma'>plasma</strong> <strong class='color-d'>damage</strong> by <strong>100%</strong><br><strong class='color-plasma'>plasma</strong> temporarily lowers health not <strong class='color-f'>energy</strong>",
// isFieldMod: true,
// isFieldTech: true,
// maxCount: 1,
// count: 0,
// allowed() {
@@ -3436,7 +3417,7 @@ const tech = {
{
name: "plasma jet",
description: "increase <strong class='color-plasma'>plasma</strong> <strong>torch's</strong> range by <strong>27%</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 9,
count: 0,
allowed() {
@@ -3453,7 +3434,7 @@ const tech = {
{
name: "plasma-bot",
description: "a bot uses <strong class='color-f'>energy</strong> to emit <strong class='color-plasma'>plasma</strong><br>that <strong class='color-d'>damages</strong> and <strong>pushes</strong> mobs",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3471,7 +3452,7 @@ const tech = {
{
name: "micro-extruder",
description: "<strong class='color-plasma'>plasma</strong> <strong>torch</strong> extrudes a thin <strong class='color-plasma'>hot</strong> wire<br>increases <strong class='color-d'>damage</strong>, and <strong class='color-f'>energy</strong> drain",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3488,7 +3469,7 @@ const tech = {
{
name: "timelike world line",
description: "<strong>time dilation</strong> doubles your relative time <strong>rate</strong><br>and makes you <strong>immune</strong> to <strong class='color-harm'>harm</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3507,7 +3488,7 @@ const tech = {
{
name: "Lorentz transformation",
description: "permanently increase your relative time rate<br><strong>move</strong>, <strong>jump</strong>, and <strong>shoot</strong> <strong>40%</strong> faster",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3530,7 +3511,7 @@ const tech = {
{
name: "time crystals",
description: "<strong>quadruple</strong> your default <strong class='color-f'>energy</strong> regeneration",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3549,7 +3530,7 @@ const tech = {
{
name: "phase decoherence",
description: "become <strong>intangible</strong> while <strong class='color-cloaked'>cloaked</strong><br>but, passing through <strong>mobs</strong> drains your <strong class='color-f'>energy</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3566,7 +3547,7 @@ const tech = {
{
name: "dazzler",
description: "<strong class='color-cloaked'>decloaking</strong> <strong>stuns</strong> nearby mobs<br>drains <strong>30%</strong> of your stored <strong class='color-f'>energy</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3583,7 +3564,7 @@ const tech = {
{
name: "discrete optimization",
description: "increase <strong class='color-d'>damage</strong> by <strong>50%</strong><br><strong>50%</strong> increased <strong><em>delay</em></strong> after firing",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3602,7 +3583,7 @@ const tech = {
{
name: "cosmic string",
description: "<strong>stun</strong> and do <strong class='color-p'>radioactive</strong> <strong class='color-d'>damage</strong> to <strong>mobs</strong><br>if you tunnel through them with a <strong class='color-worm'>wormhole</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3619,7 +3600,7 @@ const tech = {
{
name: "Penrose process",
description: "after a <strong>block</strong> falls into a <strong class='color-worm'>wormhole</strong><br>you gain <strong>50</strong> <strong class='color-f'>energy</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3636,7 +3617,7 @@ const tech = {
{
name: "transdimensional spores",
description: "when <strong>blocks</strong> fall into a <strong class='color-worm'>wormhole</strong><br>higher dimension <strong class='color-p' style='letter-spacing: 2px;'>spores</strong> are summoned",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3653,7 +3634,7 @@ const tech = {
{
name: "traversable geodesics",
description: "your <strong>bullets</strong> can traverse <strong class='color-worm'>wormholes</strong><br>spawn a <strong class='color-g'>gun</strong> and <strong class='color-g'>ammo</strong>",
isFieldMod: true,
isFieldTech: true,
maxCount: 1,
count: 0,
allowed() {
@@ -3932,7 +3913,7 @@ const tech = {
isCancelRerolls: null,
isBotDamage: null,
isBanish: null,
isMaxEnergyMod: null,
isMaxEnergyTech: null,
isLowEnergyDamage: null,
isRewindBot: null,
isRewindGrenade: null,