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.blockingRecoil = 2 //4 is normal
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
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) {
m.pushMass(mob[i], 0);
} else {
console.log(this.drainCD)
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
}
@@ -1587,9 +1588,8 @@ const m = {
m.pushMass(mob[i], 0);
} else {
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();
}
},
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");
let me = mob[mob.length - 1];
me.stroke = "transparent"
@@ -259,9 +259,15 @@ const spawn = {
// ctx.fill();
// 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) {
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();
};

View File

@@ -4250,7 +4250,7 @@ const tech = {
frequency: 1,
frequencyDefault: 1,
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",
effect() {
@@ -6192,7 +6192,7 @@ const tech = {
},
{
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,
maxCount: 9,
count: 0,
@@ -6204,18 +6204,18 @@ const tech = {
requires: "standing wave",
effect() {
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
},
remove() {
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
}
},
{
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",
isFieldTech: true,
maxCount: 1,
@@ -6223,16 +6223,16 @@ const tech = {
frequency: 2,
frequencyDefault: 2,
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() {
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() {
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
}
},
@@ -6376,7 +6376,7 @@ const tech = {
},
{
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,
maxCount: 1,
count: 0,
@@ -6388,8 +6388,8 @@ const tech = {
requires: "negative mass, not mass-energy",
effect() {
tech.isNeutronium = true
tech.baseFx *= 0.66
tech.baseJumpForce *= 0.66
tech.baseFx *= 0.75
tech.baseJumpForce *= 0.75
m.setMovement()
},
//also removed in m.setHoldDefaults() if player switches into a bad field
@@ -7631,25 +7631,24 @@ const tech = {
},
remove() {}
},
{
name: "hi",
description: `spawn to seed`,
maxCount: 1,
count: 0,
frequency: 0,
isNonRefundable: true,
isJunk: true,
allowed() {
return true
},
requires: "",
effect() {
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
},
remove() {}
},
// {
// name: "hi",
// description: `spawn to seed <strong>616</strong> `,
// maxCount: 1,
// count: 0,
// frequency: 0,
// isNonRefundable: true,
// isJunk: true,
// allowed() {
// return true
// },
// requires: "",
// effect() {
// 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
// },
// remove() {}
// },
{
name: "meteor shower",
description: "take a shower, but meteors instead of water",

View File

@@ -1,28 +1,21 @@
******************************************************** NEXT PATCH **************************************************
generalist now requires 2 guns to unlock
active cooling 18->20% fire speed increase per gun
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
new fan level temple by Scar1337 is now add to community maps!
you have to try it out!
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
JUNK tech density removed
it was causing the NaN bug
negative mass field
neutronium: move 33->25% slower
******************************************************** TODO ********************************************************
nonrefundable tech don't display, this is confusing
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:
the old phase decoherence field
make cloak only active on input.field down