diff --git a/mods/jaydsfunctions.js b/mods/jaydsfunctions.js new file mode 100644 index 00000000..724ace4b --- /dev/null +++ b/mods/jaydsfunctions.js @@ -0,0 +1,111 @@ +//jaydsfunctions +erase1Var = 0; +elements.selective_eraser = { + color: ["#ffff00","#ffff00","#ffff00","#555555","#555555","#555555"], + category: "tools", + tool: function(pixel) { + if (pixel.element === erase1Var) { + deletePixel(pixel.x, pixel.y); + } + }, + onSelect: function() { + var answer1 = prompt("Please input what element should be erased.",(erase1Var||undefined)); + if (!answer1) { return } + erase1Var = answer1; + } +}, +explode1Var = 0; +elements.selective_exploder = { + color: ["#ff0000","#ff0000","#ff0000","#555555","#555555","#555555"], + category: "tools", + tool: function(pixel) { + if (pixel.element === explode1Var) { + changePixel(pixel, "explosion") + } + }, + onSelect: function() { + var answer2 = prompt("Please input what element to explode.",(explode1Var||undefined)); + if (!answer2) { return } + explode1Var = answer2; + } +}, +convert11Var = 0; +convert22Var = 0; +elements.converter_tool = { + color: ["#ffffff","#ffffff","#ffffff","#555555","#555555","#555555"], + darkText: true, + category: "tools", + tool: function(pixel) { + if (pixel.element === convert11Var) { + changePixel(pixel, convert22Var) + } + }, + onSelect: function() { + var answer3 = prompt("Please input what should element be converted.",(convert11Var||undefined)); + if (!answer3) { return } + convert11Var = answer3; + var answer4 = prompt("Please input what element to convert into.",(convert22Var||undefined)); + if (!answer4) { return } + convert22Var = answer4; + } +}, +elements.fast_bomb = { + color: "#524c41", + category: "weapons", + state: "solid", + behavior: [ + "XX|EX:10>explosion|XX", + "XX|XX|XX", + "M2|M1 AND EX:10>explosion|M2", + ], + tick: function(pixel) { + for (var i=0; i<3; i++) { + if (!tryMove(pixel, pixel.x, pixel.y+1)) { + if (!isEmpty(pixel.x, pixel.y+1,true)) { + var newPixel = pixelMap[pixel.x][pixel.y+1]; + if (newPixel.element === "fast_bomb") { break; } + } + } + } + }, + density: 1300, + excludeRandom: true, + cooldown: defaultCooldown +}, +exclude1Var = 0; +elements.exclusive_eraser = { + color: ["#ff5a00","#ff5a00","#ff5a00","#555555","#555555","#555555"], + category: "tools", + tool: function(pixel) { + if (pixel.element !== exclude1Var) { + deletePixel(pixel.x, pixel.y); + } + }, + onSelect: function() { + var answer5 = prompt("Please input what element shouldn't be erased.",(exclude1Var||undefined)); + if (!answer5) { return } + exclude1Var = answer5; + } +}, +elements.tenth_heater = { + category: "special", + color: "#ff0000", + behavior: [ + "XX|HT:0.1|XX", + "HT:0.1|XX|HT:0.1", + "XX|HT:0.1|XX", + ], + ignore: "tenth_heater" +}, +elements.e_tenth_heater = { + category: "special", + color: "#ff0000", + behavior: behaviors.WALL, + behaviorOn: [ + "XX|HT:0.1|XX", + "HT:0.1|XX|HT:0.1", + "XX|HT:0.1|XX", + ], + ignore: "tenth_heater", + conduct: 1 +} \ No newline at end of file diff --git a/mods/weapons.js b/mods/weapons.js index 3eef74c2..6c8181a3 100644 --- a/mods/weapons.js +++ b/mods/weapons.js @@ -509,4 +509,87 @@ tick: function(pixel) { }}}, category: "aircrafts", breakInto: "metal_scrap" - } \ No newline at end of file + }, +elements.machine_for_throwing_bombs_at_you_left = { + color: "#524c41", + behavior: behaviors.WALL, + behaviorOn: [ + "XX|XX|XX", + "CR:bombs_for_throwing_at_you_left|XX|XX", + "XXXX|XX", + ], + category: "weapons", + conduct: 1 +}, +elements.bombs_for_throwing_at_you_left = { + color: "#524c41", + category: "ammunition", + behavior: [ + "XX|EX:10>bomb|XX", + "XX|XX|XX", + "M1|M1%10 AND EX:10>bomb|XX", + ], +} +elements.machine_for_throwing_bombs_at_right = { + color: "#524c41", + behavior: behaviors.WALL, + behaviorOn: [ + "XX|XX|XX", + "XX|XX|CR:bombs_for_throwing_at_you_right", + "XXXX|XX", + ], + category: "weapons", + conduct: 1 +}, +elements.bombs_for_throwing_at_you_right = { + color: "#524c41", + category: "ammunition", + behavior: [ + "XX|EX:10>bomb|XX", + "XX|XX|XX", + "XX|M1%10 AND EX:10>bomb|M1", + ], +}, +elements.energized_orb_left = { + color: ["#e0e000","#f3f300"], + category: "energy", + behavior: [ + "XX|EX:50>electric|XX", + "M1 AND EX:50>electric|XX|EX:50>electric", + "XX|EX:50>electric|XX" + ], + state: "gas", +}, +elements.energized_orb_right = { + color: ["#e0e000","#f3f300"], + category: "energy", + behavior: [ + "XX|EX:50>electric|XX", + "EX:50>electric|XX|M1 AND EX:50>electric", + "XX|EX:50>electric|XX" + ], + state: "gas", +}, +elements.fast_bomb = { + color: "#524c41", + category: "weapons", + state: "solid", + behavior: [ + "XX|EX:10>explosion|XX", + "XX|XX|XX", + "M2|M1 AND EX:10>explosion|M2", + ], + tick: function(pixel) { + for (var i=0; i<3; i++) { + if (!tryMove(pixel, pixel.x, pixel.y+1)) { + if (!isEmpty(pixel.x, pixel.y+1,true)) { + var newPixel = pixelMap[pixel.x][pixel.y+1]; + if (newPixel.element === "fast_bomb") { break; } + } + } + } + }, + density: 1300, + excludeRandom: true, + cooldown: defaultCooldown +} \ No newline at end of file