temple
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:
1397
js/level.js
1397
js/level.js
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
12
js/spawn.js
12
js/spawn.js
@@ -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();
|
||||
};
|
||||
|
||||
69
js/tech.js
69
js/tech.js
@@ -3129,7 +3129,7 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "unified field theory",
|
||||
description: `<span style = 'font-size:90%;'><strong>clicking</strong> the <strong class='color-f'>field</strong> box when <strong>paused</strong> cycles your <strong class='color-f'>field</strong><br><strong>triple</strong> the <strong class='flicker'>frequency</strong> of finding <strong class='color-f'>field</strong> <strong class='color-m'>tech</strong></span>`,
|
||||
description: `<span style = 'font-size:90%;'><strong>clicking</strong> the <strong class='color-f'>field</strong> box when <strong>paused</strong> cycles your <strong class='color-f'>field</strong><br><strong>triple</strong> the <strong class='flicker'>frequency</strong> of finding <strong class='color-f'>field</strong><strong class='color-m'>tech</strong></span>`,
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 1,
|
||||
@@ -3771,7 +3771,7 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "needle gun",
|
||||
description: "<strong>nail gun</strong> and <strong>shot gun</strong> fire mob piercing <strong>needles</strong>",
|
||||
description: "<strong>nail gun</strong> and <strong>shotgun</strong> fire mob piercing <strong>needles</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
@@ -3810,7 +3810,7 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "rivet gun",
|
||||
description: "<strong>nail gun</strong> and <strong>shot gun</strong> slowly lob a heavy <strong>rivet</strong>",
|
||||
description: "<strong>nail gun</strong> and <strong>shotgun</strong> slowly lob a heavy <strong>rivet</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
@@ -3819,7 +3819,7 @@ const tech = {
|
||||
allowed() {
|
||||
return ((tech.haveGunCheck("nail gun") && !tech.nailInstantFireRate) || (tech.haveGunCheck("shotgun") && !tech.isNailShot && !tech.isFoamShot && !tech.isSporeWorm)) && !tech.isNeedles && !tech.isIceCrystals && !tech.isIceShot
|
||||
},
|
||||
requires: "nail gun, shot gun, not ice crystal, needles, or pneumatic actuator",
|
||||
requires: "nail gun, shotgun, not ice crystal, needles, or pneumatic actuator",
|
||||
effect() {
|
||||
tech.isRivets = true
|
||||
for (i = 0, len = b.guns.length; i < len; i++) { //find which gun
|
||||
@@ -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",
|
||||
|
||||
23
todo.txt
23
todo.txt
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user