symbiosis

metamaterial cloaking field 300% -> 333% damage
no-cloning theorem 43% -> 50% duplication
symbiosis lose 2% -> 1% max health
This commit is contained in:
landgreen
2021-09-26 19:11:56 -07:00
parent 4df06fcfc6
commit e39bc7c0fc
7 changed files with 88 additions and 40 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -109,8 +109,8 @@ const level = {
simulation.makeTextLog(`tech.isFlipFlopOn <span class='color-symbol'>=</span> true`); simulation.makeTextLog(`tech.isFlipFlopOn <span class='color-symbol'>=</span> true`);
} }
if (tech.isSpawnExitTech) { 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(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(player.position.x + 90 * (Math.random() - 0.5), player.position.y + 90 * (Math.random() - 0.5), "tech", false); //start
} }
}, },
custom() {}, custom() {},

View File

@@ -1140,14 +1140,31 @@ const mobs = {
bullet[bullet.length - 1].endCycle = simulation.cycle + 840 //14 seconds bullet[bullet.length - 1].endCycle = simulation.cycle + 840 //14 seconds
this.leaveBody = false; // no body since it turned into the bot 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) { if (tech.removeMaxHealthOnKill) {
const amount = 0.002
if (tech.isEnergyHealth) { if (tech.isEnergyHealth) {
if (m.maxEnergy > tech.removeMaxHealthOnKill) { if (m.maxEnergy > amount) {
tech.healMaxEnergyBonus -= tech.removeMaxHealthOnKill tech.healMaxEnergyBonus -= amount
m.setMaxEnergy(); m.setMaxEnergy();
} }
} else if (m.maxHealth > tech.removeMaxHealthOnKill) { } else if (m.maxHealth > amount) {
tech.extraMaxHealth -= tech.removeMaxHealthOnKill //decrease max health tech.extraMaxHealth -= amount //decrease max health
m.setMaxHealth(); m.setMaxHealth();
} }
} }

View File

@@ -2219,9 +2219,9 @@ const m = {
for (let i = 0; i < inPlayer.length; i++) { for (let i = 0; i < inPlayer.length; i++) {
if (m.energy > 0) { if (m.energy > 0) {
if (inPlayer[i].shield) { //shields drain player energy if (inPlayer[i].shield) { //shields drain player energy
m.energy -= 0.016; m.energy -= 0.012;
} else { } else {
m.energy -= 0.006; m.energy -= 0.005;
} }
} }
} }

View File

@@ -726,7 +726,6 @@ const powerUps = {
// powerUps.spawn(m.pos.x, m.pos.y, "tech"); // powerUps.spawn(m.pos.x, m.pos.y, "tech");
powerUps.endDraft("tech"); powerUps.endDraft("tech");
} }
} }
} }
}, },

View File

