ionized carbon and oxygen, cl dep
This commit is contained in:
parent
fdbe2846e7
commit
714fdb410b
|
|
@ -1,3 +1,8 @@
|
|||
var modName = "mods/boiling_things.js";
|
||||
var libraryMod = "mods/code_library.js";
|
||||
|
||||
if(enabledMods.includes(libraryMod)) {
|
||||
|
||||
//glass {
|
||||
|
||||
elements.molten_glass = {
|
||||
|
|
@ -136,6 +141,175 @@
|
|||
|
||||
//}
|
||||
|
||||
//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,
|
||||
|
|
@ -300,7 +474,7 @@
|
|||
}
|
||||
|
||||
//}
|
||||
/*
|
||||
|
||||
// clay {
|
||||
|
||||
if(!elements.baked_clay) {
|
||||
|
|
@ -380,7 +554,7 @@
|
|||
},
|
||||
|
||||
//}
|
||||
*/
|
||||
|
||||
// salt {
|
||||
|
||||
elements.molten_salt = {
|
||||
|
|
@ -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));
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue