diff --git a/mod-list.html b/mod-list.html index 9ccbdb78..2298a079 100644 --- a/mod-list.html +++ b/mod-list.html @@ -230,6 +230,7 @@ rays++.jsAdds a couple more raysuptzik subspace.jsAdds the Subspace Tripmine from Robloxnousernamefound weapons.jsAdds varieties of different weapons Jayd +war_crimes.jsAdds tear gas & morevoidapex11 Food & Cooking aChefsDream.jsAdds more foods, animals, tools and many other cooking related items. Updates can be found in this YouTube PlaylistSquareScreamYT diff --git a/mods/war_crimes.js b/mods/war_crimes.js new file mode 100644 index 00000000..564190f2 --- /dev/null +++ b/mods/war_crimes.js @@ -0,0 +1,131 @@ +// feel free to add to/improve this mod + +// this has bee worked on by: +// voidapex11 + +elements.tear_gas = { + color: "#d5dce6", + behavior: [ + "XX|XX|XX", + "XX|XX|M2%2.5 AND BO", + "XX|M1%1|XX" + ], + tick: function (pixel) { + for (var i = 0; i < adjacentCoords.length; i++) { + var coords = adjacentCoords[i]; + var x = pixel.x + coords[0]; + var y = pixel.y + coords[1]; + try { // this code causes errors acationally, who knows why. + if (!isEmpty(x, y)) { + if (pixelMap[x][y].element == "tear_gas_grenade") { + var x = pixel.x - coords[0]; + var y = pixel.y - coords[1]; + tryMove(pixel, x, y) + } + } + } catch {} // lazy fix + } + }, + category: "weapons", + temp: 20, + cooldown: 1, + reactions: { + "head": { elem2: ["head", "rotten_meat"], elem1: ["tear_gas", "tear_gas", "salt_water"], chance: 0.1, oneway: true }, + "body": { elem2: "rotten_meat", chance: 0.05, oneway: true }, + }, + tempLow: -30, + state: "gas", + density: 0.4, + ignoreAir: true, +}; + +elements.tear_gas_grenade = { + color: "#65665c", + behavior: [ + "XX|CR:tear_gas|XX", + "CR:tear_gas%80|EX:4>tear_gas%5|CR:tear_gas%80", + "M2|M1|M2", + ], + category: "weapons", + state: "solid", + density: 7300, + conduct: 0.73, + tempHigh: 1455.5, + stateHigh: "molten_steel", + excludeRandom: true, + cooldown: 5, + nocheer: true, +}; + +elements.sonic_grenade = { + color: "#65665c", + tick: function (pixel) { + if (!pixel.primed) { + ground=false + num = 0 + coords=lineCoords(pixel.x,pixel.y,pixel.x,pixel.y+20) + for (coord in coords) { + pxl=coords[coord] + if (!isEmpty(pxl[0],pxl[1])) { + if (num>=5) { + ground=true + break + } + if (elements[pixel.element].density>100||elements[pixel.element].hardness!==undefined) { + num++ + } + } else { + num-- + } + } + if (ground) { + pixel.primed=true + } + } + if ((pixel.primed||!isEmpty(pixel.x, pixel.y + 1))&&((Math.random() < 0.05) || (isEmpty(pixel.x, pixel.y + 1) && Math.random() < 0.3))) { + // if ~random chance~ or it has something below it & ~higher random chance~: explode + coords = circleCoords(pixel.x, pixel.y, 10); + for (i in coords) { + coord = coords[i] + var x = coord.x; + var y = coord.y; + if (!isEmpty(x, y, true)) { + pxl = pixelMap[x][y] + if ((typeof elements[pxl.element].density == "number")||(elements[pxl.element].hardness!==undefined)) { + if ((elements[pxl.element].density > 2000)||(elements[pxl.element].hardness!==undefined)) { + if (elements[pxl.element].breakInto&&(Math.random()>0.2||pxl.element=="glass")) { + if (Math.random()>0.4) { + deletePixel(x,y) + } else { + breakPixel(pxl); + } + pxl = pixelMap[x][y] + } + } + } + } + } + explodeAt(pixel.x, pixel.y, 3, "smoke") + deletePixel(pixel.x, pixel.y) + return + } else { + if (isEmpty(pixel.x, pixel.y + 1, true)) { + // first, try to move straight down + tryMove(pixel, pixel.x, pixel.y + 1) + } else if ((Math.random() < 0.5) && isEmpty(pixel.x + 1, pixel.y + 1, true)) { + tryMove(pixel, pixel.x + 1, pixel.y + 1) + } else if (isEmpty(pixel.x - 1, pixel.y + 1, true)) { + tryMove(pixel, pixel.x - 1, pixel.y + 1) + } + } + }, + category: "weapons", + state: "solid", + density: 7300, + conduct: 0.73, + tempHigh: 1455.5, + stateHigh: "molten_steel", + excludeRandom: true, + cooldown: 5, + nocheer: true, +}; \ No newline at end of file