512 lines
14 KiB
JavaScript
512 lines
14 KiB
JavaScript
//TNT world
|
|
|
|
elements.oil_cloud = {
|
|
color: "#8c4331",
|
|
behavior: [
|
|
"XX|XX|XX",
|
|
"XX|CH:oil%0.05|M1%2.5 AND BO",
|
|
"XX|XX|XX",
|
|
],
|
|
category:"gases",
|
|
temp: 30,
|
|
state: "gas",
|
|
density: 0.5,
|
|
burn: 60,
|
|
burnTime: 15,
|
|
burnInto: "explosion", //atomization moment
|
|
ignoreAir: true,
|
|
stain: 0.02,
|
|
};
|
|
|
|
elements.oil_cloud_floater = {
|
|
color: "#8c4331",
|
|
behavior: [
|
|
"M2|M1|M2",
|
|
"M1%80|CH:oil_cloud%0.2|M1%80",
|
|
"M%60|XX|M2%60",
|
|
],
|
|
reactions: {
|
|
"oil_cloud_floater": { elem1: "oil_cloud", elem2: "oil_cloud", chance: 0.003 },
|
|
"oil_cloud": { elem1: "oil_cloud", elem2: "oil_cloud", chance: 0.01 }
|
|
},
|
|
category:"gases",
|
|
temp: 30, //otherwise identical
|
|
state: "gas",
|
|
density: 0.5,
|
|
burn: 60,
|
|
burnTime: 15,
|
|
burnInto: "explosion", //atomization moment
|
|
stain: 0.02,
|
|
};
|
|
|
|
worldgentypes.tnt_world = {
|
|
name: "TNT World", //unimplemented
|
|
layers: [
|
|
[0.9, "oil_cloud_floater"],
|
|
[0.65, "coal", 0.1],
|
|
[0.65, "nitroglycerin"],
|
|
[0.55, "nitroglycerin", 0.5],
|
|
[0.2, "coal", 0.2],
|
|
[0.2, "tnt"],
|
|
[0.05, "coal", 0.3],
|
|
[0.05, "c4"],
|
|
[0.0, "coal", 0.4],
|
|
[0.0, "lamp_oil"]
|
|
]
|
|
};
|
|
|
|
runAfterLoad(function() {
|
|
if(enabledMods.includes("mods/glenn_gases.js")) {
|
|
worldgentypes.tnt_world.layers.unshift([0.9, "red_gas", 0.50])
|
|
};
|
|
});
|
|
|
|
//Ice world
|
|
|
|
elements.snow_cloud_floater = {
|
|
color: "#7e8691",
|
|
behavior: [
|
|
"M2|M1|M2",
|
|
"M1%80|CH:snow_cloud%0.2|M1%80",
|
|
"M%60|XX|M2%60",
|
|
],
|
|
reactions: {
|
|
"snow_cloud_floater": { elem1: "snow_cloud", elem2: "snow_cloud", chance: 0.003 },
|
|
"snow_cloud": { elem1: "snow_cloud", elem2: "snow_cloud", chance: 0.01 }
|
|
},
|
|
category:"gases",
|
|
temp:-10,
|
|
tempHigh:30,
|
|
stateHigh:"rain_cloud",
|
|
tempLow:-200,
|
|
stateLow:"hail_cloud",
|
|
state:"gas",
|
|
density:0.55,
|
|
conduct:0.01,
|
|
movable:true,
|
|
isGas:true
|
|
};
|
|
|
|
worldgentypes.ice = {
|
|
name: "TNT World", //unimplemented
|
|
layers: [
|
|
//[0.95, "snow_cloud_floater"], //le cutting room floor has arrived
|
|
[0.9, "snow"],
|
|
[0.65, "ice"],
|
|
[0.6, "gravel"],
|
|
[0.35, "permafrost"],
|
|
[0, "rock"]
|
|
],
|
|
temperature: -20
|
|
};
|
|
|
|
//Nuclear wasteland
|
|
|
|
behaviors.RAD_POWDER = [
|
|
"XX|CR:radiation%2|XX",
|
|
"CR:radiation%2|XX|CR:radiation%2",
|
|
"M2|M1 AND CR:radiation%2|M2",
|
|
],
|
|
behaviors.RAD_STURDYPOWDER = [
|
|
"XX|CR:radiation%2|XX",
|
|
"CR:radiation%2|XX|CR:radiation%2",
|
|
"XX|M1 AND CR:radiation%2|XX",
|
|
],
|
|
behaviors.RAD_SUPPORT = [
|
|
"CR:radiation%1|CR:radiation%2|CR:radiation%1",
|
|
"SP AND CR:radiation%2|XX|SP AND CR:radiation%2",
|
|
"XX|M1 AND CR:radiation%2|XX",
|
|
],
|
|
behaviors.RAD_SUPPORTPOWDER = [
|
|
"CR:radiation%1|CR:radiation%2|CR:radiation%1",
|
|
"SP AND CR:radiation%2|XX|SP AND CR:radiation%2",
|
|
"M2|M1 AND CR:radiation%2|M2",
|
|
],
|
|
behaviors.RAD_LIQUID = [
|
|
"XX|CR:radiation%2|XX",
|
|
"M2 AND CR:radiation%2|XX|M2 AND CR:radiation%2",
|
|
"M1|M1 AND CR:radiation%2|M1",
|
|
],
|
|
behaviors.RAD_WALL = [
|
|
"CR:radiation%0.7|CR:radiation%1.4|CR:radiation%0.7",
|
|
"CR:radiation%1.4|XX%0000000000000|CR:radiation%1.4",
|
|
"CR:radiation%0.7|CR:radiation%1.4|CR:radiation%0.7",
|
|
],
|
|
behaviors.RAD_GAS = [
|
|
"M2 AND CR:radiation%1|M1 AND CR:radiation%2|M2 AND CR:radiation%1",
|
|
"M1 AND CR:radiation%2|XX AND CR:radiation%2|M1 AND CR:radiation%2",
|
|
"M2 AND CR:radiation%1|M1 AND CR:radiation%2|M2 AND CR:radiation%1",
|
|
],
|
|
behaviors.RAD_MOLTEN = [
|
|
"XX|CR:radiation%2.5 AND CR:fire%2.5|XX",
|
|
"M2 AND CR:radiation%1|XX|M2 AND CR:radiation%1",
|
|
"M1|M1 AND CR:radiation%1|M1",
|
|
],
|
|
|
|
console.log(behaviors.RAD_POWDER) //forcing it to acknowledge the behaviors i just added instead of giving me "undefined"
|
|
|
|
elements.irradiated_dirt = {
|
|
color: ["#70762b","#4c5c21","#50571a","#4c6b1e"],
|
|
behavior: behaviors.RAD_POWDER,
|
|
tempHigh:1200,
|
|
stateHigh: "irradiated_molten_dirt",
|
|
reactions: {
|
|
"dirt": { "elem1":"dirt", "elem2":"irradiated_dirt", "chance":0.0005, "oneway":true },
|
|
},
|
|
tempLow: -50,
|
|
stateLow: "irradiated_permafrost",
|
|
category:"land",
|
|
state: "solid",
|
|
density: 1220,
|
|
};
|
|
|
|
elements.irradiated_molten_dirt = {
|
|
"behavior": behaviors.RAD_MOLTEN,
|
|
"hidden": true,
|
|
"state": "liquid",
|
|
"category": "states",
|
|
"color": ["#e09315", "#e07615", "#e05800", "#987310", "#985c10", "#984500", "#a06c0d", "#a0570d", "#a04100", "#98850f", "#986b0f", "#985000"],
|
|
"temp": 1250,
|
|
"tempLow": 1100,
|
|
"stateLow": "irradiated_dirt",
|
|
"density": 1098,
|
|
"viscosity": 10000
|
|
}
|
|
|
|
elements.molten_irradiated_dirt = {
|
|
behavior: behaviors.RAD_MOLTEN
|
|
}
|
|
|
|
elements.irradiated_glass = {
|
|
color: ["#597a58","#719171"],
|
|
colorOn: ["#6dab67","#88b567"],
|
|
behavior: behaviors.RAD_WALL,
|
|
tempHigh: 1500,
|
|
category: "solids",
|
|
state: "solid",
|
|
density: 2500,
|
|
breakInto: "irradiated_glass_shard",
|
|
conduct: 0.01,
|
|
};
|
|
|
|
elements.molten_irradiated_glass = {
|
|
behavior: behaviors.RAD_MOLTEN
|
|
};
|
|
|
|
elements.irradiated_glass_shard = {
|
|
color: ["#597a58","#719171", "#628263"],
|
|
colorOn: ["#6dab67","#88b567", "#7bad6f"],
|
|
behavior: behaviors.RAD_POWDER,
|
|
tempHigh: 1500,
|
|
stateHigh: "molten_irradiated_glass",
|
|
category: "powders",
|
|
state: "solid",
|
|
density: 2500,
|
|
conduct: 0.01,
|
|
};
|
|
|
|
elements.irradiated_sand = {
|
|
color: "#cbdb7b",
|
|
behavior: behaviors.RAD_POWDER,
|
|
tempHigh: 1700,
|
|
stateHigh: "molten_irradiated_glass",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 1602
|
|
};
|
|
|
|
elements.irradiated_mud = {
|
|
color: "#3c401c",
|
|
behavior: behaviors.RAD_STURDYPOWDER,
|
|
reactions: {
|
|
"irradiated_dirt": { "elem1":"irradiated_dirt", "elem2":"irradiated_mud", "chance":0.0005, "oneway":true },
|
|
"irradiated_sand": { "elem1":"irradiated_dirt", "elem2":"irradiated_wet_sand", "chance":0.0005, "oneway":true },
|
|
"sand": { "elem1":"irradiated_dirt", "elem2":"irradiated_wet_sand", "chance":0.0005, "oneway":true },
|
|
"dirt": { "elem1":"irradiated_dirt", "elem2":"irradiated_mud", "chance":0.0005, "oneway":true },
|
|
},
|
|
tempHigh: 100,
|
|
stateHigh: "irradiated_mudstone",
|
|
tempLow: -50,
|
|
stateLow: "irradiated_permafrost",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 1730,
|
|
stain: 0.02,
|
|
};
|
|
|
|
elements.irradiated_wet_sand = {
|
|
color: ["#848c3a","#969e4c"],
|
|
behavior: behaviors.RAD_STURDYPOWDER,
|
|
reactions: {
|
|
"irradiated_sand": { "elem1":"irradiated_sand", "elem2":"irradiated_wet_sand", "chance":0.0005, "oneway":true },
|
|
"irradiated_dirt": { "elem1":"irradiated_sand", "elem2":"irradiated_mud", "chance":0.0005, "oneway":true },
|
|
"sand": { "elem1":"irradiated_sand", "elem2":"irradiated_wet_sand", "chance":0.0005, "oneway":true },
|
|
"dirt": { "elem1":"irradiated_sand", "elem2":"irradiated_mud", "chance":0.0005, "oneway":true },
|
|
},
|
|
tempHigh: 100,
|
|
stateHigh: "irradiated_packed_sand",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 1905,
|
|
};
|
|
|
|
var namelessArray = ["dirt","sand","mud","wet_sand"];
|
|
for(i = 0; i < namelessArray.length; i++) {
|
|
var elementt = namelessArray[i];
|
|
if(!elements[elementt].reactions) {
|
|
elements[elementt].reactions = {};
|
|
};
|
|
};
|
|
|
|
elements.water.reactions.radiation = { elem1: "irradiated_water", elem2: null, chance:0.25 },
|
|
elements.radiation.reactions.water = { elem2: "irradiated_water", elem1: null, chance:0.25 },
|
|
elements.dirt.reactions.radiation = { elem1: "irradiated_dirt", elem2: null, chance:0.25 },
|
|
elements.radiation.reactions.dirt = { elem2: "irradiated_dirt", elem1: null, chance:0.25 },
|
|
elements.sand.reactions.radiation = { elem1: "irradiated_sand", elem2: null, chance:0.25 },
|
|
elements.radiation.reactions.sand = { elem2: "irradiated_sand", elem1: null, chance:0.25 },
|
|
elements.mud.reactions.radiation = { elem1: "irradiated_mud", elem2: null, chance:0.25 },
|
|
elements.radiation.reactions.mud = { elem2: "irradiated_mud", elem1: null, chance:0.25 },
|
|
elements.wet_sand.reactions.radiation = { elem1: "irradiated_wet_sand", elem2: null, chance:0.25 },
|
|
elements.radiation.reactions.wet_sand = { elem2: "irradiated_wet_sand", elem1: null, chance:0.25 },
|
|
|
|
elements.irradiated_water = {
|
|
color: "#85cf57",
|
|
behavior: behaviors.RAD_LIQUID,
|
|
tempHigh: 100,
|
|
stateHigh: ["rad_steam","rad_steam","fallout"],
|
|
tempLow: -5,
|
|
stateLow: "irradiated_ice",
|
|
category: "liquids",
|
|
heatCapacity: 4.184,
|
|
reactions: {
|
|
"water": { elem1: "water", elem2: "irradiated_water", chance:0.05 }, //swap
|
|
"dirt": { // React with (water reacts with dirt to make mud)
|
|
"elem1": null, // First element transforms into; in this case, water deletes itself
|
|
"elem2": "irradiated_dirt", // Second element transforms into; in this case, dirt turns to mud
|
|
},
|
|
"sand": { "elem1": null, "elem2": "irradiated_wet_sand", },
|
|
"rat": { "elem2": "rotten_meat", chance:0.005 },
|
|
"plague": { "elem2": null, chance: 0.3, },
|
|
//"quicklime": { "elem1": null, "elem2": "slaked_lime", },
|
|
"rock": { "elem2": "irradiated_wet_sand", "chance": 0.00035 },
|
|
//"ruins": { "elem2": "rock", "chance": 0.00035 },
|
|
"mudstone": { "elem2": "irradiated_mud", "chance": 0.00035 },
|
|
"irradiated_mudstone": { "elem2": "irradiated_mud", "chance": 0.00035 },
|
|
"packed_sand": { "elem2": "irradiated_wet_sand", "chance": 0.00035 },
|
|
"irradiated_packed_sand": { "elem2": "irradiated_wet_sand", "chance": 0.00035 },
|
|
"fly": { "elem2":"dead_bug", "chance":0.1, "oneway":true },
|
|
"firefly": { "elem2":"dead_bug", "chance":0.1, "oneway":true },
|
|
"bee": { "elem2":"dead_bug", "chance":0.05, "oneway":true },
|
|
"stink_bug": { "elem2":"dead_bug", "chance":0.1, "oneway":true },
|
|
},
|
|
state: "liquid",
|
|
density: 997,
|
|
conduct: 0.03,
|
|
stain: 0.02,
|
|
}
|
|
|
|
elements.rad_steam.behavior = behaviors.RAD_GAS;
|
|
elements.rad_steam.stateLow = "irradiated_water";
|
|
elements.rad_cloud.behavior = [
|
|
"XX|XX|XX",
|
|
"XX|CH:fallout,radiation,irradiated_water%0.025|M1%2.5 AND BO",
|
|
"CR:radiation%0.05|CR:radiation%0.05|CR:radiation%0.05",
|
|
];
|
|
elements.rad_cloud.tempLow = 0;
|
|
elements.rad_cloud.stateLow = "rad_snowcloud";
|
|
elements.fallout.behavior = behaviors.RAD_POWDER;
|
|
|
|
elements.irradiated_permafrost = {
|
|
color: ["#51613d","#495234","#3b4a30","#4a4f35"],
|
|
behavior: behaviors.RAD_SUPPORT,
|
|
temp: -50,
|
|
tempHigh: 10,
|
|
stateHigh: "irradiated_mudstone",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 700,
|
|
};
|
|
|
|
elements.irradiated_mudstone = {
|
|
color: "#4f5e25",
|
|
behavior: behaviors.RAD_SUPPORT,
|
|
tempHigh:1200,
|
|
stateHigh: "molten_irradiated_dirt",
|
|
tempLow: -50,
|
|
stateLow: "irradiated_permafrost",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 1250,
|
|
breakInto: "irradiated_dirt",
|
|
};
|
|
|
|
elements.irradiated_packed_sand = {
|
|
color: "#79945c",
|
|
behavior: behaviors.RAD_SUPPORT,
|
|
tempHigh: 1700,
|
|
stateHigh: "molten_irradiated_glass",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 1682,
|
|
breakInto: "irradiated_sand",
|
|
};
|
|
|
|
elements.irradiated_ice = {
|
|
color: "#b7e0b4",
|
|
behavior: behaviors.RAD_WALL,
|
|
temp: 0,
|
|
tempHigh: 5,
|
|
stateHigh: "irradiated_water",
|
|
category: "solids",
|
|
state: "solid",
|
|
density: 917,
|
|
breakInto: "irradiated_snow",
|
|
};
|
|
|
|
elements.irradiated_snow = {
|
|
color: "#d5f2d3",
|
|
behavior: behaviors.RAD_POWDER,
|
|
temp: 0,
|
|
tempHigh: 5,
|
|
tempLow: -100,
|
|
stateLow: "irradiated_packed_snow",
|
|
stateHigh: "irradiated_water",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 100,
|
|
};
|
|
|
|
elements.irradiated_packed_snow = {
|
|
color: "#a7d4a3",
|
|
behavior: behaviors.RAD_SUPPORTPOWDER,
|
|
temp: 0,
|
|
tempHigh: 20,
|
|
tempLow: -200,
|
|
stateLow: "irradiated_ice",
|
|
stateHigh: "irradiated_water",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 400,
|
|
hidden: true,
|
|
};
|
|
|
|
elements.rad_snowcloud = {
|
|
color: ["#2d6e31","#416e21"],
|
|
behavior: [
|
|
"XX|XX|XX",
|
|
"XX|CH:fallout,radiation,irradiated_snow%0.025|M1%2.5 AND BO",
|
|
"CR:radiation%0.05|CR:radiation%0.05|CR:radiation%0.05",
|
|
],
|
|
category:"gases",
|
|
hidden: true,
|
|
state: "gas",
|
|
density: 0.5,
|
|
ignoreAir: true,
|
|
temp: -20,
|
|
tempHigh: 0,
|
|
stateHigh: "rad_cloud",
|
|
};
|
|
|
|
elements.rad_snowcloud_floater = {
|
|
color: ["#2d6e31","#416e21"],
|
|
behavior: [
|
|
"M2|M1|M2",
|
|
"M1%80|CH:rad_snowcloud_%0.2|M1%80",
|
|
"M%60|XX|M2%60",
|
|
],
|
|
reactions: {
|
|
"rad_snowcloud_floater": { elem1: "rad_snowcloud", elem2: "rad_snowcloud", chance: 0.003 },
|
|
"rad_snowcloud": { elem1: "rad_snowcloud", elem2: "rad_snowcloud", chance: 0.01 }
|
|
},
|
|
category:"gases",
|
|
hidden: true,
|
|
state: "gas",
|
|
density: 0.5,
|
|
temp: -20,
|
|
tempHigh: 0,
|
|
stateHigh: "rad_cloud",
|
|
};
|
|
|
|
elements.irradiated_rock = {
|
|
color: ["#768063","#444f3f","#7a9476"],
|
|
behavior: behaviors.RAD_POWDER,
|
|
tempHigh: 950,
|
|
stateHigh: "irradiated_magma",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 2550,
|
|
hardness: 0.5,
|
|
breakInto: ["sand","gravel"],
|
|
};
|
|
|
|
elements.irradiated_gravel = {
|
|
color: ["#d1e3c8","#a6b090","#657360","#4d523f"],
|
|
behavior: behaviors.RAD_POWDER,
|
|
category:"land",
|
|
tempHigh: 950,
|
|
stateHigh: "irradiated_magma",
|
|
state: "solid",
|
|
density: 1680,
|
|
hardness: 0.2,
|
|
breakInto: "irradiated_sand",
|
|
};
|
|
|
|
elements.irradiated_basalt = {
|
|
color: ["#262e20","#23331f","#3f4235"],
|
|
behavior: behaviors.RAD_STURDYPOWDER,
|
|
tempHigh: 1262.5,
|
|
stateHigh: "irradiated_magma",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 3000,
|
|
hardness: 0.65,
|
|
breakInto: "irradiated_gravel",
|
|
};
|
|
|
|
elements.irradiated_magma = {
|
|
color: ["#ff9100","#ffae00","#ff8400"],
|
|
behavior: behaviors.RAD_MOLTEN,
|
|
reactions: {
|
|
"ice": { "elem1": "irradiated_basalt" },
|
|
"irradiated_ice": { "elem1": "irradiated_basalt" },
|
|
"magma": { "elem1":"magma", "elem2":"irradiated_magma", "chance":0.0005, "oneway":true },
|
|
},
|
|
temp: 1500,
|
|
tempLow: 850,
|
|
stateLow: ["irradiated_basalt","irradiated_basalt","irradiated_basalt","irradiated_rock"],
|
|
viscosity: 10000,
|
|
category: "liquids",
|
|
state: "liquid",
|
|
density: 2725,
|
|
};
|
|
|
|
if(enabledMods.includes("mods/some_tf_liquids.js")) {
|
|
elements.irradiated_basalt_gravel = {
|
|
color: ["#394d37", "#3b452f", "#3f452a", "#2d3d2c"],
|
|
behavior: behaviors.RAD_POWDER,
|
|
tempHigh: 1262.5,
|
|
stateHigh: "irradiated_magma",
|
|
category: "land",
|
|
state: "solid",
|
|
density: 1975,
|
|
hardness: 0.26,
|
|
}
|
|
elements.irradiated_basalt.breakInto = "irradiated_basalt_gravel";
|
|
};
|
|
|
|
worldgentypes.nuclear_wasteland = {
|
|
layers: [
|
|
[0.9, "smoke", 0.5],
|
|
[0.9, "rad_snowcloud_floater", 0.75],
|
|
[0.82, "fallout", 0.4],
|
|
[0.7, "dead_plant", 0.12],
|
|
[0.55, "irradiated_dirt"],
|
|
[0.45, "irradiated_rock"],
|
|
[0.35, "irradiated_rock", 0.5],
|
|
[0.3, "irradiated_gravel", 0.5],
|
|
[0.05, "rock"],
|
|
[0, "basalt"],
|
|
],
|
|
temperature: -5 //nuclear winter
|
|
};
|