foam balance

This commit is contained in:
landgreen
2019-12-16 06:50:27 -08:00
committed by GitHub
parent 03b16e223d
commit 09b6a2ff11
3 changed files with 15 additions and 19 deletions

View File

@@ -1798,12 +1798,12 @@ const b = {
const RADIUS = (6 + 16 * Math.random()) * b.modBulletSize const RADIUS = (6 + 16 * Math.random()) * b.modBulletSize
bullet[me] = Bodies.polygon(mech.pos.x + 30 * Math.cos(mech.angle), mech.pos.y + 30 * Math.sin(mech.angle), 25, RADIUS, { bullet[me] = Bodies.polygon(mech.pos.x + 30 * Math.cos(mech.angle), mech.pos.y + 30 * Math.sin(mech.angle), 25, RADIUS, {
angle: dir, angle: dir,
density: 0.000001, // 0.001 is normal density density: 0.000005, // 0.001 is normal density
inertia: Infinity, inertia: Infinity,
frictionAir: 0, frictionAir: 0.003,
friction: 0.2, friction: 0.2,
restitution: 0.2, restitution: 0.2,
dmg: 0.04 + b.modExtraDmg, //damage done in addition to the damage from momentum dmg: b.modExtraDmg, //damage done in addition to the damage from momentum
classType: "bullet", classType: "bullet",
collisionFilter: { collisionFilter: {
category: 0x000100, category: 0x000100,
@@ -1822,17 +1822,14 @@ const b = {
}, },
onEnd() {}, onEnd() {},
do() { do() {
this.force.y += this.mass * 0.00005; this.force.y += this.mass * 0.00006; //gravity
//draw white circle //draw white circle
ctx.beginPath() ctx.beginPath()
ctx.arc(this.position.x, this.position.y, this.radius * 0.97 - 1.6, 0, 2 * Math.PI); ctx.arc(this.position.x, this.position.y, this.radius * 0.97 - 1.6, 0, 2 * Math.PI);
ctx.fillStyle = "#fff" ctx.fillStyle = "#fff"
ctx.fill() ctx.fill()
if (!mech.isBodiesAsleep) { //if time dilation isn't active if (!mech.isBodiesAsleep) { //if time dilation isn't active
if (this.count < 17) { if (this.count < 17) {
this.count++ this.count++
//grow //grow
@@ -1841,20 +1838,18 @@ const b = {
this.radius *= SCALE; this.radius *= SCALE;
} else { } else {
//shrink //shrink
const SCALE = 1 - 0.006 / b.isModBulletsLastLonger const SCALE = 1 - 0.007 / b.isModBulletsLastLonger
Matter.Body.scale(this, SCALE, SCALE); Matter.Body.scale(this, SCALE, SCALE);
this.radius *= SCALE; this.radius *= SCALE;
if (this.radius < 11) this.endCycle = 0; if (this.radius < 11) this.endCycle = 0;
} }
if (this.target && this.target.alive) { //if stuck to a target
if (this.target && this.target.alive) {
Matter.Body.setPosition(this, this.target.position) Matter.Body.setPosition(this, this.target.position)
Matter.Body.setVelocity(this.target, Matter.Vector.mult(this.target.velocity, 0.95)) Matter.Body.setVelocity(this.target, Matter.Vector.mult(this.target.velocity, 0.94))
Matter.Body.setAngularVelocity(this.target, this.target.angularVelocity * 0.96) Matter.Body.setAngularVelocity(this.target, this.target.angularVelocity * 0.94)
this.target.damage(b.dmgScale * 0.0025); this.target.damage(b.dmgScale * 0.0045);
} else { } else { //look for a new target
//look for a new target
this.target = null this.target = null
this.collisionFilter.category = 0x000100; this.collisionFilter.category = 0x000100;
} }
@@ -1862,13 +1857,13 @@ const b = {
} }
}); });
World.add(engine.world, bullet[me]); //add bullet to world World.add(engine.world, bullet[me]); //add bullet to world
mech.fireCDcycle = mech.cycle + Math.floor((mech.crouch ? 15 : 3) * b.modFireRate); // cool down mech.fireCDcycle = mech.cycle + Math.floor((mech.crouch ? 15 : 4) * b.modFireRate); // cool down
const SPEED = mech.crouch ? 22 : 15 - RADIUS * 0.25; const SPEED = mech.crouch ? 20 : 14 - RADIUS * 0.25;
Matter.Body.setVelocity(bullet[me], { Matter.Body.setVelocity(bullet[me], {
x: SPEED * Math.cos(dir), x: SPEED * Math.cos(dir),
y: SPEED * Math.sin(dir) y: SPEED * Math.sin(dir)
}); });
bullet[me].direction = Matter.Vector.perp(bullet[me].velocity) // bullet[me].direction = Matter.Vector.perp(bullet[me].velocity)
} }
}, },
// { // {

View File

@@ -425,6 +425,7 @@ const game = {
game.fpsCap = game.fpsCapDefault; game.fpsCap = game.fpsCapDefault;
game.makeGunHUD(); game.makeGunHUD();
mech.drop(); mech.drop();
mech.holdingTarget = null
mech.addHealth(1); mech.addHealth(1);
mech.alive = true; mech.alive = true;
level.onLevel = 0; level.onLevel = 0;

View File

@@ -1452,7 +1452,7 @@ const mech = {
mech.setHoldDefaults(); mech.setHoldDefaults();
mech.fieldRegen *= 3; mech.fieldRegen *= 3;
mech.hold = function () { mech.hold = function () {
if (mech.fieldMeter === mech.fieldEnergyMax) { if (mech.fieldMeter > mech.fieldEnergyMax - 0.02) {
mech.fieldMeter -= 0.43; mech.fieldMeter -= 0.43;
b.guns[gunIndex].fire() //spawn drone b.guns[gunIndex].fire() //spawn drone
mech.fireCDcycle = mech.cycle + 25; // set fire cool down to prevent +energy from making huge numbers of drones mech.fireCDcycle = mech.cycle + 25; // set fire cool down to prevent +energy from making huge numbers of drones