Merge branch 'R74nCom:main' into main

This commit is contained in:
JustAGenericUsername 2024-04-06 17:33:07 -04:00 committed by GitHub
commit cb4fd4416c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 1685 additions and 467 deletions

View File

@ -16265,7 +16265,7 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span> <input type="button" value="O
<!-- <p>If you'd like to support us, consider donating on <a href="https://www.paypal.com/donate/?hosted_button_id=GCX4VHQ7SZWTN" target="_blank">PayPal</a> or <a href="https://cash.app/$emojiartist" target="_blank" title="$emojiartist">CashApp</a>, or subscribing on Discord.</p> -->
<p>Business inquiries? Education stories? Help needed? Email us at <a href="mailto:contact@r74n.com">contact@R74n.com</a>!</p>
<p>More links: <a href="https://sandboxels.R74n.com/help" rel="help">Help</a><a href="https://sandboxels.R74n.com/tips">Tips</a><a href="https://sandboxels.R74n.com/mod-list">Mods</a><a href="https://sandboxels.R74n.com/mobile-use">Mobile</a><a href="https://sandboxels.R74n.com/offline-use">Offline</a><a href="https://R74n.com/privacy">Privacy</a></p>
<p>Thanks to: Serioustar, WeiChei, Midi_png, ggod, personman, fnl4y, PitsPower, kaeud, Trent, u2ce</p>
<p>Thanks to: Serioustar, ggod, Midi_png, personman, fnl4y, PitsPower, swagg boi, kaeud, WeiChei, Trent, u2ce</p>
<p style="display:none" id="langCredit">Translation by R74n</p>
<p>Sandboxels is developed by R74n. Check out <a href="https://R74n.com" rel="author" target="_blank">our other projects</a>!</p>
<script>

View File

@ -167,7 +167,7 @@
"clay":"agyag",
"clay_soil":"agyagos_talaj",
"brick":"tégla",
"ruins":"romok",
"ruins":"romos_tégla",
"porcelain":"porcelán",
"sapling":"csemete",
"pinecone":"toboz",
@ -319,8 +319,8 @@
"particleboard":"farostlemez",
"skin":"bőr",
"hair":"haj",
"alcohol":"szesz",
"alcohol_gas":"szeszgőz",
"alcohol":"alkohol",
"alcohol_gas":"alkoholgőz",
"basalt":"bazalt",
"tuff":"tufa",
"molten_tuff":"olvadt_tufa",
@ -452,7 +452,7 @@
"nuke":"atombomba",
"h_bomb":"hidrogénbomba",
"dirty_bomb":"piszkos_bomba",
"emp_bomb":"EMI-bomba",
"emp_bomb":"EMP-bomba",
"nitro":"nitroglicerin",
"greek_fire":"görögtűz",
"fireball":"tűzgolyó",
@ -504,7 +504,7 @@
"broth_ice":"fagyott_leves_leve",
"frozen_vinegar":"fagyott_ecet",
"sauce_ice":"fagyott_szósz",
"alcohol_ice":"fagyott_szesz",
"alcohol_ice":"fagyott_alkohol",
"bleach_ice":"fagyott_fehérítő",
"chlorine_ice":"fagyott_klór",
"frozen_ink":"fagyott_tinta",
@ -519,25 +519,25 @@
"molten_alga":"olvadt_alumínium-gallim_ötvözet",
"molten_metal_scrap":"olvadt_fémtörmelék",
"molten_borax":"olvadt_borax",
"molten_epsom_salt":"olvadt-epsom-só",
"molten_potassium_salt":"olvadt:kálium_só",
"molten_epsom_salt":"olvadt_epsom-só",
"molten_potassium_salt":"olvadt_kálium_só",
"molten_sodium_acetate":"olvadt_nátrium-acetát",
"frozen_nitro":"fagyott_nitroglicerin",
"cured_meat": "",
"nut_oil": "",
"grease": "",
"fat": "",
"potassium": "",
"molten_potassium": "",
"magnesium": "",
"molten_magnesium": "",
"cured_meat": "sózott_hús",
"nut_oil": "mogyoróolaj",
"grease": "zsiradék",
"fat": "zsír",
"potassium": "kálium",
"molten_potassium": "olvadt_kálium",
"magnesium": "magnézium",
"molten_magnesium": "olvadt_magnézium",
"sandstorm": "",
"caustic_potash": "",
"antibomb": "",
"tornado": "",
"earthquake": "",
"tsunami": "",
"blaster": "",
"propane_ice": "",
"molten_caustic_potash": ""
}
"caustic_potash": "kálium-hidroxid",
"antibomb": "antibomba",
"tornado": "tornádó",
"earthquake": "földrengés",
"tsunami": "cunami",
"blaster": "plazmavető",
"propane_ice": "fagyott_propán",
"molten_caustic_potash": "Olvadt_kálium-hidroxid"
}

View File

@ -154,6 +154,7 @@
<!----><tr><td class="modCat" colspan="3">Science & Chemistry</td></tr><!---->
<tr><td>alcohol.js</td><td>Adds methanol, (iso-)propanol, and butanol</td><td>Alice</td></tr>
<tr><td>alkahest.js</td><td>Adds the alkahest, a liquid which dissolves anything</td><td>Alice</td></tr>
<tr><td>aScientistsWish.js</td><td>Adds things that related to science, especially radiation</td><td>Carbon Monoxide, CPU</td></tr>
<tr><td>bigger_star_spawners.js</td><td>Adds spawners for larger stars</td><td>Alice</td></tr>
<tr><td>bioooze_and_pyrogens.js</td><td>Adds Bio-Ooze from <a herf="https://frackinuniverse.miraheze.org/wiki/Main_Page">Frackin Universe</a> and several heat-producing materials from various games mods</td><td>Alice</td></tr>
<tr><td>boiling_things.js</td><td>Allows for various elements to be vaporized</td><td>Alice</td></tr>
@ -266,7 +267,6 @@
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Adora</td></tr>
<tr><td>amogus.js</td><td>Adds a small amogus structure</td><td>Alice</td></tr>
<tr><td>citybuilding.js</td><td>Adds seeds that create miniature buildings and other city-related items</td><td>SquareScreamYT</td></tr>
<tr><td>CoCpu.js</td><td>Adds Things that Related with Science and Computers Knowledge</td><td>Carbon Monoxide, CPU</td></tr>
<tr><td>collab_mod.js</td><td>Created by multiple people, adds random things</td><td>mrapple, ilikepizza, stefanblox</td></tr>
<tr><td>elem3.js</td><td>Adds all elements and combinations from Elemental 3 [Very Large]</td><td>Sophie</td></tr>
<tr><td>fools+.js</td><td>improves and makes fools.js EXTREMELY annoying.</td><td>SquareScreamYT</td></tr>

View File

@ -1,111 +0,0 @@
elements.carbon_monoxide = {
color: "#b5b5b5",
behavior: behaviors.GAS,
behaviorOn: [
"XX|XX|XX",
"XX|CH:fire|XX",
"XX|XX|XX",
],
category: "gases",
state: "gas",
density: 1.14,
burn: 75,
tempHigh: 609,
stateHigh: "fire",
tempLow: -192,
stateLow: "liquid_carbon_monoxide",
burntime: 5,
fireColor: "#ebba34",
reactions: {
"head": { elem2:"rotten_meat", chance:0.5 },
"body": { elem2:"rotten_meat", chance:0.5 },
"human": { elem2:"rotten_meat", chance:0.5 },
"plant": { elem1: null },
"bird": { elem2: "rotten_meat", },
"frog": { elem2: "slime", },
"grass": {elem1: null },
"water": {elem1: null },
}
};
elements.liquid_carbon_monoxide = {
color: "#b5b5b5",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
density: 1.14,
tempHigh: 190,
tempLow: -199,
stateLow: "ice_carbon_monoxide",
stateHigh: "carbon_monoxide",
temp: -192,
};
elements.ice_carbon_monoxide = {
color: "#b5b5b5",
behavior: behaviors.WALL,
category: "solids",
state: "solid",
density: 1.14,
tempHigh: -192,
stateHigh: "liquid_carbon_monoxide",
temp: -199,
};
elements.cpu = {
color: "#575757",
behavior: behaviors.SOLID,
category: "machines",
state: "solid",
density: 75,
tempHigh: 1414,
stateHigh: "explosion",
reactions: {
"virus": { elem1 : null , elem2:"malware", chance:0.9 },
"battery": { elem2:"computer" },
}
};
elements.computer = {
color: "#2b2b2a",
behavior: behaviors.SOLID,
category: "machines",
state: "solid",
density: 8908,
tempHigh: 1414,
stateHigh: "explosion",
reactions: {
"virus": { elem1 : null , elem2:"malware", chance:0.9 },
"water": { elem1: null , elem2: "electric" },
}
};
elements.carbon_monoxide_detector = {
behavior: behaviors.WALL,
desc: "give red light and electric when found Carbon Monoxide touch",
color: "#ffffff",
reactions: {
"carbon_monoxide": {"charge1":1},
},
conduct: 1,
tempHigh: 1550,
stateHigh: ["molten_metal_scrap","electric","molten_plastic"],
colorOn: "#ff0000",
movable: false,
category:"machines",
darkText: true,
hardness: 1,
};
elements.electrons = {
color: "#b80606",
behavior: [
"XX|SH|XX", // shocks (adds charge)
"SH|DL%0.25|SH",
"XX|SH|XX",
],
tick: behaviors.BOUNCY,
reactions: {},
temp: 20,
category: "energy",
state: "gas",
density: 0.000003,
ignoreAir: true
}

View File

