diff --git a/mods/aScientistsWish.js b/mods/aScientistsWish.js index 258159bf..64769c97 100644 --- a/mods/aScientistsWish.js +++ b/mods/aScientistsWish.js @@ -1,580 +1,1159 @@ +//this mod is still on proggres (WIP) you can give feedback or report bug to these discord account. @salmonfishy or @carbon_monoxides6 + elements.carbon_monoxide = { - color: "#b5b5b5", - behavior: behaviors.GAS, - behaviorOn: [ - "XX|XX|XX", - "XX|CH:fire|XX", - "XX|XX|XX", - ], - category: "gases", - state: "gas", - density: 1.14, - burn: 75, - tempHigh: 609, - stateHigh: "fire", - tempLow: -192, - stateLow: "liquid_carbon_monoxide", - burntime: 5, - darkText: true, - fireColor: "#ebba34", - reactions: { - "head": { elem1:"rotten_meat", chance:0.5 }, - "body": { elem1:"rotten_meat", chance:0.5 }, - "human": { elem1:"rotten_meat", chance:0.5 }, - } + color: "#b5b5b5", + behavior: behaviors.GAS, + behaviorOn: [ + "XX|XX|XX", + "XX|CH:fire|XX", + "XX|XX|XX", +], + category: "gases", + state: "gas", + density: 1.14, + burn: 75, + tempHigh: 609, + stateHigh: "fire", + tempLow: -192, + stateLow: "liquid_carbon_monoxide", + burntime: 5, + darkText: true, + fireColor: "#ebba34", + reactions: { + "head": { elem2:"rotten_meat", chance:0.5 }, + "body": { elem2:"rotten_meat", chance:0.5 }, + "human": { elem2:"rotten_meat", chance:0.5 }, + } }; elements.liquid_carbon_monoxide = { - color: "#b5b5b5", - behavior: behaviors.LIQUID, - category: "liquids", - state: "liquid", - density: 1.14, - darkText: true, - tempHigh: -190, - temp: -192, - tempLow: -199, - hidden: true, - stateLow: "ice_carbon_monoxide", - stateHigh: "carbon_monoxide", + color: "#b5b5b5", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", + density: 1.14, + darkText: true, + tempHigh: -190, + temp: -192, + tempLow: -199, + hidden: true, + stateLow: "ice_carbon_monoxide", + stateHigh: "carbon_monoxide", }; elements.ice_carbon_monoxide = { - color: "#b5b5b5", - behavior: behaviors.WALL, - category: "solids", - state: "solid", - temp: -199, - density: 1.14, - tempHigh: -192, - darkText: true, - stateHigh: "liquid_carbon_monoxide", + color: "#b5b5b5", + behavior: behaviors.WALL, + category: "solids", + state: "solid", + temp: -199, + density: 1.14, + tempHigh: -192, + darkText: true, + stateHigh: "liquid_carbon_monoxide", }; 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, - insulate: true, - noMix: true, - category:"machines", - darkText: true, - hardness: 1, + 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, + insulate: true, + noMix: true, + category:"machines", + darkText: true, + hardness: 1, }; elements.cpu = { - color: "#575757", - behavior: behaviors.SOLID, - category: "machines", - state: "solid", - insulate: true, - movable: false, - noMix: true, - density: 75, - tempHigh: 1414, - stateHigh: ["explosion","metal_scrap"], + color: "#575757", + behavior: behaviors.SOLID, + category: "machines", + state: "solid", + insulate: true, + movable: false, + noMix: true, + density: 75, + tempHigh: 1414, + stateHigh: ["explosion","metal_scrap"], reactions: { - "virus": { elem1 : null , elem2:"malware", chance:0.9 }, - "metal_scrap": { elem2:"computer" }, - - } + "virus": { elem1 : null , elem2:"malware", chance:0.9 }, + "metal_scrap": { elem2:"computer" }, + + } }; elements.computer = { - color: "#2b2b2a", - behavior: behaviors.SOLID, - category: "machines", - state: "solid", - density: 8908, - insulate: true, - noMix: true, - movable: false, - tempHigh: 1414, - stateHigh: ["explosion","metal_scrap"], + color: "#2b2b2a", + behavior: behaviors.SOLID, + category: "machines", + state: "solid", + density: 8908, + insulate: true, + noMix: true, + movable: false, + tempHigh: 1414, + stateHigh: ["explosion","metal_scrap"], reactions: { - "virus": { elem1 : null , elem2:"malware", chance:0.9 }, - "water": { elem1: null , elem2: "electric" }, - } + "virus": { elem1 : null , elem2:"malware", chance:0.9 }, + "water": { elem1: null , elem2: "electric" }, + } } elements.electrons = { - color: "#b80606", - behavior: [ - "XX|SH|XX", // shocks (adds charge) - "SH|DL%0.25|SH", - "XX|SH|XX", - ], - tick: behaviors.BOUNCY, - reactions: {}, - temp: 20, - category: "energy", - state: "gas", - density: 0.000003, - ignoreAir: true, +color: "#b80606", +behavior: [ + "XX|SH|XX", // shocks (adds charge) + "SH|DL%0.25|SH", + "XX|SH|XX", +], +tick: behaviors.BOUNCY, +temp: 20, +category: "energy", +state: "gas", +density: 0.000003, +ignoreAir: true, }; elements.gelatin = { - behavior: behaviors.SOLID, - category: "food", - state: "solid", - color: "#faf8ca", - breakInto: "gelatin_powder", - ignoreAir: true, - isFood: true, + behavior: behaviors.SOLID, + category: "food", + state: "solid", + color: "#faf8ca", + breakInto: "gelatin_powder", + ignoreAir: true, + isFood: true, }; elements.gelatin_powder = { - behavior: behaviors.POWDER, - category: "food", - state: "powder", - color: "#edeb9f", - hidden: true, - ignoreAir: true, - isFood: true, + behavior: behaviors.POWDER, + category: "food", + state: "powder", + color: "#edeb9f", + hidden: true, + ignoreAir: true, + isFood: true, }; elements.blueberries = { - behavior: behaviors.POWDER, - category: "food", - state: "solid", - color: ["#464196","#2e2b64"], - breakInto: "blueberries_juice", - ignoreAir: true, - isFood: true, - reactions: { - "sugar": { elem1: "blueberries_jam" }, - }, +behavior: behaviors.POWDER, +category: "food", +state: "solid", +color: ["#464196","#2e2b64"], +breakInto: "blueberries_juice", +ignoreAir: true, +isFood: true, +reactions: { +"sugar": { elem1: "blueberries_jam" }, +}, }; elements.blueberries_juice = { - behavior: behaviors.LIQUID, - category: "food", - state: "liquid", - color: "#1f1c42", - hidden: true, - tempHigh: 170, - stateHigh: ["steam","sugar"], - reactions: { - ignoreAir: true, - isFood: true, - "gelatin": { elem1: "blueberries_jelly", elem2: null }, - "gelatin_powder": { elem1: "blueberries_jelly", elem2: null }, - }, +behavior: behaviors.LIQUID, +category: "food", +state: "liquid", +color: "#1f1c42", +hidden: true, +tempHigh: 170, +stateHigh: ["steam","sugar"], +reactions: { +ignoreAir: true, +isFood: true, +"gelatin": { elem1: "blueberries_jelly", elem2: null }, +"gelatin_powder": { elem1: "blueberries_jelly", elem2: null }, +}, }; elements.blueberries_jam = { - behavior: behaviors.LIQUID, - category: "food", - viscosity: 5000, - state: "liquid", - tempHigh: 200, - stateHigh: ["smoke","sugar"], - color: "#080629", - hidden: true, - ignoreAir: true, - isFood: true, +behavior: behaviors.LIQUID, +category: "food", +viscosity: 5000, +state: "liquid", +tempHigh: 200, +stateHigh: ["smoke","sugar"], +color: "#080629", +hidden: true, +ignoreAir: true, +isFood: true, }; elements.blueberries_jelly = { - behavior: behaviors.LIQUID, - category: "food", - viscosity: 200000, - state: "liquid", - color: "#59559e", - hidden: true, - tempHigh: 200, - stateHigh: ["smoke","sugar"], - tempLow: -5, - stateLow: ["sugar_ice","sugar_ice","juice_ice"], - ignoreAir: true, - isFood: true, +behavior: behaviors.LIQUID, +category: "food", +viscosity: 200000, +state: "liquid", +color: "#59559e", +hidden: true, +tempHigh: 200, +stateHigh: ["smoke","sugar"], +tempLow: -5, +stateLow: ["sugar_ice","sugar_ice","juice_ice"], +ignoreAir: true, +isFood: true, }; elements.fallout_drum = { - behavior: behaviors.WALL, - category: "radiated", - state: "solid", - density: 9000, - color: "#e3cc34", - tempHigh: 2500, - stateHigh: ["aluminum","radiated_water","radiated_water","fallout"], - breakInto: ["fallout","fallout"], - reactions: { - "water": { elem1:"fallout_drum", elem2:"radiated_water" }, - } +behavior: behaviors.WALL, +category: "radiated", +state: "solid", +density: 9000, +color: "#e3cc34", +tempHigh: 2500, +stateHigh: ["aluminum","radiated_water","radiated_water","fallout"], +breakInto: ["fallout","fallout"], +reactions: { +"water": { elem1:"fallout_drum", elem2:"radiated_water" }, +} }; elements.radiated_water = { - behavior: behaviors.LIQUID, - category: "radiated", - state:"liquid", - density :1300, - color: ["#23d959","#29d65d"], - hidden: true, - tempHigh: 140, - stateHigh: "polluted_air", - tempLow: -6, - stateLow: "rad_ice", - reactions: { - "human": { elem2:"rotten_meat" }, - "body": { elem2:"rotten_meat" }, - "head": { elem2:"ash" }, - "bird": { elem2:"rotten_meat"}, - "cell": { elem2:"cancer"}, - } +behavior: behaviors.LIQUID, +category: "radiated", +state:"liquid", +density :1300, +color: ["#23d959","#29d65d"], +hidden: true, +tempHigh: 140, +stateHigh: "polluted_air", +tempLow: -6, +stateLow: "rad_ice", +reactions: { +"human": { elem2:"rotten_meat" }, +"body": { elem2:"rotten_meat" }, +"head": { elem2:"ash" }, +"bird": { elem2:"rotten_meat"}, +"cell": { elem2:"cancer"}, +"worm": { elem2:"rotten_meat"}, +} }; elements.polluted_air = { - behavior: behaviors.GAS, - category: "radiated", - state:"gas", - density :10, - color: ["#60f53b","#65ba50"], - reactions: { - "body": { elem2:"rotten_meat" }, - "head": { elem2:"rotten_meat" }, - "human": { elem2:"rotten_meat" }, - "bird": { elem2:"rotten_meat" }, - "cell": { elem2:"cancer" }, - "water": { elem1: null, elem2: "radiated_water" }, - "worm": { elem2: ["ash","cancer"] }, - "flea": { elem2: "ash" }, - "seed": {elem2: "dead_plant" }, - "plant": {elem1: null, chance:0.5, elem2: "dead_plant", chance:0.5 }, - }, +behavior: behaviors.DGAS, +category: "radiated", +state:"gas", +density :10, +color: ["#60f53b","#65ba50"], +reactions: { + "body": { elem2:"rotten_meat" }, + "head": { elem2:"rotten_meat" }, + "human": { elem2:"rotten_meat" }, + "bird": { elem2:"rotten_meat" }, + "cell": { elem2:"cancer" }, + "water": { elem1: null, elem2: "radiated_water" }, + "worm": { elem2: ["ash","cancer"] }, + "flea": { elem2: "ash" }, + "seed": {elem2: "dead_plant" }, + "plant": {elem1: null, chance:0.5, elem2: "dead_plant", chance:0.5 }, +}, }; elements.siren = { - desc: "Detecting Nuclear Radiation Residues", - behavior: behaviors.WALL, - category: "machines", - state:"solid", - density :500, - color: "#808080", - reactions: { - "fallout": {"charge1":1}, - "radiated_water": {"charge1":1}, - "polluted_air": {"charge1":1}, - } +desc: "Detecting Nuclear Radiation Residues", +behavior: behaviors.WALL, +category: "machines", +state:"solid", +density :500, +color: "#808080", +reactions: { + "fallout": {"charge1":1}, + "radiated_water": {"charge1":1}, + "polluted_air": {"charge1":1}, + "radiation": {"charge1":1}, + "rad_snow": {"charge1":1}, + "rad_rock": {"charge1":1}, +} }; elements.radiated_metal = { - behavior: behaviors.WALL, - category: "radiated", - state:"solid", - density :2045, - color: ["#5e705a","#83ab7b","#474747"], - tempHigh: 1440, - stateHigh: ["molten_nickel","molten_iron","molten_tin","fallout"], - reactions: { - "water": { elem2:"radiated_water", chance:0.7 }, - "foam": { elem1:["tin","nickel","iron"] }, - } +behavior: behaviors.WALL, +category: "radiated", +state:"solid", +density :2045, +color: ["#5e705a","#83ab7b","#474747"], +tempHigh: 1440, +stateHigh: ["molten_nickel","molten_iron","molten_tin","fallout"], +reactions: { + "water": { elem2:"radiated_water", chance:0.7 }, + "foam": { elem1:["tin","nickel","iron"] }, +} }; elements.rad_ice = { - behavior: behaviors.WALL, - category: "radiated", - state:"solid", - density: 1905, - color: ["#81d79c","#68b899","#68abb8"], - hidden: true, - temp: -6, - tempHigh: 5, - stateHigh: ["radiated_water","water"], - reactions: { - "snow": { elem2:"dirty_water" }, - "water": { elem2:"radiated_water" }, - } +behavior: behaviors.WALL, +category: "radiated", +state:"solid", +density: 1905, +color: ["#81d79c","#68b899","#68abb8"], +hidden: true, +temp: -6, +tempHigh: 5, +stateHigh: ["radiated_water","water"], +reactions: { + "snow": { elem2:"dirty_water" }, + "water": { elem2:"radiated_water" }, +} } elements.rad_snow = { - behavior: behaviors.POWDER, - category: "radiated", - state:"powder", - density: 1500, - color: ["#9effe4","#b5fffd","#d4fff1"], - temp: -2, - tempHigh: 21, - stateHigh: "radiated_water", +behavior: behaviors.POWDER, +category: "radiated", +state:"powder", +density: 1500, +color: ["#9effe4","#b5fffd","#d4fff1"], +temp: -2, +tempHigh: 21, +stateHigh: "radiated_water", }; elements.rad_rock = { - behavior: behaviors.POWDER, - category: "land", - state: "powder", - density: 2790, - color: ["#34382d","#3f4633","#595a4d"], - tempHigh: 1200, - stateHigh: ["magma","fallout"], - reactions: { - "water": { elem2:"dirty_water" }, - "salt_water": { elem2:"dirty_water" }, - "sugar_water": { elem2:"dirty_water" }, - "seltzer": { elem2:"dirty_water" }, - "bleach": {elem2: "rock", chance:0.1 }, - "rad_cleaner": { elem1:"rock" }, - "foam": { elem1:"rock" }, - "juice": { elem2: null }, - "blood": { elem2:"infection" }, - "grass": { elem2:"dead_plant" }, - "plant": { elem2:"dead_plant" }, - "cell": { elem2:"cancer" }, - "worm": { elem2:"ash" }, - "glass": { elem2:"rad_glass"}, - "glass_shard": { elem2:"rad_shard" }, - } +behavior: behaviors.POWDER, +category: "land", +state: "powder", +density: 2790, +color: ["#34382d","#3f4633","#595a4d"], +tempHigh: 1200, +stateHigh: ["magma","fallout"], +reactions: { + "water": { elem2:"dirty_water" }, + "salt_water": { elem2:"dirty_water" }, + "sugar_water": { elem2:"dirty_water" }, + "seltzer": { elem2:"dirty_water" }, + "bleach": {elem2: "rock", chance:0.1 }, + "rad_cleaner": { elem1:"rock" }, + "foam": { elem1:"rock" }, + "juice": { elem2: null }, + "blood": { elem2:"infection" }, + "grass": { elem2:"dead_plant" }, + "plant": { elem2:"dead_plant" }, + "cell": { elem2:"cancer" }, + "worm": { elem2:"ash" }, + "glass": { elem2:"rad_glass"}, + "glass_shard": { elem2:"rad_shard" }, +} }; elements.rad_cleaner = { - behavior: behaviors.WALL, - category: "machines", - state: "solid", - density: 2500, - color: ["#383838","#212220"], - desc: "clean radiated elements", - tempHigh: 1250, - stateHigh: ["fallout","molten_plastic","steam"], - reactions: { - "radiated_water": {elem2:"water" }, - "polluted_air": {elem2: "oxygen"}, - "rad_snow": {elem2: "snow"}, - "rad_rock": {elem2: "rock"}, - } - }; +behavior: behaviors.WALL, +category: "machines", +state: "solid", +density: 2500, +color: ["#383838","#212220"], +desc: "clean radiated elements", +tempHigh: 1250, +stateHigh: ["fallout","molten_plastic","steam"], +reactions: { + "radiated_water": {elem2:"water" }, + "polluted_air": {elem2: "oxygen"}, + "rad_snow": {elem2: "snow"}, + "rad_rock": {elem2: "rock"}, + "radiated_metal": {elem2: ["nickel","tin","iron"], }, + "fallout": {elem2: "rock", }, +} +}; elements.rad_meat = { - behavior: behaviors.STURDYPOWDER, - category: "food", - state: "solid", - density: 1500, - color: ["#e8fc03","#f0b446","#92f046"], - tempHigh: 120, - stateHigh: ["rotten_meat","fallout"], - tempLow:-12, - stateLow: ["frozen_meat","radiation"], - reactions: { - "water": {elem2: "radiated_water", chance:0.4}, - "salt_water": { elem2: "radiated_water" }, - } +behavior: behaviors.STURDYPOWDER, +category: "food", +state: "solid", +density: 1500, +color: ["#e8fc03","#f0b446","#92f046"], +tempHigh: 120, +stateHigh: ["rotten_meat","fallout"], +tempLow:-12, +stateLow: ["frozen_meat","radiation"], +reactions: { + "water": {elem2: "radiated_water", chance:0.4}, + "salt_water": { elem2: "radiated_water" }, +} }; elements.lemon = { - behavior: behaviors.POWDER, - category: "food", - state: "powder", - density: 800, - color: ["#f9f934", "#f1ee20",], - tempHigh: 90, - stateHigh: "hot_lemon", - tempLow: -2, - stateLow: "wrinkled_lemon", - burn: 120, - burntime: 600, - burnInto: "ash", - breakInto: [ "lemon_water", "lemon_zest", ], - reactions: { - "water": { elem2: "lemon_water", chance:0.2}, - "salt_water": { elem2: [ "lemon_water", "water",] }, - "dirty_water": { elem1: "rotten_lemon", }, - "soda": { elem2: "lemon_soda", }, - "head": { elem1: "saliva", chance:0.75}, - "milk": { elem2: "lemon_milk", }, - "tea": { elem2: "lemon_tea", }, - "poison": { elem2: "rotten_lemon", }, - } +behavior: behaviors.POWDER, +category: "food", +state: "powder", +density: 800, +color: ["#f9f934", "#f1ee20",], +tempHigh: 90, +stateHigh: "hot_lemon", +tempLow: -2, +stateLow: "wrinkled_lemon", +burn: 120, +burntime: 600, +burnInto: "ash", +breakInto: [ "lemon_water", "lemon_zest", ], +reactions: { + "water": { elem2: "lemon_water", chance:0.2}, + "salt_water": { elem2: [ "lemon_water", "water",] }, + "dirty_water": { elem1: "rotten_lemon", }, + "soda": { elem2: "lemon_soda", }, + "head": { elem1: "saliva", chance:0.75}, + "milk": { elem2: "lemon_milk", }, + "tea": { elem2: "lemon_tea", }, + "poison": { elem2: "rotten_lemon", }, +} }; elements.hot_lemon = { - behavior: behaviors.POWDER, - state: "powder", - category: "food", - hidden: true, - density: 820, - color: ["#8a6d1e","#70661a",], - hidden: true, - temp: 90, - tempHigh: 200, - stateHigh: "fire", - tempLow: 30, - stateLow: "wrinkled_lemon", - burn: 120, - burntime: 600, - burnInto: "ash", - reactions: { - "water": { elem2: "lemon_water", }, - } +behavior: behaviors.POWDER, +state: "powder", +category: "food", +hidden: true, +density: 820, +color: ["#8a6d1e","#70661a",], +hidden: true, +temp: 90, +tempHigh: 200, +stateHigh: "fire", +tempLow: 30, +stateLow: "wrinkled_lemon", +burn: 120, +burntime: 600, +burnInto: "ash", +reactions: { + "water": { elem2: "lemon_water", }, +} }; elements.leather = { - behavior: behaviors.SUPPORTPOWDER, - color: ["#3f261d","#664f40",], - state: "powder", - category: "powders", - tempHigh: 200, - stateHigh: "fire", - breakInto: "dust", - burn: 20, - burntime: 200, - burnInto: "ash", +behavior: behaviors.SUPPORTPOWDER, +color: ["#3f261d","#664f40",], +state: "powder", +category: "powders", +tempHigh: 200, +stateHigh: "fire", +breakInto: "dust", +burn: 20, +burntime: 200, +burnInto: "ash", }; elements.wrinkled_lemon = { - behavior: behaviors.POWDER, - color: ["#999543","#a6a03a",], - state: "powder", - category: "food", - tempHigh: 90, - stateHigh: "hot_lemon", - hidden: true, - burn: 120, - burntime: 600, - burnInto: "ash", - reactions: { - "water": { elem2: "lemon_water", chance: 0.2, - } - } +behavior: behaviors.POWDER, +color: ["#999543","#a6a03a",], +state: "powder", +category: "food", +tempHigh: 90, +stateHigh: "hot_lemon", +hidden: true, +burn: 120, +burntime: 600, +burnInto: "ash", +reactions: { +"water": { elem2: "lemon_water", chance: 0.2, +} +} }; elements.coolant = { - color: "#0eebeb", - behavior: [ - "XX|CO:4|XX", - "CO:4|HT:1|CO:4", - "XX|CO:4|XX", - ], - category: "liquids", - state: "liquid", - insulate: true, - density: 1000, - darkText: false, - tempHigh: 500, - hidden: true, - stateHigh: "steam", +color: "#0eebeb", +behavior: [ + "XX|CO:4|XX", + "CO:4|HT:1|CO:4", + "XX|CO:4|XX", +], +category: "liquids", +state: "liquid", +insulate: true, +density: 1000, +darkText: false, +tempHigh: 500, +hidden: true, +stateHigh: "steam", }; elements.arkycite = { - color: "#46ab63", - behavior: behaviors.LIQUID, - category: "liquids", - state: "liquid", - density: 997, - darkText: false, - tempHigh: 400, - hidden: true, - burn: 40, - stateHigh: "fire", - burntime: 500, +color: "#46ab63", +behavior: behaviors.LIQUID, +category: "liquids", +state: "liquid", +density: 997, +darkText: false, +tempHigh: 400, +hidden: true, +burn: 40, +stateHigh: "fire", +burntime: 500, }; elements.lemon_water = { - color: ["#faec52","#faee69",], - behavior: behaviors.LIQUID, - category: "liquids", - state: "liquid", - density: 900, - tempHigh: 100, - stateHigh: ["steam","fragrance",], - hidden: true, - tempLow: -10, - stateLow: "lemon_ice", - reactions: { - "balloon": { elem2: "helium", chance: 0.5, }, - "head": { elem1: "saliva", chance: 0.2, }, - } +color: ["#faec52","#faee69",], +behavior: behaviors.LIQUID, +category: "liquids", +state: "liquid", +density: 900, +tempHigh: 100, +stateHigh: ["steam","fragrance",], +hidden: true, +tempLow: -10, +stateLow: "lemon_ice", +reactions: { +"balloon": { elem2: "helium", chance: 0.5, }, +"head": { elem1: "saliva", chance: 0.2, }, +} }; elements.lemon_zest = { - color: ["#ded254","#ccc03d",], - behavior: behaviors.POWDER, - category: "trashes", - state: "powder", - density: 1000, - hidden: true, - tempHigh: 350, - stateHigh: "fire", - breakInto: "lemon_water", - burn: 60, - burntime: 200, - burnInto: "smoke" +color: ["#ded254","#ccc03d",], +behavior: behaviors.POWDER, +category: "trashes", +state: "powder", +density: 1000, +hidden: true, +tempHigh: 350, +stateHigh: "fire", +breakInto: "lemon_water", +burn: 60, +burntime: 200, +burnInto: "smoke" }; elements.saliva = { - color: ["#a6f5f0","#b6f0ec",], - behavior: behaviors.LIQUID, - category: "liquids", - state: "liquid", - density: 1280, - tempHigh: 105, - stateHigh: ["steam","fragrance"], - tempLow: -5, - stateHigh: "saliva_ice", - reactions: { - "water": { elem1: null, chance: 0.5, elem2: "dirty_water", chance: 0.5, - } - } +color: ["#a6f5f0","#b6f0ec",], +behavior: behaviors.LIQUID, +category: "liquids", +state: "liquid", +density: 1280, +tempHigh: 105, +stateHigh: ["steam","fragrance"], +tempLow: -5, +stateHigh: "saliva_ice", +reactions: { +"water": { elem1: null, chance: 0.5, elem2: "dirty_water", chance: 0.5, +} +} }; elements.lemon_milk = { - color: ["#f5f2c4","#f7f4b2",], - behavior: behaviors.LIQUID, - category: "liquids", - state: "liquid", - density: 1002, - tempHigh: 500, - stateHigh: "smoke", - tempLow: -2, - stateLow: "frozen_yogurt", - stateLowColor: ["#f5f3cb","#f7f5bc"], - reactions: { - "bacteria": { elem1: "yogurt", }, - } +color: ["#f5f2c4","#f7f4b2",], +behavior: behaviors.LIQUID, +category: "liquids", +state: "liquid", +density: 1002, +tempHigh: 500, +stateHigh: "smoke", +tempLow: -2, +stateLow: "frozen_yogurt", +stateLowColor: ["#f5f3cb","#f7f5bc"], +reactions: { +"bacteria": { elem1: "yogurt", }, +} }; elements.lemon_soda = { - color: ["#f5c842","#edcc68",], - behavior: behaviors.LIQUID, - category: "liquids", - state: "liquid", - density: 1240, - tempHigh: 140, - stateHigh: ["carbon_dioxide", "smoke",], - reactions: { - "poison": { elem1: null, } - } +color: ["#f5c842","#edcc68",], +behavior: behaviors.LIQUID, +category: "liquids", +state: "liquid", +density: 1240, +tempHigh: 140, +stateHigh: ["carbon_dioxide", "smoke",], +reactions: { +"poison": { elem1: null, } +} }; elements.saliva_ice = { - color: ["#97fcfb","#bcf7f6",], - behavior: behaviors.SOLID, - category: "states", - state: "solid", - density: 1300, - tempHigh: 5, - stateHigh: "saliva", +color: ["#97fcfb","#bcf7f6",], +behavior: behaviors.SOLID, +category: "states", +state: "solid", +density: 1300, +tempHigh: 5, +stateHigh: "saliva", }; elements.lemon_tea = { - color: ["#dec85b","#edd351",], - behavior: behaviors.LIQUID, - category: "liquids", - state: "liquid", - density: 1580, - tempHigh: 280, - stateHigh: ["fragrance","smoke","smoke",], - tempLow: -2, - stateLowColor: ["#e8cf8b","#f0dca5",], - stateLow: "tea_ice", - reactions: { - "sugar": { elem2: null, }, - } +color: ["#dec85b","#edd351",], +behavior: behaviors.LIQUID, +category: "liquids", +state: "liquid", +density: 1580, +tempHigh: 280, +stateHigh: ["fragrance","smoke","smoke",], +tempLow: -2, +stateLowColor: ["#e8cf8b","#f0dca5",], +stateLow: "tea_ice", +reactions: { +"sugar": { elem2: null, }, +} }; elements.rotten_lemon = { - color: ["#e3f283","#cdcf6b"], - behavior: behaviors.POWDER, - category: "food", - state: "powder", - density: 1890, - tempHigh: 200, - stateHigh: ["stench","ash",], - reactions: { - "water": { elem2: "dirty_water" }, - } +color: ["#e3f283","#cdcf6b"], +behavior: behaviors.POWDER, +category: "food", +state: "powder", +density: 1890, +tempHigh: 200, +stateHigh: ["stench","ash",], +reactions: { +"water": { elem2: "dirty_water" }, } +}; + +elements.cow = { + color: ["#d9d9d9","#616161",], + behavior: [ + "XX|XX|XX", + "XX|FX%5.0|M2%5.0 AND BO", + "XX|M1|XX",], + category: "life", + state: "powder", + density: 2800, + tempHigh: 250, + stateHigh: "cooked_meat", + tempLow: -10, + stateLow: "frozen_meat", + reactions: { + "water": { elem2: null, chance: 0.2,}, + "milk": { elem2: null, chance: 0.1, }, + "alcohol": { elem2: null, chance: 0.21, }, + "poison": { elem1: "rotten_meat", elem2: null, }, + "grass": { elem2: null, }, + "plague": { elem1: "rotten_meat", chance: 0.3, }, + "worm": { elem2: null, }, + "flea": { elem2: null, }, + } +}; + +elements.hazmat_head = { + color: ["#404040","#1a1a1a","#737373"], + category: "life", + hidden: true, + density: 1080, + state: "solid", + conduct: .05, + temp: 40, + tempHigh: 3500, + stateHigh: ["ash","iron",], + tempLow: -180, + stateLow: "frozen_meat", + breakInto: ["blood","meat","bone","metal_scrap"], + forceSaveColor: true, + reactions: { + "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 }, + "light": { stain1:"#fff154" }, + }, + 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 == "hazmat_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 > 40) { pixel.temp -= 1; } + else if (pixel.temp < 40) { pixel.temp += 1; } + } +}; + +elements.hazmat_body = { + color: ["#ffdf4f","#e8c00e","#ffd412"], + category: "life", + hidden: true, + density: 1570, + state: "solid", + conduct: .25, + temp: 39, + tempHigh: 3500, + stateHigh: ["metal_scrap","ash"], + tempLow: -180, + stateLow: "frozen_meat", + breakInto: ["blood","meat","bone","metal_scrap","radiation","fallout",], + forceSaveColor: true, + reactions: { + "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 }, + "diamond": { 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 == "hazmat_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 == "hazmat_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 > 39) { pixel.temp -= 1; } + else if (pixel.temp < 39) { pixel.temp += 1; } + } + + } +}; + +elements.hazmat_human = { + // color: ["#404040","#1a1a1a","#737373"], + color: ["#404040","#1a1a1a","#737373"], + category: "life", + properties: { + dead: false, + dir: 1, + panic: 0 + }, + tick: function(pixel) { + if (isEmpty(pixel.x, pixel.y+1)) { + createPixel("hazmat_body", pixel.x, pixel.y+1); + pixel.element = "hazmat_head"; + } + else if (isEmpty(pixel.x, pixel.y-1)) { + createPixel("hazmat_head", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].color = pixel.color; + pixel.element = "hazmat_body"; + pixel.color = pixelColorPick(pixel) + } + else { + deletePixel(pixel.x, pixel.y); + } + }, + related: ["hazmat_body","hazmat_head"], + cooldown: defaultCooldown, + forceSaveColor: true, +}; + +elements.zombie_head = { + color: ["#57f542","#43de2f","#46c435"], + category: "life", + hidden: true, + density: 1025, + state: "solid", + conduct: .07, + temp: 28, + tempHigh: 320, + stateHigh: ["ash","zombie_virus",], + tempLow: -45, + stateLow: ["frozen_meat","zombie_virus",], + breakInto: ["infection","rotten_meat","bone","zombie_virus",], + forceSaveColor: true, + reactions: { + "head": { elem2: ["rotten_meat","zombie",], chance:0.8, }, + "body": { elem2: ["rotten_meat","zombie",], chance:0.5, }, + "oxygen": { elem2:"carbon_dioxide", chance:0.5 }, + "rotten_meat": { elem2: null, chance:0.5 }, + "meat": { elem2:null, chance:0.1 }, + "cooked_meat": { elem2:null, chance:0.1 }, + "cured_meat": { elem2:null, chance:0.1 }, + "light": { stain1:"#45eb2f" }, + }, + 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 == "zombie_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 > 28) { pixel.temp -= 1; } + else if (pixel.temp < 28) { pixel.temp += 1; } + } +}; + +elements.zombie_body = { + color: ["#2d7ecf","#4d94db","#65a175",], + category: "life", + hidden: true, + density: 1520, + state: "solid", + conduct: .29, + temp: 29, + tempHigh: 350, + stateHigh: ["zombie_virus","ash"], + tempLow: -180, + stateLow: ["frozen_meat","zombie_virus",], + breakInto: ["infection","rotten_meat","bone","zombie_virus",], + forceSaveColor: true, + reactions: { + "head": { elem2: "zombie", }, + "body": { elem2: "zombie", }, + }, + + 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 == "zombie_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 == "zombie_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 > 29) { pixel.temp -= 1; } + else if (pixel.temp < 29) { pixel.temp += 1; } + } + + } +}; + +elements.zombie = { + // color: ["#404040","#1a1a1a","#737373"], + color: ["#57f542","#43de2f","#46c435"], + category: "life", + properties: { + dead: false, + dir: 1, + panic: 0, + }, + tick: function(pixel) { + if (isEmpty(pixel.x, pixel.y+1)) { + createPixel("zombie_body", pixel.x, pixel.y+1); + pixel.element = "zombie_head"; + } + else if (isEmpty(pixel.x, pixel.y-1)) { + createPixel("zombie_head", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].color = pixel.color; + pixel.element = "zombie_body"; + pixel.color = pixelColorPick(pixel) + } + else { + deletePixel(pixel.x, pixel.y); + } + }, + related: ["zombie_body","zombie_head"], + cooldown: defaultCooldown, + forceSaveColor: true, +}; + +elements.zombie_virus = { + behavior: behaviors.DGAS, + color: ["#660266","#bd06bd","#f041f0",], + category: "special", + density: 30, + state: "gas", + reactions: { + "head": { elem2: ["zombie","rotten_meat",], chance: 0.2, }, + "body": { elem2: ["zombie","rotten_meat",], chance: 0.2, }, + } +} + +elements.matter = { + behavior: behaviors.GAS, + color: ["#c4f8ff","#b0f6ff","#9ccfd6",], + darkText: true, + category: "energy", + density: 2.20, + state: "gas", + reactions: { + "antimatter": { elem1: "explosion", }, + "positron": { elem1: "explosion", }, + "electron": { elem1: "explosion", }, + } +}; +elements.particle_accelerator_left = { + behavior: behaviors.SOLID, + color: ["#363aa3","#858585","#d1d1d1"], + density: 2400, + category: "machines", + state: "solid", + reactions: { + "matter": { elem2: ["accelerated_matter_left",] }, + } +}; +elements.particle_accelerator_right = { + behavior: behaviors.SOLID, + color: ["#363aa3","#858585","#d1d1d1"], + density: 2400, + category: "machines", + state: "solid", + reactions: { + "matter": { elem2: ["accelerated_matter_right",] }, + } +}; + +elements.accelerated_matter_left = { + color: ["#c0ecf0","#a8f8ff",], + behavior: [ + "M2|XX|XX", + "M1 AND XX|XX|XX", + "M2|XX|XX", + ], + hidden: true, + state: "gas", + category: "energy", + density: 2.20, + reactions: { + "accelerated_matter_right": { elem1: ["antimatter","pop",], chance: 0.3, }, + "accelerated_matter_left": { elem1: ["antimatter","pop",], chance: 0.3, }, + "antimatter": { elem1: "pop", chance: 0.01, }, + } + +}; +elements.accelerated_matter_right = { + color: ["#c0ecf0","#a8f8ff",], + behavior: [ + "XX|XX|M2", + "XX|XX|M1 AND XX", + "XX|XX|M2", + ], + hidden: true, + state: "gas", + category:"energy", + density: 2.20, + reactions: { + "accelerated_matter_left": { elem1: ["antimatter","pop",], chance: 0.3, }, + "accelerated_matter_right": { elem1: ["antimatter","pop",], chance: 0.3, }, + "antimatter": { elem1: "pop", chance: 0.01, }, + + } + +};