From e39bc7c0fc971c40c6a1540159aa940bd26c5ac0 Mon Sep 17 00:00:00 2001 From: landgreen Date: Sun, 26 Sep 2021 19:11:56 -0700 Subject: [PATCH] symbiosis metamaterial cloaking field 300% -> 333% damage no-cloning theorem 43% -> 50% duplication symbiosis lose 2% -> 1% max health --- .DS_Store | Bin 6148 -> 6148 bytes js/level.js | 4 +-- js/mob.js | 25 +++++++++++++--- js/player.js | 4 +-- js/powerup.js | 1 - js/tech.js | 77 ++++++++++++++++++++++++++++++++++++++------------ todo.txt | 17 +++-------- 7 files changed, 88 insertions(+), 40 deletions(-) diff --git a/.DS_Store b/.DS_Store index 17d0fc3cc246fb63deca17631b5655ff722cf9e0..65d7ea801faf2509a32c39c063621414f24c9165 100644 GIT binary patch delta 21 ccmZoMXffEJ#muC}K3Rv^k8#1~YUWN6070b%^Z)<= delta 21 ccmZoMXffEJ#mpqdHd%++kMYCiYUWN607BgcHvj+t diff --git a/js/level.js b/js/level.js index 2ab78fb..6cd0819 100644 --- a/js/level.js +++ b/js/level.js @@ -109,8 +109,8 @@ const level = { simulation.makeTextLog(`tech.isFlipFlopOn = true`); } if (tech.isSpawnExitTech) { - // for (let i = 0; i < 2; i++) powerUps.spawn(level.exit.x + 10 * (Math.random() - 0.5), level.exit.y - 100 + 10 * (Math.random() - 0.5), "tech", false) //exit - for (let i = 0; i < 2; i++) powerUps.spawn(player.position.x + 90 * (Math.random() - 0.5), player.position.y + 90 * (Math.random() - 0.5), "tech", false); //start + for (let i = 0; i < 2; i++) powerUps.spawn(level.exit.x + 10 * (Math.random() - 0.5), level.exit.y - 100 + 10 * (Math.random() - 0.5), "tech", false) //exit + // for (let i = 0; i < 2; i++) powerUps.spawn(player.position.x + 90 * (Math.random() - 0.5), player.position.y + 90 * (Math.random() - 0.5), "tech", false); //start } }, custom() {}, diff --git a/js/mob.js b/js/mob.js index 5bf7caf..0b36c24 100644 --- a/js/mob.js +++ b/js/mob.js @@ -1140,14 +1140,31 @@ const mobs = { bullet[bullet.length - 1].endCycle = simulation.cycle + 840 //14 seconds this.leaveBody = false; // no body since it turned into the bot } + if (tech.isAddRemoveMaxHealth) { + if (this.isBoss) { + for (let i = 0; i < 2; i++) powerUps.spawn(this.position.x, this.position.y, "tech", false) //exit + } else { + const amount = 0.01 + if (tech.isEnergyHealth) { + if (m.maxEnergy > amount) { + tech.healMaxEnergyBonus -= amount + m.setMaxEnergy(); + } + } else if (m.maxHealth > amount) { + tech.extraMaxHealth -= amount //decrease max health + m.setMaxHealth(); + } + } + } if (tech.removeMaxHealthOnKill) { + const amount = 0.002 if (tech.isEnergyHealth) { - if (m.maxEnergy > tech.removeMaxHealthOnKill) { - tech.healMaxEnergyBonus -= tech.removeMaxHealthOnKill + if (m.maxEnergy > amount) { + tech.healMaxEnergyBonus -= amount m.setMaxEnergy(); } - } else if (m.maxHealth > tech.removeMaxHealthOnKill) { - tech.extraMaxHealth -= tech.removeMaxHealthOnKill //decrease max health + } else if (m.maxHealth > amount) { + tech.extraMaxHealth -= amount //decrease max health m.setMaxHealth(); } } diff --git a/js/player.js b/js/player.js index b6b7d6a..1a18591 100644 --- a/js/player.js +++ b/js/player.js @@ -2219,9 +2219,9 @@ const m = { for (let i = 0; i < inPlayer.length; i++) { if (m.energy > 0) { if (inPlayer[i].shield) { //shields drain player energy - m.energy -= 0.016; + m.energy -= 0.012; } else { - m.energy -= 0.006; + m.energy -= 0.005; } } } diff --git a/js/powerup.js b/js/powerup.js index e634c4c..524d383 100644 --- a/js/powerup.js +++ b/js/powerup.js @@ -726,7 +726,6 @@ const powerUps = { // powerUps.spawn(m.pos.x, m.pos.y, "tech"); powerUps.endDraft("tech"); } - } } }, diff --git a/js/tech.js b/js/tech.js index edec9db..ef87681 100644 --- a/js/tech.js +++ b/js/tech.js @@ -194,7 +194,7 @@ return dmg * tech.slowFire * tech.aimDamage }, duplicationChance() { - return (tech.isPowerUpsVanish ? 0.13 : 0) + (tech.isStimulatedEmission ? 0.17 : 0) + tech.cancelCount * 0.045 + tech.duplicateChance + m.duplicateChance + tech.wormDuplicate + tech.cloakDuplication + (tech.isAnthropicTech && tech.isDeathAvoidedThisLevel ? 0.5 : 0) + return Math.max(0, (tech.isPowerUpsVanish ? 0.13 : 0) + (tech.isStimulatedEmission ? 0.17 : 0) + tech.cancelCount * 0.045 + tech.duplicateChance + m.duplicateChance + tech.wormDuplicate + tech.cloakDuplication + (tech.isAnthropicTech && tech.isDeathAvoidedThisLevel ? 0.5 : 0)) }, maxDuplicationEvent() { if (tech.is100Duplicate && tech.duplicationChance() > 0.99) { @@ -6042,18 +6042,18 @@ }, { name: "no-cloning theorem", - description: `42% chance to duplicate spawned power ups
if you kill a mob lose 1% duplication chance`, + description: `50% chance to duplicate spawned power ups
after a mob dies, lose 1% duplication chance`, isFieldTech: true, maxCount: 1, count: 0, frequency: 2, frequencyDefault: 2, allowed() { - return (m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking") && tech.duplicationChance() < 1 + return (m.fieldUpgrades[m.fieldMode].name === "wormhole" || m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking") && tech.duplicationChance() < 1 }, - requires: "metamaterial cloaking, below 100% duplication chance", + requires: "cloaking, wormhole or time dilation and below 100% duplication chance", effect() { - tech.cloakDuplication = 0.42 + tech.cloakDuplication = 0.5 powerUps.setDupChance(); //needed after adjusting duplication chance }, @@ -6064,27 +6064,67 @@ }, { name: "symbiosis", - description: "if you kill a mob lose 2% max health
at the start of each level spawn 2 tech", + description: "after a mob dies, lose 1 max health
bosses spawn 2 extra tech after they die", isFieldTech: true, maxCount: 1, count: 0, frequency: 2, frequencyDefault: 2, allowed() { - return (m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking") && !tech.removeMaxHealthOnKill + return (m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking") }, - requires: "metamaterial cloaking, not -symbiosis-", + requires: "metamaterial cloaking", effect() { - tech.removeMaxHealthOnKill = 0.02 - tech.isSpawnExitTech = true - // for (let i = 0; i < 2; i++) powerUps.spawn(player.position.x + 90 * (Math.random() - 0.5), player.position.y + 90 * (Math.random() - 0.5), "tech", false); //start - // for (let i = 0; i < 2; i++) powerUps.spawn(level.exit.x + 10 * (Math.random() - 0.5), level.exit.y - 100 + 10 * (Math.random() - 0.5), "tech", false) //exit + tech.isAddRemoveMaxHealth = true }, remove() { - tech.removeMaxHealthOnKill = 0 - tech.isSpawnExitTech = false + tech.isAddRemoveMaxHealth = false } }, + // { + // name: "symbiosis", + // description: "after a mob dies, lose 0.5 max health
after picking up tech gain 10 max health", + // isFieldTech: true, + // maxCount: 1, + // count: 0, + // frequency: 2, + // frequencyDefault: 2, + // allowed() { + // return (m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking") + // }, + // requires: "metamaterial cloaking", + // effect() { + // tech.isAddRemoveMaxHealth = true + // tech.extraMaxHealth += 0.1 //increase max health + // m.setMaxHealth(); + // }, + // remove() { + // tech.isAddRemoveMaxHealth = false + // } + // }, + // { + // name: "symbiosis", + // description: "if a mob dies, lose 1% max health
at the end of each level spawn 2 tech", + // isFieldTech: true, + // maxCount: 1, + // count: 0, + // frequency: 2, + // frequencyDefault: 2, + // allowed() { + // return (m.fieldUpgrades[m.fieldMode].name === "time dilation" || m.fieldUpgrades[m.fieldMode].name === "metamaterial cloaking") && !tech.removeMaxHealthOnKill + // }, + // requires: "metamaterial cloaking, not -symbiosis-", + // effect() { + // tech.removeMaxHealthOnKill = 0.01 + // tech.isSpawnExitTech = true + // // for (let i = 0; i < 2; i++) powerUps.spawn(player.position.x + 90 * (Math.random() - 0.5), player.position.y + 90 * (Math.random() - 0.5), "tech", false); //start + // for (let i = 0; i < 2; i++) powerUps.spawn(level.exit.x + 10 * (Math.random() - 0.5), level.exit.y - 100 + 10 * (Math.random() - 0.5), "tech", false) //exit + // }, + // remove() { + // tech.removeMaxHealthOnKill = 0 + // tech.isSpawnExitTech = false + // } + // }, { name: "boson composite", description: "intangible to blocks and mobs while cloaked
passing through mobs drains your energy", @@ -6128,7 +6168,7 @@ }, { name: "ambush", - description: "metamaterial cloaking field damage effect
is increased from 300% to 600%", + description: "metamaterial cloaking field damage effect
is increased from 333% to 666%", isFieldTech: true, maxCount: 1, count: 0, @@ -6139,10 +6179,10 @@ }, requires: "metamaterial cloaking", effect() { - tech.sneakAttackDmg = 7 + tech.sneakAttackDmg = 7.66 }, remove() { - tech.sneakAttackDmg = 4 + tech.sneakAttackDmg = 4.33 } }, { @@ -6509,7 +6549,7 @@ }, { name: "-symbiosis-", - description: "experiment: if you kill a mob
lose 0.2% max health", + description: "experiment: if you kill a mob
lose 0.2 max health", maxCount: 1, count: 0, frequency: 0, @@ -8349,6 +8389,7 @@ ammoCap: null, isHarpoonPowerUp: null, harpoonDensity: null, + isAddRemoveMaxHealth: null, removeMaxHealthOnKill: null, isSpawnExitTech: null, cloakDuplication: null diff --git a/todo.txt b/todo.txt index f4afbe0..651bf20 100644 --- a/todo.txt +++ b/todo.txt @@ -1,17 +1,8 @@ ******************************************************** NEXT PATCH ************************************************** -no cloning theorem - 42% duplication, but lose 1% dup if you kill a mob - requires cloaking or time dilation field -tech: symbiosis - if you kill a mob lose 2% max health, but gain 2 tech at the end of every level. - requires cloaking or time dilation field - -JUNK tech: all-stars - make mobs look like stars -JUNK tech: mouth - make mobs look like they have a mouth - -the nonCollideBosses have been made 10% harder to kill - these are the types of bosses that spawn from apomixis on 100% duplication - -7+ sided mobs may slice in two when they die +metamaterial cloaking field 300% -> 333% damage +no-cloning theorem 43% -> 50% duplication +symbiosis lose 2% -> 1% max health ******************************************************** TODO ******************************************************** @@ -52,7 +43,7 @@ harpoon tech can't have extended string? grappling hook? tracking so good harpoon can hit a target, circle around and hit it again - doesn't seem to be good physics + doesn't seem to be good physics, the harpoon hits walls and doesn't get room to build up speed "Interstellar Disturbance": Cosmic String applies to mobs who cross the wormhole's path, even after initial wormholing, but at reduced damage and stun time.