new bomb: op_electromagneticester_emp
This commit is contained in:
parent
3257bded82
commit
8c5ab8b30b
|
|
@ -186,6 +186,17 @@ if(enabledMods.includes(runAfterAutogenMod) && enabledMods.includes(explodeAtPlu
|
||||||
pixel.temp += (800 * ((1 + (7 * damage)) ** 2) * ((power ** 2) * 1.5));
|
pixel.temp += (800 * ((1 + (7 * damage)) ** 2) * ((power ** 2) * 1.5));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function empCharge(pixel,x,y,radius,fire,smoke,power,damage) {
|
||||||
|
var info = elements[pixel.element];
|
||||||
|
if(info.conduct) {
|
||||||
|
var distanceFromEdge = Math.max(0,radius - coordPyth(pixel.x,pixel.y,x,y));
|
||||||
|
var radiusRelatedIncrease = Math.sqrt(distanceFromEdge/5);
|
||||||
|
pixel.charge ??= 0;
|
||||||
|
pixel.charge += (50 * radiusRelatedIncrease);
|
||||||
|
pixel.temp += 700/bound(info.conduct,0.1,1);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
function starbombHeat(pixel,x,y,radius,fire,smoke,power,damage) { //Massively heats depending on distance from explosion center
|
function starbombHeat(pixel,x,y,radius,fire,smoke,power,damage) { //Massively heats depending on distance from explosion center
|
||||||
var distanceFromEdge = Math.max(0,radius - coordPyth(pixel.x,pixel.y,x,y));
|
var distanceFromEdge = Math.max(0,radius - coordPyth(pixel.x,pixel.y,x,y));
|
||||||
var radiusRelatedIncrease = 10 ** logN(distanceFromEdge,5);
|
var radiusRelatedIncrease = 10 ** logN(distanceFromEdge,5);
|
||||||
|
|
@ -1130,6 +1141,33 @@ if(enabledMods.includes(runAfterAutogenMod) && enabledMods.includes(explodeAtPlu
|
||||||
excludeRandom: true,
|
excludeRandom: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elements.op_electromagneticester_emp = {
|
||||||
|
color: "#818253",
|
||||||
|
tick: function(pixel) { //replace EMP
|
||||||
|
if (pixel.start===pixelTicks) {return}
|
||||||
|
if (!tryMove(pixel,pixel.x,pixel.y+1)) {
|
||||||
|
if (outOfBounds(pixel.x,pixel.y+1) || (pixelMap[pixel.x][pixel.y+1].element!=="emp_bomb" && elements[pixelMap[pixel.x][pixel.y+1].element].state!=="gas")) {
|
||||||
|
for (i = 0; i < currentPixels.length; i++) {
|
||||||
|
var newPixel = currentPixels[i];
|
||||||
|
if (newPixel.charge) {
|
||||||
|
delete newPixel.charge;
|
||||||
|
newPixel.chargeCD = 50;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
explodeAtPlus(pixel.x,pixel.y+1,20,"electric","smoke",empCharge,null,false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
doDefaults(pixel);
|
||||||
|
},
|
||||||
|
maxSize: 1,
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
density: 1500,
|
||||||
|
excludeRandom: true,
|
||||||
|
alias: "overpowered electromagnetic pulse bomb",
|
||||||
|
cooldown: defaultCooldown
|
||||||
|
};
|
||||||
|
|
||||||
if(enabledMods.includes("mods/the_ground.js")) { //uses things from that but not worth requiring for the whole mod
|
if(enabledMods.includes("mods/the_ground.js")) { //uses things from that but not worth requiring for the whole mod
|
||||||
elements.star_bomb = {
|
elements.star_bomb = {
|
||||||
color: "#fffbb5",
|
color: "#fffbb5",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue