wave bullets end after damage
wave beam bullets now end after hitting mobs bullets do more damage, and reduce mob velocity a bit more ammo, more fire delay most wave beam tech has been buffed a bit also
This commit is contained in:
27
js/bullet.js
27
js/bullet.js
@@ -3177,7 +3177,7 @@ const b = {
|
||||
// **************************************************************************************************
|
||||
guns: [{
|
||||
name: "nail gun",
|
||||
description: "use compressed air to fire a stream of <strong>nails</strong><br><strong>delay</strong> after firing <strong>decreases</strong> as you shoot",
|
||||
description: "use compressed air to fire a stream of <strong>nails</strong><br><strong><em>delay</em></strong> after firing <strong>decreases</strong> as you shoot",
|
||||
ammo: 0,
|
||||
ammoPack: 45,
|
||||
defaultAmmoPack: 45,
|
||||
@@ -3608,12 +3608,12 @@ const b = {
|
||||
}
|
||||
}, {
|
||||
name: "wave beam",
|
||||
description: "emit a <strong>wave packet</strong> of <strong>oscillating</strong> particles<br>that propagate through <strong>solids</strong>",
|
||||
description: "emit a <strong>wave packet</strong> of oscillating particles<br>that propagates through <strong>solids</strong>",
|
||||
ammo: 0,
|
||||
ammoPack: 80,
|
||||
ammoPack: 100,
|
||||
have: false,
|
||||
wavePacketCycle: 0,
|
||||
delay: 40,
|
||||
delay: 60,
|
||||
do() {
|
||||
if (this.wavePacketCycle && !input.fire) {
|
||||
this.wavePacketCycle = 0;
|
||||
@@ -3659,18 +3659,19 @@ const b = {
|
||||
}
|
||||
q = Matter.Query.point(mob, this.position) // check if inside a mob
|
||||
for (let i = 0; i < q.length; i++) {
|
||||
let dmg = this.dmg / Math.min(10, q[i].mass)
|
||||
let dmg = this.dmg // / Math.min(10, q[i].mass)
|
||||
q[i].damage(dmg);
|
||||
q[i].foundPlayer();
|
||||
Matter.Body.setVelocity(q[i], Vector.mult(q[i].velocity, 0.9))
|
||||
|
||||
//this draw circle had to be remove to reduce lag
|
||||
// simulation.drawList.push({ //add dmg to draw queue
|
||||
// x: this.position.x,
|
||||
// y: this.position.y,
|
||||
// radius: Math.log(2 * dmg + 1.1) * 40,
|
||||
// color: 'rgba(0,0,0,0.4)',
|
||||
// time: simulation.drawTime
|
||||
// });
|
||||
this.endCycle = 0; //bullet ends cycle after doing damage
|
||||
simulation.drawList.push({ //add dmg to draw queue
|
||||
x: this.position.x,
|
||||
y: this.position.y,
|
||||
radius: Math.log(2 * dmg + 1.1) * 40,
|
||||
color: 'rgba(0,0,0,0.4)',
|
||||
time: simulation.drawTime
|
||||
});
|
||||
}
|
||||
},
|
||||
wiggle() {
|
||||
|
||||
@@ -16,7 +16,7 @@ const level = {
|
||||
// simulation.zoomScale = 1000;
|
||||
// simulation.setZoom();
|
||||
// m.setField("metamaterial cloaking")
|
||||
b.giveGuns("wave beam")
|
||||
// b.giveGuns("wave beam")
|
||||
// b.giveGuns("laser")
|
||||
// tech.isExplodeRadio = true
|
||||
// tech.giveTech("pulse")
|
||||
@@ -25,7 +25,7 @@ const level = {
|
||||
// for (let i = 0; i < 3; i++) tech.giveTech("propagation")
|
||||
// for (let i = 0; i < 3; i++) tech.giveTech("bound state")
|
||||
// for (let i = 0; i < 9; i++) tech.giveTech("slow light")
|
||||
tech.giveTech("metastability")
|
||||
// tech.giveTech("metastability")
|
||||
|
||||
level.intro(); //starting level
|
||||
// level.testing(); //not in rotation
|
||||
|
||||
56
js/tech.js
56
js/tech.js
@@ -1738,7 +1738,7 @@
|
||||
frequency: 4,
|
||||
frequencyDefault: 4,
|
||||
allowed() {
|
||||
return tech.isFlipFlopEnergy || tech.isFlipFlopDamage || tech.isFlipFlopHarm
|
||||
return tech.isFlipFlopEnergy || tech.isFlipFlopDamage || tech.isFlipFlopHarm || tech.relayIce
|
||||
},
|
||||
requires: "2 ON/OFF techs",
|
||||
effect() {
|
||||
@@ -1965,9 +1965,9 @@
|
||||
count: 0,
|
||||
frequency: 2,
|
||||
allowed() {
|
||||
return (tech.iceEnergy || tech.isWormholeEnergy || tech.isPiezo || tech.isRailEnergyGain) && tech.energyRegen !== 0.004 && !tech.isEnergyHealth
|
||||
return (tech.iceEnergy || tech.isWormholeEnergy || tech.isPiezo || tech.isRailEnergyGain || tech.energySiphon || tech.isEnergyRecovery || tech.dynamoBotCount || tech.isFlipFlopEnergy) && tech.energyRegen !== 0.004 && !tech.isEnergyHealth
|
||||
},
|
||||
requires: "piezoelectricity, Penrose, half-wave, or thermoelectric, but not time crystals",
|
||||
requires: "a way to regen extra energy, but not time crystals",
|
||||
effect: () => {
|
||||
tech.energyRegen = 0;
|
||||
m.fieldRegen = tech.energyRegen;
|
||||
@@ -2012,7 +2012,7 @@
|
||||
description: "each <strong class='color-h'>heal</strong> <strong>power up</strong> you collect<br>increases your <strong>maximum</strong> <strong class='color-f'>energy</strong> by <strong>5</strong>",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 2,
|
||||
frequency: 3,
|
||||
allowed() {
|
||||
return tech.isEnergyHealth && !tech.isNoHeals
|
||||
},
|
||||
@@ -3686,25 +3686,7 @@
|
||||
},
|
||||
{
|
||||
name: "bound state",
|
||||
description: "instead of dissipating normally<br>wave packets <strong>reflect</strong> backwards <strong>1</strong> times",
|
||||
isGunTech: true,
|
||||
maxCount: 9,
|
||||
count: 0,
|
||||
frequency: 2,
|
||||
allowed() {
|
||||
return tech.haveGunCheck("wave beam")
|
||||
},
|
||||
requires: "wave beam",
|
||||
effect() {
|
||||
tech.waveReflections++
|
||||
},
|
||||
remove() {
|
||||
tech.waveReflections = 1
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "packet length",
|
||||
description: "wave packet <strong>length</strong> and <strong>duration</strong><br>is increased by <strong>40%</strong>", // description: "holding fire allows the <strong>wave beam</strong> to emits a second <strong>packet</strong><br>at zero ammo cost",
|
||||
description: "instead of dissipating normally<br>wave packets <strong>reflect</strong> backwards <strong>2</strong> times",
|
||||
isGunTech: true,
|
||||
maxCount: 3,
|
||||
count: 0,
|
||||
@@ -3714,7 +3696,25 @@
|
||||
},
|
||||
requires: "wave beam",
|
||||
effect() {
|
||||
const scale = 1.4 - 0.025 * this.count
|
||||
tech.waveReflections += 2
|
||||
},
|
||||
remove() {
|
||||
tech.waveReflections = 1
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "packet length",
|
||||
description: "wave packet <strong>length</strong> and <strong>duration</strong><br>is increased by <strong>50%</strong>", // description: "holding fire allows the <strong>wave beam</strong> to emits a second <strong>packet</strong><br>at zero ammo cost",
|
||||
isGunTech: true,
|
||||
maxCount: 3,
|
||||
count: 0,
|
||||
frequency: 2,
|
||||
allowed() {
|
||||
return tech.haveGunCheck("wave beam")
|
||||
},
|
||||
requires: "wave beam",
|
||||
effect() {
|
||||
const scale = 1.5 - 0.025 * this.count
|
||||
tech.wavePacketLength *= scale
|
||||
tech.wavePacketFrequency /= scale
|
||||
tech.waveLengthRange *= Math.sqrt(scale)
|
||||
@@ -3727,7 +3727,7 @@
|
||||
},
|
||||
{
|
||||
name: "amplitude",
|
||||
description: "wave packet <strong>amplitude</strong> is <strong>33%</strong> higher<br>wave <strong class='color-d'>damage</strong> is increased by <strong>33%</strong>",
|
||||
description: "wave packet <strong>amplitude</strong> is <strong>33%</strong> higher<br>wave <strong class='color-d'>damage</strong> is increased by <strong>50%</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 3,
|
||||
count: 0,
|
||||
@@ -3747,7 +3747,7 @@
|
||||
},
|
||||
{
|
||||
name: "propagation",
|
||||
description: "wave packet propagation <strong>speed</strong> is <strong>30%</strong> slower<br>wave <strong class='color-d'>damage</strong> is increased by <strong>50%</strong>",
|
||||
description: "wave packet propagation <strong>speed</strong> is <strong>25%</strong> slower<br>wave <strong class='color-d'>damage</strong> is increased by <strong>50%</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 9,
|
||||
count: 0,
|
||||
@@ -3757,7 +3757,7 @@
|
||||
},
|
||||
requires: "wave beam",
|
||||
effect() {
|
||||
tech.waveBeamSpeed *= 0.7;
|
||||
tech.waveBeamSpeed *= 0.75;
|
||||
tech.waveBeamDamage += 1.3 * 0.5
|
||||
},
|
||||
remove() {
|
||||
@@ -6025,7 +6025,7 @@
|
||||
},
|
||||
{
|
||||
name: "diegesis",
|
||||
description: "indicate gun fire delay<br>through a rotation of your head",
|
||||
description: "indicate gun fire <strong><em>delay</em></strong><br>through a rotation of your head",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 0,
|
||||
|
||||
20
todo.txt
20
todo.txt
@@ -1,7 +1,6 @@
|
||||
******************************************************** NEXT PATCH ********************************************************
|
||||
|
||||
tech: metastability - 20% dup chance, but duplicated powers up eventually explode
|
||||
nerfed tech: electric reactive armor 6% (was 7%) explosion damage reduction for every 10 energy you currently have
|
||||
|
||||
|
||||
******************************************************** BUGS ********************************************************
|
||||
|
||||
@@ -39,17 +38,16 @@ is there a way to check if the player is stuck inside the map or block
|
||||
|
||||
******************************************************** TODO ********************************************************
|
||||
|
||||
make wave packets a tech
|
||||
use the tech that makes the wave packets longer?
|
||||
default wave can be two oscillating waves
|
||||
tech: a slow moving immortal mob follows you forever
|
||||
spawns at exit and just slowing moves towards player
|
||||
benefit:
|
||||
|
||||
tech: use the ability for power ups to have custom code
|
||||
attracted to player
|
||||
attracted to other power ups
|
||||
explode if they touch?
|
||||
|
||||
make beating the final boss without undefined feel like winning, not like dieing
|
||||
|
||||
try making more things const to change the color to purple in simulation loop
|
||||
|
||||
power ups disappear after 3-5 seconds
|
||||
only apply to drops from killing mobs
|
||||
+duplication 20%
|
||||
|
||||
tech: picking up heal power ups when at full health does harm equal to the heal values
|
||||
benefit on pick up:
|
||||
|
||||
Reference in New Issue
Block a user