field balance

This commit is contained in:
landgreen
2019-10-02 06:07:12 -07:00
parent fefb85c74b
commit 5dfba31c34
2 changed files with 26 additions and 33 deletions

View File

@@ -852,7 +852,7 @@ const mech = {
game.makeTextLog("<strong style='font-size:30px;'>Inertia Negation Field</strong><br> (right mouse or space bar)<p> field slows objects in range<br> <span style='color:#a00;'>decreased</span> field shielding efficiency</p>", 1200);
// <br> field does <span style='color:#a00;'>not</span> shield player
mech.setHoldDefaults();
mech.fieldShieldingScale = 7;
mech.fieldShieldingScale = 12;
// mech.fieldArc = 1; //field covers full 360 degrees
// mech.calculateFieldThreshold(); //run after setting fieldArc, used for powerUp grab and mobPush with lookingAt(mob)
@@ -973,7 +973,7 @@ const mech = {
game.makeTextLog("<strong style='font-size:30px;'>Negative Mass Field</strong><br> (right mouse or space bar)<p> field nullifies gravity<br> player can hold more massive objects<br> <span style='color:#a00;'>decreased</span> field shielding efficiency</p>", 1200);
mech.setHoldDefaults();
mech.holdingMassScale = 0.05; //can hold heavier blocks with lower cost to jumping
mech.fieldShieldingScale = 10;
mech.fieldShieldingScale = 20;
// mech.fieldArc = 1; //field covers full 360 degrees
// mech.grabRange = 150;
// mech.fieldArc = 1 //0.08;
@@ -1056,17 +1056,17 @@ const mech = {
},
() => {
mech.fieldMode = 4;
game.makeTextLog("<strong style='font-size:30px;'>Zero-Point Energy Field</strong><br> (right mouse or space bar) <p>improved energy regeneration<br> oscillating shields surround player</p>", 1200);
game.makeTextLog("<strong style='font-size:30px;'>Standing Wave Harmonics</strong><br> (right mouse or space bar) <p>oscillating shields surround player<br>improved energy regeneration<br>improved field shielding efficiency</p>", 1200);
mech.setHoldDefaults();
mech.fieldShieldingScale = 0.7;
mech.fieldShieldingScale = 0.3;
mech.fieldRegen = 0.007; //0.0015
mech.fieldArc = 1; //field covers full 360 degrees
// mech.fieldArc = 1; //field covers full 360 degrees
mech.calculateFieldThreshold(); //run after setting fieldArc, used for powerUp grab and mobPush with lookingAt(mob)
mech.hold = function () {
grabRange1 = 60 + 60 * Math.sin(game.cycle / 23)
grabRange2 = 70 + 70 * Math.sin(game.cycle / 37)
grabRange3 = 80 + 80 * Math.sin(game.cycle / 47)
grabRange1 = 100 + 95 * Math.sin(game.cycle / 23)
grabRange2 = 105 + 85 * Math.sin(game.cycle / 37)
grabRange3 = 90 + 90 * Math.sin(game.cycle / 47)
mech.grabRange = Math.max(grabRange1, grabRange2, grabRange3)
if (mech.isHolding) {
@@ -1077,27 +1077,16 @@ const mech = {
ctx.fillStyle = "rgba(110,170,200," + (0.15 + 0.15 * Math.random()) + ")";
ctx.beginPath();
ctx.arc(mech.pos.x, mech.pos.y, grabRange1, mech.angle - Math.PI * mech.fieldArc, mech.angle + Math.PI * mech.fieldArc, false);
ctx.arc(mech.pos.x, mech.pos.y, grabRange1, 0, 2 * Math.PI);
ctx.fill();
ctx.beginPath();
ctx.arc(mech.pos.x, mech.pos.y, grabRange2, mech.angle - Math.PI * mech.fieldArc, mech.angle + Math.PI * mech.fieldArc, false);
ctx.arc(mech.pos.x, mech.pos.y, grabRange2, 0, 2 * Math.PI);
ctx.fill();
ctx.beginPath();
ctx.arc(mech.pos.x, mech.pos.y, grabRange3, mech.angle - Math.PI * mech.fieldArc, mech.angle + Math.PI * mech.fieldArc, false);
ctx.arc(mech.pos.x, mech.pos.y, grabRange3, 0, 2 * Math.PI);
ctx.fill();
// //draw random lines in field for cool effect
// let offAngle = this.angle + 2 * Math.PI * this.fieldArc * (Math.random() - 0.5);
// ctx.beginPath();
// eye = 15;
// ctx.moveTo(mech.pos.x + eye * Math.cos(this.angle), mech.pos.y + eye * Math.sin(this.angle));
// ctx.lineTo(this.pos.x + range * Math.cos(offAngle), this.pos.y + range * Math.sin(offAngle));
// ctx.strokeStyle = "rgba(120,170,255,0.4)";
// ctx.stroke();
mech.grabPowerUp();
mech.pushMobs360(mech.grabRange + 10);
mech.pushMobs360(mech.grabRange + 25);
mech.lookForPickUp();
} else if (mech.holdingTarget && mech.fireCDcycle < game.cycle) { //holding, but field button is released
mech.pickUp();
@@ -1109,15 +1098,15 @@ const mech = {
},
() => {
mech.fieldMode = 5;
game.makeTextLog("<strong style='font-size:30px;'>Nano-Scale Manufacturing</strong><br> (passive effect) <p>excess field energy builds drones<br> <span style='color:#a00;'>decreased</span> field shielding efficiency</p>", 1200);
game.makeTextLog("<strong style='font-size:30px;'>Nano-Scale Manufacturing</strong><br> (passive effect) <p>excess field energy used to build drones<br> <span style='color:#a00;'>decreased</span> field shielding efficiency</p>", 1200);
mech.setHoldDefaults();
mech.fieldShieldingScale = 10;
mech.fieldShieldingScale = 15;
mech.grabRange = 155;
mech.fieldArc = 0.1; //0.2 is normal
mech.calculateFieldThreshold(); //run after setting fieldArc, used for powerUp grab and mobPush with lookingAt(mob)
mech.hold = function () {
if (mech.fieldMeter === 1) {
mech.fieldMeter -= 0.21;
mech.fieldMeter -= 0.2;
b.guns[12].fire() //spawn drone
}
if (mech.isHolding) {
@@ -1141,8 +1130,8 @@ const mech = {
mech.fieldMode = 6;
game.makeTextLog("<strong style='font-size:30px;'>Metamaterial Refractive Optics</strong><br> (right mouse or space bar) <p>localized invisibility field<br> greatly <span style='color:#a00;'>decreased</span> field shielding efficiency</p>", 1200);
mech.setHoldDefaults();
mech.fieldShieldingScale = 10000;
mech.grabRange = 160;
mech.fieldShieldingScale = 100;
// mech.grabRange = 160;
mech.hold = function () {
mech.isStealth = false //isStealth is checked in mob foundPlayer()
@@ -1152,13 +1141,17 @@ const mech = {
mech.holding();
mech.throw();
} else if ((keys[32] || game.mouseDownRight) && mech.fieldCDcycle < game.cycle) {
const DRAIN = 0.0004 //mech.fieldRegen = 0.0015
const DRAIN = 0.0003 //mech.fieldRegen = 0.0015
if (mech.fieldMeter > DRAIN) {
mech.fieldMeter -= DRAIN;
mech.isStealth = true //isStealth is checked in mob foundPlayer()
//draw stealth field
// ctx.fill();
if (mech.crouch) {
mech.grabRange = mech.grabRange * 0.96 + 100 * 0.04;
} else {
mech.grabRange = mech.grabRange * 0.96 + 220 * 0.04;
}
ctx.beginPath();
ctx.arc(mech.pos.x, mech.pos.y, mech.grabRange, 0, 2 * Math.PI);
ctx.globalCompositeOperation = "destination-in"; //in or atop
@@ -1168,7 +1161,7 @@ const mech = {
ctx.fillStyle = `rgba(0,30,50,${0.5+0.07*Math.random()})` //"rgba(210,230," + HUE + ",0.5)";
ctx.fill();
mech.pushMobs360();
mech.pushMobs360(130);
mech.grabPowerUp();
mech.lookForPickUp();
} else {