vanish platform
new training levels "stack", "mine", "grenades", "harpoon" new map element vanish goes away after you touch it, returns in 3 seconds bug fixes
This commit is contained in:
@@ -95,7 +95,8 @@
|
||||
</svg>
|
||||
<svg class="SVG-button" id="training-button" width="120" height="45" style="border: 2px #333 solid;" onclick="simulation.startGame(false, true)">
|
||||
<g stroke='none' fill='#333' stroke-width="2" font-size="30px" font-family="Arial, sans-serif">
|
||||
<text x="10" y="33">training</text>
|
||||
<!-- <animate attributeName="fill" values="#f00;#dd0;#0f0;#0ff;#66f;#0ff;#0f0;#dd0;#f77" dur="4s" repeatCount="indefinite" /> -->
|
||||
<text x="10" y="33" class="lore">training</text>
|
||||
</g>
|
||||
</svg>
|
||||
<div id='info'>
|
||||
|
||||
@@ -5453,7 +5453,7 @@ const b = {
|
||||
} else {
|
||||
const bodyCollisions = Matter.Query.collides(this, body)
|
||||
if (bodyCollisions.length) {
|
||||
if (!bodyCollisions[0].bodyA.isComposite) {
|
||||
if (!bodyCollisions[0].bodyA.isNonStick) {
|
||||
onCollide(this)
|
||||
this.stuckTo = bodyCollisions[0].bodyA
|
||||
//find the relative position for when the mob is at angle zero by undoing the mobs rotation
|
||||
|
||||
2676
js/level.js
2676
js/level.js
File diff suppressed because it is too large
Load Diff
@@ -593,6 +593,7 @@ const simulation = {
|
||||
}, 1000);
|
||||
},
|
||||
startGame(isBuildRun = false, isTrainingRun = false) {
|
||||
simulation.isTextLogOpen = true
|
||||
simulation.clearMap()
|
||||
if (!isBuildRun) { //if a build run logic flow returns to "experiment-button").addEventListener
|
||||
document.body.style.cursor = "none";
|
||||
|
||||
10
js/spawn.js
10
js/spawn.js
@@ -1146,14 +1146,14 @@ const spawn = {
|
||||
powerUps.spawnRandomPowerUp(this.position.x, this.position.y) // manual power up spawn to avoid spawning too many tech with "symbiosis"
|
||||
}
|
||||
}
|
||||
me.damageReduction = 0.2 / (tech.isScaleMobsWithDuplication ? 1 + tech.duplicationChance() : 1)
|
||||
me.damageReduction = 0.23 / (tech.isScaleMobsWithDuplication ? 1 + tech.duplicationChance() : 1)
|
||||
//required setup for invulnerable
|
||||
me.isInvulnerable = false
|
||||
me.invulnerabilityCountDown = 0
|
||||
me.do = function() {
|
||||
if (this.isInvulnerable) {
|
||||
if (this.invulnerabilityCountDown > 0) {
|
||||
this.invulnerabilityCountDown--
|
||||
if (!m.isBodiesAsleep) this.invulnerabilityCountDown--
|
||||
ctx.beginPath();
|
||||
let vertices = this.vertices;
|
||||
ctx.moveTo(vertices[0].x, vertices[0].y);
|
||||
@@ -1234,7 +1234,7 @@ const spawn = {
|
||||
me.do = function() {
|
||||
if (this.isInvulnerable) {
|
||||
if (this.invulnerabilityCountDown > 0) {
|
||||
this.invulnerabilityCountDown--
|
||||
if (!m.isBodiesAsleep) this.invulnerabilityCountDown--
|
||||
ctx.beginPath();
|
||||
let vertices = this.vertices;
|
||||
ctx.moveTo(vertices[0].x, vertices[0].y);
|
||||
@@ -1982,7 +1982,7 @@ const spawn = {
|
||||
ctx.strokeStyle = "rgba(255,255,255,0.7)";
|
||||
ctx.stroke();
|
||||
} else if (this.invulnerabilityCountDown > 0) {
|
||||
this.invulnerabilityCountDown--
|
||||
if (!m.isBodiesAsleep) this.invulnerabilityCountDown--
|
||||
} else {
|
||||
this.isInvulnerable = true
|
||||
if (this.damageReduction) this.startingDamageReduction = this.damageReduction
|
||||
@@ -3401,7 +3401,7 @@ const spawn = {
|
||||
}
|
||||
if (this.isInvulnerable) {
|
||||
if (this.invulnerabilityCountDown > 0) {
|
||||
this.invulnerabilityCountDown--
|
||||
if (!m.isBodiesAsleep) this.invulnerabilityCountDown--
|
||||
//graphics //draw a super shield?
|
||||
ctx.beginPath();
|
||||
let vertices = this.vertices;
|
||||
|
||||
@@ -4498,7 +4498,7 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "MIRV",
|
||||
description: "fire <strong>+1</strong> <strong>missile</strong>, <strong>grenade</strong>, and <strong>super ball</strong><br>decrease <strong class='color-e'>explosion</strong> <strong>radius</strong> up to <strong>10%</strong>",
|
||||
description: "fire <strong>+1</strong> <strong>missile</strong> and <strong>grenade</strong><br>decrease <strong class='color-e'>explosion</strong> <strong>radius</strong> up to <strong>10%</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 9,
|
||||
count: 0,
|
||||
@@ -8834,7 +8834,7 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "black hole cluster",
|
||||
description: `<strong>spawn</strong> nearby <strong>black holes</strong>`,
|
||||
description: `spawn <strong>30</strong> nearby <strong>black holes</strong>`,
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 0,
|
||||
@@ -8847,7 +8847,7 @@ const tech = {
|
||||
const unit = { x: 1, y: 0 }
|
||||
for (let i = 0; i < 30; i++) {
|
||||
const where = Vector.add(m.pos, Vector.mult(Vector.rotate(unit, Math.random() * 2 * Math.PI), 2000 + 1200 * Math.random()))
|
||||
spawn.sucker(where.x, where.y, 200)
|
||||
spawn.sucker(where.x, where.y, 140)
|
||||
const who = mob[mob.length - 1]
|
||||
who.locatePlayer()
|
||||
// who.damageReduction = 0.2
|
||||
|
||||
53
todo.txt
53
todo.txt
@@ -1,14 +1,19 @@
|
||||
******************************************************** NEXT PATCH **************************************************
|
||||
|
||||
tech: super duper - fire +0-2 extra super balls
|
||||
super balls no longer part of MIRV
|
||||
new training levels "stack", "mine", "grenades", "harpoon"
|
||||
|
||||
bug fix for plasma extruder interaction with doors that collide with power ups
|
||||
mantisBoss moves slower, can be damaged for longer time, has less total life, has a smaller punch range
|
||||
new map element vanish goes away after you touch it, returns in 3 seconds
|
||||
bug fixes
|
||||
|
||||
******************************************************** TODO ********************************************************
|
||||
|
||||
merge various multi bullet tech under one name
|
||||
shrink crumble width as it fades out
|
||||
player moves through a grid of stacked crumble blocks
|
||||
|
||||
boss that gives nearby mobs invulnerability
|
||||
boss is only mildly aggressive
|
||||
repulsed by player upto a point
|
||||
attracted to mobs
|
||||
|
||||
training
|
||||
save training level progress as local variable
|
||||
@@ -18,34 +23,17 @@ training
|
||||
uses the lore voice/text code?
|
||||
replace all mob clear triggers with button triggers?
|
||||
tutorial rooms:
|
||||
done walk forwards and backwards
|
||||
done crouch through tunnel
|
||||
done jump over wall and gap
|
||||
look around with your mouse
|
||||
done pick up a block an drop onto a button to open door
|
||||
done fire block at button to open door
|
||||
done fire block at mob to open door
|
||||
look around with your mouse?
|
||||
easier deflecting level, with 1-2 attacking mobs
|
||||
done use field to deflect bullets
|
||||
done pick up heal power ups with field to open door
|
||||
done use a gun to kill a mob and use it's block body to activate a button to open a door
|
||||
gun rooms: (different mobs type in each room)
|
||||
different mobs in each room
|
||||
how to introduce shields?
|
||||
how to introduce mob shields?
|
||||
"hopper" "slasher" "shooter "grenadier" "striker" "laser" "stabber" "springer" "pulsar" "launcher" "launcherOne" "exploder" "sneaker" "sucker" "sniper" "spinner" "grower" "beamer" "focuser" "spawner" "ghoster"
|
||||
done nailgun - start with no ammo collect ammo and shoot at mobs
|
||||
done shotgun - some simple close range combat
|
||||
done superball - use 1 ammo to take out several mobs
|
||||
done matter wave - kill a mob inside a map element
|
||||
done missiles - take out mobs that are around corner and have them drop on a button
|
||||
grenades - use 1 ammo to take out a ring of mob`s
|
||||
spores - use 1 ammo to take out several mobs at once, you have to block with your shield until the mobs die
|
||||
drones - use mouse to bring drones around a couple corners
|
||||
foam - slow boss mob, and run away
|
||||
harpoon - kill one close mob, pick up ammo that is out of reach, first at several far away mobs with crouch
|
||||
or just some hard melee combat
|
||||
mine - built kill zone, get mobs to follow into mine kill zone
|
||||
maybe a boss mob?
|
||||
laser - reflect off walls to hit mobs
|
||||
field rooms:
|
||||
standing wave - bullets come from every direction
|
||||
@@ -58,24 +46,21 @@ training
|
||||
pilot wave - toss blocks at mobs
|
||||
worm hole - teleport past lasers
|
||||
puzzle/platforming rooms:
|
||||
stack blocks to get to high ground
|
||||
also make a harder version of stacking blocks
|
||||
portal rooms
|
||||
jump at the top of a elevator to jump high
|
||||
use the double constrained platforms
|
||||
use the double constrained platforms
|
||||
combat rooms:
|
||||
kill so many mobs that the mob bodies pile up and you can get over a wall by jumping on them
|
||||
boss gauntlet, spawn with nothing but a few power ups and fight 10 bosses
|
||||
use no gun, just bots to kil stuff
|
||||
|
||||
JUNK tech disable level exit for 5 minutes
|
||||
level.disableExit = true
|
||||
setTimeout( () => {level.disableExit = false;}, 5*60000);
|
||||
|
||||
balance time dilation with bose einstein (you can freeze everything and take no damage)
|
||||
code is still there, need to balance
|
||||
balance with energy drain?
|
||||
|
||||
overflowing energy does harm?
|
||||
or just reduces harm reduction?
|
||||
|
||||
make a line of constained mobs move like a snake
|
||||
apply forces with directions determined by time and position on the snake
|
||||
|
||||
tech: basic research - heal power ups spawn as research power ups instead, and using research heals you (needs to be pretty low, like 3% health)
|
||||
tech: maintenance - heals no longer spawn, but using research heals you 100%
|
||||
|
||||
|
||||
Reference in New Issue
Block a user