wording
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
2-d physics platformer shooter
|
2-d physics rogue-lite platformer shooter
|
||||||
|
|
||||||
https://landgreen.github.io/sidescroller/
|
https://landgreen.github.io/sidescroller/
|
||||||
|
|||||||
@@ -1067,8 +1067,8 @@ const b = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "daze",
|
name: "flux pinning",
|
||||||
description: "blocking <strong>stuns</strong> mobs for 1 second<br>with the <strong>perfect diamagnetism</strong> field",
|
description: "blocking <strong>stuns</strong> mobs for <strong>+1</strong> second<br>with the <strong>perfect diamagnetism</strong> field",
|
||||||
maxCount: 9,
|
maxCount: 9,
|
||||||
count: 0,
|
count: 0,
|
||||||
allowed() {
|
allowed() {
|
||||||
@@ -1082,6 +1082,22 @@ const b = {
|
|||||||
b.isModStunField = 0;
|
b.isModStunField = 0;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "bremsstrahlung radiation",
|
||||||
|
description: "<strong>blocking</strong> with your field does <strong class='color-d'>damage</strong>",
|
||||||
|
maxCount: 9,
|
||||||
|
count: 0,
|
||||||
|
allowed() {
|
||||||
|
return mech.fieldUpgrades[mech.fieldMode].name === "standing wave harmonics" || mech.fieldUpgrades[mech.fieldMode].name === "perfect diamagnetism"
|
||||||
|
},
|
||||||
|
requires: "standing wave harmonics<br>or perfect diamagnetism",
|
||||||
|
effect() {
|
||||||
|
b.modBlockDmg += 0.4 //if you change this value also update the for loop in the electricity graphics in mech.pushMass
|
||||||
|
},
|
||||||
|
remove() {
|
||||||
|
b.modBlockDmg = 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "plasma jet",
|
name: "plasma jet",
|
||||||
description: "increase <strong>plasma torch's</strong> range by <strong>33%</strong>",
|
description: "increase <strong>plasma torch's</strong> range by <strong>33%</strong>",
|
||||||
@@ -1114,22 +1130,6 @@ const b = {
|
|||||||
b.isModHawking = 0;
|
b.isModHawking = 0;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "bremsstrahlung radiation",
|
|
||||||
description: "<strong>blocking</strong> with your field does <strong class='color-d'>damage</strong>",
|
|
||||||
maxCount: 9,
|
|
||||||
count: 0,
|
|
||||||
allowed() {
|
|
||||||
return mech.fieldUpgrades[mech.fieldMode].name === "standing wave harmonics" || mech.fieldUpgrades[mech.fieldMode].name === "perfect diamagnetism"
|
|
||||||
},
|
|
||||||
requires: "standing wave harmonics<br>or perfect diamagnetism",
|
|
||||||
effect() {
|
|
||||||
b.modBlockDmg += 0.4 //if you change this value also update the for loop in the electricity graphics in mech.pushMass
|
|
||||||
},
|
|
||||||
remove() {
|
|
||||||
b.modBlockDmg = 0;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "frequency resonance",
|
name: "frequency resonance",
|
||||||
description: "<strong>standing wave harmonics</strong> shield is retuned<br>increase <strong>size</strong> and <strong>blocking</strong> efficiency by <strong>30%</strong>",
|
description: "<strong>standing wave harmonics</strong> shield is retuned<br>increase <strong>size</strong> and <strong>blocking</strong> efficiency by <strong>30%</strong>",
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const level = {
|
|||||||
if (level.levelsCleared === 0) {
|
if (level.levelsCleared === 0) {
|
||||||
// level.difficultyIncrease(9)
|
// level.difficultyIncrease(9)
|
||||||
// b.giveGuns("mine")
|
// b.giveGuns("mine")
|
||||||
// mech.setField("perfect diamagnetism")
|
// mech.setField("phase decoherence field")
|
||||||
// b.giveMod("irradiated needles");
|
// b.giveMod("irradiated needles");
|
||||||
// b.giveMod("reflective cavity");
|
// b.giveMod("reflective cavity");
|
||||||
|
|
||||||
|
|||||||
48
js/player.js
48
js/player.js
@@ -696,10 +696,10 @@ const mech = {
|
|||||||
mech.wakeCheck();
|
mech.wakeCheck();
|
||||||
},
|
},
|
||||||
fieldMeterColor: "#0cf",
|
fieldMeterColor: "#0cf",
|
||||||
drawFieldMeter(range = 60) {
|
drawFieldMeter(bgColor = "rgba(0, 0, 0, 0.4)", range = 60) {
|
||||||
if (mech.energy < mech.fieldEnergyMax) {
|
if (mech.energy < mech.fieldEnergyMax) {
|
||||||
mech.energy += mech.fieldRegen;
|
mech.energy += mech.fieldRegen;
|
||||||
ctx.fillStyle = "rgba(0, 0, 0, 0.4)";
|
ctx.fillStyle = bgColor;
|
||||||
const xOff = mech.pos.x - mech.radius * mech.fieldEnergyMax
|
const xOff = mech.pos.x - mech.radius * mech.fieldEnergyMax
|
||||||
const yOff = mech.pos.y - 50
|
const yOff = mech.pos.y - 50
|
||||||
ctx.fillRect(xOff, yOff, range * mech.fieldEnergyMax, 10);
|
ctx.fillRect(xOff, yOff, range * mech.fieldEnergyMax, 10);
|
||||||
@@ -1171,7 +1171,7 @@ const mech = {
|
|||||||
isEasyToAim: false,
|
isEasyToAim: false,
|
||||||
effect: () => {
|
effect: () => {
|
||||||
mech.fieldShieldingScale = 0;
|
mech.fieldShieldingScale = 0;
|
||||||
mech.fieldMeterColor = "#0af"
|
// mech.fieldMeterColor = "#0af"
|
||||||
// mech.fieldArc = 0.3; //run calculateFieldThreshold after setting fieldArc, used for powerUp grab and mobPush with lookingAt(mob)
|
// mech.fieldArc = 0.3; //run calculateFieldThreshold after setting fieldArc, used for powerUp grab and mobPush with lookingAt(mob)
|
||||||
// mech.calculateFieldThreshold();
|
// mech.calculateFieldThreshold();
|
||||||
mech.hold = function () {
|
mech.hold = function () {
|
||||||
@@ -1186,19 +1186,12 @@ const mech = {
|
|||||||
} else if ((keys[32] || game.mouseDownRight && mech.energy > 0.05 && mech.fieldCDcycle < mech.cycle)) { //not hold but field button is pressed
|
} else if ((keys[32] || game.mouseDownRight && mech.energy > 0.05 && mech.fieldCDcycle < mech.cycle)) { //not hold but field button is pressed
|
||||||
//draw field
|
//draw field
|
||||||
if (mech.holdingTarget) {
|
if (mech.holdingTarget) {
|
||||||
ctx.fillStyle = "rgba(120,190,255," + (0.06 + 0.03 * Math.random()) + ")";
|
ctx.fillStyle = "rgba(110,170,200," + (0.06 + 0.03 * Math.random()) + ")";
|
||||||
ctx.strokeStyle = "rgba(120, 190, 255, " + (0.35 + 0.05 * Math.random()) + ")"
|
ctx.strokeStyle = "rgba(110, 200, 235, " + (0.35 + 0.05 * Math.random()) + ")"
|
||||||
} else {
|
} else {
|
||||||
ctx.fillStyle = "rgba(120,190,255," + (0.3 + 0.13 * Math.random() - 0.15 * wave) + ")";
|
ctx.fillStyle = "rgba(110,170,200," + (0.2 + 0.13 * Math.random() - 0.15 * wave) + ")";
|
||||||
ctx.strokeStyle = "rgba(120, 190, 255, " + (0.3 + 0.5 * Math.random()) + ")"
|
ctx.strokeStyle = "rgba(110, 200, 235, " + (0.4 + 0.5 * Math.random()) + ")"
|
||||||
}
|
}
|
||||||
// if (mech.holdingTarget) {
|
|
||||||
// ctx.fillStyle = "rgba(110,175,200," + (0.06 + 0.03 * Math.random()) + ")";
|
|
||||||
// ctx.strokeStyle = "rgba(115, 220, 255, " + (0.35 + 0.05 * Math.random()) + ")"
|
|
||||||
// } else {
|
|
||||||
// ctx.fillStyle = "rgba(110,175,200," + (0.20 + 0.07 * Math.random() - 0.1 * wave) + ")";
|
|
||||||
// ctx.strokeStyle = "rgba(115, 220, 255, " + (0.3 + 0.5 * Math.random()) + ")"
|
|
||||||
// }
|
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.arc(mech.pos.x, mech.pos.y, mech.fieldRange, mech.angle - Math.PI * mech.fieldArc, mech.angle + Math.PI * mech.fieldArc, false);
|
ctx.arc(mech.pos.x, mech.pos.y, mech.fieldRange, mech.angle - Math.PI * mech.fieldArc, mech.angle + Math.PI * mech.fieldArc, false);
|
||||||
ctx.lineWidth = 2.5 - 1.5 * wave;
|
ctx.lineWidth = 2.5 - 1.5 * wave;
|
||||||
@@ -1458,7 +1451,7 @@ const mech = {
|
|||||||
} else {
|
} else {
|
||||||
mech.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
mech.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
||||||
}
|
}
|
||||||
mech.drawFieldMeter()
|
mech.drawFieldMeter("rgba(0, 0, 0, 0.2)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1470,10 +1463,9 @@ const mech = {
|
|||||||
effect: () => {
|
effect: () => {
|
||||||
mech.fieldFire = true;
|
mech.fieldFire = true;
|
||||||
mech.holdingMassScale = 0.03; //can hold heavier blocks with lower cost to jumping
|
mech.holdingMassScale = 0.03; //can hold heavier blocks with lower cost to jumping
|
||||||
// mech.fieldMeterColor = "#000"
|
mech.fieldMeterColor = "#000"
|
||||||
|
|
||||||
mech.hold = function () {
|
mech.hold = function () {
|
||||||
mech.drawFieldMeter()
|
|
||||||
mech.fieldDamageResistance = 1;
|
mech.fieldDamageResistance = 1;
|
||||||
if (mech.isHolding) {
|
if (mech.isHolding) {
|
||||||
mech.drawHold(mech.holdingTarget);
|
mech.drawHold(mech.holdingTarget);
|
||||||
@@ -1589,6 +1581,7 @@ const mech = {
|
|||||||
mech.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
mech.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
||||||
this.fieldDrawRadius = 0
|
this.fieldDrawRadius = 0
|
||||||
}
|
}
|
||||||
|
mech.drawFieldMeter("rgba(0,0,0,0.2)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1758,7 +1751,26 @@ const mech = {
|
|||||||
} else {
|
} else {
|
||||||
mech.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
mech.holdingTarget = null; //clears holding target (this is so you only pick up right after the field button is released and a hold target exists)
|
||||||
}
|
}
|
||||||
mech.drawFieldMeter()
|
// mech.drawFieldMeter()
|
||||||
|
if (mech.energy < mech.fieldEnergyMax) {
|
||||||
|
mech.energy += mech.fieldRegen;
|
||||||
|
const xOff = mech.pos.x - mech.radius * mech.fieldEnergyMax
|
||||||
|
const yOff = mech.pos.y - 50
|
||||||
|
|
||||||
|
ctx.fillStyle = "rgba(0, 0, 0, 0.3)";
|
||||||
|
ctx.fillRect(xOff, yOff, 60 * mech.fieldEnergyMax, 10);
|
||||||
|
|
||||||
|
ctx.fillStyle = mech.fieldMeterColor;
|
||||||
|
ctx.fillRect(xOff, yOff, 60 * mech.energy, 10);
|
||||||
|
|
||||||
|
ctx.beginPath()
|
||||||
|
ctx.rect(xOff, yOff, 60 * mech.fieldEnergyMax, 10);
|
||||||
|
// ctx.fill();
|
||||||
|
ctx.strokeStyle = "rgb(0, 0, 0)";
|
||||||
|
ctx.lineWidth = 1;
|
||||||
|
ctx.stroke();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
31
todo.txt
31
todo.txt
@@ -1,18 +1,14 @@
|
|||||||
perfect diamagnetism balance and graphics
|
|
||||||
unique energy colors for fields
|
|
||||||
game info on pause screen
|
|
||||||
falling off the map, on easy and normal difficulty
|
|
||||||
sets the player to the entrance
|
|
||||||
sets power ups to the exit
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
************** TODO - n-gon **************
|
************** TODO - n-gon **************
|
||||||
|
|
||||||
perfect diamagnetism should get larger as it blocks more, and then slowly fad back to the normal size
|
work on burn status effect
|
||||||
|
graphics don't look right
|
||||||
|
how is it different from the chemical dot
|
||||||
|
|
||||||
gun or mod - drones that only last for 2 seconds
|
perfect diamagnetism should get larger as it blocks more, and then slowly fade back to the normal size
|
||||||
|
|
||||||
|
gun - bullets that acts like drones but only last for 2 seconds and do more damage
|
||||||
|
|
||||||
field - the basic field emitter, but no energy loss and no knock back on blocks
|
field - the basic field emitter, but no energy loss and no knock back on blocks
|
||||||
this field should make blocking a viable strategy
|
this field should make blocking a viable strategy
|
||||||
@@ -45,29 +41,18 @@ bug - getting stuck in crouch mode
|
|||||||
I don't think I was holding a block
|
I don't think I was holding a block
|
||||||
might have been standing on a block... not sure
|
might have been standing on a block... not sure
|
||||||
|
|
||||||
mobs - add in a function to the main loops that does injected code for each mob
|
|
||||||
each mob would get an object with a game.cycle for ending and a method to run each cycle until the end is met
|
|
||||||
this could be a DoT, graphics, slow, blind
|
|
||||||
stun - combine blind, slow
|
|
||||||
with increased gravity effects, but how
|
|
||||||
burn effect doesn't look right, too similar to poison
|
|
||||||
burn status could spread to player
|
|
||||||
mod - grenade explosions stun enemies
|
|
||||||
mod - vacuum bomb does DoT damage after exploding
|
|
||||||
mod - super balls become fire balls?
|
|
||||||
mod - laser mod has a chance to set things on fire
|
|
||||||
|
|
||||||
settings - auto aim at nearest mob
|
settings - auto aim at nearest mob
|
||||||
settings - custom keys binding
|
settings - custom keys binding
|
||||||
|
|
||||||
gun - buff vacuum bomb
|
gun - buff vacuum bomb
|
||||||
its weak late game
|
it's weak late game
|
||||||
can't spam it faster
|
can't spam it faster
|
||||||
bad vs. shields
|
bad vs. shields
|
||||||
doesn't scale up to huge groups
|
doesn't scale up to huge groups
|
||||||
buff collision damage?
|
buff collision damage?
|
||||||
mod - double explosions?
|
mod - double explosions?
|
||||||
mod - doesn't suck player in?
|
mod - doesn't suck player in?
|
||||||
|
mod - DoT damage after exploding
|
||||||
|
|
||||||
mod - make bodies destroyable
|
mod - make bodies destroyable
|
||||||
they drop ammo and heals
|
they drop ammo and heals
|
||||||
|
|||||||
Reference in New Issue
Block a user