function doElectricity(pixel) {
	var info = elements[pixel.element];
	if (pixel.charge) {
		// Check each adjacent pixel, if that pixel's charge is false, set it to the same charge
		for (var i = 0; i < adjacentCoords.length; i++) {
			var x = pixel.x+adjacentCoords[i][0];
			var y = pixel.y+adjacentCoords[i][1];
			if (!isEmpty(x,y,true)) {
				var newPixel = pixelMap[x][y];
				var con = elements[newPixel.element].conduct;
				if (con == undefined) {continue}
				if (info.noConduct?.length && info.noConduct.includes(newPixel.element)) {continue};
				if (Math.random() < con) { // If random number is less than conductivity
					if (!newPixel.charge && !newPixel.chargeCD) {
						newPixel.charge = 1;
						if (elements[newPixel.element].colorOn) {
							newPixel.color = pixelColorPick(newPixel);
						}
					}
				}
				else if (elements[newPixel.element].insulate != true) { // Otherwise heat the pixel (Resistance simulation)
					newPixel.temp += pixel.charge/4;
					pixelTempCheck(newPixel);
				}
			}
		}
		pixel.charge -= 0.25;
		if (pixel.charge <= 0) {
			delete pixel.charge;
			pixel.chargeCD = 4;
		}
	}
	// Lower charge cooldown
	else if (pixel.chargeCD) {
		pixel.chargeCD -= 1;
		if (pixel.chargeCD <= 0) {
			delete pixel.chargeCD;
			if (info.colorOn) {
				pixel.color = pixelColorPick(pixel);
			}
		}
	}
}
