new fan level temple by Scar1337 is now add to community maps!
  you have to try it out!

standing wave buffs
  standing wave deflecting, is more efficient for multiple blocks in a very short time (< 1s)
  spherical harmonics no longer deactivates on contact with shielded mobs
  expansion increases block efficiency by 25->40%

negative mass field
  neutronium: move 33->25% slower
This commit is contained in:
landgreen
2022-04-22 19:51:39 -07:00
parent d4490e7025
commit fcbbf29375
6 changed files with 1449 additions and 60 deletions

BIN
.DS_Store vendored

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1533,7 +1533,7 @@ const m = {
m.fieldBlockCD = 0; m.fieldBlockCD = 0;
m.blockingRecoil = 2 //4 is normal m.blockingRecoil = 2 //4 is normal
m.fieldRange = 175 m.fieldRange = 175
m.fieldShieldingScale = 1.3 * Math.pow(0.6, (tech.harmonics - 2)) m.fieldShieldingScale = (tech.isStandingWaveExpand ? 0.9 : 1.3) * Math.pow(0.6, (tech.harmonics - 2))
m.harmonic3Phase = () => { //normal standard 3 different 2-d circles m.harmonic3Phase = () => { //normal standard 3 different 2-d circles
const fieldRange1 = (0.75 + 0.3 * Math.sin(m.cycle / 23)) * m.fieldRange * m.harmonicRadius const fieldRange1 = (0.75 + 0.3 * Math.sin(m.cycle / 23)) * m.fieldRange * m.harmonicRadius
@@ -1557,8 +1557,9 @@ const m = {
if (this.drainCD > m.cycle) { if (this.drainCD > m.cycle) {
m.pushMass(mob[i], 0); m.pushMass(mob[i], 0);
} else { } else {
console.log(this.drainCD)
m.pushMass(mob[i]); m.pushMass(mob[i]);
this.drainCD = m.cycle + 10 this.drainCD = m.cycle + 15
} }
if (mob[i].isShielded || mob[i].shield) m.fieldCDcycle = m.cycle + 20 if (mob[i].isShielded || mob[i].shield) m.fieldCDcycle = m.cycle + 20
} }
@@ -1587,9 +1588,8 @@ const m = {
m.pushMass(mob[i], 0); m.pushMass(mob[i], 0);
} else { } else {
m.pushMass(mob[i]); m.pushMass(mob[i]);
this.drainCD = m.cycle + 10 this.drainCD = m.cycle + 15
} }
if (mob[i].isShielded || mob[i].shield) m.fieldCDcycle = m.cycle + 20
} }
} }
} }

View File

@@ -187,7 +187,7 @@ const spawn = {
ctx.stroke(); ctx.stroke();
} }
}, },
WIMP(x = level.exit.x + 300 * (Math.random() - 0.5), y = level.exit.y + 300 * (Math.random() - 0.5)) { //immortal mob that follows player //if you have the tech it spawns at start of every level at the exit WIMP(x = level.exit.x + tech.wimpCount * 200 * (Math.random() - 0.5), y = level.exit.y + tech.wimpCount * 200 * (Math.random() - 0.5)) { //immortal mob that follows player //if you have the tech it spawns at start of every level at the exit
mobs.spawn(x, y, 3, 0.1, "transparent"); mobs.spawn(x, y, 3, 0.1, "transparent");
let me = mob[mob.length - 1]; let me = mob[mob.length - 1];
me.stroke = "transparent" me.stroke = "transparent"
@@ -259,9 +259,15 @@ const spawn = {
// ctx.fill(); // ctx.fill();
// ctx.globalCompositeOperation = "source-over" // ctx.globalCompositeOperation = "source-over"
} }
me.do = function() { //wake up 2 seconds after the player moves me.do = function() { //wake up after the player moves
if (player.speed > 1 && !m.isCloak) { if (player.speed > 1 && !m.isCloak) {
setTimeout(() => { this.do = this.awake; }, 2000); if (this.distanceToPlayer() < 500) {
const unit = Vector.rotate({ x: 1, y: 0 }, Math.random() * 6.28)
Matter.Body.setPosition(this, Vector.add(player.position, Vector.mult(unit, 2000)))
}
setTimeout(() => {
this.do = this.awake;
}, 500 + 2000 * Math.random());
} }
this.checkStatus(); this.checkStatus();
}; };

View File

