ionized carbon and oxygen, cl dep

This commit is contained in:
An Orbit 2023-04-23 14:34:27 -04:00 committed by GitHub
parent fdbe2846e7
commit 714fdb410b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 616 additions and 437 deletions

View File

@ -1,4 +1,9 @@
//glass {
var modName = "mods/boiling_things.js";
var libraryMod = "mods/code_library.js";
if(enabledMods.includes(libraryMod)) {
//glass {
elements.molten_glass = {
tempHigh: 2200,
@ -55,9 +60,9 @@
state: "gas",
},
//}
//}
// ash {
// ash {
elements.ash.tempHigh = 1200 //https://www.quora.com/Can-you-melt-ashes
elements.ash.stateHigh = "molten_ash" //https://www.sciencedirect.com/science/article/pii/S1877705817326772
@ -127,16 +132,185 @@
state: "gas",
},
//}
//}
// charcoal {
// charcoal {
elements.charcoal.tempHigh = 800
elements.charcoal.stateHigh = "carbon_dioxide"
//}
//}
// baking soda {
//carbon dioxide {
/*fuck this, i can't work out the offset-infested math
function carbonDioxideDecompRatio(temp) {
//
// K is the ratio of O_2 to CO_2
// If K = 100, there is 100 times more O_2
// If K = 1, there is a 1:1 ratio
//
return Math.E**(((1110190+(13.083*(temp-298)))-(temp*(149.498+(13.083*(Math.log(temp/298))))))/(-8.31446*temp))
}
function carbonDioxideDecompChance(temp) {
//Expected 0.5 at 6275.6434478747902
if(typeof(temp) === "undefined") {
throw new Error("Temp must be specified~");
};
if(typeof(temp) == "string") {
temp = parseFloat(temp);
};
if(isNaN(temp)) {
throw new TypeError(typeof(temp) == "number" ? "Temp cannot be NaN~" : "Temp must be a number~");
};
if(temp == Infinity) {
return 1;
};
if(temp <= 0) {
return 0;
};
var K = carbonDioxideDecompRatio(temp);
return 1-(1/(K+1));
};
*/
var hasNM = enabledMods.includes("mods/Neutronium Mod.js");
//Mass given is the molar mass of O_2 molecule (31.999 g)
//O_2 bond energy is 495 kJ/mol
//Heat capacity is 0.918 J/(g*K)
//in case the link goes down: c = Q/(m * delta-T); c = capacity, m = mass, delta-T = temp change, energy = Q
//https://www.calctool.org/thermodynamics/specific-heat
elements.oxygen.tempHigh = 16851;
elements.oxygen.stateHigh = "monatomic_oxygen";
elements.monatomic_oxygen = {
temp: 18000,
tempLow: 16851,
stateLow: "oxygen",
behavior: behaviors.GAS,
tempHigh: 158051.204,
stateHigh: "ionized_oxygen",
color: "#d2adff",
category: "gases",
state: "gas",
density: 1
};
elements.ionized_oxygen = {
color: "#ff1900",
category: "energy",
state: "gas",
behavior: behaviors.GAS,
//First ionization energy of oxygen (13.61806 eV) * eV-to-K conversion factor (11606 K/eV) = 158051 K
//https://byjus.com/question-answer/what-is-oxygen-ionization-energy/
//https://astro.swarthmore.edu/~cohen/projects/prismspect/notes.html
temp: 160000,
tempLow: 157778.054,
stateLow: "monatomic_oxygen",
density: 1, //made up
};
tupleAdverbs = ['Nullly', 'Singly', 'Doubly', 'Triply', 'Quadruply', 'Quintuply', 'Sextuply', 'Septuply', 'Octuply', 'Nonuply', 'Decuply', 'Undecuply', 'Duodecuply', 'Tredecuply', 'Quattuordecuply', 'Quindecuply', 'Sexdecuply', 'Septendecuply', 'Octodecuply', 'Novemdecuply', 'Vigintuply', 'Unvigintuply', 'Duovigintuply', 'Trevigintuply', 'Quattuorvigintuply', 'Quinvigintuply', 'Sexvigintuply', 'Septenvigintuply', 'Octovigintuply', 'Novemvigintuply', 'Trigintuply'].map(x => x.toLowerCase());
var oxygenIonizationTemperatures = [-273.15,13.61806,35.11730,54.9355,77.41353,113.8990,138.1197,739.29,871.4101].map(x => (x * 11606) - 273.15);
for(var highUpGirlsCindy = 2; highUpGirlsCindy <= 8; highUpGirlsCindy++) {
var newName = `${tupleAdverbs[highUpGirlsCindy]}_ionized_oxygen`;
elements[newName] = {
color: convertColorFormats({r: 255, g: 25, b: (highUpGirlsCindy - 1) * 24},"hex"),
category: "energy",
state: "gas",
behavior: behaviors.GAS,
temp: Math.ceil(oxygenIonizationTemperatures[highUpGirlsCindy]/10000)*10000,
tempLow: oxygenIonizationTemperatures[highUpGirlsCindy],
stateLow: `${tupleAdverbs[highUpGirlsCindy - 1]}_ionized_oxygen`.replace("singly_",""),
density: 1, //made up
};
if(highUpGirlsCindy < 8) {
elements[newName].tempHigh = oxygenIonizationTemperatures[highUpGirlsCindy + 1];
elements[newName].stateHigh = `${tupleAdverbs[highUpGirlsCindy + 1]}_ionized_oxygen`;
};
};
elements.ionized_oxygen.tempHigh = 407571.3838;
elements.ionized_oxygen.stateHigh = "doubly_ionized_oxygen";
elements.carbon_gas = {
color: ["#ffce9f", "#ffda80", "#ffbc8f"],
behavior: behaviors.GAS,
state: "gas",
category: "gases",
tempLow: 3642,
tempHigh: 130687.0418,
stateHigh: "ionized_carbon",
stateLow: hasNM ? "molten_carbon" : "carbon",
density: 2 //made-up due to lack of academic literature
};
elements.ionized_carbon = {
color: "#7f7f8f",
category: "energy",
state: "gas",
behavior: behaviors.GAS,
temp: 140000,
tempLow: 130687.0418,
stateLow: "carbon_gas",
density: 1, //made up
};
var carbonIonizationTemperatures = [-273.15,11.26030,24.38332,47.8878,64.4939,392.087,489.99334].map(x => (x * 11606) - 273.15);
for(var highUpGirlsCindy = 2; highUpGirlsCindy <= 6; highUpGirlsCindy++) {
var newName = `${tupleAdverbs[highUpGirlsCindy]}_ionized_carbon`;
console.log(highUpGirlsCindy,newName,carbonIonizationTemperatures[highUpGirlsCindy]);
elements[newName] = {
color: convertColorFormats({r: 127 + ((highUpGirlsCindy - 1) * 8), g: 127, b: 127 + (highUpGirlsCindy - 1) * 16},"hex"),
category: "energy",
state: "gas",
behavior: behaviors.GAS,
temp: Math.ceil(carbonIonizationTemperatures[highUpGirlsCindy]/10000)*10000,
tempLow: carbonIonizationTemperatures[highUpGirlsCindy],
stateLow: `${tupleAdverbs[highUpGirlsCindy - 1]}_ionized_carbon`.replace("singly_",""),
density: 1, //made up
};
if(highUpGirlsCindy < 6) {
elements[newName].tempHigh = carbonIonizationTemperatures[highUpGirlsCindy + 1];
elements[newName].stateHigh = `${tupleAdverbs[highUpGirlsCindy + 1]}_ionized_carbon`;
};
};
elements.ionized_carbon.tempHigh = 282992.81192;
elements.ionized_carbon.stateHigh = "doubly_ionized_carbon";
if(hasNM) {
runAfterLoad(function() {
elements.carbon.density = 3500;
elements.molten_carbon.density = 1200;
elements.carbon.tick = behaviors.POWDER;
elements.molten_carbon.tempHigh = 3642;
elements.molten_carbon.stateHigh = "carbon_gas";
});
} else {
elements.carbon = {
color: "#171717",
behavior: behaviors.POWDER,
density: 3500,
tempHigh: 3642,
stateHigh: "carbon_gas",
state: "solid",
category: POWDERS,
};
};
elements.carbon_dioxide.tempHigh = 6275.6434478747902; //50% point
elements.carbon_dioxide.stateHigh = ["carbon","oxygen","carbon_dioxide","carbon_dioxide"];
//}
// baking soda {
elements.baking_soda.tempHigh = 150,
elements.baking_soda.stateHigh = ["water","carbon_dioxide","calcined_soda"]
@ -240,9 +414,9 @@
//}
//}
//}
// calcium {
// calcium {
elements.molten_calcium = {
tempHigh: 2200,
@ -299,9 +473,9 @@
state: "gas",
}
//}
/*
// clay {
//}
// clay {
if(!elements.baked_clay) {
elements.baked_clay = {}
@ -379,9 +553,9 @@
state: "gas",
},
//}
*/
// salt {
//}
// salt {
elements.molten_salt = {
tempHigh: 1465,
@ -438,9 +612,9 @@
state: "gas",
}
//}
//}
runAfterLoad(function() {
runAfterLoad(function() {
if(elements.acid_gas.tempHigh) {
delete elements.acid_gas.tempHigh
}
@ -473,13 +647,18 @@ runAfterLoad(function() {
elements.concoction.reactions.vaporized_calcium = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.hot_calcium_cloud = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.cold_calcium_cloud = { "elem1": "mistake", "elem2": null }
/*elements.concoction.reactions.molten_clay = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.molten_clay = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.vaporized_clay = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.hot_clay_cloud = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.cold_clay_cloud = { "elem1": "mistake", "elem2": null }*/
elements.concoction.reactions.cold_clay_cloud = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.vaporized_salt = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.hot_salt_cloud = { "elem1": "mistake", "elem2": null }
elements.concoction.reactions.cold_salt_cloud = { "elem1": "mistake", "elem2": null }
};
});
});
} else {
alert(`The ${libraryMod} mod is required and has been automatically inserted (reload for this to take effect).`)
enabledMods.splice(enabledMods.indexOf(modName),0,libraryMod)
localStorage.setItem("enabledMods", JSON.stringify(enabledMods));
};