bug fixes and mod -> tech renaming
This commit is contained in:
@@ -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...
|
||||
|
||||
35
js/index.js
35
js/index.js
@@ -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> 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> ${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>
|
||||
${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>
|
||||
${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> ${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> ${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> ${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> ${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();
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
26
js/player.js
26
js/player.js
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
${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
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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");
|
||||
};
|
||||
|
||||
255
js/tech.js
255
js/tech.js
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user