sandboxels/mods/toothpaste.js

155 lines
6.0 KiB
JavaScript
Raw Permalink Normal View History

2022-02-04 11:36:23 -05:00
elements.tooth = {
color: "#d9d9d9",
behavior: behaviors.SUPPORT,
reactions: {
"sugar": { "elem1": "decayed_tooth", "elem2": null, "chance": 0.003 },
"plaque": { "elem1": "decayed_tooth", "elem2": null, "chance": 0.002 },
"acid": { "elem1": "decayed_tooth", "elem2": null },
},
category:"life",
tempHigh: 1000, //https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5887641/
stateHigh: ["steam","salt","meat","hydroxyapatite"],
state: "solid",
density: 2000, //(bs) inspired by https://ncbi.nlm.nih.gov/pmc/articles/PMC5176275/
hardness: 0.5,
breakInto: ["meat","hydroxyapatite"],
},
elements.plaque = {
color: "#faf6dc",
behavior: [
"XX|ST AND CR:plague%0.01 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|XX",
"ST AND CR:plague%0.01 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|CH:tartar%0.001|ST AND CR:plague%0.01 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01",
"M2|M1 AND ST AND CR:plague%0.01 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|M2",
],
reactions: {
"acid": { "elem1": null, "elem2": null, "chance": 0.01 },
},
category:"life",
tempHigh: 100,
stateHigh: ["steam","plague"],
state: "solid",
density: 5.4, //https://physics.aps.org/articles/v5/s140#:~:text=They%20then%20use%20tabulated%20values,%2D12%20gram)%20per%20cell.
//https://en.wikipedia.org/wiki/Calculus_(dental)#:~:text=Cell%20density%20within%20dental%20plaque,estimated%20200%2C000%2C000%20cells%20per%20milligram.
hidden: true,
},
elements.tartar = {
color: ["#e8d595", "#cfb27e", "#f0e989"],
behavior: [
"XX|ST AND CR:plague%0.02 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|XX",
"ST AND CR:plague%0.02 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|CH:tartar%0.01|ST AND CR:plague%0.02 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01",
"XX|M1 AND ST AND CR:plague%0.02 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|XX",
],
reactions: {
"acid": { "elem1": null, "elem2": null, "chance": 0.01 },
},
category:"other",
tempHigh: elements.calcium.tempHigh,
stateHigh: ["steam","plague","calcium"],
state: "solid",
density: 1900,
hardness: elements.tooth.hardness - 0.05,
breakInto: ["calcium","calcium","calcium","calcium","rotten_meat","rotten_meat","plague"],
hidden: true,
},
elements.decayed_tooth = {
color: ["#aba89d","#85837b","#7a7972","#b8b5a5","#6b6a63"],
behavior: [
"XX|XX|XX",
"SP%99.5|DL%0.04|SP%99.5",
"XX|M1|XX",
],
reactions: {
"acid": { "elem1": null, "elem2": null, "chance": 0.7 },
},
tempHigh: 1000,
stateHigh: ["steam","salt","meat","hydroxyapatite"],
state: "solid",
category: "other",
density: 1900,
hardness: 0.3,
breakInto: ["rotten_meat","hydroxyapatite"],
hidden: true,
},
elements.hydroxyapatite = {
color: ["#edecda", "#f5f5f5", "#e8e8e8"],
behavior: behaviors.POWDER,
state: "solid",
category: "solids",
density: 3180,
tempHigh: 1670,
/* it decomposes but not into anything worth adding
https://www.sciencedirect.com/science/article/abs/pii/S0142961299000769 */
category: "powders",
},
elements.toothpaste = {
color: ["#f8f8f8", "#6699ff", "#f8f8f8", "#ff5555"],
behavior: [
"XX|SW:plaque%5|XX",
"SW:plaque%5|XX|SW:plaque%5",
"M2|SW:plaque%5|M2",
],
reactions: {
"plaque": {"elem1":["foam","toothpaste","toothpaste"], "elem2":"foam", "chance":0.7},
"decayed_tooth": {"elem1":"tooth", "elem2":"foam", "chance":0.5},
},
state: "solid",
category: "other",
density: 1330,
tempHigh: 250, //bs
stateHigh: ["toothpaste","toothpaste","toothpaste","toothpaste","toothpaste","toothpaste","toothpaste","toothpaste","toothpaste","toothpaste","foam","foam","fire","smoke","ash"],
burn: 5,
burnInto: ["fire","smoke","smoke","ash","ash","toothpaste"],
viscosity: 20000,
/* it decomposes but not into anything worth adding
https://www.sciencedirect.com/science/article/abs/pii/S0142961299000769 */
category: "powders",
}
runAfterLoad(function() {
foodArray = Object.keys(elements).filter(function(e) {
return elements[e].category == "food";
});
if(!elements.tooth.reactions) {
elements.tooth.reactions = {}
};
for(i = 0; i < foodArray.length; i++) {
elements.tooth.reactions[foodArray[i]] = { "elem1": ["tooth","tooth","tooth","tooth","tooth","tooth","tooth","tooth","decayed_tooth"], "elem2": "plaque", "chance": 0.001 }
};
elements.acid.ignore.push("tooth");
elements.acid.ignore.push("decayed_tooth");
elements.acid.ignore.push("plaque");
elements.acid.ignore.push("tartar");
if(enabledMods.includes("mods/fey_and_more.js")) {
//tooth decay to impurities {
eLists.IMPURITY.push("plaque");
eLists.IMPURITY.push("tartar");
eLists.IMPURITY.push("decayed_tooth");
//}
//regenerate behaviors of elements that use eLists.IMPURITY {
elements.pure_water.behavior = [
"DL:"+eLists.IMPURITY+"|DL:"+eLists.IMPURITY+"|DL:"+eLists.IMPURITY+"",
"DL:"+eLists.IMPURITY+" AND M2|XX|DL:"+eLists.IMPURITY+" AND M2",
"DL:"+eLists.IMPURITY+" AND M1|DL:"+eLists.IMPURITY+" AND M1|DL:"+eLists.IMPURITY+" AND M1",
];
elements.pure_steam.behavior = [
"M2 AND DL:"+eLists.IMPURITY+"|M1 AND DL:"+eLists.IMPURITY+"|M2 AND DL:"+eLists.IMPURITY+"",
"M1 AND DL:"+eLists.IMPURITY+"|XX|M1 AND DL:"+eLists.IMPURITY+"",
"M2 AND DL:"+eLists.IMPURITY+"|M1 AND DL:"+eLists.IMPURITY+"|M2 AND DL:"+eLists.IMPURITY+"",
];
//}
//concoction support (it's all mistakes) {
elements.concoction.reactions.tooth = { "elem1": "mistake", "elem2": null };
elements.concoction.reactions.decayed_tooth = { "elem1": "mistake", "elem2": null };
elements.concoction.reactions.toothpaste = { "elem1": "mistake", "elem2": null };
elements.concoction.reactions.plaque = { "elem1": "mistake", "elem2": null };
elements.concoction.reactions.tartar = { "elem1": "mistake", "elem2": null };
//}
};
});