elements.bioooze = {
    color: ["#53FF4F", "#53FF4F", "#06DE00", "#04A600", "#036E00"],
    behavior: behaviors.LIQUID,
    tempHigh: 100,
    stateHigh: ["plague","slime","steam","poison"],
    //tempLow: -4,
    //stateLow: "bioooze_ice",
    category: "liquids",
    heatCapacity: 3.52, //unimplemented feature
    name: "bio-ooze",
    reactions: {
        "water": { "elem1":"slime", "elem2":"slime" }, //balance
        "poison": { "elem1":"slime", "elem2":"slime" }, //balance
        //"acid": { "elem1":"wastestone" }, //acid should be sulfuric acid and product should be wastestone
        //"elder_fluid": { "elem1":"corrupt_slime" }, //acid should be sulfuric acid and product should be wastestone
        //"mercury": { "elem1":"liquid_protocite" }, //acid should be sulfuric acid and product should be wastestone
        //"blue_grav_liquid": { "elem1":"blue_grav_liquid" }, //bgl would set gravity to upwards gravity
        "blood": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "infection" },
        "soap": { "elem1": "slime", "chance": 0.02 },
        "plant": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "grass": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "algae": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "mushroom_spore": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "lichen": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "rat": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "rotten_meat" },
        "frog": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "rotten_meat" },
        "fish": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "rotten_meat" },
        "bird": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "rotten_meat" },
        "head": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "rotten_meat" },
        "body": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "rotten_meat" },
        "ant": { "elem1": ["bioooze","bioooze","bioooze","bioooze","poison","slime",null], "elem2": "dust" },
        "worm": { "elem1": ["bioooze","bioooze","bioooze","bioooze","poison","slime",null], "elem2": "dust" },
        "fly": { "elem1": ["bioooze","bioooze","bioooze","bioooze","poison","slime",null], "elem2": "dust" },
        "firefly": { "elem1": ["bioooze","bioooze","bioooze","bioooze","poison","slime",null], "elem2": "dust" },
        "bee": { "elem1": ["bioooze","bioooze","bioooze","bioooze","poison","slime",null], "elem2": "dust" },
        "slug": { "elem1": ["bioooze","bioooze","bioooze","bioooze","poison","slime",null], "elem2": "dust" },
        "snail": { "elem1": ["bioooze","bioooze","bioooze","bioooze","poison","slime",null], "elem2": "calcium" },
        "sapling": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "root": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "flower_seed": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "pistil": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "petal": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "grass_seed": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "dead_plant" },
        "meat": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "rotten_meat" },
        "wood": { "elem1": ["bioooze","bioooze","poison","slime",null], "elem2": "sawdust", "chance": 0.25 }
    },
    /*reactions: {
        "dirt": { // React with (water reacts with dirt to make mud)
            "elem1": null, // First element transforms into; in this case, water deletes itself
            "elem2": "mud", // Second element transforms into; in this case, dirt turns to mud
        },
        "sand": { "elem1": null, "elem2": "wet_sand", },
        "salt": { "elem1": "salt_water", "elem2": null },
        "sugar": { "elem1": "sugar_water", "elem2": null, },
        "dust": { "elem1": "dirty_water", "elem2": null, },
        "ash": { "elem1": "dirty_water", "elem2": null, },
        "cyanide": { "elem1": "dirty_water", "elem2": null, },
        "carbon_dioxide": { "elem1": "seltzer", "elem2": null, "oneway":true },
        "sulfur": { "elem1": "dirty_water", "elem2": null, },
        "rat": { "elem1": "dirty_water", chance:0.005 },
        "plague": { "elem1": "dirty_water", "elem2": null, },
        "rust": { "elem1": "dirty_water", chance:0.005 },
        "fallout": { "elem1": "dirty_water", chance:0.25 },
        "radiation": { "elem1": "dirty_water", chance:0.25 },
        "uranium": { "elem1": "dirty_water", chance:0.25 },
        "quicklime": { "elem1": null, "elem2": "slaked_lime", },
        "rock": { "elem2": "wet_sand", "chance": 0.00035 },
        "ruins": { "elem2": "rock", "chance": 0.00035 },
        "mudstone": { "elem2": "mud", "chance": 0.00035 },
        "methane": { "elem1":"primordial_soup", "elem2":"primordial_soup", tempMin:60, charged:true },
        "ammonia": { "elem1":"primordial_soup", "elem2":"primordial_soup", tempMin:60, charged:true },
    },*/
    state: "liquid",
    density: 1.03,
    conduct: 0.0008,
    stain: 0.2,
    viscosity: 60,
    description: "A particularly potent toxic sludge loaded with parasites and ickiness.",
};

function threshholdedPyrogen(pixel,threshholdTemp,baseHeat,divisor) {
	if(pixel.temp < threshholdTemp) {
		pixel.temp += Math.max(baseHeat,(threshholdTemp - pixel.temp) / divisor);
	} else {
		pixel.temp += baseHeat;
	};
};

function tpHeatCalc(startTemp,threshholdTemp,baseHeat,divisor) {
	if(startTemp < threshholdTemp) {
		return Math.max(baseHeat,(threshholdTemp - startTemp) / divisor);
	} else {
		return baseHeat;
	};
};

function itfChanceCalc(baseHeat,divisor,chanceLimit) {
	return Math.min(chanceLimit,(baseHeat / divisor))
};

