extruder
plasma extruder extruder lag issues should be fixed! extruder graphics have a cool glow 45% more damage 20% more energy drain slows mobs a bit more extends faster it can hit mobs that get near it now instead of just inside it plasma jet now works with extruder
This commit is contained in:
53
js/bullet.js
53
js/bullet.js
@@ -1518,7 +1518,7 @@ const b = {
|
|||||||
didExtruderDrain: false,
|
didExtruderDrain: false,
|
||||||
canExtruderFire: true,
|
canExtruderFire: true,
|
||||||
extruder() {
|
extruder() {
|
||||||
const DRAIN = 0.0008 + m.fieldRegen
|
const DRAIN = 0.0011 + m.fieldRegen
|
||||||
if (m.energy > DRAIN && b.canExtruderFire) {
|
if (m.energy > DRAIN && b.canExtruderFire) {
|
||||||
m.energy -= DRAIN
|
m.energy -= DRAIN
|
||||||
if (m.energy < 0) {
|
if (m.energy < 0) {
|
||||||
@@ -1526,18 +1526,18 @@ const b = {
|
|||||||
m.energy = 0;
|
m.energy = 0;
|
||||||
}
|
}
|
||||||
b.isExtruderOn = true
|
b.isExtruderOn = true
|
||||||
const SPEED = 14
|
const SPEED = 10 + 10 * tech.isPlasmaRange
|
||||||
const me = bullet.length;
|
const me = bullet.length;
|
||||||
const where = Vector.add(m.pos, player.velocity)
|
const where = Vector.add(m.pos, player.velocity)
|
||||||
bullet[me] = Bodies.polygon(where.x + 20 * Math.cos(m.angle), where.y + 20 * Math.sin(m.angle), 4, 0.01, {
|
bullet[me] = Bodies.polygon(where.x + 20 * Math.cos(m.angle), where.y + 20 * Math.sin(m.angle), 4, 0.01, {
|
||||||
cycle: -0.5,
|
cycle: -0.5,
|
||||||
isWave: true,
|
isWave: true,
|
||||||
endCycle: simulation.cycle + 53, // + 30 * tech.isPlasmaRange,
|
endCycle: simulation.cycle + 33, // + 30 * tech.isPlasmaRange,
|
||||||
inertia: Infinity,
|
inertia: Infinity,
|
||||||
frictionAir: 0,
|
frictionAir: 0,
|
||||||
isInHole: true, //this keeps the bullet from entering wormholes
|
isInHole: true, //this keeps the bullet from entering wormholes
|
||||||
minDmgSpeed: 0,
|
minDmgSpeed: 0,
|
||||||
dmg: b.dmgScale * 1.8, //damage also changes when you divide by mob.mass on in .do()
|
dmg: b.dmgScale * 2.5, //damage also changes when you divide by mob.mass on in .do()
|
||||||
classType: "bullet",
|
classType: "bullet",
|
||||||
isBranch: false,
|
isBranch: false,
|
||||||
restitution: 0,
|
restitution: 0,
|
||||||
@@ -1555,25 +1555,31 @@ const b = {
|
|||||||
if (Matter.Query.point(map, this.position).length) { //check if inside map
|
if (Matter.Query.point(map, this.position).length) { //check if inside map
|
||||||
this.isBranch = true;
|
this.isBranch = true;
|
||||||
} else { //check if inside a body
|
} else { //check if inside a body
|
||||||
const q = Matter.Query.point(mob, this.position)
|
for (let i = 0, len = mob.length; i < len; i++) {
|
||||||
for (let i = 0; i < q.length; i++) {
|
const dist = Vector.magnitudeSquared(Vector.sub(this.position, mob[i].position))
|
||||||
Matter.Body.setVelocity(q[i], {
|
const radius = mob[i].radius + 20
|
||||||
x: q[i].velocity.x * 0.2,
|
if (dist < radius * radius) {
|
||||||
y: q[i].velocity.y * 0.2
|
Matter.Body.setVelocity(mob[i], {
|
||||||
});
|
x: mob[i].velocity.x * 0.15,
|
||||||
Matter.Body.setPosition(this, Vector.add(this.position, q[i].velocity)) //move with the medium
|
y: mob[i].velocity.y * 0.15
|
||||||
let dmg = this.dmg / Math.min(10, q[i].mass)
|
});
|
||||||
q[i].damage(dmg);
|
Matter.Body.setPosition(this, Vector.add(this.position, mob[i].velocity)) //move with the medium
|
||||||
if (q[i].alive) q[i].foundPlayer();
|
let dmg = this.dmg / Math.min(10, mob[i].mass)
|
||||||
//removed to improve performance
|
mob[i].damage(dmg);
|
||||||
// simulation.drawList.push({ //add dmg to draw queue
|
if (mob[i].alive) mob[i].foundPlayer();
|
||||||
// x: this.position.x,
|
}
|
||||||
// y: this.position.y,
|
|
||||||
// radius: Math.log(2 * dmg + 1.1) * 40,
|
|
||||||
// color: "rgba(255, 0, 119, 0.5)",
|
|
||||||
// time: simulation.drawTime
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
|
// const q = Matter.Query.point(mob, this.position)
|
||||||
|
// for (let i = 0; i < q.length; i++) {
|
||||||
|
// Matter.Body.setVelocity(q[i], {
|
||||||
|
// x: q[i].velocity.x * 0.15,
|
||||||
|
// y: q[i].velocity.y * 0.15
|
||||||
|
// });
|
||||||
|
// Matter.Body.setPosition(this, Vector.add(this.position, q[i].velocity)) //move with the medium
|
||||||
|
// let dmg = this.dmg / Math.min(10, q[i].mass)
|
||||||
|
// q[i].damage(dmg);
|
||||||
|
// if (q[i].alive) q[i].foundPlayer();
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
this.cycle++
|
this.cycle++
|
||||||
const wiggleMag = (input.down ? 6 : 12) * Math.cos(simulation.cycle * 0.09)
|
const wiggleMag = (input.down ? 6 : 12) * Math.cos(simulation.cycle * 0.09)
|
||||||
@@ -4348,10 +4354,11 @@ const b = {
|
|||||||
m.fireCDcycle = m.cycle + Math.floor((input.down ? 23 : 15) * b.fireCDscale); // cool down
|
m.fireCDcycle = m.cycle + Math.floor((input.down ? 23 : 15) * b.fireCDscale); // cool down
|
||||||
const SPREAD = input.down ? 0.08 : 0.13
|
const SPREAD = input.down ? 0.08 : 0.13
|
||||||
const num = tech.missileCount + 2
|
const num = tech.missileCount + 2
|
||||||
|
const radius = 11 * tech.bulletSize
|
||||||
let dir = m.angle - SPREAD * (num - 1) / 2;
|
let dir = m.angle - SPREAD * (num - 1) / 2;
|
||||||
for (let i = 0; i < num; i++) {
|
for (let i = 0; i < num; i++) {
|
||||||
const me = bullet.length;
|
const me = bullet.length;
|
||||||
bullet[me] = Bodies.polygon(m.pos.x + 30 * Math.cos(m.angle), m.pos.y + 30 * Math.sin(m.angle), 12, 11 * tech.bulletSize, b.fireAttributes(dir, false));
|
bullet[me] = Bodies.polygon(m.pos.x + 30 * Math.cos(m.angle), m.pos.y + 30 * Math.sin(m.angle), 12, radius, b.fireAttributes(dir, false));
|
||||||
Composite.add(engine.world, bullet[me]); //add bullet to world
|
Composite.add(engine.world, bullet[me]); //add bullet to world
|
||||||
Matter.Body.setVelocity(bullet[me], {
|
Matter.Body.setVelocity(bullet[me], {
|
||||||
x: SPEED * Math.cos(dir),
|
x: SPEED * Math.cos(dir),
|
||||||
|
|||||||
@@ -174,9 +174,7 @@ window.onresize = () => {
|
|||||||
//**********************************************************************
|
//**********************************************************************
|
||||||
//set wikipedia link
|
//set wikipedia link
|
||||||
for (let i = 0, len = tech.tech.length; i < len; i++) {
|
for (let i = 0, len = tech.tech.length; i < len; i++) {
|
||||||
if (!tech.tech[i].link) {
|
if (!tech.tech[i].link) tech.tech[i].link = `<a target="_blank" href='https://en.wikipedia.org/w/index.php?search=${encodeURIComponent(tech.tech[i].name).replace(/'/g, '%27')}&title=Special:Search' style="color: #000;">${tech.tech[i].name}</a>`
|
||||||
tech.tech[i].link = `<a target="_blank" href='https://en.wikipedia.org/w/index.php?search=${encodeURIComponent(tech.tech[i].name).replace(/'/g, '%27')}&title=Special:Search' style="color: #000;">${tech.tech[i].name}</a>`
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const build = {
|
const build = {
|
||||||
|
|||||||
17
js/level.js
17
js/level.js
@@ -15,9 +15,9 @@ const level = {
|
|||||||
// localSettings.levelsClearedLastGame = 10
|
// localSettings.levelsClearedLastGame = 10
|
||||||
// level.difficultyIncrease(30) //30 is near max on hard //60 is near max on why
|
// level.difficultyIncrease(30) //30 is near max on hard //60 is near max on why
|
||||||
// simulation.isHorizontalFlipped = true
|
// simulation.isHorizontalFlipped = true
|
||||||
// m.setField("pilot wave")
|
// m.setField("plasma torch")
|
||||||
// b.giveGuns("harpoon")
|
// b.giveGuns("harpoon")
|
||||||
// tech.giveTech("toggling harpoon")
|
// tech.giveTech("extruder")
|
||||||
// tech.giveTech("filament")
|
// tech.giveTech("filament")
|
||||||
// tech.giveTech("mouth")
|
// tech.giveTech("mouth")
|
||||||
// tech.giveTech("all-stars")
|
// tech.giveTech("all-stars")
|
||||||
@@ -128,18 +128,19 @@ const level = {
|
|||||||
for (let i = 0; i < num; i++) {
|
for (let i = 0; i < num; i++) {
|
||||||
simulation.difficulty++
|
simulation.difficulty++
|
||||||
b.dmgScale *= 0.914; //damage done by player decreases each level
|
b.dmgScale *= 0.914; //damage done by player decreases each level
|
||||||
if (simulation.accelScale < 5) simulation.accelScale *= 1.02 //mob acceleration increases each level
|
if (simulation.accelScale < 6) simulation.accelScale *= 1.025 //mob acceleration increases each level
|
||||||
if (simulation.CDScale > 0.2) simulation.CDScale *= 0.97 //mob CD time decreases each level
|
if (simulation.CDScale > 0.15) simulation.CDScale *= 0.965 //mob CD time decreases each level
|
||||||
}
|
}
|
||||||
simulation.dmgScale = 0.41 * simulation.difficulty //damage done by mobs increases each level
|
simulation.dmgScale = 0.41 * simulation.difficulty //damage done by mobs increases each level
|
||||||
simulation.healScale = 1 / (1 + simulation.difficulty * 0.055) //a higher denominator makes for lower heals // m.health += heal * simulation.healScale;
|
simulation.healScale = 1 / (1 + simulation.difficulty * 0.055) //a higher denominator makes for lower heals // m.health += heal * simulation.healScale;
|
||||||
|
// console.log(`CD = ${simulation.CDScale}`)
|
||||||
},
|
},
|
||||||
difficultyDecrease(num = 1) { //used in easy mode for simulation.reset()
|
difficultyDecrease(num = 1) { //used in easy mode for simulation.reset()
|
||||||
for (let i = 0; i < num; i++) {
|
for (let i = 0; i < num; i++) {
|
||||||
simulation.difficulty--
|
simulation.difficulty--
|
||||||
b.dmgScale /= 0.914; //damage done by player decreases each level
|
b.dmgScale /= 0.914; //damage done by player decreases each level
|
||||||
if (simulation.accelScale > 0.2) simulation.accelScale /= 1.02 //mob acceleration increases each level
|
if (simulation.accelScale > 1) simulation.accelScale /= 1.025 //mob acceleration increases each level
|
||||||
if (simulation.CDScale < 5) simulation.CDScale /= 0.97 //mob CD time decreases each level
|
if (simulation.CDScale < 1) simulation.CDScale /= 0.965 //mob CD time decreases each level
|
||||||
}
|
}
|
||||||
if (simulation.difficulty < 1) simulation.difficulty = 0;
|
if (simulation.difficulty < 1) simulation.difficulty = 0;
|
||||||
simulation.dmgScale = 0.41 * simulation.difficulty //damage done by mobs increases each level
|
simulation.dmgScale = 0.41 * simulation.difficulty //damage done by mobs increases each level
|
||||||
@@ -2300,8 +2301,8 @@ const level = {
|
|||||||
// spawn.laserBombingBoss(1900, -500)
|
// spawn.laserBombingBoss(1900, -500)
|
||||||
// for (let i = 0; i < 5; i++) spawn.focuser(1900, -500)
|
// for (let i = 0; i < 5; i++) spawn.focuser(1900, -500)
|
||||||
|
|
||||||
spawn.slashBoss(1900, -500)
|
// spawn.slashBoss(1900, -500)
|
||||||
// spawn.ghoster(1900, -500, 200)
|
spawn.shooter(1900, -500)
|
||||||
// spawn.shield(mob[mob.length - 1], 1900, -500, 1);
|
// spawn.shield(mob[mob.length - 1], 1900, -500, 1);
|
||||||
// mob[mob.length - 1].isShielded = true
|
// mob[mob.length - 1].isShielded = true
|
||||||
// spawn.growBossCulture(1200, -500)
|
// spawn.growBossCulture(1200, -500)
|
||||||
|
|||||||
18
js/player.js
18
js/player.js
@@ -2006,20 +2006,30 @@ const m = {
|
|||||||
b.wasExtruderOn = false
|
b.wasExtruderOn = false
|
||||||
b.canExtruderFire = true
|
b.canExtruderFire = true
|
||||||
}
|
}
|
||||||
ctx.lineWidth = 5;
|
|
||||||
ctx.strokeStyle = "#f07"
|
|
||||||
ctx.beginPath(); //draw all the wave bullets
|
ctx.beginPath(); //draw all the wave bullets
|
||||||
for (let i = 0, len = bullet.length; i < len; i++) {
|
for (let i = 0, len = bullet.length; i < len; i++) {
|
||||||
if (bullet[i].isWave) {
|
if (bullet[i].isWave) {
|
||||||
if (bullet[i].isBranch) {
|
if (bullet[i].isBranch) {
|
||||||
ctx.stroke();
|
ctx.moveTo(bullet[i].position.x, bullet[i].position.y)
|
||||||
ctx.beginPath(); //draw all the wave bullets
|
|
||||||
|
// ctx.lineWidth = 5;
|
||||||
|
// ctx.strokeStyle = "#f07"
|
||||||
|
// ctx.stroke();
|
||||||
|
// ctx.lineWidth = 30;
|
||||||
|
// ctx.strokeStyle = "rgba(255,0,110,0.05)"
|
||||||
|
// ctx.stroke();
|
||||||
|
// ctx.beginPath(); //draw all the wave bullets
|
||||||
} else {
|
} else {
|
||||||
ctx.lineTo(bullet[i].position.x, bullet[i].position.y)
|
ctx.lineTo(bullet[i].position.x, bullet[i].position.y)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (b.wasExtruderOn && b.isExtruderOn) ctx.lineTo(m.pos.x + 15 * Math.cos(m.angle), m.pos.y + 15 * Math.sin(m.angle))
|
if (b.wasExtruderOn && b.isExtruderOn) ctx.lineTo(m.pos.x + 15 * Math.cos(m.angle), m.pos.y + 15 * Math.sin(m.angle))
|
||||||
|
ctx.lineWidth = 5;
|
||||||
|
ctx.strokeStyle = "#f07"
|
||||||
|
ctx.stroke();
|
||||||
|
ctx.lineWidth = 35;
|
||||||
|
ctx.strokeStyle = "rgba(255,0,110,0.05)"
|
||||||
ctx.stroke();
|
ctx.stroke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
32
js/tech.js
32
js/tech.js
@@ -2832,6 +2832,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "non-unitary operator",
|
name: "non-unitary operator",
|
||||||
|
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Unitary_operator' style="color: #000;">non-unitary operator</a>`,
|
||||||
description: "reduce combat <strong>difficulty</strong> by <strong>2 levels</strong>, but<br>after a <strong>collision</strong> enter an <strong class='alt'>alternate reality</strong>",
|
description: "reduce combat <strong>difficulty</strong> by <strong>2 levels</strong>, but<br>after a <strong>collision</strong> enter an <strong class='alt'>alternate reality</strong>",
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
@@ -2873,6 +2874,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Ψ(t) collapse",
|
name: "Ψ(t) collapse",
|
||||||
|
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Wave_function_collapse' style="color: #000;">Ψ(t) collapse</a>`,
|
||||||
description: `enter an <strong class='alt'>alternate reality</strong> after you <strong class='color-r'>research</strong><br>spawn ${powerUps.orb.research(16)}`,
|
description: `enter an <strong class='alt'>alternate reality</strong> after you <strong class='color-r'>research</strong><br>spawn ${powerUps.orb.research(16)}`,
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
@@ -3616,7 +3618,7 @@
|
|||||||
allowed() {
|
allowed() {
|
||||||
return (b.totalBots() > 3 || m.fieldUpgrades[m.fieldMode].name === "molecular assembler" || m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && !tech.isEnergyHealth && !tech.isRewindAvoidDeath //build.isExperimentSelection ||
|
return (b.totalBots() > 3 || m.fieldUpgrades[m.fieldMode].name === "molecular assembler" || m.fieldUpgrades[m.fieldMode].name === "plasma torch" || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && !tech.isEnergyHealth && !tech.isRewindAvoidDeath //build.isExperimentSelection ||
|
||||||
},
|
},
|
||||||
requires: "bots > 3, plasma torch, nano-scale, pilot wave, not mass-energy equivalence, CPT",
|
requires: "bots > 3, plasma torch, assembler, pilot wave, not mass-energy equivalence, CPT",
|
||||||
effect() {
|
effect() {
|
||||||
tech.isRewindGun = true
|
tech.isRewindGun = true
|
||||||
b.guns.push(b.gunRewind)
|
b.guns.push(b.gunRewind)
|
||||||
@@ -4197,7 +4199,7 @@
|
|||||||
},
|
},
|
||||||
requires: "super balls",
|
requires: "super balls",
|
||||||
effect() {
|
effect() {
|
||||||
tech.bulletSize += 0.15
|
tech.bulletSize += 0.14
|
||||||
},
|
},
|
||||||
remove() {
|
remove() {
|
||||||
tech.bulletSize = 1;
|
tech.bulletSize = 1;
|
||||||
@@ -5800,7 +5802,7 @@
|
|||||||
}
|
}
|
||||||
simulation.makeTextLog(`tech.isOrbitalBotUpgrade = true`)
|
simulation.makeTextLog(`tech.isOrbitalBotUpgrade = true`)
|
||||||
})
|
})
|
||||||
for (let i = 0; i < 2; i++) { //double chance for dynamo-bot, since it's very good for nano-scale
|
for (let i = 0; i < 2; i++) { //double chance for dynamo-bot, since it's very good for assembler
|
||||||
notUpgradedBots.push(() => {
|
notUpgradedBots.push(() => {
|
||||||
tech.giveTech("dynamo-bot upgrade")
|
tech.giveTech("dynamo-bot upgrade")
|
||||||
for (let i = 0; i < num; i++) {
|
for (let i = 0; i < num; i++) {
|
||||||
@@ -5817,8 +5819,8 @@
|
|||||||
{
|
{
|
||||||
name: "mycelium manufacturing",
|
name: "mycelium manufacturing",
|
||||||
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Mycelium' style="color: #000;">mycelium manufacturing</a>`,
|
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Mycelium' style="color: #000;">mycelium manufacturing</a>`,
|
||||||
description: `use ${powerUps.orb.research(3)}to repurpose <strong>nano-scale</strong> field<br>excess <strong class='color-f'>energy</strong> used to grow <strong class='color-p' style='letter-spacing: 2px;'>spores</strong>`,
|
description: `use ${powerUps.orb.research(3)}to repurpose <strong>molecular assembler</strong><br>excess <strong class='color-f'>energy</strong> used to grow <strong class='color-p' style='letter-spacing: 2px;'>spores</strong>`,
|
||||||
// description: "use <strong>3</strong> <strong class='color-r'>research</strong> to repurpose <strong>nano-scale</strong><br>excess <strong class='color-f'>energy</strong> used to grow <strong class='color-p' style='letter-spacing: 2px;'>spores</strong>",
|
// description: "use <strong>3</strong> <strong class='color-r'>research</strong> to repurpose <strong>assembler</strong><br>excess <strong class='color-f'>energy</strong> used to grow <strong class='color-p' style='letter-spacing: 2px;'>spores</strong>",
|
||||||
isFieldTech: true,
|
isFieldTech: true,
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
@@ -5844,8 +5846,8 @@
|
|||||||
{
|
{
|
||||||
name: "missile manufacturing",
|
name: "missile manufacturing",
|
||||||
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Missile' style="color: #000;">missile manufacturing</a>`,
|
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Missile' style="color: #000;">missile manufacturing</a>`,
|
||||||
description: `use ${powerUps.orb.research(3)}to repurpose <strong>nano-scale</strong> field<br>excess <strong class='color-f'>energy</strong> used to construct <strong>missiles</strong>`,
|
description: `use ${powerUps.orb.research(3)}to repurpose <strong>molecular assembler</strong><br>excess <strong class='color-f'>energy</strong> used to construct <strong>missiles</strong>`,
|
||||||
// description: "use <strong>3</strong> <strong class='color-r'>research</strong> to repurpose <strong>nano-scale</strong><br>excess <strong class='color-f'>energy</strong> used to construct <strong>missiles</strong>",
|
// description: "use <strong>3</strong> <strong class='color-r'>research</strong> to repurpose <strong>assembler</strong><br>excess <strong class='color-f'>energy</strong> used to construct <strong>missiles</strong>",
|
||||||
isFieldTech: true,
|
isFieldTech: true,
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
@@ -5871,8 +5873,8 @@
|
|||||||
{
|
{
|
||||||
name: "ice IX manufacturing",
|
name: "ice IX manufacturing",
|
||||||
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Ice-nine_(disambiguation)' style="color: #000;">ice IX manufacturing</a>`,
|
link: `<a target="_blank" href='https://en.wikipedia.org/wiki/Ice-nine_(disambiguation)' style="color: #000;">ice IX manufacturing</a>`,
|
||||||
description: `use ${powerUps.orb.research(3)}to repurpose <strong>nano-scale</strong> field<br>excess <strong class='color-f'>energy</strong> used to condense <strong class='color-s'>ice IX</strong>`,
|
description: `use ${powerUps.orb.research(3)}to repurpose <strong>molecular assembler</strong><br>excess <strong class='color-f'>energy</strong> used to condense <strong class='color-s'>ice IX</strong>`,
|
||||||
// description: "use <strong>3</strong> <strong class='color-r'>research</strong> to repurpose <strong>nano-scale</strong><br>excess <strong class='color-f'>energy</strong> used to condense <strong class='color-s'>ice IX</strong>",
|
// description: "use <strong>3</strong> <strong class='color-r'>research</strong> to repurpose <strong>assembler</strong><br>excess <strong class='color-f'>energy</strong> used to condense <strong class='color-s'>ice IX</strong>",
|
||||||
isFieldTech: true,
|
isFieldTech: true,
|
||||||
maxCount: 1,
|
maxCount: 1,
|
||||||
count: 0,
|
count: 0,
|
||||||
@@ -5966,7 +5968,7 @@
|
|||||||
allowed() {
|
allowed() {
|
||||||
return !tech.isExtruder && m.fieldUpgrades[m.fieldMode].name === "plasma torch" && (build.isExperimentSelection || powerUps.research.count > 0)
|
return !tech.isExtruder && m.fieldUpgrades[m.fieldMode].name === "plasma torch" && (build.isExperimentSelection || powerUps.research.count > 0)
|
||||||
},
|
},
|
||||||
requires: "plasma torch, not micro-extruder",
|
requires: "plasma torch, not extruder",
|
||||||
effect() {
|
effect() {
|
||||||
tech.plasmaBotCount++;
|
tech.plasmaBotCount++;
|
||||||
b.plasmaBot();
|
b.plasmaBot();
|
||||||
@@ -6002,9 +6004,9 @@
|
|||||||
frequency: 2,
|
frequency: 2,
|
||||||
frequencyDefault: 2,
|
frequencyDefault: 2,
|
||||||
allowed() {
|
allowed() {
|
||||||
return (tech.plasmaBotCount || (m.fieldUpgrades[m.fieldMode].name === "plasma torch" && !tech.isExtruder)) && (build.isExperimentSelection || powerUps.research.count > 0)
|
return (tech.plasmaBotCount || m.fieldUpgrades[m.fieldMode].name === "plasma torch") && (build.isExperimentSelection || powerUps.research.count > 0)
|
||||||
},
|
},
|
||||||
requires: "plasma torch, not micro-extruder",
|
requires: "plasma torch",
|
||||||
effect() {
|
effect() {
|
||||||
tech.isPlasmaRange += 0.5;
|
tech.isPlasmaRange += 0.5;
|
||||||
if (powerUps.research.count > 0) powerUps.research.changeRerolls(-1)
|
if (powerUps.research.count > 0) powerUps.research.changeRerolls(-1)
|
||||||
@@ -6023,9 +6025,9 @@
|
|||||||
frequency: 2,
|
frequency: 2,
|
||||||
frequencyDefault: 2,
|
frequencyDefault: 2,
|
||||||
allowed() {
|
allowed() {
|
||||||
return m.fieldUpgrades[m.fieldMode].name === "plasma torch" && tech.isPlasmaRange === 1 && tech.plasmaBotCount === 0
|
return m.fieldUpgrades[m.fieldMode].name === "plasma torch" && tech.plasmaBotCount === 0
|
||||||
},
|
},
|
||||||
requires: "plasma torch, not plasma jet, plasma-bot",
|
requires: "plasma torch, not plasma-bot",
|
||||||
effect() {
|
effect() {
|
||||||
tech.isExtruder = true;
|
tech.isExtruder = true;
|
||||||
},
|
},
|
||||||
@@ -6042,7 +6044,7 @@
|
|||||||
frequency: 2,
|
frequency: 2,
|
||||||
frequencyDefault: 2,
|
frequencyDefault: 2,
|
||||||
allowed() {
|
allowed() {
|
||||||
return m.fieldUpgrades[m.fieldMode].name === "time dilation"
|
return m.fieldUpgrades[m.fieldMode].name === "time dilation" && !m.isShipMode
|
||||||
},
|
},
|
||||||
requires: "time dilation",
|
requires: "time dilation",
|
||||||
effect() {
|
effect() {
|
||||||
|
|||||||
17
todo.txt
17
todo.txt
@@ -1,12 +1,20 @@
|
|||||||
******************************************************** NEXT PATCH **************************************************
|
******************************************************** NEXT PATCH **************************************************
|
||||||
|
|
||||||
tech, field, and gun names are now clickable wikipedia searches
|
plasma extruder
|
||||||
works in pause and experiment modes
|
extruder lag issues should be fixed!
|
||||||
several names have also been adjusted
|
extruder graphics have a cool glow
|
||||||
|
45% more damage
|
||||||
|
20% more energy drain
|
||||||
|
slows mobs a bit more
|
||||||
|
extends faster
|
||||||
|
it can hit mobs that get near it now instead of just inside it
|
||||||
|
plasma jet now works with extruder
|
||||||
|
|
||||||
******************************************************** TODO ********************************************************
|
******************************************************** TODO ********************************************************
|
||||||
|
|
||||||
bad links:
|
toggle harpoon is weak and should be more obvious
|
||||||
|
|
||||||
|
Tech: "Growth": Increase damage by 3% for every mob currently alive.
|
||||||
|
|
||||||
add link URL to all tech guns and field on page load
|
add link URL to all tech guns and field on page load
|
||||||
but only if URL is undefined so hard to search names can be added in by hand
|
but only if URL is undefined so hard to search names can be added in by hand
|
||||||
@@ -475,6 +483,7 @@ possible names for tech
|
|||||||
gnarl
|
gnarl
|
||||||
SQUID (for superconducting quantum interference device) is a very sensitive magnetometer used to measure extremely subtle magnetic fields, based on superconducting loops containing Josephson junctions.
|
SQUID (for superconducting quantum interference device) is a very sensitive magnetometer used to measure extremely subtle magnetic fields, based on superconducting loops containing Josephson junctions.
|
||||||
nuclear pasta - hard matter in neutron star
|
nuclear pasta - hard matter in neutron star
|
||||||
|
nonlocal
|
||||||
|
|
||||||
a tutorial / lore intro
|
a tutorial / lore intro
|
||||||
needs to be optional so it doesn't slow experienced players
|
needs to be optional so it doesn't slow experienced players
|
||||||
|
|||||||
Reference in New Issue
Block a user