switchWorlds

reworked m.switchWorlds() (used in many-worlds and similar effects)
  no longer has extra bot build up
  effects that carry over into next world:
    your total tech count
    effects of non-removeable tech, like determinism
mass production research ramps up by 5->4 each time
bot fabrications cost ramp is increased to (+1 per 4)-->(+1 per 3)
lowered minimum threshold for making small heals from over healing to 13->20 health
snakeBoss invulnerable phase is 5->4 seconds long

time dilation disables level based lasers
adjusted laser sensor paths on substructure level

move splash screen buttons to bottom right
added a start button
details menus in splash screen now have individual widths instead of sharing with each other

bugs
  non-renewables change color for ammo power ups on current level
This commit is contained in:
landgreen
2024-11-25 20:05:56 -08:00
parent 1fde74d65a
commit f1a6713f68
13 changed files with 535 additions and 291 deletions

View File

@@ -624,7 +624,7 @@ const b = {
clusterExplode(where, size) { //can occur after grenades detonate
const cycle = () => {
if (m.alive) {
if (simulation.paused || m.isBodiesAsleep) {
if (simulation.paused || m.isTimeDilated) {
requestAnimationFrame(cycle)
} else {
count++
@@ -643,7 +643,7 @@ const b = {
const color = `hsla(${360 * Math.random()},100%,66%,0.6)`
const cycle = () => {
if (m.alive) {
if (simulation.paused || m.isBodiesAsleep) {
if (simulation.paused || m.isTimeDilated) {
requestAnimationFrame(cycle)
} else {
count++
@@ -668,7 +668,7 @@ const b = {
const range = size * Math.sqrt(b.explosionRange())
const cycle = () => {
if (m.alive) {
if (simulation.paused || m.isBodiesAsleep) {
if (simulation.paused || m.isTimeDilated) {
requestAnimationFrame(cycle)
} else {
if (count < 30 && m.alive) requestAnimationFrame(cycle);
@@ -4505,14 +4505,15 @@ const b = {
}
},
zeroBotCount() { //remove all bots
tech.dynamoBotCount = 0
tech.laserBotCount = 0
tech.nailBotCount = 0
tech.foamBotCount = 0
tech.soundBotCount = 0
tech.boomBotCount = 0
tech.orbitBotCount = 0
tech.missileBotCount = 0
tech.dynamoBotCount = 0;
tech.nailBotCount = 0;
tech.laserBotCount = 0;
tech.orbitBotCount = 0;
tech.foamBotCount = 0;
tech.soundBotCount = 0;
tech.boomBotCount = 0;
tech.plasmaBotCount = 0;
tech.missileBotCount = 0;
},
respawnBots() {
for (let i = 0; i < tech.dynamoBotCount; i++) b.dynamoBot({
@@ -5032,7 +5033,7 @@ const b = {
} else { //fire mode: quickly fire at targets and doesn't follow player
this.fire()
}
if (!m.isBodiesAsleep) { //update current waves
if (!m.isTimeDilated) { //update current waves
ctx.strokeStyle = "rgba(0,0,0,0.6)" //"000";
ctx.lineWidth = 2 * tech.wavePacketDamage
ctx.beginPath();
@@ -5713,7 +5714,7 @@ const b = {
b.needle()
function cycle() {
if (simulation.paused || m.isBodiesAsleep) {
if (simulation.paused || m.isTimeDilated) {
requestAnimationFrame(cycle)
} else {
count++
@@ -5728,7 +5729,7 @@ const b = {
b.needle()
function cycle() {
if (simulation.paused || m.isBodiesAsleep) {
if (simulation.paused || m.isTimeDilated) {
requestAnimationFrame(cycle)
} else {
count++
@@ -6356,7 +6357,7 @@ const b = {
},
do() { },
do360Longitudinal() {
if (!m.isBodiesAsleep) {
if (!m.isTimeDilated) {
ctx.strokeStyle = "rgba(0,0,0,0.6)" //"000";
ctx.lineWidth = 2 * tech.wavePacketDamage
ctx.beginPath();
@@ -6453,7 +6454,7 @@ const b = {
})
},
doLongitudinal() {
if (!m.isBodiesAsleep) {
if (!m.isTimeDilated) {
ctx.strokeStyle = "rgba(0,0,0,0.6)" //"000";
ctx.lineWidth = 2 * tech.wavePacketDamage
ctx.beginPath();