function splitRgbColor(color) { var colorTempArray = color.split(",") var r = colorTempArray[0].split(",")[0].substring(4) var g = colorTempArray[1] var b = colorTempArray[2].slice(0,-1) return [r,g,b] } function randomArrayChoice(array) { return array[Math.floor(Math.random() * array.length)] } elements.laetium = { color: "#f57f87", tempHigh: 2950, hardness: 0.87252, density: 6719, conduct: 4.7E210, behavior: behaviors.WALL, state: "solid", category: "solids", tick: function(pixel) { neighbors = [[-1,0],[0,-1],[1,0],[0,1]] for(i = 0; i < neighbors.length; i++) { if(!isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { if(elements[pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element].category) { if(elements[pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element].category == "cum") { pixel.temp += 5 } } } } }, } elements.molten_laetium = { color: ['#ff9f44', '#ff7f44', '#ff5f00'], behavior: behaviors.MOLTEN, reactions: { "ash": { "elem1": null, "elem2": "laetium_slag"}, "dust": { "elem1": null, "elem2": "laetium_slag"}, "magma": { "elem1": null, "elem2": "laetium_slag"}, }, tick: function(pixel) { neighbors = [[-1,0],[0,-1],[1,0],[0,1]] for(i = 0; i < neighbors.length; i++) { if(!isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element.category) { if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element.category == "cum") { pixel.temp += 5 } } } } }, density: 6100, temp: 3000, tempLow: 2944, stateLow: "laetium", tempHigh: 5837, stateHigh: "vaporized_laetium", viscosity: 1.517, hidden: true, state: "liquid", category: "molten", } elements.vaporized_laetium = { color: ['#efdf54', '#efbf54', '#efaf10'], behavior: behaviors.GAS, tick: function(pixel) { neighbors = [[-1,0],[0,-1],[1,0],[0,1]] for(i = 0; i < neighbors.length; i++) { if(!isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element.category) { if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element.category == "cum") { pixel.temp += 5 } } } } }, density: 49, temp: 6000, tempLow: 5837, stateLow: "molten_laetium", viscosity: 0.1, hidden: true, state: "gas", category: "gases", } elements.atisanium = { color: "#8dadb8", conduct: 0.87, colorOn: ["#ff00ff", "#e600e6", "#a300cc", "#ce07e8"], tempLow: -44, stateLow: "liquid_atisanium", density: 1.225, behavior: [ "M1|M1|M1", "M1|XX|M1", "M1|M1|M1", ], state: "gas", category: "gases", tick: function(pixel) { var neighbors = [[-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1]] var neighborChoice = randomArrayChoice(neighbors) if(isEmpty(neighborChoice[0],pixel.y+neighborChoice[1],true)) { tryMove(pixel,pixel.x+neighborChoice[0],pixel.y+neighborChoice[1]) } if(pixel.chargeCD) { if(pixel.chargeCD > 2) { pixel.chargeCD = 2 } } }, } elements.liquid_atisanium = { color: "#3f878a", conduct: 0.96, colorOn: ["#8307eb", "#8c00ff", "#9617ff", "#a02eff"], tempHigh: -45, stateHigh: "atisanium", tempLow: -214, stateLow: "alpha_atisanium", temp: -100, density: 15941, behavior: behaviors.LIQUID, state: "liquid", category: "liquids", tick: function(pixel) { var moveSpotsA = [[-1,1],[0,1],[1,1]] var moveSpotsB = [[-1,0],[1,0]] var msaChoice = randomArrayChoice(moveSpotsA) var msbChoice = randomArrayChoice(moveSpotsB) if(isEmpty(msaChoice[0],pixel.y+msaChoice[1],true)) { if(!tryMove(pixel,pixel.x+msaChoice[0],pixel.y+msaChoice[1])) { tryMove(pixel,pixel.x+msbChoice[0],pixel.y+msbChoice[1]) } } if(pixel.chargeCD) { if(pixel.chargeCD > 2) { pixel.chargeCD = 2 } } if(pixel.chargeCD) { if(pixel.chargeCD > 1) { if(Math.random() < 0.2) { pixel.chargeCD = 1 } } } }, } elements.alpha_atisanium = { color: "#00382a", conduct: 0.987, colorOn: ["#3700ff", "#6820f7", "#4b15bf"], tempHigh: -213, stateHigh: "liquid_atisanium", tempLow: -261, stateLow: "beta_atisanium", temp: -240, density: 51295, behavior: behaviors.WALL, state: "solid", category: "solids", tick: function(pixel) { if(pixel.chargeCD) { if(pixel.chargeCD > 2) { pixel.chargeCD = 2 } } if(pixel.chargeCD) { if(pixel.chargeCD > 1) { if(Math.random() < 0.4) { pixel.chargeCD = 1 } } } }, } elements.beta_atisanium = { color: "#750e35", conduct: Infinity, //This is where I would make it a superconductor. colorOn: ["#0f0021", "#120324", "#4b106e", "#a6058e", "#42043a"], //pretend this is UV becoming more pronounced tempHigh: -260, stateHigh: "alpha_atisanium", temp: -270, density: 111295, behavior: behaviors.WALL, state: "solid", category: "solids", tick: function(pixel) { if(pixel.chargeCD) { if(pixel.chargeCD > 3) { pixel.chargeCD = 3 } } }, } elements.polusium = { color: "#dedc9e", tempHigh: 1213, hardness: 0.921952, density: 4113, conduct: 0.98, behavior: behaviors.WALL, state: "solid", category: "solids", tick: function(pixel) { var emptyNeighbors = []; for(i = 0; i < adjacentCoords.length; i++) { if(isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],true)) { emptyNeighbors.push(adjacentCoords[i]); }; }; if(Math.random() < 0.002) { if(emptyNeighbors.length > 0) { var randomEmptyNeighbor = emptyNeighbors[Math.floor(Math.random() * emptyNeighbors.length)]; changePixel(pixel,"polusium_oxide") createPixel("nitrogen",pixel.x+randomEmptyNeighbor[0],pixel.y+randomEmptyNeighbor[1]) }; }; }, reactions: { water: { elem1: "polusium_oxide", elem2: ["water","water","water","water","hydrogen"], chance: 0.006 }, salt_water: { elem1: "polusium_oxide", elem2: ["salt_water","salt_water","salt_water","salt","hydrogen"], chance: 0.012 }, bleach: { elem1: "polusium_oxide", chance: 0.02 } }, } elements.molten_polusium = { tick: function(pixel) { neighbors = [[-1,0],[0,-1],[1,0],[0,1]] for(i = 0; i < neighbors.length; i++) { if(isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { if(Math.random() < 0.004) { changePixel(pixel,"molten_polusium_oxide") } } if(!isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element == "salt_water") { if(Math.random() < 0.024) { changePixel(pixel,"molten_polusium_oxide") } } } } }, density: 3410, temp: 1300, tempLow: 1212, stateLow: "polusium", tempHigh: 3110, stateHigh: "vaporized_polusium", viscosity: 13, } elements.vaporized_polusium = { color: ["#fdffd1", "#edf2cb", "#fcfac7"], behavior: behaviors.GAS, tick: function(pixel) { neighbors = [[-1,0],[0,-1],[1,0],[0,1]] for(i = 0; i < neighbors.length; i++) { if(isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { if(Math.random() < 0.015) { changePixel(pixel,"vaporized_polusium_oxide") } } if(!isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element == "salt_water") { if(Math.random() < 0.06) { changePixel(pixel,"vaporized_polusium_oxide") } } } } }, density: 21, temp: 3200, tempLow: 3109, stateLow: "molten_polusium", viscosity: 0.2, hidden: true, state: "gas", category: "gases", } elements.polusium_oxide = { color: "#a9b594", tempHigh: 1300, hardness: 0.511952, density: 3717, behavior: behaviors.POWDER, state: "solid", category: "solids", viscosity: 13, } elements.molten_polusium_oxide = { temp: 1350, tempHigh: 1400, stateHigh: "vaporized_polusium_oxide", density: 2917, } elements.vaporized_polusium_oxide = { color: "#faffc7", temp: 1500, tempLow: 1399, stateLow: "molten_polusium_oxide", density: 10, behavior: behaviors.GAS, } runAfterLoad(function() { elements.laetium_slag = JSON.parse(JSON.stringify(elements.slag)) elements.laetium_slag.color = ['#a05c5a', '#af6967', '#b06d6d', '#ae6b6c', '#b67a7a'] elements.laetium_slag.tempHigh = 2950 elements.laetium_slag.stateHigh = ["molten_slag","molten_laetium"] });