var modName = "mods/clf3.js"; var chemMod = "mods/chem.js"; if(enabledMods.includes(chemMod)) { function finishBurn(pixel) { var info = elements[pixel.element]; var burnInto = info.burnInto; if (burnInto == undefined) { burnInto = 'fire'; } else if (burnInto instanceof Array) { burnInto = burnInto[Math.floor(Math.random()*burnInto.length)]; } changePixel(pixel,burnInto,(burnInto !== "smoke")); if (info.fireColor != undefined && burnInto == "fire") { pixel.color = pixelColorPick(pixel,info.fireColor); } else { pixel.color = pixelColorPick(pixel) } }; function clf3Tick(pixel) { for(i = 0; i < adjacentCoords.length; i++) { var oX = adjacentCoords[i][0]; var oY = adjacentCoords[i][1]; var fX = pixel.x+oX; var fY = pixel.y+oY; if(!isEmpty(fX,fY,true)) { var otherPixel = pixelMap[fX][fY]; var otherElement = otherPixel.element; if(otherElement === "water") { explodeAt(otherPixel.x,otherPixel.y,7,"fire,hydrofluoric_acid,oxygen,acid,chlorine") }; if(!elements.chlorine_trifluoride.ignore.includes(otherElement)) { if(!otherPixel.burning) { otherPixel.burning = true }; if(!otherPixel.burnStart) { otherPixel.burnStart = pixelTicks }; var instaburnChance = 0.05 + (pixelTicks - otherPixel.burnStart) / 1000 if(Math.random() < instaburnChance) { finishBurn(otherPixel); }; }; }; }; }; var clf3IgnoreList = ["FOOF","solid_FOOF","oxygen","liquid_oxygen","oxygen_ice","chlorine","liquid_chlorine","liquid_hydrogen_fluoride","liquid_fluorine","fluorine","fluorine_ice","hydrogen_fluoride","hydrofluoric_acid","hydrofluoric_acid_gas","fire","acid_gas","neutral_acid","acid","acid_cloud","nitrogen","helium","liquid_helium","tralphium","liquid_tralphium","neon","liquid_neon","solid_neon","neon_ice","neon_snow","argon","liquid_argon","solid_argon","argon_ice","argon_snow", "krypton","liquid_krypton","solid_krypton","krypton_ice","krypton_snow", "xenon","liquid_xenon","solid_xenon","xenon_ice","xenon_snow", "radon","liquid_radon","solid_radon","radon_ice","radon_snow","ionized_helium","ionized_tralphium","wall","chlorine_trifluoride","chlorine_trifluoride_ice","chlorine_trifluoride_gas","quartz"]; //todo: PTFE, passivation elements.chlorine_trifluoride = { color: "#8aa65b", behavior: behaviors.LIQUID, //ignore list copied from chem.js ignore: clf3IgnoreList, //the elements that don't exist won't trigger any error here becuase the code's just checking pixels' elements against this list tick: function(pixel) { clf3Tick(pixel); }, category:"liquids", state: "liquid", density: 1770, tempLow: -76.34, tempHigh: 11.75, temp: 5, }; elements.chlorine_trifluoride_gas = { tick: function(pixel) { clf3Tick(pixel); }, density: 3.78, //variously or 3.18, //tempHigh: 220, //variously or 180, //stateHigh: ["chlorine_fluoride","fluorine"], }; elements.chlorine_trifluoride_ice = { tick: function(pixel) { clf3Tick(pixel); }, }; } else { enabledMods.splice(enabledMods.indexOf(modName),0,chemMod); localStorage.setItem("enabledMods", JSON.stringify(enabledMods)); alert(`The ${chemMod} mod is required and has been automatically inserted (reload for this to take effect).`); };