downpour and buttonbutton community maps
community map downpour by DesBoot community map buttonbutton by ||Destabilized E|| rounded borders on no-image mode selection cards foam gun has some recoil new superball gun image bug fixes
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 26 KiB |
@@ -106,6 +106,7 @@
|
||||
<option value="staircase">
|
||||
<option value="perplex">
|
||||
<option value="n-gon">
|
||||
<option value="downpour">
|
||||
<option value="buttonbutton">
|
||||
<option value="vats">
|
||||
<option value="yingYang">
|
||||
@@ -132,6 +133,8 @@
|
||||
stronghold
|
||||
commandeer
|
||||
stereoMadness
|
||||
buttonbutton
|
||||
downpour
|
||||
house
|
||||
dripp
|
||||
crossfire
|
||||
|
||||
10
js/bullet.js
10
js/bullet.js
@@ -7143,6 +7143,7 @@ const b = {
|
||||
have: false,
|
||||
charge: 0,
|
||||
isDischarge: false,
|
||||
knockBack: 0.001,
|
||||
chooseFireMethod() {
|
||||
if (tech.isFoamPressure) {
|
||||
this.do = this.doCharges
|
||||
@@ -7170,6 +7171,9 @@ const b = {
|
||||
y: m.pos.y + 30 * Math.sin(m.angle)
|
||||
}
|
||||
b.foam(position, Vector.rotate(velocity, spread), radius)
|
||||
//knock back player
|
||||
player.force.x -= this.knockBack * velocity.x
|
||||
player.force.y -= this.knockBack * velocity.y
|
||||
m.fireCDcycle = m.cycle + Math.floor(1.5 * b.fireCDscale);
|
||||
},
|
||||
doCharges() {
|
||||
@@ -7196,6 +7200,9 @@ const b = {
|
||||
y: m.pos.y + 30 * Math.sin(m.angle)
|
||||
}
|
||||
b.foam(position, Vector.rotate(velocity, spread), radius)
|
||||
//knock back player
|
||||
player.force.x -= this.knockBack * velocity.x
|
||||
player.force.y -= this.knockBack * velocity.y
|
||||
this.charge -= 0.75
|
||||
m.fireCDcycle = m.cycle + 2; //disable firing and adding more charge until empty
|
||||
} else if (!input.fire) {
|
||||
@@ -7241,6 +7248,9 @@ const b = {
|
||||
// } else {
|
||||
// }
|
||||
b.foam(position, Vector.rotate(velocity, spread), radius)
|
||||
//knock back player
|
||||
player.force.x -= this.knockBack * velocity.x
|
||||
player.force.y -= this.knockBack * velocity.y
|
||||
m.fireCDcycle = m.cycle + Math.floor(1.5 * b.fireCDscale);
|
||||
this.charge += 1 + tech.isCapacitor
|
||||
},
|
||||
|
||||
@@ -107,7 +107,7 @@ function collisionChecks(event) {
|
||||
!mob[k].isSlowed && !mob[k].isStunned
|
||||
) {
|
||||
let dmg = Math.min(Math.max(0.025 * Math.sqrt(mob[k].mass), 0.05), 0.3) * simulation.dmgScale; //player damage is capped at 0.3*dmgScale of 1.0
|
||||
if (m.isCloak) dmg *= 0.75
|
||||
if (m.isCloak) dmg *= 0.5
|
||||
mob[k].foundPlayer();
|
||||
if (tech.isRewindAvoidDeath && (m.energy + 0.05) > Math.min(0.95, m.maxEnergy) && dmg > 0.01) { //CPT reversal runs in m.damage, but it stops the rest of the collision code here too
|
||||
m.damage(dmg);
|
||||
@@ -336,15 +336,15 @@ function collisionChecks(event) {
|
||||
}
|
||||
|
||||
//determine if player is on the ground
|
||||
Events.on(engine, "collisionStart", function(event) {
|
||||
Events.on(engine, "collisionStart", function (event) {
|
||||
playerOnGroundCheck(event);
|
||||
// playerHeadCheck(event);
|
||||
collisionChecks(event);
|
||||
});
|
||||
Events.on(engine, "collisionActive", function(event) {
|
||||
Events.on(engine, "collisionActive", function (event) {
|
||||
playerOnGroundCheck(event);
|
||||
// playerHeadCheck(event);
|
||||
});
|
||||
Events.on(engine, "collisionEnd", function(event) {
|
||||
Events.on(engine, "collisionEnd", function (event) {
|
||||
playerOffGroundCheck(event);
|
||||
});
|
||||
13
js/level.js
13
js/level.js
@@ -10,7 +10,7 @@ const level = {
|
||||
// playableLevels: ["pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion", "pavilion"],
|
||||
//see level.populateLevels: (intro, ... , reservoir or factory, reactor, ... , gauntlet, final) added later
|
||||
playableLevels: ["labs", "rooftops", "skyscrapers", "warehouse", "highrise", "office", "aerie", "satellite", "sewers", "testChamber", "pavilion", "lock"],
|
||||
communityLevels: ["stronghold", "basement", "crossfire", "vats", "run", "n-gon", "house", "perplex", "coliseum", "tunnel", "islands", "temple", "dripp", "biohazard", "stereoMadness", "yingYang", "staircase", "fortress", "commandeer", "clock", "buttonbutton"],
|
||||
communityLevels: ["stronghold", "basement", "crossfire", "vats", "run", "n-gon", "house", "perplex", "coliseum", "tunnel", "islands", "temple", "dripp", "biohazard", "stereoMadness", "yingYang", "staircase", "fortress", "commandeer", "clock", "buttonbutton", "downpour"],
|
||||
trainingLevels: ["walk", "crouch", "jump", "hold", "throw", "throwAt", "deflect", "heal", "fire", "nailGun", "shotGun", "superBall", "matterWave", "missile", "stack", "mine", "grenades", "harpoon"],
|
||||
levels: [],
|
||||
start() {
|
||||
@@ -27,14 +27,14 @@ const level = {
|
||||
// m.immuneCycle = Infinity //you can't take damage
|
||||
// tech.tech[297].frequency = 100
|
||||
// m.couplingChange(5)
|
||||
// m.setField("wormhole") //1 standing wave 2 perfect diamagnetism 3 negative mass 4 molecular assembler 5 plasma torch 6 time dilation 7 metamaterial cloaking 8 pilot wave 9 wormhole
|
||||
// m.setField("metamaterial cloaking") //1 standing wave 2 perfect diamagnetism 3 negative mass 4 molecular assembler 5 plasma torch 6 time dilation 7 metamaterial cloaking 8 pilot wave 9 wormhole
|
||||
// simulation.molecularMode = 2
|
||||
// m.damage(0.1);
|
||||
// b.giveGuns("nail gun") //0 nail gun 1 shotgun 2 super balls 3 wave 4 missiles 5 grenades 6 spores 7 drones 8 foam 9 harpoon 10 mine 11 laser
|
||||
// b.giveGuns("wave") //0 nail gun 1 shotgun 2 super balls 3 wave 4 missiles 5 grenades 6 spores 7 drones 8 foam 9 harpoon 10 mine 11 laser
|
||||
// b.giveGuns("foam") //0 nail gun 1 shotgun 2 super balls 3 wave 4 missiles 5 grenades 6 spores 7 drones 8 foam 9 harpoon 10 mine 11 laser
|
||||
// b.guns[3].ammo = 100000000
|
||||
// tech.giveTech("recycling")
|
||||
// tech.giveTech("dead reckoning")
|
||||
// tech.giveTech("pressure vessel")
|
||||
// for (let i = 0; i < 1; ++i) tech.giveTech("pseudoscience")
|
||||
// for (let i = 0; i < 1; ++i) tech.giveTech("options exchange")
|
||||
// for (let i = 0; i < 1; i++) tech.giveTech("laser-bot")
|
||||
@@ -42,7 +42,7 @@ const level = {
|
||||
// for (let i = 0; i < 3; i++) powerUps.directSpawn(450, -50, "tech");
|
||||
// for (let i = 0; i < 10; i++) powerUps.directSpawn(1750, -500, "boost");
|
||||
// for (let i = 0; i < 10; i++) powerUps.directSpawn(1750, -500, "coupling");
|
||||
// level.testing();
|
||||
// level.downpour();
|
||||
// spawn.nodeGroup(3200, -300, "sniper")
|
||||
// spawn.nodeGroup(2200, -300, "sniper")
|
||||
// spawn.nodeGroup(2200, -300, "sniper")
|
||||
@@ -18166,6 +18166,7 @@ const level = {
|
||||
},
|
||||
downpour() {
|
||||
simulation.makeTextLog(`<strong>Downpour</strong> by <span class='color-var'>DesBoot</span>`);
|
||||
simulation.makeTextLog(`<span class='color-var'>level</span>.onLevel = "Downpour"`);
|
||||
let mobsspawned = 0
|
||||
const laser = level.hazard(7492, -2612, 10, 500, 0.3) //laserintro
|
||||
|
||||
@@ -18205,7 +18206,7 @@ const level = {
|
||||
do {
|
||||
|
||||
ctx.beginPath()
|
||||
// ctx.fillStyle = "rgba(30,150,117,255)"
|
||||
ctx.fillStyle = "rgba(30,150,117,255)"
|
||||
ctx.rect(Math.random() * 4500 - 2000, -5000, Math.random() * 3 + 2.5, 5000)
|
||||
ctx.rect(Math.random() * 4500 - 2000, -5000, Math.random() * 3 + 2.5, 5000)
|
||||
ctx.rect(Math.random() * 4500 - 2000, -5000, Math.random() * 3 + 2.5, 5000)
|
||||
|
||||
@@ -3841,7 +3841,7 @@ const m = {
|
||||
//not shooting (or using field) enable cloak
|
||||
if (m.energy < 0.05 && m.fireCDcycle < m.cycle && !input.fire) m.fireCDcycle = m.cycle
|
||||
if (m.fireCDcycle + 30 < m.cycle && !input.fire) { //automatically cloak if not firing
|
||||
const drain = 0.03
|
||||
const drain = 0.02
|
||||
if (!m.isCloak && m.energy > drain + 0.03) {
|
||||
m.energy -= drain
|
||||
m.isCloak = true //enter cloak
|
||||
@@ -3878,7 +3878,7 @@ const m = {
|
||||
if (tech.isCloakStun) { //stun nearby mobs after exiting cloak
|
||||
let isMobsAround = false
|
||||
const stunRange = m.fieldDrawRadius * 1.5
|
||||
const drain = 0.15
|
||||
const drain = 0.14
|
||||
if (m.energy > drain) {
|
||||
for (let i = 0, len = mob.length; i < len; ++i) {
|
||||
if (Vector.magnitude(Vector.sub(mob[i].position, m.pos)) < stunRange && Matter.Query.ray(map, mob[i].position, m.pos).length === 0 && !mob[i].isBadTarget) {
|
||||
@@ -3900,7 +3900,7 @@ const m = {
|
||||
}
|
||||
}
|
||||
if (m.isCloak) {
|
||||
m.fieldRange = m.fieldRange * 0.85 + 115
|
||||
m.fieldRange = m.fieldRange * 0.85 + 130
|
||||
m.fieldDrawRadius = m.fieldRange * 1.1 //* 0.88 //* Math.min(1, 0.3 + 0.5 * Math.min(1, energy * energy));
|
||||
m.drawCloak()
|
||||
} else if (m.fieldRange < 4000) {
|
||||
|
||||
26
js/tech.js
26
js/tech.js
@@ -5799,7 +5799,7 @@ const tech = {
|
||||
frequency: 2,
|
||||
frequencyDefault: 2,
|
||||
allowed() {
|
||||
return tech.haveGunCheck("mine") && !tech.isFoamMine
|
||||
return tech.haveGunCheck("mine")
|
||||
},
|
||||
requires: "mines, not elephants toothpaste",
|
||||
effect() {
|
||||
@@ -6520,6 +6520,27 @@ const tech = {
|
||||
b.guns[8].chooseFireMethod()
|
||||
}
|
||||
},
|
||||
// {
|
||||
// name: "cavitation",
|
||||
// description: "increase <strong>foam</strong> <strong class='color-g'>gun</strong> <strong>recoil</strong> by <strong>300%</strong><br>",
|
||||
// isGunTech: true,
|
||||
// maxCount: 1,
|
||||
// count: 0,
|
||||
// frequency: 2,
|
||||
// frequencyDefault: 2,
|
||||
// allowed() {
|
||||
// return tech.haveGunCheck("foam")
|
||||
// },
|
||||
// requires: "foam",
|
||||
// effect() {
|
||||
// tech.isFoamCavitation = true;
|
||||
// b.guns[8].knockBack = 0.003
|
||||
// },
|
||||
// remove() {
|
||||
// tech.isFoamCavitation = false;
|
||||
// b.guns[8].knockBack = 0.001
|
||||
// }
|
||||
// },
|
||||
{
|
||||
name: "capacitor bank",
|
||||
// description: "<strong>charge</strong> effects build up almost <strong>instantly</strong><br><em style = 'font-size:97%;'>throwing <strong class='color-block'>blocks</strong>, foam, railgun, pulse, tokamak</em>",
|
||||
@@ -11413,5 +11434,6 @@ const tech = {
|
||||
hardLanding: null,
|
||||
isNoGroundDamage: null,
|
||||
isSuperBounce: null,
|
||||
isDivisor: null
|
||||
isDivisor: null,
|
||||
isFoamCavitation: null,
|
||||
}
|
||||
10
style.css
10
style.css
@@ -184,7 +184,7 @@ summary {
|
||||
}
|
||||
|
||||
.choose-grid-no-images {
|
||||
border-radius: 12px;
|
||||
border-radius: 8px;
|
||||
border: 10px solid #444;
|
||||
gap: 10px;
|
||||
background-color: #444;
|
||||
@@ -210,6 +210,7 @@ summary {
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
|
||||
#choose-grid::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
@@ -483,6 +484,13 @@ summary {
|
||||
}
|
||||
}
|
||||
|
||||
/* .card-text */
|
||||
.choose-grid-no-images .card-text,
|
||||
.choose-grid-no-images .research-card,
|
||||
.choose-grid-no-images .cancel-card {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
/* keeps 4 columns at 1440px */
|
||||
/* @media (1500px <= width < 1950px) {
|
||||
.experiment-grid-module, .choose-grid-module, .pause-grid-module {
|
||||
|
||||
20
todo.txt
20
todo.txt
@@ -1,24 +1,24 @@
|
||||
******************************************************** NEXT PATCH **************************************************
|
||||
|
||||
mob damage difficulty setting is lower
|
||||
recycling now flashes green when it heals
|
||||
community map downpour by DesBoot
|
||||
community map buttonbutton by ||Destabilized E||
|
||||
|
||||
merged cancel and research bars for single column selection
|
||||
added some dark grey borders for no images selection mode
|
||||
|
||||
new images with midJourney V5
|
||||
spores, pilot wave, standing wave
|
||||
rounded borders on no-image mode selection cards
|
||||
foam gun has some recoil
|
||||
new superball gun image
|
||||
|
||||
bug fixes
|
||||
|
||||
*********************************************************** TODO *****************************************************
|
||||
|
||||
foam gun tech cavitation - a knock back effect, and 1 out of 5 foam bullets are larger and faster?
|
||||
|
||||
Tech: Turbine - Energy generation is proportional to your speed up to +X% energy generation at 40 speed
|
||||
Tech: "Electric Reactive Armor": Defeanse increases by 2% for each 1 energy generation you have
|
||||
|
||||
wormhole tech - teleport away mobs with mass below 3 when they get too near the player
|
||||
short CD, small energy cost, only mobs below a mass
|
||||
|
||||
foam gun could have a knock back effect
|
||||
maybe with pressure vessel?
|
||||
|
||||
extend brainstorming animation timers to fps cap?
|
||||
will it be smoother or choppier?
|
||||
anything else needs to hit limited fps on a high fps monitor?
|
||||
|
||||
Reference in New Issue
Block a user