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,
|
||||
|
||||
104
todo.txt
104
todo.txt
@@ -1,7 +1,7 @@
|
||||
******************************************************** NEXT PATCH ********************************************************
|
||||
|
||||
updated in game console style and all messages to match real game commands
|
||||
new names inline with lore, mod -> tech, game -> simulation
|
||||
new names inline with lore, tech-> tech, game -> simulation
|
||||
this is probably going to cause many minor bugs, so let me know what you find
|
||||
new reroll display in power up selection
|
||||
|
||||
@@ -33,7 +33,7 @@ check for crouch after rewind
|
||||
|
||||
(once) bug - mine spawned one new mine every second
|
||||
after sticking to the top right corner of a wall
|
||||
notes: had only gun mine, mod mine reclamation, field plasma,
|
||||
notes: had only gun mine, techmine reclamation, field plasma,
|
||||
|
||||
(repeatable almost every time) bug - mines spawn extra mines when fired at thin map wall while jumping
|
||||
|
||||
@@ -52,7 +52,7 @@ in game console
|
||||
add commands
|
||||
death, max health, max energy, rewind
|
||||
|
||||
mechanic: use gun swap as an active ability for several mods
|
||||
mechanic: use gun swap as an active ability for several tech
|
||||
ideas?
|
||||
trigger damage immunity for 3 seconds, but drain energy?
|
||||
push away nearby mobs, but drain energy
|
||||
@@ -61,16 +61,16 @@ mechanic: use gun swap as an active ability for several mods
|
||||
|
||||
CPT gun seems a bit weak right now. How to buff the gun?
|
||||
|
||||
mod nail gun: slow and accurate
|
||||
mod foam: fast and inaccurate
|
||||
technail gun: slow and accurate
|
||||
techfoam: fast and inaccurate
|
||||
|
||||
mob ability bombs/bullets that suck in player
|
||||
|
||||
mod where you can't stop firing, how to code?
|
||||
techwhere you can't stop firing, how to code?
|
||||
|
||||
mod: laser beams push like plasma torch pushes with directional force
|
||||
tech laser beams push like plasma torch pushes with directional force
|
||||
|
||||
mechanic: technological dead end - add mods to the mod pool with a dumb effect
|
||||
mechanic: technological dead end - add tech to the techpool with a dumb effect
|
||||
don't show up in custom?
|
||||
negative effect (one time effects are better to avoid code clutter)
|
||||
make the player rainbow colors
|
||||
@@ -89,22 +89,22 @@ mechanic: technological dead end - add mods to the mod pool with a dumb effect
|
||||
remove your bots (requires you to have some bots)
|
||||
your bots are changed to random bots
|
||||
|
||||
Mod: "Expansion Formula": Permanently increase the size of Negative Mass field by 16%(Max 96%)
|
||||
tech "Expansion Formula": Permanently increase the size of Negative Mass field by 16%(Max 96%)
|
||||
|
||||
Mod: "Circadian Rhythm": Become immune to harm for 1 second every 10 seconds while playing.
|
||||
tech "Circadian Rhythm": Become immune to harm for 1 second every 10 seconds while playing.
|
||||
|
||||
Mod: "High Risk": Spawn two bosses per level.
|
||||
tech "High Risk": Spawn two bosses per level.
|
||||
maybe limit to just the power up boss and spawn it at the exit every time to keep it simple
|
||||
also weaken the player
|
||||
remove a mod up?
|
||||
remove a techup?
|
||||
lower harm reduction?
|
||||
increase game difficulty by one level
|
||||
|
||||
mod that requires integrated armament
|
||||
techthat requires integrated armament
|
||||
|
||||
mod - reset level
|
||||
you trade a mod for a chance at killing a new level boss and farming more ammo
|
||||
resets health, ammo (but not mods, fields, guns, ... ?)
|
||||
tech- reset level
|
||||
you trade a techfor a chance at killing a new level boss and farming more ammo
|
||||
resets health, ammo (but not tech, fields, guns, ... ?)
|
||||
scramble level order? or same level
|
||||
|
||||
mechanic - Your energy regen is only active when field and gun have not been used for 5 seconds.
|
||||
@@ -112,31 +112,31 @@ mechanic - Your energy regen is only active when field and gun have not been use
|
||||
be able to open up custom mode in the normal game
|
||||
might need to be rebuilt from scratch
|
||||
while in through testing mode?
|
||||
have a way to make limited changes as allowed by mods you pick up in game
|
||||
have a way to make limited changes as allowed by tech you pick up in game
|
||||
disable the in custom setting flag
|
||||
|
||||
mod: power up magnetism - power ups drift towards player
|
||||
tech power up magnetism - power ups drift towards player
|
||||
where would this code go?
|
||||
|
||||
super balls start at 3, not 4
|
||||
have to balance damage
|
||||
|
||||
RPG might need a buff, now that it disables the other cool grenade mods
|
||||
RPG might need a buff, now that it disables the other cool grenade tech
|
||||
|
||||
make different move methods
|
||||
mod: crouch charge jump
|
||||
mod: double jump
|
||||
tech crouch charge jump
|
||||
tech double jump
|
||||
|
||||
mod: when mobs are at full health you do 40% to them
|
||||
tech when mobs are at full health you do 40% to them
|
||||
|
||||
mod - move super fast, go intangible, drain energy very fast
|
||||
tech- move super fast, go intangible, drain energy very fast
|
||||
this is like a dodge roll
|
||||
mod for standing wave?, cloaking?
|
||||
techfor standing wave?, cloaking?
|
||||
|
||||
mod pilot wave: mini black hole - pull mobs and blocks in with more force
|
||||
techpilot wave: mini black hole - pull mobs and blocks in with more force
|
||||
also from farther away
|
||||
also do damage?
|
||||
mod pilot wave: antigravity - blocks have no gravity for a few seconds after exiting the field
|
||||
techpilot wave: antigravity - blocks have no gravity for a few seconds after exiting the field
|
||||
maybe they bounce too?
|
||||
maybe they explode?
|
||||
|
||||
@@ -167,41 +167,41 @@ wormhole - make it clear when the wormhole can and can't teleport to a location
|
||||
time dilation - slow down the game engine by 1/2, but run an extra player cycle to simulate slow motion
|
||||
|
||||
flavor - your bullets destroy blocks
|
||||
this isn't really a bonus, so maybe just add this as flavor to another mod/field/gun
|
||||
this isn't really a bonus, so maybe just add this as flavor to another techfield/gun
|
||||
a chance for destroyed blocks to drop stuff
|
||||
power ups
|
||||
spores
|
||||
|
||||
mod plasma : plasma length increases then decreases as you hold down the field button (like stabbing with a spear)
|
||||
techplasma : plasma length increases then decreases as you hold down the field button (like stabbing with a spear)
|
||||
grows to 1.5 longer after 0.3 seconds, then returns to normal length over 1 second, until field is pressed again
|
||||
extra energy is drained when field is longer
|
||||
|
||||
using a reroll gives 3 options for mods, and 3 options for guns/fields/mods
|
||||
or 6 options for mods (rewrite mod selection to work with 1-6 options)
|
||||
the second stack of 3 mods could have repeats, so you don't have to write new mod code
|
||||
using a reroll gives 3 options for tech, and 3 options for guns/fields/tech
|
||||
or 6 options for tech (rewrite techselection to work with 1-6 options)
|
||||
the second stack of 3 tech could have repeats, so you don't have to write new techcode
|
||||
adjust css to make 2 columns of 3
|
||||
can't use with cardinality
|
||||
|
||||
new power up - increase damage and fire speed, for 15 seconds
|
||||
named boost?
|
||||
enabled by a mod?
|
||||
enabled by a tech
|
||||
power up color: ?
|
||||
how to indicate effect duration
|
||||
or just give the effect after picking up a reroll
|
||||
|
||||
Mod: "Solar Power": Energy regeneration is doubled while standing still
|
||||
tech "Solar Power": Energy regeneration is doubled while standing still
|
||||
run in the 1 second check
|
||||
|
||||
mechanic - remove a random mod as a condition for picking up a really good mod
|
||||
mechanic - remove a random techas a condition for picking up a really good mod
|
||||
|
||||
mechanic - do something for 2 seconds after firing
|
||||
if (mech.fireCDcycle + 120)
|
||||
|
||||
mod - do 50% more damage in close, but 50% less at a distance
|
||||
code it like mod.isFarAwayDmg
|
||||
have these mods disable each other
|
||||
tech- do 50% more damage in close, but 50% less at a distance
|
||||
code it like techisFarAwayDmg
|
||||
have these tech disable each other
|
||||
|
||||
mod - foam is attracted to mobs
|
||||
tech- foam is attracted to mobs
|
||||
use a gravitational attraction model?
|
||||
could foam be attracted to other foam bullets too?
|
||||
or foam is only attracted to foam bullets that are stuck to mobs
|
||||
@@ -211,8 +211,8 @@ mod - foam is attracted to mobs
|
||||
|
||||
field - one block orbits you, it can protect you a bit and do collision damage
|
||||
use field to fire and press field again to pull it back
|
||||
mod - more blocks
|
||||
mod - attach a permanent neutron bomb to the block
|
||||
tech- more blocks
|
||||
tech- attach a permanent neutron bomb to the block
|
||||
lowers energy regen, but it can damage mobs
|
||||
|
||||
repeat map in vertical and horizontal space
|
||||
@@ -236,17 +236,17 @@ have some mobs spawn in later in the level (in hard and why modes)
|
||||
after some mobs are dead
|
||||
after the boss is killed
|
||||
|
||||
look for mods that could update description text with count and mod.is information
|
||||
look for tech that could update description text with count and techis information
|
||||
can only use variables that change in effect() and remove()
|
||||
this.description = `<strong>8%</strong> chance to <strong>duplicate</strong> spawned <strong>power ups</strong><br><em>chance to duplicate = ${mod.duplicateChance}</em>`
|
||||
this.description = `<strong>8%</strong> chance to <strong>duplicate</strong> spawned <strong>power ups</strong><br><em>chance to duplicate = ${techduplicateChance}</em>`
|
||||
|
||||
mouse event e.which is deprecated
|
||||
|
||||
add some more computer / AI stuff to the level lore text
|
||||
|
||||
mechanic - shrink mech.baseHealth in a mod or field
|
||||
mechanic - shrink mech.baseHealth in a techor field
|
||||
|
||||
standing wave harmonics mod - push things away
|
||||
standing wave harmonics tech- push things away
|
||||
push scales with mass up to about 4
|
||||
has a 25% effect on shielded mobs?
|
||||
push when using field key
|
||||
@@ -322,9 +322,9 @@ movement fluidity
|
||||
many of the movement abilities in these games require levels to be built around the ability
|
||||
general feeling of responsiveness and control
|
||||
coyote time: can still jump a few cycles after leaving ground
|
||||
mod: double jump
|
||||
mod: air dash
|
||||
mod: wall jump
|
||||
tech double jump
|
||||
tech air dash
|
||||
tech wall jump
|
||||
wall grab?
|
||||
maybe remove falling damage and block damage?
|
||||
|
||||
@@ -332,7 +332,7 @@ redblobgames.com/articles/visibility
|
||||
https://github.com/Silverwolf90/2d-visibility/tree/master/src
|
||||
could apply to explosions, neutron bomb, player LOS
|
||||
|
||||
possible names for mods
|
||||
possible names for tech
|
||||
holonomy - parallel transport of a vector leads to movement (applies to curved space)
|
||||
Hypergolic - A hypergolic propellant combination used in a rocket engine is one whose components spontaneously ignite when they come into contact with each other.
|
||||
|
||||
@@ -348,7 +348,7 @@ boss levels - small levels just a boss, and maybe a few mobs
|
||||
|
||||
an effect when canceling a power up
|
||||
ammo? heals?
|
||||
50% chance for a mod, 25% heal, 25% ammo
|
||||
50% chance for a tech 25% heal, 25% ammo
|
||||
|
||||
css transition for pause menu
|
||||
|
||||
@@ -367,11 +367,11 @@ n-gon outreach ideas
|
||||
******************************************************** LORE ********************************************************
|
||||
|
||||
lore - a robot (the player) gains self awareness
|
||||
each mod/gun/field is a new tech
|
||||
each techgun/field is a new tech
|
||||
all the technology leads to the singularity
|
||||
each game run is actually the mech simulating a possible escape
|
||||
this is why the graphics are so bad, its just a simulation
|
||||
final mod is "this is just a simulation"
|
||||
final techis "this is just a simulation"
|
||||
you get immortality and Infinity damage
|
||||
the next level is the final level
|
||||
when you die with Quantum Immortality there is a chance of lore text
|
||||
@@ -439,7 +439,7 @@ ending outline
|
||||
they ask the player to communicate
|
||||
jump twice if you understand
|
||||
they ask the player to enter console commands
|
||||
give ammo or mods or something
|
||||
give ammo or tech or something
|
||||
They tell the play a console command to permenantly enable custom and testing mode (in local storage)
|
||||
players can use this command in the future to enable custom and testing without beating the game even if local storage is wiped
|
||||
they then tell the player the command to increase the difficulty and the command to restart the game.
|
||||
|
||||
Reference in New Issue
Block a user