diff --git a/index.html b/index.html
index 1251708..08c8d41 100644
--- a/index.html
+++ b/index.html
@@ -85,12 +85,6 @@
Q, E, and mouse wheel change weapons
", 200); } - if (mech.isHolding) { + if (mech.holdingTarget) { mech.drop(); } } @@ -1761,7 +1761,7 @@ const b = { //use energy to explode const energy = mech.fieldMeter * 0.25 mech.fieldMeter -= energy - if (best.who) b.explosion(path[1], 1200 * energy) + if (best.who) b.explosion(path[1], 1000 * energy) mech.fireCDcycle = mech.cycle + Math.floor(65 * b.modFireRate); // cool down //draw laser beam diff --git a/js/game.js b/js/game.js index defe576..4301ff1 100644 --- a/js/game.js +++ b/js/game.js @@ -86,7 +86,6 @@ const game = { accelScale: null, //set in levels.setDifficulty CDScale: null, //set in levels.setDifficulty lookFreqScale: null, //set in levels.setDifficulty - isDraftMode: false, // dropFPS(cap = 40, time = 15) { // game.fpsCap = cap // game.fpsInterval = 1000 / game.fpsCap; @@ -501,7 +500,6 @@ const game = { document.getElementById("choose-grid").style.display = "none" document.getElementById("controls").style.display = "inline"; document.getElementById("build-button").style.display = "inline" - document.getElementById("draft-button").style.display = "inline" isShowingBuilds = false document.getElementById("settings").style.display = "inline"; document.getElementById("splash").style.display = "inline"; @@ -520,7 +518,6 @@ const game = { document.getElementById("controls").style.display = "none"; document.getElementById("settings").style.display = "none"; document.getElementById("build-button").style.display = "none"; - document.getElementById("draft-button").style.display = "none" document.getElementById("splash").onclick = null; //removes the onclick effect so the function only runs once document.getElementById("splash").style.display = "none"; //hides the element that spawned the function document.getElementById("dmg").style.display = "inline"; diff --git a/js/index.js b/js/index.js index f4924c0..8def363 100644 --- a/js/index.js +++ b/js/index.js @@ -2,8 +2,6 @@ /* TODO: ******************************************* ***************************************************** -make draft mode default and add in negative mods - field: catch mobs in your field and make them into guardian bullets negative mod effect ideas @@ -11,6 +9,8 @@ negative mod effect ideas -fire rate -slow life decay +mod: gain an extra choice of power ups + mod: if you fire when out of ammo you gain 1 ammo pack at the cost of 10% max health 20% of your current health @@ -104,12 +104,6 @@ const cat = { } -document.getElementById("draft-button").addEventListener("click", () => { - game.isDraftMode = true; - game.startGame(); -}); - - //build build grid display const build = { isShowingBuilds: false, @@ -163,7 +157,6 @@ const build = { document.getElementById("build-button").addEventListener("click", () => { document.getElementById("build-button").style.display = "none"; - document.getElementById("draft-button").style.display = "none"; const el = document.getElementById("build-grid") if (build.isShowingBuilds) { el.style.display = "none" diff --git a/js/level.js b/js/level.js index f8a40ae..f56742c 100644 --- a/js/level.js +++ b/js/level.js @@ -67,6 +67,7 @@ const level = { //****************************************************************************************************************** testingMap() { //start with all guns + level.difficultyIncrease(8) game.zoomScale = 1400 //1400 is normal spawn.setSpawnList(); mech.setPosToSpawn(-75, -60); //normal spawn @@ -117,11 +118,11 @@ const level = { // powerUps.spawn(450, -400, "mod", false, 6); // powerUps.spawn(450, -400, "mod", false); // spawn.bodyRect(-45, -100, 40, 50); - spawn.groupBoss(800, -1050); - spawn.shooter(400, -1050); - spawn.shooter(1200, -1050); + // spawn.groupBoss(800, -1050); + spawn.spinner(400, -1050); + spawn.spinner(1200, -1050); // spawn.groupBoss(-600, -550); - spawn.hopper(800, -150); + spawn.spinner(800, -150); // spawn.beamer(800, -150); // spawn.grower(800, -250); // spawn.blinker(800, -250, 40); diff --git a/js/player.js b/js/player.js index 069787b..65ee93c 100644 --- a/js/player.js +++ b/js/player.js @@ -687,7 +687,7 @@ const mech = { return false; }, drop() { - if (mech.isHolding) { + if (mech.isHolding && mech.holdingTarget) { mech.isHolding = false; mech.definePlayerMass() mech.holdingTarget.collisionFilter.category = cat.body; @@ -735,6 +735,7 @@ const mech = { } }, holding() { + // if (mech.holdingTarget) { mech.fieldMeter -= mech.fieldRegen; if (mech.fieldMeter < 0) mech.fieldMeter = 0; Matter.Body.setPosition(mech.holdingTarget, { @@ -743,32 +744,35 @@ const mech = { }); Matter.Body.setVelocity(mech.holdingTarget, player.velocity); Matter.Body.rotate(mech.holdingTarget, 0.01 / mech.holdingTarget.mass); //gently spin the block + // } }, throw () { if ((keys[32] || game.mouseDownRight)) { if (mech.fieldMeter > 0.0007) { - mech.fieldMeter -= 0.0007; - mech.throwCharge += mech.throwChargeRate;; - //draw charge - const x = mech.pos.x + 15 * Math.cos(mech.angle); - const y = mech.pos.y + 15 * Math.sin(mech.angle); - const len = mech.holdingTarget.vertices.length - 1; - const edge = mech.throwCharge * mech.throwCharge * 0.02; - const grd = ctx.createRadialGradient(x, y, edge, x, y, edge + 5); - grd.addColorStop(0, "rgba(255,50,150,0.3)"); - grd.addColorStop(1, "transparent"); - ctx.fillStyle = grd; - ctx.beginPath(); - ctx.moveTo(x, y); - ctx.lineTo(mech.holdingTarget.vertices[len].x, mech.holdingTarget.vertices[len].y); - ctx.lineTo(mech.holdingTarget.vertices[0].x, mech.holdingTarget.vertices[0].y); - ctx.fill(); - for (let i = 0; i < len; i++) { + if (mech.holdingTarget) { + mech.fieldMeter -= 0.0007; + mech.throwCharge += mech.throwChargeRate;; + //draw charge + const x = mech.pos.x + 15 * Math.cos(mech.angle); + const y = mech.pos.y + 15 * Math.sin(mech.angle); + const len = mech.holdingTarget.vertices.length - 1; + const edge = mech.throwCharge * mech.throwCharge * 0.02; + const grd = ctx.createRadialGradient(x, y, edge, x, y, edge + 5); + grd.addColorStop(0, "rgba(255,50,150,0.3)"); + grd.addColorStop(1, "transparent"); + ctx.fillStyle = grd; ctx.beginPath(); ctx.moveTo(x, y); - ctx.lineTo(mech.holdingTarget.vertices[i].x, mech.holdingTarget.vertices[i].y); - ctx.lineTo(mech.holdingTarget.vertices[i + 1].x, mech.holdingTarget.vertices[i + 1].y); + ctx.lineTo(mech.holdingTarget.vertices[len].x, mech.holdingTarget.vertices[len].y); + ctx.lineTo(mech.holdingTarget.vertices[0].x, mech.holdingTarget.vertices[0].y); ctx.fill(); + for (let i = 0; i < len; i++) { + ctx.beginPath(); + ctx.moveTo(x, y); + ctx.lineTo(mech.holdingTarget.vertices[i].x, mech.holdingTarget.vertices[i].y); + ctx.lineTo(mech.holdingTarget.vertices[i + 1].x, mech.holdingTarget.vertices[i + 1].y); + ctx.fill(); + } } } else { mech.drop() diff --git a/js/powerups.js b/js/powerups.js index a85b6f6..2217228 100644 --- a/js/powerups.js +++ b/js/powerups.js @@ -43,7 +43,7 @@ const powerUps = { heal = Math.min(mech.maxHealth - mech.health, heal) if (b.isModRecursiveHealing) heal *= 2 mech.addHealth(heal); - if (heal > 0) game.makeTextLog(" heal " + (heal * 100).toFixed(0) + "%", 300) + if (heal > 0) game.makeTextLog(" heal " + (heal * game.healScale * 100).toFixed(0) + "%", 300) } }, ammo: { @@ -91,54 +91,27 @@ const powerUps = { return 45; }, effect() { - if (game.isDraftMode) { - function doNotHave(who, skip1 = -1, skip2 = -1) { - let options = []; - for (let i = 1; i < who.length; i++) { - if (i !== mech.fieldMode && i !== skip1 && i !== skip2) options.push(i); - } - if (options.length > 0) return options[Math.floor(Math.random() * options.length)] + function doNotHave(who, skip1 = -1, skip2 = -1) { + let options = []; + for (let i = 1; i < who.length; i++) { + if (i !== mech.fieldMode && i !== skip1 && i !== skip2) options.push(i); } + if (options.length > 0) return options[Math.floor(Math.random() * options.length)] + } - let choice1 = doNotHave(mech.fieldUpgrades) - let choice2 = doNotHave(mech.fieldUpgrades, choice1) - let choice3 = doNotHave(mech.fieldUpgrades, choice1, choice2) - if (choice1 > -1) { - let text = `