From 927933a75476189c5e524e6f991903a63632e88b Mon Sep 17 00:00:00 2001 From: landgreen Date: Thu, 28 Nov 2019 19:08:12 -0800 Subject: [PATCH] recolor field to be brighter, decrease mod power up drops --- js/game.js | 250 ++++++++++++++++++++++++------------------------- js/level.js | 1 - js/player.js | 4 +- js/powerups.js | 6 +- style.css | 4 +- 5 files changed, 132 insertions(+), 133 deletions(-) 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 {