bug fix on final boss kill

This commit is contained in:
landgreen
2021-01-01 17:25:12 -08:00
parent 3fa89b85d7
commit ecb41e1a19
6 changed files with 97 additions and 28 deletions

View File

@@ -561,7 +561,8 @@
<script src="js/mob.js"></script>
<script src="js/spawn.js"></script>
<script src="js/level.js"></script>
<script src="js/visibility.js"></script>
<!-- <script src="js/visibility.js"></script> -->
<script src="js/lore.js"></script>
<script src="js/engine.js"></script>
<script src="js/index.js"></script>
</body>

View File

@@ -3221,6 +3221,8 @@ const b = {
bullet[bullet.length - 1].force.y += push.y * (i - (tech.missileCount - 1) / 2);
}
}
// if (tech.missileCount) {
// if (mech.crouch) {
// for (let i = 0; i < 3; i++) {

View File

@@ -17,7 +17,7 @@ const level = {
// simulation.zoomScale = 1000;
// simulation.setZoom();
// mech.setField("plasma torch")
// b.giveGuns("foam")
// b.giveGuns("missiles")
// tech.isMineSentry = true
// tech.giveTech("foam fractionation")
// tech.giveTech("missile-bot")
@@ -99,15 +99,21 @@ const level = {
//******************************************************************************************************************
//******************************************************************************************************************
escape() {
const hazard = level.hazard(-1775, 150, 3575, 650, 0.01, "hsla(160, 100%, 35%,0.75)")
// level.bossKilled = false; // if a boss needs to be killed
const hazardSlime = level.hazard(-1775, 150, 3575, 650, 0.01, "hsla(160, 100%, 35%,0.75)")
// const hazardLaser1 = level.hazard(-475, -800, 1, 800, 0.4, "#50f", true) //laser
// const hazardLaser2 = level.hazard(475, -800, 1, 800, 0.4, "#50f", true) //laser
level.custom = () => {
// level.playerExitCheck();
hazard.query();
hazardSlime.query();
// hazardLaser1.query();
// hazardLaser2.query();
// hazard.level(true)
};
level.customTopLayer = () => {
hazard.draw();
hazardSlime.drawTides();
// hazardLaser1.draw();
// hazardLaser2.draw();
};
level.setPosToSpawn(0, -50); //normal spawn
@@ -116,14 +122,16 @@ const level = {
level.exit.y = 200;
level.defaultZoom = 1000
simulation.zoomTransition(level.defaultZoom)
document.body.style.backgroundColor = "#aaa";
// level.fill.push({ //foreground
// x: 2500,
// y: -1100,
// width: 450,
// height: 250,
// color: "rgba(0,0,0,0.1)"
// });
// document.body.style.backgroundColor = "#aaa";
document.body.style.backgroundColor = "#ddd";
level.fill.push({ //foreground
x: -1950,
y: -950,
width: 3900,
height: 1900,
color: "rgba(0,0,0,0.1)"
});
// level.fillBG.push({ //background
// x: 1300,
// y: -1800,
@@ -137,7 +145,16 @@ const level = {
spawn.mapRect(-2000, -1000, 4000, 200); //ceiling
spawn.mapRect(-2000, -1000, 225, 2000); //left
spawn.mapRect(1800, -1000, 200, 2000); //right
spawn.mapRect(-500, -5, 25, 50); //edge shelf
spawn.mapRect(475, -5, 25, 50); //edge shelf
// spawn.mapRect(-500, -820, 50, 25); //edge shelf ceiling
// spawn.mapRect(450, -820, 50, 25); //edge shelf ceiling
// spawn.bodyRect(1540, -1110, 300, 25, 0.9);
setTimeout(() => { simulation.makeTextLog(`test`) }, 3000);
},
testing() {
const button = level.button(200, -700)
@@ -4495,6 +4512,13 @@ const level = {
ctx.fillRect(this.min.x, this.min.y, this.width, this.height)
}
},
drawTides() {
if (this.isOn) {
ctx.fillStyle = color
const offset = 10 * Math.sin(simulation.cycle * 0.015)
ctx.fillRect(this.min.x, this.min.y + offset, this.width, this.height - offset)
}
},
level(isFill) {
if (!mech.isBodiesAsleep) {
const growSpeed = 1

34
js/lore.js Normal file
View File

@@ -0,0 +1,34 @@
const lore = {
dialogue: [
``,
``,
],
ending() {
}
}
/* ending outline
if no cheats
after final boss is cleared, player enters a level with no mobs
level maybe has some environmental damage, so player has an option to die at any time
player can see text output between two colors of text strings (scientists)
audio.ambient(current time and date)<br> "text"
player reads a conversation between the two colors of text
first time win on east or normal they talk about:
how many runs the player has done
they guess why
player is asked to stand on an in game button to enable the vocoder
they reveal the player is running simulations, and it isn't real
they ask the player to communicate
jump twice if you understand
they ask the player to enter console commands
give ammo or tech or something
They tell the play a console command to permanently enable custom and testing mode (in local storage)
players can use this command in the future to enable custom and testing without beating the game even if local storage is wiped
they then tell the player the command to increase the difficulty and the command to restart the game.
If you win on hard or why:
they give the player and option to exit the simulation and entre the real world
simulation.exit()
This wipes all local storage, and closes the browser tab
*/

View File

@@ -105,7 +105,15 @@ const spawn = {
//set game to the next highest difficulty level if not on why
if (simulation.difficultyMode < 6) {
simulation.difficultyMode++
if (simulation.difficultyMode === 0) {
simulation.difficultyMode = 1
} else if (simulation.difficultyMode === 1) {
simulation.difficultyMode = 2
} else if (simulation.difficultyMode === 2) {
simulation.difficultyMode = 4
} else {
simulation.difficultyMode = 6
}
document.getElementById("difficulty-select").value = simulation.difficultyMode
localSettings.difficultyMode = simulation.difficultyMode
localStorage.setItem("localSettings", JSON.stringify(localSettings)); //update local storage

View File

@@ -1,8 +1,6 @@
******************************************************** NEXT PATCH ********************************************************
beating the final boss automatically increases the difficulty mode for this run and future runs
some foam balancing, mostly buffs
standing wave harmonics gets 15% harm reduction again
******************************************************** BUGS ********************************************************
@@ -23,6 +21,17 @@ CPT check for crouch after rewind
******************************************************** TODO ********************************************************
bot that follows the players history
could have the same shape as the mech circle head
1st bot is at 5s, 2nd is at 4.5s, ...
bots don't get too close to player
run smoothing on position update, don't update if close to player, based on ordering
effect: (one of these can be the upgrade effect)
give player energy overfill
AOE damage to mobs
push away mobs
wen close to player: damage bonus damage reduction
tech: dodge chance for cloaking, harmonic fields, also pilot wave
20% chance up to 3 stacks, not additive
0.8^count
@@ -33,7 +42,7 @@ rename
health > integrity, unity
heal > also integrity, unity
level > world?
reroll > resample, reset, retry, remeasure
reroll > research
in game console
set highlighting rules
@@ -141,15 +150,6 @@ bullet mechanic - a bullet that swims through the air
in custom make a top bar that is fixed
use media rules to make the layout look nice
bot that follows the players history
1st bot is at 5s, 2nd is at 4.5s, ...
bots don't get too close to player
run smoothing on position update, don't update if close to player, based on ordering
effect:
give player energy overfill
damage mobs on contact
damage bonus damage reduction push away mobs
mob vision: look at player history
build a new type of attraction for mobs
if mobs can't see player, they check to see if they can see where the player was in the history