Merge pull request #1353 from lllllllllwith10ls/main
Fix some bugs with chem.js and alchem.js
This commit is contained in:
commit
1845849d5d
292
mods/alchem.js
292
mods/alchem.js
|
|
@ -12,6 +12,17 @@ function findReachable(elems) {
|
||||||
if(e1 === "mushroom_gill") {
|
if(e1 === "mushroom_gill") {
|
||||||
redo = redo || addElement_(elems, "mushroom_cap");
|
redo = redo || addElement_(elems, "mushroom_cap");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(e1 === "oil") {
|
||||||
|
redo = redo || addElement_(elems, "lamp_oil");
|
||||||
|
redo = redo || addElement_(elems, "propane");
|
||||||
|
redo = redo || addElement_(elems, "molten_plastic");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eLists.SEEDS.includes(e1)) {
|
||||||
|
redo = redo || addElement_(elems, "fiber");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(e1 === "thorium" && elems.includes("neutron")) {
|
if(e1 === "thorium" && elems.includes("neutron")) {
|
||||||
|
|
@ -80,6 +91,8 @@ function findReachable(elems) {
|
||||||
return elems;
|
return elems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
worldgentypes = {}
|
||||||
|
|
||||||
function addElement_(list, elem) {
|
function addElement_(list, elem) {
|
||||||
if(elem instanceof Array)
|
if(elem instanceof Array)
|
||||||
{
|
{
|
||||||
|
|
@ -102,11 +115,11 @@ let chemMod = document.querySelector("[src=\"mods/chem.js\"]");
|
||||||
// unhide oxygen (air), dirt (earth), fire, and water
|
// unhide oxygen (air), dirt (earth), fire, and water
|
||||||
function loadAlchem() {
|
function loadAlchem() {
|
||||||
|
|
||||||
if(!elements.hematite) {
|
if (!elements.hematite) {
|
||||||
elements.hematite = {
|
elements.hematite = {
|
||||||
color: ["#e0472f","#bf2a2a","#913920"],
|
color: ["#e0472f", "#bf2a2a", "#913920"],
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
category: "alchemy mod",
|
category: "land",
|
||||||
density: 5250,
|
density: 5250,
|
||||||
state: "solid",
|
state: "solid",
|
||||||
tempHigh: 1539,
|
tempHigh: 1539,
|
||||||
|
|
@ -114,7 +127,7 @@ function loadAlchem() {
|
||||||
};
|
};
|
||||||
elements.molten_hematite = {
|
elements.molten_hematite = {
|
||||||
reactions: {
|
reactions: {
|
||||||
"charcoal": { elem1: ["molten_iron","molten_iron","molten_iron","molten_iron","molten_nickel"], elem2: "carbon_dioxide"},
|
"charcoal": { elem1: ["molten_iron", "molten_iron", "molten_iron", "molten_iron", "molten_nickel"], elem2: "carbon_dioxide" },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
elements.molten_slag.ignore.push("hematite");
|
elements.molten_slag.ignore.push("hematite");
|
||||||
|
|
@ -122,17 +135,17 @@ function loadAlchem() {
|
||||||
|
|
||||||
elements.molten_pyrite = {
|
elements.molten_pyrite = {
|
||||||
reactions: {
|
reactions: {
|
||||||
"oxygen": { elem1: "iron", elem2: "sulfur_dioxide"},
|
"oxygen": { elem1: "iron", elem2: "sulfur_dioxide" },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
elements.molten_slag.ignore.push("pyrite");
|
elements.molten_slag.ignore.push("pyrite");
|
||||||
|
|
||||||
|
|
||||||
if(!elements.chalcopyrite) {
|
if (!elements.chalcopyrite) {
|
||||||
elements.chalcopyrite = {
|
elements.chalcopyrite = {
|
||||||
color: ["#e8d7cb","#cdc0af","#726153","#8f775e","#bfaea0",],
|
color: ["#e8d7cb", "#cdc0af", "#726153", "#8f775e", "#bfaea0",],
|
||||||
behavior: behaviors.WALL,
|
behavior: behaviors.WALL,
|
||||||
category: "alchemy mod",
|
category: "land",
|
||||||
density: 4200,
|
density: 4200,
|
||||||
state: "solid",
|
state: "solid",
|
||||||
tempHigh: 950,
|
tempHigh: 950,
|
||||||
|
|
@ -140,17 +153,17 @@ function loadAlchem() {
|
||||||
};
|
};
|
||||||
elements.molten_chalcopyrite = {
|
elements.molten_chalcopyrite = {
|
||||||
reactions: {
|
reactions: {
|
||||||
"charcoal": { elem1: "molten_copper", elem2: ["molten_slag","molten_slag","sulfur_dioxide","sulfur_dioxide","sulfur_dioxide","molten_iron"]},
|
"charcoal": { elem1: "molten_copper", elem2: ["molten_slag", "molten_slag", "sulfur_dioxide", "sulfur_dioxide", "sulfur_dioxide", "molten_iron"] },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
elements.molten_slag.ignore.push("chalcopyrite");
|
elements.molten_slag.ignore.push("chalcopyrite");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!elements.sphalerite) {
|
if (!elements.sphalerite) {
|
||||||
elements.sphalerite = {
|
elements.sphalerite = {
|
||||||
color: ["#7a7a7a","#5c5c5c","#3d3d3d","#363636","#e0e0e0",],
|
color: ["#7a7a7a", "#5c5c5c", "#3d3d3d", "#363636", "#e0e0e0",],
|
||||||
behavior: behaviors.WALL,
|
behavior: behaviors.WALL,
|
||||||
category: "alchemy mod",
|
category: "land",
|
||||||
density: 4090,
|
density: 4090,
|
||||||
state: "solid",
|
state: "solid",
|
||||||
tempHigh: 1850,
|
tempHigh: 1850,
|
||||||
|
|
@ -158,18 +171,18 @@ function loadAlchem() {
|
||||||
};
|
};
|
||||||
elements.molten_sphalerite = {
|
elements.molten_sphalerite = {
|
||||||
reactions: {
|
reactions: {
|
||||||
"charcoal": { elem1: "molten_zinc", elem2: ["sulfur_dioxide","sulfur_dioxide","sulfur_dioxide","sulfur_dioxide","sulfur_dioxide","gallium_gas"]},
|
"charcoal": { elem1: "molten_zinc", elem2: ["sulfur_dioxide", "sulfur_dioxide", "sulfur_dioxide", "sulfur_dioxide", "sulfur_dioxide", "gallium_gas"] },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
elements.molten_slag.ignore.push("sphalerite");
|
elements.molten_slag.ignore.push("sphalerite");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!elements.cassiterite) {
|
if (!elements.cassiterite) {
|
||||||
elements.cassiterite = {
|
elements.cassiterite = {
|
||||||
color: ["#5e5b5b","#705a4d","#826f6f","#333030","#e3d8d1"],
|
color: ["#5e5b5b", "#705a4d", "#826f6f", "#333030", "#e3d8d1"],
|
||||||
behavior: behaviors.WALL,
|
behavior: behaviors.WALL,
|
||||||
category: "alchemy mod",
|
category: "land",
|
||||||
density: 6950,
|
density: 6950,
|
||||||
state: "solid",
|
state: "solid",
|
||||||
tempHigh: 1630,
|
tempHigh: 1630,
|
||||||
|
|
@ -177,17 +190,17 @@ function loadAlchem() {
|
||||||
};
|
};
|
||||||
elements.molten_cassiterite = {
|
elements.molten_cassiterite = {
|
||||||
reactions: {
|
reactions: {
|
||||||
"charcoal": { elem1: "molten_tin", elem2: "carbon_dioxide"},
|
"charcoal": { elem1: "molten_tin", elem2: "carbon_dioxide" },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
elements.molten_slag.ignore.push("cassiterite");
|
elements.molten_slag.ignore.push("cassiterite");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!elements.galena) {
|
if (!elements.galena) {
|
||||||
elements.galena = {
|
elements.galena = {
|
||||||
color: ["#e6e6e6","#bdbdbd","#7a7a7a","#737373"],
|
color: ["#e6e6e6", "#bdbdbd", "#7a7a7a", "#737373"],
|
||||||
behavior: behaviors.WALL,
|
behavior: behaviors.WALL,
|
||||||
category: "alchemy mod",
|
category: "land",
|
||||||
density: 7600,
|
density: 7600,
|
||||||
state: "solid",
|
state: "solid",
|
||||||
tempHigh: 1113,
|
tempHigh: 1113,
|
||||||
|
|
@ -195,178 +208,161 @@ function loadAlchem() {
|
||||||
};
|
};
|
||||||
elements.molten_galena = {
|
elements.molten_galena = {
|
||||||
reactions: {
|
reactions: {
|
||||||
"charcoal": { elem1: "molten_lead", elem2: "sulfur_dioxide"},
|
"charcoal": { elem1: "molten_lead", elem2: "sulfur_dioxide" },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
elements.molten_slag.ignore.push("galena");
|
elements.molten_slag.ignore.push("galena");
|
||||||
}
|
}
|
||||||
|
|
||||||
let ores = Array(5).fill("molten_hematite")
|
let ores = Array(5).fill("molten_hematite")
|
||||||
.concat(Array(5).fill("molten_pyrite"))
|
.concat(Array(5).fill("molten_pyrite"))
|
||||||
.concat(Array(5).fill("molten_chalcopyrite"))
|
.concat(Array(5).fill("molten_chalcopyrite"))
|
||||||
.concat(Array(3).fill("molten_cassiterite"))
|
.concat(Array(3).fill("molten_cassiterite"))
|
||||||
.concat(Array(5).fill("molten_sphalerite"))
|
.concat(Array(5).fill("molten_sphalerite"))
|
||||||
.concat(Array(3).fill("molten_galena"))
|
.concat(Array(3).fill("molten_galena"))
|
||||||
.concat(Array(2).fill("molten_rutile"))
|
.concat(Array(2).fill("molten_rutile"))
|
||||||
.concat(Array(5).fill("molten_bauxite"))
|
.concat(Array(5).fill("molten_bauxite"))
|
||||||
.concat(Array(2).fill("molten_silver"))
|
.concat(Array(2).fill("molten_silver"))
|
||||||
.concat(Array(1).fill("molten_gold"))
|
.concat(Array(1).fill("molten_gold"))
|
||||||
.concat(Array(3).fill("molten_fluorite"))
|
.concat(Array(3).fill("molten_fluorite"))
|
||||||
.concat(Array(3).fill("molten_uraninite"))
|
.concat(Array(3).fill("molten_uraninite"));
|
||||||
|
|
||||||
elements.molten_slag.ignore.push("rutile");
|
elements.molten_slag.ignore.push("rutile");
|
||||||
elements.molten_slag.ignore.push("bauxite");
|
elements.molten_slag.ignore.push("bauxite");
|
||||||
elements.molten_slag.ignore.push("silver");
|
elements.molten_slag.ignore.push("silver");
|
||||||
elements.molten_slag.ignore.push("gold");
|
elements.molten_slag.ignore.push("gold");
|
||||||
|
|
||||||
elements.seltzer.reactions["electric"] =
|
elements.seltzer.reactions["electric"] =
|
||||||
{ elem1: "water", elem2:"methane"};
|
{ elem1: "water", elem2: "methane" };
|
||||||
elements.carbon_dioxide.reactions["electric"] =
|
elements.carbon_dioxide.reactions["electric"] =
|
||||||
{ elem1:"methane"};
|
{ elem1: "methane" };
|
||||||
elements.magma.reactions["magma"] =
|
elements.magma.reactions["magma"] =
|
||||||
{ elem2:ores, tempMin:2500, tempMax:3000, chance:0.0001};
|
{ elem2: ores, tempMin: 2500, tempMax: 3000, chance: 0.0001 };
|
||||||
|
|
||||||
if (!settings.alchemyUnlocked) {
|
if (!settings.alchemyUnlocked) {
|
||||||
settings.alchemyUnlocked = {
|
settings.alchemyUnlocked = {
|
||||||
"oxygen": true,
|
"oxygen": true,
|
||||||
"dirt": true,
|
"dirt": true,
|
||||||
"fire": true,
|
"fire": true,
|
||||||
"water": true,
|
"water": true,
|
||||||
};
|
};
|
||||||
}
|
|
||||||
if (settings.unlocked.alchemymod) {
|
|
||||||
for (var element in settings.unlocked) {
|
|
||||||
if (settings.unlocked[element]) {
|
|
||||||
settings.alchemyUnlocked[element] = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
if (settings.unlocked.alchemymod) {
|
||||||
|
for (var element in settings.unlocked) {
|
||||||
// loop through the elements object
|
if (settings.unlocked[element]) {
|
||||||
if (elements.explosion) {
|
settings.alchemyUnlocked[element] = true;
|
||||||
elements.explosion.category = "tools";
|
|
||||||
}
|
|
||||||
if (elements.room_temp) {
|
|
||||||
elements.room_temp.category = "tools";
|
|
||||||
}
|
|
||||||
if (elements.cook) {
|
|
||||||
elements.cook.category = "tools";
|
|
||||||
}
|
|
||||||
if (elements.incinerate) {
|
|
||||||
elements.incinerate.category = "tools";
|
|
||||||
}
|
|
||||||
for (var element in elements) {
|
|
||||||
if (elements[element].category === "tools") {
|
|
||||||
settings.alchemyUnlocked[element] = true;
|
|
||||||
}
|
|
||||||
if (settings.alchemyUnlocked[element]) {
|
|
||||||
elements[element].hidden = false;
|
|
||||||
if (elements[element].category !== "tools") { elements[element].category = "alchemy mod"; }
|
|
||||||
}
|
|
||||||
else if (elements[element].category !== "tools") {
|
|
||||||
// give the element the hidden attribute true
|
|
||||||
elements[element].hidden = true;
|
|
||||||
// set its category to "alchemy mod"
|
|
||||||
elements[element].category = "alchemy mod";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the unhide setting to Unlock as Discovered (2)
|
|
||||||
settings.unhide = 2;
|
|
||||||
|
|
||||||
runAfterLoad(function(){
|
|
||||||
checkUnlock = function(element) {
|
|
||||||
if (elements[element] && elements[element].hidden && !settings.alchemyUnlocked[element]) {
|
|
||||||
settings.alchemyUnlocked[element] = true;
|
|
||||||
if (settings.unhide === 2) {
|
|
||||||
createElementButton(element)
|
|
||||||
var categoryButton = document.querySelector(".categoryButton[current='true']");
|
|
||||||
var currentCategory = categoryButton.getAttribute("category");
|
|
||||||
if (currentCategory !== elements[element].category) {
|
|
||||||
document.getElementById("categoryButton-"+elements[element].category).classList.add("notify");
|
|
||||||
}
|
|
||||||
// add notify to the elementButton of the element
|
|
||||||
document.getElementById("elementButton-"+element).classList.add("notify");
|
|
||||||
}
|
}
|
||||||
saveSettings();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
runAfterAutogen(function(){
|
// loop through the elements object
|
||||||
for (var element in elements) {
|
if (elements.explosion) {
|
||||||
if (elements[element].category === "states") {
|
elements.explosion.category = "tools";
|
||||||
elements[element].category = "alchemy mod"
|
}
|
||||||
|
if (elements.room_temp) {
|
||||||
|
elements.room_temp.category = "tools";
|
||||||
|
}
|
||||||
|
if (elements.cook) {
|
||||||
|
elements.cook.category = "tools";
|
||||||
|
}
|
||||||
|
if (elements.incinerate) {
|
||||||
|
elements.incinerate.category = "tools";
|
||||||
|
}
|
||||||
|
|
||||||
|
// set the unhide setting to Unlock as Discovered (2)
|
||||||
|
settings.unhide = 2;
|
||||||
|
|
||||||
|
runAfterLoad(function () {
|
||||||
|
checkUnlock = function (element) {
|
||||||
|
if (elements[element] && elements[element].hidden && !settings.alchemyUnlocked[element]) {
|
||||||
|
settings.alchemyUnlocked[element] = true;
|
||||||
|
if (settings.unhide === 2) {
|
||||||
|
createElementButton(element);
|
||||||
|
var categoryButton = document.querySelector(".categoryButton[current='true']");
|
||||||
|
var currentCategory = categoryButton.getAttribute("category");
|
||||||
|
if (currentCategory !== elements[element].category) {
|
||||||
|
document.getElementById("categoryButton-" + elements[element].category).classList.add("notify");
|
||||||
|
}
|
||||||
|
// add notify to the elementButton of the element
|
||||||
|
document.getElementById("elementButton-" + element).classList.add("notify");
|
||||||
|
}
|
||||||
|
saveSettings();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
window.addEventListener("load", function () {
|
||||||
|
for (var element in elements) {
|
||||||
|
if (elements[element].hidden && document.getElementById("elementButton-" + element)) {
|
||||||
|
document.getElementById("elementButton-" + element).remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function lockAll() {
|
||||||
|
for (var element in elements) {
|
||||||
|
if (elements[element].category === "tools") {
|
||||||
|
settings.alchemyUnlocked[element] = true;
|
||||||
|
}
|
||||||
|
if (settings.alchemyUnlocked[element]) {
|
||||||
|
elements[element].hidden = false;
|
||||||
|
}
|
||||||
|
else if (elements[element].category !== "tools") {
|
||||||
|
// give the element the hidden attribute true
|
||||||
|
elements[element].hidden = true;
|
||||||
|
}
|
||||||
|
if (elements[element].category !== "tools") {
|
||||||
|
if (!settings.alchemyUnlocked || Object.keys(settings.alchemyUnlocked).length < 25) {
|
||||||
|
elements[element].category = "alchemy mod";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
runAfterAutogen(() => runAfterAutogen(lockAll));
|
||||||
window.addEventListener("load",function(){
|
|
||||||
for (var element in elements) {
|
|
||||||
if (elements[element].hidden && document.getElementById("elementButton-"+element)) {
|
function printReachable() {
|
||||||
document.getElementById("elementButton-"+element).remove()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
/*runAfterAutogen(function(){
|
|
||||||
let reachable = findReachable(initialElements);
|
let reachable = findReachable(initialElements);
|
||||||
console.log(reachable.join(","));
|
console.log(reachable.join(","));
|
||||||
let string = "";
|
let string = "";
|
||||||
for(let i in elements)
|
for (let i in elements) {
|
||||||
{
|
if (!reachable.includes(i)) {
|
||||||
if(!reachable.includes(i))
|
if (string === "") {
|
||||||
{
|
|
||||||
if(string === "")
|
|
||||||
{
|
|
||||||
string = i;
|
string = i;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
string += "," + i;
|
string += "," + i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(string);
|
console.log(string);
|
||||||
string = "";
|
string = "";
|
||||||
for(let i = 0; i < reachable.length; i++)
|
for (let i = 0; i < reachable.length; i++) {
|
||||||
{
|
if (!settings.alchemyUnlocked[reachable[i]]) {
|
||||||
if(!settings.alchemyUnlocked[reachable[i]])
|
if (string === "") {
|
||||||
{
|
|
||||||
if(string === "")
|
|
||||||
{
|
|
||||||
string = reachable[i];
|
string = reachable[i];
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
string += "," + reachable[i];
|
string += "," + reachable[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(string);
|
console.log(string);
|
||||||
string = "";
|
string = "";
|
||||||
for(let i in settings.alchemyUnlocked)
|
for (let i in settings.alchemyUnlocked) {
|
||||||
{
|
if (!reachable.includes(i) && settings.alchemyUnlocked[i] && elements[i].category !== "tools") {
|
||||||
if(!reachable.includes(i) && settings.alchemyUnlocked[i] && elements[i].category !== "tools")
|
if (string === "") {
|
||||||
{
|
|
||||||
if(string === "")
|
|
||||||
{
|
|
||||||
string = i;
|
string = i;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
string += "," + i;
|
string += "," + i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(string);
|
console.log(string);
|
||||||
});*/
|
}
|
||||||
|
// runAfterAutogen(() => runAfterAutogen(printReachable));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chemMod) {
|
dependOn("chem.js", () => { return; }, true);
|
||||||
if (chemMod.readyState === 'complete') {
|
|
||||||
loadAlchem();
|
loadAlchem();
|
||||||
} else {
|
|
||||||
chemMod.addEventListener("load", loadAlchem);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
loadAlchem();
|
|
||||||
}
|
|
||||||
57
mods/chem.js
57
mods/chem.js
|
|
@ -2542,7 +2542,7 @@ chemjsChemicals.sodium_hydroxide_solution = {
|
||||||
},
|
},
|
||||||
elemName: "sodium_hydroxide",
|
elemName: "sodium_hydroxide",
|
||||||
tempHigh: [100, 150],
|
tempHigh: [100, 150],
|
||||||
stateHigh: [null, ["caustic_soda"]],
|
stateHigh: [null, ["lye"]],
|
||||||
densityHigh: [1],
|
densityHigh: [1],
|
||||||
tempLow: [0],
|
tempLow: [0],
|
||||||
reactionProduct: { anionBase: "hydroxide", cationBase: "sodium_ion" },
|
reactionProduct: { anionBase: "hydroxide", cationBase: "sodium_ion" },
|
||||||
|
|
@ -2554,24 +2554,13 @@ elements.sodium_hydroxide_gas = {
|
||||||
};
|
};
|
||||||
|
|
||||||
chemjsChemicals.sodium_hydroxide = {
|
chemjsChemicals.sodium_hydroxide = {
|
||||||
elem: {
|
elementNames: ["lye", "molten_lye", "chemical!sodium_hydroxide_solution"],
|
||||||
color: "#ffe8ff",
|
|
||||||
behavior: behaviors.CAUSTIC,
|
|
||||||
category: "powders",
|
|
||||||
tempHigh: 323,
|
|
||||||
state: "solid",
|
|
||||||
density: 2130,
|
|
||||||
hidden: true,
|
|
||||||
alias: "sodium hydroxide powder",
|
|
||||||
},
|
|
||||||
elemName: "caustic_soda",
|
|
||||||
tempHigh: [323],
|
tempHigh: [323],
|
||||||
reactionProduct: { anionBase: "hydroxide", cationBase: "sodium_ion" },
|
reactionProduct: { anionBase: "hydroxide", cationBase: "sodium_ion" },
|
||||||
categories: ["bases", "sodium_ion", "hydroxide", "caustic"],
|
categories: ["bases", "sodium_ion", "hydroxide", "caustic"],
|
||||||
};
|
};
|
||||||
elements.molten_caustic_soda = {
|
elements.lye.behavior = behaviors.CAUSTIC;
|
||||||
behavior: behaviors.MOLTEN_CAUSTIC,
|
elements.molten_lye.behavior = behaviors.MOLTEN_CAUSTIC;
|
||||||
};
|
|
||||||
|
|
||||||
chemjsChemicals.potassium_hydroxide_solution = {
|
chemjsChemicals.potassium_hydroxide_solution = {
|
||||||
elem: {
|
elem: {
|
||||||
|
|
@ -2955,7 +2944,7 @@ chemjsChemicals.sodium_bromoheptahydrotriborate = {
|
||||||
hidden: true,
|
hidden: true,
|
||||||
},
|
},
|
||||||
tempHigh: [150], //wild guess
|
tempHigh: [150], //wild guess
|
||||||
stateHigh: [["pentaborane", "sodium_bromide", "hydrogen"]],
|
stateHigh: [["pentaborane_9", "sodium_bromide", "hydrogen"]],
|
||||||
categories: ["insoluble", "sodium_ion", "bromoheptahydrotriborate"],
|
categories: ["insoluble", "sodium_ion", "bromoheptahydrotriborate"],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -3456,6 +3445,7 @@ elements.aluminum_fluoride_gas = {
|
||||||
state: "gas",
|
state: "gas",
|
||||||
category: "gases",
|
category: "gases",
|
||||||
density: 3.491,
|
density: 3.491,
|
||||||
|
hidden: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
chemjsChemicals.potassium_carbonate = {
|
chemjsChemicals.potassium_carbonate = {
|
||||||
|
|
@ -4371,7 +4361,7 @@ chemjsChemicals.uraninite = {
|
||||||
|
|
||||||
chemjsChemicals.yellowcake = {
|
chemjsChemicals.yellowcake = {
|
||||||
elem: {
|
elem: {
|
||||||
color: ["#545323", "#50573b", "#656660", "#4d4933", "#615e4a", "#525043"],
|
color: ["#dbd827", "#bce346", "#a8c418", "#d9bb1a", "#dec418", "#cfb615"],
|
||||||
behavior: ["XX|CR:radiation%0.05|XX", "CR:radiation%0.05|XX|CR:radiation%0.05", "M2|M1|M2"],
|
behavior: ["XX|CR:radiation%0.05|XX", "CR:radiation%0.05|XX|CR:radiation%0.05", "M2|M1|M2"],
|
||||||
category: "powders",
|
category: "powders",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -5727,7 +5717,7 @@ chemjsChemicals.diborane = {
|
||||||
},
|
},
|
||||||
tempLow: [-92.5, -164],
|
tempLow: [-92.5, -164],
|
||||||
tempHigh: [200],
|
tempHigh: [200],
|
||||||
stateHigh: [["pentaborane", "pentaborane", "decaborane"]],
|
stateHigh: [["pentaborane_9", "pentaborane_9", "decaborane"]],
|
||||||
toxic: [1],
|
toxic: [1],
|
||||||
densityLow: [477],
|
densityLow: [477],
|
||||||
};
|
};
|
||||||
|
|
@ -6390,7 +6380,7 @@ elements.soy_sauce = {
|
||||||
stateHigh: ["steam", "steam", "steam", "steam", "salt"],
|
stateHigh: ["steam", "steam", "steam", "steam", "salt"],
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.supernova.behavior = ["XX|XX|XX", "XX|EX:80>plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,molten_iron,molten_uranium,molten_lead,oxygen,molten_sodium,sulfur_gas,fluorine,neon,molten_potassium,chlorine,molten_calcium,molten_titanium,molten_nickel,molten_copper,molten_zinc,gallium_gas,bromine_gas,iodine_gas AND CH:neutronium,neutronium,quark_matter,void|XX", "XX|XX|XX"];
|
elements.supernova.behavior = ["XX|XX|XX", "XX|EX:80>plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,molten_iron,molten_uranium,molten_lead,oxygen,molten_sodium,sulfur_gas,fluorine,neon,molten_potassium,molten_magnesium,molten_aluminum,chlorine,molten_calcium,molten_titanium,molten_nickel,molten_copper,molten_zinc,gallium_gas,bromine_gas,iodine_gas AND CH:neutronium,neutronium,quark_matter,void|XX", "XX|XX|XX"];
|
||||||
|
|
||||||
elements.gamma_ray_burst = {
|
elements.gamma_ray_burst = {
|
||||||
color: ["#fbf8ff", "#fbf3ff", "#f8f7ff"],
|
color: ["#fbf8ff", "#fbf3ff", "#f8f7ff"],
|
||||||
|
|
@ -6455,7 +6445,7 @@ chemjsChemicals.quark_matter = {
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.liquid_helium.behavior2 = ["XX|XX|XX".split("|"), "M1|XX|M1".split("|"), "M1|M1|M1".split("|")];
|
elements.liquid_helium.behavior2 = ["XX|XX|XX".split("|"), "M1|XX|M1".split("|"), "M1|M1|M1".split("|")];
|
||||||
elements.liquid_helium.behavior = null;
|
delete elements.liquid_helium.behavior;
|
||||||
|
|
||||||
elements.liquid_helium.tick = function (pixel) {
|
elements.liquid_helium.tick = function (pixel) {
|
||||||
if (Math.random() < 0.9) {
|
if (Math.random() < 0.9) {
|
||||||
|
|
@ -6730,6 +6720,19 @@ elements.living_spark = {
|
||||||
ignoreAir: true,
|
ignoreAir: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
runEveryTick(function () {
|
||||||
|
for (let i = currentPixels.length - 1; i >= 0; i--) {
|
||||||
|
if (currentPixels[i].element === "living_spark") {
|
||||||
|
if (currentPixels[i].lifeState === 2) {
|
||||||
|
deletePixel(currentPixels[i].x, currentPixels[i].y);
|
||||||
|
} else {
|
||||||
|
currentPixels[i].lifeState = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
function elementCircle(x, y, radius, pixelType = "fire", chance = 0.1, replace = [null]) {
|
function elementCircle(x, y, radius, pixelType = "fire", chance = 0.1, replace = [null]) {
|
||||||
if (!Array.isArray(replace)) {
|
if (!Array.isArray(replace)) {
|
||||||
replace = [replace];
|
replace = [replace];
|
||||||
|
|
@ -6939,7 +6942,7 @@ chemjsReactions = [
|
||||||
{ react1: "chemical!acid_liquids", react2: "sodium", elem1: "explosion", elem2: "no_change", priority: 50 },
|
{ react1: "chemical!acid_liquids", react2: "sodium", elem1: "explosion", elem2: "no_change", priority: 50 },
|
||||||
{ react1: "chemical!acid_liquids", react2: "potassium", elem1: "explosion", elem2: "no_change", priority: 50 },
|
{ react1: "chemical!acid_liquids", react2: "potassium", elem1: "explosion", elem2: "no_change", priority: 50 },
|
||||||
{ react1: "chemical!acid_liquids", react2: "meat", elem1: "no_change", elem2: "rotten_meat", elem1: null, chance: 0.5, priority: 50 },
|
{ react1: "chemical!acid_liquids", react2: "meat", elem1: "no_change", elem2: "rotten_meat", elem1: null, chance: 0.5, priority: 50 },
|
||||||
{ react1: "chemical!acids", react2: "chemical!liquid_water,ignore!dirty_water,ignore!neutral_acid", elem1: null, elem2: "dirty_water", priority: 10 },
|
{ react1: "chemical!acids,restrictchemical!caustic", react2: "chemical!liquid_water,ignore!dirty_water,ignore!neutral_acid", elem1: null, elem2: "dirty_water", priority: 10 },
|
||||||
{ react1: "chemical!nitric_acid,chemical!sulfuric_acid,chemical!hydroiodic_acid,chemical!hydroastatic_acid,chemical!fluoroboric_acid", react2: "chemical!liquid_water,ignore!dirty_water,ignore!neutral_acid", elem1: "no_change", elem2: "dirty_water", priority: 11 },
|
{ react1: "chemical!nitric_acid,chemical!sulfuric_acid,chemical!hydroiodic_acid,chemical!hydroastatic_acid,chemical!fluoroboric_acid", react2: "chemical!liquid_water,ignore!dirty_water,ignore!neutral_acid", elem1: "no_change", elem2: "dirty_water", priority: 11 },
|
||||||
|
|
||||||
{ react1: "chemical!acid_gases", react2: "chemical!acid_gases", elem1: null, elem2: "acid_cloud", props: { chance: 0.3, y: [0, 12], setting: "clouds" }, priority: 50 },
|
{ react1: "chemical!acid_gases", react2: "chemical!acid_gases", elem1: null, elem2: "acid_cloud", props: { chance: 0.3, y: [0, 12], setting: "clouds" }, priority: 50 },
|
||||||
|
|
@ -7181,7 +7184,7 @@ chemjsReactions = [
|
||||||
{ react1: "chemical!ammonia", react2: "oxygen", elem1: "nitric_oxide", elem2: "steam", props: { chance: 0.01 }, priority: 100 },
|
{ react1: "chemical!ammonia", react2: "oxygen", elem1: "nitric_oxide", elem2: "steam", props: { chance: 0.01 }, priority: 100 },
|
||||||
{ react1: "chemical!nitric_acid", react2: "chemical!ammonia", elem1: "ammonium_nitrate", elem2: null, priority: 100 },
|
{ react1: "chemical!nitric_acid", react2: "chemical!ammonia", elem1: "ammonium_nitrate", elem2: null, priority: 100 },
|
||||||
|
|
||||||
{ react1: "chemical!ammonia", react2: "hydrochloric_acid", elem1: "ammonium_chloride", elem2: null, priority: 100 },
|
{ react1: "chemical!ammonia", react2: "acid", elem1: "ammonium_chloride", elem2: null, priority: 100 },
|
||||||
|
|
||||||
{ react1: "chemical!nitrogen_dioxide", react2: "rain_cloud", elem1: null, elem2: "acid_cloud", props: { chance: 0.4, y: [0, 12], setting: "clouds" }, priority: 100 },
|
{ react1: "chemical!nitrogen_dioxide", react2: "rain_cloud", elem1: null, elem2: "acid_cloud", props: { chance: 0.4, y: [0, 12], setting: "clouds" }, priority: 100 },
|
||||||
{ react1: "chemical!nitrogen_dioxide", react2: "cloud", elem1: null, elem2: "acid_cloud", props: { chance: 0.4, y: [0, 12], setting: "clouds" }, priority: 100 },
|
{ react1: "chemical!nitrogen_dioxide", react2: "cloud", elem1: null, elem2: "acid_cloud", props: { chance: 0.4, y: [0, 12], setting: "clouds" }, priority: 100 },
|
||||||
|
|
@ -7204,7 +7207,7 @@ chemjsReactions = [
|
||||||
|
|
||||||
{ react1: "fluorine", react2: "liquid_oxygen", elem1: "foof", elem2: null, priority: 100 },
|
{ react1: "fluorine", react2: "liquid_oxygen", elem1: "foof", elem2: null, priority: 100 },
|
||||||
|
|
||||||
{ react1: "chemical!chloroform", react2: "chemical!hydrogen_fluoride", elem1: "tetrafluoroethylene", elem2: "hydrochloric_acid", props: { temp2: 50 }, priority: 100 },
|
{ react1: "chemical!chloroform", react2: "chemical!hydrogen_fluoride", elem1: "tetrafluoroethylene", elem2: "acid", props: { temp2: 50 }, priority: 100 },
|
||||||
{ react1: "chemical!tetrafluoroethylene", react2: "chemical!oxygen", elem1: "fire", elem2: "fire", priority: 100 },
|
{ react1: "chemical!tetrafluoroethylene", react2: "chemical!oxygen", elem1: "fire", elem2: "fire", priority: 100 },
|
||||||
{ react1: "chemical!tetrafluoroethylene", react2: "chemical!sulfuric_acid", elem1: "polytetrafluoroethylene", elem2: "no_change", priority: 100 },
|
{ react1: "chemical!tetrafluoroethylene", react2: "chemical!sulfuric_acid", elem1: "polytetrafluoroethylene", elem2: "no_change", priority: 100 },
|
||||||
|
|
||||||
|
|
@ -7333,7 +7336,7 @@ chemjsReactions = [
|
||||||
{ react1: "chemical!sulfur", react2: "chemical!fluorine", elem1: "sulfur_hexafluoride", elem2: "fire", priority: 100 },
|
{ react1: "chemical!sulfur", react2: "chemical!fluorine", elem1: "sulfur_hexafluoride", elem2: "fire", priority: 100 },
|
||||||
|
|
||||||
//Cl
|
//Cl
|
||||||
{ react1: "chemical!chlorine", react2: "chemical!methane", elem1: "chloroform", elem2: ["hydrochloric_acid", null, null], priority: 100 },
|
{ react1: "chemical!chlorine", react2: "chemical!methane", elem1: "chloroform", elem2: ["acid", null, null], priority: 100 },
|
||||||
|
|
||||||
{ react1: "chemical!sulfuric_acid", react2: "chemical!sodium_chloride", elem1: "sodium_sulfate", elem2: "acid", props: { temp1: 50, temp2: 50 }, priority: 100 },
|
{ react1: "chemical!sulfuric_acid", react2: "chemical!sodium_chloride", elem1: "sodium_sulfate", elem2: "acid", props: { temp1: 50, temp2: 50 }, priority: 100 },
|
||||||
{ react1: "chemical!sulfuric_acid", react2: "chemical!potassium_chloride", elem1: "potassium_sulfate", elem2: "acid", props: { temp1: 50, temp2: 50 }, priority: 100 },
|
{ react1: "chemical!sulfuric_acid", react2: "chemical!potassium_chloride", elem1: "potassium_sulfate", elem2: "acid", props: { temp1: 50, temp2: 50 }, priority: 100 },
|
||||||
|
|
@ -7719,9 +7722,9 @@ chemjsReactions = [
|
||||||
{ react1: "chemical!ununennium", react2: "steam", elem1: "n_explosion", elem2: null, priority: 100 },
|
{ react1: "chemical!ununennium", react2: "steam", elem1: "n_explosion", elem2: null, priority: 100 },
|
||||||
{ react1: "chemical!ununennium", react2: "chemical!liquid_water", elem1: "n_explosion", elem2: null, priority: 10 },
|
{ react1: "chemical!ununennium", react2: "chemical!liquid_water", elem1: "n_explosion", elem2: null, priority: 10 },
|
||||||
|
|
||||||
{ react1: "chemical!stable_ununennium", react2: "rad_steam", elem1: "ununennium_hydroxide", elem2: [null, null, "big_pop"], props: { func: ununenniumHydroxide }, priority: 100 },
|
{ react1: "chemical!stable_ununennium", react2: "rad_steam", elem1: "ununennium_hydroxide", elem2: [null, null, "explosion"], props: { func: ununenniumHydroxide }, priority: 100 },
|
||||||
{ react1: "chemical!stable_ununennium", react2: "steam", elem1: "ununennium_hydroxide", elem2: [null, null, "big_pop"], props: { func: ununenniumHydroxide }, priority: 100 },
|
{ react1: "chemical!stable_ununennium", react2: "steam", elem1: "ununennium_hydroxide", elem2: [null, null, "explosion"], props: { func: ununenniumHydroxide }, priority: 100 },
|
||||||
{ react1: "chemical!stable_ununennium", react2: "chemical!liquid_water", elem1: "ununennium_hydroxide", elem2: [null, null, "big_pop"], props: { func: ununenniumHydroxide }, priority: 10 },
|
{ react1: "chemical!stable_ununennium", react2: "chemical!liquid_water", elem1: "ununennium_hydroxide", elem2: [null, null, "explosion"], props: { func: ununenniumHydroxide }, priority: 10 },
|
||||||
{ react1: "chemical!ununennium_hydroxide,ignorechemical!ununennium_hydroxide_solution", react2: "chemical!liquid_water", elem1: "ununennium_hydroxide", elem2: null, priority: 10 },
|
{ react1: "chemical!ununennium_hydroxide,ignorechemical!ununennium_hydroxide_solution", react2: "chemical!liquid_water", elem1: "ununennium_hydroxide", elem2: null, priority: 10 },
|
||||||
|
|
||||||
{ react1: "chemical!ununennium_fluoride", react2: "chemical!fluorine", elem1: "ununennium_trifluoride", elem2: "fire", priority: 100 },
|
{ react1: "chemical!ununennium_fluoride", react2: "chemical!fluorine", elem1: "ununennium_trifluoride", elem2: "fire", priority: 100 },
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue