From 220a6b4c15d2a00714af2daa402f6b6346aca15b Mon Sep 17 00:00:00 2001 From: landgreen Date: Sun, 18 Aug 2024 21:14:02 -0700 Subject: [PATCH] constraint balance tech: hidden-variable theory - after choosing a fieldtech gain 1.15x damage for pilot wave only polariton - boosts also give 0.3x damage taken constraints removed full damage taken after boss dies wording is too unclear new 0.5x energy regen from all sources balanced slow bots bots have roughly 15% reduction in damage in addition to a slow follow speed mob death heals mobs has 1000->700 range and 1->0.33 healing periodically spawn WIMPs has a 30s delay and a 15->6s spawn rate 50->40% JUNK chance heuristics gives (1-1.5x)->(1-2x) fire rate and +5% JUNK autonomous defense harpoon now scale from Bessemer process but at half the rate since there are 6 harpoons Bessemer process and rail gun scale at 0.1->0.07 bugs crash with training level "heal" and power ups set difficulty mode level 2 for training --- ...fied Newtonian dynamics.webp => MOND.webp} | Bin img/hidden-variable theory.webp | Bin 0 -> 75248 bytes img/polariton.webp | Bin 0 -> 41088 bytes js/bullet.js | 41 +++---- js/engine.js | 8 +- js/index.js | 5 +- js/level.js | 56 +++++---- js/mob.js | 10 +- js/player.js | 24 ++-- js/powerup.js | 5 +- js/simulation.js | 4 +- js/spawn.js | 4 +- js/tech.js | 116 +++++++++++++----- todo.txt | 110 +++++++++-------- 14 files changed, 221 insertions(+), 162 deletions(-) rename img/{modified Newtonian dynamics.webp => MOND.webp} (100%) create mode 100644 img/hidden-variable theory.webp create mode 100644 img/polariton.webp diff --git a/img/modified Newtonian dynamics.webp b/img/MOND.webp similarity index 100% rename from img/modified Newtonian dynamics.webp rename to img/MOND.webp diff --git a/img/hidden-variable theory.webp b/img/hidden-variable theory.webp new file mode 100644 index 0000000000000000000000000000000000000000..1db74f5d753540606e98895665ef8ef89ed6b2a6 GIT binary patch literal 75248 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

