132 lines
3.6 KiB
JavaScript
132 lines
3.6 KiB
JavaScript
|
|
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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|