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.jsAdds more heaters and coolersAlice video.jsAdds a video playerggod waterspout.jsAdds back the old Water Spoutmollthecoder -WhisperingTheory.jsAdds powder and gas variant of heater and coolerkaeud +WhisperingTheory.jsAdds many more variants of heater and coolerkaeud Weapons aircrafts.jsAdds aircraft and aircraft part pixelsJayd 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, +};