@ -1,24 +1,25 @@
// this is a epic mod
let heatSen = null;
heatSen = null;
elements.heatSensor = {
color: "#ff0000",
conduct: 1,
conduct: 0.1,
category:"test",
behavior: behaviors.WALL,
onSelect: function(pixel){
setTemp = parseInt(prompt("Enter the temperature you want it to sense. zero will not work", (heatSen || undefined)));
heatSen = prompt("Enter the temperature you want it to sense" );
},
tick: function(pixel) {
if (pixel.temp >= heatSen ) {
pixel.charge = 1;
}
@ -26,15 +27,13 @@ elements.heatSensor = {
};
let itemA = "steam";
elements.SteamTurbine = {
behavior: behaviors.WALL,
desc: "When steam touches it, it conducts electricity and the steam pixel is deleted",
color: "#826c6e",
color: "#826c6e",
tick: function(pixel) {
if(pixel.start == pixelTicks){
pixel.clone = itemA;
}
for (var i = 0; i < adjacentCoords.length; i++) {
var coords = adjacentCoords[i];
@ -42,7 +41,7 @@ elements.SteamTurbine = {
var y = pixel.y + coords[1];
if (!isEmpty(x,y,true)) {
var sensed = pixelMap[x][y];
if (sensed.element == pixel.clone) {
if (sensed.element == 'steam' ||sensed.element == 'rad_steam' ) {
deletePixel(x,y);
pixel.charge = 5;
break;
@ -131,15 +130,13 @@ elements.gasoline = {
stain: -0.25,
}
let itemB = "light";
elements.solar_panel = {
behavior: behaviors.WALL,
desc: "When light touches it, it conducts electricity and the light pixel is deleted",
color: "#bebfa3",
tick: function(pixel) {
if(pixel.start == pixelTicks){
pixel.clone = itemB;
}
for (var i = 0; i < adjacentCoords.length; i++) {
var coords = adjacentCoords[i];
@ -147,7 +144,7 @@ elements.solar_panel = {
var y = pixel.y + coords[1];
if (!isEmpty(x,y,true)) {
var sensed = pixelMap[x][y];
if (sensed.element == pixel.clone) {
if (sensed.element == 'light') {
deletePixel(x,y);
pixel.charge = 5;
break;
@ -367,9 +364,10 @@ elements.Android = {
elements.AndroidBody = {
color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"],
category: "life",
breakInto: ["oil","metal_scrap","explosion"],
breakInto: ["oil","metal_scrap","pop"],
properties: {
dead: false,
dir: 1,
@ -395,7 +393,7 @@ elements.AndroidBody = {
if (pixel.dead) {
// Turn into rotten_meat if pixelTicks-dead > 500
if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) {
changePixel(pixel,"rotten_meat");
changePixel(pixel,"rust");
}
return
}
@ -465,7 +463,7 @@ elements.AndroidHead = {
state: "solid",
conduct: .05,
temp: 69,
breakInto: ["oil","metal_scrap","explosion"],
breakInto: ["oil","metal_scrap","pop"],
};
listPipes = "pipe"
@ -506,71 +504,10 @@ elements.ajustableHeater = {
insulate:true
};
//old grinder
// elements.grinder = {
// color: ["#a1ada5","#ebf5ee","#bac2bc","#848a86","#505251"],
// category: "machines",
// density: 1080,
// state: "solid",
// conduct: 1,
// movable: false,
// ignore: "grinder",
// 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)) {
// var sensed = pixelMap[x][y];
// if (sensed.con || elements[sensed.element].movable && pixel.charge > 0) {
// breakPixel(sensed);
// }
// }
// }
// doDefaults(pixel);
// },
// insulate:true
// };
elements.dead_plant.conduct = 1;
// let compact = "dead_plant";
// elements.compacter = {
// behavior: behaviors.WALL,
// color: "#bebfa3",
// tick: function(pixel) {
// if(pixel.start == pixelTicks){
// pixel.clone = compact;
// }
// 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)) {
// var sensed = pixelMap[x][y];
// if (sensed.element == pixel.clone && pixel.charge > 0) {
// sensed.element = "coal"
// sensed.color = elements.coal.color
// break;
// }
// }
// }
// doDefaults(pixel);
// },
// conduct: 1,
// movable: false,
// category:"machines",
// darkText: true,
// hardness: 1,
// }
compactPi = "dead_plant";
compactPi2 = "coal";
elements.compacter = {
@ -703,60 +640,66 @@ elements.compacter = {
// thx to nousersthings mod for the filter
// only adding this bc my freind told me so
// im not good at javascript and coding so yeah
// new and improved version which is not 100% copied from nouser but only about 5-10%
filterTypeVar = 0;
elements.filter = {
color: "#599fc2",
desc: "A filter made by nouser",
onSelect: function() {
logMessage("Needs to be 1 pixel thick");
var answer4 = prompt("Please input the desired element of this filter. It is case senstive.",(filterTypeVar||undefined));
if (!answer4) { return }
filterTypeVar = answer4;
},
color: "#414c4f",
tick: function(pixel) {
if (pixel.start === pixelTicks) {
pixel.filterType = filterTypeVar
}
if (1 === 2) {
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x,y,true)) {
// createPixel("brick",x,y);
// pixelMap[x][y].color = pixelColorPick(pixel,"#808080");
}
}
// pixel.stage = 1;
}
else if (1 === 2) { //uninitialized
for (var i = 0; i < adjacentCoords.length; i++) {
var coord = adjacentCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (isEmpty(x,y)) {
// pixel.stage = 2; //blue
// pixel.color = pixelColorPick(pixel,"#000036");
break;
}
}
}
else if (1 === 1) { //initialized
if (!pixel.stage && pixelTicks-pixel.start > 60) {
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x,y,true) && listPipes.includes(pixelMap[x][y].element)) {
// delete this bc it makes the pipe walls
// if (!isEmpty(x,y,true) && elements[pixelMap[x][y].element].movable) {
// deletePixel(x,y)
// }
// if (isEmpty(x,y)) {
// createPixel("pipe_wall",x,y);
// }
}
pixel.stage = 2;
}
else if (pixel.stage === 1 && pixelTicks-pixel.start > 70) { //uninitialized
for (var i = 0; i < adjacentCoords.length; i++) {
var coord = adjacentCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
pixel.stage = 2;
// this makes the thing blue and keep pixel.stage = 2 cuz without it it breaks the code
// if (isEmpty(x,y)) {
// pixel.stage = 2; //blue
// pixel.color = pixelColorPick(pixel,"#000036");
// break;
// }
}
}
else if (pixel.stage > 1 && pixelTicks % 3 === pixel.stage-2) { //initialized
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "pipe") {
var newPixel = pixelMap[x][y];
if (newPixel.stage === 1) {
var newColor;
switch (pixel.stage) {
// case 2: newPixel.stage = 3; newColor = "#003600"; break; //green
// case 3: newPixel.stage = 4; newColor = "#360000"; break; //red
// case 4: newPixel.stage = 2; newColor = "#000036"; break; //blue
case 2: newPixel.stage = 3; newColor = "#003600"; break; //green
case 3: newPixel.stage = 4; newColor = "#360000"; break; //red
case 4: newPixel.stage = 2; newColor = "#000036"; break; //blue
}
// newPixel.color = pixelColorPick(newPixel,newColor);
newPixel.color = pixelColorPick(newPixel,newColor);
}
}
}
@ -768,14 +711,12 @@ elements.filter = {
var y = pixel.y+coord[1];
if (!isEmpty(x,y,true)) {
var newPixel = pixelMap[x][y];
if (listPipes.includes(newPixel.element)) {
if (newPixel.element === "pipe") {
var nextStage;
switch (pixel.stage) {
// case 2: nextStage = 4; break; //green
// case 3: nextStage = 2; break; //red
// case 4: nextStage = 3; break; //blue
}
if (pixel.con && !newPixel.con) { //transfer to adjacent pipe
if (pixel.con && !newPixel.con && newPixel.stage === nextStage) { //transfer to jacent pipe
newPixel.con = pixel.con;
newPixel.con.x = newPixel.x;
newPixel.con.y = newPixel.y;
@ -784,18 +725,14 @@ elements.filter = {
break;
}
}
else if (!pixel.con ) { //suck up pixel
if (newPixel.element == pixel.filterType ) {
else if (!pixel.con && elements[newPixel.element].movable && newPixel.element == filterTypeVar) { //suck up pixel
pixel.con = newPixel;
deletePixel(newPixel.x,newPixel.y);
pixel.con.x = pixel.x;
pixel.con.y = pixel.y;
pixel.con.del;
moved = true;
break;
}
}
}
}
@ -804,7 +741,7 @@ elements.filter = {
var coord = squareCoordsShuffle[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (isEmpty(x,y)) {
if (isEmpty(x,y)) {
delete pixel.con.del;
pixel.con.x = x;
pixel.con.y = y;
@ -813,9 +750,9 @@ elements.filter = {
pixel.con = null;
break;
}
if (!isEmpty(x,y,true) && listPipes.includes(pixelMap[x][y].element)) {
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "pipe") {
var newPixel = pixelMap[x][y];
if (pixel.con && !newPixel.con) {
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
newPixel.con = pixel.con;
newPixel.con.x = newPixel.x;
newPixel.con.y = newPixel.y;
@ -831,8 +768,6 @@ elements.filter = {
category: "machines",
movable: false,
canContain: true,
noMix: true,
insulate: true,
}
filterTypeVar2 = 0;
@ -926,11 +861,7 @@ elements.Destructive_Filter = {
moved = true;
break;
}
else if(!(newPixel.element == "filter") && !(newPixel.element == "Destructive_Filter") && !doNotEF.includes(newPixel.element) ) {
deletePixel(newPixel.x, newPixel.y);
break;
}
}
}
}
@ -1256,6 +1187,7 @@ elements.Acid_Bomb = {
}
elements.E_Spout = {
name: "E-Spout",
color: "#606378",
behavior: behaviors.WALL,
behaviorOn: [
@ -1269,7 +1201,6 @@ elements.E_Spout = {
conduct: 1,
}
elements.DestroyableWire = {
color: "#4d0a03",
behavior: behaviors.WALL,
@ -1356,54 +1287,6 @@ elements.pusherRight = {
},
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,
@ -1645,78 +1528,209 @@ elements.guided_missile = {
},
properties: {
luanched : false,
speed :1,
speed :2,
AtY : false,
},
tick: function(pixel) {
if(pixel.start == pixelTicks){
if(pixel.temp >= 100) {
pixel.luanched = true;
pixel.clone = "fire";
var newX = pixel.x ;
var newY = pixel.y - pixel.speed;
}
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;
if (!(pixel.y == tarY) && pixel.y > tarY ) {
if((!tarY-pixel.y === 1) || (!tarY-pixel.y === -1)) {
let test = createPixel("fire",pixel.x,pixel.y+3);
if(isEmpty(newX,newY)) {
tryMove(pixel,newX,newY,);
} else {
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
}
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);
deletePixel(pixel.x,pixel.y);
}
pixel.AtY = true;
} else {
pixel.speed = 1;
let test = createPixel("fire",pixel.x,pixel.y+3);
if(isEmpty(newX,newY)) {
tryMove(pixel,newX,newY,);
} else {
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y);
}
//pixel.AtY = true;
}
}
else if(!(pixel.y == tarY) && pixel.y < tarY ){
if((!tarY-pixel.y === 1) || (!tarY-pixel.y === -1)) {
let test = createPixel("fire",pixel.x,pixel.y-3);
if(isEmpty(pixel.x,pixel.y+pixel.speed)) {
tryMove(pixel,pixel.x,pixel.y + pixel.speed,);
} else {
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y);
}
else if(pixel.x < tarX) {
let test = createPixel("fire",pixel.x,pixel.y);
tryMove(pixel,pixel.x+pixel.speed,pixel.y,test);
pixel.AtY = true;
} else {
pixel.speed = 1;
let test = createPixel("fire",pixel.x,pixel.y-3);
if(isEmpty(pixel.x,pixel.y+pixel.speed)) {
tryMove(pixel,pixel.x,pixel.y - pixel.speed,);
} else {
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y);
}
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);
}
//pixel.AtY = true;
}
}
}
else if(pixel.AtY = true) {
if(pixel.x > tarX) {
pixel.speed = 2;
let test = createPixel("fire",pixel.x,pixel.y);
if(isEmpty(pixel.x-1,pixel.y)) {
tryMove(pixel,pixel.x-pixel.speed,pixel.y,test);
} else {
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y);
}
}
else if(pixel.x < tarX) {
pixel.speed = 2;
let test = createPixel("fire",pixel.x,pixel.y);
if(isEmpty(pixel.x+2,pixel.y)) {
tryMove(pixel,pixel.x+pixel.speed,pixel.y,test );
} else {
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y);
}
}
else if (pixel.x == tarX){
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y);
}
if(tarX-pixel.x == 1 || tarX-pixel.x == -1) {
explodeAt(pixel.x, pixel.y, 13, ["fire","fire","plasma","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y);
}
}
}
doDefaults(pixel);
}
},
conduct: 1,
movable: true,
category:"test",
darkText: true,
hardness: 1,
}
elements.room_temp.category = "tools"
elements.uncharge.category = "tools"
elements.unburn.category = "tools"
textures.Reniforced_Titanuim = {
REINFORCEDTITANIUM: [
"GiGgggGiGGg",
"gggGGGGgggg",
"iiiiiiiiiii",
"GgGGggggGGg",
"GggGGgggGGg",
"igGGGgggggi",
"GggggggGGGG",
"GggGGgggggg",
"Ggggggggggg",
"ggggggGGggg",
"Ggggggggggg",
"iiiiiiiiiii",],
}
elements.Reniforced_Titanuim = {
color: "#787878",
colorPattern: textures.Reniforced_Titanuim.REINFORCEDTITANIUM,
colorKey: {
"g": "#787878",
"G": "#606060",
"i": "#332f2f"},
behavior: behaviors.WALL,
tempHigh: 4000,
stateHigh : "molten_titanium",
category: "solids",
state: "solid",
density: 5000,
hardness:1,
noMix: true
}
elements.Missile_Up = {
maxSize: 1,
properties: {
luanched : false,
},
tick: function(pixel) {
if(pixel.temp >= 100) {
pixel.luanched = true;
if(isEmpty(pixel.x,pixel.y-1) ) {
let exguast = createPixel("fire",pixel.x,pixel.y + 3)
tryMove(pixel,pixel.x,pixel.y-2,);
} else if(!isEmpty(pixel.x, pixel.y-1)) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
if(!(pixelMap[pixel.x][pixel.y-1] == "Missile_Down") || !(pixelMap[pixel.x][pixel.y-1] == "fire") ) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
}
}
}
},
conduct: 1,
movable: true,
category:"weapons",
@ -1726,7 +1740,286 @@ elements.guided_missile = {
}
elements.room_temp.category = "tools"
elements.uncharge.category = "tools"
elements.unburn.category = "tools"
elements.Missile_Down = {
maxSize: 1,
properties: {
luanched : false,
},
tick: function(pixel) {
if(pixel.temp >= 100) {
pixel.luanched = true;
if(isEmpty(pixel.x,pixel.y+2) ) {
let exguast = createPixel("fire",pixel.x,pixel.y - 3)
tryMove(pixel,pixel.x,pixel.y+2,);
} else if(!isEmpty(pixel.x, pixel.y+1)) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
if(!(pixelMap[pixel.x][pixel.y+1] == "Missile_Down") || !(pixelMap[pixel.x][pixel.y-1] == "fire") ) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
}
}
}
},
conduct: 1,
movable: true,
category:"weapons",
darkText: true,
hardness: 1,
}
elements.Missile_Left = {
maxSize: 1,
properties: {
luanched : false,
},
tick: function(pixel) {
if(pixel.temp >= 100) {
pixel.luanched = true;
if(isEmpty(pixel.x-1,pixel.y) ) {
let exguast = createPixel("fire",pixel.x+3,pixel.y)
tryMove(pixel,pixel.x-2,pixel.y);
} else if( !isEmpty(pixel.x-1, pixel.y) && !isEmpty(pixel.x-2, pixel.y) && !outOfBounds(pixel.x-1,pixel.y) && !outOfBounds(pixel.x-2,pixel.y) ) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
if(!(pixelMap[pixel.x-1][pixel.y] == "Missile_Down") || !(pixelMap[pixel.x][pixel.y-1] == "fire") ) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
}
}
}
},
conduct: 1,
movable: true,
category:"weapons",
darkText: true,
hardness: 1,
}
elements.Missile_Right = {
maxSize: 1,
properties: {
luanched : false,
},
tick: function(pixel) {
if(pixel.temp >= 100) {
pixel.luanched = true;
if(isEmpty(pixel.x+1,pixel.y) ) {
let exguast = createPixel("fire",pixel.x-3,pixel.y)
tryMove(pixel,pixel.x+2,pixel.y);
} else if( !isEmpty(pixel.x+1, pixel.y) && !isEmpty(pixel.x+2, pixel.y) && !outOfBounds(pixel.x+1,pixel.y) && !outOfBounds(pixel.x+2,pixel.y) ) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
if(!(pixelMap[pixel.x+1][pixel.y] == "Missile_Down") || !(pixelMap[pixel.x][pixel.y+1] == "fire") ) {
explodeAt(pixel.x,pixel.y, 13 ,["fire","plasma","plasma","plasma"]);
deletePixel(pixel.x,pixel.y)
}
}
}
},
conduct: 1,
movable: true,
category:"weapons",
darkText: true,
hardness: 1,
}
elements.pancho = {
tempHigh: 300,
stateHigh: "steam",
color: ["#bd8e0d","#0ec930","#ff0000","#fcf800"],
singleColor: true,
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "liquid"
};
//imma finnish rest later
elements.pesticide = {
category: "test",
state: "liquid",
color: elements.plant.color,
behavior:behaviors.LIQUID,
reactions : {
"plant": { elem1: "dead_plant" },
"algae": { elem1: "dead_plant" },
"cactus": { elem1: "dead_plant" },
"hive": { elem1: "dead_plant" },
"sapling": { elem1: "dead_plant" },
"pinecone": { elem1: "dead_plant" },
"evergreen": { elem1: "dead_plant" },
"hyphae": { elem1: "dead_plant" },
"petal": { elem1: "dead_plant" },
"pistil": { elem1: "dead_plant" },
"tree_branch": { elem1: "wood" },
}
}
elements.uranium_particles = {
color: ["#599e61","#364d3c","#494d4a","#6c8a42","#798d65","#b5e089"],
tick: behaviors.BOUNCY,
reactions: {
"uranium_particles": { elem1:null, elem2:"supernova", chance:0.000001}
},
category: "???????",
}
elements.air_filter = {
color: "#414c4f",
tick: function(pixel) {
if (!pixel.stage && pixelTicks-pixel.start > 60) {
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
// delete this bc it makes the pipe walls
// if (!isEmpty(x,y,true) && elements[pixelMap[x][y].element].movable) {
// deletePixel(x,y)
// }
// if (isEmpty(x,y)) {
// createPixel("pipe_wall",x,y);
// }
}
pixel.stage = 2;
}
else if (pixel.stage === 1 && pixelTicks-pixel.start > 70) { //uninitialized
for (var i = 0; i < adjacentCoords.length; i++) {
var coord = adjacentCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
pixel.stage = 2;
// this makes the thing blue and keep pixel.stage = 2 cuz without it it breaks the code
// if (isEmpty(x,y)) {
// pixel.stage = 2; //blue
// pixel.color = pixelColorPick(pixel,"#000036");
// break;
// }
}
}
else if (pixel.stage > 1 && pixelTicks % 3 === pixel.stage-2) { //initialized
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "pipe") {
var newPixel = pixelMap[x][y];
if (newPixel.stage === 1) {
var newColor;
switch (pixel.stage) {
case 2: newPixel.stage = 3; newColor = "#003600"; break; //green
case 3: newPixel.stage = 4; newColor = "#360000"; break; //red
case 4: newPixel.stage = 2; newColor = "#000036"; break; //blue
}
newPixel.color = pixelColorPick(newPixel,newColor);
}
}
}
var moved = false;
shuffleArray(squareCoordsShuffle);
for (var i = 0; i < squareCoordsShuffle.length; i++) {
var coord = squareCoordsShuffle[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x,y,true)) {
var newPixel = pixelMap[x][y];
if (newPixel.element === "pipe") {
var nextStage;
switch (pixel.stage) {
}
if (pixel.con && !newPixel.con && newPixel.stage === nextStage) { //transfer to jacent pipe
newPixel.con = pixel.con;
newPixel.con.x = newPixel.x;
newPixel.con.y = newPixel.y;
pixel.con = null;
moved = true;
break;
}
}
else if (!pixel.con && (newPixel.element == "smoke" || newPixel.element == "carbon_dioxide" || newPixel.element == "smog" || newPixel.element == "rad_steam" || newPixel.element == "oxygen" )) { //suck up pixel
changePixel(newPixel,"oxygen");
pixel.con = newPixel;
deletePixel(newPixel.x,newPixel.y);
pixel.con.x = pixel.x;
pixel.con.y = pixel.y;
pixel.con.del;
moved = true;
break;
}
}
}
if (pixel.con && !moved) { // move to same stage if none other
for (var i = 0; i < squareCoordsShuffle.length; i++) {
var coord = squareCoordsShuffle[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (isEmpty(x,y)) {
delete pixel.con.del;
pixel.con.x = x;
pixel.con.y = y;
pixelMap[x][y] = pixel.con;
currentPixels.push(pixel.con);
pixel.con = null;
break;
}
if (!isEmpty(x,y,true) && pixelMap[x][y].element === "pipe") {
var newPixel = pixelMap[x][y];
if (pixel.con && !newPixel.con && newPixel.stage === pixel.stage) {
newPixel.con = pixel.con;
newPixel.con.x = newPixel.x;
newPixel.con.y = newPixel.y;
pixel.con = null;
break;
}
}
}
}
}
doDefaults(pixel);
},
category: "machines",
movable: false,
canContain: true,
}

View File

@ -1,14 +1,15 @@
/*
Created by SquareScreamYT/sqec <@918475812884344852>
Thanks to RealerRaddler <@914371295561535508>, Alice <@697799964985786450>, nousernamefound <@316383921346707468>, Adora the Transfem <@778753696804765696>, ryan(R74n) <@101070932608561152> and Fioushemastor <@738828785482203189> for helping :)
Compatibility with other mods coming soon! s
v1.12.2
v1.12.4
you can support me at my youtube: https://youtube.com/@sqec
Upcoming Features:
- cinnamon
- spring onions
- soy sauce/wasabi
- white rice noodles
- matcha leaves, powder, tea
- cacao pods
@ -406,6 +407,18 @@ Changelog (v1.12.2)
Changelog (v1.12.4)
- added cake batter
- added condensed milk
- added wasabi
- added beans
- added baked beans
- added fermented beans/natto
- added soy sauce
*/
/*
@ -428,7 +441,13 @@ function interpolateRgb(rgb1, rgb2, ratio) {
function getRGB(rgb){
let rgb2 = rgb.replace(")", "").replace("rgb(", "").replace(/,/g, "r").split("r")
return { r: parseInt(rgb2[0]), g: parseInt(rgb2[1]), b: parseInt(rgb2[2]) };
}
}
behaviors.STURDYPOWDER2 = [
"XX|XX|XX",
"XX|XX|XX",
"M2%30|M1|M2%30",
],
elements.knife = {
color: "#adb5bd",
@ -609,11 +628,7 @@ elements.chicken = {
elements.chicken_egg = {
color: ["#e0d3ab","#d9cdb5"],
behavior: [
"XX|XX|XX",
"XX|FX%5|XX",
"M2%30|M1|M2%30",
],
behavior: behaviors.STURDYPOWDER2,
tick: function(pixel) {
if (Math.random() < 0.1 && pixel.temp > 20 && pixel.temp < 35) {
changePixel(pixel,"chick")
@ -4986,11 +5001,7 @@ elements.snail.reactions.nut_oil = { elem1: "escargot", chance:30, tempMin:50 }
elements.escargot = {
color: "#ab924d",
behavior: [
"XX|XX|XX",
"XX|XX|",
"M2%10|M1|M2%10",
],
behavior: behaviors.STURDYPOWDER2,
tempHigh: 120,
stateHigh: "steam",
breakInto: "quicklime",
@ -7101,3 +7112,140 @@ elements.food_coloring = {
}
elements.cooked_meat.behavior = behaviors.SUPPORT;
elements.cake_batter = {
color: "#d4bc85",
behavior: behaviors.LIQUID,
onMix: function(batter,ingredient) {
if (elements[ingredient.element].isFood && elements[ingredient.element].id !== elements.batter.id && elements[ingredient.element].id !== elements.flour.id && elements[ingredient.element].id !== elements.yolk.id && elements[ingredient.element].id !== elements.dough.id && elements[ingredient.element].id !== elements.baked_batter.id && elements[ingredient.element].id !== elements.cake.id && elements[ingredient.element].id !== elements.cake_batter.id) {
var rgb1 = batter.color.match(/\d+/g);
var rgb2 = ingredient.color.match(/\d+/g);
// average the colors
var rgb = [
Math.round((parseInt(rgb1[0])*10+parseInt(rgb2[0]))/11),
Math.round((parseInt(rgb1[1])*10+parseInt(rgb2[1]))/11),
Math.round((parseInt(rgb1[2])*10+parseInt(rgb2[2]))/11)
];
// convert rgb to hex
var hex = RGBToHex(rgb);
batter.color = pixelColorPick(batter, hex);
if ((elements[ingredient.element].density > elements.batter.density || shiftDown) && Math.random() < 0.05) {
// 50% change to delete ingredient
if (Math.random() < 0.5) { deletePixel(ingredient.x, ingredient.y); }
else {
ingredient.color = pixelColorPick(ingredient, hex);
}
}
}
},
reactions: {
"cream": { elem2:"cake_batter", tempMin:40, chance:0.01 },
},
category: "food",
tempHigh: 94,
stateHigh: "cake",
stateHighColorMultiplier: 0.9,
burn:40,
burnTime:25,
burnInto:"ash",
state: "liquid",
viscosity: 10000,
density: 1001,
hidden: true,
isFood: true
}
elements.batter.whiskInto = "cake_batter";
elements.milk.stateHigh = ["steam","steam","condensed_milk"];
elements.condensed_milk = {
color: "#f2f0df",
behavior: behaviors.LIQUID,
reactions: {
"cell": { elem1:"yogurt", chance:0.1 },
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"clay_soil": { elem1: null, elem2: "clay" },
"caramel": { color1:"#C8B39A", elem2:null, chance:0.05 },
"sugar": { color1:"#fffbf0", elem2:null, chance:0.5},
},
tempLow: 0,
stateLow: "ice_cream",
stateLowColorMultiplier: [0.97,0.93,0.87],
tempHigh: 500,
stateHigh: ["smoke","smoke","smoke","quicklime"],
viscosity: 1500,
category: "food",
state: "liquid",
density: 1036.86,
isFood: true,
alias: "evaporated_milk"
}
elements.wasabi = {
color: ["#82b55b","#6cad50","#7dcc5c"],
behavior: behaviors.STURDYPOWDER2,
reactions: {
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"clay_soil": { elem1: null, elem2: "clay" },
"melted_chocolate": { color1:"#664934", elem2:null },
"chocolate": { color1:"#664934", elem2:"melted_chocolate", chance:0.05 },
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
"yolk": { elem1:"#eggnog", elem2:null, chance:0.1 },
"caramel": { color1:"#C8B39A", chance:0.05 },
"sugar": { elem2:null, chance:0.005},
},
viscosity: 1.5,
tempHigh: 1000,
stateHigh: ["smoke","smoke","smoke","steam","steam"],
category: "food",
isFood: true,
state: "solid",
density: 959.97,
}
// extremely confused part
elements.beans.name = "baked_beans";
elements.real_beans = {
name: "beans",
color: ["#e8dfc5","#d1c7ab"],
behavior: behaviors.POWDER,
category: "food",
tempHigh: 350,
stateHigh: ["fire","fire","ash"],
burn:3,
burnTime:500,
burnInto: ["fire","smoke","smoke","steam","ash"],
reactions: {
"sauce": { elem1: "beans", elem2: "beans" },
"yeast": { elem1: "fermented_beans", elem2: null, chance:0.5 }
},
state: "solid",
density: 721,
isFood: true,
alias: "soy_beans"
}
elements.fermented_beans = {
color:"#ada386",
behavior: behaviors.POWDER,
category: "food",
tempHigh: 350,
stateHigh: ["fire","fire","ash"],
burn:3,
burnTime:500,
burnInto: ["fire","smoke","smoke","steam","ash"],
state: "solid",
density: 721,
breakInto: "soy_sauce",
isFood: true,
alias: "natto"
}
elements.soy_sauce = {
color: "#480601",
behavior: behaviors.LIQUID,
tempLow: -5,
tempHigh: 105,
stateHigh: ["steam","steam","salt"],
state: "liquid",
category:"food",
density: 1200,
};
// end of confused part

239
mods/aScientistsWish.js Normal file
View File

@ -0,0 +1,239 @@
elements.carbon_monoxide = {
color: "#b5b5b5",
behavior: behaviors.GAS,
behaviorOn: [
"XX|XX|XX",
"XX|CH:fire|XX",
"XX|XX|XX",
],
category: "gases",
state: "gas",
density: 1.14,
burn: 75,
tempHigh: 609,
stateHigh: "fire",
tempLow: -192,
stateLow: "liquid_carbon_monoxide",
burntime: 5,
fireColor: "#ebba34",
reactions: {
"head": { elem1:"rotten_meat", chance:0.5 },
"body": { elem1:"rotten_meat", chance:0.5 },
"human": { elem1:"rotten_meat", chance:0.5 },
}
};
elements.liquid_carbon_monoxide = {
color: "#b5b5b5",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
density: 1.14,
tempHigh: -190,
temp: -192,
tempLow: -199,
stateLow: "ice_carbon_monoxide",
stateHigh: "carbon_monoxide",
};
elements.ice_carbon_monoxide = {
color: "#b5b5b5",
behavior: behaviors.WALL,
category: "solids",
state: "solid",
temp: -199,
density: 1.14,
tempHigh: -192,
stateHigh: "liquid_carbon_monoxide",
};
elements.carbon_monoxide_detector = {
behavior: behaviors.WALL,
desc: "give red light and electric when found Carbon Monoxide touch",
color: "#ffffff",
reactions: {
"carbon_monoxide": {"charge1":1},
},
conduct: 1,
tempHigh: 1550,
stateHigh: ["molten_metal_scrap","electric","molten_plastic"],
colorOn: "#ff0000",
movable: false,
insulate: true,
noMix: true,
category:"machines",
darkText: true,
hardness: 1,
};
elements.cpu = {
color: "#575757",
behavior: behaviors.SOLID,
category: "machines",
state: "solid",
insulate: true,
movable: false,
noMix: true,
density: 75,
tempHigh: 1414,
stateHigh: ["explosion","metal_scrap"],
reactions: {
"virus": { elem1 : null , elem2:"malware", chance:0.9 },
"metal_scrap": { elem2:"computer" },
}
};
elements.computer = {
color: "#2b2b2a",
behavior: behaviors.SOLID,
category: "machines",
state: "solid",
density: 8908,
insulate: true,
noMix: true,
movable: false,
tempHigh: 1414,
stateHigh: ["explosion","metal_scrap"],
reactions: {
"virus": { elem1 : null , elem2:"malware", chance:0.9 },
"water": { elem1: null , elem2: "electric" },
}
}
elements.electrons = {
color: "#b80606",
behavior: [
"XX|SH|XX", // shocks (adds charge)
"SH|DL%0.25|SH",
"XX|SH|XX",
],
tick: behaviors.BOUNCY,
reactions: {},
temp: 20,
category: "energy",
state: "gas",
density: 0.000003,
ignoreAir: true,
};
elements.gelatin = {
behavior: behaviors.SOLID,
category: "food",
state: "solid",
color: "#faf8ca",
breakInto: "gelatin_powder",
ignoreAir: true,
isFood: true,
};
elements.gelatin_powder = {
behavior: behaviors.POWDER,
category: "food",
state: "powder",
color: "#edeb9f",
hidden: true,
ignoreAir: true,
isFood: true,
};
elements.blueberries = {
behavior: behaviors.POWDER,
category: "food",
state: "solid",
color: ["#464196","#2e2b64"],
breakInto: "blueberries_juice",
ignoreAir: true,
isFood: true,
reactions: {
"sugar": { elem1: "blueberries_jam" },
},
};
elements.blueberries_juice = {
behavior: behaviors.LIQUID,
category: "food",
state: "liquid",
color: "#1f1c42",
hidden: true,
tempHigh: 170,
stateHigh: ["steam","sugar"],
reactions: {
ignoreAir: true,
isFood: true,
"gelatin": { elem1: "blueberries_jelly", elem2: null },
"gelatin_powder": { elem1: "blueberries_jelly", elem2: null },
},
};
elements.blueberries_jam = {
behavior: behaviors.LIQUID,
category: "food",
viscosity: 5000,
state: "liquid",
tempHigh: 200,
stateHigh: ["smoke","sugar"],
color: "#080629",
hidden: true,
ignoreAir: true,
isFood: true,
};
elements.blueberries_jelly = {
behavior: behaviors.LIQUID,
category: "food",
viscosity: 200000,
state: "liquid",
color: "#59559e",
hidden: true,
tempHigh: 200,
stateHigh: ["smoke","sugar"],
tempLow: -5,
stateLow: ["sugar_ice","sugar_ice","juice_ice"],
ignoreAir: true,
isFood: true,
};
elements.fallout_drum = {
behavior: behaviors.WALL,
category: "radiated",
state: "solid",
density: 9000,
color: "#e3cc34",
breakInto: ["fallout","fallout"],
reactions: {
"water": { elem1:"fallout_drum", elem2:"radiated_water" },
}
};
elements.radiated_water = {
behavior: behaviors.LIQUID,
category: "radiated",
state:"liquid",
density :1300,
color: ["#23d959","#29d65d"],
hidden: true,
reactions: {
"human": { elem2:"rotten_meat" },
"body": { elem2:"rotten_meat" },
"head": { elem2:"ash" },
"bird": { elem2:"rotten_meat"},
"cell": { elem2:"cancer"},
}
};
elements.polluted_air = {
behavior: behaviors.GAS,
category: "radiated",
state:"gas",
density :10,
color: ["#60f53b","#65ba50"],
reactions: {
"body": { elem2:"rotten_meat" },
"head": { elem2:"rotten_meat" },
"human": { elem2:"rotten_meat" },
"bird": { elem2:"rotten_meat" },
"cell": { elem2:"cancer"},
}
};
elements.siren = {
desc: "Detecting Nuclear Radiation Residues",
behavior: behaviors.WALL,
category: "machines",
state:"solid",
density :500,
color: "#808080",
reactions: {
"fallout": {"charge1":1},
"radiated_water": {"charge1":1},
"polluted_air": {"charge1":1},
}
}

164
mods/community_desserts.js Normal file
View File

@ -0,0 +1,164 @@
/*
* Mod created by Tisquares
* Every dessert idea is provided by the community.
* Don't see your favorite dessert? Let me know!
*
* Got questions? Contact tisqbisque on Discord!
*/
// Dulce de leche items - BASE COMPLETE
elements.dulce_de_leche = {
color: ["#c56600","#f7a204","#ca6400","#893604"],
category: "Community",
behavior: behaviors.STURDYPOWDER,
tempHigh: 250,
stateHigh: ["fragrance","smoke","smoke"],
hidden: true,
desc: "Added in the first version of the mod. From undexconocidox_26419.\n"
}
elements.sweetened_condensed_milk = {
color: ["#ffe9ba","#fbd396","#fde2a9"],
category: "Community",
behavior: behaviors.LIQUID,
tempHigh: 175,
stateHigh: "dulce_de_leche",
hidden: true,
desc: "Added in the first version of the mod. Made by mixing Milk and Sugar at 85°C+.\n",
}
// Chocotorta items - BASE COMPLETE
elements.cream_cheese = {
color: ["#ebe9ea","#e4dfdd","#eeeeee"],
category: "Community",
behavior: behaviors.SUPPORTPOWDER,
hidden: true,
desc: "Added in the first version of the mod. Made by mixing Acid with Milk or Cream.\n",
}
elements.cocoa_bean = {
color: ["#e16f51","#e28e67","#e18550","#84574d"],
category: "Community",
behavior: behaviors.STURDYPOWDER,
breakInto: "cocoa_powder",
desc: "Added in the first version of the mod.\n",
}
elements.cocoa_powder = {
color: ["#855344","#6d4c41","#40271d"],
behavior: behaviors.POWDER,
onMix: function(powder, doughcheck) {
if (doughcheck.name == "dough" && shiftDown && Math.random() < 0.01) {
changePixel(powder,"chocolate_biscuit_dough");
changePixel(doughcheck,"chocolate_biscuit_dough");
}
},
reactions: {
"dough": { elem1:null, elem2:"chocolate_biscuit_dough" },
},
category: "Community",
hidden: true,
desc: "Added in the first version of the mod. Made by Smashing Cocoa Bean.\n",
}
elements.chocolate_biscuit_dough = {
name: "choco_Biscuit_Dough",
color: "#623727",
category: "Community",
behavior: behaviors.STURDYPOWDER,
tempHigh: 94,
stateHigh: "chocolate_biscuit",
burn: 40,
burnTime: 25,
burnInto: "ash",
state: "solid",
density: 526.9,
isFood: true,
hidden: true,
desc: "Added in the first version of the mod. Made by mixing Cocoa Powder with Dough.\n",
}
elements.chocolate_biscuit = {
name: "choco_Biscuit",
color: "#864B36",
behavior: behaviors.STURDYPOWDER,
tempHigh: 550,
stateHigh: ["smoke","smoke","smoke","ash"],
breakInto: "crumb",
state: "solid",
density: 233.96,
isFood: true,
category: "Community",
hidden: true,
desc: "Added in the first version of the mod. Made by cooking Choco Biscuit Dough at 94°C+. Can be layered with other items to make chocotorta, from undexconocidox_26419.\n",
}
// Haupia items - BASE COMPLETE
elements.coconut = {
color: ["#793b1e","#995c31","#5f3015"],
behavior: behaviors.POWDER,
breakInto: ["coconut_milk","tinder"],
category: "Community",
desc: "Added in the first version of the mod.\n",
}
elements.coconut_milk = {
color: ["#f3f3f3","#e4ddcb","#f8f8f8"],
behavior: behaviors.LIQUID,
category: "Community",
reactions: {
"sugar": { elem1:null, elem2:"haupia_mix", tempMin:90 },
},
density: 1031.33,
hidden: true,
desc: "Added in the first version of the mod. Made by smashing Coconut.\n",
}
elements.haupia_mix = {
color: ["#f3f3f3","#e4ddcb","#f8f8f8"],
behavior: behaviors.LIQUID,
tempLow: 3,
category: "Community",
stateLow: "haupia",
density: 1242.67,
hidden: true,
desc: "Added in the first version of the mod. Made by mixing Coconut Milk and Sugar at 90°C+.\n",
}
elements.haupia = {
color: ["#ffffff","#f8f8f8","#f7f9f8"],
behavior: behaviors.SUPPORT,
density: 1300,
category: "Community",
hidden: true,
desc: "Added in the first version of the mod. Made by cooling Haupia Mix at 3°C-. From tisqbisque.\n"
}
// Adjusting existing elements here
elements.milk.reactions = {
"melted_chocolate": { elem1:"chocolate_milk", elem2:null },
"chocolate": { elem1:"chocolate_milk", elem2:"melted_chocolate", chance:0.05 },
"coffee_ground": { elem1:"chocolate_milk", chance:0.05 },
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
"yolk": { elem1:"eggnog", elem2:null, chance:0.1 },
"cell": { elem1:"yogurt", chance:0.1 },
"ash": { elem1:"soap", chance:0.1 },
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"clay_soil": { elem1: null, elem2: "clay" },
"caramel": { color1:"#C8B39A", elem2:null, chance:0.05 },
// Start mod items here
"sugar": { elem1:"sweetened_condensed_milk", elem2:null, chance:0.05, tempMin:85 },
"acid": { elem1:null, elem2:"cream_cheese", chance:0.8 },
}
elements.cream.reactions = {
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"clay_soil": { elem1: null, elem2: "clay" },
"melted_chocolate": { color1:"#664934", elem2:null },
"chocolate": { color1:"#664934", elem2:"melted_chocolate", chance:0.05 },
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
"yolk": { elem1:"#eggnog", elem2:null, chance:0.1 },
"caramel": { color1:"#C8B39A", chance:0.05 },
"sugar": { elem2:null, chance:0.005},
// Start mod items here
"acid": { elem1:null, elem2:"cream_cheese", chance:0.8 },
}
// Mod items first
elements.acid.ignore = ["cream_cheese","cream","milk",
"glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone"];

View File

@ -256,9 +256,13 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
}
// ugly way of doing it but probably works
// it didnt - me 8 months later
const checkType = (key, value) => {
if (key == "behavior" && (typeof value == "function" || (value instanceof Array && value.filter(e => typeof e == "string").length == value.length))) return true;
else if (key == "behavior") return false;
if (key == "behavior") {
const constructed = constructBehavior(value);
if (constructed == undefined || (Array.isArray(constructed) && constructed.some(a => typeof a != "string"))) return false;
return true;
}
if (["darkText", "hidden", "insulate", "noMix", "isFood", "forceAutoGen", "customColor", "ignoreAir", "excludeRandom", "burning", "flipX", "flipY", "flippableX", "flippableY"].includes(key) && typeof value != "boolean") return false;
if (["name", "category", "desc", "alias", "seed", "baby", "state", "stateHigh", "stateHighName", "stateHighColor", "stateLow", "stateLowNmae", "stateLowColor"].includes(key) && typeof value != "string") return false;
if (["id", "burn", "burnTime", "stateHighColorMultiplier", "stateLowColorMutliplier", "temp", "tempHigh", "extraTempHigh", "tempLow", "extraTempLow"].includes(key) && typeof value != "number") return false;
@ -269,24 +273,29 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
return true;
}
const constructBehavior = (behavior) => {
if (typeof behavior == "function" || Array.isArray(behavior)) return behavior;
if (typeof behavior != "string") return undefined;
return behavior.split(";");
}
const loadChanges = () => {
const newElements = Storage.get("elements", []);
for (const element of newElements) {
const element_ = element;
if (Object.keys(behaviors).includes(element_["behavior"])) element_["behavior"] = behaviors[element_["behavior"]];
if (Object.keys(behaviors).includes(element["behavior"])) element["behavior"] = behaviors[element["behavior"]];
elements[element.name] = {};
// elements[element.name] = element_;
for (const key of Object.keys(element_)) {
const val = element_[key];
if (checkType(key, val)) elements[element.name][key] = val;
for (const key of Object.keys(element)) {
const val = element[key];
if (checkType(key, val)) elements[element.name][key] = key == "behavior" ? constructBehavior(val) : val;
else if (["name", "category"].includes(key)) elements[element.name][key] = key == "name" ? "NewElement" : "other";
}
}
const changes = Storage.get("changes", []);
for (const change of changes) {
for (const key of Object.keys(change.changes)) {
const c = change.changes[key];
if (checkType(key, c)) elements[change.element][key] = c;
let c = change.changes[key];
if (key == "behavior" && Object.keys(behaviors).includes(c)) c = behaviors[c];
if (checkType(key, c)) elements[change.element][key] = key == "behavior" ? constructBehavior(c) : c;
}
}
const deleted = Storage.get("deletedElements", []);
@ -547,7 +556,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
el.style.display = "none";
el.onchange = (ev) => {
if (document.getElementById(id).value == "CUSTOM") {
applyChange(prop.name, ev.target.value.split(";").map(e => e.split(",")));
applyChange(prop.name, ev.target.value);
} else {
ev.target.style.display = "none";
}
@ -658,7 +667,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
el.onchange = (ev) => {
if (document.getElementById(id).value == "CUSTOM") {
const elementData = Storage.get("newElement", {});
elementData[prop.name] = ev.target.value.split(";").map(e => e.split(","));
elementData[prop.name] = ev.target.value.split(";");
Storage.set("newElement", elementData);
} else {
ev.target.style.display = "none";
@ -961,22 +970,33 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
else el.setAttribute("value", "none");
}
} else {
if (element[prop.name]) {
if (element[prop.name] || prop.name == "behavior") {
if (prop.type == "boolean") {
el.setAttribute("value", element[prop.name] ? "ON" : "OFF");
el.setAttribute("state", element[prop.name] ? "1" : "0");
} else if (prop.type == "color") {
el.setAttribute("value", parseColor(element[prop.name]));
} else if (prop.name == "behavior") {
const behavior = element[prop.name];
const index = Object.keys(behaviors).map(b => `${behaviors[b] instanceof Array ? behaviors[b].join(";") : behaviors[b]}`).indexOf(behavior instanceof Array ? behavior.join(";") : behavior);
if (index == -1) {
document.getElementById(id + "/option/custom").selected = true;
document.getElementById(id + "/textInput").style.display = "";
document.getElementById(id + "/textInput").setAttribute("value", behavior.join(";"))
} else {
let behavior = element[prop.name];
if (!behavior && element.tick) behavior = element.tick;
if (typeof behavior == "function" && behavior.name) {
const name = behavior.name;
const index = Object.keys(behaviors).indexOf(name);
document.getElementById(id + "/textInput").style.display = "none";
document.getElementById(id + "/option/" + index).selected = true;
document.getElementById(id + "/option/" + (index == -1 ? "none" : index)).selected = true;
} else if (typeof behavior == "function") {
document.getElementById(id + "/textInput").style.display = "none";
document.getElementById(id + "/option/none").selected = true;
} else {
const index = Object.keys(behaviors).map(b => `${behaviors[b] instanceof Array ? behaviors[b].join(";") : behaviors[b]}`).indexOf(behavior instanceof Array ? behavior.join(";") : behavior);
if (index == -1) {
document.getElementById(id + "/option/custom").selected = true;
document.getElementById(id + "/textInput").style.display = "";
document.getElementById(id + "/textInput").setAttribute("value", behavior.map(b => b.join("|")).join(";"))
} else {
document.getElementById(id + "/textInput").style.display = "none";
document.getElementById(id + "/option/" + index).selected = true;
}
}
} else {
el.setAttribute("value", element[prop.name] instanceof Function ? element[prop.name].toString() : element[prop.name]);

View File

@ -1,3 +1,45 @@
elements.better_bomb = {
color: "#823d30",
behavior: [
"XX|EX:20|XX",
"XX|XX|XX",
"M2|M1 AND EX:20|M2",
],
category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown
}
elements.strong_bomb = {
color: "#09fd62",
behavior: [
"XX|EX:50|XX",
"XX|XX|XX",
"M2|M1 AND EX:50|M2",
],
category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown
}
elements.bomb2 = {
color: "#68cdf4",
behavior: [
"XX|EX:75|XX",
"XX|XX|XX",
"M2|M1 AND EX:75|M2",
],
category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown
}
elements.super_bomb = {
color: "#551c41",
behavior: [
@ -131,6 +173,36 @@ elements.ice_cream_bomb = {
cooldown: defaultCooldown
}
elements.human_bomb = {
color: ["#f3e7db","#f7ead0","#eadaba","#d7bd96","#a07e56","#825c43","#604134","#3a312a"],
behavior: [
"XX|EX:15>human|XX",
"XX|XX|XX",
"M2|M1 AND EX:15>human|M2",
],
category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown,
temp: 30
}
elements.alien_bomb = {
color: ["#41ab1d","#4cbf25","#40752e","#871dab","#ac3ad2","#71278a"],
behavior: [
"XX|EX:15>alien|XX",
"XX|XX|XX",
"M2|M1 AND EX:15>alien|M2",
],
category: "weapons",
state: "solid",
density: 1300,
excludeRandom: true,
cooldown: defaultCooldown,
temp: 30
}
elements.dirty_sand = {
color: ["#a35222", "#a15122", "#7e3f1a", "#f4ba9a", "#fed3ba", "#f2b796"],
@ -1182,6 +1254,39 @@ elements.whenyouium = {
category: "solids",
state: "solid",
density: 2000,
hardness:1.01,
reactions: {"when_iium": { elem1: "whenweium" },}
}
elements.whenweium = {
color: "#7f0080",
colorPattern: [
"pppppppppp",
"pppppppppp",
"pppppppppp",
"pppppppppp",
"pppppppppp",
"pppppppppp",
"pppppppppp",
"pppgppgppp",
"pppppppppp",
"pppppppppp",
"pppppppppp",
"pggggggggp",
"pppppppppp",
"pppppppppp",
"pppppppppp",
"pppppppppp",
],
colorKey: {
"p": "#7f0080",
"g": "#808080"
},
behavior: behaviors.WALL,
category: "solids",
state: "solid",
density: 2000,
hardness:1.01
}
@ -1345,7 +1450,7 @@ elements.water_but_it_stays_liquid = {
color: "#2167ff",
behavior: behaviors.LIQUID,
category: "liquids",
heatCapacity: 1234213423423423,
heatCapacity: 1234213423423554,
reactions: {
"dirt": {
elem1: null,
@ -1438,8 +1543,6 @@ elements.paprika = {
}
}
elements.blue_paprika = {
color: ["#4ba5ff","#71a8de","#b4c7da",],
behavior: [
@ -1565,8 +1668,8 @@ elements.cool_ray = {
}
else {
if (elements[pixelMap[x][y].element].isGas) { continue }
if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
pixelMap[x][y].temp += 100;
if (elements[pixelMap[x][y].element].id === elements.cool_ray.id) { break }
pixelMap[x][y].temp += -100;
pixelTempCheck(pixelMap[x][y]);
break;
}
@ -1574,7 +1677,7 @@ elements.cool_ray = {
deletePixel(pixel.x, pixel.y);
},
temp: -3500,
category: "energy",
category: "rays",
state: "gas",
density: 1,
excludeRandom: true,
@ -1597,8 +1700,8 @@ elements.radiant_ray = {
}
else {
if (elements[pixelMap[x][y].element].isGas) { continue }
if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
pixelMap[x][y].temp += 100;
if (elements[pixelMap[x][y].element].id === elements.radiant_ray.id) { break }
pixelMap[x][y].temp += 10000;
pixelTempCheck(pixelMap[x][y]);
break;
}
@ -1606,7 +1709,7 @@ elements.radiant_ray = {
deletePixel(pixel.x, pixel.y);
},
temp: 100000000,
category: "energy",
category: "rays",
state: "gas",
density: 1,
excludeRandom: true,
@ -1629,8 +1732,8 @@ elements.sun_ray = {
}
else {
if (elements[pixelMap[x][y].element].isGas) { continue }
if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
pixelMap[x][y].temp += 100;
if (elements[pixelMap[x][y].element].id === elements.sun_ray.id) { break }
pixelMap[x][y].temp += 170;
pixelTempCheck(pixelMap[x][y]);
break;
}
@ -1638,7 +1741,7 @@ elements.sun_ray = {
deletePixel(pixel.x, pixel.y);
},
temp: 5504,
category: "energy",
category: "rays",
state: "gas",
density: 1,
excludeRandom: true,
@ -1655,7 +1758,7 @@ elements.mega_incinerate = {
}
pixelTempCheck(pixel);
},
category: "energy",
category: "tools",
excludeRandom: true
}
@ -1695,7 +1798,7 @@ elements.green_fire = {
"water": { elem1: "green_smoke" },
"steam": { elem1: "green_smoke" },
"carbon_dioxide": { elem1: "green_smoke" },
"foam": { elem1: "smoke" },
"foam": { elem1: "green_smoke" },
"dirty_water": { elem1: "green_smoke" },
"salt_water": { elem1: "green_smoke" },
"sugar_water": { elem1: "green_smoke" },
@ -1711,7 +1814,7 @@ elements.green_fire = {
category: "energy",
burning: true,
burnTime: 25,
burnInto: "smoke",
burnInto: "green_smoke",
state: "gas",
density: 0.1,
ignoreAir: true,
@ -1858,9 +1961,9 @@ elements.heavy_water = {
color: "#1237ff",
behavior: behaviors.LIQUID,
tempHigh: 100,
stateHigh: "steam",
stateHigh: "heavy_steam",
tempLow: 0,
stateLow: "ice",
stateLow: "heavy_ice",
category: "liquids",
heatCapacity: 4.184,
reactions: {
@ -1875,25 +1978,25 @@ elements.heavy_water = {
"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 },
"dust": { elem1: "dirty_heavy_water", elem2: null },
"ash": { elem1: "dirty_heavy_water", elem2: null },
"cyanide": { elem1: "dirty_heavy_water", elem2: null },
"cyanide_gas": { elem1: "dirty_heavy_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 },
"sulfur": { elem1: "dirty_heavy_water", elem2: null },
"rat": { elem1: "dirty_heavy_water", chance:0.005 },
"plague": { elem1: "dirty_heavy_water", elem2: null },
"rust": { elem1: "dirty_heavy_water", chance:0.005 },
"lead": { elem1: "dirty_heavy_water", chance:0.005 },
"solder": { elem1: "dirty_heavy_water", chance:0.005 },
"fallout": { elem1: "dirty_heavy_water", chance:0.25 },
"radiation": { elem1: "dirty_heavy_water", chance:0.25 },
"uranium": { elem1: "dirty_heavy_water", chance:0.25 },
"rotten_meat": { elem1: "dirty_heavy_water", chance:0.25 },
"rotten_cheese": { elem1: "dirty_heavy_water", chance:0.25 },
"cancer": { elem1: "dirty_heavy_water", chance:0.25 },
"oil": { elem1: "dirty_heavy_water", chance:0.005 },
"dioxin": { elem1: "dirty_heavy_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 },
@ -1908,24 +2011,144 @@ elements.heavy_water = {
"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 },
"aluminum": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.0025 },
"zinc": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.015 },
"steel": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.0125 },
"iron": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.0125 },
"tin": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.01 },
"brass": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.001 },
"bronze": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.001 },
"copper": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.0075 },
"silver": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.0075 },
"gold": { elem1:["deuterium","deuterium","oxygen"], charged:true, chance:0.0075 },
},
state: "liquid",
density: 1105.2,
conduct: 0.02,
stain: -0.5,
extinguish: true
extinguish: true,
alias: "Deuterium Oxide"
}
elements.dirty_heavy_water = {
color: ["#0e8240","#077550","#0c6930"],
behavior: behaviors.LIQUID,
tempHigh: 105,
stateHigh: ["heavy_steam","carbon_dioxide"],
tempLow: -5,
stateLowName: "dirty_heavy_ice",
viscosity: 10,
category: "liquids",
reactions: {
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"clay_soil": { elem1: null, elem2: "clay" },
"rock": { elem2: "wet_sand", chance: 0.0004 },
"limestone": { elem2: "wet_sand", chance: 0.0004 },
"plant": { elem1:"heavy_water", chance:0.05 },
"algae": { elem1:"heavy_water", chance:0.05 },
"charcoal": { elem1:"heavy_water", chance:0.02 },
"gravel": { elem1:"heavy_water", chance:0.01 },
"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 }
},
hidden: true,
state: "liquid",
density: 1113,
conduct: 0.1,
extinguish: true
},
elements.heavy_ice = {
color: "#b2daeb",
behavior: behaviors.WALL,
temp: -5,
tempHigh: 5,
stateHigh: "heavy_water",
category: "solids",
state: "solid",
density: 1016.5,
breakInto: "heavy_snow"
}
elements.heavy_snow = {
color: "#e1f8fc",
behavior: behaviors.POWDER,
reactions: {
"water": { elem1:"heavy_slush", elem2:"heavy_slush" },
"salt_water": { elem1:"heavy_slush", elem2:"heavy_slush" },
"dirty_water": { elem1:"heavy_slush", elem2:"heavy_slush" },
"pool_water": { elem1:"heavy_slush", elem2:"heavy_slush" },
"sugar_water": { elem1:"heavy_slush", elem2:"heavy_slush" },
"seltzer": { elem1:"heavy_slush", elem2:"heavy_slush" },
"uranium": { elem1:"dirty_heavy_water", chance:0.001 },
},
temp: -5,
tempHigh: 18,
stateHigh: "heavy_water",
category: "land",
state: "solid",
density: 110.9
}
elements.heavy_slush = {
color: "#81bcd4",
behavior: behaviors.LIQUID,
reactions: {
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"uranium": { elem1:"dirty_heavy_water", chance:0.25 },
},
temp: -5,
tempHigh: 18,
tempLow: -20,
stateLow: "heavy_ice",
stateHigh: "heavy_water",
category: "liquids",
state: "liquid",
density: 105.3,
viscosity: 100,
hidden: true
}
elements.heavy_steam = {
color: "#abd6ff",
behavior: behaviors.GAS,
reactions: {
"heavy_steam": { elem1: null, elem2: "cloud", chance:0.3, "y":[0,15], "setting":"clouds" },
"rain_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
"cloud": { elem1: "cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
"snow_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
"hail_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
"thunder_cloud": { elem1: "rain_cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
"pyrocumulus": { elem1: "cloud", chance:0.4, "y":[0,12], "setting":"clouds" },
"anesthesia": { elem1:"acid_cloud", elem2:null, chance:0.05, "y":[0,12], "setting":"clouds" },
"fire_cloud": { elem1: "cloud", elem2: "pyrocumulus", chance:0.4, "y":[0,12], "setting":"clouds" },
"smoke": { elem1: "smog", elem2: null, chance:0.001 },
"carbon_dioxide": { elem1: "smog", elem2: null, chance:0.001 },
"plasma": { elem1:"ozone", tempMin:500, charged:true },
"copper": { elem1:"oxygen", elem2:"oxidized_copper", chance:0.01 },
"bronze": { elem1:"oxygen", elem2:"oxidized_copper", chance:0.005 },
"iron": { elem1:"oxygen", elem2:"rust", chance:0.005 },
"steel": { elem1:"oxygen", elem2:"rust", chance:0.004 },
},
temp: 150,
tempLow: 95,
extraTempLow: {
0: "rime"
},
stateLow: "heavy_water",
category: "gases",
state: "gas",
density: 0.6,
conduct: 0.002,
stain: -0.05,
alias: "heavy water vapor",
extinguish: true
},
elements.led_y = {
behavior: behaviors.WALL,
reactions: {
@ -2068,6 +2291,20 @@ elements.silvanium = {
hardness: 0.48
}
elements.silvanium_alite = {
behavior: behaviors.WALL,
reactions: {
"light": {"charge1":1},
"liquid_light": {"charge1":1},
},
color: ["#7d5ebb", "#9c7bde", "#502d96"],
colorOn: ["#e62525", "#79d64b"],
category: "solids",
tempHigh: 1052224,
conduct: 0.37,
hardness: 0.91
}
elements.silvanium_sulfate = {
behavior: behaviors.WALL,
reactions: {
@ -2675,8 +2912,6 @@ elements.cooked_chicken = {
},
tempHigh: 300,
stateHigh: "ash",
tempLow: -18,
stateLow: "frozen_meat",
category:"food",
burn:15,
burnTime:200,
@ -2845,7 +3080,222 @@ elements.otherworldy_dirt = {
tempHigh: 5600,
category:"land",
state: "solid",
density: 8321
density: 8321,
fireColor: ["#4259ff","#697aff","#5361ca"],
}
elements.liquid_fire = {
color: ["#ff6b21","#ffa600","#ff4000"],
behavior: behaviors.LIQUID,
reactions: {
"water": { elem1: "smoke" },
"steam": { elem1: "smoke" },
"carbon_dioxide": { elem1: "smoke" },
"foam": { elem1: "smoke" },
"dirty_water": { elem1: "smoke" },
"salt_water": { elem1: "smoke" },
"sugar_water": { elem1: "smoke" },
"seltzer": { elem1: "smoke" },
"pool_water": { elem1: "smoke" },
"oxygen": { elem2: null, chance:0.1 },
},
temp:600,
tempLow:100,
stateLow: "smoke",
tempHigh: 7000,
stateHigh: "plasma",
category: "special",
state: "liquid",
density: 0.1,
ignoreAir: true,
noMix: true
}
elements.unincinerate = {
color: ["#e600ff","#d984d8","#ff00e1"],
tool: function(pixel) {
pixel.temp += -10000;
if (!pixel.burning && elements[pixel.element].burn) {
pixel.burning = true;
pixel.burnStart = pixelTicks;
}
pixelTempCheck(pixel);
},
category: "tools",
excludeRandom: true
}
elements.plasmageddon = {
color: "#7f19a7",
behavior: [
"XX|XX|XX",
"XX|EX:10>plasmageddon,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma%25 AND DL%10|XX",
"XX|XX|XX",
],
category: "weapons",
state: "solid",
density: 1300,
hidden: true,
excludeRandom: true,
maxSize: 1,
cooldown: defaultCooldown
}
elements.wetgeddon = {
color: "#1953a6",
behavior: [
"XX|XX|XX",
"XX|EX:10>wetgeddon,water,water,water,water,water,water,water,water,water,water,water,water%25 AND DL%2|XX",
"XX|XX|XX",
],
category: "weapons",
state: "solid",
density: 1300,
hidden: true,
excludeRandom: true,
maxSize: 1,
cooldown: defaultCooldown
}
elements.eternal_wetgeddon = {
color: "#1953a6",
behavior: [
"XX|XX|XX",
"XX|EX:10>eternal_wetgeddon,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid,water_but_it_stays_liquid%25 AND DL%2|XX",
"XX|XX|XX",
],
category: "weapons",
state: "solid",
density: 1300,
hidden: true,
excludeRandom: true,
maxSize: 1,
cooldown: defaultCooldown
}
elements.fast_armageddon = {
color: "#a62900",
behavior: [
"XX|XX|XX",
"XX|EX:10>armageddon,fire,fire,fire,fire,fire,fire,fire,fire,fire,fire,fire,fire%50 AND DL%10|XX",
"XX|XX|XX",
],
category: "weapons",
state: "solid",
density: 1300,
hidden: true,
excludeRandom: true,
maxSize: 1,
cooldown: defaultCooldown
}
elements.turtle = {
color: ["#249f20", "#124e10"],
behavior: [
"SW:water%3|XX|SW:water%3",
"M2%3|XX|M2%3",
"SW:water%3|M1 AND CR:turtle_egg%0.05|SW:water%3",
],
reactions: {
"ash": { elem2:[null,null,null,null,null,null,null,null,null,null,"dirt"], chance:0.1, func:behaviors.FEEDPIXEL },
"crumb": { elem2:[null,null,null,null,null,null,null,null,null,null,"dirt"], chance:0.1, func:behaviors.FEEDPIXEL },
"sawdust": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"dust": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"rotten_meat": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
"yolk": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL },
"frog": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"tadpole": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"worm": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"snail": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"slug": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"fish": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"mudstone": { elem2:"dirt", chance:0.1 },
"permafrost": { elem2:"dirt", chance:0.1 },
"packed_sand": { elem2:"sand", chance:0.1 },
"alcohol": { elem1:null, chance:0.005 },
},
tempHigh: 100,
stateHigh: "ash",
tempLow: 0,
stateLow: "frozen_meat",
category:"life",
breakInto: ["crushed_shell", "blood"],
burn:20,
burnTime:50,
state: "solid",
density: 1050,
conduct: 0.17
}
elements.baby_turtle = {
color: ["#249f20", "#124e10"],
behavior: [
"SW:water%3|XX|SW:water%3",
"M2%3|CH:turtle%0.01|M2%3",
"SW:water%3|M1|SW:water%3",
],
reactions: {
"ash": { elem2:[null,null,null,null,null,null,null,null,null,null,"dirt"], chance:0.1, func:behaviors.FEEDPIXEL },
"crumb": { elem2:[null,null,null,null,null,null,null,null,null,null,"dirt"], chance:0.1, func:behaviors.FEEDPIXEL },
"sawdust": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"dust": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"rotten_meat": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
"yolk": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL },
"frog": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"tadpole": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"worm": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"snail": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"slug": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"fish": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL },
"mudstone": { elem2:"dirt", chance:0.1 },
"permafrost": { elem2:"dirt", chance:0.1 },
"packed_sand": { elem2:"sand", chance:0.1 },
"alcohol": { elem1:null, chance:0.005 },
},
tempHigh: 100,
stateHigh: "ash",
tempLow: 0,
stateLow: "frozen_meat",
category:"life",
breakInto: ["crushed_shell", "blood"],
burn:20,
burnTime:50,
state: "solid",
density: 1050,
conduct: 0.17
}
elements.shell = {
color: ["#cca47c","#adbb63","#559d81","#d7a073","#d9b297"],
behavior: behaviors.WALL,
category: "solids",
hardness: 0.2,
noMix: false,
breakInto: "crushed_shell"
}
elements.crushed_shell = {
color: ["#cca47c","#adbb63","#559d81","#d7a073","#d9b297"],
behavior: behaviors.POWDER,
category: "powders",
hardness: 0.2,
noMix: false,
}
elements.turtle_egg = {
color: ["#a9c7ce","#83c1cf"],
behavior: behaviors.SUPPORTPOWDER , behavior: [
"XX|XX|XX",
"XX|CH:baby_turtle%0.02|XX",
"XX|M1|XX",
],
category: "life",
hardness: 0.2,
noMix: false,
breakInto: "crushed_shell"
}
if (!elements.sand.reactions) { elements.sand.reactions = {} }
@ -2882,6 +3332,11 @@ runAfterAutogen(() => {
elements.molten_sulfur.reactions.silvanium = { elem1:"silvanium_sulfate", elem2:"silvanium_sulfate" }
})
runAfterAutogen(() => {
if (!elements.molten_silvanium.reactions) { elements.molten_silvanium.reactions = {} }
elements.molten_silvanium.reactions.molten_alienite = { elem1:"silvanium_alite", elem2:"silvanium_alite" }
})
if (!elements.wall.reactions) { elements.wall.reactions = {} }
elements.wall.reactions.plasma3 = { elem1:"plasma3", elem2:"plasma3" }
@ -2919,5 +3374,15 @@ elements.when_iium.reactions.when_i_particles = { elem1:"when_i_particles", elem
if (!elements.ash.reactions) { elements.ash.reactions = {} }
elements.ash.reactions.dust = { elem1:"dusty_ash", elem2:"dusty_ash" }
elements.steel.hardness = 0.85
// important colors: ["#000000", "#edff00", "#3a3a3a", "#ff0000"], ["#82c0ff", "#ff8282"],
elements.uncharge.category = "tools"
elements.incinerate.category = "tools"
elements.room_temp.category = "tools"
elements.heat_ray.category = "rays"
// important colors: ["#000000", "#edff00", "#3a3a3a", "#ff0000"], ["#82c0ff", "#ff8282"], ["#cca77c","#ad8b63","#b59d81","#c7a073","#c9b297"],