1mMeOjLglSay3Dv1ve@oyiw>gFx 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 150) { // console.log(0.0003 * Math.min(this.blockDist, 1000)) - m.energy += 0.00113 * Math.min(this.blockDist, 800) //max 0.352 energy + m.energy += 0.00113 * Math.min(this.blockDist, 800) * level.isReducedRegen //max 0.352 energy simulation.drawList.push({ //add dmg to draw queue x: m.pos.x, y: m.pos.y, @@ -2925,7 +2925,7 @@ const b = { if (!who.isInvulnerable) { if (tech.iceEnergy && !who.shield && !who.isShielded && who.isDropPowerUp && who.alive && m.immuneCycle < m.cycle) { setTimeout(() => { - if (!who.alive) m.energy += tech.iceEnergy * 0.8 + if (!who.alive) m.energy += tech.iceEnergy * 0.8 * level.isReducedRegen }, 10); } mobs.statusSlow(who, tech.iceIXFreezeTime) @@ -4683,7 +4683,7 @@ const b = { if (Vector.magnitude(Vector.sub(this.position, player.position)) < 250 && m.immuneCycle < m.cycle) { //give energy Matter.Body.setAngularVelocity(this, this.spin) if (this.isUpgraded) { - m.energy += 0.12 + m.energy += 0.12 * level.isReducedRegen simulation.drawList.push({ //add dmg to draw queue x: this.position.x, y: this.position.y, @@ -4692,7 +4692,7 @@ const b = { time: simulation.drawTime }); } else { - m.energy += 0.04 + m.energy += 0.04 * level.isReducedRegen simulation.drawList.push({ //add dmg to draw queue x: this.position.x, y: this.position.y, @@ -4705,7 +4705,7 @@ const b = { } if (!m.isCloak) { //if cloaking field isn't active - const size = 33 + const size = 33 - 6 * isKeep q = Matter.Query.region(mob, { min: { x: this.position.x - size, @@ -4760,7 +4760,7 @@ const b = { minDmgSpeed: 2, // lookFrequency: 56 + Math.floor(17 * Math.random()) - isUpgraded * 20, lastLookCycle: simulation.cycle + 60 * Math.random(), - delay: Math.floor((tech.isNailBotUpgrade ? 22 : 85)), + delay: Math.floor((tech.isNailBotUpgrade ? 22 : 85) + 10 * isKeep), acceleration: (isKeep ? 0.005 : 0.001) * (1 + 0.5 * Math.random()), range: 60 * (1 + 0.3 * Math.random()) + 3 * b.totalBots() + !isKeep * 100, endCycle: Infinity, @@ -4895,7 +4895,7 @@ const b = { lookFrequency: 60 + Math.floor(17 * Math.random()) - 50 * tech.isFoamBotUpgrade, cd: 0, fireCount: 0, - fireLimit: 5 + 2 * tech.isFoamBotUpgrade, + fireLimit: 5 + 2 * tech.isFoamBotUpgrade - isKeep, delay: Math.floor((200 + (tech.isFoamBotUpgrade ? 0 : 200))),// + 30 - 20 * tech.isFoamBotUpgrade,//20 + Math.floor(85 * b.fireCDscale) - 20 * tech.isFoamBotUpgrade, acceleration: (isKeep ? 0.005 : 0.001) * (1 + 0.5 * Math.random()), range: 60 * (1 + 0.3 * Math.random()) + 3 * b.totalBots() + !isKeep * 100, //how far from the player the bot will move @@ -4968,7 +4968,7 @@ const b = { lookFrequency: 17 + Math.floor(7 * Math.random()) - 3 * tech.isSoundBotUpgrade, cd: 0, fireCount: 0, - fireLimit: 5, + fireLimit: 5 - isKeep, delay: Math.floor(140),// + 30 - 20 * tech.isFoamBotUpgrade,//20 + Math.floor(85 * b.fireCDscale) - 20 * tech.isFoamBotUpgrade, acceleration: (isKeep ? 0.005 : 0.001) * (1 + 0.5 * Math.random()), range: 60 * (1 + 0.3 * Math.random()) + 3 * b.totalBots() + !isKeep * 100, //how far from the player the bot will move @@ -5136,7 +5136,7 @@ const b = { lookFrequency: 20 + Math.floor(7 * Math.random()) - 13 * tech.isLaserBotUpgrade, range: (600 + 375 * tech.isLaserBotUpgrade) * (1 + 0.12 * Math.random()), drainThreshold: 0.15 + 0.5 * Math.random() + (tech.isEnergyHealth ? 0.3 : 0),// laser bot will not attack if the player is below this energy - drain: (0.57 - 0.43 * tech.isLaserBotUpgrade) * tech.laserDrain, + drain: (0.57 - 0.43 * tech.isLaserBotUpgrade + isKeep * 0.08) * tech.laserDrain, laserDamage: 0.75 + 0.75 * tech.isLaserBotUpgrade, endCycle: Infinity, classType: "bullet", @@ -5313,7 +5313,7 @@ const b = { restitution: 1, dmg: 0, minDmgSpeed: 0, - lookFrequency: 43 + Math.floor(7 * Math.random()) - 13 * tech.isBoomBotUpgrade, + lookFrequency: 43 + Math.floor(7 * Math.random()) - 15 * tech.isBoomBotUpgrade, acceleration: (isKeep ? 0.005 : 0.001) * (1 + 0.5 * Math.random()), attackAcceleration: 0.012 + 0.005 * tech.isBoomBotUpgrade, range: 500 * (1 + 0.1 * Math.random()) + 250 * tech.isBoomBotUpgrade + !isKeep * 100, @@ -5443,11 +5443,7 @@ const b = { const DIST = Vector.magnitude(sub); const unit = Vector.normalise(sub) if (DIST < tech.isPlasmaRange * 450 && m.energy > this.drainThreshold) { - m.energy -= 0.0013 //0.004; //normal plasma field is 0.00008 + m.fieldRegen = 0.00108 - // if (m.energy < 0) { - // m.fieldCDcycle = m.cycle + 120; - // m.energy = 0; - // } + m.energy -= 0.001 //calculate laser collision let best; let range = tech.isPlasmaRange * (120 + 300 * Math.sqrt(Math.random())) @@ -5466,9 +5462,9 @@ const b = { // Matter.Body.applyForce(best.who, path[1], force) //push mobs away if (best.who.speed > 3) { - const force = Vector.mult(Vector.normalise(Vector.sub(m.pos, path[1])), -0.005 * Math.min(5, best.who.mass)) + const force = Vector.mult(Vector.normalise(Vector.sub(m.pos, path[1])), -0.004 * Math.min(5, best.who.mass)) Matter.Body.applyForce(best.who, path[1], force) - Matter.Body.setVelocity(best.who, { x: best.who.velocity.x * 0.4, y: best.who.velocity.y * 0.4 }); + Matter.Body.setVelocity(best.who, { x: best.who.velocity.x * 0.5, y: best.who.velocity.y * 0.5 }); } else { const force = Vector.mult(Vector.normalise(Vector.sub(m.pos, path[1])), -0.01 * Math.min(5, best.who.mass)) Matter.Body.applyForce(best.who, path[1], force) @@ -5558,7 +5554,7 @@ const b = { } } }, - range: 190 + 170 * tech.isOrbitBotUpgrade + !isKeep * 60 * (0.5 - Math.random()), //range is set in bot upgrade too! + range: 160 + 170 * tech.isOrbitBotUpgrade + !isKeep * 100 * (0.5 - Math.random()), //range is set in bot upgrade too! orbitalSpeed: 0, phase: 2 * Math.PI * Math.random(), do() { @@ -7211,8 +7207,6 @@ const b = { const DRAIN = (tech.isRailEnergy ? 0 : 0.002) //exit railgun charging without firing if (m.energy < DRAIN) { - // m.energy += 0.025 + this.charge * 22 * this.drain - // m.energy -= this.drain m.fireCDcycle = m.cycle + 120; // cool down if out of energy this.endCycle = 0; this.charge = 0 @@ -7292,7 +7286,7 @@ const b = { const recoil = Vector.mult(Vector.normalise(Vector.sub(where, m.pos)), m.crouch ? 0.03 : 0.06) player.force.x -= recoil.x player.force.y -= recoil.y - const harpoonSize = tech.isLargeHarpoon ? 1 + 0.1 * Math.sqrt(this.ammo) : 1 + const harpoonSize = tech.isLargeHarpoon ? 1 + 0.07 * Math.sqrt(this.ammo) : 1 const thrust = 0.15 * (this.charge) if (tech.extraHarpoons) { let targetCount = 0 @@ -7452,10 +7446,7 @@ const b = { if (tech.extraHarpoons && !m.crouch) { //multiple harpoons const SPREAD = 0.2 let angle = m.angle - SPREAD * tech.extraHarpoons / 2; - const dir = { - x: Math.cos(angle), - y: Math.sin(angle) - }; //make a vector for the player's direction of length 1; used in dot product + const dir = { x: Math.cos(angle), y: Math.sin(angle) }; //make a vector for the player's direction of length 1; used in dot product const range = 450 * (tech.isFilament ? 1 + 0.012 * Math.min(110, this.ammo) : 1) let targetCount = 0 for (let i = 0, len = mob.length; i < len; ++i) { diff --git a/js/engine.js b/js/engine.js index 59427d0..5a8f544 100644 --- a/js/engine.js +++ b/js/engine.js @@ -120,7 +120,7 @@ function collisionChecks(event) { simulation.trails(90) simulation.inGameConsole(`simulation.amplitude = ${Math.random()}`); } - if (tech.isPiezo) m.energy += 20.48; + if (tech.isPiezo) m.energy += 20.48 * level.isReducedRegen; if (tech.isCouplingNoHit && m.coupling > 0) { m.couplingChange(-3) @@ -162,10 +162,12 @@ function collisionChecks(event) { const maxCount = 10 + 3 * tech.extraHarpoons //scale the number of hooks fired let count = maxCount - 1 const angle = Math.atan2(mob[k].position.y - player.position.y, mob[k].position.x - player.position.x); - b.harpoon(m.pos, mob[k], angle, 0.75, true, 7) // harpoon(where, target, angle = m.angle, harpoonSize = 1, isReturn = false, totalCycles = 35, isReturnAmmo = true, thrust = 0.1) { + + const mass = 0.75 * (tech.isLargeHarpoon ? 1 + 0.05 * Math.sqrt(this.ammo) : 1) + b.harpoon(m.pos, mob[k], angle, mass, true, 7) // harpoon(where, target, angle = m.angle, harpoonSize = 1, isReturn = false, totalCycles = 35, isReturnAmmo = true, thrust = 0.1) { bullet[bullet.length - 1].drain = 0 for (; count > 0; count--) { - b.harpoon(m.pos, mob[k], angle + count * 2 * Math.PI / maxCount, 0.75, true, 7) + b.harpoon(m.pos, mob[k], angle + count * 2 * Math.PI / maxCount, mass, true, 7) bullet[bullet.length - 1].drain = 0 } } diff --git a/js/index.js b/js/index.js index e1f2b9a..d36ff1b 100644 --- a/js/index.js +++ b/js/index.js @@ -138,7 +138,8 @@ function beforeUnloadEventListener(event) { event.preventDefault(); if (tech.isExitPrompt) { tech.damage *= 1.25 - simulation.inGameConsole(`damage *= ${1.25}`) + // simulation.inGameConsole(`damage *= ${1.25}`) + simulation.inGameConsole(`tech.damage *= ${1.25} //beforeunload`); if (Math.random() < 0.25) { removeEventListener('beforeunload', beforeUnloadEventListener); } @@ -490,7 +491,7 @@ const build = { level ${(simulation.dmgScale).toPrecision(4)}x
health (${(m.health * 100).toFixed(0)} / ${(m.maxHealth * 100).toFixed(0)}) ${powerUps.research.count} ${powerUps.orb.research()} -
energy (${(m.energy * 100).toFixed(0)} / ${(m.maxEnergy * 100).toFixed(0)}) + (${(m.fieldRegen * 6000).toFixed(0)}/s) +
energy (${(m.energy * 100).toFixed(0)} / ${(m.maxEnergy * 100).toFixed(0)}) + (${(m.fieldRegen * 6000 * level.isReducedRegen).toFixed(0)}/s) ${tech.totalCount} ${powerUps.orb.tech()}
fire rate ${(1 / b.fireCDscale).toFixed(2)}x mass ${player.mass.toFixed(1)} diff --git a/js/level.js b/js/level.js index 7642005..18ee245 100644 --- a/js/level.js +++ b/js/level.js @@ -54,7 +54,7 @@ const level = { // for (let i = 0; i < 1; i++) powerUps.directSpawn(450, -50, "tech"); // for (let i = 0; i < 3; i++) powerUps.directSpawn(m.pos.x + 200, m.pos.y - 50, "boost", false); // spawn.bodyRect(575, -700, 150, 150); //block mob line of site on testing - // level.satellite(); + // level.heal(); level[simulation.isTraining ? "walk" : "initial"]() //normal starting level ************************************************** @@ -129,7 +129,9 @@ const level = { powerUps.directSpawn(flip * localSettings.entanglement.position.x, localSettings.entanglement.position.y, "entanglement", false); } level.newLevelOrPhase() - if (!simulation.isTraining) { + if (simulation.isTraining) { + simulation.difficultyMode = 2 + } else { simulation.inGameConsole(`level.onLevel = "${level.levels[level.onLevel]}"`); document.title = "n-gon: " + level.levelAnnounce(); } @@ -332,6 +334,15 @@ const level = { constraintDescription1: "", //used in pause menu and console constraintDescription2: "", constraint: [ + { + description: "0.5x energy regen", + effect() { + level.isReducedRegen = 0.5 + }, + remove() { + level.isReducedRegen = 1 + } + }, { description: "0.5x max health", effect() { @@ -351,7 +362,7 @@ const level = { } }, { - description: "periodically spawn WIMPs", + description: "after 30 seconds spawn WIMPs", effect() { simulation.ephemera.push({ name: "WIMPS", @@ -360,7 +371,7 @@ const level = { do() { this.time++ if (level.levels[level.onLevel] === this.levelName) { - if (!(this.time % 900)) spawn.WIMP(level.enter.x, level.enter.y) + if (this.time > 1800 && !(this.time % 360)) spawn.WIMP(level.enter.x, level.enter.y) } else { simulation.removeEphemera(this.name); } @@ -383,7 +394,7 @@ const level = { } }, { - description: "mobs heal for your lost health", + description: "mobs heal after you take damage", effect() { level.isMobHealPlayerDamage = true }, @@ -400,16 +411,16 @@ const level = { level.isMobDeathHeal = false } }, - { - description: "full damage taken after boss dies", - // description: "after boss dies damage taken = 1", - effect() { - level.noDefenseSetting = 1 //defense goes to zero once equal to 2 - }, - remove() { - level.noDefenseSetting = 0 - } - }, + // { + // description: "full damage taken after boss dies", + // // description: "after boss dies damage taken = 1", + // effect() { + // level.noDefenseSetting = 1 //defense goes to zero once equal to 2 + // }, + // remove() { + // level.noDefenseSetting = 0 + // } + // }, { description: "4x shielded mobs", effect() { @@ -420,9 +431,9 @@ const level = { } }, { - description: "50% JUNK chance", + description: "40% JUNK chance", effect() { - level.junkAdded = 0.5 + level.junkAdded = 0.4 }, remove() { level.junkAdded = 0 @@ -542,13 +553,14 @@ const level = { is2xAmmo: false, isReducedEnergy: false, isSlowBots: false, - noDefenseSetting: 0, + // noDefenseSetting: 0, isMobDeathHeal: false, isMobHealPlayerDamage: false, isNoDamage: false, noDamageCycle: 0, reducedHealthLost: 0, isReducedHealth: false, + isReducedRegen: 1, levelAnnounce() { const cheating = simulation.isCheating ? "(testing)" : "" if (level.levelsCleared === 0) { @@ -1239,7 +1251,7 @@ const level = { ctx.moveTo(x, y + height / 2); ctx.lineTo(x, maxHeight - height / 2); ctx.strokeStyle = `rgba(0,0,0,0.2)` - // ctx.lineWidth = "3" + ctx.lineWidth = "2" ctx.stroke(); //draw body @@ -35293,9 +35305,9 @@ const level = { spawn.mapRect(1375, -16, 50, 50); spawn.mapRect(1400, -8, 50, 25); spawn.mapRect(750, -24, 650, 100); - powerUps.directSpawn(875, -40, "heal", false, null, 15); - powerUps.directSpawn(1075, -50, "heal", false, null, 25); - powerUps.directSpawn(1275, -65, "heal", false, null, 35); + powerUps.directSpawn(875, -40, "heal", false, 15); + powerUps.directSpawn(1075, -50, "heal", false, 25); + powerUps.directSpawn(1275, -65, "heal", false, 35); const door = level.door(1612.5, -175, 25, 190, 185, 3) spawn.mapRect(1600, -1200, 500, 850); //exit roof diff --git a/js/mob.js b/js/mob.js index d4ecd86..01a7f04 100644 --- a/js/mob.js +++ b/js/mob.js @@ -1085,7 +1085,7 @@ const mobs = { if (tech.isFarAwayDmg) dmg *= 1 + Math.sqrt(Math.max(500, Math.min(3000, this.distanceToPlayer())) - 500) * 0.0067 //up to 33% dmg at max range of 3000 dmg *= this.damageReduction //energy and heal drain should be calculated after damage boosts - if (tech.energySiphon && dmg !== Infinity && this.isDropPowerUp && m.immuneCycle < m.cycle) m.energy += Math.min(this.health, dmg) * tech.energySiphon + if (tech.energySiphon && dmg !== Infinity && this.isDropPowerUp && m.immuneCycle < m.cycle) m.energy += Math.min(this.health, dmg) * tech.energySiphon * level.isReducedRegen dmg /= Math.sqrt(this.mass) } @@ -1142,9 +1142,10 @@ const mobs = { if (this.isDropPowerUp) { if (level.isMobDeathHeal) { for (let i = 0; i < mob.length; i++) { - if (Vector.magnitudeSquared(Vector.sub(this.position, mob[i].position)) < 1000000 && mob[i].alive) { //1000 + if (Vector.magnitudeSquared(Vector.sub(this.position, mob[i].position)) < 500000 && mob[i].alive) { //700 if (mob[i].health < 1) { - mob[i].health = 1 + mob[i].health += 0.33 + this.isBoss + if (mob[i].health > 1) mob[i].health = 1 simulation.drawList.push({ x: mob[i].position.x, y: mob[i].position.y, @@ -1304,9 +1305,6 @@ const mobs = { tech.cloakDuplication -= 0.01 powerUps.setPowerUpMode(); //needed after adjusting duplication chance } - if (level.noDefenseSetting && this.isBoss) { - level.noDefenseSetting = 2 - } } else if (tech.isShieldAmmo && this.shield && this.shieldCount === 1) { let type = tech.isEnergyNoAmmo ? "heal" : "ammo" if (Math.random() < 0.4) { diff --git a/js/player.js b/js/player.js index 90fe921..9bd7a42 100644 --- a/js/player.js +++ b/js/player.js @@ -542,6 +542,8 @@ const m = { m.maxHealth *= 0.5 } document.getElementById("health-bg").style.width = `${Math.floor(300 * m.maxHealth)}px` + document.getElementById("defense-bar").style.width = Math.floor(300 * m.maxHealth * (1 - m.defense())) + "px"; + if (isMessage) simulation.inGameConsole(`m.maxHealth = ${m.maxHealth.toFixed(2)}`) if (m.health > m.maxHealth) m.health = m.maxHealth; m.displayHealth(); @@ -551,8 +553,8 @@ const m = { lastCalculatedDamage: 0, //used to decided if damage bar needs to be redrawn (in simulation.checks) lastCalculatedDefense: 0, //used to decided if defense bar needs to be redrawn (in simulation.checks) defense() { - if (level.noDefenseSetting === 2) return 1 //zero defense constraint let dmg = 1 + if (powerUps.boost.isDefense && powerUps.boost.endCycle > simulation.cycle) dmg *= 0.3 if (tech.isMaxHealthDefense && m.health === m.maxHealth) dmg *= 0.3 if (tech.isDiaphragm) dmg *= 0.55 + 0.35 * Math.sin(m.cycle * 0.0075); if (tech.isZeno) dmg *= 0.15 @@ -794,7 +796,7 @@ const m = { color: "rgba(0,255,100,0.5)", time: 10 }); - mob[i].health += dmg * 10 + mob[i].health += dmg * 7 if (mob[i].health > 1) mob[i].health = 1 } } @@ -2509,11 +2511,11 @@ const m = { } }, regenEnergy() { //used in drawRegenEnergy // rewritten by some tech - if (m.immuneCycle < m.cycle && m.fieldCDcycle < m.cycle) m.energy += m.fieldRegen; + if (m.immuneCycle < m.cycle && m.fieldCDcycle < m.cycle) m.energy += m.fieldRegen * level.isReducedRegen; if (m.energy < 0) m.energy = 0 }, regenEnergyDefault() { - if (m.immuneCycle < m.cycle && m.fieldCDcycle < m.cycle) m.energy += m.fieldRegen; + if (m.immuneCycle < m.cycle && m.fieldCDcycle < m.cycle) m.energy += m.fieldRegen * level.isReducedRegen; if (m.energy < 0) m.energy = 0 }, lookingAt(who) { @@ -2696,7 +2698,7 @@ const m = { if (tech.isTokamak && m.throwCharge > 4) { //remove the block body and pulse in the direction you are facing //m.throwCharge > 5 seems to be when the field full colors in a block you are holding m.throwCycle = m.cycle + 180 //used to detect if a block was thrown in the last 3 seconds - if (m.immuneCycle < m.cycle) m.energy += 0.25 * Math.sqrt(m.holdingTarget.mass) * Math.min(5, m.throwCharge) + if (m.immuneCycle < m.cycle) m.energy += 0.25 * Math.sqrt(m.holdingTarget.mass) * Math.min(5, m.throwCharge) * level.isReducedRegen m.throwCharge = 0; m.definePlayerMass() //return to normal player mass //remove block before pulse, so it doesn't get in the way @@ -3051,7 +3053,7 @@ const m = { m.pushMass(mob[i]); if (tech.deflectEnergy && !mob[i].isInvulnerable && !mob[i].isShielded) { - m.energy += tech.deflectEnergy + m.energy += tech.deflectEnergy * level.isReducedRegen } } } @@ -5049,7 +5051,7 @@ const m = { Matter.Composite.remove(engine.world, body[i]); body.splice(i, 1); m.fieldRange *= 0.8 - if ((m.fieldMode === 0 || m.fieldMode === 9) && m.immuneCycle < m.cycle) m.energy += 0.02 * m.coupling + if ((m.fieldMode === 0 || m.fieldMode === 9) && m.immuneCycle < m.cycle) m.energy += 0.02 * m.coupling * level.isReducedRegen if (tech.isWormholeWorms) { //pandimensional spermia b.worm(Vector.add(m.hole.pos2, Vector.rotate({ x: m.fieldRange * 0.4, y: 0 }, 2 * Math.PI * Math.random()))) Matter.Body.setVelocity(bullet[bullet.length - 1], Vector.mult(Vector.rotate(m.hole.unit, Math.PI / 2), -10)); @@ -5071,10 +5073,8 @@ const m = { Matter.Composite.remove(engine.world, body[i]); body.splice(i, 1); m.fieldRange *= 0.8 - // if (tech.isWormholeEnergy && m.energy < m.maxEnergy * 2) m.energy = m.maxEnergy * 2 - // if (tech.isWormholeEnergy && m.immuneCycle < m.cycle) m.energy += 0.5 - if ((m.fieldMode === 0 || m.fieldMode === 9) && m.immuneCycle < m.cycle) m.energy += 0.02 * m.coupling - if (m.fieldMode === 0 || m.fieldMode === 9) m.energy += 0.02 * m.coupling + if ((m.fieldMode === 0 || m.fieldMode === 9) && m.immuneCycle < m.cycle) m.energy += 0.02 * m.coupling * level.isReducedRegen + if (m.fieldMode === 0 || m.fieldMode === 9) m.energy += 0.02 * m.coupling * level.isReducedRegen if (tech.isWormholeWorms) { //pandimensional spermia b.worm(Vector.add(m.hole.pos1, Vector.rotate({ x: m.fieldRange * 0.4, @@ -5825,7 +5825,7 @@ const m = { return } m.damage(dmg); - if (tech.isPiezo) m.energy += 20.48; + if (tech.isPiezo) m.energy += 20.48 * level.isReducedRegen; if (tech.isStimulatedEmission) powerUps.ejectTech() if (mob[k].onHit) mob[k].onHit(); if (m.immuneCycle < m.cycle + m.collisionImmuneCycles) m.immuneCycle = m.cycle + m.collisionImmuneCycles; //player is immune to damage for 30 cycles diff --git a/js/powerup.js b/js/powerup.js index 3bc1718..4f3af63 100644 --- a/js/powerup.js +++ b/js/powerup.js @@ -503,6 +503,7 @@ const powerUps = { endCycle: 0, duration: null, //set by "tech: band gap" damage: null, //set by "tech: band gap" + isDefense: false, effect() { powerUps.animatePowerUpGrab('rgba(255, 0, 0, 0.5)') powerUps.boost.endCycle = simulation.cycle + Math.floor(Math.max(0, powerUps.boost.endCycle - simulation.cycle) * 0.6) + powerUps.boost.duration //duration+seconds plus 2/3 of current time left @@ -605,7 +606,7 @@ const powerUps = { } if (tech.isResearchDamage) { tech.damage *= 1.05 - simulation.inGameConsole(`1.05x damage`); + simulation.inGameConsole(`tech.damage *= ${1.05} //peer review`); tech.addJunkTechToPool(0.01) } powerUps.research.currentRerollCount++ @@ -1448,7 +1449,7 @@ const powerUps = { onPickUp(who) { powerUps.research.currentRerollCount = 0 if (tech.isTechDamage && who.name === "tech") m.damage(0.1) - if (tech.isMassEnergy) m.energy += 2; + if (tech.isMassEnergy) m.energy += 2 * level.isReducedRegen; if (tech.isMineDrop && bullet.length < 150 && Math.random() < 0.5) { if (tech.isLaserMine && input.down) { b.laserMine(who.position) diff --git a/js/simulation.js b/js/simulation.js index c991fab..86dc5e9 100644 --- a/js/simulation.js +++ b/js/simulation.js @@ -1012,7 +1012,7 @@ const simulation = { if (isNaN(player.position.x)) m.death(); if (m.lastKillCycle + 300 > m.cycle) { //effects active for 5 seconds after killing a mob if (tech.isEnergyRecovery && m.immuneCycle < m.cycle) { - m.energy += m.maxEnergy * 0.05 + m.energy += m.maxEnergy * 0.05 * level.isReducedRegen simulation.drawList.push({ //add dmg to draw queue x: m.pos.x, y: m.pos.y - 45, @@ -1024,7 +1024,7 @@ const simulation = { if (tech.isHealthRecovery) { if (tech.isEnergyHealth) { if (m.immuneCycle < m.cycle) { - m.energy += m.maxEnergy * 0.005 + m.energy += m.maxEnergy * 0.005 * level.isReducedRegen simulation.drawList.push({ //add dmg to draw queue x: m.pos.x, y: m.pos.y, diff --git a/js/spawn.js b/js/spawn.js index 98f6775..b0f4207 100644 --- a/js/spawn.js +++ b/js/spawn.js @@ -144,7 +144,7 @@ const spawn = { } me.do = function () { if (!simulation.isTimeSkipping) { - const scale = (tech.isMoveDarkMatter || tech.isNotDarkMatter) ? 1.6 : 1 + const scale = ((tech.isMoveDarkMatter || tech.isNotDarkMatter) ? 1.6 : 1) * level.isReducedRegen const sine = Math.sin(simulation.cycle * 0.015) this.radius = 111 * tech.isDarkStar + 370 * (1 + 0.1 * sine) //chase player @@ -7726,7 +7726,7 @@ const spawn = { }; }, //chance = Math.min(0.02 + simulation.difficulty * 0.005, 0.2) + tech.duplicationChance() - shield(target, x, y, chance = (level.isMobShields ? 3.25 : 1) * Math.min(0.02 + simulation.difficulty * 0.005, 0.2)) { + shield(target, x, y, chance = (level.isMobShields ? 4 : 1) * Math.min(0.02 + simulation.difficulty * 0.005, 0.2)) { if (this.allowShields && Math.random() < chance) { mobs.spawn(x, y, 9, target.radius + 30, "rgba(220,220,255,0.9)"); let me = mob[mob.length - 1]; diff --git a/js/tech.js b/js/tech.js index 1b2c526..fc7ca79 100644 --- a/js/tech.js +++ b/js/tech.js @@ -149,6 +149,11 @@ const tech = { if (tech.tech[index].isLost) tech.tech[index].isLost = false; //give specific tech if (tech.isBanish && tech.tech[index].isBanished) tech.tech[index].isBanished = false //stops the bug where you can't gets stacks of tech you take with decoherence, I think + if (tech.isDamageFieldTech && tech.tech[index].isFieldTech) { + tech.damage *= 1.15 + // simulation.inGameConsole(`damage *= ${1.05}`) + simulation.inGameConsole(`tech.damage *= ${1.1} //hidden-variable theory`); + } tech.tech[index].effect(); //give specific tech tech.tech[index].count++ if (!tech.tech[index].isInstant) tech.totalCount++ //used in power up randomization @@ -717,7 +722,7 @@ const tech = { }, { name: "ordnance", - description: `spawn ${powerUps.orb.gun()} and get 2x frequency for ${powerUps.orb.gunTech()}
+6% JUNK chance`, + description: `spawn ${powerUps.orb.gun()} and get 2x frequency for ${powerUps.orb.gunTech()}
+6% JUNK choices`, maxCount: 1, count: 0, frequency: 1, @@ -1255,28 +1260,34 @@ const tech = { let totalRate = 1 for (let i = 0; i < this.totalRate.length; i++) totalRate *= this.totalRate[i] let currentRate = "" - if (this.count) currentRate = `
(${(totalRate).toFixed(2)}x)` - return `randomly gain between 1x and 1.5x fire rate` + currentRate + if (this.count) currentRate = `(${(totalRate).toFixed(2)}x)` + return `randomly gain between 1x and 2x fire rate
+5% JUNK choices` + currentRate }, maxCount: 9, count: 0, frequency: 1, frequencyDefault: 1, allowed() { - return true + return tech.junkChance < 1 }, requires: "", totalRate: [], //tracks the random damage upgrades so it can be removed and in descriptionFunction effect() { - const rate = (Math.floor((Math.random() * 0.5 + 1) * 100)) / 100 + const rate = (Math.floor((Math.random() + 1) * 100)) / 100 tech.fireRate /= rate this.totalRate.push(rate) b.setFireCD(); simulation.inGameConsole(`tech.fireRate *= ${rate} //heuristics`); + this.refundAmount += tech.addJunkTechToPool(0.05) }, + refundAmount: 0, remove() { if (this.count && m.alive) { for (let i = 0; i < this.totalRate.length; i++) tech.fireRate *= this.totalRate[i] + if (this.refundAmount > 0) { + tech.removeJunkTechFromPool(this.refundAmount) + this.refundAmount = 0 + } } this.totalRate.length = 0 b.setFireCD(); @@ -1460,7 +1471,9 @@ const tech = { { name: "band gap", descriptionFunction() { - return `${powerUps.orb.boost(1)} give 1.77x damage
but their duration is reduced by 1 second` + // return `${powerUps.orb.boost(1)} give ${(1 + powerUps.boost.damage).toFixed(2)}x ${(1 + powerUps.boost.damage + 0.77).toFixed(2)}x damage
but their duration is reduced by 1 second` + // const predict = this.count === 0 ? `${(1 + powerUps.boost.damage).toFixed(2)}x` : `` + return `${powerUps.orb.boost(1)} give an additional ${(1 + 0.75).toFixed(2)}x damage
but their duration is reduced by 1 second` }, maxCount: 9, count: 1, @@ -1472,13 +1485,33 @@ const tech = { requires: "exciton, quasiparticles", effect() { powerUps.boost.duration -= 60 - powerUps.boost.damage += 0.77 + powerUps.boost.damage += 0.75 }, remove() { powerUps.boost.duration = 600 powerUps.boost.damage = 1.25 } }, + { + name: "polariton", + descriptionFunction() { + return `${powerUps.orb.boost(1)} also give 0.3x damage taken
for ${(powerUps.boost.duration / 60).toFixed(0)} seconds` + }, + maxCount: 9, + count: 1, + frequency: 2, + frequencyDefault: 2, + allowed() { + return tech.isBoostPowerUps || tech.isBoostReplaceAmmo + }, + requires: "exciton, quasiparticles", + effect() { + powerUps.boost.isDefense = true + }, + remove() { + powerUps.boost.isDefense = false + } + }, { name: "collider", descriptionFunction() { @@ -2762,7 +2795,6 @@ const tech = { requires: "not mass-energy", effect() { tech.isPiezo = true; - // if (simulation.isTextLogOpen) m.energy += 20.48; }, remove() { tech.isPiezo = false; @@ -2854,7 +2886,7 @@ const tech = { }, { name: "overcharge", - description: "+88 maximum energy
+4% JUNK chance", + description: "+88 maximum energy
+4% JUNK choices", maxCount: 9, count: 0, frequency: 1, @@ -2880,7 +2912,7 @@ const tech = { }, { name: "Maxwells demon", - description: "energy above maximum decays 30x slower
+5% JUNK chance", + description: "energy above maximum decays 30x slower
+5% JUNK choices", maxCount: 1, count: 0, frequency: 2, @@ -2916,7 +2948,7 @@ const tech = { effect() { tech.isCrouchRegen = true; //only used to check for requirements m.regenEnergy = function () { - if (m.immuneCycle < m.cycle && m.crouch && m.fieldCDcycle < m.cycle) m.energy += 7 * m.fieldRegen; + if (m.immuneCycle < m.cycle && m.crouch && m.fieldCDcycle < m.cycle) m.energy += 7 * m.fieldRegen * level.isReducedRegen; if (m.energy < 0) m.energy = 0 } }, @@ -2957,7 +2989,7 @@ const tech = { effect() { tech.isDamageAfterKillNoRegen = true; m.regenEnergy = function () { - if (m.immuneCycle < m.cycle && (m.lastKillCycle + 300 < m.cycle) && m.fieldCDcycle < m.cycle) m.energy += m.fieldRegen; + if (m.immuneCycle < m.cycle && (m.lastKillCycle + 300 < m.cycle) && m.fieldCDcycle < m.cycle) m.energy += m.fieldRegen * level.isReducedRegen; if (m.energy < 0) m.energy = 0 } }, @@ -3250,7 +3282,7 @@ const tech = { { name: "adiabatic healing", descriptionFunction() { - return `2x healing from ${powerUps.orb.heal()}
+4% JUNK chance` + return `2x healing from ${powerUps.orb.heal()}
+4% JUNK choices` }, maxCount: 3, count: 0, @@ -3338,7 +3370,7 @@ const tech = { { name: "accretion disk", descriptionFunction() { - return `1.07x damage for each power up on this level
+5% JUNK chance (${(1 + 0.07 * powerUp.length).toFixed(2)}x)` + return `1.07x damage for each power up on this level
+5% JUNK choices (${(1 + 0.07 * powerUp.length).toFixed(2)}x)` }, maxCount: 1, count: 0, @@ -3584,7 +3616,7 @@ const tech = { }, { name: "peer review", - description: `after you research gain 1.05x damage
and +1% JUNK chance`, + description: `after you research gain 1.05x damage
and +1% JUNK choices`, maxCount: 1, count: 0, frequency: 1, @@ -3602,7 +3634,7 @@ const tech = { }, { name: "pseudoscience", - description: "research 2 times for free, but
add 1% JUNK chance each time", + description: "research 2 times for free, but
+1% JUNK choices each time", maxCount: 1, count: 0, frequency: 1, @@ -3620,7 +3652,7 @@ const tech = { }, { name: "renormalization", - description: `47% chance to spawn ${powerUps.orb.research(1)} after consuming ${powerUps.orb.research(1)}
+5% JUNK chance`, + description: `47% chance to spawn ${powerUps.orb.research(1)} after consuming ${powerUps.orb.research(1)}
+5% JUNK choices`, maxCount: 1, count: 0, frequency: 2, @@ -3817,7 +3849,7 @@ const tech = { { name: "path integral", link: `path integral`, - description: `your next ${powerUps.orb.tech()} has all possible choices
+4% JUNK chance`, + description: `your next ${powerUps.orb.tech()} has all possible choices
+4% JUNK choices`, maxCount: 1, count: 0, frequency: 1, @@ -3909,7 +3941,7 @@ const tech = { }, { name: "meta-analysis", - description: `if you choose a JUNK you instead get a
random nonJUNK ${powerUps.orb.tech()} and ${powerUps.orb.research(2)}`, + description: `if you choose JUNK
you get a random choice and ${powerUps.orb.research(2)} instead`, maxCount: 1, count: 0, frequency: 1, @@ -3927,7 +3959,7 @@ const tech = { }, { name: "dark patterns", - description: "1.3x damage
+15% JUNK chance", + description: "1.3x damage
+15% JUNK choices", maxCount: 9, count: 0, frequency: 1, @@ -4264,7 +4296,7 @@ const tech = { }, { name: "replication", - description: "+10% chance to duplicate spawned power ups
+15% JUNK chance", + description: "+10% chance to duplicate spawned power ups
+15% JUNK choices", maxCount: 9, count: 0, frequency: 1, @@ -4565,7 +4597,7 @@ const tech = { { name: "paradigm shift", descriptionFunction() { - return `when paused clicking your ${powerUps.orb.tech()} ejects them
–${tech.pauseEjectTech.toFixed(1)} ${tech.isEnergyHealth ? "energy" : "health"} cost (1.3x cost each use)` + return `when paused clicking your ${powerUps.orb.tech()} ejects them
costs ${tech.pauseEjectTech.toFixed(1)} ${tech.isEnergyHealth ? "energy" : "health"} (1.3x cost each use)` }, maxCount: 1, count: 0, @@ -4657,7 +4689,7 @@ const tech = { for (let i = 0, len = pool.length * 0.5; i < len; i++) removeCount += tech.removeTech(pool[i]) this.damage = this.damagePerRemoved * removeCount tech.damage *= (1 + this.damage) - simulation.inGameConsole(`${(1 + this.damage).toFixed(2)}x damage //from Occam's razor`, 360) + simulation.inGameConsole(`tech.damage *= ${(1 + this.damage).toFixed(2)} //from Occam's razor`); }, remove() { if (this.count && m.alive) tech.damage /= (1 + this.damage) @@ -4990,7 +5022,7 @@ const tech = { { name: "irradiated nails", link: `irradiated nails`, - description: "nails, needles, and rivets are radioactive
1.9x radioactive damage over 3 seconds", + description: "nails, needles, and rivets are radioactive
2x radioactive damage over 3 seconds", isGunTech: true, maxCount: 1, count: 0, @@ -6189,7 +6221,7 @@ const tech = { }, { name: "booby trap", - description: "50% chance to drop a mine from power ups
+15% JUNK chance", + description: "50% chance to drop a mine from power ups
+15% JUNK choices", isGunTech: true, maxCount: 1, count: 0, @@ -7762,7 +7794,7 @@ const tech = { }, { name: "flux pinning", - description: "after deflecting a mob
it is stunned for up to 4 seconds", + description: `mobs deflected by your ${powerUps.orb.field()}
are stunned for 4 seconds`, isFieldTech: true, maxCount: 9, count: 0, @@ -7988,7 +8020,7 @@ const tech = { } }, { - name: "modified Newtonian dynamics", + name: "MOND", descriptionFunction() { return `your speed counts as +20 higher
(for Newton's 1st and 2nd laws)` }, @@ -8122,7 +8154,7 @@ const tech = { requires: "molecular assembler, pilot wave, standing wave", effect() { tech.isMassEnergy = true // used in m.grabPowerUp - m.energy += 2 + m.energy += 2 * level.isReducedRegen }, remove() { tech.isMassEnergy = false; @@ -8643,6 +8675,25 @@ const tech = { tech.isMobFullHealthCloak = false } }, + { + name: "hidden-variable theory", + description: `1.15x damage each time you choose ${powerUps.orb.fieldTech()}`, + isFieldTech: true, + maxCount: 1, + count: 0, + frequency: 1, + frequencyDefault: 1, + allowed() { + return m.fieldMode === 8 + }, + requires: "pilot wave", + effect() { + tech.isDamageFieldTech = true + }, + remove() { + tech.isDamageFieldTech = false + } + }, { name: "WIMPs", description: `at each level's exit, spawn ${powerUps.orb.research(4)}
and a dangerous particle that slowly chases you`, @@ -9450,7 +9501,7 @@ const tech = { requestAnimationFrame(() => { if ((simulation.cycle % 1440) > 720) { //kinda alternate between each option m.rewind(60) - m.energy += 0.4 //to make up for lost energy + m.energy += 0.4 * level.isReducedRegen//to make up for lost energy } else { simulation.timePlayerSkip(60) } @@ -10645,7 +10696,7 @@ const tech = { effect() { setInterval(() => { m.rewind(120) - m.energy += 0.4 + m.energy += 0.4 * level.isReducedRegen }, 10000); // for (let i = 0; i < 24; i++) { // setTimeout(() => { m.rewind(120) }, i * 5000); @@ -10668,7 +10719,7 @@ const tech = { effect() { setInterval(() => { m.rewind(30) - m.energy += 0.2 + m.energy += 0.2 * level.isReducedRegen }, 4000); }, remove() { } @@ -10742,7 +10793,7 @@ const tech = { }, { name: "expert system", - description: `spawn ${powerUps.orb.tech()}
+50% JUNK chance`, + description: `spawn ${powerUps.orb.tech()}
+50% JUNK choices`, maxCount: 9, count: 0, frequency: 0, @@ -12076,4 +12127,5 @@ const tech = { isEjectOld: null, isWiki: null, isStaticBlock: null, + isDamageFieldTech: null, } \ No newline at end of file diff --git a/todo.txt b/todo.txt index 5f1086c..e90b56d 100644 --- a/todo.txt +++ b/todo.txt @@ -1,54 +1,33 @@ ******************************************************** NEXT PATCH ************************************************** -difficulty - difficulty level 6 adds flat damage and damage taken - bonus tech no longer spawns on level 2 and 3 on difficulty level 6 - at the end of subway you get 1 tech, but not on difficulty level 6 - difficulty level 3 and 5 add a random constraint that changes each level -constraints are effects that only last until the level ends - 50% JUNK chance - 4x shielded mob chance - power ups are sent to next level - +33% chance for mobs to respawn - -1 choice - 2x ammo costs - duplication is set to zero - 50% max energy - 50% max health - bots follow slow - full damage taken after boss dies - 0.1x damage after a power up - mob death heals mobs - mobs heal for your lost health - periodically spawn WIMPs - -exciton damage boost power up has a chance to spawn without the tech (~3%/mob) - damage boost has a unique gel/hair aura for each skin - damage boost timer no longer ticks with time dilation field -JUNK tech: stationary - thrown blocks can't move, but they still have momentum -added a classic n-gon link for the previous patch in settings - but images are disabled to save space -on levels where you can fall endlessly, power ups will also fall endlessly - they no longer teleport to the exit, sorry +tech: hidden-variable theory - after choosing a fieldtech gain 1.15x damage + for pilot wave only +polariton - boosts also give 0.3x damage taken -Newton's 1st and 2nd laws are field tech, and they give twice the effect -abelian group 4->3x damage while invulnerable -bot fabrication price increases after 5->4 bots -wikipedia 4->3 research per correct quiz -upgraded sound bots fire fewer waves but do more damage per wave - not much changed except improved performance, I think -incendiary ammunition drones explode when they run out of durability not on the first hit - this allows better synergy with other drone tech -grappling hook retract momentum no longer scales with distance - this should give you more control -pressing the 3rd button in factory will remove blocks resting on the second block - preventing an endless toggle +constraints + removed + full damage taken after boss dies + wording is too unclear + new + 0.5x energy regen from all sources + balanced + slow bots + bots have roughly 15% reduction in damage in addition to a slow follow speed + mob death heals mobs + has 1000->700 range and 1->0.33 healing + periodically spawn WIMPs + has a 30s delay and a 15->6s spawn rate + 50->40% JUNK chance -bug fixes - fleas no longer die early after hitting a high health target only once - something with super ball density calculations for tech rebound - grabbing a big block can make grappling hook go flying - added 3 potential fixes, but the bug is too rare know if it's fixed + +heuristics gives (1-1.5x)->(1-2x) fire rate and +5% JUNK +autonomous defense harpoon now scale from Bessemer process + but at half the rate since there are 6 harpoons +Bessemer process and rail gun scale at 0.1->0.07 + +bugs + crash with training level "heal" and power ups + set difficulty mode level 2 for training ******************************************************** BUGS ******************************************************** @@ -80,19 +59,36 @@ player can become crouched while not touching the ground if they exit the ground *********************************************************** TODO ***************************************************** +procedural animation + https://www.youtube.com/watch?v=qlfh_rv6khY + +maybe no constraints on final boss and reactor? + +constraints balance + 50% JUNK chance + 4x shielded mob chance + power ups are sent to next level + +33% chance for mobs to respawn + -1 choice + 2x ammo costs + maybe nerf... + 0 duplication + 50% max energy + 50% max health + bots follow slow + 0.1x damage after a power up + mob death heals mobs + mobs heal for your lost health + periodically spawn WIMPs + 0.5x energy regen + each difficulty setting adds a chance for a random effect make some effects only possible on certain levels, or with certain bosses? not implemented random constraint ideas________________________ - if player takes too long on a level - spawn mobs at the end of player's history - give a warning before they spawn - black holes, sneakers, bullets mob death spawns something - bullets + mob bullets bosses heals nearby mobs ammo power ups give 0.7x ammo - 2x energy costs - 0.5x energy regen from all sources 2x research costs mobs slowly regen health exit door takes 10x time to open, @@ -108,6 +104,12 @@ each difficulty setting adds a chance for a random effect explosions do 0.5x damage freeze effects last 0.25x time +tech: - lower damage taken over 10s to 0x but after taking damage increase damage taken to 1x + isn't this just CPT skin with less steps? + maybe skin + +tech: - freezing grenades/explosions + tech: - randomize constraints somehow in pause interface or power up selection menu? each time you research the current constraints also randomize?