diff --git a/.DS_Store b/.DS_Store
index 43348f1..37da533 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/js/bullet.js b/js/bullet.js
index b099ac9..329ad80 100644
--- a/js/bullet.js
+++ b/js/bullet.js
@@ -102,7 +102,7 @@ const b = {
for (let i = 0; i < 4; i++) powerUps.spawn(m.pos.x + 50 * (Math.random() - 0.5), m.pos.y + 50 * (Math.random() - 0.5), "ammo");
}
},
- refundAmmo() { //triggers after firing when you removed ammo for a gun, but didn't need to (like a rail gun misfire)
+ refundAmmo() { //triggers after firing when you removed ammo for a gun, but didn't need to (like a railgun misfire)
if (tech.isCrouchAmmo && input.down) {
tech.isCrouchAmmo--
if ((tech.isCrouchAmmo) % 2) {
@@ -4430,7 +4430,7 @@ const b = {
fire() {}
},
{
- name: "wave beam",
+ name: "matter wave",
description: "emit a wave packet of oscillating particles
that propagates through solids",
ammo: 0,
ammoPack: 120,
@@ -5189,7 +5189,7 @@ const b = {
}
},
{
- name: "rail gun",
+ name: "railgun",
description: "use energy to launch a high-speed dense rod
hold left mouse to charge, release to fire",
ammo: 0,
ammoPack: 3.5,
diff --git a/js/index.js b/js/index.js
index b3f02fd..3b79e49 100644
--- a/js/index.js
+++ b/js/index.js
@@ -172,6 +172,13 @@ window.onresize = () => {
//**********************************************************************
// experimental build grid display and pause
//**********************************************************************
+//set wikipedia link
+for (let i = 0, len = tech.tech.length; i < len; i++) {
+ if (!tech.tech[i].link) {
+ tech.tech[i].link = `${tech.tech[i].name}`
+ }
+}
+
const build = {
// onLoadPowerUps() {
// const set = getUrlVars()
@@ -241,7 +248,7 @@ const build = {
`;
for (let i = 0, len = b.inventory.length; i < len; i++) {
- text += `
${b.guns[b.inventory[i]].name} -
${b.guns[b.inventory[i]].ammo} ${b.guns[b.inventory[i]].description}
`
+ text += ` ${build.nameLink(b.guns[b.inventory[i]].name)} -
${b.guns[b.inventory[i]].ammo} ${b.guns[b.inventory[i]].description}
`
}
let el = document.getElementById("pause-grid-left")
el.style.display = "grid"
@@ -249,7 +256,7 @@ const build = {
//left side
text = "";
- text += ` ${m.fieldUpgrades[m.fieldMode].name}
${m.fieldUpgrades[m.fieldMode].description}
`
+ text += ` ${build.nameLink(m.fieldUpgrades[m.fieldMode].name)}
${m.fieldUpgrades[m.fieldMode].description}
`
for (let i = 0, len = tech.tech.length; i < len; i++) {
if (tech.tech[i].count > 0 && !tech.tech[i].isNonRefundable) {
const isCount = tech.tech[i].count > 1 ? `(${tech.tech[i].count}x)` : "";
@@ -259,23 +266,23 @@ const build = {
- ${tech.tech[i].name} ${isCount}${tech.tech[i].description}`
+ ${tech.tech[i].link} ${isCount}${tech.tech[i].description}`
} else if (tech.tech[i].isGunTech) {
text += `
- ${tech.tech[i].name} ${isCount}
${tech.tech[i].description}
`
+ ${tech.tech[i].link} ${isCount}${tech.tech[i].description}`
} else if (tech.tech[i].isLore) {
text += ` ${tech.tech[i].name} ${isCount}
${tech.tech[i].description}
`
// } else if (tech.tech[i].isJunk) {
// text += ` ${tech.tech[i].name} ${isCount}
${tech.tech[i].description}
`
} else {
- text += ` ${tech.tech[i].name} ${isCount}
${tech.tech[i].description}
`
+ text += ` ${tech.tech[i].link} ${isCount}
${tech.tech[i].description}
`
}
} else if (tech.tech[i].isLost) {
- text += `${tech.tech[i].name}
${tech.tech[i].description}
`
+ text += `${tech.tech[i].link}
${tech.tech[i].description}
`
}
}
el = document.getElementById("pause-grid-right")
@@ -369,7 +376,7 @@ const build = {
- ${tech.tech[i].name} ${isCount}${tech.tech[i].description}
+ ${tech.tech[i].link} ${isCount}${tech.tech[i].description}
`
//
//
@@ -382,18 +389,18 @@ const build = {
- ${tech.tech[i].name} ${isCount}${tech.tech[i].description}
+ ${tech.tech[i].link} ${isCount}${tech.tech[i].description}
`
} else
if (tech.tech[i].isJunk) {
// text += ` ${tech.tech[i].name} ${isCount}
${tech.tech[i].description}
`
- techID.innerHTML = ` ${tech.tech[i].name} ${isCount}
${tech.tech[i].description}`
+ techID.innerHTML = ` ${tech.tech[i].link} ${isCount}
${tech.tech[i].description}`
} else if (tech.tech[i].isExperimentalMode) {
// techID.innerHTML = `${tech.tech[i].description}`
techID.innerHTML = `${tech.tech[i].name}
${tech.tech[i].description}`
// text += `${tech.tech[i].name}
${tech.tech[i].description}`
} else {
- techID.innerHTML = ` ${tech.tech[i].name} ${isCount}
${tech.tech[i].description}`
+ techID.innerHTML = ` ${tech.tech[i].link} ${isCount}
${tech.tech[i].description}`
}
//deselect selected tech options if you don't have the tech any more // for example: when bot techs are converted after a bot upgrade tech is taken
if (tech.tech[i].count === 0 && techID.classList.contains("build-tech-selected")) techID.classList.remove("build-tech-selected");
@@ -455,10 +462,10 @@ const build = {
`
for (let i = 0, len = m.fieldUpgrades.length; i < len; i++) {
- text += ` ${m.fieldUpgrades[i].name}
${m.fieldUpgrades[i].description}
`
+ text += ` ${build.nameLink(m.fieldUpgrades[i].name)}
${m.fieldUpgrades[i].description}
`
}
for (let i = 0, len = b.guns.length; i < len; i++) {
- text += ``
+ text += ` ${build.nameLink(b.guns[i].name)}
${b.guns[i].description}
`
}
for (let i = 0, len = tech.tech.length; i < len; i++) {
if (!tech.tech[i].isExperimentHide && (!tech.tech[i].isNonRefundable || tech.tech[i].isExperimentalMode)) {
@@ -466,7 +473,7 @@ const build = {
if (tech.tech[i].isExperimentalMode) {
text += `${tech.tech[i].name}
${tech.tech[i].description}
`
} else {
- text += ` ${tech.tech[i].description}
`
+ text += ` ${tech.tech[i].description}
`
}
} else {
text += ` ${tech.tech[i].name}
${tech.tech[i].description}
`
@@ -497,6 +504,9 @@ const build = {
}
}
},
+ nameLink(text) { //converts text into a clickable wikipedia search
+ return `${text}`
+ },
reset() {
simulation.startGame(true); //starts game, but pauses it
build.isExperimentSelection = true;
diff --git a/js/player.js b/js/player.js
index 743b340..97ab0ab 100644
--- a/js/player.js
+++ b/js/player.js
@@ -1471,7 +1471,7 @@ const m = {
}
},
{
- name: "standing wave harmonics",
+ name: "standing wave",
description: "3 oscillating shields are permanently active
deflecting protects you in every direction
deflecting has 50% less recoil", //drains energy
drainCD: 0,
effect: () => {
@@ -1757,7 +1757,7 @@ const m = {
}
},
{
- name: "negative mass field",
+ name: "negative mass",
description: "use energy to nullify gravity
reduce harm by 55%
hold blocks as if they have a lower mass",
fieldDrawRadius: 0,
effect: () => {
@@ -1907,7 +1907,7 @@ const m = {
}
},
{
- name: "nano-scale manufacturing",
+ name: "molecular assembler",
description: "excess energy used to build drones
use energy to deflect mobs
double your default energy regeneration",
effect: () => {
// m.fieldMeterColor = "#0c5"
diff --git a/js/simulation.js b/js/simulation.js
index 9b3269d..5f3e678 100644
--- a/js/simulation.js
+++ b/js/simulation.js
@@ -388,9 +388,9 @@ const simulation = {
}
},
switchGun() {
- if (tech.isLongitudinal && b.guns[b.activeGun].name === "wave beam") {
+ if (tech.isLongitudinal && b.guns[b.activeGun].name === "matter wave") {
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "wave beam") {
+ if (b.guns[i].name === "matter wave") {
b.guns[i].waves = []; //empty array of wave bullets
break;
}
@@ -746,7 +746,7 @@ const simulation = {
if (m.alive) {
if (tech.isLongitudinal) {
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "wave beam") {
+ if (b.guns[i].name === "matter wave") {
b.guns[i].waves = []; //empty array of wave bullets
break;
}
diff --git a/js/tech.js b/js/tech.js
index 9890536..fb2013a 100644
--- a/js/tech.js
+++ b/js/tech.js
@@ -239,6 +239,7 @@
},
tech: [{
name: "integrated armament",
+ link: `integrated armament`,
description: `increase damage by 19.95%
your inventory can only hold 1 gun`,
maxCount: 1,
count: 0,
@@ -412,7 +413,7 @@
allowed() {
return !tech.isEnergyNoAmmo
},
- requires: "not exciton-lattice",
+ requires: "not exciton",
effect() {
tech.isAmmoForGun = true;
},
@@ -443,6 +444,7 @@
},
{
name: "cache",
+ link: `cache`,
description: `${powerUps.orb.ammo()} give 13x more ammo, but
you can't store any more ammo than that`,
maxCount: 1,
count: 0,
@@ -451,7 +453,7 @@
allowed() {
return !tech.isEnergyNoAmmo
},
- requires: "not exciton-lattice",
+ requires: "not exciton",
effect() {
tech.ammoCap = 13;
powerUps.ammo.effect()
@@ -470,7 +472,7 @@
allowed() {
return !tech.isEnergyNoAmmo && !tech.isEnergyHealth
},
- requires: "not exciton-lattice, mass-energy",
+ requires: "not exciton, mass-energy",
effect: () => {
tech.isAmmoFromHealth = true;
},
@@ -480,6 +482,7 @@
},
{
name: "desublimated ammunition",
+ link: `desublimated ammunition`,
description: "every other crouched shot uses no ammo
+6 JUNK to the potential tech pool",
maxCount: 1,
count: 0,
@@ -673,7 +676,7 @@
}
},
{
- name: "auto-loading heuristics",
+ name: "heuristics",
description: "30% decreased delay after firing",
maxCount: 9,
count: 0,
@@ -713,6 +716,7 @@
},
{
name: "microstates",
+ link: `microstates`,
description: "increase damage by 6%
for every 10 active projectiles",
maxCount: 1,
count: 0,
@@ -731,6 +735,7 @@
},
{
name: "anti-shear topology",
+ link: `anti-shear topology`,
description: "some projectiles last 30% longer
drones, spores, missiles, foam, wave, neutron",
// isGunTech: true,
maxCount: 3,
@@ -738,9 +743,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" || tech.haveGunCheck("spores") || tech.haveGunCheck("drones") || tech.haveGunCheck("missiles") || tech.haveGunCheck("foam") || tech.haveGunCheck("wave beam") || tech.isNeutronBomb || tech.isIceField || tech.isIceShot || tech.relayIce || tech.blockingIce > 1 || tech.isWormShot || tech.foamBotCount > 1
+ return m.fieldUpgrades[m.fieldMode].name === "molecular assembler" || tech.haveGunCheck("spores") || tech.haveGunCheck("drones") || tech.haveGunCheck("missiles") || tech.haveGunCheck("foam") || tech.haveGunCheck("matter wave") || tech.isNeutronBomb || tech.isIceField || tech.isIceShot || tech.relayIce || tech.blockingIce > 1 || tech.isWormShot || tech.foamBotCount > 1
},
- requires: "drones, spores, missiles, foam, wave beam, neutron bomb, ice IX",
+ requires: "drones, spores, missiles, foam, matter wave, neutron bomb, ice IX",
effect() {
tech.isBulletsLastLonger += 0.3
},
@@ -768,6 +773,7 @@
},
{
name: "water shielding",
+ link: `water shielding`,
description: "radioactive effects on you are reduced by 75%
neutron bomb, drones, explosions, slime",
maxCount: 1,
count: 0,
@@ -923,7 +929,7 @@
frequency: 1,
frequencyDefault: 1,
allowed() {
- return ((m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" && !(tech.isDroneTeleport || tech.isDroneRadioactive || tech.isSporeField || tech.isMissileField || tech.isIceField)) || (tech.haveGunCheck("drones") && !tech.isDroneRadioactive && !tech.isDroneTeleport) || tech.haveGunCheck("super balls") || tech.haveGunCheck("shotgun")) && !tech.isNailShot && !tech.isIceShot && !tech.isFoamShot && !tech.isWormShot && !tech.isNeedleShot
+ return ((m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isDroneTeleport || tech.isDroneRadioactive || tech.isSporeField || tech.isMissileField || tech.isIceField)) || (tech.haveGunCheck("drones") && !tech.isDroneRadioactive && !tech.isDroneTeleport) || tech.haveGunCheck("super balls") || tech.haveGunCheck("shotgun")) && !tech.isNailShot && !tech.isIceShot && !tech.isFoamShot && !tech.isWormShot && !tech.isNeedleShot
},
requires: "super balls, basic or slug shotgun, drones, not irradiated drones or burst drones",
effect() {
@@ -935,15 +941,15 @@
},
{
name: "fragmentation",
- description: "some detonations and collisions eject nails
blocks, rail gun, grenades, missiles, slugs, harpoon",
+ description: "some detonations and collisions eject nails
blocks, railgun, grenades, missiles, slugs, harpoon",
maxCount: 9,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("harpoon") || (tech.haveGunCheck("grenades") && !tech.isNeutronBomb) || tech.haveGunCheck("missiles") || tech.missileBotCount || tech.haveGunCheck("rail gun") || (tech.haveGunCheck("shotgun") && tech.isSlugShot) || tech.throwChargeRate > 1
+ return tech.haveGunCheck("harpoon") || (tech.haveGunCheck("grenades") && !tech.isNeutronBomb) || tech.haveGunCheck("missiles") || tech.missileBotCount || tech.haveGunCheck("railgun") || (tech.haveGunCheck("shotgun") && tech.isSlugShot) || tech.throwChargeRate > 1
},
- requires: "grenades, missiles, rail gun, shotgun slugs, harpoon, or mass driver",
+ requires: "grenades, missiles, railgun, shotgun slugs, harpoon, or mass driver",
effect() {
tech.fragments++
},
@@ -970,7 +976,7 @@
}
},
{
- name: "impact shear",
+ name: "shear stress",
description: "mobs release a nail when they die
nails target nearby mobs",
maxCount: 9,
count: 0,
@@ -989,6 +995,7 @@
},
{
name: "zoospore vector",
+ link: `zoospore vector`,
description: "mobs produce spores when they die
11% chance",
maxCount: 9,
count: 0,
@@ -1042,7 +1049,7 @@
frequency: 1,
frequencyDefault: 1,
allowed() {
- return !tech.isEnergyHealth //((m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics" && (tech.blockingIce !== 0 || tech.blockDmg !== 0)) || b.totalBots() > 1 || tech.haveGunCheck("mine") || tech.haveGunCheck("spores") || m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing") &&
+ return !tech.isEnergyHealth //((m.fieldUpgrades[m.fieldMode].name === "standing wave" && (tech.blockingIce !== 0 || tech.blockDmg !== 0)) || b.totalBots() > 1 || tech.haveGunCheck("mine") || tech.haveGunCheck("spores") || m.fieldUpgrades[m.fieldMode].name === "molecular assembler") &&
},
requires: "not mass-energy",
effect() {
@@ -1072,6 +1079,7 @@
},
{
name: "scrap bots",
+ link: `scrap bots`,
description: "33% chance after killing a mob to build
a scrap bot that operates for 14 seconds",
maxCount: 3,
count: 0,
@@ -1091,6 +1099,7 @@
},
{
name: "scrap refit",
+ link: `scrap refit`,
description: "killing a mob resets your functional scrap bots
to 14 seconds of operation",
maxCount: 1,
count: 0,
@@ -1110,6 +1119,7 @@
},
{
name: "nail-bot",
+ link: `nail-bot`,
description: "a bot fires nails at mobs in line of sight",
maxCount: 9,
count: 0,
@@ -1135,6 +1145,7 @@
},
{
name: "nail-bot upgrade",
+ link: `nail-bot upgrade`,
description: "convert all your bots to nail-bots
500% increased nail-bot fire rate",
maxCount: 1,
count: 0,
@@ -1166,6 +1177,7 @@
},
{
name: "foam-bot",
+ link: `foam-bot`,
description: "a bot fires foam at nearby mobs",
maxCount: 9,
count: 0,
@@ -1191,6 +1203,7 @@
},
{
name: "foam-bot upgrade",
+ link: `foam-bot upgrade`,
description: "convert all your bots to foam-bots
250% increased foam size and fire rate",
maxCount: 1,
count: 0,
@@ -1222,6 +1235,7 @@
},
{
name: "boom-bot",
+ link: `boom-bot`,
description: "a bot defends the space around you
ignites an explosion after hitting a mob",
maxCount: 9,
count: 0,
@@ -1247,6 +1261,7 @@
},
{
name: "boom-bot upgrade",
+ link: `boom-bot upgrade-bot`,
description: "convert all your bots to boom-bots
250% increased explosion damage and size",
maxCount: 1,
count: 0,
@@ -1278,6 +1293,7 @@
},
{
name: "laser-bot",
+ link: `laser-bot`,
description: "a bot uses energy to emit a laser beam
that targets nearby mobs",
maxCount: 9,
count: 0,
@@ -1303,6 +1319,7 @@
},
{
name: "laser-bot upgrade",
+ link: `laser-bot upgrade`,
description: "convert all your bots to laser-bots
75% improved damage, efficiency, and range", // 400% increased laser-bot laser damage",
maxCount: 1,
count: 0,
@@ -1334,6 +1351,7 @@
},
{
name: "orbital-bot",
+ link: `orbital-bot`,
description: "a bot is locked in orbit around you
stuns and damages mobs on contact",
maxCount: 9,
count: 0,
@@ -1359,6 +1377,7 @@
},
{
name: "orbital-bot upgrade",
+ link: `orbital-bot upgrade`,
description: "convert all your bots to orbital-bots
increase damage by 250% and radius by 40%",
maxCount: 1,
count: 0,
@@ -1399,6 +1418,7 @@
},
{
name: "dynamo-bot",
+ link: `dynamo-bot`,
description: "a bot damages mobs while it traces your path
regen 6 energy per second when it's near",
maxCount: 9,
count: 0,
@@ -1424,6 +1444,7 @@
},
{
name: "dynamo-bot upgrade",
+ link: `dynamo-bot upgrade`,
description: "convert your bots to dynamo-bots
increase regen to 16 energy per second",
maxCount: 1,
count: 0,
@@ -1455,6 +1476,7 @@
},
{
name: "bot fabrication",
+ link: `bot fabrication`,
//-----------description is overwritten in powerUps.research.changeRerolls------------
description: `if you collect ${powerUps.orb.research(2)}use them to build a
random bot (+1 cost every 5 bots)`,
maxCount: 1,
@@ -1541,6 +1563,7 @@
},
{
name: "ersatz bots",
+ link: `ersatz bots`,
description: "double your current permanent bots
remove all of your current guns",
maxCount: 1,
count: 0,
@@ -1616,6 +1639,7 @@
},
{
name: "inflation",
+ link: `inflation`,
description: "throwing a block expands it by 300%
increase throw charge rate by 200%",
maxCount: 1,
count: 0,
@@ -1779,6 +1803,7 @@
},
{
name: "flip-flop",
+ link: `flip-flop`,
description: `toggle ON and OFF after a collision
unlock advanced tech that runs if ON`,
nameInfo: "",
addNameInfo() {
@@ -2078,6 +2103,7 @@
},
{
name: "non-Newtonian armor",
+ link: `non-Newtonian armor`,
description: "for 10 seconds after receiving harm
reduce harm by 66%",
maxCount: 1,
count: 0,
@@ -2113,14 +2139,14 @@
}
},
{
- name: "CPT reversal",
+ name: "CPT symmetry",
description: "charge, parity, and time invert to undo harm
rewind (1.5—5) seconds for (66—220) energy",
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
- allowed() { //&& (m.fieldUpgrades[m.fieldMode].name !== "nano-scale manufacturing" || m.maxEnergy > 1)
- return m.maxEnergy > 0.99 && m.fieldUpgrades[m.fieldMode].name !== "standing wave harmonics" && !tech.isEnergyHealth && !tech.isRewindGun
+ allowed() { //&& (m.fieldUpgrades[m.fieldMode].name !== "molecular assembler" || m.maxEnergy > 1)
+ return m.maxEnergy > 0.99 && m.fieldUpgrades[m.fieldMode].name !== "standing wave" && !tech.isEnergyHealth && !tech.isRewindGun
},
requires: "not standing wave, mass-energy, max energy reduction, CPT gun",
effect() {
@@ -2132,6 +2158,7 @@
},
{
name: "causality bots",
+ link: `causality bots`,
description: "when you rewind, build several bots
that protect you for about 9 seconds",
maxCount: 3,
count: 0,
@@ -2151,6 +2178,7 @@
},
{
name: "causality bombs",
+ link: `causality bombs`,
description: "before you rewind drop several grenades
become immune to harm until they explode",
maxCount: 1,
count: 0,
@@ -2240,6 +2268,7 @@
},
{
name: "1st ionization energy",
+ link: `1st ionization energy`,
description: `each ${powerUps.orb.heal()} you collect
increases your maximum energy by 6`,
maxCount: 1,
count: 0,
@@ -2284,7 +2313,7 @@
}
},
{
- name: "transceiver chip",
+ name: "transceiver",
description: "unused power ups at the end of each level
are still activated (selections are random)",
maxCount: 1,
count: 0,
@@ -2302,7 +2331,7 @@
}
},
{
- name: "electrolytes",
+ name: "electronegativity",
description: "increase damage by 1%
for every 11 stored energy",
maxCount: 1,
count: 0,
@@ -2320,7 +2349,7 @@
}
},
{
- name: "exciton-lattice",
+ name: "exciton",
description: `increase damage by 60%, but
${powerUps.orb.ammo()} will no longer spawn`,
maxCount: 1,
count: 0,
@@ -2454,7 +2483,7 @@
}
},
{
- name: "waste energy recovery",
+ name: "waste heat recovery",
description: "if a mob has died in the last 5 seconds
regen 5% of max energy every second",
maxCount: 1,
count: 0,
@@ -2472,7 +2501,7 @@
}
},
{
- name: "scrap recycling",
+ name: "recycling",
description: "if a mob has died in the last 5 seconds
regain 1% of max health every second",
maxCount: 1,
count: 0,
@@ -3238,9 +3267,9 @@
// frequency: 3,
// frequencyDefault: 3,
// allowed() {
- // return (m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && (build.isExperimentSelection || powerUps.research.count > 1)
+ // return (m.fieldUpgrades[m.fieldMode].name === "standing wave" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && (build.isExperimentSelection || powerUps.research.count > 1)
// },
- // requires: "standing wave harmonics or pilot wave",
+ // requires: "standing wave or pilot wave",
// effect() {
// tech.harmonicEnergy = 0.74
// m.setMaxEnergy()
@@ -3577,6 +3606,7 @@
//**************************************************
{
name: "CPT gun",
+ link: `CPT gun`,
description: `adds the CPT gun to your inventory
it rewinds your health, velocity, and position`,
isGunTech: true,
maxCount: 1,
@@ -3584,7 +3614,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return (b.totalBots() > 3 || m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" || m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && !tech.isEnergyHealth && !tech.isRewindAvoidDeath //build.isExperimentSelection ||
+ return (b.totalBots() > 3 || m.fieldUpgrades[m.fieldMode].name === "molecular assembler" || m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && !tech.isEnergyHealth && !tech.isRewindAvoidDeath //build.isExperimentSelection ||
},
requires: "bots > 3, plasma torch, nano-scale, pilot wave, not mass-energy equivalence, CPT",
effect() {
@@ -3711,7 +3741,7 @@
}
},
{
- name: "rivet diameter",
+ name: "pneumatic hammer",
description: `rivets are 20% larger
increases mass and physical damage`,
isGunTech: true,
maxCount: 9,
@@ -3731,6 +3761,7 @@
},
{
name: "ice crystal nucleation",
+ link: `ice crystal nucleation`,
description: "the nail gun uses energy to condense
unlimited freezing ice shards",
isGunTech: true,
maxCount: 1,
@@ -3842,6 +3873,7 @@
},
{
name: "irradiated nails",
+ link: `irradiated nails`,
description: "nails, needles, and rivets are radioactive
about 90% more damage over 2 seconds",
isGunTech: true,
maxCount: 1,
@@ -3861,6 +3893,7 @@
},
{
name: "4s half-life",
+ link: `4s half-life`,
description: "nails are made of plutonium-238
increase damage by 100% over 6 seconds",
isGunTech: true,
maxCount: 1,
@@ -3880,6 +3913,7 @@
},
{
name: "1/2s half-life",
+ link: `1/2s half-life`,
description: "nails are made of lithium-8
damage occurs after 1/2 a second",
isGunTech: true,
maxCount: 1,
@@ -3899,6 +3933,7 @@
},
{
name: "shotgun spin-statistics",
+ link: `shotgun spin-statistics`,
description: "immune to harm while firing the shotgun
shotgun has 50% fewer shots",
isGunTech: true,
maxCount: 1,
@@ -3957,16 +3992,17 @@
},
{
name: "Noether violation",
- description: "increase shotgun and rail gun damage 60%
their recoil is increased and reversed",
+ link: `Noether violation`,
+ description: "increase shotgun and railgun damage 60%
their recoil is increased and reversed",
isGunTech: true,
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return (tech.haveGunCheck("shotgun") || tech.haveGunCheck("rail gun")) && !tech.isShotgunRecoil
+ return (tech.haveGunCheck("shotgun") || tech.haveGunCheck("railgun")) && !tech.isShotgunRecoil
},
- requires: "shotgun or rail gun, not Newton's 3rd law",
+ requires: "shotgun or railgun, not Newton's 3rd law",
effect() {
tech.isShotgunReversed = true;
},
@@ -3995,6 +4031,7 @@
},
{
name: "nail-shot",
+ link: `nail-shot`,
description: "shotgun fires 17 nails",
isGunTech: true,
maxCount: 1,
@@ -4014,6 +4051,7 @@
},
{
name: "needle-shot",
+ link: `needle-shot`,
description: "shotgun propels 11 mob piercing needles",
isGunTech: true,
maxCount: 1,
@@ -4033,6 +4071,7 @@
},
{
name: "worm-shot",
+ link: `worm-shot`,
description: "shotgun hatches 3-4 mob seeking worms
worms benefit from spore technology", //
worms seek out nearby mobs
isGunTech: true,
maxCount: 1,
@@ -4052,6 +4091,7 @@
},
{
name: "foam-shot",
+ link: `foam-shot`,
description: "shotgun sprays 13 sticky foam bubbles",
isGunTech: true,
maxCount: 1,
@@ -4071,6 +4111,7 @@
},
{
name: "ice-shot",
+ link: `ice-shot`,
description: "shotgun grows 15 freezing ice IX crystals",
isGunTech: true,
maxCount: 1,
@@ -4090,6 +4131,7 @@
},
{
name: "supertemporal",
+ link: `supertemporal`,
description: "fire super ball from the same point in space
but separated by 0.1 seconds in time",
isGunTech: true,
maxCount: 1,
@@ -4163,17 +4205,17 @@
},
{
name: "phase velocity",
- description: "wave beam propagates faster through solids
increase wave beam damage by 15%",
- // description: "wave beam propagates faster through solids
up by 3000% in the map and 760% in blocks",
+ description: "matter wave propagates faster through solids
increase matter wave damage by 15%",
+ // description: "matter wave propagates faster through solids
up by 3000% in the map and 760% in blocks",
isGunTech: true,
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("wave beam") && !tech.isLongitudinal
+ return tech.haveGunCheck("matter wave") && !tech.isLongitudinal
},
- requires: "wave beam, not phonon",
+ requires: "matter wave, not phonon",
effect() {
tech.isPhaseVelocity = true;
},
@@ -4190,9 +4232,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("wave beam")
+ return tech.haveGunCheck("matter wave")
},
- requires: "wave beam",
+ requires: "matter wave",
effect() {
tech.waveReflections += 2
},
@@ -4209,9 +4251,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("wave beam")
+ return tech.haveGunCheck("matter wave")
},
- requires: "wave beam",
+ requires: "matter wave",
effect() {
tech.waveFrequency *= 0.66
tech.wavePacketDamage *= 1.5
@@ -4230,34 +4272,34 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("wave beam")
+ return tech.haveGunCheck("matter wave")
},
- requires: "wave beam",
+ requires: "matter wave",
effect() {
tech.waveBeamSpeed *= 0.8;
- tech.waveBeamDamage += 1.5 * 0.5 //this sets base wave beam damage, not used by arcs or circles
+ tech.waveBeamDamage += 1.5 * 0.5 //this sets base matter wave damage, not used by arcs or circles
},
remove() {
tech.waveBeamSpeed = 10;
- tech.waveBeamDamage = 1.5 //this sets base wave beam damage, not used by arcs or circles
+ tech.waveBeamDamage = 1.5 //this sets base matter wave damage, not used by arcs or circles
}
},
{
name: "phonon", //longitudinal //gravitational wave?
- description: "wave beam emits low frequency, high damage
expanding arcs that propagate through solids",
+ description: "matter wave emits low frequency, high damage
expanding arcs that propagate through solids",
isGunTech: true,
maxCount: 1,
count: 0,
frequency: 4,
frequencyDefault: 4,
allowed() {
- return tech.haveGunCheck("wave beam") && !tech.isPhaseVelocity && !tech.isBulletTeleport
+ return tech.haveGunCheck("matter wave") && !tech.isPhaseVelocity && !tech.isBulletTeleport
},
- requires: "wave beam, not phase velocity, uncertainty principle",
+ requires: "matter wave, not phase velocity, uncertainty principle",
effect() {
tech.isLongitudinal = true;
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "wave beam") {
+ if (b.guns[i].name === "matter wave") {
b.guns[i].chooseFireMethod()
b.guns[i].ammoPack = b.guns[i].defaultAmmoPack / 8
b.guns[i].ammo = Math.ceil(b.guns[i].ammo / 8);
@@ -4269,7 +4311,7 @@
remove() {
if (tech.isLongitudinal) {
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "wave beam") {
+ if (b.guns[i].name === "matter wave") {
tech.isLongitudinal = false;
b.guns[i].chooseFireMethod()
b.guns[i].ammoPack = b.guns[i].defaultAmmoPack
@@ -4284,7 +4326,7 @@
},
{
name: "isotropic radiator",
- description: "wave beam expands in all directions
range reduced 40% and damage increased 50%",
+ description: "matter wave expands in all directions
range reduced 40% and damage increased 50%",
isGunTech: true,
maxCount: 1,
count: 0,
@@ -4297,7 +4339,7 @@
effect() {
tech.is360Longitudinal = true;
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "wave beam") {
+ if (b.guns[i].name === "matter wave") {
b.guns[i].chooseFireMethod()
break
}
@@ -4306,7 +4348,7 @@
remove() {
tech.is360Longitudinal = false;
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
- if (b.guns[i].name === "wave beam") {
+ if (b.guns[i].name === "matter wave") {
b.guns[i].chooseFireMethod()
break
}
@@ -4334,6 +4376,7 @@
},
{
name: "missile-bot",
+ link: `missile-bot`,
description: "remove your missile gun
gain a bot that fires missiles at mobs",
isGunTech: true,
maxCount: 1,
@@ -4504,6 +4547,7 @@
},
{
name: "laser-mines",
+ link: `laser-mines`,
description: "mines laid while you are crouched
use energy to emit 3 unaimed lasers",
isGunTech: true,
maxCount: 1,
@@ -4542,6 +4586,7 @@
},
{
name: "blast mines",
+ link: `blast mines`,
description: "when a mine activates
it stuns nearby mobs for 2-4 seconds",
isGunTech: true,
maxCount: 1,
@@ -4561,6 +4606,7 @@
},
{
name: "mycelial fragmentation",
+ link: `tinsellated flagella`,
description: "sporangium release 6 extra spores
during their growth phase",
isGunTech: true,
maxCount: 1,
@@ -4580,6 +4626,7 @@
},
{
name: "tinsellated flagella",
+ link: `tinsellated flagella`,
description: "sporangium release 2 more spores
spores accelerate 40% faster",
isGunTech: true,
maxCount: 1,
@@ -4695,6 +4742,7 @@
},
{
name: "reduced tolerances",
+ link: `reduced tolerances`,
description: `increase drones per ${powerUps.orb.ammo()} or energy 66%
reduce the average drone lifetime by 40%`,
isGunTech: true,
maxCount: 3,
@@ -4702,7 +4750,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return !tech.isDroneRadioactive && (tech.haveGunCheck("drones") || (m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" && !(tech.isSporeField || tech.isMissileField || tech.isIceField)))
+ return !tech.isDroneRadioactive && (tech.haveGunCheck("drones") || (m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isSporeField || tech.isMissileField || tech.isIceField)))
},
requires: "drones, not irradiated drones",
effect() {
@@ -4732,7 +4780,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return !tech.isExtraMaxEnergy && (tech.haveGunCheck("drones") || (m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" && !(tech.isSporeField || tech.isMissileField || tech.isIceField)))
+ return !tech.isExtraMaxEnergy && (tech.haveGunCheck("drones") || (m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isSporeField || tech.isMissileField || tech.isIceField)))
},
requires: "drones, not inductive coupling",
effect() {
@@ -4744,6 +4792,7 @@
},
{
name: "drone repair",
+ link: `drone repair`,
description: "after a drone ends it redeploys
for a 25% chance to use 1 drone ammo",
// description: "broken drones repair if the drone gun is active
repairing has a 25% chance to use 1 drone",
isGunTech: true,
@@ -4764,6 +4813,7 @@
},
{
name: "torque bursts",
+ link: `torque bursts`,
description: "drones rapidly rush towards their target
increase drone collision damage by 33%",
isGunTech: true,
maxCount: 1,
@@ -4802,6 +4852,7 @@
},
{
name: "irradiated drones",
+ link: `irradiated drones`,
description: `the space around drones is irradiated
reduce drones per ${powerUps.orb.ammo()} or energy 75%`,
isGunTech: true,
maxCount: 1,
@@ -4809,7 +4860,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.droneCycleReduction === 1 && !tech.isIncendiary && !tech.isDroneTeleport && (tech.haveGunCheck("drones") || (m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" && !(tech.isSporeField || tech.isMissileField || tech.isIceField)))
+ return tech.droneCycleReduction === 1 && !tech.isIncendiary && !tech.isDroneTeleport && (tech.haveGunCheck("drones") || (m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isSporeField || tech.isMissileField || tech.isIceField)))
},
requires: "drones, not reduced tolerances, incendiary, torque bursts",
effect() {
@@ -4856,6 +4907,7 @@
},
{
name: "orthocyclic winding",
+ link: `orthocyclic winding`,
description: "drones accelerate 66% faster
increase radiation damage by 33%",
isGunTech: true,
maxCount: 1,
@@ -4901,9 +4953,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return (!tech.isFoamAttract && (tech.haveGunCheck("foam") || tech.foamBotCount > 1 || tech.isFoamShot)) || (tech.haveGunCheck("wave beam") && !tech.isLongitudinal)
+ return (!tech.isFoamAttract && (tech.haveGunCheck("foam") || tech.foamBotCount > 1 || tech.isFoamShot)) || (tech.haveGunCheck("matter wave") && !tech.isLongitudinal)
},
- requires: "foam, not electrostatic induction, wave beam, not phonon",
+ requires: "foam, not electrostatic induction, matter wave, not phonon",
effect() {
tech.isBulletTeleport = true
},
@@ -5010,6 +5062,7 @@
},
{
name: "unaaq",
+ link: `unaaq`, //https://en.wikipedia.org/wiki/Weapon
description: "increase the length of your harpoon
by 10% of the square root of its ammo",
isGunTech: true,
maxCount: 1,
@@ -5087,16 +5140,16 @@
// },
{
name: "half-wave rectifier",
- description: "charging the rail gun gives you energy
instead of draining it",
+ description: "charging the railgun gives you energy
instead of draining it",
isGunTech: true,
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("rail gun")
+ return tech.haveGunCheck("railgun")
},
- requires: "rail gun",
+ requires: "railgun",
effect() {
tech.isRailEnergyGain = true;
},
@@ -5106,16 +5159,16 @@
},
{
name: "dielectric polarization",
- description: "firing the rail gun damages nearby mobs",
+ description: "firing the railgun damages nearby mobs",
isGunTech: true,
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("rail gun")
+ return tech.haveGunCheck("railgun")
},
- requires: "rail gun",
+ requires: "railgun",
effect() {
tech.isRailAreaDamage = true;
},
@@ -5125,16 +5178,16 @@
},
{
name: "capacitor bank",
- description: "the rail gun no longer takes time to charge
rail gun rods are 66% less massive",
+ description: "the railgun no longer takes time to charge
railgun rods are 66% less massive",
isGunTech: true,
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return tech.haveGunCheck("rail gun")
+ return tech.haveGunCheck("railgun")
},
- requires: "rail gun",
+ requires: "railgun",
effect() {
tech.isCapacitor = true;
},
@@ -5257,6 +5310,7 @@
},
{
name: "diffuse beam",
+ link: `diffuse beam`,
description: "laser beam is wider and doesn't reflect
increase full beam damage by 200%",
isGunTech: true,
maxCount: 1,
@@ -5402,9 +5456,9 @@
frequency: 3,
frequencyDefault: 3,
allowed() {
- return (m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && (build.isExperimentSelection || powerUps.research.count > 1)
+ return (m.fieldUpgrades[m.fieldMode].name === "standing wave" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && (build.isExperimentSelection || powerUps.research.count > 1)
},
- requires: "standing wave harmonics or pilot wave",
+ requires: "standing wave or pilot wave",
effect() {
tech.harmonicEnergy = 0.74
m.setMaxEnergy()
@@ -5427,9 +5481,9 @@
frequency: 3,
frequencyDefault: 3,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics"
+ return m.fieldUpgrades[m.fieldMode].name === "standing wave"
},
- requires: "standing wave harmonics",
+ requires: "standing wave",
effect() {
tech.harmonics++
m.fieldShieldingScale = 1.3 * Math.pow(0.6, (tech.harmonics - 2))
@@ -5451,9 +5505,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics"
+ return m.fieldUpgrades[m.fieldMode].name === "standing wave"
},
- requires: "standing wave harmonics",
+ requires: "standing wave",
effect() {
tech.isStandingWaveExpand = true
},
@@ -5471,9 +5525,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics" || m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism"
+ return m.fieldUpgrades[m.fieldMode].name === "standing wave" || m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism"
},
- requires: "standing wave harmonics, perfect diamagnetism",
+ requires: "standing wave, perfect diamagnetism",
effect() {
tech.blockDmg += 1.25 //if you change this value also update the for loop in the electricity graphics in m.pushMass
},
@@ -5490,9 +5544,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics" || m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism"
+ return m.fieldUpgrades[m.fieldMode].name === "standing wave" || m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism"
},
- requires: "standing wave harmonics, perfect diamagnetism",
+ requires: "standing wave, perfect diamagnetism",
effect() {
tech.blockingIce++
},
@@ -5509,7 +5563,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism" || m.fieldUpgrades[m.fieldMode].name === "standing wave harmonics" || m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing"
+ return m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism" || m.fieldUpgrades[m.fieldMode].name === "standing wave" || m.fieldUpgrades[m.fieldMode].name === "molecular assembler"
},
requires: "a field that can block",
effect() {
@@ -5567,9 +5621,9 @@
frequency: 3,
frequencyDefault: 3,
allowed() {
- return (m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism" || m.fieldUpgrades[m.fieldMode].name === "negative mass field") && (build.isExperimentSelection || powerUps.research.count > 3)
+ return (m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism" || m.fieldUpgrades[m.fieldMode].name === "negative mass") && (build.isExperimentSelection || powerUps.research.count > 3)
},
- requires: "perfect diamagnetism or negative mass field",
+ requires: "perfect diamagnetism or negative mass",
effect() {
tech.isFieldHarmReduction = true
for (let i = 0; i < 4; i++) {
@@ -5590,7 +5644,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return (m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism" || m.fieldUpgrades[m.fieldMode].name === "pilot wave" || m.fieldUpgrades[m.fieldMode].name === "negative mass field") && !tech.isEnergyHealth
+ return (m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "perfect diamagnetism" || m.fieldUpgrades[m.fieldMode].name === "pilot wave" || m.fieldUpgrades[m.fieldMode].name === "negative mass") && !tech.isEnergyHealth
},
requires: "field: perfect, negative mass, pilot wave, plasma, not mass-energy",
effect() {
@@ -5609,9 +5663,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "negative mass field"
+ return m.fieldUpgrades[m.fieldMode].name === "negative mass"
},
- requires: "negative mass field",
+ requires: "negative mass",
effect() {
tech.isAnnihilation = true
},
@@ -5621,16 +5675,16 @@
},
{
name: "inertial mass",
- description: "negative mass field is larger and faster
blocks also move horizontally with the field",
+ description: "negative mass is larger and faster
blocks also move horizontally with the field",
isFieldTech: true,
maxCount: 1,
count: 0,
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "negative mass field"
+ return m.fieldUpgrades[m.fieldMode].name === "negative mass"
},
- requires: "negative mass field",
+ requires: "negative mass",
effect() {
tech.isFlyFaster = true
},
@@ -5647,9 +5701,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "pilot wave" || m.fieldUpgrades[m.fieldMode].name === "negative mass field" || m.fieldUpgrades[m.fieldMode].name === "time dilation"
+ return m.fieldUpgrades[m.fieldMode].name === "pilot wave" || m.fieldUpgrades[m.fieldMode].name === "negative mass" || m.fieldUpgrades[m.fieldMode].name === "time dilation"
},
- requires: "pilot wave, negative mass field, time dilation",
+ requires: "pilot wave, negative mass, time dilation",
effect() {
tech.isFreezeMobs = true
},
@@ -5659,7 +5713,7 @@
},
{
name: "bot manufacturing",
- description: `use nano-scale manufacturing and ${powerUps.orb.research(2)}
to build 3 random bots`,
+ description: `use molecular assembler and ${powerUps.orb.research(2)}
to build 3 random bots`,
isFieldTech: true,
maxCount: 1,
count: 0,
@@ -5669,9 +5723,9 @@
isNonRefundable: true,
// isExperimentHide: true,
allowed() {
- return powerUps.research.count > 1 && m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing"
+ return powerUps.research.count > 1 && m.fieldUpgrades[m.fieldMode].name === "molecular assembler"
},
- requires: "nano-scale manufacturing",
+ requires: "molecular assembler",
effect: () => {
for (let i = 0; i < 2; i++) {
if (powerUps.research.count > 0) powerUps.research.changeRerolls(-1)
@@ -5695,9 +5749,9 @@
isNonRefundable: true,
// isExperimentHide: true,
allowed() {
- return powerUps.research.count > 2 && m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing"
+ return powerUps.research.count > 2 && m.fieldUpgrades[m.fieldMode].name === "molecular assembler"
},
- requires: "nano-scale manufacturing",
+ requires: "molecular assembler",
effect: () => {
for (let i = 0; i < 3; i++) {
if (powerUps.research.count > 0) powerUps.research.changeRerolls(-1)
@@ -5762,6 +5816,7 @@
},
{
name: "mycelium manufacturing",
+ link: `mycelium manufacturing`,
description: `use ${powerUps.orb.research(3)}to repurpose nano-scale field
excess energy used to grow spores`,
// description: "use 3 research to repurpose nano-scale
excess energy used to grow spores",
isFieldTech: true,
@@ -5770,9 +5825,9 @@
frequency: 3,
frequencyDefault: 3,
allowed() {
- return (build.isExperimentSelection || powerUps.research.count > 2) && m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" && !(tech.isMissileField || tech.isIceField || tech.isFastDrones || tech.isDroneGrab || tech.isDroneRadioactive || tech.isDroneTeleport)
+ return (build.isExperimentSelection || powerUps.research.count > 2) && m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isMissileField || tech.isIceField || tech.isFastDrones || tech.isDroneGrab || tech.isDroneRadioactive || tech.isDroneTeleport)
},
- requires: "nano-scale manufacturing, no other manufacturing, no drone tech",
+ requires: "molecular assembler, no other manufacturing, no drone tech",
effect() {
if (!build.isExperimentSelection) {
for (let i = 0; i < 3; i++) {
@@ -5788,6 +5843,7 @@
},
{
name: "missile manufacturing",
+ link: `missile manufacturing`,
description: `use ${powerUps.orb.research(3)}to repurpose nano-scale field
excess energy used to construct missiles`,
// description: "use 3 research to repurpose nano-scale
excess energy used to construct missiles",
isFieldTech: true,
@@ -5796,9 +5852,9 @@
frequency: 3,
frequencyDefault: 3,
allowed() {
- return (build.isExperimentSelection || powerUps.research.count > 2) && m.maxEnergy > 0.5 && m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" && !(tech.isSporeField || tech.isIceField || tech.isFastDrones || tech.isDroneGrab || tech.isDroneRadioactive || tech.isDroneTeleport)
+ return (build.isExperimentSelection || powerUps.research.count > 2) && m.maxEnergy > 0.5 && m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isSporeField || tech.isIceField || tech.isFastDrones || tech.isDroneGrab || tech.isDroneRadioactive || tech.isDroneTeleport)
},
- requires: "nano-scale manufacturing, no other manufacturing, no drone tech",
+ requires: "molecular assembler, no other manufacturing, no drone tech",
effect() {
if (!build.isExperimentSelection) {
for (let i = 0; i < 3; i++) {
@@ -5814,6 +5870,7 @@
},
{
name: "ice IX manufacturing",
+ link: `ice IX manufacturing`,
description: `use ${powerUps.orb.research(3)}to repurpose nano-scale field
excess energy used to condense ice IX`,
// description: "use 3 research to repurpose nano-scale
excess energy used to condense ice IX",
isFieldTech: true,
@@ -5822,9 +5879,9 @@
frequency: 3,
frequencyDefault: 3,
allowed() {
- return (build.isExperimentSelection || powerUps.research.count > 2) && m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" && !(tech.isSporeField || tech.isMissileField || tech.isFastDrones || tech.isDroneGrab || tech.isDroneRadioactive || tech.isDroneTeleport)
+ return (build.isExperimentSelection || powerUps.research.count > 2) && m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isSporeField || tech.isMissileField || tech.isFastDrones || tech.isDroneGrab || tech.isDroneRadioactive || tech.isDroneTeleport)
},
- requires: "nano-scale manufacturing, no other manufacturing, no drone tech",
+ requires: "molecular assembler, no other manufacturing, no drone tech",
effect() {
if (!build.isExperimentSelection) {
for (let i = 0; i < 3; i++) {
@@ -5847,9 +5904,9 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing" || m.fieldUpgrades[m.fieldMode].name === "pilot wave"
+ return m.fieldUpgrades[m.fieldMode].name === "molecular assembler" || m.fieldUpgrades[m.fieldMode].name === "pilot wave"
},
- requires: "nano-scale manufacturing or pilot wave",
+ requires: "molecular assembler or pilot wave",
effect: () => {
tech.isMassEnergy = true // used in m.grabPowerUp
m.energy += 2
@@ -5885,7 +5942,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing"
+ return m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "molecular assembler"
},
requires: "plasma torch",
effect() {
@@ -5897,6 +5954,7 @@
},
{
name: "plasma-bot",
+ link: `plasma-bot`,
description: "remove your field to build a bot
that uses energy to emit plasma",
isFieldTech: true,
maxCount: 1,
@@ -5935,6 +5993,7 @@
},
{
name: "plasma jet",
+ link: `plasma jet`,
description: `use ${powerUps.orb.research(1)} to increase plasma torch range 50%`,
// description: "use 1 research to
increase plasma torch's range by 50%",
isFieldTech: true,
@@ -5956,7 +6015,7 @@
}
},
{
- name: "micro-extruder",
+ name: "extruder",
description: "plasma torch extrudes a thin hot wire
increases damage, energy drain, and lag",
isFieldTech: true,
maxCount: 1,
@@ -5975,7 +6034,7 @@
}
},
{
- name: "timelike world line",
+ name: "timelike",
description: "time dilation doubles your relative time rate
and makes you immune to harm",
isFieldTech: true,
maxCount: 1,
@@ -6130,6 +6189,7 @@
// },
{
name: "boson composite",
+ link: `boson composite`,
description: "intangible to blocks and mobs while cloaked
passing through shields drains your energy",
isFieldTech: true,
maxCount: 1,
@@ -6221,7 +6281,7 @@
frequency: 2,
frequencyDefault: 2,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking" || m.fieldUpgrades[m.fieldMode].name === "pilot wave" || m.fieldUpgrades[m.fieldMode].name === "nano-scale manufacturing"
+ return m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking" || m.fieldUpgrades[m.fieldMode].name === "pilot wave" || m.fieldUpgrades[m.fieldMode].name === "molecular assembler"
},
requires: "metamaterial cloaking or pilot wave",
effect() {
@@ -6339,6 +6399,7 @@
},
{
name: "transdimensional spores",
+ link: `transdimensional spores`,
description: "when blocks fall into a wormhole
higher dimension spores are summoned",
isFieldTech: true,
maxCount: 1,
@@ -6357,7 +6418,7 @@
}
},
{
- name: "traversable geodesics",
+ name: "geodesics",
description: `your projectiles can traverse wormholes
spawn 2 guns and ${powerUps.orb.ammo(2)}`,
isFieldTech: true,
maxCount: 1,
@@ -6398,7 +6459,7 @@
isBadRandomOption: true,
isExperimentalMode: true,
allowed() {
- return build.isExperimentSelection && !m.isShipMode && m.fieldUpgrades[m.fieldMode].name !== "negative mass field"
+ return build.isExperimentSelection && !m.isShipMode && m.fieldUpgrades[m.fieldMode].name !== "negative mass"
},
requires: "",
effect() {
@@ -7400,7 +7461,7 @@
isExperimentHide: true,
isJunk: true,
allowed() {
- return !m.isShipMode && m.fieldUpgrades[m.fieldMode].name !== "negative mass field"
+ return !m.isShipMode && m.fieldUpgrades[m.fieldMode].name !== "negative mass"
},
requires: "",
effect() {
@@ -7477,7 +7538,7 @@
isExperimentHide: true,
isJunk: true,
allowed() {
- return m.fieldUpgrades[m.fieldMode].name !== "negative mass field"
+ return m.fieldUpgrades[m.fieldMode].name !== "negative mass"
},
requires: "",
effect() {
diff --git a/todo.txt b/todo.txt
index 0b81b17..702e2b6 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,13 +1,16 @@
******************************************************** NEXT PATCH **************************************************
-new boss: slasherBoss - radially waving short distance lasers
-
-aerogel 250%->150% foam damage
-
-bug fixes
+tech, field, and gun names are now clickable wikipedia searches
+ works in pause and experiment modes
+ several names have also been adjusted
******************************************************** TODO ********************************************************
+bad links:
+
+add link URL to all tech guns and field on page load
+ but only if URL is undefined so hard to search names can be added in by hand
+
slasherBoss
sine wave of lasers that travel around vertexes
10+ sided
@@ -84,7 +87,7 @@ Pilot wave tech
make experiment and understand vibe more obvious
mostly in early game or first time players
-look into 360 wave beam lag
+look into 360 matter wave lag
aoe effect pushes mobs away, then rapidly pulls them in
for mines?
@@ -99,7 +102,7 @@ it would be helpful if there was a mechanism to recover mobs that fly off the ma
make non moving bosses not move after getting hit
shooter, shielding,
-buff rail gun
+buff railgun
scrolling console history in pause menu?
pause should at least show the last in game console message
@@ -114,7 +117,7 @@ tech: quantized shields - harmonic standing wave field can only lose 33 energy p
doesn't stack with spherical tech
make a tech that improves all charge guns
- for: pulse, foam, rail gun
+ for: pulse, foam, railgun
effect:
faster charge rate?
fire speed already does that...
@@ -135,7 +138,7 @@ tech: use the ability for power ups to have custom code
explode if they touch?
apply the new gun.do functions to other guns
- rail gun
+ railgun
crouching missile?
works similar to foam
performance issues?