Nichrome + dependencies

* Nichrome heats up when charged.
* It can be formed by alloying nickel and the new chromium.
* For those reactions, the "runAfterAutogen and onload restructure.js" and "changeTempReactionParameter.js" are required.
This commit is contained in:
Laetitia (O-01-67) 2023-02-06 12:05:38 -05:00 committed by GitHub
parent 6e975dd607
commit d608af8060
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 468 additions and 385 deletions

View File

@ -1,3 +1,7 @@
var modName = "mods/metals.js";
var changeTempMod = "mods/changeTempReactionParameter.js";
var runAfterAutogenMod = "mods/runAfterAutogen and onload restructure.js";
if(enabledMods.includes(changeTempMod) && enabledMods.includes(runAfterAutogenMod)) {
elements.iron.hardness = 0.74 elements.iron.hardness = 0.74
//https://www.engineeringtoolbox.com/bhn-brinell-hardness-number-d_1365.html //https://www.engineeringtoolbox.com/bhn-brinell-hardness-number-d_1365.html
//https://en.wikipedia.org/wiki/Hardnesses_of_the_elements_(data_page) //https://en.wikipedia.org/wiki/Hardnesses_of_the_elements_(data_page)
@ -8,6 +12,79 @@ elements.iron.hardness = 0.74
//it doesn't matter much anyway but I'd like to have some semblance/veneer of accuracy //it doesn't matter much anyway but I'd like to have some semblance/veneer of accuracy
//Then I nerfed and buffed some of them with inconsistent rounding. //Then I nerfed and buffed some of them with inconsistent rounding.
elements.chromium = {
color: ["#c8cccb", "#dce3e0", "#ebedeb"],
behavior: behaviors.WALL,
reactions: {
},
tempHigh: 1907,
category: "solids",
density: 7190,
conduct: 0.35,
hardness: 0.985,
state: "solid",
};
nichromeDoNeighborCount = true;
function nichromeNeighborLogic(count) {
if(count < 3) { return 2.5 };
return count == 3 ? 1.25 : 0;
};
elements.nichrome = {
color: ["#d1cfcb", "#dbd7ce", "#e8e2d5"],
behavior: behaviors.WALL,
tempHigh: 1400,
category: "solids",
density: 8300,
conduct: 0.75,
hardness: 0.7, //???
state: "solid",
tick: function(pixel) {
if(nichromeDoNeighborCount) {
var neighbors = 0;
for(i = 0; i < adjacentCoords.length; i++) {
if(!isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],true)) {
var newPixel = pixelMap[pixel.x+adjacentCoords[i][0]][pixel.y+adjacentCoords[i][1]];
if(elements[newPixel.element].conduct) { neighbors++ };
};
};
};
if(pixel.charge) {
pixel.temp += ((1.1 + nichromeNeighborLogic(neighbors)) * pixel.charge);
};
},
};
elements.molten_chromium = {
density: 6300,
temp: 2000,
reactions: { //(test.hello ??= {}).world
molten_nichrome: { elem1: "molten_nichrome", elem2: "molten_chromium", chance: 0.4, changeTemp: false, oneway: true },
},
};
elements.molten_nichrome = {
reactions: { //(test.hello ??= {}).world
molten_nickel: { elem1: "molten_nickel", elem2: "molten_nichrome", chance: 0.4, changeTemp: false, oneway: true },
},
};
worldgentypes.test = {
layers: [[0.3, "pointer"], [0, "molten_nickel"]],
temperature: 2000
};
runAfterAutogen(function() {
if(!elements.molten_nickel.reactions) {
elements.molten_nickel.reactions = {};
};
elements.molten_nickel.reactions.molten_chromium = { elem1: "molten_nichrome", elem2: ["molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_nichrome"], changeTemp: false };
});
//Copper exists //Copper exists
elements.ruthenium = { elements.ruthenium = {
@ -424,3 +501,9 @@ elements.niobium = {
conduct: 0.35, conduct: 0.35,
hardness: 0.7, //idk lol hardness: 0.7, //idk lol
}; };
} else {
if(!enabledMods.includes(changeTempMod)) { enabledMods.splice(enabledMods.indexOf(modName),0,changeTempMod) };
if(!enabledMods.includes(runAfterAutogenMod)) { enabledMods.splice(enabledMods.indexOf(modName),0,runAfterAutogenMod) };
localStorage.setItem("enabledMods", JSON.stringify(enabledMods));
alert(`The "${changeTempMod}" and "${runAfterAutogenMod}" mods are required; any missing mods in this list have been automatically inserted (reload for this to take effect).`)
};