function inferniumTempFire(pixel,divisor,chanceLimit) {
	if(Math.random() < Math.min(chanceLimit,(pixel.temp / divisor))) { //fire depending on temp
		var randomCoord = adjacentCoords[Math.floor(Math.random() * adjacentCoords.length)]; //random place
		var nx = pixel.x+randomCoord[0];
		var ny = pixel.y+randomCoord[1];
		if(isEmpty(nx,ny)) { //if empty
			createPixel("fire",nx,ny); //create fire at coord coords
			pixelMap[nx][ny].temp = pixel.temp; //set temp
		};
	};
};

elements.pyreite = {
	color: ["#cc674b","#e06e41","#f77320","#f77320","#fa9b28","#fac228"],
	behavior: behaviors.WALL,
	tempHigh: 5500, //Instead of making my own headcanons, I'm using Omniblog Of Starbound's headcanons :eggTF:
	category: "solids",
	density: 14600,
	conduct: 0.66,
	hardness: 0.79,
	tick: function(pixel) {
		threshholdedPyrogen(pixel,1722,0.25,512);
	},
};

elements.infernium = {
	color: ["#bf4b39","#e68453","#f7994d","#f7994d","#ffa154","#ffe875"],
	behavior: [
		"XX|CR:fire%0.01|XX",
		"XX|XX|XX",
		"XX|XX|XX"
	],
	tempHigh: 5526, //I have no headcanon to turn to for this mod so have multiples of 2763
	category: "solids",
	density: 13815,
	conduct: 0.691,
	hardness: 0.79,
	tick: function(pixel) {
		threshholdedPyrogen(pixel,1763,0.32,512);
		inferniumTempFire(pixel,40000,0.2);
	},
};

elements.molten_pyreite = {
	tick: function(pixel) {
		pixel.temp += 0.25;
	},
	reactions: {
		molten_infernium: { elem1: "molten_infernyrite", elem2: "molten_infernyrite", temp1: 304, temp2: 304 },
	},
};

elements.molten_infernium = {
	tick: function(pixel) {
		pixel.temp += 0.32;
		inferniumTempFire(pixel,40000,0.2);
	},
};

elements.infernyrite = {
	color: ["#d45f2c","#f59449","#f7994d","#fcaa4c","#fab973","#ffea8c"],
	behavior: [
		"XX|CR:fire%0.01|XX",
		"XX|XX|XX",
		"XX|XX|XX"
	],
	tempHigh: 9901,
	category: "solids",
	density: 14197,
	conduct: 0.63,
	hardness: 0.8,
	tick: function(pixel) {
		threshholdedPyrogen(pixel,2501,0.79,480);
		inferniumTempFire(pixel,40000,0.2);
	},
};

elements.molten_infernyrite = {
	tick: function(pixel) {
		pixel.temp += 0.79;
		inferniumTempFire(pixel,40000,0.2); //"canonically", the dilution and the pyrogenic synergy or whatever you want to call it just so happen to cancel out
	},
	reactions: {
		blazing_pyrotheum: {
			elem1: "molten_infernyreitheum",
			elem2: ["blazing_pyrotheum","molten_infernyreitheum"],
			temp1: 1043,
			temp2: 1043
		},
	},
};

if(elements.blazing_pyrotheum) {
	elements.infernyreitheum = {
		color: ["#f2a863","#faaf4d","#ffb547","#fcaa4c","#fcd64c","#fff6ba"],
		behavior: [
			"XX|CR:fire%0.08|XX",
			"XX|XX|XX",
			"XX|XX|XX"
		],
		tempHigh: 11052,
		category: "solids",
		density: 15064,
		conduct: 0.52,
		hardness: 0.8,
		tick: function(pixel) {
			threshholdedPyrogen(pixel,8932,2.03,416);
			inferniumTempFire(pixel,25000,0.4); //pyrotheum makes a lot of fire
		},
	};

	function pyrestoneInfernyreitheumReaction(pyrestoneName) {
		return {
			elem1: "molten_pyrinfernyreitheum",
			elem2: [pyrestoneName,pyrestoneName,"molten_pyrinfernyreitheum"],
			temp1: 3085,
			temp2: 3085
		};
	};

	elements.molten_infernyreitheum = {
		tick: function(pixel) {
			pixel.temp += 2.03;
			inferniumTempFire(pixel,25000,0.4);
		},
		reactions: {
			unignited_pyrestone: pyrestoneInfernyreitheumReaction("unignited_pyrestone"),
			ignited_pyrestone: pyrestoneInfernyreitheumReaction("ignited_pyrestone"),
			heated_pyrestone: pyrestoneInfernyreitheumReaction("heated_pyrestone"),
			burning_pyrestone: pyrestoneInfernyreitheumReaction("burning_pyrestone"),
			blazing_pyrestone: pyrestoneInfernyreitheumReaction("blazing_pyrestone"),
			fiery_pyrestone: pyrestoneInfernyreitheumReaction("fiery_pyrestone")
		}
	};

	if(elements.unignited_pyrestone) {
		elements.pyrinfernyreitheum = {
			color: ["#e6c087","#f7c76d","#ffd79c","#ffd79c","#ffe387","#ffffd9"],
			behavior: [
				"XX|CR:fire%2|XX",
				"XX|XX|XX",
				"XX|XX|XX"
			],
			tempHigh: 18254,
			category: "solids",
			density: 17042,
			conduct: 0.25,
			hardness: 0.8,
			tick: function(pixel) {
				threshholdedPyrogen(pixel,15944,7.01,352);
				inferniumTempFire(pixel,15000,0.8); //pyrotheum makes a lot of fire
			},
		};

		elements.molten_pyrinfernyreitheum = {
			tick: function(pixel) {
				pixel.temp += 7.01;
				inferniumTempFire(pixel,15000,0.8); //pyrotheum makes a lot of fire
			},
		};
		
		
	};
};
