instant tech

adjusted text and math for the fire rate system to use the new "x" syntax
tech search is no longer case sensitive

Zectron 1.9->2x damage, -25% -> -5 energy
exothermic process -20% -> -5 energy

instant/unRemovable tech has a unique icon and no longer shows up in the tech list
  marginal utility - no longer spawns ammo
  heuristics - no longer spawn a gun, 1.2->1.3 fire rate
  open-source - gives 1 extra bot option and 3x bot tech frequency
  robotics - now just spawns 2 bots
  induction brake - doesn't spawn heals, but lasts 15->17 seconds
  accretion - doesn't spawn heals, but gets 3% duplication
  mass production - doesn't spawn power ups, but gets 3% duplication
  Ψ(t) collapse - doesn't spawn research, spawns 5 research from bosses
  decoherence - doesn't spawn research, spawns 2 research from bosses
  fine-structure constant - doesn't spawn coupling, spawn 9 coupling from bosses
  Bayesian statistics - 1.03->1.05x damage, doesn't spawn research
  Born rule code rewritten, but it should have a similar effect as before
  triple point - 1.5->5 second freeze, but no coupling spawn
  geodesics - no longer spawns ammo and guns, but gives 1.5x damage
  ideal gas law - doesn't remove ammo, 12->6x foam ammo per ammo power up
This commit is contained in:
landgreen
2024-04-08 19:44:08 -07:00
parent fde3a58efb
commit 6c3d97a68c
12 changed files with 645 additions and 628 deletions

View File

@@ -254,12 +254,12 @@ const spawn = {
//aoe damage to player
if (m.immuneCycle < m.cycle && Vector.magnitude(Vector.sub(player.position, this.position)) < this.radius) {
const DRAIN = tech.isRadioactiveResistance ? 0.05 * 0.25 : 0.05
const DRAIN = tech.isRadioactiveResistance ? 0.05 * 0.2 : 0.05
if (m.energy > DRAIN) {
if (m.immuneCycle < m.cycle) m.energy -= DRAIN
} else {
m.energy = 0;
m.damage((tech.isRadioactiveResistance ? 0.005 * 0.25 : 0.005) * simulation.dmgScale)
m.damage((tech.isRadioactiveResistance ? 0.005 * 0.2 : 0.005) * simulation.dmgScale)
simulation.drawList.push({ //add dmg to draw queue
x: this.position.x,
y: this.position.y,
@@ -2089,8 +2089,8 @@ const spawn = {
this.death();
//hit player
if (Vector.magnitude(Vector.sub(this.position, player.position)) < this.explodeRange && m.immuneCycle < m.cycle) {
m.damage(0.01 * simulation.dmgScale * (tech.isRadioactiveResistance ? 0.25 : 1));
m.energy -= 0.1 * (tech.isRadioactiveResistance ? 0.25 : 1)
m.damage(0.01 * simulation.dmgScale * (tech.isRadioactiveResistance ? 0.2 : 1));
m.energy -= 0.1 * (tech.isRadioactiveResistance ? 0.2 : 1)
if (m.energy < 0) m.energy = 0
}
const range = this.explodeRange + 50 //mines get a slightly larger range to explode
@@ -5060,8 +5060,8 @@ const spawn = {
this.death();
//hit player
if (Vector.magnitude(Vector.sub(this.position, player.position)) < this.explodeRange && m.immuneCycle < m.cycle) {
m.damage(0.02 * simulation.dmgScale * (tech.isRadioactiveResistance ? 0.25 : 1));
m.energy -= 0.2 * (tech.isRadioactiveResistance ? 0.25 : 1)
m.damage(0.02 * simulation.dmgScale * (tech.isRadioactiveResistance ? 0.2 : 1));
m.energy -= 0.2 * (tech.isRadioactiveResistance ? 0.2 : 1)
if (m.energy < 0) m.energy = 0
}
// mob[i].isInvulnerable = false //make mineBoss not invulnerable ?