Merge branch 'R74nCom:main' into main

This commit is contained in:
JustAGenericUsername 2024-03-23 18:50:08 -04:00 committed by GitHub
commit 28bf2bd364
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 2245 additions and 129 deletions

BIN
fonts/Vietnamese_Pixel.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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",

View File

@ -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",

View File

@ -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"
}

View File

@ -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": "熔融氢氧化钾"
}

View File

@ -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": "熔氢氧化鉀"
}

View File

@ -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>

View File

@ -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"

255
mods/Vegan.js Normal file
View File

@ -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: {},
};

View File

@ -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}

View File

@ -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,
};

View File

@ -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;">&nbsp;• <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>
`);
});

View File

@ -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"],

View File

@ -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."
}