quenching
after beating the final boss the difficulty settings automatically opens quenching - double the damage and double the max health given aligned the effects more consistently with defense and difficulty based heal reduction prevented possible death by quenching fixed super balls bug
This commit is contained in:
@@ -4028,7 +4028,7 @@ const b = {
|
||||
bullet[me] = Bodies.polygon(where.x, where.y, 12, radius, b.fireAttributes(dir, false));
|
||||
Composite.add(engine.world, bullet[me]); //add bullet to world
|
||||
Matter.Body.setVelocity(bullet[me], velocity);
|
||||
bullet[me].calcDensity = function () { 0.0007 + 0.00055 * tech.isSuperHarm + 0.0004 * tech.isBulletTeleport }
|
||||
bullet[me].calcDensity = function () { return 0.0007 + 0.00055 * tech.isSuperHarm + 0.0004 * tech.isBulletTeleport }
|
||||
Matter.Body.setDensity(bullet[me], bullet[me].calcDensity());
|
||||
bullet[me].endCycle = simulation.cycle + Math.floor(270 + 90 * Math.random());
|
||||
bullet[me].minDmgSpeed = 0;
|
||||
|
||||
@@ -45,8 +45,8 @@ const level = {
|
||||
|
||||
|
||||
// for (let i = 0; i < 1; i++) tech.giveTech("tungsten carbide")
|
||||
// for (let i = 0; i < 1; ++i) tech.giveTech("induction furnace")
|
||||
// for (let i = 0; i < 1; ++i) tech.giveTech("autonomous defense")
|
||||
// for (let i = 0; i < 1; ++i) tech.giveTech("quenching")
|
||||
// for (let i = 0; i < 3; ++i) tech.giveTech("adiabatic healing")
|
||||
// for (let i = 0; i < 3; i++) powerUps.directSpawn(450, -50, "tech");
|
||||
// for (let i = 0; i < 10; i++) powerUps.directSpawn(1750, -500, "research");
|
||||
// for (let i = 0; i < 100; i++) powerUps.directSpawn(1750, -500, "coupling");
|
||||
@@ -72,7 +72,7 @@ const level = {
|
||||
// simulation.setZoom();
|
||||
// for (let i = 0; i < 2; ++i) powerUps.directSpawn(m.pos.x + 50 * Math.random(), m.pos.y + 50 * Math.random(), "tech");
|
||||
// for (let i = 0; i < 2; ++i) powerUps.directSpawn(m.pos.x + 450, m.pos.y + 50 * Math.random(), "boost");
|
||||
// for (let i = 0; i < 20; ++i) powerUps.directSpawn(m.pos.x + 50 * Math.random(), m.pos.y + 50 * Math.random(), "ammo");
|
||||
// for (let i = 0; i < 20; ++i) powerUps.directSpawn(m.pos.x + 50 * Math.random(), m.pos.y + 50 * Math.random(), "heal");
|
||||
// for (let i = 0; i < 2; i++) powerUps.spawn(player.position.x + Math.random() * 50, player.position.y - Math.random() * 50, "field", false);
|
||||
//lore testing
|
||||
// localSettings.isTrainingNotAttempted = true
|
||||
|
||||
@@ -478,7 +478,7 @@ const m = {
|
||||
Engine.clear(engine);
|
||||
simulation.splashReturn();
|
||||
//if you die after clearing fewer than 4 levels the difficulty settings automatically opens
|
||||
if (level.levelsCleared < 4 && !simulation.isTraining && !simulation.isCheating) document.getElementById("settings-details").open = true;
|
||||
if ((level.levelsCleared < 4 || level.levelsCleared > 12) && !simulation.isTraining && !simulation.isCheating) document.getElementById("settings-details").open = true;
|
||||
}, 5000);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -537,12 +537,18 @@ const powerUps = {
|
||||
powerUps.animatePowerUpGrab('rgba(0, 238, 187,0.25)')
|
||||
let heal = (this.size / 40 / (simulation.healScale ** 0.25)) ** 2 //simulation.healScale is undone here because heal scale is already properly affected on m.addHealth()
|
||||
if (heal > 0) {
|
||||
const overHeal = m.health + heal * simulation.healScale - m.maxHealth //used with tech.isOverHeal
|
||||
let overHeal = m.health + heal * simulation.healScale - m.maxHealth //used with tech.isOverHeal
|
||||
const healOutput = Math.min(m.maxHealth - m.health, heal) * simulation.healScale
|
||||
m.addHealth(heal);
|
||||
if (healOutput > 0) simulation.makeTextLog(`<span class='color-var'>m</span>.health <span class='color-symbol'>+=</span> ${(healOutput).toFixed(3)}`) // <br>${m.health.toFixed(3)}
|
||||
if (tech.isOverHeal && overHeal > 0) { //tech quenching
|
||||
overHeal *= 2 //double the over heal converted to max health
|
||||
//make sure overHeal doesn't kill player
|
||||
if (m.health - overHeal * m.defense() < 0) overHeal = m.health - 0.01
|
||||
tech.extraMaxHealth += overHeal //increase max health
|
||||
m.setMaxHealth();
|
||||
m.damage(overHeal);
|
||||
overHeal *= m.defense() // account for defense after m.damage() so the text log is accurate
|
||||
simulation.makeTextLog(`<span class='color-var'>m</span>.health <span class='color-symbol'>-=</span> ${(overHeal).toFixed(3)}`) // <br>${m.health.toFixed(3)}
|
||||
simulation.drawList.push({ //add dmg to draw queue
|
||||
x: m.pos.x,
|
||||
@@ -551,8 +557,6 @@ const powerUps = {
|
||||
color: simulation.mobDmgColor,
|
||||
time: simulation.drawTime
|
||||
});
|
||||
tech.extraMaxHealth += overHeal * Math.sqrt(simulation.healScale) //increase max health
|
||||
m.setMaxHealth();
|
||||
} else if (overHeal > 0.13) { //if leftover heals spawn a new spammer heal power up
|
||||
requestAnimationFrame(() => {
|
||||
powerUps.directSpawn(this.position.x, this.position.y, "heal", true, null, overHeal * 40 * (simulation.healScale ** 0.25))// directSpawn(x, y, target, moving = true, mode = null, size = powerUps[target].size()) {
|
||||
|
||||
@@ -3169,7 +3169,7 @@ const tech = {
|
||||
{
|
||||
name: "quenching",
|
||||
descriptionFunction() {
|
||||
return `after over healing from ${powerUps.orb.heal()}<br>gain max <strong class='color-h'>health</strong> and lose current <strong class='color-h'>health</strong>`
|
||||
return `${powerUps.orb.heal()} over healing results in <strong>200%</strong> <strong class='color-h'>health</strong> loss<br> and <strong>200%</strong> max <strong class='color-h'>health</strong> increase`
|
||||
},
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
|
||||
Reference in New Issue
Block a user