diff --git a/js/bullets.js b/js/bullets.js
index d51ad94..02db190 100644
--- a/js/bullets.js
+++ b/js/bullets.js
@@ -40,7 +40,7 @@ const b = {
},
{
name: "Anti-Matter Cores",
- description: "your explosions are larger and more dangerous",
+ description: "The radius of your explosions is doubled",
effect: () => {
b.mod = 1
b.modText();
@@ -50,7 +50,7 @@ const b = {
}
},
{
- name: "High Caliber Bullets",
+ name: "Depleted Uranium Rounds",
description: "your bullets are larger and do more physical damage",
effect: () => {
b.mod = 2
@@ -69,7 +69,7 @@ const b = {
b.mod = 3
b.modText();
b.setModDefaults(); //good with laser, and all fields
- b.modEnergySiphon = 0.2;
+ b.modEnergySiphon = 0.25;
}
},
{
@@ -94,12 +94,12 @@ const b = {
},
{
name: "Decay Resistant Topology",
- description: "your bullets last 30% longer",
+ description: "your bullets last 40% longer",
effect: () => {
b.mod = 6
b.modText();
b.setModDefaults(); //good with: drones, super balls, spore, missiles, wave beam(range), rapid fire(range), flak(range)
- b.modBulletsLastLonger = 1.30
+ b.modBulletsLastLonger = 1.40
}
},
{
diff --git a/js/index.js b/js/index.js
index 0923788..53b2065 100644
--- a/js/index.js
+++ b/js/index.js
@@ -2,9 +2,6 @@
/* TODO: *******************************************
*****************************************************
-make player legs just slide if the player is above the normal speed
- like when you fire the one shot
-
make power ups keep moving to player if the field is turned off
levels spawn by having the map aspects randomly fly into place
@@ -12,11 +9,9 @@ levels spawn by having the map aspects randomly fly into place
new map with repeating endlessness
get ideas from Manifold Garden game
if falling, get teleported above the map
+ I tried it, but had trouble getting the camera to adjust
this can apply to blocks mobs, and power ups as well
-
-
-when paused show details on field, mods, guns?
-
+
Find a diegetic way to see player damage (and or field meter too)
a health meter, like the field meter above player? (doesn't work with the field meter)
diff --git a/js/level.js b/js/level.js
index 09c8a0a..1a62c4b 100644
--- a/js/level.js
+++ b/js/level.js
@@ -12,7 +12,7 @@ const level = {
onLevel: 0,
start() {
if (game.levelsCleared === 0) {
- // game.levelsCleared = 6; //for testing to simulate possible mobs spawns
+ // game.levelsCleared = 16; //for testing to simulate possible mobs spawns
// b.giveGuns("all", 1000)
// b.giveGuns(3) // set a starting gun for testing
// mech.fieldUpgrades[2].effect(); //give a field power up for testing
diff --git a/js/player.js b/js/player.js
index b395743..fee16d8 100644
--- a/js/player.js
+++ b/js/player.js
@@ -359,12 +359,11 @@ const mech = {
alive: true,
death() {
if (b.modIsImmortal) { //if player has the immortality buff, spawn on the same level with randomized stats
- //remove mod
+ //remove mods
b.mod = null
b.setModDefaults();
b.modText();
-
function randomizeField() {
if (game.levelsCleared > 5) {
mech.fieldUpgrades[Math.floor(Math.random() * (mech.fieldUpgrades.length))].effect();
@@ -383,17 +382,23 @@ const mech = {
b.inventory = []; //removes guns and ammo
for (let i = 0, len = b.guns.length; i < len; ++i) {
b.guns[i].have = false;
- if (b.guns[i].ammo != Infinity) b.guns[i].ammo = 0;
+ if (b.guns[i].ammo !== Infinity) b.guns[i].ammo = 0;
}
if (game.levelsCleared > 0) powerUps.gun.effect();
if (game.levelsCleared > 1) powerUps.gun.effect();
if (game.levelsCleared > 3) powerUps.gun.effect();
if (game.levelsCleared > 6) powerUps.gun.effect();
- game.makeGunHUD();
+ //randomize ammo
+ for (let i = 0, len = b.inventory.length; i < len; i++) {
+ if (b.guns[b.inventory[i]].ammo !== Infinity) {
+ b.guns[b.inventory[i]].ammo = Math.max(0, Math.floor(2.2 * b.guns[b.inventory[i]].ammo * (Math.random() - 0.15)))
+ }
+ }
+ game.makeGunHUD(); //update gun HUD
}
game.wipe = function () { //set wipe to have trails
- ctx.fillStyle = "rgba(255,255,255,0.005)";
+ ctx.fillStyle = "rgba(255,255,255,0)";
ctx.fillRect(0, 0, canvas.width, canvas.height);
}
@@ -730,33 +735,29 @@ const mech = {
grabPowerUp() {
//look for power ups to grab
if (mech.fieldCDcycle < mech.cycle) {
- const grabPowerUpRange2 = (this.grabRange + 200) * (this.grabRange + 200)
+ const grabPowerUpRange2 = (this.grabRange + 220) * (this.grabRange + 220)
for (let i = 0, len = powerUp.length; i < len; ++i) {
const dxP = mech.pos.x - powerUp[i].position.x;
const dyP = mech.pos.y - powerUp[i].position.y;
const dist2 = dxP * dxP + dyP * dyP;
-
- // float towards player if looking at and in range or if very close to player
- if (dist2 < grabPowerUpRange2 && this.lookingAt(powerUp[i]) || dist2 < 14000) {
+ // float towards player if looking at and in range or if very close to player
+ if (dist2 < grabPowerUpRange2 && this.lookingAt(powerUp[i]) || dist2 < 16000) {
+ if (dist2 < 5000) { //use power up if it is close enough
+ Matter.Body.setVelocity(player, { //player knock back, after grabbing power up
+ x: player.velocity.x + ((powerUp[i].velocity.x * powerUp[i].mass) / player.mass) * 0.3,
+ y: player.velocity.y + ((powerUp[i].velocity.y * powerUp[i].mass) / player.mass) * 0.3
+ });
+ mech.usePowerUp(i);
+ return;
+ }
this.fieldMeter -= this.fieldRegen * 0.5;
powerUp[i].force.x += 7 * (dxP / dist2) * powerUp[i].mass;
powerUp[i].force.y += 7 * (dyP / dist2) * powerUp[i].mass - powerUp[i].mass * game.g; //negate gravity
//extra friction
Matter.Body.setVelocity(powerUp[i], {
- x: powerUp[i].velocity.x * 0.4,
- y: powerUp[i].velocity.y * 0.4
+ x: powerUp[i].velocity.x * 0.11,
+ y: powerUp[i].velocity.y * 0.11
});
- if (dist2 < 5000) { //use power up if it is close enough
- //player knockback
- Matter.Body.setVelocity(player, {
- x: player.velocity.x + ((powerUp[i].velocity.x * powerUp[i].mass) / player.mass) * 0.2,
- y: player.velocity.y + ((powerUp[i].velocity.y * powerUp[i].mass) / player.mass) * 0.2
- });
- mech.usePowerUp(i);
- // this.fireCDcycle = mech.cycle + 10; //cool down
- return;
- }
- // return;
}
}
}
@@ -775,7 +776,6 @@ const mech = {
//mob and player knock back
const angle = Math.atan2(player.position.y - mob[i].position.y, player.position.x - mob[i].position.x);
const mass = Math.min(Math.sqrt(mob[i].mass), 4);
- // console.log(mob[i].mass, Math.sqrt(mob[i].mass), mass)
Matter.Body.setVelocity(mob[i], {
x: player.velocity.x - (15 * Math.cos(angle)) / mass,
y: player.velocity.y - (15 * Math.sin(angle)) / mass
@@ -860,21 +860,21 @@ const mech = {
pickUp() {
//triggers when a hold target exits and field button is released
this.isHolding = true;
- if (this.holdingTarget) {
- this.holdingTarget.collisionFilter.category = 0x010000;
- this.holdingTarget.collisionFilter.mask = 0x011111;
- }
- //combine momentum
- const px = player.velocity.x * player.mass + this.holdingTarget.velocity.x * this.holdingTarget.mass;
- const py = player.velocity.y * player.mass + this.holdingTarget.velocity.y * this.holdingTarget.mass;
- Matter.Body.setVelocity(player, {
- x: px / (player.mass + this.holdingTarget.mass),
- y: py / (player.mass + this.holdingTarget.mass)
- });
this.definePlayerMass(5 + this.holdingTarget.mass * this.holdingMassScale)
//collide with nothing
this.holdingTarget.collisionFilter.category = 0x000000;
this.holdingTarget.collisionFilter.mask = 0x000000;
+ // if (this.holdingTarget) {
+ // this.holdingTarget.collisionFilter.category = 0x010000;
+ // this.holdingTarget.collisionFilter.mask = 0x011111;
+ // }
+ // combine momentum // this doesn't feel right in game
+ // const px = player.velocity.x * player.mass + this.holdingTarget.velocity.x * this.holdingTarget.mass;
+ // const py = player.velocity.y * player.mass + this.holdingTarget.velocity.y * this.holdingTarget.mass;
+ // Matter.Body.setVelocity(player, {
+ // x: px / (player.mass + this.holdingTarget.mass),
+ // y: py / (player.mass + this.holdingTarget.mass)
+ // });
},
wakeCheck() {
if (mech.isBodiesAsleep) {
@@ -1007,7 +1007,7 @@ const mech = {
}
},
{
- name: "Electrostatic Force Field",
+ name: "Electrostatic Field",
description: "field does damage on contact
blocks are thrown at a higher velocity
increased field regeneration",
effect: () => {
mech.fieldMode = 2;
@@ -1016,7 +1016,7 @@ const mech = {
//throw quicker and harder
mech.grabRange = 225;
mech.fieldShieldingScale = 2;
- mech.fieldRegen *= 3;
+ mech.fieldRegen *= 2;
mech.throwChargeRate = 3;
mech.throwChargeMax = 140;
mech.fieldDamage = 5; //passive field does extra damage
diff --git a/js/powerups.js b/js/powerups.js
index b43db1a..6100163 100644
--- a/js/powerups.js
+++ b/js/powerups.js
@@ -47,7 +47,6 @@ const powerUps = {
},
effect() {
const previousMode = b.mod
-
if (this.mode === null) { //this.mode is set if the power up has been ejected from player
mode = b.mod //start with current mob
while (mode === b.mod) {
@@ -102,7 +101,7 @@ const powerUps = {
},
gun: {
name: "gun",
- color: "#0cf",
+ color: "#0bf",
size() {
return 30;
},
@@ -231,38 +230,4 @@ const powerUps = {
}
World.add(engine.world, powerUp[i]); //add to world
},
- attractionLoop() {
- for (let i = 0, len = powerUp.length; i < len; ++i) {
- const dxP = player.position.x - powerUp[i].position.x;
- const dyP = player.position.y - powerUp[i].position.y;
- const dist2 = dxP * dxP + dyP * dyP;
- //gravitation for pickup
- if (dist2 < 100000 && (powerUp[i].name != "heal" || mech.health < 1)) {
- if (dist2 < 2000) {
- //knock back from grabbing power up
- Matter.Body.setVelocity(player, {
- x: player.velocity.x + ((powerUp[i].velocity.x * powerUp[i].mass) / player.mass) * 0.25,
- y: player.velocity.y + ((powerUp[i].velocity.y * powerUp[i].mass) / player.mass) * 0.25
- });
- mech.usePowerUp(i);
- break;
- }
- //power up needs to be able to see player to gravitate
- if (Matter.Query.ray(map, powerUp[i].position, player.position).length === 0) { // && Matter.Query.ray(body, powerUp[i].position, player.position).length === 0
- //extra friction
- Matter.Body.setVelocity(powerUp[i], {
- x: powerUp[i].velocity.x * 0.97,
- y: powerUp[i].velocity.y * 0.97
- });
- //float towards player
- powerUp[i].force.x += (dxP / dist2) * powerUp[i].mass * 1.6;
- powerUp[i].force.y += (dyP / dist2) * powerUp[i].mass * 1.6 - powerUp[i].mass * game.g; //negate gravity
- //draw the pulling effect
- ctx.globalAlpha = 0.2;
- mech.drawHold(powerUp[i], false);
- ctx.globalAlpha = 1;
- }
- }
- }
- }
};
\ No newline at end of file
diff --git a/style.css b/style.css
index a2fed17..57fd9cd 100644
--- a/style.css
+++ b/style.css
@@ -137,7 +137,7 @@ summary {
top: 15px;
right: 15px;
z-index: 2;
- font-size: 19px;
+ font-size: 20px;
color: #000;
text-align: right;
opacity: 0.5;
@@ -158,7 +158,7 @@ summary {
line-height: 150%;
text-align: center;
z-index: 2;
- font-size: 1.3em;
+ font-size: 1.25em;
color: #000;
opacity: 0;
transition: opacity 0.5s;