restitution
tech: restitution: thrown blocks are bouncy and blocks do 150% more damage the tech previously named restitution is now named buckling after getting a bot upgrade, future bot tech will be for the upgraded bot type (doesn't effect tech that gives random bots) bug fixes
This commit is contained in:
16
js/bullet.js
16
js/bullet.js
@@ -2384,7 +2384,7 @@ const b = {
|
||||
//aoe damage to mobs
|
||||
for (let i = 0, len = mob.length; i < len; i++) {
|
||||
if (Vector.magnitude(Vector.sub(mob[i].position, this.position)) < this.radioRadius + mob[i].radius) {
|
||||
let dmg = b.dmgScale * 0.1 * tech.droneRadioDamage //neutron bombs dmg = 0.09
|
||||
let dmg = 0.11 * b.dmgScale * tech.droneRadioDamage //neutron bombs dmg = 0.09
|
||||
if (Matter.Query.ray(map, mob[i].position, this.position).length > 0) dmg *= 0.25 //reduce damage if a wall is in the way
|
||||
if (mob[i].shield) dmg *= 3 // to make up for the /5 that shields normally take
|
||||
mob[i].damage(dmg);
|
||||
@@ -2884,14 +2884,14 @@ const b = {
|
||||
}
|
||||
}
|
||||
},
|
||||
randomBot(where = player.position, isKeep = true, isAll = true) {
|
||||
if (Math.random() < 0.167 && isAll) {
|
||||
b.dynamoBot(where)
|
||||
if (isKeep) tech.dynamoBotCount++;
|
||||
} else if (Math.random() < 0.25 && isAll) {
|
||||
randomBot(where = player.position, isKeep = true, isLaser = true) {
|
||||
if (Math.random() < 0.166 && isLaser) {
|
||||
b.laserBot(where)
|
||||
if (isKeep) tech.laserBotCount++;
|
||||
} else if (Math.random() < 0.25 && isAll) {
|
||||
} else if (Math.random() < 0.2) {
|
||||
b.dynamoBot(where)
|
||||
if (isKeep) tech.dynamoBotCount++;
|
||||
} else if (Math.random() < 0.25) {
|
||||
b.orbitBot(where);
|
||||
if (isKeep) tech.orbitBotCount++;
|
||||
} else if (Math.random() < 0.33) {
|
||||
@@ -2961,7 +2961,7 @@ const b = {
|
||||
if (Vector.magnitude(Vector.sub(this.position, player.position)) < 250 && m.immuneCycle < m.cycle) { //give energy
|
||||
Matter.Body.setAngularVelocity(this, this.spin)
|
||||
if (this.isUpgraded) {
|
||||
m.energy += 0.1
|
||||
m.energy += 0.08
|
||||
simulation.drawList.push({ //add dmg to draw queue
|
||||
x: this.position.x,
|
||||
y: this.position.y,
|
||||
|
||||
@@ -192,7 +192,7 @@ function collisionChecks(event) {
|
||||
if (obj.classType === "body" && obj.speed > 6) {
|
||||
const v = Vector.magnitude(Vector.sub(mob[k].velocity, obj.velocity));
|
||||
if (v > 9) {
|
||||
let dmg = 0.075 * b.dmgScale * v * obj.mass * (tech.throwChargeRate) * (tech.isBlockHarm ? 2 : 1) * (tech.isMobBlockFling ? 2 : 1);
|
||||
let dmg = 0.075 * b.dmgScale * v * obj.mass * (tech.throwChargeRate) * (tech.isBlockHarm ? 2.5 : 1) * (tech.isMobBlockFling ? 2.5 : 1) * (tech.isBlockRestitution ? 2.5 : 1);
|
||||
if (mob[k].isShielded) dmg *= 0.7
|
||||
mob[k].damage(dmg, true);
|
||||
if (tech.isBlockPowerUps && !mob[k].alive && mob[k].isDropPowerUp && m.throwCycle > m.cycle) {
|
||||
|
||||
@@ -2332,8 +2332,6 @@ const level = {
|
||||
ctx.fillRect(5400, -550, 300, 350)
|
||||
};
|
||||
|
||||
spawn.powerUpBoss(0, 0)
|
||||
spawn.powerUpBoss(0, 0)
|
||||
level.setPosToSpawn(0, -250); //normal spawn
|
||||
spawn.mapRect(5500, -330 + 20, 100, 20); //spawn this because the real exit is in the wrong spot
|
||||
spawn.mapRect(level.enter.x, level.enter.y + 20, 100, 20);
|
||||
|
||||
10
js/player.js
10
js/player.js
@@ -627,7 +627,7 @@ const m = {
|
||||
return
|
||||
}
|
||||
m.lastHarmCycle = m.cycle
|
||||
if (tech.isDroneOnDamage) { //chance to build a drone on damage from tech
|
||||
if (tech.isDroneOnDamage && bullet.length < 150) { //chance to build a drone on damage from tech
|
||||
const len = Math.min((dmg - 0.06 * Math.random()) * 40, 40) / tech.droneEnergyReduction
|
||||
for (let i = 0; i < len; i++) {
|
||||
if (Math.random() < 0.5) b.drone({ x: m.pos.x + 30 * Math.cos(m.angle) + 100 * (Math.random() - 0.5), y: m.pos.y + 30 * Math.sin(m.angle) + 100 * (Math.random() - 0.5) }) //spawn drone
|
||||
@@ -1138,6 +1138,7 @@ const m = {
|
||||
//bullet-like collisions
|
||||
m.holdingTarget.collisionFilter.category = cat.bullet
|
||||
m.holdingTarget.collisionFilter.mask = cat.map | cat.body | cat.bullet | cat.mob | cat.mobBullet | cat.mobShield;
|
||||
if (tech.isBlockRestitution) m.holdingTarget.restitution = 0.999 //extra bouncy
|
||||
//check every second to see if player is away from thrown body, and make solid
|
||||
const solid = function(that) {
|
||||
const dx = that.position.x - player.position.x;
|
||||
@@ -1588,8 +1589,9 @@ const m = {
|
||||
},
|
||||
{
|
||||
name: "perfect diamagnetism",
|
||||
// description: "gain <strong class='color-f'>energy</strong> when <strong>blocking</strong><br>no <strong>recoil</strong> when <strong>blocking</strong>",
|
||||
description: "<strong>attract</strong> power ups from <strong>far away</strong><br><strong>deflecting</strong> does not drain <strong class='color-f'>energy</strong><br><strong>deflecting</strong> has <strong>90%</strong> less <strong>recoil</strong>",
|
||||
// description: "<strong>attract</strong> power ups from <strong>far away</strong><br><strong>deflecting</strong> doesn't drain <strong class='color-f'>energy</strong><br>thrown <strong class='color-block'>blocks</strong> have",
|
||||
// description: "gain <strong class='color-f'>energy</strong> when <strong>blocking</strong><br>no <strong>recoil</strong> when <strong>blocking</strong>",
|
||||
effect: () => {
|
||||
m.fieldShieldingScale = 0;
|
||||
m.fieldBlockCD = 4;
|
||||
@@ -1659,7 +1661,7 @@ const m = {
|
||||
},
|
||||
{
|
||||
name: "negative mass field",
|
||||
description: "use <strong class='color-f'>energy</strong> to nullify <strong style='letter-spacing: 7px;'>gravity</strong><br>reduce <strong class='color-harm'>harm</strong> by <strong>55%</strong><br><strong class='color-block'>blocks</strong> held by the field have a lower <strong>mass</strong>",
|
||||
description: "use <strong class='color-f'>energy</strong> to nullify <strong style='letter-spacing: 7px;'>gravity</strong><br>reduce <strong class='color-harm'>harm</strong> by <strong>55%</strong><br>hold <strong class='color-block'>blocks</strong> as if they have a lower <strong>mass</strong>",
|
||||
fieldDrawRadius: 0,
|
||||
effect: () => {
|
||||
m.fieldFire = true;
|
||||
@@ -1847,7 +1849,7 @@ const m = {
|
||||
m.energy -= 0.04;
|
||||
b.iceIX(1)
|
||||
} else if (tech.isDroneRadioactive) {
|
||||
m.energy -= 0.9;
|
||||
m.energy -= 0.85;
|
||||
b.droneRadioactive({ x: m.pos.x + 30 * Math.cos(m.angle) + 10 * (Math.random() - 0.5), y: m.pos.y + 30 * Math.sin(m.angle) + 10 * (Math.random() - 0.5) }, 25)
|
||||
} else {
|
||||
m.energy -= 0.45 * tech.droneEnergyReduction;
|
||||
|
||||
149
js/tech.js
149
js/tech.js
@@ -204,6 +204,37 @@
|
||||
spawn.randomLevelBoss(m.pos.x - range, m.pos.y - range, spawn.nonCollideBossList);
|
||||
}
|
||||
},
|
||||
setTechFrequency(name, frequency) {
|
||||
for (let i = 0, len = tech.tech.length; i < len; i++) {
|
||||
if (tech.tech[i].name === name) tech.tech[i].frequency = frequency
|
||||
}
|
||||
},
|
||||
setBotTechFrequency(f = 0) {
|
||||
for (let i = 0, len = tech.tech.length; i < len; i++) {
|
||||
if (tech.tech[i].isBotTech) {
|
||||
switch (tech.tech[i].name) {
|
||||
case "dynamo-bot":
|
||||
tech.tech[i].frequency = f
|
||||
break;
|
||||
case "orbital-bot":
|
||||
tech.tech[i].frequency = f
|
||||
break;
|
||||
case "laser-bot":
|
||||
tech.tech[i].frequency = f
|
||||
break;
|
||||
case "boom-bot":
|
||||
tech.tech[i].frequency = f
|
||||
break;
|
||||
case "foam-bot":
|
||||
tech.tech[i].frequency = f
|
||||
break;
|
||||
case "nail-bot":
|
||||
tech.tech[i].frequency = f
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
tech: [{
|
||||
name: "integrated armament",
|
||||
description: `increase <strong class='color-d'>damage</strong> by <strong>30%</strong><br>your inventory can only hold 1 <strong class='color-g'>gun</strong>`,
|
||||
@@ -1093,12 +1124,17 @@
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'nail') bullet[i].isUpgraded = true
|
||||
}
|
||||
tech.setBotTechFrequency()
|
||||
tech.setTechFrequency("nail-bot", 5)
|
||||
},
|
||||
remove() {
|
||||
tech.isNailBotUpgrade = false
|
||||
if (this.count) {
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'nail') bullet[i].isUpgraded = false
|
||||
}
|
||||
tech.setBotTechFrequency(1)
|
||||
}
|
||||
tech.isNailBotUpgrade = false
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1144,12 +1180,17 @@
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'foam') bullet[i].isUpgraded = true
|
||||
}
|
||||
tech.setBotTechFrequency()
|
||||
tech.setTechFrequency("foam-bot", 5)
|
||||
},
|
||||
remove() {
|
||||
tech.isFoamBotUpgrade = false
|
||||
if (this.count) {
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'foam') bullet[i].isUpgraded = false
|
||||
}
|
||||
tech.setBotTechFrequency(1)
|
||||
}
|
||||
tech.isFoamBotUpgrade = false
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1195,12 +1236,17 @@
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'boom') bullet[i].isUpgraded = true
|
||||
}
|
||||
tech.setBotTechFrequency()
|
||||
tech.setTechFrequency("boom-bot", 5)
|
||||
},
|
||||
remove() {
|
||||
tech.isBoomBotUpgrade = false
|
||||
if (this.count) {
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'boom') bullet[i].isUpgraded = false
|
||||
}
|
||||
tech.setBotTechFrequency(1)
|
||||
}
|
||||
tech.isBoomBotUpgrade = false
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1246,12 +1292,17 @@
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'laser') bullet[i].isUpgraded = true
|
||||
}
|
||||
tech.setBotTechFrequency()
|
||||
tech.setTechFrequency("laser-bot", 5)
|
||||
},
|
||||
remove() {
|
||||
tech.isLaserBotUpgrade = false
|
||||
if (this.count) {
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'laser') bullet[i].isUpgraded = false
|
||||
}
|
||||
tech.setBotTechFrequency(1)
|
||||
}
|
||||
tech.isLaserBotUpgrade = false
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1302,10 +1353,11 @@
|
||||
bullet[i].orbitalSpeed = Math.sqrt(0.25 / range)
|
||||
}
|
||||
}
|
||||
|
||||
tech.setBotTechFrequency()
|
||||
tech.setTechFrequency("orbital-bot", 5)
|
||||
},
|
||||
remove() {
|
||||
tech.isOrbitBotUpgrade = false
|
||||
if (this.count) {
|
||||
const range = 190 + 100 * tech.isOrbitBotUpgrade
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'orbit') {
|
||||
@@ -1313,6 +1365,9 @@
|
||||
bullet[i].orbitalSpeed = Math.sqrt(0.25 / range)
|
||||
}
|
||||
}
|
||||
tech.setBotTechFrequency(1)
|
||||
}
|
||||
tech.isOrbitBotUpgrade = false
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1342,7 +1397,7 @@
|
||||
},
|
||||
{
|
||||
name: "dynamo-bot upgrade",
|
||||
description: "<strong>convert</strong> your bots to <strong>dynamo-bots</strong><br>increase regen to <strong>20</strong> <strong class='color-f'>energy</strong> per second",
|
||||
description: "<strong>convert</strong> your bots to <strong>dynamo-bots</strong><br>increase regen to <strong>16</strong> <strong class='color-f'>energy</strong> per second",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 2,
|
||||
@@ -1358,12 +1413,17 @@
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'dynamo') bullet[i].isUpgraded = true
|
||||
}
|
||||
tech.setBotTechFrequency()
|
||||
tech.setTechFrequency("dynamo-bot", 5)
|
||||
},
|
||||
remove() {
|
||||
tech.isDynamoBotUpgrade = false
|
||||
if (this.count) {
|
||||
for (let i = 0; i < bullet.length; i++) {
|
||||
if (bullet[i].botType === 'dynamo') bullet[i].isUpgraded = false
|
||||
}
|
||||
tech.setBotTechFrequency(1)
|
||||
}
|
||||
tech.isDynamoBotUpgrade = false
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1456,7 +1516,7 @@
|
||||
},
|
||||
{
|
||||
name: "ersatz bots",
|
||||
description: "<strong>double</strong> your permanent <strong class='color-bot'>bots</strong><br>remove <strong>all</strong> of your <strong class='color-g'>guns</strong>",
|
||||
description: "<strong>double</strong> your current permanent <strong class='color-bot'>bots</strong><br>remove <strong>all</strong> of your current <strong class='color-g'>guns</strong>",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 2,
|
||||
@@ -1531,7 +1591,7 @@
|
||||
},
|
||||
{
|
||||
name: "flywheel",
|
||||
description: "after a mob <strong>dies</strong> its <strong class='color-block'>block</strong> is <strong>flung</strong> at mobs<br>increase <strong class='color-block'>block</strong> collision <strong class='color-d'>damage</strong> by <strong>100%</strong>",
|
||||
description: "after a mob <strong>dies</strong> its <strong class='color-block'>block</strong> is <strong>flung</strong> at mobs<br>increase <strong class='color-block'>block</strong> collision <strong class='color-d'>damage</strong> by <strong>150%</strong>",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 3,
|
||||
@@ -1547,6 +1607,24 @@
|
||||
tech.isMobBlockFling = false
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "restitution",
|
||||
description: "throwing a <strong class='color-block'>block</strong> makes it very <strong>bouncy</strong><br>increase <strong class='color-block'>block</strong> collision <strong class='color-d'>damage</strong> by <strong>150%</strong>",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 3,
|
||||
frequencyDefault: 3,
|
||||
allowed() {
|
||||
return (tech.throwChargeRate > 1 || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && !tech.isBlockExplosion
|
||||
},
|
||||
requires: "mass driver, not pilot wave not tokamak",
|
||||
effect() {
|
||||
tech.isBlockRestitution = true
|
||||
},
|
||||
remove() {
|
||||
tech.isBlockRestitution = false
|
||||
}
|
||||
},
|
||||
// {
|
||||
// name: "fermions",
|
||||
// description: "<strong class='color-block'>blocks</strong> thrown by you or <strong>pilot wave</strong> will<br><strong>collide</strong> with <strong>intangible</strong> mobs, but not you",
|
||||
@@ -1565,6 +1643,24 @@
|
||||
// tech.isBlockBullets = false
|
||||
// }
|
||||
// },
|
||||
{
|
||||
name: "inelastic collision",
|
||||
description: "<strong>holding</strong> a <strong class='color-block'>block</strong> reduces <strong class='color-harm'>harm</strong> by <strong>85%</strong><br>increase <strong class='color-block'>block</strong> collision <strong class='color-d'>damage</strong> by <strong>150%</strong>",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 3,
|
||||
frequencyDefault: 3,
|
||||
allowed() {
|
||||
return tech.throwChargeRate > 1 && m.fieldUpgrades[m.fieldMode].name !== "pilot wave" && m.fieldUpgrades[m.fieldMode].name !== "wormhole" && !tech.isEnergyHealth
|
||||
},
|
||||
requires: "mass driver, a field that can hold things, not mass-energy",
|
||||
effect() {
|
||||
tech.isBlockHarm = true
|
||||
},
|
||||
remove() {
|
||||
tech.isBlockHarm = false
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "inflation",
|
||||
description: "<strong>throwing</strong> a <strong class='color-block'>block</strong> expands it by <strong>300%</strong><br>increase <strong>throw</strong> charge rate by <strong>200%</strong>",
|
||||
@@ -1573,9 +1669,9 @@
|
||||
frequency: 3,
|
||||
frequencyDefault: 3,
|
||||
allowed() {
|
||||
return tech.throwChargeRate > 1 && m.fieldUpgrades[m.fieldMode].name !== "pilot wave"
|
||||
return (tech.throwChargeRate > 1 || m.fieldUpgrades[m.fieldMode].name === "pilot wave") && !tech.isBlockExplosion
|
||||
},
|
||||
requires: "mass driver, not pilot wave",
|
||||
requires: "mass driver, not pilot wave not tokamak",
|
||||
effect() {
|
||||
tech.isAddBlockMass = true
|
||||
},
|
||||
@@ -1584,7 +1680,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "restitution",
|
||||
name: "buckling",
|
||||
description: "if a <strong class='color-block'>block</strong> you threw kills a mob<br>spawn <strong>1</strong> <strong class='color-h'>heal</strong>, <strong class='color-g'>ammo</strong>, or <strong class='color-r'>research</strong>",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
@@ -1601,24 +1697,6 @@
|
||||
tech.isBlockPowerUps = false
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "inelastic collision",
|
||||
description: "<strong>holding</strong> a <strong class='color-block'>block</strong> reduces <strong class='color-harm'>harm</strong> by <strong>85%</strong><br>increase <strong class='color-block'>block</strong> collision <strong class='color-d'>damage</strong> by <strong>100%</strong>",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 3,
|
||||
frequencyDefault: 3,
|
||||
allowed() {
|
||||
return tech.throwChargeRate > 1 && m.fieldUpgrades[m.fieldMode].name !== "pilot wave" && m.fieldUpgrades[m.fieldMode].name !== "wormhole" && !tech.isEnergyHealth
|
||||
},
|
||||
requires: "mass driver, a field that can hold things, not mass-energy",
|
||||
effect() {
|
||||
tech.isBlockHarm = true
|
||||
},
|
||||
remove() {
|
||||
tech.isBlockHarm = false
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Pauli exclusion",
|
||||
description: `after receiving <strong class='color-harm'>harm</strong> from a <strong>collision</strong> become<br><strong>immune</strong> to <strong class='color-harm'>harm</strong> for <strong>1</strong> extra second`,
|
||||
@@ -2629,9 +2707,9 @@
|
||||
frequency: 3,
|
||||
frequencyDefault: 3,
|
||||
allowed() {
|
||||
return tech.isDeathAvoid
|
||||
return tech.isDeathAvoid && tech.duplicationChance() < 0.66
|
||||
},
|
||||
requires: "anthropic principle",
|
||||
requires: "anthropic principle, below 66% duplication chance",
|
||||
effect() {
|
||||
tech.isAnthropicTech = true
|
||||
powerUps.setDo(); //needed after adjusting duplication chance
|
||||
@@ -3825,7 +3903,7 @@
|
||||
},
|
||||
{
|
||||
name: "worm-shot",
|
||||
description: "<strong>shotgun</strong> hatches <strong>3-4</strong> mob seeking <strong class='color-p' style='letter-spacing: -0.8px;'>worms</strong>", //<br><strong class='color-p' style='letter-spacing: -0.8px;'>worms</strong> seek out nearby mobs
|
||||
description: "<strong>shotgun</strong> hatches <strong>3-4</strong> mob seeking <strong class='color-p' style='letter-spacing: -0.8px;'>worms</strong><br><em>worms benefit from spore technology</em>", //<br><strong class='color-p' style='letter-spacing: -0.8px;'>worms</strong> seek out nearby mobs
|
||||
isGunTech: true,
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
@@ -7653,5 +7731,6 @@
|
||||
isWormShot: null,
|
||||
isFoamShot: null,
|
||||
isIceShot: null,
|
||||
isNeedleShot: null
|
||||
isNeedleShot: null,
|
||||
isBlockRestitution: null
|
||||
}
|
||||
26
todo.txt
26
todo.txt
@@ -1,8 +1,24 @@
|
||||
******************************************************** NEXT PATCH ********************************************************
|
||||
|
||||
tech: restitution: thrown blocks are bouncy and blocks do 150% more damage
|
||||
the tech previously named restitution is now named buckling
|
||||
|
||||
after getting a bot upgrade, future bot tech will be for the upgraded bot type
|
||||
(doesn't effect tech that gives random bots)
|
||||
|
||||
bug fixes
|
||||
|
||||
******************************************************** TODO ********************************************************
|
||||
|
||||
using worming makes you immune to harm and drains energy until you run out
|
||||
disable incoming energy, by saving current energy and just setting energy in the next cycle to be lower then the saved value
|
||||
|
||||
pink seeker boss is cool as heck, make an alt version of it
|
||||
|
||||
perfect diamagnetism field stays when you aren't holding field
|
||||
good for perfect because it doesn't use energy
|
||||
holding field moves it the player
|
||||
|
||||
block shattering
|
||||
get code from planetesimals
|
||||
https://codepen.io/lilgreenland/pen/jrMvaB?editors=0010
|
||||
@@ -12,17 +28,11 @@ mob that grows or gets a shield when player is near
|
||||
charge triggers an escape mode
|
||||
mob wonders and drops eggs that hatch into seekers if no player around
|
||||
|
||||
pink seeker boss is cool as heck, make an alt version of it
|
||||
|
||||
perfect diamagnetism field stays when you aren't holding field
|
||||
good for perfect because it doesn't use energy
|
||||
holding field moves it the player
|
||||
|
||||
scrolling console history in pause menu?
|
||||
also make tech, guns scrolling?
|
||||
in testing mode console log the body you click on
|
||||
pause should at least show the last in game console message
|
||||
|
||||
in testing mode console log the body you click on
|
||||
|
||||
make the player get a buff after using wormhole
|
||||
while energy lasts: drain energy and give damage buff
|
||||
|
||||
|
||||
Reference in New Issue
Block a user