Merge branch 'R74nCom:main' into main
This commit is contained in:
commit
28bf2bd364
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"#lang.name": "Deutsch",
|
||||
"#lang.credit": "pirany",
|
||||
"#lang.credit": "pirany, squarescreamyt",
|
||||
"land":"Land",
|
||||
"liquids":"Flüssigkeiten",
|
||||
"life":"Leben",
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
"ant":"Ameise",
|
||||
"fly":"Fliege",
|
||||
"firefly":"Glühwürmchen",
|
||||
"hive":"Nest",
|
||||
"hive":"Bienenstock",
|
||||
"bee":"Biene",
|
||||
"stink_bug":"Wanze",
|
||||
"dead_bug":"Töter_Käfer",
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@
|
|||
"bamboo":"kasi_palisa",
|
||||
"iron":"",
|
||||
"copper":"",
|
||||
"gold":"",
|
||||
"gold":"kiwen_mani",
|
||||
"steel":"",
|
||||
"nickel":"",
|
||||
"zinc":"",
|
||||
|
|
@ -243,14 +243,14 @@
|
|||
"gallium":"kiwen_pimeja_walo_pi_wile_kama_telo",
|
||||
"molten_gallium":"telo_pimeja_walo_pi_seli",
|
||||
"gallium_gas":"kon_pimeja_walo_pi_seli_mute",
|
||||
"rose_gold":"kiwen_jelo_mute_pi_loje_walo",
|
||||
"purple_gold":"kiwen_jelo_mute_pi_loje_laso",
|
||||
"blue_gold":"kiwen_jelo_mute_pi_laso_sewi",
|
||||
"electrum":"kiwen_jelo_mute_pi_laso_kasi",
|
||||
"rose_gold":"kiwen_mani_pi_loje_walo",
|
||||
"purple_gold":"kiwen_mani_pi_loje_laso",
|
||||
"blue_gold":"kiwen_mani_pi_laso_sewi",
|
||||
"electrum":"kiwen_mani_pi_laso_kasi",
|
||||
"pyrite":"",
|
||||
"solder":"",
|
||||
"molten_copper":"",
|
||||
"molten_gold":"",
|
||||
"molten_gold":"telo_seli_pi_kiwen_mani",
|
||||
"molten_silver":"",
|
||||
"molten_iron":"",
|
||||
"molten_nickel":"",
|
||||
|
|
@ -301,13 +301,13 @@
|
|||
"crumb":"pan_ko",
|
||||
"baked_batter":"pan_pi_ko_telo_pan",
|
||||
"wheat":"",
|
||||
"candy":"",
|
||||
"candy":"kiwen_suwi",
|
||||
"coffee_bean":"kili_pi_telo_pimeja_loje",
|
||||
"coffee_ground":"ko_kili_pi_telo_pimeja_loje",
|
||||
"nut":"kili_lili_pi_loje_pimeja",
|
||||
"nut_meat":"ko_kili_lili_pi_loje_pimeja",
|
||||
"nut_butter":"ko_telo_pi_kili_loje_pimeja",
|
||||
"jelly":"",
|
||||
"jelly":"ko_telo_pi_kili",
|
||||
"baking_soda":"",
|
||||
"yogurt":"ko_walo_pi_telo_walo",
|
||||
"frozen_yogurt":"ko_walo_lete_pi_telo_walo",
|
||||
|
|
@ -374,8 +374,8 @@
|
|||
"smog":"",
|
||||
"stench":"",
|
||||
"liquid_stench":"",
|
||||
"fragrance":"",
|
||||
"perfume":"",
|
||||
"fragrance":"kon_pi_pona_tawa_nena",
|
||||
"perfume":"telo_pi_pona_tawa_nena",
|
||||
"cyanide":"",
|
||||
"cyanide_gas":"",
|
||||
"ozone":"",
|
||||
|
|
@ -409,7 +409,7 @@
|
|||
"uranium":"",
|
||||
"molten_uranium":"",
|
||||
"diamond":"",
|
||||
"gold_coin":"",
|
||||
"gold_coin":"mani",
|
||||
"rust":"",
|
||||
"oxidized_copper":"",
|
||||
"alga":"",
|
||||
|
|
@ -528,9 +528,9 @@
|
|||
"grease": "telo_jelo_pi_moku_soweli",
|
||||
"fat": "kiwen_walo_pi_moku_soweli",
|
||||
"potassium": "kiwen_pi_telo_pakala",
|
||||
"molten_potassium": "",
|
||||
"molten_potassium": "telo_seli_pi_kiwen_telo_pakala",
|
||||
"magnesium": "kiwen_pi_kiwen_walo_sijelo",
|
||||
"molten_magnesium": "",
|
||||
"molten_magnesium": "telo_seli_pi_kiwen_walo_sijelo",
|
||||
"sandstorm": "",
|
||||
"caustic_potash": "",
|
||||
"antibomb": "kiwen_pakala_pi_pana_ijo",
|
||||
|
|
|
|||
38
lang/vi.json
38
lang/vi.json
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"#lang.name": "Tiếng Việt",
|
||||
"#lang.credit": "VoidInstructions, NguyenChiBao, SalmonFishy",
|
||||
"#lang.font": "Arial",
|
||||
"#lang.font": "Vietnamese_Pixel",
|
||||
"land": "Đất đai",
|
||||
"liquids": "Chất lỏng",
|
||||
"life": "Sự sống",
|
||||
|
|
@ -524,21 +524,21 @@
|
|||
"molten_potassium_salt": "Muối kali nóng chảy",
|
||||
"molten_sodium_acetate": "Natri axetat nóng chảy",
|
||||
"frozen_nitro": "Nitro đóng băng",
|
||||
"cured_meat": "",
|
||||
"nut_oil": "",
|
||||
"grease": "",
|
||||
"fat": "",
|
||||
"potassium": "",
|
||||
"molten_potassium": "",
|
||||
"magnesium": "",
|
||||
"molten_magnesium": "",
|
||||
"sandstorm": "",
|
||||
"caustic_potash": "",
|
||||
"antibomb": "",
|
||||
"tornado": "",
|
||||
"earthquake": "",
|
||||
"tsunami": "",
|
||||
"blaster": "",
|
||||
"propane_ice": "",
|
||||
"molten_caustic_potash": ""
|
||||
}
|
||||
"cured_meat": "Thịt muối",
|
||||
"nut_oil": "Dầu hạt",
|
||||
"grease": "Mỡ dầu",
|
||||
"fat": "Mỡ",
|
||||
"potassium": "Kali",
|
||||
"molten_potassium": "Kali nóng chảy",
|
||||
"magnesium": "Ma-giê",
|
||||
"molten_magnesium": "Ma-giê nóng chảy",
|
||||
"sandstorm": "Bão cát",
|
||||
"caustic_potash": "Kali hiđroxit",
|
||||
"antibomb": "Phản bom",
|
||||
"tornado": "Lốc xoáy",
|
||||
"earthquake": "Động đất",
|
||||
"tsunami": "Sóng thần",
|
||||
"blaster": "Tia nổ",
|
||||
"propane_ice": "Propan đóng băng",
|
||||
"molten_caustic_potash": "Kali hiđroxit nóng chảy"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"#lang.name": "简体中文",
|
||||
"#lang.credit": "squarescreamyt",
|
||||
"#lang.credit": "squarescreamyt, pixelegend4",
|
||||
"#lang.font": "fusion-pixel-12px-monospaced-zh_hans",
|
||||
"land":"地",
|
||||
"liquids":"液体",
|
||||
"life":"生活",
|
||||
|
|
@ -420,7 +421,7 @@
|
|||
"baked_clay":"",
|
||||
"clay_shard":"",
|
||||
"porcelain_shard":"",
|
||||
"feather":"",
|
||||
"feather":"羽毛",
|
||||
"confetti":"",
|
||||
"glitter":"",
|
||||
"bead":"",
|
||||
|
|
@ -475,15 +476,15 @@
|
|||
"molten_dirt":"",
|
||||
"debug":"",
|
||||
"prop":"",
|
||||
"salt_ice":"",
|
||||
"sugar_ice":"",
|
||||
"seltzer_ice":"",
|
||||
"salt_ice":"盐水冰",
|
||||
"sugar_ice":"糖水冰",
|
||||
"seltzer_ice":"苏打水冰",
|
||||
"dirty_ice":"",
|
||||
"pool_ice":"",
|
||||
"blood_ice":"",
|
||||
"blood_ice":"血冰",
|
||||
"antibody_ice":"",
|
||||
"infection_ice":"",
|
||||
"unknown":"",
|
||||
"unknown":"未知",
|
||||
"slime_ice":"",
|
||||
"antiice":"",
|
||||
"ammonia_ice":"",
|
||||
|
|
@ -527,17 +528,17 @@
|
|||
"nut_oil": "花生油",
|
||||
"grease": "",
|
||||
"fat": "肥",
|
||||
"potassium": "",
|
||||
"molten_potassium": "",
|
||||
"magnesium": "",
|
||||
"molten_magnesium": "",
|
||||
"potassium": "钾",
|
||||
"molten_potassium": "熔融钾",
|
||||
"magnesium": "镁",
|
||||
"molten_magnesium": "熔融镁",
|
||||
"sandstorm": "",
|
||||
"caustic_potash": "",
|
||||
"caustic_potash": "氢氧化钾",
|
||||
"antibomb": "",
|
||||
"tornado": "龙卷风",
|
||||
"earthquake": "地震",
|
||||
"tsunami": "海啸",
|
||||
"blaster": "",
|
||||
"propane_ice": "",
|
||||
"molten_caustic_potash": ""
|
||||
"molten_caustic_potash": "熔融氢氧化钾"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"#lang.name": "繁體中文",
|
||||
"#lang.credit": "guinea_of_pig, Feeshmaster",
|
||||
"#lang.credit": "guinea_of_pig, Feeshmaster, squarescreamyt",
|
||||
"#lang.font": "fusion-pixel-12px-monospaced-zh_hant",
|
||||
"land":"地",
|
||||
"liquids":"液",
|
||||
"life":"生活",
|
||||
|
|
@ -523,21 +524,21 @@
|
|||
"molten_potassium_salt":"熔鉀鹽",
|
||||
"molten_sodium_acetate":"熔醋酸鈉",
|
||||
"frozen_nitro":"冰硝酸甘油",
|
||||
"cured_meat": "",
|
||||
"nut_oil": "",
|
||||
"grease": "",
|
||||
"fat": "",
|
||||
"potassium": "",
|
||||
"molten_potassium": "",
|
||||
"magnesium": "",
|
||||
"molten_magnesium": "",
|
||||
"sandstorm": "",
|
||||
"caustic_potash": "",
|
||||
"antibomb": "",
|
||||
"tornado": "",
|
||||
"earthquake": "",
|
||||
"tsunami": "",
|
||||
"blaster": "",
|
||||
"propane_ice": "",
|
||||
"molten_caustic_potash": ""
|
||||
}
|
||||
"cured_meat": "醃製肉",
|
||||
"nut_oil": "堅果油",
|
||||
"grease": "油脂",
|
||||
"fat": "脂肪",
|
||||
"potassium": "鉀",
|
||||
"molten_potassium": "熔鉀",
|
||||
"magnesium": "鎂",
|
||||
"molten_magnesium": "熔鎂",
|
||||
"sandstorm": "沙暴",
|
||||
"caustic_potash": "氢氧化鉀",
|
||||
"antibomb": "防爆",
|
||||
"tornado": "龍捲風",
|
||||
"earthquake": "地震",
|
||||
"tsunami": "海嘯",
|
||||
"blaster": "爆破器",
|
||||
"propane_ice": "丙烷冰",
|
||||
"molten_caustic_potash": "熔氢氧化鉀"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@
|
|||
<tr><td>fwibblen.js</td><td>Adds a flying creature that turns nickel into itself, and a second creature that does the same to the first one</td><td>Alice</td></tr>
|
||||
<tr><td>human_edit.js</td><td>Improvements to humans</td><td>Alice</td></tr>
|
||||
<tr><td>kopalstuff.js</td><td>Adds creatures, spirits, DNA, foods, and more</td><td>DaviStudios</td></tr>
|
||||
<tr><td>lost_souls.js</td><td>Adds souls and related elements</td><td>pixelegend4</td></tr>
|
||||
<tr><td>lost_souls.js</td><td>Adds souls and related elements, the mod can also be found <a href="url">https://github.com/HACKERPRO908/lost_souls.js</a></td><td>pixelegend4, SquareScreamYT, salmonfishy</td></tr>
|
||||
<tr><td>miscible_psoup_and_birthpool.js</td><td>Makes Primordial Soup and Birthpool mix instead of the birthpool settling to the bottom. Will be deprecated upon the release of Magical Menagerie</td><td>Alice</td></tr>
|
||||
<tr><td>mobs.js</td><td>Adds Creepers, Zombies, and Skeletons</td><td>Alice</td></tr>
|
||||
<tr><td>nocancer.js</td><td>Removes cancer from the game one tick after it is created</td><td>mollthecoder</td></tr>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// this is a epic mod
|
||||
|
||||
let heatSen = 0;
|
||||
let heatSen = null;
|
||||
elements.heatSensor = {
|
||||
|
||||
color: "#ff0000",
|
||||
|
|
@ -15,11 +15,9 @@ elements.heatSensor = {
|
|||
|
||||
|
||||
tick: function(pixel) {
|
||||
if((pixel.start == pixelTicks) && !(heatSen == 0)){
|
||||
pixel.clone.temp = heatSen
|
||||
}
|
||||
|
||||
|
||||
if (pixel.temp > pixel.clone ) {
|
||||
if (pixel.temp >= heatSen ) {
|
||||
pixel.charge = 1;
|
||||
}
|
||||
|
||||
|
|
@ -183,7 +181,7 @@ elements.molten_titanium = {
|
|||
desc: "Melted version of titanium",
|
||||
temp : 3000,
|
||||
conduct: 0,
|
||||
color: "#d16e04",
|
||||
color: ["#d16e04","#FFCC99","#FF6600","#FF7F50","#DC143C","#800020"],
|
||||
tempLow:2999,
|
||||
stateLow: "titanium",
|
||||
category: "states",
|
||||
|
|
@ -577,6 +575,7 @@ compactPi = "dead_plant";
|
|||
compactPi2 = "coal";
|
||||
elements.compacter = {
|
||||
color: "#4e524f",
|
||||
conduct : 1,
|
||||
desc: "Turns dead plants into coal and needs power",
|
||||
tick: function(pixel) {
|
||||
if (pixel.start === pixelTicks) {
|
||||
|
|
@ -650,17 +649,18 @@ elements.compacter = {
|
|||
}
|
||||
}
|
||||
else if (!pixel.con ) { //suck up pixel
|
||||
if ((newPixel.element == pixel.CompactEl) || (newPixel.element == pixel.CompactEl2) && pixel.charge > 0 ) {
|
||||
|
||||
pixel.con = newPixel;
|
||||
changePixel(newPixel, "coal")
|
||||
newPixel.color = elements.coal.color
|
||||
deletePixel(newPixel.x,newPixel.y);
|
||||
pixel.con.x = pixel.x;
|
||||
pixel.con.y = pixel.y;
|
||||
pixel.con.del;
|
||||
moved = true;
|
||||
break;
|
||||
if ((newPixel.element == pixel.CompactEl) || (newPixel.element == pixel.CompactEl2) ) {
|
||||
if (pixel.charge > 0) {
|
||||
pixel.con = newPixel;
|
||||
changePixel(newPixel, "coal")
|
||||
newPixel.color = elements.coal.color
|
||||
deletePixel(newPixel.x,newPixel.y);
|
||||
pixel.con.x = pixel.x;
|
||||
pixel.con.y = pixel.y;
|
||||
pixel.con.del;
|
||||
moved = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1047,7 +1047,7 @@ elements.grinder = {
|
|||
break;
|
||||
}
|
||||
}
|
||||
else if (!pixel.con && !doNotEF.includes(newPixel.element) ) { //suck up pixel
|
||||
else if (!pixel.con && !doNotEF.includes(newPixel.element)) { //suck up pixel
|
||||
// (!pixel.con && !(newPixel.element === "e_grinder") && pixel.charge > 0 && !(newPixel.element.movable))
|
||||
// (!pixel.con && !(newPixel.element === "grinder") && !(newPixel.element === "e_grinder") && !(newPixel.element === "filter") && (newPixel.element.movable))
|
||||
//!(newPixel.element === "grinder") && !(newPixel.element === "e_grinder")
|
||||
|
|
@ -1225,6 +1225,8 @@ elements.e_grinder = {
|
|||
insulate: true,
|
||||
}
|
||||
|
||||
|
||||
|
||||
elements.quickSand = {
|
||||
color: elements.sand.color,
|
||||
category: "land",
|
||||
|
|
@ -1233,3 +1235,498 @@ elements.quickSand = {
|
|||
density: 500,
|
||||
conduct: 0.02,
|
||||
}
|
||||
|
||||
elements.Acid_Bomb = {
|
||||
color: "#524c41",
|
||||
category: "weapons",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
ignore: "Acid_Bomb",
|
||||
excludeRandom: true,
|
||||
behavior: behaviors.POWDER,
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:15>acid,acid_gas,acid_gas|M2",
|
||||
],
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
elements.E_Spout = {
|
||||
color: "#606378",
|
||||
behavior: behaviors.WALL,
|
||||
behaviorOn: [
|
||||
"XX|CR:water|XX",
|
||||
"CR:water|XX|CR:water",
|
||||
"XX|CR:water|XX",
|
||||
],
|
||||
category:"special",
|
||||
tempHigh: 1455.5,
|
||||
stateHigh: "molten_steel",
|
||||
conduct: 1,
|
||||
}
|
||||
|
||||
|
||||
elements.DestroyableWire = {
|
||||
color: "#4d0a03",
|
||||
behavior: behaviors.WALL,
|
||||
category: "machines",
|
||||
insulate: true,
|
||||
conduct: 1,
|
||||
breakInto : "metal_scrap",
|
||||
noMix: true,
|
||||
}
|
||||
|
||||
|
||||
elements.pusherRight = {
|
||||
behavior: behaviors.WALL,
|
||||
ignore: "pushTest",
|
||||
tick: function(pixel) {
|
||||
|
||||
for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
var coords = adjacentCoords[i];
|
||||
var x = pixel.x + coords[0];
|
||||
var y = pixel.y + coords[1];
|
||||
if (!isEmpty(x,y,true)) {
|
||||
let sensed = pixelMap[x][y];
|
||||
if (!(sensed.element == "pusherRight") ) {
|
||||
|
||||
|
||||
var newX = sensed.x + 1;
|
||||
var newY = sensed.y ;
|
||||
|
||||
tryMove(sensed,newX,newY);
|
||||
//break;
|
||||
}
|
||||
}
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
conduct: 1,
|
||||
movable: true,
|
||||
category:"machines",
|
||||
darkText: true,
|
||||
hardness: 1,
|
||||
|
||||
|
||||
}
|
||||
|
||||
elements.pusherLeft = {
|
||||
behavior: behaviors.WALL,
|
||||
ignore: "pushTest",
|
||||
tick: function(pixel) {
|
||||
|
||||
for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
var coords = adjacentCoords[i];
|
||||
var x = pixel.x + coords[0];
|
||||
var y = pixel.y + coords[1];
|
||||
if (!isEmpty(x,y,true)) {
|
||||
let sensed = pixelMap[x][y];
|
||||
if (!(sensed.element == "pusherLeft") ) {
|
||||
|
||||
|
||||
var newX = sensed.x - 1;
|
||||
var newY = sensed.y ;
|
||||
|
||||
tryMove(sensed,newX,newY);
|
||||
//break;
|
||||
}
|
||||
}
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
conduct: 1,
|
||||
movable: true,
|
||||
category:"machines",
|
||||
darkText: true,
|
||||
hardness: 1,
|
||||
|
||||
|
||||
}
|
||||
|
||||
elements.de_leadifyer = {
|
||||
color: "#ff0000",
|
||||
tool: function(pixel) {
|
||||
if (pixel.element == "lead") {
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
}
|
||||
},
|
||||
category: "tools",
|
||||
};
|
||||
|
||||
elements.missile = {
|
||||
behavior: behaviors.WALL,
|
||||
maxSize: 1,
|
||||
|
||||
properties: {
|
||||
luanched : false,
|
||||
},
|
||||
ignore: "pushTest",
|
||||
tick: function(pixel) {
|
||||
|
||||
for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
var coords = adjacentCoords[i];
|
||||
var x = pixel.x + coords[0];
|
||||
var y = pixel.y + coords[1];
|
||||
if (!isEmpty(x,y,true)) {
|
||||
let sensed = pixelMap[x][y];
|
||||
if (!(sensed.element == "missile") && sensed.element && !(sensed.element == "fire") && !(sensed.element == "smoke") && pixel.luanched == true || pixel.y ==1 ||outOfBounds(pixel.x,pixel.y) ) {
|
||||
explodeAt(x, y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
|
||||
explodeAt(x, y, 5, "molten_metal_scrap");
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
}
|
||||
|
||||
} else if(pixel.temp >= 100) {
|
||||
|
||||
pixel.luanched = true;
|
||||
pixel.clone = "fire";
|
||||
var newX = pixel.x ;
|
||||
var newY = pixel.y - 0.5;
|
||||
let test = createPixel("fire",pixel.x,pixel.y+2);
|
||||
tryMove(pixel,newX,newY,test);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
conduct: 1,
|
||||
movable: true,
|
||||
category:"weapons",
|
||||
darkText: true,
|
||||
hardness: 1,
|
||||
|
||||
|
||||
}
|
||||
|
||||
elements.NewWater = {
|
||||
color: elements.water.color,
|
||||
behavior : behaviors.LIQUID,
|
||||
category: "test",
|
||||
state: "liquid",
|
||||
tick:function(pixel) {
|
||||
if (pixel.temp < 20) {
|
||||
pixel.color = "#317d7d";
|
||||
}
|
||||
else if (pixel.temp == 20 ) {
|
||||
pixel.color = elements.water.color;
|
||||
}
|
||||
else if (pixel.temp > 20 && pixel.temp < 30) {
|
||||
pixel.color = "#eb8634";
|
||||
}
|
||||
else if (pixel.temp > 30) {
|
||||
pixel.color = "#eb4034";
|
||||
}
|
||||
|
||||
},
|
||||
// make it work like normal water
|
||||
tempHigh: 100,
|
||||
stateHigh: "steam",
|
||||
tempLow: 0,
|
||||
stateLow: "ice",
|
||||
|
||||
heatCapacity: 4.184,
|
||||
reactions: {
|
||||
"dirt": { // React with (water reacts with dirt to make mud)
|
||||
elem1: null, // First element transforms into; in this case, water deletes itself
|
||||
elem2: "mud", // Second element transforms into; in this case, dirt turns to 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: 997,
|
||||
conduct: 0.02,
|
||||
stain: -0.5,
|
||||
extinguish: true
|
||||
}
|
||||
|
||||
elements.test1 = {
|
||||
//seed: true,
|
||||
maxSize: 1,
|
||||
behavior: behaviors.WALL,
|
||||
properties : {
|
||||
//min: 10,
|
||||
//max: 40,
|
||||
Curheight : 1,
|
||||
height : 40, //Math.floor(Math.random() * (max - min + 1)) + min,
|
||||
age: 0,
|
||||
|
||||
},
|
||||
category:"test",
|
||||
tick:function(pixel) {
|
||||
if(isEmpty(pixel.x+1,pixel.y) && pixel.Curheight < pixel.height){
|
||||
createPixel("steel",pixel.x+1,pixel.y, );
|
||||
}
|
||||
if(isEmpty(pixel.x-1,pixel.y) && pixel.Curheight < pixel.height){
|
||||
createPixel("steel",pixel.x-1,pixel.y, );
|
||||
}
|
||||
if(isEmpty(pixel.x+2,pixel.y) && pixel.Curheight < pixel.height){
|
||||
createPixel("steel",pixel.x+2,pixel.y, );
|
||||
}
|
||||
if(isEmpty(pixel.x-2,pixel.y) && pixel.Curheight < pixel.height){
|
||||
createPixel("steel",pixel.x-2,pixel.y, );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(isEmpty(pixel.x,pixel.y-39) ) {
|
||||
//var built
|
||||
createPixel("concrete",pixel.x,pixel.y-40, );
|
||||
}
|
||||
if(isEmpty(pixel.x-1,pixel.y-39) ) {
|
||||
createPixel("concrete",pixel.x-1,pixel.y-40, );
|
||||
}
|
||||
if(isEmpty(pixel.x+1,pixel.y-39 )) {
|
||||
createPixel("concrete",pixel.x+1,pixel.y-40, );
|
||||
}
|
||||
for (let i = pixel.Curheight; i < pixel.height; i++) {
|
||||
if(isEmpty(pixel.x,pixel.y-i) && pixel.Curheight < pixel.height){
|
||||
|
||||
|
||||
if(isEmpty(pixel.x-2,pixel.y-i) ) {
|
||||
createPixel("concrete",pixel.x-2,pixel.y-i, );
|
||||
}
|
||||
if(isEmpty(pixel.x+2,pixel.y-i) ) {
|
||||
createPixel("concrete",pixel.x+2,pixel.y-i, );
|
||||
}
|
||||
i+1
|
||||
pixel.Curheight +1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(pixel.age > 100) {
|
||||
changePixel(pixel,"steel");
|
||||
}
|
||||
pixel.age++
|
||||
doDefaults(pixel);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
elements.test2 = {
|
||||
//seed: true,
|
||||
maxSize: 1,
|
||||
behavior: behaviors.WALL,
|
||||
properties : {
|
||||
//min: 10,
|
||||
//max: 40,
|
||||
baseLimit : 18,
|
||||
base:1,
|
||||
|
||||
Curheight : 1,
|
||||
height : 18, //Math.floor(Math.random() * (max - min + 1)) + min,
|
||||
age: 0,
|
||||
|
||||
},
|
||||
category:"test",
|
||||
tick:function(pixel) {
|
||||
//base
|
||||
if(isEmpty(pixel.x-i,pixel.y) ) {
|
||||
createPixel("steel",pixel.x-18,pixel.y, );
|
||||
}
|
||||
for (let i = pixel.base; i < pixel.baseLimit; i++) {
|
||||
|
||||
|
||||
|
||||
if(isEmpty(pixel.x-i,pixel.y) ) {
|
||||
createPixel("steel",pixel.x-i,pixel.y, );
|
||||
}
|
||||
|
||||
i+1
|
||||
pixel.base +1;
|
||||
|
||||
}
|
||||
|
||||
for (let i = pixel.Curheight; i < pixel.height; i++) {
|
||||
|
||||
|
||||
|
||||
if(isEmpty(pixel.x,pixel.y-i) ) {
|
||||
createPixel("steel",pixel.x,pixel.y-i, );
|
||||
}
|
||||
if(isEmpty(pixel.x-18,pixel.y-i) ) {
|
||||
createPixel("steel",pixel.x-18,pixel.y-i, );
|
||||
}
|
||||
if(isEmpty(pixel.x-i,pixel.y-17) ) {
|
||||
createPixel("steel",pixel.x-i,pixel.y-17);
|
||||
}
|
||||
|
||||
i+1
|
||||
pixel.Curheight +1;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(pixel.age > 100) {
|
||||
changePixel(pixel,"steel");
|
||||
}
|
||||
pixel.age++
|
||||
doDefaults(pixel);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
tarY = null;
|
||||
tarX = null;
|
||||
|
||||
elements.guided_missile = {
|
||||
maxSize: 1,
|
||||
behavior: behaviors.WALL,
|
||||
|
||||
onSelect: function(pixel){
|
||||
|
||||
tarX = prompt("enter x");
|
||||
tarY = prompt("enter y");
|
||||
|
||||
},
|
||||
properties: {
|
||||
luanched : false,
|
||||
speed :1,
|
||||
AtY : false,
|
||||
},
|
||||
|
||||
|
||||
tick: function(pixel) {
|
||||
if(pixel.start == pixelTicks){
|
||||
|
||||
}
|
||||
for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
var coords = adjacentCoords[i];
|
||||
var x = pixel.x + coords[0];
|
||||
var y = pixel.y + coords[1];
|
||||
if (!isEmpty(x,y,true)) {
|
||||
let sensed = pixelMap[x][y];
|
||||
if (!(sensed.element == "missile") &&!(sensed.element == "guided_missile") && sensed.element && !(sensed.element == "fire") && !(sensed.element == "smoke") && pixel.luanched == true || pixel.y ==1 ||outOfBounds(pixel.x,pixel.y)) {
|
||||
explodeAt(x, y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
|
||||
explodeAt(x, y, 5, "molten_metal_scrap");
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
}
|
||||
|
||||
} else if(pixel.temp >= 100) {
|
||||
|
||||
pixel.luanched = true;
|
||||
pixel.clone = "fire";
|
||||
var newX = pixel.x ;
|
||||
var newY = pixel.y - pixel.speed;
|
||||
|
||||
|
||||
if (!(pixel.y == tarY) && pixel.y > tarY ) {
|
||||
let test = createPixel("fire",pixel.x,pixel.y+2);
|
||||
tryMove(pixel,newX,newY,test);
|
||||
pixel.AtY = true;
|
||||
|
||||
}
|
||||
else if(!(pixel.y == tarY) && pixel.y < tarY ){
|
||||
let test = createPixel("fire",pixel.x,pixel.y-2);
|
||||
tryMove(pixel,pixel.x,pixel.y + pixel.speed,test);
|
||||
pixel.AtY = true;
|
||||
|
||||
}
|
||||
else if(pixel.AtY = true) {
|
||||
if(pixel.x > tarX) {
|
||||
let test = createPixel("fire",pixel.x,pixel.y);
|
||||
tryMove(pixel,pixel.x-pixel.speed,pixel.y,test);
|
||||
}
|
||||
else if(pixel.x < tarX) {
|
||||
let test = createPixel("fire",pixel.x,pixel.y);
|
||||
tryMove(pixel,pixel.x+pixel.speed,pixel.y,test);
|
||||
|
||||
}
|
||||
else if (pixel.x == tarX){
|
||||
explodeAt(x, y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
|
||||
explodeAt(x, y, 5, "molten_metal_scrap");
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
conduct: 1,
|
||||
movable: true,
|
||||
category:"weapons",
|
||||
darkText: true,
|
||||
hardness: 1,
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
elements.room_temp.category = "tools"
|
||||
elements.uncharge.category = "tools"
|
||||
elements.unburn.category = "tools"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,255 @@
|
|||
/*
|
||||
|
||||
Vegan.js Adds all vegetables, fruits and nut to Sandboxels!
|
||||
Create by Salmonfishyy
|
||||
|
||||
|
||||
Changelog - Berries Update - v1
|
||||
- v1 feature :
|
||||
- Added Blueberries
|
||||
- Added Raspberries
|
||||
- Added Blackberries
|
||||
- Added Cranberries
|
||||
- Added Boysenberries
|
||||
- Added Elderberries
|
||||
- Added Boysenberries
|
||||
- Added Elderberries
|
||||
- Added Goji berries
|
||||
- Added Black mulberries
|
||||
- Added Black currants
|
||||
- Added Acai berries
|
||||
- Added Salmon berries
|
||||
- Added Juneberries
|
||||
- Added Cloudberries
|
||||
- Added Red Mulberries
|
||||
- Added Strawberries
|
||||
- Added Serviceberries
|
||||
- Added Huckleberries
|
||||
|
||||
*/
|
||||
|
||||
elements.blueberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#464196","#2E2B64"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#1F1C42",
|
||||
reactions: {},
|
||||
};
|
||||
elements.raspberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF0000","#FFCCCC"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FF0000",
|
||||
reactions: {},
|
||||
};
|
||||
elements.blackberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#000000","#660066"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#660066",
|
||||
reactions: {},
|
||||
};
|
||||
elements.cranberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF0000","#FF6600"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FF0000",
|
||||
reactions: {},
|
||||
};
|
||||
elements.boysenberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#660066","#CC99FF"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#CC99FF",
|
||||
reactions: {},
|
||||
};
|
||||
elements.elderberries = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#660066","#990099"]
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#990099",
|
||||
reactions: {},
|
||||
};
|
||||
elements.goji_berry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF6600","#FFCC99"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FF6600",
|
||||
reactions: {},
|
||||
};
|
||||
elements.black_mulberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#000000","#660066"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#660066",
|
||||
reactions: {},
|
||||
};
|
||||
elements."black_currants", = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#000000","#660066"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#660066",
|
||||
reactions: {},
|
||||
};
|
||||
elements.acai_berry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#660066","#990099"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#990099",
|
||||
reactions: {},
|
||||
};
|
||||
elements.salmon_berry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF6600","#FFCC99"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FF6600",
|
||||
reactions: {},
|
||||
};
|
||||
elements.june_berry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#0000FF","#CCCCFF"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#0000FF",
|
||||
reactions: {},
|
||||
};
|
||||
elements.cloud_berry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF6600","#FFCC99"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FF6600",
|
||||
reactions: {},
|
||||
};
|
||||
elements.red_mulberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF0000","#FF9999"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FF0000",
|
||||
reactions: {},
|
||||
};
|
||||
elements.huckle_berry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF0000","#FFCCCC"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FF0000",
|
||||
reactions: {},
|
||||
};
|
||||
elements.service_berry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FFFFFF","#EEEEEE"]
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#FFFFFF",
|
||||
reactions: {},
|
||||
};
|
||||
elements.strawberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#FF0000","#FF9999"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#f5589c",
|
||||
reactions: {},
|
||||
};
|
||||
elements.marionberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#3E385A","#2C0589"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#1E034A",
|
||||
reactions: {},
|
||||
};
|
||||
elements.crowberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#003447","#000000"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#000000",
|
||||
reactions: {},
|
||||
};
|
||||
elements.dewberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#502554","#3E385A"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#381E4A",
|
||||
reactions: {},
|
||||
};
|
||||
elements.fox_grape = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#C0C0C0","#6F2DA8"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#38194A",
|
||||
reactions: {},
|
||||
};
|
||||
elements.green_grape = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#DBE465","#9CE465"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#A8E4A0",
|
||||
reactions: {},
|
||||
};
|
||||
elements.purple_grape = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#502554","#3E385A"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#5D345C",
|
||||
reactions: {},
|
||||
};
|
||||
elements.witch_finger_grape = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#8B0000","#000000"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#6E65E4",
|
||||
reactions: {},
|
||||
};
|
||||
elements.chokeberry = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#8B0000","#000000"],
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#000000",
|
||||
reactions: {},
|
||||
};
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
Created by SquareScreamYT <@918475812884344852> and RealerRaddler <@914371295561535508>
|
||||
Thanks to Alice <@697799964985786450>, nousernamefound <@316383921346707468>, Adora the Transfem <@778753696804765696> and Fioushemastor <@738828785482203189> for helping :)
|
||||
|
||||
v1.10.2
|
||||
v1.10.5
|
||||
|
||||
you can support me at my youtube: https://youtube.com/@sqec
|
||||
|
||||
|
|
@ -16,7 +16,6 @@ Upcoming Features:
|
|||
- pigs, ham and bacon
|
||||
- garlic
|
||||
- stainless steel
|
||||
- chili
|
||||
- pepper plants
|
||||
- hot chocolate
|
||||
- cows and beef
|
||||
|
|
@ -329,7 +328,16 @@ Changelog (v1.10.1)
|
|||
|
||||
|
||||
Changelog (v1.10.2)
|
||||
- added chocolate chip, sprinkles and topping explosions
|
||||
- added sprinkle explosions
|
||||
|
||||
|
||||
|
||||
|
||||
Changelog (v1.10.5)
|
||||
- added chilli
|
||||
- added chilli seed, stem and leaves
|
||||
- added chilli powder
|
||||
- added hot sauce
|
||||
|
||||
|
||||
|
||||
|
|
@ -6109,10 +6117,6 @@ elements.vanilla_stem = {
|
|||
elements.vanilla_leaves = {
|
||||
color: "#5d9c48",
|
||||
reactions: {
|
||||
"water": { elem2:"vanilla_tea", tempMin:80 },
|
||||
"salt_water": { elem2:"vanilla_tea", tempMin:80 },
|
||||
"sugar_water": { elem2:"vanilla_tea", tempMin:80 },
|
||||
"seltzer": { elem2:"vanilla_tea", tempMin:80 },
|
||||
"stench": { elem2:null, chance:0.25 },
|
||||
"steam": { elem2:"fragrance", chance:0.1 },
|
||||
"flea": { elem2:null, chance:0.01 },
|
||||
|
|
@ -6439,3 +6443,256 @@ elements.sprinkle_bomb = {
|
|||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.chilli_stem = {
|
||||
color: "#5d9c48",
|
||||
behavior: behaviors.WALL,
|
||||
reactions: {
|
||||
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
|
||||
"baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||
"bleach": { elem1:"dead_plant", elem2:null, chance:0.05 },
|
||||
"alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 },
|
||||
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||
"stench": { elem2:null, chance:0.25 },
|
||||
"carbon_dioxide": { elem2:"oxygen", chance:0.25 },
|
||||
},
|
||||
category:"life",
|
||||
tempHigh: 100,
|
||||
stateHigh: "dead_plant",
|
||||
tempLow: -1.66,
|
||||
stateLow: "frozen_plant",
|
||||
burn:15,
|
||||
burnTime:60,
|
||||
burnInto: "dead_plant",
|
||||
state: "solid",
|
||||
density: 1050,
|
||||
hidden: true,
|
||||
breakInto: "herb",
|
||||
breakIntoColor:"#245c1b",
|
||||
tick: function(pixel) {
|
||||
if (isEmpty(pixel.x,pixel.y+1) && pixel.grower == false && pixel.leafgrower == false) {
|
||||
movePixel(pixel,pixel.x,pixel.y+1);
|
||||
}
|
||||
if (pixel.grower == true) {
|
||||
// check if left side has stem if no set direction to right
|
||||
if (!isEmpty(pixel.x-1,pixel.y) && pixel.direction == "undefined") {
|
||||
if (pixelMap[pixel.x-1][pixel.y].element == "chilli_stem") {
|
||||
pixel.direction = "right";
|
||||
}
|
||||
}
|
||||
// same thing to set direction the left
|
||||
else if (!isEmpty(pixel.x+1,pixel.y) && pixel.direction == "undefined") {
|
||||
if (pixelMap[pixel.x+1][pixel.y].element == "chilli_stem") {
|
||||
pixel.direction = "left";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pixel.grower == true) {
|
||||
// left
|
||||
if (pixel.direction == "left") {
|
||||
if (isEmpty(pixel.x-1,pixel.y-1) && Math.random() < 0.1) {
|
||||
createPixel("chilli_leaves",pixel.x-1,pixel.y-1);
|
||||
if (isEmpty(pixel.x-2,pixel.y-2) && Math.random() < 0.2) {
|
||||
createPixel("chilli_leaves",pixel.x-2,pixel.y-2);
|
||||
if (isEmpty(pixel.x-3,pixel.y-3) && Math.random() < 0.4) {
|
||||
createPixel("chilli_leaves",pixel.x-3,pixel.y-3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// right
|
||||
else if (pixel.direction == "right") {
|
||||
if (isEmpty(pixel.x+1,pixel.y-1) && Math.random() < 0.1) {
|
||||
createPixel("chilli_leaves",pixel.x+1,pixel.y-1);
|
||||
if (isEmpty(pixel.x+2,pixel.y-2) && Math.random() < 0.2) {
|
||||
createPixel("chilli_leaves",pixel.x+2,pixel.y-2);
|
||||
if (isEmpty(pixel.x+3,pixel.y-3) && Math.random() < 0.4) {
|
||||
createPixel("chilli_leaves",pixel.x+3,pixel.y-3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pixel.age++;
|
||||
doDefaults(pixel);
|
||||
},
|
||||
properties: {
|
||||
"grower":false,
|
||||
"age":0,
|
||||
"direction":"undefined",
|
||||
}
|
||||
}
|
||||
elements.chilli_leaves = {
|
||||
color: "#5d9c48",
|
||||
reactions: {
|
||||
"water": { elem2:"chilli_tea", tempMin:80 },
|
||||
"salt_water": { elem2:"chilli_tea", tempMin:80 },
|
||||
"sugar_water": { elem2:"chilli_tea", tempMin:80 },
|
||||
"seltzer": { elem2:"chilli_tea", tempMin:80 },
|
||||
"stench": { elem2:null, chance:0.25 },
|
||||
"steam": { elem2:"fragrance", chance:0.1 },
|
||||
"flea": { elem2:null, chance:0.01 },
|
||||
"termite": { elem2:null, chance:0.01 },
|
||||
"fly": { elem2:null, chance:0.01 },
|
||||
"ant": { elem2:null, chance:0.01 },
|
||||
"stink_bug": { elem2:null, chance:0.01 },
|
||||
"yeast": {elem1:"tea", chance:0.01},
|
||||
},
|
||||
tick: function(pixel) {
|
||||
if (isEmpty(pixel.x-1,pixel.y-1) && !isEmpty(pixel.x+1,pixel.y+1) && Math.random() < 0.03) {
|
||||
createPixel("chilli",pixel.x-1,pixel.y-1);
|
||||
}
|
||||
if (isEmpty(pixel.x+1,pixel.y-1) && !isEmpty(pixel.x-1,pixel.y+1) && Math.random() < 0.03) {
|
||||
createPixel("chilli",pixel.x+1,pixel.y-1);
|
||||
}
|
||||
pixel.age++;
|
||||
doDefaults(pixel);
|
||||
},
|
||||
behavior: behaviors.WALL,
|
||||
tempHigh: 300,
|
||||
stateHigh: ["fire","smoke","smoke","smoke","ash"],
|
||||
tempLow: -2,
|
||||
stateLow: "frozen_plant",
|
||||
burn:10,
|
||||
burnTime:300,
|
||||
burnInto: ["fire","smoke","smoke","smoke","smoke","smoke","smoke","fragrance"],
|
||||
category:"life",
|
||||
state: "solid",
|
||||
density: 1400,
|
||||
isFood: true,
|
||||
hidden:true,
|
||||
breakInto: "herb",
|
||||
breakIntoColor:"#245c1b",
|
||||
},
|
||||
elements.chilli_seed = {
|
||||
color: "#806d3b",
|
||||
tick: function(pixel) {
|
||||
if (isEmpty(pixel.x,pixel.y+1)) {
|
||||
movePixel(pixel,pixel.x,pixel.y+1);
|
||||
}
|
||||
else {
|
||||
if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100) {
|
||||
if (!outOfBounds(pixel.x,pixel.y+1)) {
|
||||
var dirtPixel = pixelMap[pixel.x][pixel.y+1];
|
||||
if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") {
|
||||
changePixel(dirtPixel,"root");
|
||||
}
|
||||
}
|
||||
if (isEmpty(pixel.x,pixel.y-1)) {
|
||||
movePixel(pixel,pixel.x,pixel.y-1);
|
||||
createPixel("chilli_stem",pixel.x,pixel.y+1);
|
||||
pixel.height++;
|
||||
}
|
||||
if (pixel.height < 12 && pixel.height > 2 && pixel.height == 3) {
|
||||
if (isEmpty(pixel.x+1,pixel.y)) {
|
||||
createPixel("chilli_stem",pixel.x+1,pixel.y);
|
||||
pixelMap[pixel.x+1][pixel.y].grower = true;
|
||||
}
|
||||
}
|
||||
if (pixel.height < 12 && pixel.height > 2 && pixel.height == 9) {
|
||||
if (isEmpty(pixel.x+1,pixel.y)) {
|
||||
createPixel("chilli_stem",pixel.x+1,pixel.y);
|
||||
pixelMap[pixel.x+1][pixel.y].grower = true;
|
||||
}
|
||||
}
|
||||
if (pixel.height < 12 && pixel.height > 2 && pixel.height == 6) {
|
||||
if (isEmpty(pixel.x-1,pixel.y)) {
|
||||
createPixel("chilli_stem",pixel.x-1,pixel.y);
|
||||
pixelMap[pixel.x-1][pixel.y].grower = true;
|
||||
}
|
||||
}
|
||||
if (pixel.height > 11) {
|
||||
if (isEmpty(pixel.x-1,pixel.y) && isEmpty(pixel.x+1,pixel.y)) {
|
||||
createPixel("chilli_stem",pixel.x-1,pixel.y);
|
||||
pixelMap[pixel.x-1][pixel.y].grower = true;
|
||||
createPixel("chilli_stem",pixel.x+1,pixel.y);
|
||||
pixelMap[pixel.x+1][pixel.y].grower = true;
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
pixel.age++;
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
properties: {
|
||||
"age":0,
|
||||
"height":0
|
||||
},
|
||||
tempHigh: 100,
|
||||
stateHigh: "dead_plant",
|
||||
tempLow: -2,
|
||||
stateLow: "frozen_plant",
|
||||
burn: 65,
|
||||
burnTime: 15,
|
||||
category: "life",
|
||||
state: "solid",
|
||||
density: 1500,
|
||||
cooldown: defaultCooldown,
|
||||
seed: true,
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|XX|XX",
|
||||
"XX|M1|XX",
|
||||
],
|
||||
};
|
||||
elements.chilli = {
|
||||
color: "#ba3030",
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|XX|XX",
|
||||
"ST:chilli_leaves|M1|ST:chilli_leaves",
|
||||
],
|
||||
category:"food",
|
||||
tempHigh: 100,
|
||||
stateHigh: "dead_plant",
|
||||
burn:15,
|
||||
burnTime:60,
|
||||
burnInto: "dead_plant",
|
||||
state: "solid",
|
||||
density: 1050,
|
||||
breakInto: "chilli_powder",
|
||||
reactions: {
|
||||
"sauce": {elem1:null, elem2:"hot_sauce", chance:2}
|
||||
},
|
||||
}
|
||||
elements.chilli_powder = {
|
||||
color: "#a32121",
|
||||
reactions: {
|
||||
"stench": { elem2:null, chance:0.25 },
|
||||
"steam": { elem2:"fragrance", chance:0.1 },
|
||||
"flea": { elem2:null, chance:0.01 },
|
||||
"termite": { elem2:null, chance:0.01 },
|
||||
"fly": { elem2:null, chance:0.01 },
|
||||
"ant": { elem2:null, chance:0.01 },
|
||||
"stink_bug": { elem2:null, chance:0.01 },
|
||||
"sauce": {elem1:null, elem2:"hot_sauce", chance:2}
|
||||
},
|
||||
behavior: behaviors.POWDER,
|
||||
tempHigh: 300,
|
||||
stateHigh: ["fire","smoke","smoke","smoke","ash"],
|
||||
burn:10,
|
||||
burnTime:300,
|
||||
burnInto: ["fire","smoke","smoke","smoke","smoke","smoke","smoke","fragrance"],
|
||||
category:"food",
|
||||
state: "solid",
|
||||
density: 1400,
|
||||
isFood: true,
|
||||
}
|
||||
elements.hot_sauce = {
|
||||
color: "#a31414",
|
||||
behavior: behaviors.LIQUID,
|
||||
reactions: {
|
||||
"stench": { elem2:null },
|
||||
},
|
||||
viscosity: 2600,
|
||||
tempHigh: 260,
|
||||
stateHigh: ["steam","salt","fragrance"],
|
||||
tempLow: -2,
|
||||
category:"food",
|
||||
state: "liquid",
|
||||
density: 1031.33,
|
||||
stain: 0.01,
|
||||
isFood: true
|
||||
}
|
||||
elements.head.reactions.hot_sauce = {elem2:["smoke","fire",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null], chance:3}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
elements.ghost_particle = {
|
||||
color: "#d9d2d0",
|
||||
behavior: behaviors.GAS,
|
||||
behavior: behaviors.DGAS,
|
||||
category: "soul",
|
||||
state: "gas",
|
||||
};
|
||||
|
|
@ -9,9 +9,9 @@ elements.soul_fish = {
|
|||
color: ["#808080","#a52a2a"],
|
||||
category: "soul",
|
||||
behavior: [
|
||||
"XX|CR:flash|XX",
|
||||
"CR:flash AND M2|XX|CR:flash AND M2",
|
||||
"M1|CR:flash AND M1|M1",
|
||||
"XX|M2|M1",
|
||||
"XX|FX%2|BO",
|
||||
"XX|XX|M1",
|
||||
],
|
||||
reactions: {
|
||||
"algae": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
|
||||
|
|
@ -35,7 +35,12 @@ elements.soul_fish = {
|
|||
"cell": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"crumb": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
|
||||
"alcohol": { elem1:"meat", chance:0.001 },
|
||||
}
|
||||
},
|
||||
tempHigh: 50000,
|
||||
stateHigh: "ghost_particle",
|
||||
category:"soul",
|
||||
state: "solid",
|
||||
density: 1080,
|
||||
};
|
||||
elements.soul_anger_block = {
|
||||
color: ["#eb4034","#ed2415"],
|
||||
|
|
@ -60,7 +65,6 @@ elements.soul_dirt = {
|
|||
} else {
|
||||
pixel.methaned = true;
|
||||
};
|
||||
createPixel("ghost_particle",pixel.x,pixel.y);
|
||||
};
|
||||
pixel.age++
|
||||
},
|
||||
|
|
@ -69,3 +73,105 @@ elements.soul_dirt = {
|
|||
density: 1050,
|
||||
excludeRandom: true,
|
||||
};
|
||||
|
||||
elements.death_reaper = {
|
||||
color: "#454545",
|
||||
behavior: [
|
||||
"XX|M2|M1",
|
||||
"XX|FX%2|BO",
|
||||
"XX|XX|M1",
|
||||
],
|
||||
reactions: {
|
||||
human: { elem2: ["ghost_particle",null] },
|
||||
head: { elem2: ["ghost_particle",null] },
|
||||
body: { elem2: ["ghost_particle",null] },
|
||||
worm: { elem2: ["ghost_particle",null] },
|
||||
fish: { elem2: ["ghost_particle",null] },
|
||||
frozen_fish: { elem2: ["ghost_particle",null] },
|
||||
slug: { elem2: ["ghost_particle",null] },
|
||||
snail: { elem2: ["ghost_particle",null] },
|
||||
bird: { elem2: ["ghost_particle",null] },
|
||||
rat: { elem2: ["ghost_particle",null] },
|
||||
frog: { elem2: ["ghost_particle",null] },
|
||||
frozen_frog: { elem2: ["ghost_particle",null] },
|
||||
tadpole: { elem2: ["ghost_particle",null] },
|
||||
stink_bug: { elem2: ["ghost_particle",null] },
|
||||
bee: { elem2: ["ghost_particle",null] },
|
||||
ghost_particle: { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
|
||||
flea: { elem2: ["ghost_particle",null] },
|
||||
termite: { elem2: ["ghost_particle",null] },
|
||||
frozen_worm: { elem2: ["ghost_particle",null] },
|
||||
flea: { elem2: ["ghost_particle",null] },
|
||||
ant: { elem2: ["ghost_particle",null] },
|
||||
fly: { elem2: ["ghost_particle",null] },
|
||||
firefly: { elem2: ["ghost_particle",null] },
|
||||
bee: { elem2: ["ghost_particle",null] },
|
||||
},
|
||||
tempHigh: 10000,
|
||||
stateHigh: "bone",
|
||||
category:"soul",
|
||||
state: "solid",
|
||||
density: 1500,
|
||||
};
|
||||
elements.tombstone = {
|
||||
color: "#aaaaaa",
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
tempHigh: 1500,
|
||||
tick: function(pixel) {
|
||||
if (isEmpty(pixel.x+1,pixel.y) && Math.random() < 0.1) {
|
||||
createPixel("ghost_particle",pixel.x+1,pixel.y);
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
stateHigh: "magma",
|
||||
category: "soul",
|
||||
state: "solid",
|
||||
density: 2400,
|
||||
hardness: 0.5,
|
||||
breakInto: "dust",
|
||||
darkText: true
|
||||
}
|
||||
elements.tombstone_seed = {
|
||||
color: "#eeeff2",
|
||||
tick: function(pixel) {
|
||||
if (isEmpty(pixel.x+1,pixel.y) &&
|
||||
isEmpty(pixel.x-1,pixel.y)
|
||||
isEmpty(pixel.x+1,pixel.y-1) &&
|
||||
isEmpty(pixel.x-1,pixel.y-1) &&
|
||||
isEmpty(pixel.x,pixel.y-1) &&
|
||||
isEmpty(pixel.x+1,pixel.y-2) &&
|
||||
isEmpty(pixel.x-1,pixel.y-2) &&
|
||||
isEmpty(pixel.x,pixel.y-2) &&
|
||||
isEmpty(pixel.x+1,pixel.y-3) &&
|
||||
isEmpty(pixel.x-1,pixel.y-3) &&
|
||||
isEmpty(pixel.x,pixel.y-3)) {
|
||||
createPixel("tombstone",pixel.x+1,pixel.y);
|
||||
createPixel("tombstone",pixel.x-1,pixel.y);
|
||||
createPixel("tombstone",pixel.x+1,pixel.y-1);
|
||||
createPixel("tombstone",pixel.x-1,pixel.y-1);
|
||||
createPixel("tombstone",pixel.x,pixel.y-1);
|
||||
createPixel("tombstone",pixel.x+1,pixel.y-2);
|
||||
createPixel("tombstone",pixel.x-1,pixel.y-2);
|
||||
createPixel("tombstone",pixel.x,pixel.y-2);
|
||||
createPixel("tombstone",pixel.x+1,pixel.y-3);
|
||||
createPixel("tombstone",pixel.x-1,pixel.y-3);
|
||||
createPixel("tombstone",pixel.x,pixel.y-3);
|
||||
}
|
||||
if (pixel.age > 100) {
|
||||
changePixel(pixel,"tombstone");
|
||||
}
|
||||
pixel.age++
|
||||
doDefaults(pixel);
|
||||
},
|
||||
properties: {
|
||||
age:0
|
||||
},
|
||||
category: "soul",
|
||||
state: "solid",
|
||||
density: 1500,
|
||||
cooldown: defaultCooldown,
|
||||
seed: true,
|
||||
maxSize: 1,
|
||||
excludeRandom: true,
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
//This mod was made by Adora the transfem, https://discord.com/users/778753696804765696 on discord and https://www.tiktok.com/@alextheagenenby?_t=8hoCVI3NRhu&_r=1 on tiktok.
|
||||
let version = "1.5.2";
|
||||
function pixelInRange(pixel, range){
|
||||
let i = 0;
|
||||
while (i < range.length) {
|
||||
|
|
@ -1162,6 +1163,7 @@ function conditionTrue(condition, pixel){
|
|||
let ifCondition = "";
|
||||
let currentProp = "";
|
||||
let currentPropValue = "";
|
||||
let Func = "";
|
||||
elements.propmachine = {
|
||||
name: "PropMachine",
|
||||
behavior: behaviors.WALL,
|
||||
|
|
@ -1186,41 +1188,48 @@ onSelect: function(pixel) {
|
|||
} else {
|
||||
exclude2 += "propmachine";
|
||||
}
|
||||
var answer1 = prompt("Warning - This tool may break the simulator if used incorrectly.\n\nEnter a pixel attribute to modify:",(currentProp||undefined));
|
||||
var answer1 = prompt("Warning - This tool may break the simulator if used incorrectly.\n\nEnter a pixel attribute to modify or enter !FUNC to execute a function on pixels.",(currentProp||undefined));
|
||||
if(answer1.includes("!FUNC")){
|
||||
alert("enter the function you wish to execute in the function textbox at the bottom of the page. if you have not before you get this alert, nothing will happen. make sure the function has \"function(){\" before it and \"}\" after it. an example is: \"function(){console.log(\"Hello World!\")}\"");
|
||||
var answer2 = Func;
|
||||
}
|
||||
console.log(answer1)
|
||||
if (!answer1) { return }
|
||||
var answer2 = prompt("Now, enter a value for "+answer1+":",(currentPropValue||undefined));
|
||||
if (!answer2) { return }
|
||||
var valueL = answer2.toLowerCase();
|
||||
if (valueL === "true") { answer2 = true }
|
||||
else if (valueL === "false") { answer2 = false }
|
||||
else if (valueL === "null") { answer2 = null }
|
||||
else if (valueL === "undefined") { answer2 = undefined }
|
||||
else if (answer1 === "color" && valueL[0] === "#") {
|
||||
var rgb = hexToRGB(valueL);
|
||||
answer2 = "rgb("+rgb.r+","+rgb.g+","+rgb.b+")";
|
||||
}
|
||||
currentProp = answer1;
|
||||
currentPropValue = answer2;
|
||||
console.log(answer1);
|
||||
var num = parseFloat(answer2);
|
||||
if (!isNaN(num)) { answer2 = num }
|
||||
currentPropValue = answer2;
|
||||
logMessage("Prop: "+currentProp);
|
||||
logMessage("Value: "+currentPropValue);
|
||||
},
|
||||
if(!answer2){
|
||||
var answer2 = prompt("Now, enter a value for "+answer1+":",(currentPropValue||undefined));
|
||||
if (!answer2) { return }
|
||||
var valueL = answer2.toLowerCase();
|
||||
if (valueL === "true") { answer2 = true }
|
||||
else if (valueL === "false") { answer2 = false }
|
||||
else if (valueL === "null") { answer2 = null }
|
||||
else if (valueL === "undefined") { answer2 = undefined }
|
||||
else if (answer1 === "color" && valueL[0] === "#") {
|
||||
var rgb = hexToRGB(valueL);
|
||||
answer2 = "rgb("+rgb.r+","+rgb.g+","+rgb.b+")";
|
||||
}
|
||||
currentProp = answer1;
|
||||
currentPropValue = answer2;
|
||||
console.log(answer1);
|
||||
var num = parseFloat(answer2);
|
||||
if (!isNaN(num)) { answer2 = num }
|
||||
currentPropValue = answer2;
|
||||
logMessage("Prop: "+currentProp);
|
||||
logMessage("Value: "+currentPropValue);
|
||||
}
|
||||
},
|
||||
tick: function(pixel) {
|
||||
if(pixel.start == pixelTicks) {
|
||||
pixel.range = num4;
|
||||
pixel.condition = ifCondition;
|
||||
pixel.prop = currentProp;
|
||||
pixel.val = currentPropValue;
|
||||
pixel.func = Func;
|
||||
}
|
||||
let range = mouseRange(pixel.x, pixel.y, pixel.range);
|
||||
prop({ property: pixel.prop, value: pixel.val },range, exclude2, pixel.condition);
|
||||
}
|
||||
prop({ property: pixel.prop, value: pixel.val },range, exclude2, pixel.condition, pixel.func);
|
||||
}
|
||||
}
|
||||
function prop(obj, range, exclude = [], condition = ""){
|
||||
function prop(obj, range, exclude = [], condition = "", func = undefined){
|
||||
let list = [];
|
||||
for (var i = 0; i < range.length; i++) {
|
||||
var x = range[i][0];
|
||||
|
|
@ -1233,6 +1242,9 @@ function prop(obj, range, exclude = [], condition = ""){
|
|||
for (var i = 0; i < list.length; i++) {
|
||||
if (!isEmpty(list[i].x, list[i].y, true)) {
|
||||
var pixel = list[i];
|
||||
if(func){
|
||||
eval(func);
|
||||
}
|
||||
if (!exclude.includes(pixel.element) && conditionTrue(condition, pixel)){
|
||||
if(/^\d+$/.test(obj.value)){
|
||||
obj.value = parseInt(obj.value);
|
||||
|
|
@ -1386,6 +1398,197 @@ elements.sign = {
|
|||
}
|
||||
}
|
||||
}
|
||||
let attrElem = "";
|
||||
let magnetRange = 0;
|
||||
let magnetElems = [];
|
||||
elements.magnet = {
|
||||
category: "machines",
|
||||
tick:function(pixel){
|
||||
if(pixelTicks == pixel.start){
|
||||
if(attrElem.includes(" ")){attrElem.replace(/s/g, "")}
|
||||
pixel.elem = (attrElem.includes(",")) ? attrElem.split(",") : attrElem;
|
||||
pixel.range = magnetRange;
|
||||
}
|
||||
let range = mouseRange(pixel.x, pixel.y, pixel.range)
|
||||
for (var i = 0; i < currentPixels.length; i++){
|
||||
if(pixelInRange(currentPixels[i], range)){
|
||||
let pixel2 = currentPixels[i]
|
||||
if(!pixel2.drag && pixel.elem.includes(pixel2.element)){pixel2.drag = true}
|
||||
if(pixel2.drag && !pixel.elem.includes(pixel2.element) && !beamPixels.includes(pixel2) && ((draggingPixels && draggingPixels.includes(pixel2)) || !draggingPixels)){pixel2.drag = false;}
|
||||
if(!magnetElems.includes(pixel2) && pixel.elem.includes(pixel2.element)){magnetElems.push(pixel2)}
|
||||
if(pixel.elem.includes(pixel2.element)){
|
||||
(pixel2.x > pixel.x) ? tryMove(pixel2, pixel2.x - 1, pixel2.y, undefined, true) : tryMove(pixel2, pixel2.x + 1, pixel2.y, undefined, true);
|
||||
(pixel2.y > pixel.y) ? tryMove(pixel2, pixel2.x, pixel2.y - 1, undefined, true) : tryMove(pixel2, pixel2.x, pixel2.y + 1, undefined, true);
|
||||
}
|
||||
} else if (draggingPixels && !draggingPixels.includes(currentPixels[i])){
|
||||
currentPixels[i].drag = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
onSelect: function(){
|
||||
attrElem = prompt("Enter the element you want to attract.", (attrElem || undefined));
|
||||
magnetRange = parseInt(prompt("Enter the range you want to attract " + attrElem + " to.", (magnetRange || undefined)));
|
||||
}
|
||||
}
|
||||
let move = false;
|
||||
let moves = {
|
||||
a: [-1,0],
|
||||
d: [1,0],
|
||||
s: [0,1],
|
||||
w: [0,-1]
|
||||
}
|
||||
let UFOs = [];
|
||||
let beamPixels = [];
|
||||
let a = adjacentCoords;
|
||||
function randomString(length){
|
||||
let str = "";
|
||||
let chars = "abcdefghijklmnopqrstuvwxyz";
|
||||
let charArr = chars.split("");
|
||||
for(var i = 0; i < length; i++){
|
||||
str += charrArr[Math.floor(Math.random() * charArr.length)];
|
||||
}
|
||||
return str;
|
||||
}
|
||||
elements.ufo = {
|
||||
category: "machines",
|
||||
behavior: behaviors.WALL,
|
||||
properties: {
|
||||
cooldown: 0,
|
||||
},
|
||||
tick: function(pixel){
|
||||
if(!UFOs.includes(pixel)){ UFOs = []; UFOs.push(pixel); }
|
||||
if(move){
|
||||
tryMove(pixel, pixel.x + move[0], pixel.y + move[1])
|
||||
}
|
||||
},
|
||||
hardness: 1,
|
||||
insulate: true,
|
||||
}
|
||||
let keysDown = {};
|
||||
document.addEventListener("keydown", function(event){
|
||||
if(moves[event.key.toLowerCase()]){
|
||||
move = moves[event.key.toLowerCase()];
|
||||
}
|
||||
keysDown[event.key.toLowerCase()] = true;
|
||||
if(event.key.toLowerCase() == "b"){
|
||||
for(var i = 0; i < UFOs.length; i++){
|
||||
if(isEmpty(UFOs[i].x, UFOs[i].y+1) && !outOfBounds(UFOs[i].x, UFOs[i].y+1)){
|
||||
createPixel("heat_ray", UFOs[i].x, UFOs[i].y+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(event.key.toLowerCase() == "q"){
|
||||
for(var i = 0; i < UFOs.length; i++){
|
||||
if(isEmpty(UFOs[i].x, UFOs[i].y+1) && !outOfBounds(UFOs[i].x, UFOs[i].y+1)){
|
||||
for(var ii = 0; ii < adjacentCoords.length; ii++){
|
||||
let x = UFOs[i].x + adjacentCoords[ii][0];
|
||||
let y = UFOs[i].y + adjacentCoords[ii][1];
|
||||
if(event.shiftKey){
|
||||
explodeAt(x, y, 10)
|
||||
} else {
|
||||
explodeAt(x, y, 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(event.key.toLowerCase() == "x"){
|
||||
for(var i = 0; i < UFOs.length; i++){
|
||||
for(var ii = 0; ii < currentPixels.length; ii++){
|
||||
if([UFOs[i].x].includes(currentPixels[ii].x) && currentPixels[ii].y > UFOs[i].y){
|
||||
if(isEmpty(currentPixels[ii].x, currentPixels[ii].y - 1) && !outOfBounds(currentPixels[ii].x, currentPixels[ii].y - 1)){
|
||||
beamPixels.push(currentPixels[ii]);
|
||||
currentPixels[ii].drag = true;
|
||||
movePixel(currentPixels[ii], currentPixels[ii].x, currentPixels[ii].y - 1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if(event.key.toLowerCase() == "g"){
|
||||
for(var i = 0; i < UFOs.length; i++){
|
||||
pixel = UFOs[i];
|
||||
for (var ii = 0; i < adjacentCoords.length; ii++){
|
||||
let x = pixel.x + a[ii][0];
|
||||
let y = pixel.y + a[ii][1];
|
||||
if(!isEmpty(x, y) && !outOfBounds(x, y)){
|
||||
let pixel2 = pixelMap[x][y];
|
||||
if(elements[pixel2.element].breakInto){
|
||||
if(typeof elements[pixel2.element].breakInto == "object"){
|
||||
changePixel(pixel2, elements[pixel2.element].breakInto[Math.floor(Math.random() * elements[pixel2.element].breakInto.length)]);
|
||||
} else {
|
||||
changePixel(pixel2, elements[pixel2.element].breakInto);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(event.key.toLowerCase() == "j"){
|
||||
for(var i = 0; i < UFOs.length; i++){
|
||||
pixel = UFOs[i];
|
||||
for (var ii = 0; i < adjacentCoords.length; ii++){
|
||||
let x = pixel.x + a[ii][0];
|
||||
let y = pixel.y + a[ii][1];
|
||||
if(!isEmpty(x, y) && !outOfBounds(x, y) && elements[pixelMap[x][y].element].conduct > 0){
|
||||
pixelMap[x][y].charge = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
function isArray(item) {
|
||||
return Object.prototype.toString.call(item) === '[object Array]';
|
||||
}
|
||||
|
||||
document.addEventListener("keyup", function(event){
|
||||
keysDown[event.key.toLowerCase()] = false;
|
||||
if(moves[event.key.toLowerCase()] && move){
|
||||
move = false;
|
||||
}
|
||||
if(event.key.toLowerCase() == "x"){
|
||||
for(var i = 0; i < beamPixels.length; i++){
|
||||
beamPixels[i].drag = false;
|
||||
}
|
||||
beamPixels = [];
|
||||
}
|
||||
})
|
||||
function deletePixel(x,y) {
|
||||
// remove pixelMap[x][y] from currentPixels
|
||||
currentPixels.splice(currentPixels.indexOf(pixelMap[x][y]),1);
|
||||
if(UFOs.includes(pixelMap[x][y])){
|
||||
UFOs.splice(UFOs.indexOf(pixelMap[x][y]),1)
|
||||
}
|
||||
if (pixelMap[x][y]) {pixelMap[x][y].del = true;}
|
||||
delete pixelMap[x][y];
|
||||
}
|
||||
setInterval(function(){
|
||||
for(var i = 0; i < currentPixels.length; i++){
|
||||
for(var ii = 0; ii < UFOs.length; ii++){
|
||||
if(beamPixels.includes(currentPixels[i]) && currentPixels[i].x != UFOs[ii].x && !keysDown.x){
|
||||
beamPixels.splice(beamPixels.indexOf(currentPixels[i]), 1);
|
||||
currentPixels[i].drag = false;
|
||||
}
|
||||
else if (currentPixels[i].x != UFOs[ii].x && beamPixels.includes(currentPixels[i])){
|
||||
(currentPixels[i].x > UFOs[ii].x) ? null : null;
|
||||
}
|
||||
}
|
||||
if(currentPixels[i].drag && !beamPixels.includes(currentPixels[i])){
|
||||
if(draggingPixels && !draggingPixels.includes(currentPixels[i])){
|
||||
if(!magnetElems.includes(currentPixels[i])){
|
||||
currentPixels.drag = false;
|
||||
}
|
||||
} else if(!draggingPixels){
|
||||
if(!magnetElems.includes(currentPixels[i])){
|
||||
currentPixels[i].drag = false;
|
||||
}
|
||||
} else if (draggingPixels && draggingPixels.includes(currentPixels[i])){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 1000/tps)
|
||||
runAfterLoad(function(){
|
||||
document.body.insertAdjacentHTML("beforeend",`
|
||||
these are all properties of the pixel. another way to find pixel properties is using debug on a pixel, it will tell you the property and the value, like x and y, or, in plants.js, fruit.
|
||||
|
|
@ -1450,15 +1653,15 @@ runAfterLoad(function(){
|
|||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
p.tick
|
||||
p.tick
|
||||
</th>
|
||||
<th>
|
||||
the amount of ticks that have happened so far in the game.
|
||||
</th>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
`)
|
||||
// document.getElementById("extraInfo").innerHTML = `
|
||||
// <small><a href="https://sandboxels.r74n.com/changelog" id="changelogButton" target="_blank">Changelog<span style="color:red">(NEW)</span></a> • <a href="https://sandboxels.R74n.com/feedback" target="_blank" style="color:lime;">Feedback</a> • <a href="https://sandboxels.wiki.gg/" target="_blank" id="wikiButton" title="Official Sandboxels Wiki - wiki.gg" style="color:white;">Wiki</a> • <a id="moreSocial" href="https://reddit.com/r/Sandboxels" rel="me" target="_blank"><span style="color:#FF5700">Reddit</span></a> • <a href="https://discord.gg/ejUc6YPQuS" target="_blank" style="color:#2f60ff;">Discord</a><span id="install-button" style="display: inline-block;"> • <a onclick="deferredPrompt.prompt(); return false" href="#" style="text-shadow: 0px 2px 10px #ff00ff; cursor:pointer">Install Offline</a> • <a href = "https://sandboxels.r74n.com/#variables">Variables</a></span><!--<br><br><a style="color:lime" target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSf8pVMSdC6oSnBSaTpzjPQa8Ef-vxG_eXL99UITnMSQtJFTJA/viewform?usp=sf_link">FILL OUT THE CENSUS<span style="color:red">(NEW)</span></a>--></small><small><p>v1.9.3 • 559 elements, with <span id="hiddenCount">0</span> hidden.</p><p>©2021-2024. <a href="https://sandboxels.R74n.com/license.txt" rel="license" target="_blank">All Rights Reserved</a>. <a style="color:#00ffff" rel="author" href="https://r74n.com">R74n</a></p></small>
|
||||
// `
|
||||
<p>Paste function code for the prop machine in the text area below, typing doesnt work well.</p>
|
||||
<textarea id="func"></textarea>
|
||||
<button onClick = "Func = document.getElementById('func').value;">Use as function</button>
|
||||
`);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -40,6 +40,55 @@ elements.ultra_bomb = {
|
|||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.bomb_of_despair = {
|
||||
color: ["#000000", "#ff0000"],
|
||||
behavior: [
|
||||
"XX|EX:501>plasma3|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:501>plasma3|M2",
|
||||
],
|
||||
category: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.galaxy_level_bomb = {
|
||||
color: ["#dfadff", "#699ddb", "#4f76a6", "#8a6b9d", "#94a7bd", "#a47fbb"],
|
||||
behavior: [
|
||||
"XX|EX:600>plasma4|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:600>plasma4|M2",
|
||||
],
|
||||
category: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.RDX = {
|
||||
color: "#c92a2a",
|
||||
behavior: behaviors.WALL,
|
||||
behaviorOn: [
|
||||
"XX|XX|XX",
|
||||
"XX|EX:15|XX",
|
||||
"XX|XX|XX",
|
||||
],
|
||||
conduct: 1,
|
||||
category: "Purple Guy's Mod",
|
||||
burn: 100,
|
||||
burnTime: 1,
|
||||
burnInto: "explosion",
|
||||
tempHigh: 600,
|
||||
stateHigh: "explosion",
|
||||
state: "solid",
|
||||
density: 1630,
|
||||
excludeRandom: true,
|
||||
alias: "Cyclotrimethylenetrinitramine"
|
||||
},
|
||||
|
||||
elements.ice_cream_bomb = {
|
||||
color: "#ffffff",
|
||||
behavior: [
|
||||
|
|
@ -71,6 +120,22 @@ elements.wet_dirty_sand = {
|
|||
density: 2822
|
||||
}
|
||||
|
||||
elements.rocky_dirty_sand = {
|
||||
color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#939393", "#c4c4c4", "#777777"],
|
||||
behavior: behaviors.POWDER,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 4502
|
||||
}
|
||||
|
||||
elements.wet_rocky_dirty_sand = {
|
||||
color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796", "#939393", "#c4c4c4", "#777777"],
|
||||
behavior: behaviors.POWDER,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "liquid",
|
||||
density: 4502
|
||||
}
|
||||
|
||||
elements.reverse_gravity_liquid = {
|
||||
color: "#cdd7e2",
|
||||
behavior: behaviors.AGLIQUID ,
|
||||
|
|
@ -92,6 +157,88 @@ elements.reverse_soda = {
|
|||
density: 1030
|
||||
}
|
||||
|
||||
elements.really_really_fizzy_soda = {
|
||||
color: ["#5f2706", "#48230d", "#52250a"],
|
||||
behavior: behaviors.LIQUID , behavior: [
|
||||
"XX|CR:foam%500|XX",
|
||||
"M2|M1|M2",
|
||||
"M2|XX|M2"
|
||||
],
|
||||
|
||||
category: "Purple Guy's Mod",
|
||||
state: "liquid",
|
||||
density: 1030
|
||||
}
|
||||
|
||||
elements.orange_soda = {
|
||||
color: ["#ff8f49", "#ff721b", "#e06519"],
|
||||
behavior: behaviors.LIQUID , behavior: [
|
||||
"XX|CR:foam%2.5|XX",
|
||||
"M2|M1|M2",
|
||||
"M2|XX|M2"
|
||||
],
|
||||
|
||||
category: "Purple Guy's Mod",
|
||||
state: "liquid",
|
||||
density: 1030
|
||||
}
|
||||
|
||||
elements.gasoline = {
|
||||
color: ["#734216", "#964600", "#735032"],
|
||||
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: "Purple Guy's Mod",
|
||||
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",
|
||||
behavior: behaviors.LIQUID , behavior: [
|
||||
"XX|CR:foam%20|XX",
|
||||
"M2|M1|M2",
|
||||
"M2|XX|M2"
|
||||
],
|
||||
|
||||
category: "Purple Guy's Mod",
|
||||
state: "liquid",
|
||||
density: 1030
|
||||
}
|
||||
|
||||
elements.sb_soda = {
|
||||
color: ["#000000", "#ffff00", "#3a3a3a", "#ff0000"],
|
||||
behavior: behaviors.LIQUID , behavior: [
|
||||
"XX|CR:foam%0.56|XX",
|
||||
"M2|M1|M2",
|
||||
"M2|XX|M2"
|
||||
],
|
||||
|
||||
category: "Purple Guy's Mod",
|
||||
state: "liquid",
|
||||
density: 1030
|
||||
}
|
||||
|
||||
|
||||
elements.negatively_dense_liquid = {
|
||||
color: "#94ffd1",
|
||||
behavior: behaviors.LIQUID ,
|
||||
|
|
@ -109,6 +256,24 @@ elements.plasma2 = {
|
|||
temp:500000
|
||||
}
|
||||
|
||||
elements.plasma3 = {
|
||||
color: "#9dc6e3",
|
||||
behavior: behaviors.DGAS ,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "gas",
|
||||
density: 50010,
|
||||
temp:200000000
|
||||
}
|
||||
|
||||
elements.plasma4 = {
|
||||
color: "#9de4e3",
|
||||
behavior: behaviors.DGAS ,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "gas",
|
||||
density: 50050,
|
||||
temp:50000000000
|
||||
}
|
||||
|
||||
elements.negative_fire = {
|
||||
color: ["#a6bfc4", "#6bd2e4", "#b8dee4", "#32cae4"],
|
||||
behavior: behaviors.DGAS ,
|
||||
|
|
@ -152,13 +317,585 @@ elements.unreinforced_wall = {
|
|||
|
||||
elements.reinforced_liquid_wall = {
|
||||
color: "#ffff01",
|
||||
behavior: behaviors.WALL,
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:10^81
|
||||
}
|
||||
|
||||
elements.how_did_we_get_here = {
|
||||
color: "#ffffff",
|
||||
behavior: [behaviors.LIQUID, behaviors.AGLIQUID],
|
||||
category: "Purple Guy's Mod",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:10^83
|
||||
}
|
||||
|
||||
elements.gullibullium = {
|
||||
color: ["#70bc7a", "#70bb79", "#7cac81"],
|
||||
behavior: behaviors.WALL,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
hardness:0.8,
|
||||
tempHigh: 12500
|
||||
|
||||
}
|
||||
|
||||
elements.reinforced_gullibullium = {
|
||||
color: ["#f0bc7a", "#f0bb79", "#fcac81"],
|
||||
behavior: behaviors.WALL,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
hardness:0.95
|
||||
}
|
||||
|
||||
elements.boba_pearls = {
|
||||
color: "#3b0a57",
|
||||
behavior: behaviors.POWDER,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "solid",
|
||||
density: 54678900,
|
||||
hardness:0.95
|
||||
}
|
||||
|
||||
elements.vanilla_boba = {
|
||||
color: "#fff0dd",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.mango_boba = {
|
||||
color: "#ffc77d",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.matcha_boba = {
|
||||
color: "#58d168",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.banana_boba = {
|
||||
color: "#ffe1a1",
|
||||
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
|
||||
}
|
||||
|
||||
elements.peach_boba = {
|
||||
color: "#ffbe73",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.strawberry_boba = {
|
||||
color: "#e27c7c",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.mint_boba = {
|
||||
color: "#8cff9b",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.mint_vanilla_boba = {
|
||||
color: "#c8ffcf",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.classic_boba = {
|
||||
color: "#ffffff",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.taro_boba = {
|
||||
color: "#f1c8ff",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.thai_tea_boba = {
|
||||
color: "#ffc98c",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.jasmine_green_tea_boba = {
|
||||
color: "#d8ffc7",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.honeydew_boba = {
|
||||
color: "#9eff98",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.rose_boba = {
|
||||
color: "#ffe6e6",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.lavender_boba = {
|
||||
color: "#efbfff",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.lychee_boba = {
|
||||
color: "#fff1bf",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.passion_fruit_boba = {
|
||||
color: "#ffb942",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.pineapple_boba = {
|
||||
color: "#ffe742",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.blueberry_boba = {
|
||||
color: "#272a98",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.raspberry_boba = {
|
||||
color: "#ff3333",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.coconut_boba = {
|
||||
color: "#f1f1f1",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.almond_boba = {
|
||||
color: "#e4daa9",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.hazelnut_boba = {
|
||||
color: "#fbf4d4",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.caramel_boba = {
|
||||
color: "#e4ab32",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.chocolate_boba = {
|
||||
color: "#6f4b00",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.coffee_boba = {
|
||||
color: "#866625",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.guava_boba = {
|
||||
color: "#ff390a",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.kiwi_boba = {
|
||||
color: "#09de0f",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.papaya_boba = {
|
||||
color: "#c4ce37",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.black_sesame_boba = {
|
||||
color: "#6e89a9",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1300,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.pandan_boba = {
|
||||
color: "#33d460",
|
||||
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: [
|
||||
"XX|CR:radiation%4|XX",
|
||||
"M2|M1|M2",
|
||||
"M2|XX|M2"
|
||||
],
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1500,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.when_yous_personal_boba = {
|
||||
color: ["#5ee082", "#4eb96c", "#5bda7f", "#79c38e", "#00d03a"],
|
||||
behavior: behaviors.LIQUID , behavior: [
|
||||
"XX|CR:radiation%12|XX",
|
||||
"M2|M1|M2",
|
||||
"M2|XX|M2"
|
||||
],
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 1600,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.nousernamefounds_gallium_boba = {
|
||||
color: ["#b1b1b1", "#bfbfbf", "#9e9e9e"],
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 5100,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.bartender_twix_hartwell_whites_bday_cake_boba = {
|
||||
color: "#e6dbe4",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 2000,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.sb_boba = {
|
||||
color: ["#000000", "#ffff00", "#3a3a3a", "#ff0000"],
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 2000,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.sethies_red_boba = {
|
||||
color: "#ff8282",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 2000,
|
||||
hardness:0.25
|
||||
}
|
||||
|
||||
elements.sethies_blue_boba = {
|
||||
color: "#82c0ff",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Boba",
|
||||
state: "liquid",
|
||||
density: 2010,
|
||||
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) {
|
||||
if ((pixel.temp > 1000 || pixel.charge) && !pixel.burning) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
}
|
||||
if (pixel.burning) {
|
||||
if (!tryMove(pixel, pixel.x, pixel.y-1)) {
|
||||
tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
|
||||
}
|
||||
if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.1) {
|
||||
explodeAt(pixel.x, pixel.y, 10, ["radiation", "fw_ember"]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!tryMove(pixel, pixel.x, pixel.y+1)) {
|
||||
tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
|
||||
}
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
burn: 90,
|
||||
burnTime: 100,
|
||||
density: 2000,
|
||||
conduct: 1,
|
||||
state: "solid",
|
||||
category: "Purple Guy's Mod"
|
||||
},
|
||||
|
||||
elements.whenyouium = {
|
||||
color: ["#ff0000", "#dc0000", "#b60000", "#ec2c2c"],
|
||||
behavior: behaviors.WALL,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 2000,
|
||||
hardness:1.01
|
||||
}
|
||||
|
||||
elements.when_you_particles = {
|
||||
color: ["#ff0000", "#dc0000", "#b60000", "#ec2c2c"],
|
||||
behavior: behaviors.DGAS,
|
||||
category: "Purple Guy's Mod",
|
||||
state: "gas",
|
||||
density: 2000,
|
||||
hardness:0.98,
|
||||
hidden: true,
|
||||
temp: 500000000000000
|
||||
}
|
||||
|
||||
elements.wekk = { color: ["#927659","#81644B","#685843","#685135","#644F3A"],
|
||||
behavior: behaviors.SUPPORTPOWDER,
|
||||
reactions: {
|
||||
"fly": { elem2:"dead_bug", chance:0.25, oneway:true },
|
||||
"firefly": { elem2:"dead_bug", chance:0.2, oneway:true },
|
||||
"stink_bug": { elem2:"dead_bug", chance:0.15, oneway:true },
|
||||
"bee": { elem2:"dead_bug", chance:0.1, oneway:true },
|
||||
"bird": { elem2:"feather", chance:0.025, oneway:true },
|
||||
"egg": { elem2:"yolk", oneway:true },
|
||||
"bone": { elem2:"oil", tempMin:300, chance:0.005, oneway:true },
|
||||
"dead_plant": { elem2:"charcoal", tempMin:200, chance:0.005, oneway:true },
|
||||
"charcoal": { elem2:"diamond", tempMin:800, tempMax:900, chance:0.005, oneway:true },
|
||||
},
|
||||
tempHigh: 540,
|
||||
stateHigh: "magma",
|
||||
category: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 1302.5,
|
||||
hardness: 0.2,
|
||||
breakInto: "gravel"
|
||||
}
|
||||
|
||||
elements.water_but_it_stays_liquid = {
|
||||
color: "#2167ff",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "Purple Guy's Mod",
|
||||
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" },
|
||||
// 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: 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: "Purple Guy's Mod",
|
||||
state: "solid",
|
||||
density: 19100,
|
||||
hardness: 0.6,
|
||||
conduct: 0.235,
|
||||
excludeRandom: true
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (!elements.sand.reactions) { elements.sand.reactions = {} }
|
||||
elements.sand.reactions.dirt = { elem1:"dirty_sand", elem2:"dirty_sand" }
|
||||
|
|
@ -170,4 +907,33 @@ if (!elements.soda.reactions) { elements.soda.reactions = {} }
|
|||
elements.soda.reactions.reverse_gravity_liquid = { elem1:"reverse_soda", elem2:"reverse_soda" }
|
||||
|
||||
if (!elements.wall.reactions) { elements.wall.reactions = {} }
|
||||
elements.wall.reactions.plasma2 = { elem1:"plasma2", elem2:"plasma2" }
|
||||
elements.wall.reactions.plasma2 = { elem1:"plasma2", elem2:"plasma2" }
|
||||
|
||||
if (!elements.dirty_sand.reactions) { elements.dirty_sand.reactions = {} }
|
||||
elements.dirty_sand.reactions.gravel = { elem1:"rocky_dirty_sand", elem2:"rocky_dirty_sand" }
|
||||
|
||||
if (!elements.rocky_dirty_sand.reactions) { elements.rocky_dirty_sand.reactions = {} }
|
||||
elements.rocky_dirty_sand.reactions.water = { elem1:"wet_rocky_dirty_sand", elem2:"wet_rocky_dirty_sand" }
|
||||
|
||||
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" }
|
||||
|
||||
if (!elements.wall.reactions) { elements.wall.reactions = {} }
|
||||
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.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.whenyouium.reactions) { elements.whenyouium.reactions = {} }
|
||||
elements.whenyouium.reactions.when_you_particles = { elem1:"when_you_particles", elem2:"when_you_particles" }
|
||||
|
||||
// important colors: ["#000000", "#edff00", "#3a3a3a", "#ff0000"], ["#82c0ff", "#ff8282"],
|
||||
|
|
@ -28,3 +28,33 @@ elements.selective_paint = {
|
|||
excludeRandom:true,
|
||||
desc: "Use on selected pixels to change their color."
|
||||
}
|
||||
selectivePaintElem2 = ""
|
||||
elements.exclusive_paint = {
|
||||
color: ["#c27070","#c29c70","#c2c270","#70c270","#70c2c2","#7070c2","#c270c2"],
|
||||
onSelect: function() {
|
||||
var answer2 = prompt("Please input the desired element not to paint. It will not work if you enter multiple elements types while paused.",(selectivePaintElem2||undefined));
|
||||
if (!answer2) { return }
|
||||
selectivePaintElem2 = mostSimilarElement(answer2);
|
||||
},
|
||||
tool: function(pixel) {
|
||||
if (pixel.element != selectivePaintElem2) {
|
||||
if (!shiftDown) {
|
||||
pixel.color = pixelColorPick(pixel,currentColor)
|
||||
}
|
||||
else {
|
||||
// convert the hex of currentColor to rgb and set it as a string
|
||||
var rgb = currentColor.replace("#","").match(/.{1,2}/g);
|
||||
for (var i = 0; i < rgb.length; i++) {
|
||||
rgb[i] = parseInt(rgb[i],16);
|
||||
}
|
||||
pixel.color = "rgb(" + rgb.join(",") + ")"
|
||||
}
|
||||
delete pixel.origColor;
|
||||
}
|
||||
},
|
||||
customColor: true,
|
||||
category: "tools",
|
||||
canPlace: false,
|
||||
excludeRandom:true,
|
||||
desc: "Used to paint pixels other than the one selected."
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue