diff --git a/js/game.js b/js/game.js
index 013de3e..dab8045 100644
--- a/js/game.js
+++ b/js/game.js
@@ -170,7 +170,7 @@ const game = {
//
SVGleftMouse: '',
- SVGrightMouse: '',
+ SVGrightMouse: '',
makeTextLog(text, time = 180) {
if (game.replaceTextLog) {
document.getElementById("text-log").innerHTML = text;
@@ -733,133 +733,133 @@ const game = {
ctx.fillStyle = this.mapFill;
ctx.fill(this.mapPath);
},
- seeEdges() {
- const eye = {
- x: mech.pos.x + 20 * Math.cos(mech.angle),
- y: mech.pos.y + 20 * Math.sin(mech.angle)
- };
- //find all vertex nodes in range and in LOS
- findNodes = function (domain, center) {
- let nodes = [];
- for (let i = 0; i < domain.length; ++i) {
- let vertices = domain[i].vertices;
+ // seeEdges() {
+ // const eye = {
+ // x: mech.pos.x + 20 * Math.cos(mech.angle),
+ // y: mech.pos.y + 20 * Math.sin(mech.angle)
+ // };
+ // //find all vertex nodes in range and in LOS
+ // findNodes = function (domain, center) {
+ // let nodes = [];
+ // for (let i = 0; i < domain.length; ++i) {
+ // let vertices = domain[i].vertices;
- for (let j = 0, len = vertices.length; j < len; j++) {
- //calculate distance to player
- const dx = vertices[j].x - center.x;
- const dy = vertices[j].y - center.y;
- if (dx * dx + dy * dy < 800 * 800 && Matter.Query.ray(domain, center, vertices[j]).length === 0) {
- nodes.push(vertices[j]);
- }
- }
- }
- return nodes;
- };
- let nodes = findNodes(map, eye);
- //sort node list by angle to player
- nodes.sort(function (a, b) {
- //sub artan2 from player loc
- const dx = a.x - eye.x;
- const dy = a.y - eye.y;
- return Math.atan2(dy, dx) - Math.atan2(dy, dx);
- });
- //draw nodes
- ctx.lineWidth = 2;
- ctx.strokeStyle = "#000";
- ctx.beginPath();
- for (let i = 0; i < nodes.length; ++i) {
- ctx.lineTo(nodes[i].x, nodes[i].y);
- }
- ctx.stroke();
- },
- see() {
- const vertexCollision = function (
- v1,
- v1End,
- domain,
- best = {
- x: null,
- y: null,
- dist2: Infinity,
- who: null,
- v1: null,
- v2: null
- }
- ) {
- for (let i = 0; i < domain.length; ++i) {
- let vertices = domain[i].vertices;
- const len = vertices.length - 1;
- for (let j = 0; j < len; j++) {
- results = game.checkLineIntersection(v1, v1End, vertices[j], vertices[j + 1]);
- if (results.onLine1 && results.onLine2) {
- const dx = v1.x - results.x;
- const dy = v1.y - results.y;
- const dist2 = dx * dx + dy * dy;
- if (dist2 < best.dist2 && (!domain[i].mob || domain[i].alive)) {
- best = {
- x: results.x,
- y: results.y,
- dist2: dist2,
- who: domain[i],
- v1: vertices[j],
- v2: vertices[j + 1]
- };
- }
- }
- }
- results = game.checkLineIntersection(v1, v1End, vertices[0], vertices[len]);
- if (results.onLine1 && results.onLine2) {
- const dx = v1.x - results.x;
- const dy = v1.y - results.y;
- const dist2 = dx * dx + dy * dy;
- if (dist2 < best.dist2 && (!domain[i].mob || domain[i].alive)) {
- best = {
- x: results.x,
- y: results.y,
- dist2: dist2,
- who: domain[i],
- v1: vertices[0],
- v2: vertices[len]
- };
- }
- }
- }
- return best;
- };
- const range = 3000;
- ctx.beginPath();
- for (let i = 0; i < Math.PI * 2; i += Math.PI / 2 / 100) {
- const cosAngle = Math.cos(mech.angle + i);
- const sinAngle = Math.sin(mech.angle + i);
+ // for (let j = 0, len = vertices.length; j < len; j++) {
+ // //calculate distance to player
+ // const dx = vertices[j].x - center.x;
+ // const dy = vertices[j].y - center.y;
+ // if (dx * dx + dy * dy < 800 * 800 && Matter.Query.ray(domain, center, vertices[j]).length === 0) {
+ // nodes.push(vertices[j]);
+ // }
+ // }
+ // }
+ // return nodes;
+ // };
+ // let nodes = findNodes(map, eye);
+ // //sort node list by angle to player
+ // nodes.sort(function (a, b) {
+ // //sub artan2 from player loc
+ // const dx = a.x - eye.x;
+ // const dy = a.y - eye.y;
+ // return Math.atan2(dy, dx) - Math.atan2(dy, dx);
+ // });
+ // //draw nodes
+ // ctx.lineWidth = 2;
+ // ctx.strokeStyle = "#000";
+ // ctx.beginPath();
+ // for (let i = 0; i < nodes.length; ++i) {
+ // ctx.lineTo(nodes[i].x, nodes[i].y);
+ // }
+ // ctx.stroke();
+ // },
+ // see() {
+ // const vertexCollision = function (
+ // v1,
+ // v1End,
+ // domain,
+ // best = {
+ // x: null,
+ // y: null,
+ // dist2: Infinity,
+ // who: null,
+ // v1: null,
+ // v2: null
+ // }
+ // ) {
+ // for (let i = 0; i < domain.length; ++i) {
+ // let vertices = domain[i].vertices;
+ // const len = vertices.length - 1;
+ // for (let j = 0; j < len; j++) {
+ // results = game.checkLineIntersection(v1, v1End, vertices[j], vertices[j + 1]);
+ // if (results.onLine1 && results.onLine2) {
+ // const dx = v1.x - results.x;
+ // const dy = v1.y - results.y;
+ // const dist2 = dx * dx + dy * dy;
+ // if (dist2 < best.dist2 && (!domain[i].mob || domain[i].alive)) {
+ // best = {
+ // x: results.x,
+ // y: results.y,
+ // dist2: dist2,
+ // who: domain[i],
+ // v1: vertices[j],
+ // v2: vertices[j + 1]
+ // };
+ // }
+ // }
+ // }
+ // results = game.checkLineIntersection(v1, v1End, vertices[0], vertices[len]);
+ // if (results.onLine1 && results.onLine2) {
+ // const dx = v1.x - results.x;
+ // const dy = v1.y - results.y;
+ // const dist2 = dx * dx + dy * dy;
+ // if (dist2 < best.dist2 && (!domain[i].mob || domain[i].alive)) {
+ // best = {
+ // x: results.x,
+ // y: results.y,
+ // dist2: dist2,
+ // who: domain[i],
+ // v1: vertices[0],
+ // v2: vertices[len]
+ // };
+ // }
+ // }
+ // }
+ // return best;
+ // };
+ // const range = 3000;
+ // ctx.beginPath();
+ // for (let i = 0; i < Math.PI * 2; i += Math.PI / 2 / 100) {
+ // const cosAngle = Math.cos(mech.angle + i);
+ // const sinAngle = Math.sin(mech.angle + i);
- const start = {
- x: mech.pos.x + 20 * cosAngle,
- y: mech.pos.y + 20 * sinAngle
- };
- const end = {
- x: mech.pos.x + range * cosAngle,
- y: mech.pos.y + range * sinAngle
- };
- let result = vertexCollision(start, end, map);
- result = vertexCollision(start, end, body, result);
- result = vertexCollision(start, end, mob, result);
+ // const start = {
+ // x: mech.pos.x + 20 * cosAngle,
+ // y: mech.pos.y + 20 * sinAngle
+ // };
+ // const end = {
+ // x: mech.pos.x + range * cosAngle,
+ // y: mech.pos.y + range * sinAngle
+ // };
+ // let result = vertexCollision(start, end, map);
+ // result = vertexCollision(start, end, body, result);
+ // result = vertexCollision(start, end, mob, result);
- if (result.dist2 < range * range) {
- // ctx.arc(result.x, result.y, 2, 0, 2 * Math.PI);
- ctx.lineTo(result.x, result.y);
- } else {
- // ctx.arc(end.x, end.y, 2, 0, 2 * Math.PI);
- ctx.lineTo(end.x, end.y);
- }
- }
- // ctx.lineWidth = 1;
- // ctx.strokeStyle = "#000";
- // ctx.stroke();
- ctx.fillStyle = "rgba(0,0,0,0.3)";
- ctx.fillStyle = "#fff";
- ctx.fill();
- ctx.clip();
- },
+ // if (result.dist2 < range * range) {
+ // // ctx.arc(result.x, result.y, 2, 0, 2 * Math.PI);
+ // ctx.lineTo(result.x, result.y);
+ // } else {
+ // // ctx.arc(end.x, end.y, 2, 0, 2 * Math.PI);
+ // ctx.lineTo(end.x, end.y);
+ // }
+ // }
+ // // ctx.lineWidth = 1;
+ // // ctx.strokeStyle = "#000";
+ // // ctx.stroke();
+ // ctx.fillStyle = "rgba(0,0,0,0.3)";
+ // ctx.fillStyle = "#fff";
+ // ctx.fill();
+ // ctx.clip();
+ // },
body() {
ctx.beginPath();
for (let i = 0, len = body.length; i < len; ++i) {
diff --git a/js/level.js b/js/level.js
index 2e31592..ca751f1 100644
--- a/js/level.js
+++ b/js/level.js
@@ -1425,7 +1425,6 @@ const level = {
ctx.fillRect(f.x, f.y, f.width, f.height);
}
},
-
fill: [],
drawFills() {
for (let i = 0, len = level.fill.length; i < len; ++i) {
diff --git a/js/player.js b/js/player.js
index 3c56e39..7a83107 100644
--- a/js/player.js
+++ b/js/player.js
@@ -670,7 +670,7 @@ const mech = {
mech.fieldMeter += mech.fieldRegen;
ctx.fillStyle = "rgba(0, 0, 0, 0.4)";
ctx.fillRect(this.pos.x - this.radius, this.pos.y - 50, range, 10);
- ctx.fillStyle = "#0af";
+ ctx.fillStyle = "#0cf";
ctx.fillRect(this.pos.x - this.radius, this.pos.y - 50, range * this.fieldMeter, 10);
} else {
mech.fieldMeter = 1
@@ -1119,7 +1119,7 @@ const mech = {
},
{
name: "plasma torch",
- description: "field emits a beam of destructive ionized gas
decreased shield range and efficiency",
+ description: "field emits a beam of destructive ionized gas
decreased shield range and efficiency",
effect: () => {
mech.fieldMode = 2;
mech.fieldText();
diff --git a/js/powerups.js b/js/powerups.js
index c959fb3..d2a1af6 100644
--- a/js/powerups.js
+++ b/js/powerups.js
@@ -54,7 +54,7 @@ const powerUps = {
},
field: {
name: "field",
- color: "#0af",
+ color: "#0cf",
size() {
return 45;
},
@@ -153,7 +153,7 @@ const powerUps = {
powerUps.spawn(x, y, "gun");
return;
}
- if (Math.random() < 0.0018 * (b.mods.length - b.modCount - 2)) {
+ if (Math.random() < 0.004 * (8 - b.modCount)) {
powerUps.spawn(x, y, "mod");
return;
}
@@ -165,7 +165,7 @@ const powerUps = {
spawnBossPowerUp(x, y) { //boss spawns field and gun mod upgrades
if (mech.fieldMode === 0) {
powerUps.spawn(x, y, "field")
- } else if (Math.random() < 0.047 * (b.mods.length - b.modCount)) {
+ } else if (Math.random() < 0.042 * (b.mods.length - b.modCount)) {
powerUps.spawn(x, y, "mod")
} else if (Math.random() < 0.3) {
powerUps.spawn(x, y, "field");
diff --git a/style.css b/style.css
index 1dc53a6..de8caaf 100644
--- a/style.css
+++ b/style.css
@@ -213,7 +213,7 @@ em {
}
.color-f {
- color: #0af;
+ color: #0cf;
}
.color-b {
@@ -259,7 +259,7 @@ em {
}
.field {
- background: #0af;
+ background: #0cf;
}
.mod {