From 8c5ab8b30b07d7d5ce2bdeda6b891b8d09185b5b Mon Sep 17 00:00:00 2001 From: "Laetitia (O-01-67)" <68935009+O-01-67@users.noreply.github.com> Date: Sun, 5 Mar 2023 16:39:46 -0500 Subject: [PATCH] new bomb: op_electromagneticester_emp --- mods/generative_mods.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/mods/generative_mods.js b/mods/generative_mods.js index 7266a62f..5f679f4f 100644 --- a/mods/generative_mods.js +++ b/mods/generative_mods.js @@ -186,6 +186,17 @@ if(enabledMods.includes(runAfterAutogenMod) && enabledMods.includes(explodeAtPlu 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 var distanceFromEdge = Math.max(0,radius - coordPyth(pixel.x,pixel.y,x,y)); var radiusRelatedIncrease = 10 ** logN(distanceFromEdge,5); @@ -1130,6 +1141,33 @@ if(enabledMods.includes(runAfterAutogenMod) && enabledMods.includes(explodeAtPlu 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 elements.star_bomb = { color: "#fffbb5",