@@ -194,7 +194,7 @@
return dmg * tech.slowFire * tech.aimDamage return dmg * tech.slowFire * tech.aimDamage
}, },
duplicationChance() { 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() { maxDuplicationEvent() {
if (tech.is100Duplicate && tech.duplicationChance() > 0.99) { if (tech.is100Duplicate && tech.duplicationChance() > 0.99) {
@@ -6042,18 +6042,18 @@
}, },
{ {
name: "no-cloning theorem", name: "no-cloning theorem",
description: `<strong>42%</strong> chance to <strong class='color-dup'>duplicate</strong> spawned <strong>power ups</strong><br>if you <strong>kill</strong> a <strong>mob</strong> lose <strong>1%</strong> <strong class='color-dup'>duplication</strong> chance`, description: `<strong>50%</strong> chance to <strong class='color-dup'>duplicate</strong> spawned <strong>power ups</strong><br>after a <strong>mob</strong> <strong>dies</strong>, lose <strong>1%</strong> <strong class='color-dup'>duplication</strong> chance`,
isFieldTech: true, isFieldTech: true,
maxCount: 1, maxCount: 1,
count: 0, count: 0,
frequency: 2, frequency: 2,
frequencyDefault: 2, frequencyDefault: 2,
allowed() { 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() { effect() {
tech.cloakDuplication = 0.42 tech.cloakDuplication = 0.5
powerUps.setDupChance(); //needed after adjusting duplication chance powerUps.setDupChance(); //needed after adjusting duplication chance
}, },
@@ -6064,27 +6064,67 @@
}, },
{ {
name: "symbiosis", name: "symbiosis",
description: "if you <strong>kill</strong> a <strong>mob</strong> lose <strong>2%</strong> max <strong class='color-h'>health</strong><br>at the <strong>start</strong> of each level spawn <strong>2</strong> <strong class='color-m'>tech</strong>", description: "after a <strong>mob</strong> <strong>dies</strong>, lose <strong>1</strong> max <strong class='color-h'>health</strong><br><strong>bosses</strong> spawn <strong>2</strong> extra <strong class='color-m'>tech</strong> after they <strong>die</strong>",
isFieldTech: true, isFieldTech: true,
maxCount: 1, maxCount: 1,
count: 0, count: 0,
frequency: 2, frequency: 2,
frequencyDefault: 2, frequencyDefault: 2,
allowed() { 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() { effect() {
tech.removeMaxHealthOnKill = 0.02 tech.isAddRemoveMaxHealth = true
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() { remove() {
tech.removeMaxHealthOnKill = 0 tech.isAddRemoveMaxHealth = false
tech.isSpawnExitTech = false
} }
}, },
// {
// name: "symbiosis",
// description: "after a <strong>mob</strong> <strong>dies</strong>, lose <strong>0.5</strong> max <strong class='color-h'>health</strong><br>after picking up <strong class='color-m'>tech</strong> gain <strong>10</strong> max <strong class='color-h'>health</strong>",
// 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 <strong>mob</strong> <strong>dies</strong>, lose <strong>1%</strong> max <strong class='color-h'>health</strong><br>at the <strong>end</strong> of each level spawn <strong>2</strong> <strong class='color-m'>tech</strong>",
// 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", name: "boson composite",
description: "<strong>intangible</strong> to <strong class='color-block'>blocks</strong> and mobs while <strong class='color-cloaked'>cloaked</strong><br>passing through <strong>mobs</strong> drains your <strong class='color-f'>energy</strong>", description: "<strong>intangible</strong> to <strong class='color-block'>blocks</strong> and mobs while <strong class='color-cloaked'>cloaked</strong><br>passing through <strong>mobs</strong> drains your <strong class='color-f'>energy</strong>",
@@ -6128,7 +6168,7 @@
}, },
{ {
name: "ambush", name: "ambush",
description: "metamaterial cloaking field <strong class='color-d'>damage</strong> effect<br>is increased from <span style = 'text-decoration: line-through;'>300%</span> to <strong>600%</strong>", description: "metamaterial cloaking field <strong class='color-d'>damage</strong> effect<br>is increased from <span style = 'text-decoration: line-through;'>333%</span> to <strong>666%</strong>",
isFieldTech: true, isFieldTech: true,
maxCount: 1, maxCount: 1,
count: 0, count: 0,
@@ -6139,10 +6179,10 @@
}, },
requires: "metamaterial cloaking", requires: "metamaterial cloaking",
effect() { effect() {
tech.sneakAttackDmg = 7 tech.sneakAttackDmg = 7.66
}, },
remove() { remove() {
tech.sneakAttackDmg = 4 tech.sneakAttackDmg = 4.33
} }
}, },
{ {
@@ -6509,7 +6549,7 @@
}, },
{ {
name: "-symbiosis-", name: "-symbiosis-",
description: "<strong style='color: #f55;'>experiment:</strong> if you <strong>kill</strong> a <strong>mob</strong><br>lose <strong>0.2%</strong> max <strong class='color-h'>health</strong>", description: "<strong style='color: #f55;'>experiment:</strong> if you <strong>kill</strong> a <strong>mob</strong><br>lose <strong>0.2</strong> max <strong class='color-h'>health</strong>",
maxCount: 1, maxCount: 1,
count: 0, count: 0,
frequency: 0, frequency: 0,
@@ -8349,6 +8389,7 @@
ammoCap: null, ammoCap: null,
isHarpoonPowerUp: null, isHarpoonPowerUp: null,
harpoonDensity: null, harpoonDensity: null,
isAddRemoveMaxHealth: null,
removeMaxHealthOnKill: null, removeMaxHealthOnKill: null,
isSpawnExitTech: null, isSpawnExitTech: null,
cloakDuplication: null cloakDuplication: null

View File

@@ -1,17 +1,8 @@
******************************************************** NEXT PATCH ************************************************** ******************************************************** NEXT PATCH **************************************************
no cloning theorem - 42% duplication, but lose 1% dup if you kill a mob metamaterial cloaking field 300% -> 333% damage
requires cloaking or time dilation field no-cloning theorem 43% -> 50% duplication
tech: symbiosis - if you kill a mob lose 2% max health, but gain 2 tech at the end of every level. symbiosis lose 2% -> 1% max health
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
******************************************************** TODO ******************************************************** ******************************************************** TODO ********************************************************
@@ -52,7 +43,7 @@ harpoon tech
can't have extended string? can't have extended string?
grappling hook? grappling hook?
tracking so good harpoon can hit a target, circle around and hit it again 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. "Interstellar Disturbance": Cosmic String applies to mobs who cross the wormhole's path, even after initial wormholing, but at reduced damage and stun time.