diff --git a/lang/pl.json b/lang/pl.json
index 3fa1ec65..a2d82ac4 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -523,21 +523,21 @@
"molten_potassium_salt":"stopiona_sól_potasowa",
"molten_sodium_acetate":"stopiony_octan_sodu",
"frozen_nitro":"zamrożona_nitrogliceryna",
-"cured_meat": "",
+"cured_meat": "wędzone_mięso",
"nut_oil": "olej z orzechów",
-"grease": "",
+"grease": "smar",
"fat": "tłuszcz",
"potassium": "potas",
"molten_potassium": "roztopiony_potas",
-"magnesium": "",
-"molten_magnesium": "",
+"magnesium": "magnez",
+"molten_magnesium": "stopiony_magnez",
"sandstorm": "burza_piaskowa",
"caustic_potash": "",
-"antibomb": "",
+"antibomb": "antybomba",
"tornado": "tornado",
"earthquake": "trzęsienie_ziemi",
"tsunami": "tsunami",
"blaster": "promień",
-"propane_ice": "",
+"propane_ice": "lód_propanowy",
"molten_caustic_potash": ""
}
diff --git a/mod-list.html b/mod-list.html
index 2a772fa3..8facd81c 100644
--- a/mod-list.html
+++ b/mod-list.html
@@ -202,7 +202,7 @@
| ticking_temp_stuff.js | Adds more heaters and coolers | Alice |
| video.js | Adds a video player | ggod |
| waterspout.js | Adds back the old Water Spout | mollthecoder |
-| WhisperingTheory.js | Adds powder and gas variant of heater and cooler | kaeud |
+| WhisperingTheory.js | Adds many more variants of heater and cooler | kaeud |
| Weapons |
| aircrafts.js | Adds aircraft and aircraft part pixels | Jayd |
diff --git a/mods/CoCpu.js b/mods/CoCpu.js
index f9ddbc15..fff2ff58 100644
--- a/mods/CoCpu.js
+++ b/mods/CoCpu.js
@@ -67,10 +67,24 @@ elements.computer = {
density: 8908,
tempHigh: 1414,
stateHigh: "explosion",
- conduct: 1,
reactions: {
"virus": { elem1 : null , elem2:"malware", chance:0.9 },
"water": { elem1: null , elem2: "electric" },
}
};
-
+elements.carbon_monoxide_detector = {
+ behavior: behaviors.WALL,
+ desc: "give red light and electric when found Carbon Monoxide touch",
+ color: "#ffffff",
+ reactions: {
+ "carbon_monoxide": {"charge1":1},
+ },
+ conduct: 1,
+ tempHigh: 1550,
+ stateHigh: ["molten_metal_scrap","electric","molten_plastic"],
+ colorOn: "#ff0000",
+ movable: false,
+ category:"machines",
+ darkText: true,
+ hardness: 1,
+};
diff --git a/mods/WhisperingTheory.js b/mods/WhisperingTheory.js
index a3a6bb02..ad17dea6 100644
--- a/mods/WhisperingTheory.js
+++ b/mods/WhisperingTheory.js
@@ -27,6 +27,13 @@ elements.roomtemper = {
movable: false,
};
+elements.cold_fire.behavior = [
+ "M1|M1|M1",
+ "M2|DL%8|M2",
+ "XX|M2|XX",
+];
+
+// powder
elements.powder_heater = {
category: "machines",
behavior: [
@@ -60,7 +67,7 @@ elements.powder_superheater = {
insulate: true,
};
-elements.powder_freeze = {
+elements.powder_freezer = {
category: "machines",
behavior: [
"XX|CO:10|XX",
@@ -71,12 +78,7 @@ elements.powder_freeze = {
insulate: true,
};
-elements.cold_fire.behavior = [
- "M1|M1|M1",
- "M2|DL%8|M2",
- "XX|M2|XX",
-];
-
+// gas
elements.gas_heater = {
color: "#881111",
behavior: [
@@ -88,17 +90,6 @@ elements.gas_heater = {
insulate: true,
};
-elements.gas_superheater = {
- color: "#dd1111",
- behavior: [
- "M2|M1 AND HT:10|M2",
- "M1 AND HT:10|XX|M1 AND HT:10",
- "M2|M1 AND HT:10|M2",
- ],
- category: "machines",
- insulate: true,
-};
-
elements.gas_cooler = {
color: "#111188",
behavior: [
@@ -110,6 +101,17 @@ elements.gas_cooler = {
insulate: true,
};
+elements.gas_superheater = {
+ color: "#dd1111",
+ behavior: [
+ "M2|M1 AND HT:10|M2",
+ "M1 AND HT:10|XX|M1 AND HT:10",
+ "M2|M1 AND HT:10|M2",
+ ],
+ category: "machines",
+ insulate: true,
+};
+
elements.gas_freezer = {
color: "#1111dd",
behavior: [
@@ -120,3 +122,48 @@ elements.gas_freezer = {
category: "machines",
insulate: true,
};
+
+// antipowder
+elements.anti_heater = {
+ color: "#881111",
+ behavior: [
+ "M2|M1 AND HT:2|M2",
+ "HT:2|XX|HT:2",
+ "XX|HT:2|XX",
+ ],
+ category: "special",
+ insulate: true,
+};
+
+elements.anti_cooler = {
+ color: "#111188",
+ behavior: [
+ "M2|M1 AND CO:2|M2",
+ "CO:2|XX|CO:2",
+ "XX:CO:2|XX",
+ ],
+ category: "special",
+ insulate: true,
+};
+
+elements.anti_superheater = {
+ color: "#881111",
+ behavior: [
+ "M2|M1 AND HT:10|M2",
+ "HT:10|XX|HT:10",
+ "XX|HT:10|XX",
+ ],
+ category: "special",
+ insulate: true,
+};
+
+elements.anti_freezer = {
+ color: "#1111dd",
+ behavior: [
+ "M2|M1 AND CO:10|M2",
+ "CO:10|XX|CO:10",
+ "XX:CO:10|XX",
+ ],
+ category: "special",
+ insulate: true,
+};
diff --git a/mods/drugs.js b/mods/drugs.js
new file mode 100644
index 00000000..38ccb7a1
--- /dev/null
+++ b/mods/drugs.js
@@ -0,0 +1,34 @@
+elements.methamphetamine = {
+ category: "powders",
+ color: ["#b6ccd8", "#c5cfd6", "#cbd5db", "#6da5e0"],
+ state: "solid",
+ behavior: behaviors.POWDER,
+ temp: 20,
+ tempHigh: 1700,
+ stateHigh: "molten_methamphetamine",
+ reactions: {
+ "water": {elem1: null, elem2: "dirty_water"},
+ "cell": {elem1: "methamphetamine", elem2: "plague", chance: 0.001},
+ "plant": {elem1: "methamphetamine", elem2: "dead_plant", chance: 0.005},
+ },
+};
+
+elements.molten_methamphetamine = {
+ category: "states",
+ color: ["#fb7300", "#f93100", "#e05a1d", "#d65611"],
+ state: "liquid",
+ behavior: behaviors.RADMOLTEN,
+ tempLow: 1700,
+ stateLow: "methamphetamine",
+};
+
+elements.morphine = {
+ category: "powders",
+ color: "#c4dcf2",
+ state: "solid",
+ behavior: behaviors.POWDER,
+ reactions: {
+ "head": {elem1: "n_explosion", elem2: "n_explosion", chance: 0.00008},
+ "body": {elem1: "n_explosion", elem2: "n_explosion", chance: 0.00008},
+ },
+};
\ No newline at end of file
diff --git a/mods/nousersthings.js b/mods/nousersthings.js
index 06760b7d..bc073fd9 100644
--- a/mods/nousersthings.js
+++ b/mods/nousersthings.js
@@ -72,13 +72,46 @@ elements.subzero_grass = {
stateHigh: "dead_plant",
density:1400
},
+elements.ruthenium = {
+ color: ["#ffffff","#c9c9c9","#b1b1b1","#9e9e9e","#888888"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "powders",
+ state: "liquid",
+ tempHigh: 2334,
+ stateHigh: "molten_ruthenium",
+ density: 12370,
+}
+elements.molten_ruthenium = {
+ color: ["#ffc251", "#dd562c", "#e9a423", "#d8722e"],
+ behavior: behaviors.MOLTEN,
+ category: "states",
+ state: "liquid",
+ hidden: true,
+ density: 10650,
+ tempLow: 2330,
+ stateLow: "ruthenium"
+}
+elements.acid.ignore.push("ruthenium"),
+elements.acid.ignore.push("molten_ruthenium"),
+elements.acid_gas.ignore.push("ruthenium"),
+elements.acid_gas.ignore.push("molten_ruthenium")
elements.technetium = {
color: ["#e7d9bb", "#bab195", "#8f8a70", "#66654e"],
- behavior: [
- "XX|XX|XX",
- "XX|CH:neutron%0.07|XX",
- "XX|XX|XX",
- ],
+ behavior: behaviors.WALL,
+ tick: function(pixel){
+ if(Math.random() < 0.0007){
+ for (var i = 0; i < squareCoords.length; i++) {
+ var coord = squareCoords[i];
+ var x = pixel.x+coord[0];
+ var y = pixel.y+coord[1];
+ if (isEmpty(x, y)){
+ createPixel("positron", x, y)
+ break;
+ }
+ }
+ changePixel(pixel, "ruthenium", false);
+ }
+ },
category: "solids",
state: "solid",
tempHigh: 2157,
@@ -88,14 +121,24 @@ elements.technetium = {
},
elements.molten_technetium = {
color: ["#d16b42", "#da904c", "#dfb360", "#e2d57f"],
- behavior: behaviors.LIQUID,
- tick: function(pixel) {
- if (Math.random() < 0.0007) {
- changePixel(pixel, "neutron", false);
- }
- },
+ behavior: behaviors.MOLTEN,
+ tick: function(pixel){
+ if(Math.random() < 0.0007){
+ for (var i = 0; i < squareCoords.length; i++) {
+ var coord = squareCoords[i];
+ var x = pixel.x+coord[0];
+ var y = pixel.y+coord[1];
+ if (isEmpty(x, y)){
+ createPixel("positron", x, y)
+ break;
+ }
+ }
+ changePixel(pixel, "ruthenium", false);
+ }
+ },
category: "states",
state: "liquid",
+ hidden: true,
tempLow: 2140,
temp: 2200,
stateLow: "technetium",
diff --git a/mods/pullers.js b/mods/pullers.js
new file mode 100644
index 00000000..b0b4e7e7
--- /dev/null
+++ b/mods/pullers.js
@@ -0,0 +1,250 @@
+// made by voidapex11
+// a sandboxels mod that adds pullers
+/*
+==CHANGELOG==
+ Version 1.1.1#
+@voidapex11
+~initial comit
++pullersDesc
++imovable_inator& movable_inator
++imovable wall, steel & insulation
++L, R, U & D pullers
++void light&dark
+~don't comit without permision as you may disrupt other dev's hard work
+~update changelog with newer updates first
+~Version format is:
+ rewrites.major updates.paches&minor feechers
+ put a '#' at end of version format if it has not been pushed to the github
+~for change-log
+'~' means notes/changes '+' means aditions and '-' is removals
+*/
+
+behaviors.SELFDELETE = [
+ "XX|XX|XX",
+ "XX|DL|XX",
+ "XX|XX|XX",
+];
+
+pullerColour = '#e0adb6'
+
+elements.pullersDesc = {
+ color: pullerColour,
+ name: 'pullers.js',
+ category: "mods",
+ behavior: behaviors.SELFDELETE,
+ tool: function(pixel) {},
+ onSelect: function(pixel) {
+ let info1stMod = `pullers.js is a mod made by voidapex11 that adds pullers to sandboxels`
+ alert(info1stMod)
+ return
+ },
+};
+
+// for the inator reference: if you know you know
+elements.imovable_inator = {
+ color: "#525252",
+ tool: function(pixel) {
+ pixel.imovable = true
+ },
+ category: "tools",
+}
+
+elements.movable_inator = {
+ color: "#a8a8a8",
+ tool: function(pixel) {
+ pixel.imovable = false
+ },
+ category: 'tools',
+}
+
+
+
+elements.imovable_wall = {
+ color: "#808080",
+ behavior: behaviors.WALL,
+ category: "solids",
+ insulate: true,
+ hardness: 1,
+ noMix: true,
+ properties: {
+ imovable: true
+ }
+}
+
+elements.imovable_steel = {
+ color: "#71797e",
+ behavior: behaviors.WALL,
+ reactions: {
+ "water": { elem1:"rust", chance:0.002 },
+ "salt_water": { elem1:"rust", chance:0.004 },
+ "dirty_water": { elem1:"rust", chance:0.03 },
+ "pool_water": { elem1:"rust", chance:0.03 },
+ "sugar_water": { elem1:"rust", chance:0.003 },
+ "seltzer": { elem1:"rust", chance:0.005 },
+ "salt": { elem1:"rust", chance:0.003 },
+ "blood": { elem1:"rust", chance:0.002 },
+ "infection": { elem1:"rust", chance:0.002 },
+ "antibody": { elem1:"rust", chance:0.002 },
+ },
+ tempHigh: 1455.5,
+ category: "solids",
+ density: 7850,
+ conduct: 0.42,
+ hardness: 0.8,
+ properties: {
+ imovable: true
+ }
+}
+
+elements.imovable_insulation = {
+ color: "#b8aea5",
+ behavior: behaviors.WALL,
+ category: "solids",
+ insulate: true,
+ state: "solid",
+ noMix: true,
+ properties: {
+ imovable: true
+ }
+}
+
+
+
+elements.left_puller = {
+ color: pullerColour,
+ properties: {
+ range: 10,
+ pushStrength: 1,
+ },
+ tick: function(pixel) {
+ pixel.range ??= 10;
+ pixel.pushStrength ??= 1;
+ for(h = pixel.pushStrength; h >= pixel.pushStrength; h--) {
+ for (i = 1; i <= pixel.range; i++) {
+
+ if (!isEmpty(pixel.x + i, pixel.y, true)) {
+ if (pixelMap[pixel.x+i][pixel.y]['imovable']) {break}
+ else {
+ tryMove(pixelMap[pixel.x + i][pixel.y], pixel.x + i - 1, pixel.y);
+ }
+ }
+ }
+ };
+
+ doDefaults(pixel);
+ },
+ category: "machines",
+ breakInto: ["metal_scrap", "steel", "iron", "glass", "uranium", "tin"],
+ tempHigh: 2400,
+ stateHigh: ["molten_aluminum", "molten_steel", "molten_iron", "molten_glass", "molten_uranium", "molten_tin"],
+ density: 10000,
+ hardness: 0.85,
+ conduct: 1,
+ state: "solid",
+}
+
+
+
+elements.right_puller = {
+ color: pullerColour,
+ properties: {
+ range: 10,
+ pushStrength: 1,
+ },
+ tick: function(pixel) {
+ pixel.range ??= 10;
+ pixel.pushStrength ??= 1;
+ for(h = pixel.pushStrength; h >= pixel.pushStrength; h--) {
+ for (i = 1; i <= pixel.range; i++) {
+ if (!isEmpty(pixel.x - i, pixel.y, true)) {
+ if (pixelMap[pixel.x-i][pixel.y]['imovable']) {break}
+ else {
+ tryMove(pixelMap[pixel.x - i][pixel.y], pixel.x - i + 1, pixel.y);
+ }
+ }
+ }
+ };
+
+ doDefaults(pixel);
+ },
+ category: "machines",
+ breakInto: ["metal_scrap", "steel", "iron", "glass", "uranium", "tin"],
+ tempHigh: 2400,
+ stateHigh: ["molten_aluminum", "molten_steel", "molten_iron", "molten_glass", "molten_uranium", "molten_tin"],
+ density: 10000,
+ hardness: 0.85,
+ conduct: 1,
+ state: "solid",
+}
+
+elements.down_puller = {
+ color: pullerColour,
+ properties: {
+ range: 10,
+ pushStrength: 1,
+ },
+ tick: function(pixel) {
+ pixel.range ??= 10;
+ pixel.pushStrength ??= 1;
+ for(h = pixel.pushStrength; h >= pixel.pushStrength; h--) {
+ for (i = 1; i <= pixel.range; i++) {
+
+ if (!isEmpty(pixel.x, pixel.y - i, true)) {
+ if (pixelMap[pixel.x][pixel.y - i]['imovable']) {break}
+ else {
+ tryMove(pixelMap[pixel.x][pixel.y - i], pixel.x, pixel.y - i + 1);
+ }
+ }
+ }
+ };
+
+ doDefaults(pixel);
+ },
+ category: "machines",
+ breakInto: ["metal_scrap", "steel", "iron", "glass", "uranium", "tin"],
+ tempHigh: 2400,
+ stateHigh: ["molten_aluminum", "molten_steel", "molten_iron", "molten_glass", "molten_uranium", "molten_tin"],
+ density: 10000,
+ hardness: 0.85,
+ conduct: 1,
+ state: "solid",
+}
+
+elements.up_puller = {
+ color: pullerColour,
+ properties: {
+ range: 10,
+ pushStrength: 1,
+ },
+ tick: function(pixel) {
+ pixel.range ??= 10;
+ pixel.pushStrength ??= 1;
+ for(h = pixel.pushStrength; h >= pixel.pushStrength; h--) {
+ for (i = 1; i <= pixel.range; i++) {
+ if (!isEmpty(pixel.x, pixel.y + i, true)) {
+
+ if (pixelMap[pixel.x][pixel.y + i]['imovable']){
+ break
+ }
+ else {
+ tryMove(pixelMap[pixel.x][pixel.y + i], pixel.x, pixel.y + i - 1);
+ }
+ }
+ }
+ };
+
+ doDefaults(pixel);
+ },
+ category: "machines",
+ breakInto: ["metal_scrap", "steel", "iron", "glass", "uranium", "tin"],
+ tempHigh: 2400,
+ stateHigh: ["molten_aluminum", "molten_steel", "molten_iron", "molten_glass", "molten_uranium", "molten_tin"],
+ density: 10000,
+ hardness: 0.85,
+ conduct: 1,
+ state: "solid",
+}
+
+if (enabledMods.includes("pushers.js")) {
+ console.info('compatibility with pushers.js and imovable objects coming in a later update of the pullers.js')
+}
diff --git a/mods/purple_guys_mod.js b/mods/purple_guys_mod.js
index d9550cc1..d782b9ba 100644
--- a/mods/purple_guys_mod.js
+++ b/mods/purple_guys_mod.js
@@ -5,7 +5,7 @@ elements.super_bomb = {
"XX|XX|XX",
"M2|M1 AND EX:125|M2",
],
- category: "Purple Guy's Mod",
+ category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
@@ -19,7 +19,7 @@ elements.mega_bomb = {
"XX|XX|XX",
"M2|M1 AND EX:350|M2",
],
- category: "Purple Guy's Mod",
+ category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
@@ -33,7 +33,7 @@ elements.ultra_bomb = {
"XX|XX|XX",
"M2|M1 AND EX:500>plasma2|M2",
],
- category: "Purple Guy's Mod",
+ category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
@@ -47,7 +47,7 @@ elements.bomb_of_despair = {
"XX|XX|XX",
"M2|M1 AND EX:501>plasma3|M2",
],
- category: "Purple Guy's Mod",
+ category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
@@ -61,14 +61,42 @@ elements.galaxy_level_bomb = {
"XX|XX|XX",
"M2|M1 AND EX:600>plasma4|M2",
],
- category: "Purple Guy's Mod",
+ category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown
}
-elements.RDX = {
+elements.reverse_galaxy_level_bomb = {
+ color: ["#dfadff", "#699ddb", "#4f76a6", "#8a6b9d", "#94a7bd", "#a47fbb"],
+ behavior: [
+ "M2|M1 AND EX:600>plasma4|M2",
+ "XX|XX|XX",
+ "XX|EX:600>plasma4|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ excludeRandom: true,
+ cooldown: defaultCooldown
+}
+
+elements.ultimate_bomb = {
+ color: "#8d00ff",
+ behavior: [
+ "XX|EX:750>ultimate_plasma|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:750>ultimate_plasma|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ excludeRandom: true,
+ cooldown: defaultCooldown
+}
+
+elements.rdx = {
color: "#c92a2a",
behavior: behaviors.WALL,
behaviorOn: [
@@ -77,7 +105,7 @@ elements.RDX = {
"XX|XX|XX",
],
conduct: 1,
- category: "Purple Guy's Mod",
+ category: "weapons",
burn: 100,
burnTime: 1,
burnInto: "explosion",
@@ -87,7 +115,7 @@ elements.RDX = {
density: 1630,
excludeRandom: true,
alias: "Cyclotrimethylenetrinitramine"
-},
+}
elements.ice_cream_bomb = {
color: "#ffffff",
@@ -96,7 +124,7 @@ elements.ice_cream_bomb = {
"XX|XX|XX",
"M2|M1 AND EX:20>ice_cream|M2",
],
- category: "Purple Guy's Mod",
+ category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
@@ -107,52 +135,121 @@ elements.ice_cream_bomb = {
elements.dirty_sand = {
color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796"],
behavior: behaviors.POWDER,
- category: "Purple Guy's Mod",
+ category: "land",
state: "solid",
- density: 2822
+ density: 2822,
+ reactions: {
+ "dust": {elem1:"dusty_dirty_sand", elem2:"dusty_dirty_sand"}
+ }
+}
+
+elements.sandy_dirt = {
+ color: [ "#f4ba9a", "#fed3ba", "#f2b796", "#a35222", "#a15122", "#7e3f1a"],
+ behavior: behaviors.POWDER,
+ category: "land",
+ state: "solid",
+ density: 2282,
+ reactions: {
+ "dirty_sand": {elem1:"sandy_dirty_sand", elem2:"sandy_dirty_sand"}
+ },
+ hidden: true
}
elements.wet_dirty_sand = {
color: ["#a35210", "#a15110", "#7e3f0a", "#f4ba8a", "#fed2ba", "#f2b784"],
behavior: behaviors.POWDER,
- category: "Purple Guy's Mod",
+ category: "land",
state: "liquid",
density: 2822
}
+elements.sandy_dirty_sand = {
+ color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#f4ba9a", "#fed3ba", "#f2b796"],
+ behavior: behaviors.POWDER,
+ category: "land",
+ state: "solid",
+ density: 5104,
+ hidden: true
+}
+
+elements.dusty_dirty_sand = {
+ color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#6c6c6c", "#8a8a8a", "#989898"],
+ behavior: behaviors.POWDER,
+ category: "land",
+ state: "solid",
+ density: 4312,
+ reactions: {
+ "water": {elem1:"wet_dusty_dirty_sand", elem2:"wet_dusty_dirty_sand"}
+ }
+}
+
+elements.wet_dusty_dirty_sand = {
+ color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#6c6c6c", "#8a8a8a", "#989898"],
+ behavior: behaviors.POWDER,
+ category: "land",
+ state: "liquid",
+ density: 4312,
+}
elements.rocky_dirty_sand = {
color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#939393", "#c4c4c4", "#777777"],
behavior: behaviors.POWDER,
- category: "Purple Guy's Mod",
+ category: "land",
state: "solid",
- density: 4502
+ density: 4502,
+ reactions: {
+ "dust": {elem1:"dusty_rocky_dirty_sand", elem2:"dusty_rocky_dirty_sand"}
+ }
}
elements.wet_rocky_dirty_sand = {
color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#939393", "#c4c4c4", "#777777"],
behavior: behaviors.POWDER,
- category: "Purple Guy's Mod",
+ category: "land",
state: "liquid",
density: 4502
}
+elements.dusty_rocky_dirty_sand = {
+ color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#939393", "#c4c4c4", "#777777", "#6c6c6c", "#8a8a8a", "#989898"],
+ behavior: behaviors.POWDER,
+ category: "land",
+ state: "solid",
+ density: 5992,
+ reactions: {
+ "water": {elem1:"wet_dusty_rocky_dirty_sand", elem2:"wet_dusty_rocky_dirty_sand"}
+ }
+}
+
+elements.wet_dusty_rocky_dirty_sand = {
+ color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#939393", "#c4c4c4", "#777777", "#6c6c6c", "#8a8a8a", "#989898"],
+ behavior: behaviors.POWDER,
+ category: "land",
+ state: "liquid",
+ density: 5992
+}
+
elements.reverse_gravity_liquid = {
color: "#cdd7e2",
behavior: behaviors.AGLIQUID ,
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
- density: 50
+ density: 50,
+ reactions: {
+ "dirty_sand": { elem1:"sandy_dirt", elem2:"sandy_dirt" }
}
+}
+
+
elements.reverse_soda = {
color: ["#5f2706", "#48230d", "#52250a"],
- behavior: behaviors.AGLIQUID , behavior: [
+ behavior: behaviors.AGLIQUID, behavior: [
"M2|M1|M2",
"M2|XX|M2",
"XX|CR:foam%3|XX",
],
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
density: 1030
}
@@ -165,7 +262,7 @@ elements.really_really_fizzy_soda = {
"M2|XX|M2"
],
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
density: 1030
}
@@ -178,7 +275,7 @@ elements.orange_soda = {
"M2|XX|M2"
],
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
density: 1030
}
@@ -199,7 +296,7 @@ elements.gasoline = {
"sulfur": { elem1:null, elem2:"greek_fire" },
"molten_sulfur": { elem1:"greek_fire", elem2:"greek_fire" },
},
- category: "Purple Guy's Mod",
+ category: "liquids",
tempHigh: 280,
stateHigh: "fire",
burn: 70,
@@ -210,7 +307,36 @@ elements.gasoline = {
density: 720,
stain: 0.05,
alias: "Oil/Petrolium"
-},
+}
+
+elements.green_gasoline = {
+ color: ["#226624", "#07580a", "#1d591f"],
+ behavior: behaviors.LIQUID,
+ tick: function(pixel) {
+ if (!pixel.burning && pixel.temp > 90 && Math.random() < 0.001) {
+ if (pixel.temp < 150) { changePixel(pixel,"propane") }
+ else if (pixel.temp < 300) { changePixel(pixel,"molten_plastic") }
+ else { changePixel(pixel,"lamp_oil") }
+ }
+ },
+ reactions: {
+ "dirt": { elem1:null, elem2:"mud" },
+ "sand": { elem1:null, elem2:"wet_sand" },
+ "sulfur": { elem1:null, elem2:"greek_fire" },
+ "molten_sulfur": { elem1:"greek_fire", elem2:"greek_fire" },
+ },
+ category: "liquids",
+ tempHigh: 280,
+ stateHigh: "fire",
+ burn: 70,
+ burnTime: 300,
+ burnInto: ["carbon_dioxide","fire"],
+ viscosity: 250,
+ state: "liquid",
+ density: 720,
+ stain: 0.05,
+ alias: "Oil/Petrolium"
+}
elements.dark_soda = {
color: "#56589f",
@@ -220,7 +346,7 @@ elements.dark_soda = {
"M2|XX|M2"
],
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
density: 1030
}
@@ -233,7 +359,7 @@ elements.sb_soda = {
"M2|XX|M2"
],
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
density: 1030
}
@@ -242,7 +368,7 @@ elements.sb_soda = {
elements.negatively_dense_liquid = {
color: "#94ffd1",
behavior: behaviors.LIQUID ,
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
density: -2000
}
@@ -250,7 +376,7 @@ elements.negatively_dense_liquid = {
elements.plasma2 = {
color: "#caf7ff",
behavior: behaviors.DGAS ,
- category: "Purple Guy's Mod",
+ category: "energy",
state: "gas",
density: 50000,
temp:500000
@@ -259,7 +385,7 @@ elements.plasma2 = {
elements.plasma3 = {
color: "#9dc6e3",
behavior: behaviors.DGAS ,
- category: "Purple Guy's Mod",
+ category: "energy",
state: "gas",
density: 50010,
temp:200000000
@@ -268,16 +394,25 @@ elements.plasma3 = {
elements.plasma4 = {
color: "#9de4e3",
behavior: behaviors.DGAS ,
- category: "Purple Guy's Mod",
+ category: "energy",
state: "gas",
density: 50050,
temp:50000000000
}
+elements.ultimate_plasma = {
+ color: "#0dfee3",
+ behavior: behaviors.DGAS ,
+ category: "energy",
+ state: "gas",
+ density: 700050,
+ temp: 5000000000000000
+}
+
elements.negative_fire = {
color: ["#a6bfc4", "#6bd2e4", "#b8dee4", "#32cae4"],
behavior: behaviors.DGAS ,
- category: "Purple Guy's Mod",
+ category: "energy",
state: "gas",
density: -0.1,
temp:-20000
@@ -290,7 +425,7 @@ elements.coldest_bomb = {
"XX|XX|XX",
"M2|M1 AND EX:55>negative_fire|M2",
],
- category: "Purple Guy's Mod",
+ category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
@@ -300,7 +435,7 @@ elements.coldest_bomb = {
elements.reinforced_wall = {
color: "#ffff01",
behavior: behaviors.WALL,
- category: "Purple Guy's Mod",
+ category: "solids",
state: "solid",
density: 1300,
hardness:10^81
@@ -309,7 +444,7 @@ elements.reinforced_wall = {
elements.unreinforced_wall = {
color: "#ffff82",
behavior: behaviors.WALL,
- category: "Purple Guy's Mod",
+ category: "solids",
state: "solid",
density: 1300,
hardness:0
@@ -318,7 +453,7 @@ elements.unreinforced_wall = {
elements.reinforced_liquid_wall = {
color: "#ffff01",
behavior: behaviors.LIQUID,
- category: "Purple Guy's Mod",
+ category: "liquids",
state: "liquid",
density: 1300,
hardness:10^81
@@ -327,7 +462,7 @@ elements.reinforced_liquid_wall = {
elements.how_did_we_get_here = {
color: "#ffffff",
behavior: [behaviors.LIQUID, behaviors.AGLIQUID],
- category: "Purple Guy's Mod",
+ category: "special",
state: "liquid",
density: 1300,
hardness:10^83
@@ -336,7 +471,7 @@ elements.how_did_we_get_here = {
elements.gullibullium = {
color: ["#70bc7a", "#70bb79", "#7cac81"],
behavior: behaviors.WALL,
- category: "Purple Guy's Mod",
+ category: "solids",
state: "solid",
density: 1300,
hardness:0.8,
@@ -344,13 +479,41 @@ elements.gullibullium = {
}
-elements.reinforced_gullibullium = {
+elements.r_gullibullium = {
color: ["#f0bc7a", "#f0bb79", "#fcac81"],
behavior: behaviors.WALL,
- category: "Purple Guy's Mod",
+ category: "solids",
state: "solid",
+ density: 2600.00001,
+ hardness:0.95,
+ tempHigh: 80000,
+ stateHigh: "molten_r_gullibullium"
+}
+
+elements.molten_r_gullibullium = {
+ color: ["#ff721b", "#d0743c", "#dcb03f"],
+ behavior: behaviors.MOLTEN,
+ category: "liquids",
+ state: "liquid",
density: 1300,
- hardness:0.95
+ hardness:0.95,
+ tempLow: 79999,
+ temp: 80000,
+ tempHigh: 145000,
+ stateHigh: "r_gullibullium_gas",
+ stateLow: "r_gullibullium"
+}
+
+elements.r_gullibullium_gas = {
+ color: ["#ff721b", "#d0743c", "#dcb03f"],
+ behavior: behaviors.GAS,
+ category: "gases",
+ state: "gas",
+ density: 1300,
+ hardness:0.95,
+ tempLow: 144999,
+ temp: 145000,
+ stateLow: "molten_r_gullibullium"
}
elements.boba_pearls = {
@@ -398,13 +561,23 @@ elements.banana_boba = {
hardness:0.25
}
+elements.banana_cream_boba = {
+ color: "#ffffc1",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
elements.satans_boba = {
color: "#852d2d",
behavior: behaviors.MOLTEN,
category: "Purple Guy's Boba",
state: "liquid",
density: 1300,
- hardness:0.25
+ hardness:0.25,
+ temp: 650
}
elements.peach_boba = {
@@ -650,6 +823,202 @@ elements.pandan_boba = {
hardness:0.25
}
+elements.pomegranate_boba = {
+ color: "#ca0000",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.watermelon_boba = {
+ color: "#f26565",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.grapefruit_boba = {
+ color: "#f1962f",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.plum_boba = {
+ color: "#dacfd9",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.jackfruit_boba = {
+ color: "#daa128",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.soursop_boba = {
+ color: "#ded3bb",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.cranberry_boba = {
+ color: "#f81e1e",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.blood_orange_boba = {
+ color: "#ed2115",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.lemonade_boba = {
+ color: "#ffe151",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.guanabana_boba = {
+ color: "#f5f5f5",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.cherry_blossom_boba = {
+ color: "#f598e8",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.cardamom_boba = {
+ color: "#dac370",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.saffron_boba = {
+ color: "#ffe323",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.pistachio_boba = {
+ color: "#9cff90",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.blue_raspberry_boba = {
+ color: "#29c9f1",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.cotton_candy_boba = {
+ color: "#f1cfde",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.bubblegum_boba = {
+ color: "#ff97bc",
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.peppermint_boba = {
+ color: ["#ffeff5", "#ff0000"],
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.spearmint_boba = {
+ color: ["#ffeff5", "#00ff00"],
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
+elements.strawberry_kiwi_boba = {
+ color: "#ffeff5",
+ colorPattern: ["sssss",
+ "sssss",
+ "ssssk",
+ "ssssk",
+ "ssskk",
+ "ssskk",
+ "sskkk",
+ "sskkk",
+ "skkkk",
+ "skkkk",
+ "kkkkk",
+ "kkkkk"],
+ colorKey: {
+ "s": "#e27c7c",
+ "k": "#09de0f"
+ },
+ behavior: behaviors.LIQUID,
+ category: "Purple Guy's Boba",
+ state: "liquid",
+ density: 1300,
+ hardness:0.25
+}
+
elements.wasters_personal_boba = {
color: ["#5ee082", "#4eb96c", "#5bda7f", "#79c38e", "#e9eeea"],
behavior: behaviors.LIQUID , behavior: [
@@ -721,20 +1090,6 @@ elements.sethies_blue_boba = {
hardness:0.25
}
-elements.when_you_bomb = {
- color: "#ff0000",
- behavior: [
- "XX|EX:40>when_you_particles|XX",
- "XX|XX|XX",
- "M2|M1 AND EX:40>when_you_particles|M2",
- ],
- category: "Purple Guy's Mod",
- state: "solid",
- density: 1300,
- excludeRandom: true,
- cooldown: defaultCooldown
-}
-
elements.nuclear_firework = {
color: "#62b06c",
tick: function(pixel) {
@@ -762,22 +1117,100 @@ elements.nuclear_firework = {
density: 2000,
conduct: 1,
state: "solid",
- category: "Purple Guy's Mod"
+ category: "weapons"
},
+elements.when_you_bomb = {
+ color: "#ff0000",
+ colorPattern: ["rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrwrrwrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrwwwwwrrr",
+ "rwrrrrrwrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr"],
+ colorKey: {
+ "r": "#ff0000",
+ "w": "#ffffff"
+ },
+ behavior: [
+ "XX|EX:40>when_you_particles|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:40>when_you_particles|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ excludeRandom: true,
+ cooldown: defaultCooldown
+}
+
elements.whenyouium = {
- color: ["#ff0000", "#dc0000", "#b60000", "#ec2c2c"],
+ color: "#ff0000",
+ colorPattern: ["rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrwrrwrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrwwwwwrrr",
+ "rwrrrrrwrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr"],
+ colorKey: {
+ "r": "#ff0000",
+ "w": "#ffffff"
+ },
behavior: behaviors.WALL,
- category: "Purple Guy's Mod",
+ category: "solids",
state: "solid",
density: 2000,
hardness:1.01
+
}
elements.when_you_particles = {
- color: ["#ff0000", "#dc0000", "#b60000", "#ec2c2c"],
+ color: "#ff0000",
+ colorPattern: ["rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrwrrwrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrwwwwwrrr",
+ "rwrrrrrwrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr",
+ "rrrrrrrrrr"],
+ colorKey: {
+ "r": "#ff0000",
+ "w": "#ffffff"
+ },
behavior: behaviors.DGAS,
- category: "Purple Guy's Mod",
+ category: "energy",
state: "gas",
density: 2000,
hardness:0.98,
@@ -785,6 +1218,107 @@ elements.when_you_particles = {
temp: 500000000000000
}
+elements.when_i_bomb = {
+ color: "#0000ff",
+ colorPattern: [
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBbBBbBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBbBBBbBBB",
+ "BBbbbbbBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB"],
+ colorKey: {
+ "B": "#0000ff",
+ "b": "#000000"
+ },
+ behavior: [
+ "XX|EX:40>when_i_particles|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:40>when_i_particles|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: -1300,
+ excludeRandom: true,
+ cooldown: defaultCooldown
+}
+
+elements.when_i_particles = {
+ color: "#0000ff",
+ colorPattern: [
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBbBBbBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBbBBBbBBB",
+ "BBbbbbbBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB"],
+ colorKey: {
+ "B": "#0000ff",
+ "b": "#000000"
+ },
+ behavior: behaviors.DGAS,
+ category: "energy",
+ state: "gas",
+ density: 2000,
+ hardness:0.98,
+ hidden: true,
+ temp: -500000000000000
+}
+
+elements.when_iium = {
+ color: "#0000ff",
+ colorPattern: [
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBbBBbBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBbBBBbBBB",
+ "BBbbbbbBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB",
+ "BBBBBBBBBB"],
+ colorKey: {
+ "B": "#0000ff",
+ "b": "#000000"
+ },
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ density: -2000,
+ hardness:1.01
+
+}
+
elements.wekk = { color: ["#927659","#81644B","#685843","#685135","#644F3A"],
behavior: behaviors.SUPPORTPOWDER,
reactions: {
@@ -800,7 +1334,7 @@ elements.wekk = { color: ["#927659","#81644B","#685843","#685135","#644F3A"],
},
tempHigh: 540,
stateHigh: "magma",
- category: "Purple Guy's Mod",
+ category: "land",
state: "solid",
density: 1302.5,
hardness: 0.2,
@@ -810,8 +1344,430 @@ elements.wekk = { color: ["#927659","#81644B","#685843","#685135","#644F3A"],
elements.water_but_it_stays_liquid = {
color: "#2167ff",
behavior: behaviors.LIQUID,
- category: "Purple Guy's Mod",
+ category: "liquids",
heatCapacity: 1234213423423423,
+ reactions: {
+ "dirt": {
+ elem1: null,
+ elem2: "mud",
+ },
+ "sand": { elem1: null, elem2: "wet_sand" },
+ "clay_soil": { elem1: null, elem2: "clay" },
+ "salt": { elem1: "salt_water", elem2: null, temp1:-20 },
+ "sugar": { elem1: "sugar_water", elem2: null },
+ "honey": { elem1: "sugar_water" },
+ "caramel": { elem1: "sugar_water" },
+ "molasses": { elem1: "sugar_water" },
+ "dust": { elem1: "dirty_water", elem2: null },
+ "ash": { elem1: "dirty_water", elem2: null },
+ "cyanide": { elem1: "dirty_water", elem2: null },
+ "cyanide_gas": { elem1: "dirty_water", elem2: null },
+ "carbon_dioxide": { elem1: "seltzer", elem2: null, oneway:true },
+ "sulfur": { elem1: "dirty_water", elem2: null },
+ "rat": { elem1: "dirty_water", chance:0.005 },
+ "plague": { elem1: "dirty_water", elem2: null },
+ "rust": { elem1: "dirty_water", chance:0.005 },
+ "lead": { elem1: "dirty_water", chance:0.005 },
+ "solder": { elem1: "dirty_water", chance:0.005 },
+ "fallout": { elem1: "dirty_water", chance:0.25 },
+ "radiation": { elem1: "dirty_water", chance:0.25 },
+ "uranium": { elem1: "dirty_water", chance:0.25 },
+ "rotten_meat": { elem1: "dirty_water", chance:0.25 },
+ "rotten_cheese": { elem1: "dirty_water", chance:0.25 },
+ "cancer": { elem1: "dirty_water", chance:0.25 },
+ "oil": { elem1: "dirty_water", chance:0.005 },
+ "dioxin": { elem1: "dirty_water", chance:0.1 },
+ "quicklime": { elem1: "slaked_lime", elem2: "slaked_lime", temp2:100, temp1:100, chance:0.05 },
+ "rock": { elem2: "wet_sand", chance: 0.00035 },
+ "limestone": { elem2: "wet_sand", chance: 0.00035 },
+ "tuff": { elem2: "wet_sand", color2:"#7a6b5c", chance: 0.00035 },
+ "ruins": { elem2: "rock", chance: 0.00035 },
+ "mudstone": { elem2: "mud", chance: 0.00035 },
+ "methane": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
+ "ammonia": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
+ "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 },
+ "cured_meat": { elem1:"salt_water", elem2:"meat" },
+ "aluminum": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0025 },
+ "zinc": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.015 },
+ "steel": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
+ "iron": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
+ "tin": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.01 },
+ "brass": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
+ "bronze": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
+ "copper": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
+ "silver": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
+ "gold": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
+ },
+ state: "liquid",
+ density: 997,
+ conduct: 0.02,
+ stain: -0.5,
+ extinguish: true
+}
+
+elements.blue_uranium = {
+ color: ["#4ba5ff","#71a8de","#b4c7da","#3e6892","#6da4da","#9dc1e6"],
+ behavior: [
+ "XX|CR:radiation%20|XX",
+ "CR:radiation%1|CH:lead%0.001|CR:radiation%20",
+ "M2|M1|M2",
+ ],
+ reactions: {
+ "neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 }
+ },
+ tempHigh: 1132.2,
+ category: "powders",
+ state: "solid",
+ density: 19100,
+ hardness: 0.6,
+ conduct: 0.235,
+ excludeRandom: true
+}
+
+elements.paprika = {
+ color: ["#df3b3b", "#ef0c0c", "#cf2323"],
+ behavior: behaviors.POWDER,
+ category: "food",
+ state: "solid",
+ density: 1070,
+ reactions: {
+ "blue_uranium": {elem1:"blue_paprika", elem2:"blue_paprika"}
+ }
+}
+
+
+
+elements.blue_paprika = {
+ color: ["#4ba5ff","#71a8de","#b4c7da",],
+ behavior: [
+ "XX|CR:radiation%20|XX",
+ "CR:radiation%1|CH:lead%0.001|CR:radiation%20",
+ "M2|M1|M2",
+ ],
+ category: "Food..?",
+ state: "solid",
+ density: 1070
+}
+
+elements.pepper = {
+ color: ["#18b82d", "#f44343"],
+ behavior: behaviors.SUPPORTPOWDER,
+ category: "food",
+ state: "solid",
+ density: 735,
+ tempHigh: 93,
+ breakInto: "crushed_pepper"
+}
+
+elements.crushed_pepper = {
+ color: ["#91dc9b", "#d77c7c"],
+ behavior: behaviors.POWDER,
+ category: "food",
+ state: "solid",
+ density: 735,
+ reactions: {
+ "salt": {elem1:"paprika", elem2:"paprika"}
+ }
+}
+
+elements.dusty_ash = {
+ color: ["#dcdcdc", "#969696", "#acacac", "#9e9e9e"],
+ behavior: behaviors.POWDER,
+ category: "powders",
+ state: "solid",
+ density: 1070
+}
+
+elements.cool_flash = {
+ color: "#fffdcf",
+ tick: function(pixel) {
+ if (Math.random() < 0.75 && pixelTicks - pixel.start > 1) {
+ deletePixel(pixel.x, pixel.y)
+ }
+ doHeat(pixel);
+ },
+ reactions: {
+ "blood": { elem1:"pointer" },
+ "molten_stained_glass": { elem1:"rainbow" },
+ "electric": { elem1:"pointer" },
+ },
+ category: "energy",
+ temp: -3500,
+ state: "gas",
+ density: 1,
+ hidden: true,
+ noMix: true
+}
+
+elements.sun_flash = {
+ color: "#ffffbd",
+ tick: function(pixel) {
+ if (Math.random() < 0.75 && pixelTicks - pixel.start > 1) {
+ deletePixel(pixel.x, pixel.y)
+ }
+ doHeat(pixel);
+ },
+ reactions: {
+ "blood": { elem1:"pointer" },
+ "molten_stained_glass": { elem1:"rainbow" },
+ "electric": { elem1:"pointer" },
+ },
+ category: "energy",
+ temp: 5504,
+ state: "gas",
+ density: 1,
+ hidden: true,
+ noMix: true
+}
+
+elements.radiant_flash = {
+ color: "#fffdcf",
+ tick: function(pixel) {
+ if (Math.random() < 0.75 && pixelTicks - pixel.start > 1) {
+ deletePixel(pixel.x, pixel.y)
+ }
+ doHeat(pixel);
+ },
+ reactions: {
+ "blood": { elem1:"pointer" },
+ "molten_stained_glass": { elem1:"rainbow" },
+ "electric": { elem1:"pointer" },
+ },
+ behavior: [
+ "XX|CR:radiation%20|XX",
+ "CR:radiation%1|CH:lead%0.001|CR:radiation%20",
+ "M2|M1|M2",
+ ],
+ category: "energy",
+ temp: -3500,
+ state: "gas",
+ density: 1,
+ hidden: true,
+ noMix: true
+}
+
+elements.cool_ray = {
+ color: ["#00ffff","#00fffe"],
+ tick: function(pixel) {
+ var x = pixel.x;
+ for (var y = pixel.y; y < height; y++) {
+ if (outOfBounds(x, y)) {
+ break;
+ }
+ if (isEmpty(x, y)) {
+ if (Math.random() > 0.05) { continue }
+ createPixel("cool_flash", x, y);
+ pixelMap[x][y].color = "#00ffff";
+ pixelMap[x][y].temp = -3500;
+ }
+ else {
+ if (elements[pixelMap[x][y].element].isGas) { continue }
+ if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
+ pixelMap[x][y].temp += 100;
+ pixelTempCheck(pixelMap[x][y]);
+ break;
+ }
+ }
+ deletePixel(pixel.x, pixel.y);
+ },
+ temp: -3500,
+ category: "energy",
+ state: "gas",
+ density: 1,
+ excludeRandom: true,
+ noMix: true
+}
+
+elements.radiant_ray = {
+ color: "#00FF00",
+ tick: function(pixel) {
+ var x = pixel.x;
+ for (var y = pixel.y; y < height; y++) {
+ if (outOfBounds(x, y)) {
+ break;
+ }
+ if (isEmpty(x, y)) {
+ if (Math.random() > 0.05) { continue }
+ createPixel("radiant_flash", x, y);
+ pixelMap[x][y].color = "#00FF00";
+ pixelMap[x][y].temp = 100000000;
+ }
+ else {
+ if (elements[pixelMap[x][y].element].isGas) { continue }
+ if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
+ pixelMap[x][y].temp += 100;
+ pixelTempCheck(pixelMap[x][y]);
+ break;
+ }
+ }
+ deletePixel(pixel.x, pixel.y);
+ },
+ temp: 100000000,
+ category: "energy",
+ state: "gas",
+ density: 1,
+ excludeRandom: true,
+ noMix: true
+}
+
+elements.sun_ray = {
+ color: "#ffffbd",
+ tick: function(pixel) {
+ var x = pixel.x;
+ for (var y = pixel.y; y < height; y++) {
+ if (outOfBounds(x, y)) {
+ break;
+ }
+ if (isEmpty(x, y)) {
+ if (Math.random() > 0.05) { continue }
+ createPixel("sun_flash", x, y);
+ pixelMap[x][y].color = "#ffffbd";
+ pixelMap[x][y].temp = 5504;
+ }
+ else {
+ if (elements[pixelMap[x][y].element].isGas) { continue }
+ if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
+ pixelMap[x][y].temp += 100;
+ pixelTempCheck(pixelMap[x][y]);
+ break;
+ }
+ }
+ deletePixel(pixel.x, pixel.y);
+ },
+ temp: 5504,
+ category: "energy",
+ state: "gas",
+ density: 1,
+ excludeRandom: true,
+ noMix: true
+}
+
+elements.mega_incinerate = {
+ color: ["#e600ff","#d984d8","#ff00e1"],
+ tool: function(pixel) {
+ pixel.temp += 999999999999999;
+ if (!pixel.burning && elements[pixel.element].burn) {
+ pixel.burning = true;
+ pixel.burnStart = pixelTicks;
+ }
+ pixelTempCheck(pixel);
+ },
+ category: "energy",
+ excludeRandom: true
+}
+
+elements.reinforced_concrete = {
+ color: ["#e4e4e4", "#d7d7d7"],
+ behavior: behaviors.SUPPORT,
+ tempHigh: 3000,
+ stateHigh: "magma",
+ category: "powders",
+ state: "solid",
+ density: 4800,
+ hardness: 0.75,
+ breakInto: "dust",
+ darkText: true
+}
+
+elements.green_smoke = {
+ color: "#64d14f",
+ behavior: behaviors.GAS,
+ tempHigh: 3000,
+ stateHigh: "green_fire",
+ category: "gases",
+ state: "gas",
+ density: 4800,
+ hardness: 0.75,
+ breakInto: "dust",
+ darkText: true
+}
+
+elements.green_fire = {
+ color: ["#3fb927","#64d14f","#4fe831"],
+ tick: function(pixel){
+ behaviors.UL_UR_OPTIMIZED(pixel);
+ if (!pixel.del && settings.burn===0 && (pixelTicks-pixel.start > 70) && Math.random() < 0.1 ) { changePixel(pixel,"green_smoke") }
+ },
+ reactions: {
+ "water": { elem1: "green_smoke" },
+ "steam": { elem1: "green_smoke" },
+ "carbon_dioxide": { elem1: "green_smoke" },
+ "foam": { elem1: "smoke" },
+ "dirty_water": { elem1: "green_smoke" },
+ "salt_water": { elem1: "green_smoke" },
+ "sugar_water": { elem1: "green_smoke" },
+ "seltzer": { elem1: "green_smoke" },
+ "pool_water": { elem1: "green_smoke" },
+ "oxygen": { elem2: null, chance:0.1 },
+ },
+ temp:600,
+ tempLow:100,
+ stateLow: "green_smoke",
+ tempHigh: 7000,
+ stateHigh: "plasma",
+ category: "energy",
+ burning: true,
+ burnTime: 25,
+ burnInto: "smoke",
+ state: "gas",
+ density: 0.1,
+ ignoreAir: true,
+ noMix: true
+}
+
+elements.obsidian = {
+ color: "#240d37",
+ colorPattern: [
+ "DDDDddddddddDDDD",
+ "DDDDdddoodddDDDD",
+ "DDDDddooooddDDDD",
+ "DDDDdddoodddDDDD",
+ "DDDDddddddddDDDD"],
+ colorKey: {
+ "o": "#49325d",
+ "d": "#2c1e38",
+ "D": "#240d37"
+ },
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "weapons",
+ density: 2000,
+ hardness: 0.25,
+ tempHigh: 1710,
+ stateHigh: "magma"
+
+}
+
+elements.green_ketchup = {
+ color: "#18c61e",
+ behavior: behaviors.LIQUID,
+ reactions: {
+ "rust": { elem2:"iron", chance:0.01 },
+ "oxidized_copper": { elem2:"copper", chance:0.01 },
+ "baking_soda": { "elem1":"carbon_dioxide", elem2:"foam", chance:0.01 },
+ },
+ viscosity: 50000,
+ tempHigh: 260,
+ stateHigh: ["carbon_dioxide","methane","steam","salt","sugar"],
+ category:"liquids",
+ state: "liquid",
+ density: 1235,
+ stain: 0.05,
+ isFood: true
+}
+
+elements.muddy_water = {
+ color: "#dbc383",
+ behavior: behaviors.LIQUID,
+ tempHigh: 100,
+ stateHigh: "steam",
+ tempLow: 0,
+ stateLow: "ice",
+ category: "liquids",
+ heatCapacity: 4.184,
reactions: {
"dirt": {
elem1: null,
@@ -875,31 +1831,1029 @@ elements.water_but_it_stays_liquid = {
extinguish: true
}
-elements.blue_uranium = {
- color: ["#4ba5ff","#71a8de","#b4c7da","#3e6892","#6da4da","#9dc1e6"],
- behavior: [
- "XX|CR:radiation%20|XX",
- "CR:radiation%1|CH:lead%0.001|CR:radiation%20",
- "M2|M1|M2",
- ],
+elements.deuterium = {
+ color: "#557bcf",
+ behavior: behaviors.GAS,
reactions: {
- "neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 }
+ "oxygen": { elem1:null, elem2:"heavy_water", tempMin:1 },
+ "hydrogen": { elem1:"neutron", elem2:"helium", tempMin:10000, temp1:20000, temp2:20000 },
+ "nitrogen": { elem1:null, elem2:"oxygen", tempMin:10000 },
+ "sulfur": { elem1:null, elem2:"chlorine", tempMin:10000 },
+ "neon": { elem1:null, elem2:"sodium", tempMin:10000 },
+ "fire": { elem1:"explosion", chance:0.005 },
},
- tempHigh: 1132.2,
- category: "Purple Guy's Mod",
- state: "solid",
- density: 19100,
- hardness: 0.6,
- conduct: 0.235,
- excludeRandom: true
+ category: "gases",
+ burn: 100,
+ burnTime: 2,
+ burnInto: ["fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","fire","steam"],
+ tempLow: -253,
+ stateLow: "liquid_hydrogen",
+ state: "gas",
+ density: 0.08375,
+ conduct: 0.02,
+ colorOn: "#E315D3"
}
+elements.heavy_water = {
+ color: "#1237ff",
+ behavior: behaviors.LIQUID,
+ tempHigh: 100,
+ stateHigh: "steam",
+ tempLow: 0,
+ stateLow: "ice",
+ category: "liquids",
+ heatCapacity: 4.184,
+ reactions: {
+ "dirt": {
+ elem1: null,
+ elem2: "mud",
+ },
+ "sand": { elem1: null, elem2: "wet_sand" },
+ "clay_soil": { elem1: null, elem2: "clay" },
+ "salt": { elem1: "salt_water", elem2: null, temp1:-20 },
+ "sugar": { elem1: "sugar_water", elem2: null },
+ "honey": { elem1: "sugar_water" },
+ "caramel": { elem1: "sugar_water" },
+ "molasses": { elem1: "sugar_water" },
+ "dust": { elem1: "dirty_water", elem2: null },
+ "ash": { elem1: "dirty_water", elem2: null },
+ "cyanide": { elem1: "dirty_water", elem2: null },
+ "cyanide_gas": { elem1: "dirty_water", elem2: null },
+ "carbon_dioxide": { elem1: "seltzer", elem2: null, oneway:true },
+ "sulfur": { elem1: "dirty_water", elem2: null },
+ "rat": { elem1: "dirty_water", chance:0.005 },
+ "plague": { elem1: "dirty_water", elem2: null },
+ "rust": { elem1: "dirty_water", chance:0.005 },
+ "lead": { elem1: "dirty_water", chance:0.005 },
+ "solder": { elem1: "dirty_water", chance:0.005 },
+ "fallout": { elem1: "dirty_water", chance:0.25 },
+ "radiation": { elem1: "dirty_water", chance:0.25 },
+ "uranium": { elem1: "dirty_water", chance:0.25 },
+ "rotten_meat": { elem1: "dirty_water", chance:0.25 },
+ "rotten_cheese": { elem1: "dirty_water", chance:0.25 },
+ "cancer": { elem1: "dirty_water", chance:0.25 },
+ "oil": { elem1: "dirty_water", chance:0.005 },
+ "dioxin": { elem1: "dirty_water", chance:0.1 },
+ "quicklime": { elem1: "slaked_lime", elem2: "slaked_lime", temp2:100, temp1:100, chance:0.05 },
+ "rock": { elem2: "wet_sand", chance: 0.00035 },
+ "limestone": { elem2: "wet_sand", chance: 0.00035 },
+ "tuff": { elem2: "wet_sand", color2:"#7a6b5c", chance: 0.00035 },
+ "ruins": { elem2: "rock", chance: 0.00035 },
+ "mudstone": { elem2: "mud", chance: 0.00035 },
+ "methane": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
+ "ammonia": { elem1:"primordial_soup", elem2:"primordial_soup", tempMin:60, charged:true },
+ "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 },
+ "cured_meat": { elem1:"salt_water", elem2:"meat" },
+ // electrolysis:
+ "aluminum": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0025 },
+ "zinc": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.015 },
+ "steel": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
+ "iron": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0125 },
+ "tin": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.01 },
+ "brass": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
+ "bronze": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.001 },
+ "copper": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
+ "silver": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
+ "gold": { elem1:["hydrogen","hydrogen","oxygen"], charged:true, chance:0.0075 },
+ },
+ state: "liquid",
+ density: 1105.2,
+ conduct: 0.02,
+ stain: -0.5,
+ extinguish: true
+}
+elements.led_y = {
+ behavior: behaviors.WALL,
+ reactions: {
+ "light": {"charge1":1},
+ "liquid_light": {"charge1":1},
+ },
+ color: "#abab00",
+ colorOn: "#ffff00",
+ category: "machines",
+ tempHigh: 1500,
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
+ conduct: 1,
+ breakInto: "glass_shard"
+}
+elements.led_p = {
+ behavior: behaviors.WALL,
+ reactions: {
+ "light": {"charge1":1},
+ "liquid_light": {"charge1":1},
+ },
+ color: "#6b00a1",
+ colorOn: "#a900ff",
+ category: "machines",
+ tempHigh: 1500,
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
+ conduct: 1,
+ breakInto: "glass_shard"
+}
+
+elements.led_o = {
+ behavior: behaviors.WALL,
+ reactions: {
+ "light": {"charge1":1},
+ "liquid_light": {"charge1":1},
+ },
+ color: "#a16800",
+ colorOn: "#ffa500",
+ category: "machines",
+ tempHigh: 1500,
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
+ conduct: 1,
+ breakInto: "glass_shard"
+}
+
+elements.red_lightning = {
+ color: "#ff0000",
+ tick: function(pixel) {
+ if (!pixel.stage) { // create bolt
+ var y = pixel.y;
+ var xoffset = 0;
+ var last = [pixel.x,pixel.y]
+ for (var i = 0; i < 100; i++) {
+ y++;
+ // randomly go back and forth
+ if (Math.random() > 0.5) { xoffset++; }
+ else { xoffset--; }
+ var x = pixel.x + xoffset;
+ if (isEmpty(x, y)) {
+ createPixel("red_lightning",x,y);
+ pixelMap[x][y].stage = 1;
+ pixelMap[x][y].color = pixel.color;
+ last = [x,y];
+ }
+ else if (outOfBounds(x,y) || !elements[pixelMap[x][y].element].isGas) {
+ //strike
+ if (Math.random() < 0.01) { // BALL LIGHTNING
+ pixelMap[last[0]][last[1]].stage = 9;
+ }
+ if (!outOfBounds(x,y)) { pixelMap[x][y].temp = 50000 }
+ explodeAt(x, y, 13, ["plasma","plasma","plasma","red_electric"]);
+ break;
+ }
+ }
+ doDefaults(pixel);
+ deletePixel(pixel.x, pixel.y);
+ }
+ else if (pixel.stage === 9) { // BALL LIGHTNING
+ // move either left or right randomly
+ if (Math.random() > 0.5) { tryMove(pixel, pixel.x + 1, pixel.y) }
+ else { tryMove(pixel, pixel.x - 1, pixel.y) }
+ // create electric in a 3x3 area around pixel
+ for (var x = pixel.x - 1; x <= pixel.x + 1; x++) {
+ for (var y = pixel.y - 1; y <= pixel.y + 1; y++) {
+ if (isEmpty(x, y)) {
+ createPixel("red_electric",x,y);
+ pixelMap[x][y].color = pixel.color;
+ }
+ }
+ }
+ doDefaults(pixel);
+ if (pixelTicks - pixel.start >= 250) { deletePixel(pixel.x, pixel.y); }
+ }
+ else if (pixelTicks - pixel.start >= 4) {
+ doDefaults(pixel);
+ //deletePixel(pixel.x, pixel.y);
+ changePixel(pixel, "red_electric")
+ }
+ else { doDefaults(pixel); }
+ },
+ temp: 50000,
+ tempLow: -273,
+ stateLow: ["liquid_light",null],
+ category: "energy",
+ state: "gas",
+ maxSize: 1,
+ cooldown: defaultCooldown,
+ density: 1000,
+ hardness: 1,
+ excludeRandom: true,
+ noMix: true
+}
+
+elements.red_electric = {
+ color: "#ff0000",
+ behavior: [
+ "CL%5|CL%5 AND SH|CL%5",
+ "CL%5 AND SH|SH%5 AND DL%50|CL%5 AND SH",
+ "M1%15 AND CL%6|M1%50 AND CL%13 AND SH|M1%15 AND CL%6",
+ ],
+ charge: 5,
+ category: "energy",
+ state: "gas",
+ density: 2.1,
+ insulate: true,
+ ignoreAir: true
+}
+
+elements.silvanium = {
+ behavior: behaviors.WALL,
+ reactions: {
+ "light": {"charge1":1},
+ "liquid_light": {"charge1":1},
+ },
+ color: "#625950",
+ colorOn: "#e62525",
+ category: "solids",
+ tempHigh: 92224,
+ conduct: 0.35,
+ hardness: 0.48
+}
+
+elements.silvanium_sulfate = {
+ behavior: behaviors.WALL,
+ reactions: {
+ "light": {"charge1":1},
+ "liquid_light": {"charge1":1},
+ },
+ color: "#465f42",
+ colorOn: "#25a4e6",
+ category: "solids",
+ tempHigh: 98224,
+ conduct: 0.45,
+ hardness: 0.56
+}
+
+elements.alienite = {
+ behavior: behaviors.WALL,
+ reactions: {
+ "light": {"charge1":1},
+ "liquid_light": {"charge1":1},
+ },
+ color: ["#aa00d6", "#865d8f", "#ba4ad6", "#7e3290"],
+ colorOn: "#79d64b",
+ category: "solids",
+ tempHigh: 104532,
+ conduct: 0.25,
+ hardness: 0.84
+}
+
+elements.green_filler = {
+ color: "#137a63",
+ behavior: behaviors.FILL,
+ category:"special",
+ excludeRandom: true,
+ reactions: {
+ "neutron": { elem1:"lattice" },
+ "proton": { elem1:"vertical" },
+ "electric": { elem1:"horizontal" },
+ "positron": { elem1:"vertical" },
+ "plasma": { elem1:"armageddon", tempMin:500, charged:true },
+ "void": { elem1:"green_filler" },
+ }
+}
+
+elements.alien = {
+ // color: ["#f5eac6","#d4c594","#a89160","#7a5733","#523018","#361e0e"],
+ color: ["#41ab1d","#4cbf25","#40752e","#871dab","#ac3ad2","#71278a"],
+ category: "life",
+ properties: {
+ dead: false,
+ dir: 1,
+ panic: 0
+ },
+ tick: function(pixel) {
+ if (isEmpty(pixel.x, pixel.y+1)) {
+ createPixel("alien_body", pixel.x, pixel.y+1);
+ pixel.element = "alien_head";
+ }
+ else if (isEmpty(pixel.x, pixel.y-1)) {
+ createPixel("alien_head", pixel.x, pixel.y-1);
+ pixelMap[pixel.x][pixel.y-1].color = pixel.color;
+ pixel.element = "alien_body";
+ pixel.color = pixelColorPick(pixel)
+ }
+ else {
+ deletePixel(pixel.x, pixel.y);
+ }
+ },
+ related: ["alien_body","alien_head"],
+ cooldown: defaultCooldown,
+ forceSaveColor: true,
+}
+
+elements.alien_body = {
+ color: ["#efefef","#f0f0f0","#e8e8e8", "#cbcbcb"],
+ category: "life",
+ hidden: true,
+ density: 1500,
+ state: "solid",
+ conduct: .05,
+ temp: 37,
+ tempHigh: 850,
+ stateHigh: "cooked_meat",
+ tempLow: -560,
+ stateLow: "frozen_meat",
+ burn: 10,
+ burnTime: 450,
+ burnInto: "cooked_meat",
+ breakInto: ["blood","meat","bone"],
+ forceSaveColor: true,
+ reactions: {
+ "cancer": { elem1:"cancer", chance:0.005 },
+ "radiation": { elem1:["ash","meat","rotten_meat","cooked_meat"], chance:0.4 },
+ "neutron": { elem1:["ash","meat","rotten_meat","cooked_meat"], chance:0.01 },
+ "fallout": { elem1:["ash","meat","rotten_meat","cooked_meat"], chance:0.01 },
+ "plague": { elem1:"plague", chance:0.05 },
+ "egg": { elem2:"yolk", chance:0.5, oneway:true },
+ "grape": { elem2:"juice", chance:0.5, color2:"#291824", oneway:true },
+ "ant": { elem2:"dead_bug", chance:0.05, oneway:true },
+ "fly": { elem2:"dead_bug", oneway:true },
+ "firefly": { elem2:"dead_bug", oneway:true },
+ "bee": { elem2:"dead_bug", oneway:true },
+ "flea": { elem2:"dead_bug", oneway:true },
+ "termite": { elem2:"dead_bug", oneway:true },
+ "worm": { elem2:"slime", chance:0.05, oneway:true },
+ "stink_bug": { elem2:"stench", oneway:true },
+ "grass_seed": { elem2:null, chance:0.05 },
+ "gold_coin": { elem2:null, chance:0.05 },
+ },
+ properties: {
+ dead: false,
+ dir: 1,
+ panic: 0
+ },
+ tick: function(pixel) {
+ if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall
+ if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down
+ var headpixel = pixelMap[pixel.x][pixel.y-2];
+ if (headpixel.element == "alien_head") {
+ if (isEmpty(pixel.x, pixel.y-1)) {
+ movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1);
+ }
+ else {
+ swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]);
+ }
+ }
+ }
+ }
+ doHeat(pixel);
+ doBurning(pixel);
+ doElectricity(pixel);
+ if (pixel.dead) {
+ // Turn into rotten_meat if pixelTicks-dead > 500
+ if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) {
+ changePixel(pixel,"rotten_meat");
+ }
+ return
+ }
+
+ // Find the head
+ if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "alien_head") {
+ var head = pixelMap[pixel.x][pixel.y-1];
+ if (head.dead) { // If head is dead, kill body
+ pixel.dead = head.dead;
+ }
+ }
+ else { var head = null }
+ if (pixel.burning) {
+ pixel.panic += 0.1;
+ if (head && pixelTicks-pixel.burnStart > 240) {
+ pixel.color = head.color;
+ }
+ }
+ else if (pixel.panic > 0) {
+ pixel.panic -= 0.1;
+ }
+
+ if (isEmpty(pixel.x, pixel.y-1)) {
+ // create blood if decapitated 10% chance
+ if (Math.random() < 0.1 && !pixel.charge) {
+ createPixel("blood", pixel.x, pixel.y-1);
+ // set dead to true 15% chance
+ if (Math.random() < 0.15) {
+ pixel.dead = pixelTicks;
+ }
+ }
+ }
+ else if (head == null) { return }
+ else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance
+ var movesToTry = [
+ [1*pixel.dir,0],
+ [1*pixel.dir,-1],
+ ];
+ // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break.
+ while (movesToTry.length > 0) {
+ var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0];
+ if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) {
+ var origx = pixel.x+move[0];
+ var origy = pixel.y+move[1];
+ if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) {
+ movePixel(head, head.x+move[0], head.y+move[1]);
+ break;
+ }
+ }
+ }
+ // 15% chance to change direction
+ if (Math.random() < 0.15) {
+ pixel.dir *= -1;
+ }
+ // homeostasis
+ if (pixel.temp > 37) { pixel.temp -= 1; }
+ else if (pixel.temp < 37) { pixel.temp += 1; }
+ }
+
+ }
+}
+
+elements.alien_head = {
+ color: ["#41ab1d","#4cbf25","#40752e","#871dab","#ac3ad2","#71278a"],
+ category: "life",
+ hidden: true,
+ density: 1080,
+ state: "solid",
+ conduct: .05,
+ temp: 37,
+ tempHigh: 850,
+ stateHigh: "cooked_meat",
+ tempLow: -560,
+ stateLow: "frozen_meat",
+ burn: 10,
+ burnTime: 450,
+ burnInto: "cooked_meat",
+ breakInto: ["blood","meat","bone"],
+ forceSaveColor: true,
+ reactions: {
+ "cancer": { elem1:"cancer", chance:0.005 },
+ "radiation": { elem1:["ash","meat","rotten_meat","cooked_meat"], chance:0.4 },
+ "neutron": { elem1:["ash","meat","rotten_meat","cooked_meat"], chance:0.03 },
+ "fallout": { elem1:["ash","meat","rotten_meat","cooked_meat"], chance:0.03 },
+ "plague": { elem1:"plague", chance:0.05 },
+ "oxygen": { elem2:"carbon_dioxide", chance:0.5 },
+ "meat": { elem2:null, chance:0.1 },
+ "cooked_meat": { elem2:null, chance:0.1 },
+ "cured_meat": { elem2:null, chance:0.1 },
+ "sugar": { elem2:null, chance:0.1 },
+ "broth": { elem2:null, chance:0.2 },
+ "yolk": { elem2:null, chance:0.1 },
+ "hard_yolk": { elem2:null, chance:0.1 },
+ "dough": { elem2:null, chance:0.1 },
+ "batter": { elem2:null, chance:0.2 },
+ "butter": { elem2:null, chance:0.1 },
+ "melted_butter": { elem2:null, chance:0.2 },
+ "chocolate": { elem2:null, chance:0.2 },
+ "melted_chocolate": { elem2:null, chance:0.3 },
+ "grape": { elem2:null, chance:0.1 },
+ "tomato": { elem2:null, chance:0.1 },
+ "herb": { elem2:null, chance:0.1 },
+ "lettuce": { elem2:null, chance:0.1 },
+ "corn": { elem2:null, chance:0.1 },
+ "popcorn": { elem2:null, chance:0.15 },
+ "potato": { elem2:null, chance:0.1 },
+ "baked_potato": { elem2:null, chance:0.15 },
+ "bread": { elem2:null, chance:0.1 },
+ "toast": { elem2:null, chance:0.1 },
+ "gingerbread": { elem2:null, chance:0.1 },
+ "baked_batter": { elem2:null, chance:0.2 },
+ "wheat": { elem2:null, chance:0.1 },
+ "candy": { elem2:null, chance:0.1 },
+ "yogurt": { elem2:null, chance:0.2 },
+ "frozen_yogurt": { elem2:null, chance:0.1 },
+ "ice_cream": { elem2:null, chance:0.2 },
+ "beans": { elem2:[null,null,null,null,null,null,null,null,"stench"], chance:0.2 },
+ "tea": { elem2:null, chance:0.2 },
+ "coffee": { elem2:null, chance:0.2 },
+ "milk": { elem2:null, chance:0.2 },
+ "cream": { elem2:null, chance:0.2 },
+ "soda": { elem2:null, chance:0.2 },
+ "chocolate_milk": { elem2:null, chance:0.2 },
+ "fruit_milk": { elem2:null, chance:0.2 },
+ "pilk": { elem2:null, chance:0.2 },
+ "eggnog": { elem2:null, chance:0.2 },
+ "juice": { elem2:null, chance:0.2 },
+ "cheese": { elem2:null, chance:0.1 },
+ "melted_cheese": { elem2:null, chance:0.2 },
+ "alcohol": { elem2:null, chance:0.2 },
+ "antidote": { elem2:null, chance:0.2 },
+ "honey": { elem2:null, chance:0.2 },
+ "caramel": { elem2:null, chance:0.2 },
+ "molasses": { elem2:null, chance:0.05 },
+ "ketchup": { elem2:null, chance:0.1 },
+ "pumpkin_seed": { elem2:null, chance:0.1 },
+ "nut": { elem2:null, chance:0.1 },
+ "nut_meat": { elem2:null, chance:0.1 },
+ "nut_butter": { elem2:null, chance:0.1 },
+ "nut_milk": { elem2:null, chance:0.2 },
+ "jelly": { elem2:null, chance:0.2 },
+ "mayo": { elem2:null, chance:0.2 },
+ "mashed_potato": { elem2:null, chance:0.2 },
+ "sauce": { elem2:null, chance:0.2 },
+ "pickle": { elem2:null, chance:0.1 },
+ },
+ properties: {
+ dead: false
+ },
+ tick: function(pixel) {
+ doHeat(pixel);
+ doBurning(pixel);
+ doElectricity(pixel);
+ if (pixel.dead) {
+ // Turn into rotten_meat if pixelTicks-dead > 500
+ if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) {
+ changePixel(pixel,"rotten_meat");
+ return
+ }
+ }
+
+ // Find the body
+ if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "alien_body") {
+ var body = pixelMap[pixel.x][pixel.y+1];
+ if (body.dead) { // If body is dead, kill head
+ pixel.dead = body.dead;
+ }
+ }
+ else { var body = null }
+
+ if (tryMove(pixel, pixel.x, pixel.y+1)) {
+ // create blood if severed 10% chance
+ if (isEmpty(pixel.x, pixel.y+1) && !pixel.dead && Math.random() < 0.1 && !pixel.charge) {
+ createPixel("blood", pixel.x, pixel.y+1);
+ // set dead to true 15% chance
+ if (Math.random() < 0.15) {
+ pixel.dead = pixelTicks;
+ }
+ }
+ }
+ // homeostasis
+ if (pixel.temp > 37) { pixel.temp -= 1; }
+ else if (pixel.temp < 37) { pixel.temp += 1; }
+ }
+}
+
+elements.green_tornado = {
+ color: ["#39d83f","#65bf69","#718a72", "#5bbf5e"],
+ tick: function(pixel) {
+ doHeat(pixel);
+ if (pixel.stage) {
+ if (pixel.stage === -1) {
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
+ var pixel2 = pixelMap[pixel.x][pixel.y+1];
+ if (pixel2.element !== "green_tornado" && elements[pixel2.element].movable) {
+ deletePixel(pixel.x,pixel.y);
+ tryMove(pixel2,pixel2.x,pixel2.y-1);
+ return;
+ }
+ }
+ if (Math.random() < 0.1) {
+ deletePixel(pixel.x,pixel.y);
+ return;
+ }
+ return;
+ }
+ for (var y = 0; y <= pixel.stage; y++) {
+ for (var x = -y-0.5; x <= y+0.5; x++) {
+ var nx = Math.round(pixel.x+x/2);
+ var ny = Math.round(pixel.y-y);
+ if (isEmpty(nx,ny)) {
+ createPixel("green_tornado",nx,ny);
+ pixelMap[nx][ny].stage = -1;
+ }
+ else if (!outOfBounds(nx,ny)) {
+ // try to break and then move it up
+ var p = pixelMap[nx][ny];
+ if (elements[p.element].breakInto && Math.random() < (elements[p.element].hardness || 1) * 0.1) {
+ breakPixel(p);
+ }
+ if (p.del || elements[p.element].id === elements.green_tornado.id || !elements[p.element].movable) { continue; }
+ tryMove(p,p.x,p.y-1);
+ }
+ }
+ }
+ for (var y = 0; y <= Math.min(4,pixel.stage); y++) {
+ for (var x = -pixel.stage; x <= pixel.stage; x++) {
+ var nx = Math.round(pixel.x+x/2);
+ var ny = pixel.y-y;
+ if (!isEmpty(nx,ny,true) && Math.random() < 0.3) {
+ var p = pixelMap[nx][ny];
+ if (elements[p.element].breakInto && Math.random() < (elements[p.element].hardness || 1) * 0.1) {
+ breakPixel(p);
+ }
+ if (p.del || elements[p.element].id === elements.green_tornado.id || !elements[p.element].movable) { continue; }
+ tryMove(p,p.x,p.y-1);
+ }
+ }
+ }
+ if (pixel.stage < pixel.mag) {
+ pixel.stage++;
+ }
+ }
+ else {
+ pixel.mag = Math.floor(Math.random() * 7) + 15
+ pixel.stage = 1;
+ pixel.dir = Math.random() < 0.5 ? -1 : 1;
+ }
+ tryMove(pixel,pixel.x,pixel.y+1);
+ if (Math.random() < 0.1 && !tryMove(pixel,pixel.x+pixel.dir,pixel.y)) {
+ tryMove(pixel,pixel.x+pixel.dir,pixel.y-1)
+ if (Math.random() < 0.2) {
+ pixel.dir = -pixel.dir;
+ }
+ }
+ if (pixelTicks - pixel.start > 400 && Math.random() < 0.2) {
+ pixel.stage -= 2;
+ pixel.mag -= 1;
+ if (pixel.stage < 2) {
+ deletePixel(pixel.x,pixel.y);
+ }
+ }
+ },
+ category: "weapons",
+ state: "gas",
+ density: 1.23,
+ maxSize: 1,
+ cooldown: defaultCooldown,
+ excludeRandom: true,
+}
+
+elements.green_goo = {
+ color: "#64d14f",
+ behavior: [
+ "XX|CH:green_goo%25|XX",
+ "M2%5 AND CH:green_goo%25|DL%5|M2%5 AND CH:green_goo%25",
+ "XX|CH:green_goo%25 AND M1|XX",
+ ],
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|DL%10|XX",
+ "M1|M2|M1",
+ ],
+ reactions: {
+ "antibody": { elem1:"malware", elem2:null }
+ },
+ ignore: ["fire","smoke","malware","flash","light","laser"],
+ category: "special",
+ state: "solid",
+ density: 21450,
+ excludeRandom: true,
+ conduct: 0.25,
+ darkText: true
+}
+
+elements.beef = {
+ color: ["#e45a5a","#e34343","#c03a3a"],
+ behavior: [
+ "XX|XX|XX",
+ "SP|XX|SP",
+ "XX|M1|XX",
+ ],
+ reactions: {
+ "dirty_water": { elem1:"rotten_meat", chance:0.1 },
+ "fly": { elem1:"rotten_meat", chance:0.2 },
+ "dioxin": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "uranium": { elem1:"rotten_meat", chance:0.1 },
+ "cancer": { elem1:"rotten_meat", chance:0.1 },
+ "plague": { elem1:"rotten_meat", elem2:null, chance:0.3 },
+ "ant": { elem1:"rotten_meat", chance:0.1 },
+ "worm": { elem1:"rotten_meat", chance:0.1 },
+ "rat": { elem1:"rotten_meat", chance:0.3 },
+ "mushroom_spore": { elem1:"rotten_meat", chance:0.1 },
+ "mushroom_stalk": { elem1:"rotten_meat", chance:0.1 },
+ "mercury": { elem1:"rotten_meat", elem2:null, chance:0.2 },
+ "mercury_gas": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "virus": { elem1:"rotten_meat", chance:0.1 },
+ "poison": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "infection": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "ink": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "acid": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "acid_gas": { elem1:"rotten_meat", chance:0.4 },
+ "cyanide": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "cyanide_gas": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "rotten_cheese": { elem1:"rotten_meat", chance:0.02 },
+ "water": { elem2:"broth", tempMin:70 },
+ "salt_water": { elem2:"broth", tempMin:70 },
+ "sugar_water": { elem2:"broth", tempMin:70 },
+ "seltzer": { elem2:"broth", tempMin:70 },
+ "salt": { elem1:"cured_meat" },
+ },
+ tempHigh: 62.8,
+ stateHigh: "cooked_beef",
+ tempLow: -18,
+ stateLow: "frozen_beef",
+ category:"food",
+ burn:15,
+ burnTime:200,
+ burnInto:"cooked_beef",
+ state: "solid",
+ density: 1019.5,
+ conduct: 0.2,
+ isFood: true
+}
+
+elements.frozen_beef = {
+ color: ["#81afc8","#509fc8","#7caec8","#356eb1"],
+ behavior: behaviors.STURDYPOWDER,
+ temp: -18,
+ tempHigh: 0,
+ stateHigh: "beef",
+ category:"food",
+ hidden:true,
+ state: "solid",
+ density: 1067.5,
+ isFood: true
+}
+
+elements.chicken = {
+ color: ["#dbc1b3","#dbc0b9"],
+ behavior: [
+ "XX|XX|XX",
+ "SP|XX|SP",
+ "XX|M1|XX",
+ ],
+ reactions: {
+ "dirty_water": { elem1:"rotten_meat", chance:0.1 },
+ "fly": { elem1:"rotten_meat", chance:0.2 },
+ "dioxin": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "uranium": { elem1:"rotten_meat", chance:0.1 },
+ "cancer": { elem1:"rotten_meat", chance:0.1 },
+ "plague": { elem1:"rotten_meat", elem2:null, chance:0.3 },
+ "ant": { elem1:"rotten_meat", chance:0.1 },
+ "worm": { elem1:"rotten_meat", chance:0.1 },
+ "rat": { elem1:"rotten_meat", chance:0.3 },
+ "mushroom_spore": { elem1:"rotten_meat", chance:0.1 },
+ "mushroom_stalk": { elem1:"rotten_meat", chance:0.1 },
+ "mercury": { elem1:"rotten_meat", elem2:null, chance:0.2 },
+ "mercury_gas": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "virus": { elem1:"rotten_meat", chance:0.1 },
+ "poison": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "infection": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "ink": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "acid": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "acid_gas": { elem1:"rotten_meat", chance:0.4 },
+ "cyanide": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "cyanide_gas": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "rotten_cheese": { elem1:"rotten_meat", chance:0.02 },
+ "water": { elem2:"broth", tempMin:70 },
+ "salt_water": { elem2:"broth", tempMin:70 },
+ "sugar_water": { elem2:"broth", tempMin:70 },
+ "seltzer": { elem2:"broth", tempMin:70 },
+ "salt": { elem1:"cured_meat" },
+ "crumb": { elem1:"breaded_chicken" },
+ },
+ tempHigh: 73.9,
+ stateHigh: "cooked_chicken",
+ tempLow: -18,
+ stateLow: "frozen_meat",
+ category:"food",
+ burn:15,
+ burnTime:200,
+ burnInto:"cooked_chicken",
+ state: "solid",
+ density: 1019.5,
+ conduct: 0.2,
+ isFood: true
+}
+
+elements.frozen_chicken = {
+ color: ["#94d4f0","#9ac1d2", "#7fa3b3"],
+ behavior: behaviors.STURDYPOWDER,
+ temp: -18,
+ tempHigh: 0,
+ stateHigh: "chicken",
+ category:"food",
+ hidden:true,
+ state: "solid",
+ density: 1067.5,
+ isFood: true
+}
+
+elements.frozen_breaded_chicken = {
+ color: ["#94d4f0","#9ac1d2", "#7fa3b3", "#c7a64a","#d3bd82"],
+ behavior: behaviors.STURDYPOWDER,
+ temp: -18,
+ tempHigh: 0,
+ stateHigh: "breaded_chicken",
+ category:"food",
+ hidden:true,
+ state: "solid",
+ density: 1067.5,
+ isFood: true
+}
+
+elements.cooked_chicken = {
+ color: ["#d4af4b","#a9904b"],
+ behavior: [
+ "XX|XX|XX",
+ "SP|XX|SP",
+ "XX|M1|XX",
+ ],
+ reactions: {
+ "dirty_water": { elem1:"rotten_meat", chance:0.1 },
+ "fly": { elem1:"rotten_meat", chance:0.2 },
+ "dioxin": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "uranium": { elem1:"rotten_meat", chance:0.1 },
+ "cancer": { elem1:"rotten_meat", chance:0.1 },
+ "plague": { elem1:"rotten_meat", elem2:null, chance:0.3 },
+ "ant": { elem1:"rotten_meat", chance:0.1 },
+ "worm": { elem1:"rotten_meat", chance:0.1 },
+ "rat": { elem1:"rotten_meat", chance:0.3 },
+ "mushroom_spore": { elem1:"rotten_meat", chance:0.1 },
+ "mushroom_stalk": { elem1:"rotten_meat", chance:0.1 },
+ "mercury": { elem1:"rotten_meat", elem2:null, chance:0.2 },
+ "mercury_gas": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "virus": { elem1:"rotten_meat", chance:0.1 },
+ "poison": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "infection": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "ink": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "acid": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "acid_gas": { elem1:"rotten_meat", chance:0.4 },
+ "cyanide": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "cyanide_gas": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "rotten_cheese": { elem1:"rotten_meat", chance:0.02 },
+ "water": { elem2:"broth", tempMin:70 },
+ "salt_water": { elem2:"broth", tempMin:70 },
+ "sugar_water": { elem2:"broth", tempMin:70 },
+ "seltzer": { elem2:"broth", tempMin:70 },
+ "salt": { elem1:"cured_meat" },
+ },
+ tempHigh: 300,
+ stateHigh: "ash",
+ tempLow: -18,
+ stateLow: "frozen_meat",
+ category:"food",
+ burn:15,
+ burnTime:200,
+ burnInto:"ash",
+ state: "solid",
+ density: 1019.5,
+ conduct: 0.2,
+ isFood: true
+}
+
+elements.breaded_chicken = {
+ color: ["#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a","#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a","#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#d3bd82", "#c7a64a", "#ff8282"],
+ behavior: [
+ "XX|XX|XX",
+ "SP|XX|SP",
+ "XX|M1|XX",
+ ],
+ reactions: {
+ "dirty_water": { elem1:"rotten_meat", chance:0.1 },
+ "fly": { elem1:"rotten_meat", chance:0.2 },
+ "dioxin": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "uranium": { elem1:"rotten_meat", chance:0.1 },
+ "cancer": { elem1:"rotten_meat", chance:0.1 },
+ "plague": { elem1:"rotten_meat", elem2:null, chance:0.3 },
+ "ant": { elem1:"rotten_meat", chance:0.1 },
+ "worm": { elem1:"rotten_meat", chance:0.1 },
+ "rat": { elem1:"rotten_meat", chance:0.3 },
+ "mushroom_spore": { elem1:"rotten_meat", chance:0.1 },
+ "mushroom_stalk": { elem1:"rotten_meat", chance:0.1 },
+ "mercury": { elem1:"rotten_meat", elem2:null, chance:0.2 },
+ "mercury_gas": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "virus": { elem1:"rotten_meat", chance:0.1 },
+ "poison": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "infection": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "ink": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "acid": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "acid_gas": { elem1:"rotten_meat", chance:0.4 },
+ "cyanide": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "cyanide_gas": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "rotten_cheese": { elem1:"rotten_meat", chance:0.02 },
+ "water": { elem2:"broth", tempMin:70 },
+ "salt_water": { elem2:"broth", tempMin:70 },
+ "sugar_water": { elem2:"broth", tempMin:70 },
+ "seltzer": { elem2:"broth", tempMin:70 },
+ "salt": { elem1:"cured_meat" },
+ "grease": { elem1:"greasy_breaded_chicken" },
+ },
+ tempHigh: 73.9,
+ stateHigh: "fried_chicken",
+ tempLow: -18,
+ stateLow: "frozen_meat",
+ category:"food",
+ burn:15,
+ burnTime:200,
+ burnInto:"fried_chicken",
+ state: "solid",
+ density: 1019.5,
+ conduct: 0.2,
+ isFood: true
+}
+
+elements.fried_chicken = {
+ color: ["#a9996d","#c8b581"],
+ behavior: [
+ "XX|XX|XX",
+ "SP|XX|SP",
+ "XX|M1|XX",
+ ],
+ reactions: {
+ "dirty_water": { elem1:"rotten_meat", chance:0.1 },
+ "fly": { elem1:"rotten_meat", chance:0.2 },
+ "dioxin": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "uranium": { elem1:"rotten_meat", chance:0.1 },
+ "cancer": { elem1:"rotten_meat", chance:0.1 },
+ "plague": { elem1:"rotten_meat", elem2:null, chance:0.3 },
+ "ant": { elem1:"rotten_meat", chance:0.1 },
+ "worm": { elem1:"rotten_meat", chance:0.1 },
+ "rat": { elem1:"rotten_meat", chance:0.3 },
+ "mushroom_spore": { elem1:"rotten_meat", chance:0.1 },
+ "mushroom_stalk": { elem1:"rotten_meat", chance:0.1 },
+ "mercury": { elem1:"rotten_meat", elem2:null, chance:0.2 },
+ "mercury_gas": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "virus": { elem1:"rotten_meat", chance:0.1 },
+ "poison": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "infection": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "ink": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "acid": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "acid_gas": { elem1:"rotten_meat", chance:0.4 },
+ "cyanide": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "cyanide_gas": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "rotten_cheese": { elem1:"rotten_meat", chance:0.02 },
+ "water": { elem2:"broth", tempMin:70 },
+ "salt_water": { elem2:"broth", tempMin:70 },
+ "sugar_water": { elem2:"broth", tempMin:70 },
+ "seltzer": { elem2:"broth", tempMin:70 },
+ "salt": { elem1:"cured_meat" },
+ "grease": { elem1:"greasy_breaded_chicken" },
+ },
+ tempHigh: 300,
+ stateHigh: "ash",
+ tempLow: -18,
+ stateLow: "frozen_meat",
+ category:"food",
+ burn:15,
+ burnTime:200,
+ burnInto:"ash",
+ state: "solid",
+ density: 1019.5,
+ conduct: 0.2,
+ isFood: true
+}
+
+elements.cooked_beef = {
+ color: ["#6b2a2a","#782424","#5c281d"],
+ behavior: [
+ "XX|XX|XX",
+ "SP|XX|SP",
+ "XX|M1|XX",
+ ],
+ reactions: {
+ "dirty_water": { elem1:"rotten_meat", chance:0.1 },
+ "fly": { elem1:"rotten_meat", chance:0.2 },
+ "dioxin": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "uranium": { elem1:"rotten_meat", chance:0.1 },
+ "cancer": { elem1:"rotten_meat", chance:0.1 },
+ "plague": { elem1:"rotten_meat", elem2:null, chance:0.3 },
+ "ant": { elem1:"rotten_meat", chance:0.1 },
+ "worm": { elem1:"rotten_meat", chance:0.1 },
+ "rat": { elem1:"rotten_meat", chance:0.3 },
+ "mushroom_spore": { elem1:"rotten_meat", chance:0.1 },
+ "mushroom_stalk": { elem1:"rotten_meat", chance:0.1 },
+ "mercury": { elem1:"rotten_meat", elem2:null, chance:0.2 },
+ "mercury_gas": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "virus": { elem1:"rotten_meat", chance:0.1 },
+ "poison": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "infection": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "ink": { elem1:"rotten_meat", elem2:null, chance:0.1 },
+ "acid": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "acid_gas": { elem1:"rotten_meat", chance:0.4 },
+ "cyanide": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "cyanide_gas": { elem1:"rotten_meat", elem2:null, chance:0.5 },
+ "rotten_cheese": { elem1:"rotten_meat", chance:0.02 },
+ "water": { elem2:"broth", tempMin:70 },
+ "salt_water": { elem2:"broth", tempMin:70 },
+ "sugar_water": { elem2:"broth", tempMin:70 },
+ "seltzer": { elem2:"broth", tempMin:70 },
+ "salt": { elem1:"cured_meat" },
+ },
+ tempHigh: 300,
+ stateHigh: "cooked_meat",
+ tempLow: -18,
+ stateLow: "frozen_meat",
+ category:"food",
+ burn:15,
+ burnTime:200,
+ burnInto:"ash",
+ state: "solid",
+ density: 1019.5,
+ conduct: 0.2,
+ isFood: true
+}
+
+elements.otherworldy_dirt = {
+ color: ["#5b9878","#7c998a","#216f46","#437058", "#43524a","#656866", "#59695e"],
+ behavior: behaviors.POWDER,
+ tempHigh: 5600,
+ category:"land",
+ state: "solid",
+ density: 8321
+}
if (!elements.sand.reactions) { elements.sand.reactions = {} }
elements.sand.reactions.dirt = { elem1:"dirty_sand", elem2:"dirty_sand" }
+if (!elements.mud.reactions) { elements.mud.reactions = {} }
+elements.mud.reactions.water = { elem1:"muddy_water", elem2:"muddy_water" }
+
if (!elements.dirty_sand.reactions) { elements.dirty_sand.reactions = {} }
elements.dirty_sand.reactions.water = { elem1:"wet_dirty_sand", elem2:"wet_dirty_sand" }
@@ -918,8 +2872,16 @@ elements.rocky_dirty_sand.reactions.water = { elem1:"wet_rocky_dirty_sand", elem
if (!elements.poison.reactions) { elements.poison.reactions = {} }
elements.poison.reactions.antidote = { elem1:"how_did_we_get_here", elem2:"how_did_we_get_here" }
-if (!elements.molten_steel.reactions) { elements.molten_steel.reactions = {} }
-elements.molten_steel.reactions.gullibullium = { elem1:"reinforced_gullibullium", elem2:"reinforced_gullibullium" }
+runAfterAutogen(() => {
+ if (!elements.molten_steel.reactions) { elements.molten_steel.reactions = {} }
+ elements.molten_steel.reactions.gullibullium = { elem1:"r_gullibullium", elem2:"r_gullibullium" }
+ })
+
+ runAfterAutogen(() => {
+ if (!elements.molten_sulfur.reactions) { elements.molten_sulfur.reactions = {} }
+ elements.molten_sulfur.reactions.silvanium = { elem1:"silvanium_sulfate", elem2:"silvanium_sulfate" }
+ })
+
if (!elements.wall.reactions) { elements.wall.reactions = {} }
elements.wall.reactions.plasma3 = { elem1:"plasma3", elem2:"plasma3" }
@@ -927,13 +2889,35 @@ elements.wall.reactions.plasma3 = { elem1:"plasma3", elem2:"plasma3" }
if (!elements.wall.reactions) { elements.wall.reactions = {} }
elements.wall.reactions.plasma4 = { elem1:"plasma4", elem2:"plasma4" }
+if (!elements.wall.reactions) { elements.wall.reactions = {} }
+elements.wall.reactions.ultimate_plasma = { elem1:"ultimate_plasma", elem2:"ultimate_plasma" }
+
if (!elements.reinforced_wall.reactions) { elements.reinforced_wall.reactions = {} }
elements.reinforced_wall.reactions.plasma3 = { elem1:"plasma3", elem2:"plasma3" }
if (!elements.reinforced_wall.reactions) { elements.reinforced_wall.reactions = {} }
elements.reinforced_wall.reactions.plasma4 = { elem1:"plasma4", elem2:"plasma4" }
+if (!elements.reinforced_liquid_wall.reactions) { elements.reinforced_liquid_wall.reactions = {} }
+elements.reinforced_liquid_wall.reactions.plasma3 = { elem1:"plasma3", elem2:"plasma3" }
+
+if (!elements.reinforced_liquid_wall.reactions) { elements.reinforced_liquid_wall.reactions = {} }
+elements.reinforced_liquid_wall.reactions.plasma4 = { elem1:"plasma4", elem2:"plasma4" }
+
+if (!elements.reinforced_wall.reactions) { elements.reinforced_wall.reactions = {} }
+elements.reinforced_wall.reactions.ultimate_plasma = { elem1:"ultimate_plasma", elem2:"ultimate_plasma" }
+
+if (!elements.reinforced_liquid_wall.reactions) { elements.reinforced_liquid_wall.reactions = {} }
+elements.reinforced_liquid_wall.reactions.ultimate_plasma = { elem1:"ultimate_plasma", elem2:"ultimate_plasma" }
+
if (!elements.whenyouium.reactions) { elements.whenyouium.reactions = {} }
elements.whenyouium.reactions.when_you_particles = { elem1:"when_you_particles", elem2:"when_you_particles" }
+if (!elements.when_iium.reactions) { elements.when_iium.reactions = {} }
+elements.when_iium.reactions.when_i_particles = { elem1:"when_i_particles", elem2:"when_i_particles" }
+
+if (!elements.ash.reactions) { elements.ash.reactions = {} }
+elements.ash.reactions.dust = { elem1:"dusty_ash", elem2:"dusty_ash" }
+
+
// important colors: ["#000000", "#edff00", "#3a3a3a", "#ff0000"], ["#82c0ff", "#ff8282"],
\ No newline at end of file
diff --git a/mods/tech.js b/mods/tech.js
new file mode 100644
index 00000000..b5b9b949
--- /dev/null
+++ b/mods/tech.js
@@ -0,0 +1,91 @@
+elements.monitor_case = {
+ color: "#4a4848",
+ behavior: behaviors.SOLID,
+ category: "tech",
+ state: "solid",
+ density: 500,
+};
+
+elements.pc_core = {
+ color: "#f0cd43",
+ behavior: [
+ "XX|SH|XX",
+ "SH|XX|SH",
+ "XX|SH|XX",
+ ],
+ category: "tech",
+ tempHigh: 8000,
+ stateHigh: ["molten_steel","explosion","molten_iron"],
+ reactions: {
+ "poison": { elem1: "malfunctioned_wire", elem2: "null" },
+ "salt_water": { elem1: "malfunctioned_wire", elem2: "null" },
+ "water": { elem1: "explosion", elem2: "null" },
+ "malware": { elem1: "null", elem2: "null" },
+ },
+ breakInto: ["rust", "electrogalvanized"],
+};
+
+elements.malfunctioned_wire = {
+ color: "#6d32a8",
+ behavior: behaviors.WALL,
+ category: "tech",
+ conduct: 999,
+ noMix: true
+};
+
+elements.red_wire = {
+ color: "#ff3d1f",
+ behavior: behaviors.WALL,
+ category: "tech",
+ insulate: true,
+ conduct: 1,
+ noMix: true,
+ reactions: {
+ "acid": { elem1: "malfunctioned_wire", elem2: "null" },
+ "poison": { elem1: "malfunctioned_wire", elem2: "null" },
+ "salt_water": { elem1: "malfunctioned_wire", elem2: "null" },
+ "water": { elem1: "malfunctioned_wire", elem2: "null" },
+ },
+ breakInto: ["plastic", "copper"],
+};
+
+elements.green_wire = {
+ color: "#66c22d",
+ behavior: behaviors.WALL,
+ category: "tech",
+ insulate: true,
+ conduct: 1,
+ noMix: true,
+ reactions: {
+ "acid": { elem1: "malfunctioned_wire", elem2: "null" },
+ "poison": { elem1: "malfunctioned_wire", elem2: "null" },
+ "salt_water": { elem1: "malfunctioned_wire", elem2: "null" },
+ "water": { elem1: "malfunctioned_wire", elem2: "null" },
+ },
+ breakInto: ["plastic", "copper"],
+};
+
+elements.blue_wire = {
+ color: "#1f81cc",
+ behavior: behaviors.WALL,
+ category: "tech",
+ insulate: true,
+ conduct: 1,
+ noMix: true,
+ reactions: {
+ "acid": { elem1: "malfunctioned_wire", elem2: "null" },
+ "poison": { elem1: "malfunctioned_wire", elem2: "null" },
+ "water": { elem1: "malfunctioned_wire", elem2: "null" },
+ "salt_water": { elem1: "malfunctioned_wire", elem2: "null" },
+ },
+ breakInto: ["plastic", "copper"],
+};
+
+elements.electrogalvanized = {
+ color: "#6c6e70",
+ behavior: behaviors.WALL,
+ category: "tech",
+ state: "solid",
+ conduct: 2,
+ density: 7850,
+};