@@ -4250,7 +4250,7 @@ const tech = {
frequency: 1, frequency: 1,
frequencyDefault: 1, frequencyDefault: 1,
allowed() { allowed() {
return tech.haveGunCheck("shotgun") || tech.haveGunCheck("super balls") || (tech.isRivets && !tech.isNailCrit) || (m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isDroneTeleport || tech.isDroneRadioactive || tech.isSporeField || tech.isMissileField || tech.isIceField)) || (tech.haveGunCheck("drones") && !tech.isForeverDrones && !tech.isDroneRadioactive && !tech.isDroneTeleport) return (tech.haveGunCheck("shotgun") && !tech.isNailShot && !tech.isIceShot && !tech.isRivets && !tech.isFoamShot && !tech.isSporeWorm && !tech.isNeedles) || tech.haveGunCheck("super balls") || (tech.isRivets && !tech.isNailCrit) || (m.fieldUpgrades[m.fieldMode].name === "molecular assembler" && !(tech.isDroneTeleport || tech.isDroneRadioactive || tech.isSporeField || tech.isMissileField || tech.isIceField)) || (tech.haveGunCheck("drones") && !tech.isForeverDrones && !tech.isDroneRadioactive && !tech.isDroneTeleport)
}, },
requires: "shotgun, super balls, rivets, drones, not irradiated drones or burst drones", requires: "shotgun, super balls, rivets, drones, not irradiated drones or burst drones",
effect() { effect() {
@@ -6192,7 +6192,7 @@ const tech = {
}, },
{ {
name: "spherical harmonics", name: "spherical harmonics",
description: "<strong>standing wave</strong> oscillates in a 3rd dimension<br>increase <strong>deflecting</strong> efficiency by <strong>40%</strong>", description: "<strong>standing wave</strong> deflects <strong>40%</strong> more efficiently<br>no longer deactivates with mob <strong>shields</strong>", //<strong>standing wave</strong> oscillates in a 3rd dimension<br>
isFieldTech: true, isFieldTech: true,
maxCount: 9, maxCount: 9,
count: 0, count: 0,
@@ -6204,18 +6204,18 @@ const tech = {
requires: "standing wave", requires: "standing wave",
effect() { effect() {
tech.harmonics++ tech.harmonics++
m.fieldShieldingScale = (tech.isStandingWaveExpand ? 1.1 : 1.3) * Math.pow(0.6, (tech.harmonics - 2)) m.fieldShieldingScale = (tech.isStandingWaveExpand ? 0.9 : 1.3) * Math.pow(0.6, (tech.harmonics - 2))
m.harmonicShield = m.harmonicAtomic m.harmonicShield = m.harmonicAtomic
}, },
remove() { remove() {
tech.harmonics = 2 tech.harmonics = 2
m.fieldShieldingScale = (tech.isStandingWaveExpand ? 1.1 : 1.3) * Math.pow(0.6, (tech.harmonics - 2)) m.fieldShieldingScale = (tech.isStandingWaveExpand ? 0.9 : 1.3) * Math.pow(0.6, (tech.harmonics - 2))
m.harmonicShield = m.harmonic3Phase m.harmonicShield = m.harmonic3Phase
} }
}, },
{ {
name: "expansion", name: "expansion",
description: "using <strong>standing wave</strong> field <strong>expands</strong> its <strong>radius</strong><br>increase <strong>deflecting</strong> efficiency by <strong>25%</strong>", description: "<strong>standing wave</strong> deflects <strong>40%</strong> more efficiently<br>using <strong>standing wave</strong> field <strong>expands</strong> its <strong>radius</strong>",
// description: "use <strong class='color-f'>energy</strong> to <strong>expand</strong> <strong>standing wave</strong><br>the field slowly <strong>contracts</strong> when not used", // description: "use <strong class='color-f'>energy</strong> to <strong>expand</strong> <strong>standing wave</strong><br>the field slowly <strong>contracts</strong> when not used",
isFieldTech: true, isFieldTech: true,
maxCount: 1, maxCount: 1,
@@ -6223,16 +6223,16 @@ const tech = {
frequency: 2, frequency: 2,
frequencyDefault: 2, frequencyDefault: 2,
allowed() { allowed() {
return m.fieldUpgrades[m.fieldMode].name === "standing wave" return m.fieldUpgrades[m.fieldMode].name === "standing wave" && (tech.blockDmg || tech.blockingIce)
}, },
requires: "standing wave", requires: "standing wave, bremsstrahlung, triple point",
effect() { effect() {
tech.isStandingWaveExpand = true tech.isStandingWaveExpand = true
m.fieldShieldingScale = (tech.isStandingWaveExpand ? 1.1 : 1.3) * Math.pow(0.6, (tech.harmonics - 2)) m.fieldShieldingScale = (tech.isStandingWaveExpand ? 0.9 : 1.3) * Math.pow(0.6, (tech.harmonics - 2))
}, },
remove() { remove() {
tech.isStandingWaveExpand = false tech.isStandingWaveExpand = false
m.fieldShieldingScale = (tech.isStandingWaveExpand ? 1.1 : 1.3) * Math.pow(0.6, (tech.harmonics - 2)) m.fieldShieldingScale = (tech.isStandingWaveExpand ? 0.9 : 1.3) * Math.pow(0.6, (tech.harmonics - 2))
m.harmonicRadius = 1 m.harmonicRadius = 1
} }
}, },
@@ -6376,7 +6376,7 @@ const tech = {
}, },
{ {
name: "neutronium", name: "neutronium",
description: `reduce <strong class='color-harm'>harm</strong> by <strong>90%</strong> when your <strong class='color-f'>field</strong> is active<br><strong>move</strong> and <strong>jump</strong> <strong>33%</strong> <strong>slower</strong>`, description: `reduce <strong class='color-harm'>harm</strong> by <strong>90%</strong> when your <strong class='color-f'>field</strong> is active<br><strong>move</strong> and <strong>jump</strong> <strong>25%</strong> <strong>slower</strong>`,
isFieldTech: true, isFieldTech: true,
maxCount: 1, maxCount: 1,
count: 0, count: 0,
@@ -6388,8 +6388,8 @@ const tech = {
requires: "negative mass, not mass-energy", requires: "negative mass, not mass-energy",
effect() { effect() {
tech.isNeutronium = true tech.isNeutronium = true
tech.baseFx *= 0.66 tech.baseFx *= 0.75
tech.baseJumpForce *= 0.66 tech.baseJumpForce *= 0.75
m.setMovement() m.setMovement()
}, },
//also removed in m.setHoldDefaults() if player switches into a bad field //also removed in m.setHoldDefaults() if player switches into a bad field
@@ -7631,25 +7631,24 @@ const tech = {
}, },
remove() {} remove() {}
}, },
{ // {
name: "hi", // name: "hi",
description: `spawn to seed`, // description: `spawn to seed <strong>616</strong> `,
maxCount: 1, // maxCount: 1,
count: 0, // count: 0,
frequency: 0, // frequency: 0,
isNonRefundable: true, // isNonRefundable: true,
isJunk: true, // isJunk: true,
allowed() { // allowed() {
return true // return true
}, // },
requires: "", // requires: "",
effect() { // effect() {
document.getElementById("seed").placeholder = Math.initialSeed = String(616) // document.getElementById("seed").placeholder = Math.initialSeed = String(616)
Math.seed = Math.abs(Math.hash(Math.initialSeed)) //update randomizer seed in case the player changed it // Math.seed = Math.abs(Math.hash(Math.initialSeed)) //update randomizer seed in case the player changed it
// },
}, // remove() {}
remove() {} // },
},
{ {
name: "meteor shower", name: "meteor shower",
description: "take a shower, but meteors instead of water", description: "take a shower, but meteors instead of water",

View File

@@ -1,28 +1,21 @@
******************************************************** NEXT PATCH ************************************************** ******************************************************** NEXT PATCH **************************************************
generalist now requires 2 guns to unlock new fan level temple by Scar1337 is now add to community maps!
active cooling 18->20% fire speed increase per gun you have to try it out!
arsenal 12->13% damage increase per gun
futures exchange 4.3->4.5% duplication on cancel
perimeter defense 7->6% harm reduction per bot
unified field theory no longer gets bonus rerolls, instead it triples the frequency of field tech
removed tensor field
meta-analysis gives 3->1 research after choosing JUNK
plasma ball moves faster 7->10 standing wave buffs
standing wave deflecting, is more efficient for multiple blocks in a very short time (< 1s)
spherical harmonics no longer deactivates on contact with shielded mobs
expansion increases block efficiency by 25->40%
bug fixes negative mass field
JUNK tech density removed neutronium: move 33->25% slower
it was causing the NaN bug
******************************************************** TODO ******************************************************** ******************************************************** TODO ********************************************************
nonrefundable tech don't display, this is confusing nonrefundable tech don't display, this is confusing
maybe they can show up but greyed out or something maybe they can show up but greyed out or something
make player collisions with mobs do no harm while standing wave is active
bring back: bring back:
the old phase decoherence field the old phase decoherence field
make cloak only active on input.field down make cloak only active on input.field down