pigeonhole principle

tech: junk DNA - +53% spore/worm/flea damage per JUNK tech you have, +50% JUNK added to tech pool
tech: pigeonhole principle - +31% damage for each gun you have, while a chosen gun is active
  chosen gun cycles each level
  syncs well with generalist

heuristics 30->25% fire rate, and now spawns a gun
arsenal gives 13->22% damage per gun, but no longer counts your current gun
active cooling gives 18->28% fire rate per gun, but no longer counts your current gun
supply chain adds 4% JUNK
dead reckoning 36->50% damage
alternator harpoon 60->80% energy cost reduction
quickly releasing the fire button retracts harpoon early

JUNK tech - circular symmetry - ship gets 200% damage, ship only faces forward but you can rotate the universe

several bug fixes
  coupling for molecular assembler 5->8 energy per second
    but also fixed a bug where coupling was giving 10x regen
This commit is contained in:
landgreen
2022-10-23 19:07:07 -07:00
parent 3a9cc28b76
commit de6d910aca
9 changed files with 314 additions and 128 deletions

View File

@@ -332,7 +332,7 @@ const powerUps = {
},
endDraft(type, isCanceled = false) { //type should be a gun, tech, or field
if (isCanceled) {
if (tech.isCancelTech && Math.random() < 0.88) {
if (tech.isCancelTech && Math.random() < 0.85) {
// powerUps.research.use('tech')
powerUps[type].effect();
return
@@ -356,7 +356,7 @@ const powerUps = {
powerUps.spawn(m.pos.x + 40 * (Math.random() - 0.5), m.pos.y + 40 * (Math.random() - 0.5), spawnType, false);
}
}
if (tech.isCancelCouple) powerUps.coupling.spawnDelay(5)
if (tech.isCancelCouple) powerUps.spawnDelay("coupling", 5)
// if (tech.isCancelTech && Math.random() < 0.3) {
// powerUps.spawn(m.pos.x + 40 * (Math.random() - 0.5), m.pos.y + 40 * (Math.random() - 0.5), "tech", false);
// simulation.makeTextLog(`<strong>options exchange</strong>: returns 1 <strong class='color-m'>tech</strong>`)
@@ -401,20 +401,20 @@ const powerUps = {
effect() {
m.couplingChange(0.1)
},
spawnDelay(num) {
let count = num
let respawnDrones = () => {
if (count > 0) {
requestAnimationFrame(respawnDrones);
if (!simulation.paused && !simulation.isChoosing) { //&& !(simulation.cycle % 2)
count--
const where = { x: m.pos.x + 50 * (Math.random() - 0.5), y: m.pos.y + 50 * (Math.random() - 0.5) }
powerUps.spawn(where.x, where.y, "coupling");
}
}
}
requestAnimationFrame(respawnDrones);
}
// spawnDelay(num) {
// let count = num
// let respawnDrones = () => {
// if (count > 0) {
// requestAnimationFrame(respawnDrones);
// if (!simulation.paused && !simulation.isChoosing) { //&& !(simulation.cycle % 2)
// count--
// const where = { x: m.pos.x + 50 * (Math.random() - 0.5), y: m.pos.y + 50 * (Math.random() - 0.5) }
// powerUps.spawn(where.x, where.y, "coupling");
// }
// }
// }
// requestAnimationFrame(respawnDrones);
// }
},
boost: {
name: "boost",
@@ -1149,8 +1149,8 @@ const powerUps = {
let count = num
let cycle = () => {
if (count > 0) {
requestAnimationFrame(cycle);
if (!simulation.paused && !simulation.isChoosing && m.alive) { //&& !(simulation.cycle % 2)
if (m.alive) requestAnimationFrame(cycle);
if (!simulation.paused && !simulation.isChoosing) { //&& !(simulation.cycle % 2)
count--
const where = { x: m.pos.x + 50 * (Math.random() - 0.5), y: m.pos.y + 50 * (Math.random() - 0.5) }
powerUps.spawn(where.x, where.y, type);