diff --git a/mods/fuel_generators.js b/mods/fuel_generators.js new file mode 100644 index 00000000..64595dda --- /dev/null +++ b/mods/fuel_generators.js @@ -0,0 +1,131 @@ +elements.gasoline = { + color: ["#FFFF66", "#FFFF66", "#FFFF66", "#FFFF66", "#FFFF66"], + burn: 15, + burnTime: 300, + viscosity: 0.6, + density: 750, + category: "fuels", + behavior: behaviors.LIQUID, + state: "liquid", + desc: "Used in Gas Generators!" +} + +elements.diesel = { + color: "#EBFBB5", + burn: 10, + burnTime: 600, + viscosity: 3, + density: 860, + category: "fuels", + behavior: behaviors.LIQUID, + state: "liquid", + desc: "Used in Diesel Generators!" +} + +elements.gasoline_generator = { + color: "#6d5f5d", + behavior: behaviors.WALL, + state: "solid", + density: 1000, + category: "machines", + properties: { + shocksToDo: 0 + }, + hoverStat: function(pixel){return pixel.shocksToDo || 0}, + tick: function(pixel){ + if (pixel.shocksToDo <= 40){ + for (var i = 0; i < adjacentCoords.length; i++){ + var coord = adjacentCoords[i] + var x = pixel.x + coord[0] + var y = pixel.y + coord[1] + if (!isEmpty(x, y, true)){ + var otherPixel = pixelMap[x][y] + if (otherPixel.element == "gasoline"){ + deletePixel(x, y) + if(!pixel.shocksToDo){pixel.shocksToDo = 0} + pixel.shocksToDo += 10 + } + else if (otherPixel.element == "gasoline_generator"){ + var otherPixel = pixelMap[x][y] + var otherShock = otherPixel.shocksToDo || 0 + var currentShock = pixel.shocksToDo || 0 + if (otherShock > currentShock){ + otherPixel.shocksToDo -- + pixel.shocksToDo ++ + } else if (currentShock > otherShock) { + otherPixel.shocksToDo ++ + pixel.shocksToDo -- + } + } + } + }} + if (!pixel.charge && !pixel.chargeCD && pixel.shocksToDo){ + for (var i = 0; i < adjacentCoords.length; i++){ + var coord = adjacentCoords[i] + var x = pixel.x + coord[0] + var y = pixel.y + coord[1] + if (!isEmpty(x, y, true)){ + if (elements[pixelMap[x][y].element].conduct > 0){ + pixel.charge = 1 + pixel.shocksToDo -- + break; + } + } + } + } + } +} + +elements.diesel_generator = { + color: "#FF9C27", + behavior: behaviors.WALL, + state: "solid", + density: 1000, + category: "machines", + properties: { + shocksToDo: 0 + }, + hoverStat: function(pixel){return pixel.shocksToDo || 0}, + tick: function(pixel){ + if (pixel.shocksToDo <= 80){ + for (var i = 0; i < adjacentCoords.length; i++){ + var coord = adjacentCoords[i] + var x = pixel.x + coord[0] + var y = pixel.y + coord[1] + if (!isEmpty(x, y, true)){ + var otherPixel = pixelMap[x][y] + if (otherPixel.element == "diesel"){ + deletePixel(x, y) + if(!pixel.shocksToDo){pixel.shocksToDo = 0} + pixel.shocksToDo += 20 + } + else if (otherPixel.element == "diesel_generator"){ + var otherPixel = pixelMap[x][y] + var otherShock = otherPixel.shocksToDo || 0 + var currentShock = pixel.shocksToDo || 0 + if (otherShock > currentShock){ + otherPixel.shocksToDo -- + pixel.shocksToDo ++ + } else if (currentShock > otherShock) { + otherPixel.shocksToDo ++ + pixel.shocksToDo -- + } + } + } + }} + if (!pixel.charge && !pixel.chargeCD && pixel.shocksToDo){ + for (var i = 0; i < adjacentCoords.length; i++){ + var coord = adjacentCoords[i] + var x = pixel.x + coord[0] + var y = pixel.y + coord[1] + if (!isEmpty(x, y, true)){ + if (elements[pixelMap[x][y].element].conduct > 0){ + pixel.charge = 1 + pixel.shocksToDo -- + break; + } + } + } + } + } +}