From a285375e2b11b61a86e07f7ca79aa8e858566d76 Mon Sep 17 00:00:00 2001 From: landgreen Date: Sun, 13 Jun 2021 18:45:53 -0700 Subject: [PATCH] WIMPs for wormhole tech: WIMPs now requires wormhole gives 3-9 research now (was 2-3) tech: eddy current brake - is 15% larger and caps mob speeds at 20% slower bug fixes --- .DS_Store | Bin 6148 -> 6148 bytes js/bullet.js | 2 +- js/level.js | 2 +- js/player.js | 19 +++++----- js/spawn.js | 10 +++--- js/tech.js | 46 ++++++++++++------------ todo.txt | 98 +++++++++++++++++++-------------------------------- 7 files changed, 78 insertions(+), 99 deletions(-) diff --git a/.DS_Store b/.DS_Store index 2c71cdff089ee28a1c41112cfed80d828c59548b..46287fc1dca646a82d03f3619d13d5ca4036af16 100644 GIT binary patch delta 21 ccmZoMXffEJ#mwY%eX 3) { diff --git a/js/player.js b/js/player.js index daf7242..b3d1dcb 100644 --- a/js/player.js +++ b/js/player.js @@ -308,10 +308,9 @@ const m = { //remove all tech and count current tech total let totalTech = 0; for (let i = 0, len = tech.tech.length; i < len; i++) { + if (tech.tech[i].isJunk) tech.tech[i].frequency = 0 if (tech.tech[i].count > 0 && !tech.tech[i].isLore) { - if (tech.tech[i].isJunk) { - tech.tech[i].frequency = 0 - } else if (tech.tech[i].frequencyDefault) { + if (tech.tech[i].frequencyDefault) { tech.tech[i].frequency = tech.tech[i].frequencyDefault } else { tech.tech[i].frequency = 1 @@ -1506,12 +1505,12 @@ const m = { }, { name: "standing wave harmonics", - description: "3 oscillating shields are permanently active
deflecting drains energy with no cool down
deflecting has 75% less recoil", //harm and + description: "3 oscillating shields are permanently active
deflecting drains energy with no cool down
deflecting has 50% less recoil", //harm and effect: () => { // m.fieldHarmReduction = 0.80; m.fieldBlockCD = 0; // m.fieldHarmReduction = 0.75; - m.blockingRecoil = 1 //4 is normal + m.blockingRecoil = 2 //4 is normal m.fieldRange = 175 m.fieldShieldingScale = Math.pow(0.5, (tech.harmonics - 3)) m.harmonicRadius = 1 //for smoothing function when player holds mouse (for harmonicAtomic) @@ -1548,7 +1547,11 @@ const m = { } m.pushMobs360(radius); } - m.harmonicShield = m.harmonic3Phase + if (tech.harmonics === 2) { + m.harmonicShield = m.harmonic3Phase + } else { + m.harmonicShield = m.harmonicAtomic + } m.hold = function() { if (m.isHolding) { m.drawHold(m.holdingTarget); @@ -1633,11 +1636,11 @@ const m = { m.drawFieldMeter() if (tech.isPerfectBrake) { //cap mob speed around player - const range = 160 + 140 * wave + 150 * m.energy + const range = 160 + 140 * wave + 200 * m.energy for (let i = 0; i < mob.length; i++) { const distance = Vector.magnitude(Vector.sub(m.pos, mob[i].position)) if (distance < range) { - const cap = mob[i].isShielded ? 8.5 : 4.5 + const cap = mob[i].isShielded ? 8 : 4 if (mob[i].speed > cap && Vector.dot(mob[i].velocity, Vector.sub(m.pos, mob[i].position)) > 0) { // if velocity is directed towards player Matter.Body.setVelocity(mob[i], Vector.mult(Vector.normalise(mob[i].velocity), cap)); //set velocity to cap, but keep the direction } diff --git a/js/spawn.js b/js/spawn.js index a4fd140..5580198 100644 --- a/js/spawn.js +++ b/js/spawn.js @@ -1194,10 +1194,12 @@ const spawn = { //teleport everything to center function toMe(who, where, range) { for (let i = 0, len = who.length; i < len; i++) { - const SUB = Vector.sub(who[i].position, where) - const DISTANCE = Vector.magnitude(SUB) - if (DISTANCE < range) { - Matter.Body.setPosition(who[i], where) + if (!who[i].isNotHoldable) { + const SUB = Vector.sub(who[i].position, where) + const DISTANCE = Vector.magnitude(SUB) + if (DISTANCE < range) { + Matter.Body.setPosition(who[i], where) + } } } } diff --git a/js/tech.js b/js/tech.js index af7fa03..c13b58a 100644 --- a/js/tech.js +++ b/js/tech.js @@ -165,7 +165,7 @@ if (tech.isLowEnergyDamage) dmg *= 1 + Math.max(0, 1 - m.energy) * 0.5 if (tech.isMaxEnergyTech) dmg *= 1.5 if (tech.isEnergyNoAmmo) dmg *= 1.6 - if (tech.isDamageForGuns) dmg *= 1 + 0.1 * b.inventory.length + if (tech.isDamageForGuns) dmg *= 1 + 0.12 * b.inventory.length if (tech.isLowHealthDmg) dmg *= 1 + 0.5 * Math.max(0, 1 - m.health) if (tech.isHarmDamage && m.lastHarmCycle + 600 > m.cycle) dmg *= 3; if (tech.isEnergyLoss) dmg *= 1.55; @@ -250,7 +250,7 @@ }, { name: "arsenal", - description: "increase damage by 10%
for each gun in your inventory", + description: "increase damage by 12%
for each gun in your inventory", maxCount: 1, count: 0, frequency: 2, @@ -2572,7 +2572,7 @@ }, { name: "Ψ(t) collapse", - description: "enter an alternate reality after you research
spawn 15 research", + description: "enter an alternate reality after you research
spawn 16 research", maxCount: 1, count: 0, frequency: 1, @@ -2583,7 +2583,7 @@ requires: "not quantum immortality, many-worlds, non-unitary", effect() { tech.isResearchReality = true; - for (let i = 0; i < 15; i++) powerUps.spawn(m.pos.x + Math.random() * 60, m.pos.y + Math.random() * 60, "research", false); + for (let i = 0; i < 16; i++) powerUps.spawn(m.pos.x + Math.random() * 60, m.pos.y + Math.random() * 60, "research", false); }, remove() { tech.isResearchReality = false; @@ -2712,25 +2712,6 @@ }, remove() {} }, - { - name: "WIMPs", - //harmful - description: "a harmful particle slowly chases you
spawn 2-6 research at the end of each level", - maxCount: 9, - count: 0, - frequency: 1, - frequencyDefault: 1, - allowed() { - return true - }, - requires: "", - effect: () => { - tech.wimpCount++ - }, - remove() { - tech.wimpCount = 0 - } - }, { name: "bubble fusion", description: "after destroying a mob's natural shield
spawn 1-2 heals, ammo, or research", @@ -5193,6 +5174,25 @@ tech.pilotForce = 0.00002 } }, + { + name: "WIMPs", + description: "a harmful particle slowly chases you
spawn 3-9 research at the end of each level", + isFieldTech: true, + maxCount: 9, + count: 0, + frequency: 1, + frequencyDefault: 1, + allowed() { + return m.fieldUpgrades[m.fieldMode].name === "wormhole" + }, + requires: "wormhole", + effect: () => { + tech.wimpCount++ + }, + remove() { + tech.wimpCount = 0 + } + }, { name: "cosmic string", description: "stun and do radioactive damage to mobs
if you tunnel through them with a wormhole", diff --git a/todo.txt b/todo.txt index e68e5ad..e0cec0b 100644 --- a/todo.txt +++ b/todo.txt @@ -1,58 +1,18 @@ ******************************************************** NEXT PATCH ******************************************************** -over all game difficulty scaling occurs faster - your damage will feel lower, and you will take more harm, - so you should probably play on a lower difficulty -tech: Higgs manism gives 50% reduced fire delay instead of harm reduction -tech: inertial frame is removed -tech: automatic is now a junk tech - -balance: - dead reckoning gives 36% damage when at rest (was 30%) - overcharge gives 10 more energy, but adds 10 junk tech - 1st ionization energy gives 6 energy per heal (was 5) - dormancy increases damage by 100% but lowers it by 33% if no recent kills (was +50%, -15%) - torpor decreases harm by 66% increases harm by 15% if no recent kills (was -50%, +10%) - Ψ(t) collapse spawns 3 more research, so it's at 15 - fragmentation gives 30% more nails for railgun - ammonium nitrate +25% (was 20%) - generalist gives 8 guns (was 6) - arsenal gives 10% per gun (was 14%) - rivet gun fires 25% faster, rivets are 15% larger - shotgun slug is 33% bigger - missile bot fires 10% more often - tinsellated flagella gives 40% speed increase (was 50%), base spore speed is 10% faster - beamSplitter has a 20% lower divergence - nano manufacturing tech is all buffed 15% - traversable geodesics gives 2 guns and ammo (was 1) - mines have 25% more nails, laser mines use 20% less energy sentry mines last 33% seconds longer - zoospore vector has an 11% chance to spawn (was 9%) - negentropy spawns a heal for every 33 missing health (was 50 health) - exciton-lattice gives 60% damage - thermocouple spawns 1-8 ice-IX (was 1-5) - WIMPs spawn 2-6 research (was 2-3) - quantum immortality reduces harm by 33% (was 23%) - commodities exchange gives 10 power ups (was 8) - super balls are 17% bigger (this means they do about 25% more damage) - exothermic process increases damage by (was 45%) - heat engine increases damage by 50% (was 40%) - replication gives 10% duplication chance (was 8%) - stimulated emission gives 22% duplication chance - futures exchange gives 4.7% duplication chance per cancel (was 4.3%) - needles are 10% slower and do 15% more damage - -bug fixes: - reduced tolerances text rewritten to clarify that it gives more ammo per ammo pack - hazards on horizontal flipped levels now correctly do damage - ship mode aims properly after you die - although it still doesn't reset - experiment mode selections are highlighted better +tech: WIMPs now requires wormhole + gives 3-9 research now (was 2-3) +tech: eddy current brake - is 15% larger and caps mob speeds at 20% slower +bug fixes ******************************************************** BUGS ******************************************************** +sharing 1 stack of spherical harmonics doesn't activate visually +https://landgreen.github.io/sidescroller/index.html?&tech0=crystallizer&tech1=thermoelectric%20effect&tech2=thermoelectric%20effect&tech3=spherical%20harmonics&tech4=expansion&tech5=triple%20point&tech6=triple%20point&tech7=flux%20pinning&field=standing%20wave%20harmonics&difficulty=4&level=0&noPower=0 + a couple times people have reported the final boss dropping extra bodies on death figure out how to undo ship mode @@ -75,8 +35,36 @@ is there a way to check if the player is stuck inside the map or block (intermittent, but almost every time) bug - capping the fps causes random slow downs, that can be fixed with pause +******************************************************** LEVELS ******************************************************** + +labs - procedural generation + science theme, with a cool technology showcased + layout: + 6 total rooms + 3x2, 2x3, 4 2, 2 4 + 1500px, 3000px per room + room types + entrance - no mobs, starting power ups` + exit - plenty of mobs + up, down - 2 paired rooms - boost, elevator, portal + boss - standard random boss spawns + empty - just a dead end - possible duplication boss spawn location + button - opens door to exit room + room ideas - + gravity room + portal room + endlessly falling blocks down a slide, that the player has to climb up + portal + rotor + falling blocks = perpetual motion + laser room + slime radiation room + ******************************************************** TODO ******************************************************** +standing wave harmonics - can block too often on the same mob if you push it into a corner + add a small cooldown + return to normal knock back // 4 +let standing wave harmonics get tech decorrelation + * inductive coupling - sucks without catabolism, too much delayed gratification. should probably be bundled with transceiver chip tech: cloaking field - decrease/increase cooldown on sneak attack? @@ -160,21 +148,6 @@ tech plasma field - plasma field becomes an aoe damage field with the same radiu 200% more energy drain, 100% more damage draw a square (or two) that rapidly spins -new level: procedural generation - several small rooms are linked by portals - the portals have a randomized pattern - the rooms can be set out in a grid and linked by physical doors,tunnels,wells - choose bosses that can move though walls, so it can track you while you portal - the map shuffles it's pattern when the player get to a button - shuffle portals or shuffle the physical layout of rooms - and then have the player go back through to get to the end? - gravity room - portal room - endlessly falling blocks down a slide, that the player has to climb - portal + rotor + falling blocks = perpetual motion - laser room - slime radiation room - look into improving mouse lag with pointer lock? https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API https://www.vsynctester.com/game.html @@ -397,6 +370,7 @@ possible names for tech counterfactual - something false axion - maybe a 3rd dark matter type tech Pigeonhole principle - if there are several things that are matched up + regression to the mean