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.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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
js/spawn.js
12
js/spawn.js
@@ -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();
|
||||||
};
|
};
|
||||||
|
|||||||
61
js/tech.js
61
js/tech.js
@@ -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",
|
||||||
|
|||||||
23
todo.txt
23
todo.txt
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user