diff --git a/lang/README.txt b/lang/README.txt
new file mode 100644
index 00000000..085b1bb6
--- /dev/null
+++ b/lang/README.txt
@@ -0,0 +1,5 @@
+Translation updates to this GitHub repo are no longer accepted!
+
+If you'd like to contribute translations, you must use the new Crowdin system here: https://crowdin.com/editor/sandboxels
+
+For more information, see the Translation Page: https://sandboxels.r74n.com/translate
diff --git a/mod-list.html b/mod-list.html
index a6235e3f..323ff02e 100644
--- a/mod-list.html
+++ b/mod-list.html
@@ -188,6 +188,7 @@
boiling_things.js Allows for various elements to be vaporized Alice
bouncing_balls.js Adds new types of balls that bounce accurately and roll. Nekonico
chalcopyrite.js Adds the chalcopyrite ore Sophie
+charsonsmoduno.js Adds Arsenic, Beryllium, Silicon, compounds, and some non-realistic stuff, such as Aresium and Nahnium CharsonBurensen
chem.js Adds several chemistry and physics-related elements lllllllllwith10ls
clf3.js Adds Chlorine Trifluoride Alice
debrisable.js Expands the number of breakable elements, changes erosion, and adds way to craft certain elements from breaking other elements. Nekonico
@@ -203,6 +204,7 @@
jaydstuff.js Adds various chemicals and compounds Jayd
laetium.js Adds several fictional elements Alice
liquid_energy.js Adds liquid versions of the elements in the Energy category Alice
+liquid_mixing.js Allows liquids to mix colors dynamically Nekonico
lye.js Adds lye BatteRaquette58
mars.js Adds some things from Mars with 2 minerals to smelt. charcoal_afterlife
metals.js Adds several metals Alice
@@ -341,14 +343,15 @@
haseulite.js Adds Loona-related materials with various properties Alice
lactose_intolerance_and_celiac.js Makes humans explode on contact with milk, wheat, bread, or toast Nubo318
lattice_filler.js Adds a combination of lattice and filler and adds a destructive variant Suss
+liquid_mixing.js Allows liquids to mix colors dynamically Nekonico
lone_urea.js Adds urea without the rest of the piss mod Alice
maze.js Adds a solvable maze generator ggod
memelists.js Makes it so you must select elements through a list at the bottom of the page. We like lists mollthecoder
minecraft.js Adds several things from Minecraft StellarX20, nousernamefound
minesweeper.js A subpar implementation of Minesweeper Alice
musicalfruit.js Humans get gas from eating Beans mollthecoder
-nekonicos_stuff.js Some random stuff like graphite and oobleck. Nekonico
-prideflags.js Adds some pride flags to the game. Adora
+nekonicos_stuff.js Some random stuff like graphite, oobleck, and red ice Nekonico
+prideflags.js Adds some pride flags to the game Adora
random_elems.js Curated randomly generated elements Alice
random_liquids.js Randomly generates liquids on game load Alice
sbmixup.js Adds silly elements from a Mix-Up! game stefanblox
@@ -368,6 +371,7 @@
invisible_dye.js Adds elements like Dye and Spray Paint that take the color of the background Alice
invisible_wall.js Adds an element like Wall that takes the color of the background Alice
lightmap.js Makes light sources glow RedBirdly
+liquid_mixing.js Allows liquids to mix colors dynamically Nekonico
moreViews.js Many new rendering modes ggod
nicer_flame.js Makes fire visually pleasing RedBirdly
occlusion.js Adds realistic shadows (similar to Terraria's lighting) RedBirdly
diff --git a/mods/RF_transmitter_receiver.js b/mods/RF_transmitter_receiver.js
index fb3eef7a..0b20c498 100644
--- a/mods/RF_transmitter_receiver.js
+++ b/mods/RF_transmitter_receiver.js
@@ -43,7 +43,7 @@ elements.rf_transmitter = {
// RF Receiver Element
elements.rf_receiver = {
color: "#142c47",
- category: "Machines",
+ category: "machines",
behaviors: behaviors.WALL,
tempHigh: 250,
stateHigh: "dirt",
diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js
index fca8f545..b7cdb421 100644
--- a/mods/a_mod_by_alice.js
+++ b/mods/a_mod_by_alice.js
@@ -1,5 +1,5 @@
var modName = "mods/../a_mod_by_alice.js" //can't do "alice's mod" because the apostrophe will fuck up code, be too confusing, or both
-//Version ω0.2 [???]
+//Version ω0.3 [Corium update]
var dependencies = ["mods/libhooktick.js", "mods/chem.js", "mods/minecraft.js", "mods/Neutronium Mod.js", "mods/fey_and_more.js", "mods/velocity.js", "mods/ketchup_mod.js", "mods/moretools.js", "mods/aChefsDream.js", "mods/nousersthings.js"]; //thanks to mollthecoder, PlanetN9ne, StellarX20 (3), MelecieDiancie, R74n, Nubo318, Sightnado, SquareScreamYT, and NoUsernameFound
var dependencyExistence = dependencies.map(x => enabledMods.includes(x));
var allDependenciesExist = dependencyExistence.reduce(function(a,b) { return a && b });
@@ -2695,11 +2695,12 @@ color1 and color2 spread through striped paint like dye does with itself. col
booleanSynonyms = [ "boolean", "bool", "boole", "boo", "bo", "bl", "b" ];
arraySynonyms = [ "arr", "a", "ar", "list" ];
defaultStringTypeValues = ["element","color","clone","changeTo","void","type","spawn"];
- defaultNumberTypeValues = ["x","y","charge","temp","start","vx","vy","chargeCD","start","burnStart","dir","panic","r","frequency","length","delay","volume","debounce","debounceLength","speed","fall","penetrateCounter","chargeCounter","spawnCounter","spawnTime","squadiusX","squadiusY","spawnTries","counter","attachDirection","value","range","xSpacing","ySpacing","maxPixels","explosionRadius","circleRadius","breakAroundRadius"];
+ defaultNumberTypeValues = ["x","y","charge","temp","start","vx","vy","chargeCD","start","burnStart","dir","panic","r","frequency","length","delay","volume","debounce","debounceLength","speed","fall","penetrateCounter","chargeCounter","spawnCounter","spawnTime","squadiusX","squadiusY","spawnTries","counter","attachDirection","value","range","xSpacing","ySpacing","maxPixels","explosionRadius","circleRadius","breakAroundRadius","radiation"];
defaultBooleanTypeValues = ["burning","dead","hissing","following","dirLocked","del","didChargeBlueTinted","shooting","del","spawnAtPixelTemp","overwrite"];
defaultArrayTypeValues = ["attachOffsets"];
synonymsOfTrue = ["true", "t", "1", "yes"];
synonymsOfFalse = ["false", "f", "0", "no"];
+ //FORCE DATA FOOTER TO 2 LINES SO IT NEVER HIDES INFO
//ENABLE RUNNING CODE AFTER STATE ELEMENT AUTOGENERATION (runAfterAutogen) ##
resizeCanvas = function(newHeight,newWidth,newPixelSize,clear) {
var gameCanvas = document.getElementById("game");
@@ -4405,6 +4406,12 @@ color1 and color2 spread through striped paint like dye does with itself. col
pixel1[key] = r.attr1[key];
}
}
+ if (r.propAdds1) { // add value to each attribute to pixel1
+ for (var key in r.propAdds1) {
+ pixel1[key] ??= 0;
+ pixel1[key] += r.propAdds1[key]
+ }
+ }
if (r.stain1) { stainPixel(pixel1,r.stain1,0.05); }
if (r.elem2 !== undefined) {
// if r.elem2 is an array, set elem2 to a random element from the array, otherwise set it to r.elem2
@@ -4429,6 +4436,12 @@ color1 and color2 spread through striped paint like dye does with itself. col
pixel2[key] = r.attr2[key];
}
}
+ if (r.propAdds2) { // add value to each attribute to pixel2
+ for (var key in r.propAdds2) {
+ pixel2[key] ??= 0;
+ pixel2[key] += r.propAdds2[key]
+ }
+ }
if (r.stain2) { stainPixel(pixel2,r.stain2,0.05); }
if(r.func && pixel1 && pixel2) {
r.func(pixel1,pixel2);
@@ -4653,7 +4666,7 @@ color1 and color2 spread through striped paint like dye does with itself. col
color: ["#daff21","#a6ff00","#ffff00"],
behavior: [
"XX|CR:radiation%0.1|XX",
- "CR:radiation%0.1|XX|CR:radiation%0.1",
+ "CR:radiation%0.1|DEL%0.02 AND CH:rad_smoke%0.2|CR:radiation%0.1",
"XX|CR:radiation%0.1|XX",
],
tick: function(pixel) {
@@ -5691,7 +5704,7 @@ color1 and color2 spread through striped paint like dye does with itself. col
canvasLayersPostRenderers = [];
drawLayers = function(includeBackground) {
//console.log("dl tick");
- if (ctx === null) return
+ if (ctx === null || ctx === undefined) return
clearLayers();
ctx.clearRect(0, 0, canvas.width, canvas.height);
findColorPulseTimerSubTimer++;
@@ -5759,6 +5772,38 @@ color1 and color2 spread through striped paint like dye does with itself. col
}
clearInterval(renderInterval);
renderInterval = window.setInterval(drawLayers, 1000/60);
+ viewInfo[4] = {
+ name: 'element',
+ pixel: function(pixel,ctx) {
+ var data = elements[pixel.element];
+ var _color = data.color;
+ if(Array.isArray(_color)) {
+ _color = _color[Math.floor(pixelTicks / 10) % _color.length]
+ };
+ drawSquare(ctx,_color,pixel.x,pixel.y,undefined,1 - (data.alpha ?? 0))
+ }
+ };
+ viewInfo[5] = {
+ name: 'velocity',
+ pixel: function(pixel,ctx) {
+ var data = elements[pixel.element];
+ var vx = pixel.vx ?? 0;
+ var vy = pixel.vy ?? 0;
+ var _color = null;
+ if(vx === 0 && vy === 0) {
+ _color = "rgb(15,15,15)"
+ } else {
+ var magnitude = Math.sqrt ((vx ** 2) + (vy ** 2));
+ var direction = Math.atan2(pixel.vy ?? 0,pixel.vx ?? 0)*180/Math.PI;
+ if(direction < 0) { direction = scale(direction,-180,0,360,180) };
+ hue = direction;
+ sat = 100;
+ lig = bound(scale(magnitude,0,100,10,100),0,100);
+ _color = "hsl("+hue+","+sat+"%,"+lig+"%)";
+ };
+ drawSquare(ctx,_color,pixel.x,pixel.y,undefined,1 - (data.alpha ?? 0))
+ }
+ };
canvasLayers.pressure = document.createElement("canvas");
canvasLayersPre.push(canvasLayers.pressure);
function drawPressure() {
@@ -11735,6 +11780,7 @@ color1 and color2 spread through striped paint like dye does with itself. col
};
elements.planet_cracker = {
color: "#ffc8ba",
+ excludeRandom: true,
behavior: behaviors.WALL,
properties: {
active: true,
@@ -13614,7 +13660,7 @@ Pixel size (rendering only): (Use if the save looks cut o
};
var displayTemp = Math.round(_temp);
if(displayTemp > 999999999) {
- var shrinkage = (10 ** (Math.floor(Math.log10(_temp)) - 4));
+ var shrinkage = (10 ** (Math.floor(Math.log10(_temp)) - 2));
displayTemp = [Math.floor(_temp/shrinkage),"e",Math.log10(shrinkage),suffix].join("");
} else {
displayTemp = Math.round(_temp).toString() + suffix;
@@ -13684,6 +13730,9 @@ Pixel size (rendering only): (Use if the save looks cut o
statsDiv.style["font-size"] = "75%"
}
}
+ //Force stats bar to be 2 lines tall so it never hides info
+ var statsBar = document.getElementById("stats");
+ statsBar.style.height = "3em";
}
//Moved to window.onload where gameDiv should be guaranteed to exist
} catch (error) {
@@ -15232,6 +15281,7 @@ Pixel size (rendering only): (Use if the save looks cut o
};
elements.light_petroleum_fuel_gas = { //it's not liquified, and sandboxels doesn't even have a pressure system, and there is no generic name for uncompressed, gaseous "L"PG, so we need a different name
burn: 100,
+ burnTime: 10,
color: "#b5b5b3",
density: 3.5,
tempLow: -44,
@@ -15241,10 +15291,17 @@ Pixel size (rendering only): (Use if the save looks cut o
pixel.burnStart = pixelTicks;
}
},
- burnInto: "explosion,explosion,fire,fire,fire,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","),
+ burnInto: "explosion,explosion,ignited_gas,fire,fire,fire,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","),
state: "gas",
behavior: behaviors.GAS,
};
+ elements.liquid_light_petroleum_fuel = {
+ burn: 50,
+ burnTime: 165,
+ fireElement: ["light_petroleum_fuel_gas","fire","fire"],
+ burnInto: "ignited_gas,fire,fire,smoke,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","),
+ tempLow: -180 //based off of ethane
+ }
elements.lamp_oil.tempHigh = 170;
elements.lamp_oil.stateHigh = "lamp_oil_gas";
elements.lamp_oil.density = 810;
@@ -18482,7 +18539,27 @@ Pixel size (rendering only): (Use if the save looks cut o
density: 6520,
conduct: 0.19,
hardness: 0.5,
+ forceAutoGen: true
},
+ eLists.NUCLEARFUEL = ['uranium', 'molten_uranium', 'enriched_uranium', 'molten_enriched_uranium', 'uranium_dioxide', 'enriched_uranium_dioxide', 'molten_uranium_dioxide', 'molten_enriched_uranium_dioxide', 'uranium233', 'uranium235', 'uranium_gas', 'plutonium', 'molten_plutonium', 'enriched_plutonium', 'molten_enriched_plutonium', 'plutonium_dioxide', 'molten_plutonium_dioxide', 'enriched_plutonium_dioxide', 'molten_enriched_plutonium_dioxide', 'uranium_gas', 'plutonium_gas'];
+ elements.molten_zirconium = {
+ tick: function(pixel) {
+ var neighbors = getVonNeumannNeighbors(pixel);
+ var lavaNeighbors = neighbors.filter(p => (eLists.MAGMA.includes(p.element)) || p.element.includes("molten_dirt"));
+ var fuelNeighbors = neighbors.filter(p => (eLists.NUCLEARFUEL.includes(p.element)));
+ if((lavaNeighbors.length > 0) && (fuelNeighbors.length > 0)) {
+ var aLavaNeighbor = randomChoice(lavaNeighbors);
+ var aFuelNeighbor = randomChoice(fuelNeighbors);
+ var coria = [pixel,aLavaNeighbor,aFuelNeighbor];
+ for(var i = 0; i < coria.length; i++) {
+ var newPixel = coria[i];
+ if(!newPixel) { continue };
+ changePixel(newPixel,"corium",false);
+ if(newPixel.temp < elements.corium.temp) { newPixel.temp = elements.corium.temp }; //changeTemp upwards only
+ }
+ }
+ }
+ }
newPowder("zirconia",["#F0ECDB","#FBF8EC"],5680,2715)
elements.solid_zirconia = newPowder("zirconia",["#F0ECDB","#FBF8EC"],5680,2715,null,"zirconia",0.85,true);
elements.molten_magnesium ??= {}; elements.molten_magnesium.tempHigh = 1090;
@@ -18539,7 +18616,226 @@ Pixel size (rendering only): (Use if the save looks cut o
};
elements.neutron.state = "gas";
elements.neutron.ignoreAir = "true";
- neighbors = [[-1,0],[0,-1],[1,0],[0,1]]
+ neighbors = [[-1,0],[0,-1],[1,0],[0,1]];
+
+ function coriumSteamExpHeat(pixel,x,y,radius,fire,smoke,power,damage) {
+ var distance = pyth(x,y,pixel.x,pixel.y);
+ var closeness = Math.abs(radius - distance);
+ var closenessProportion = closeness / radius;
+ pixel.temp += 25;
+ if(Math.random() < Math.sqrt(closenessProportion)) {
+ if(pixel.element.endsWith("water")) {
+ pixel.temp += 325;
+ pixelTempCheck(pixel)
+ }
+ };
+
+ //double velocity
+ if (!elements[pixel.element].excludeRandom && !elements[pixel.element].excludeVelocity) {
+ var angle = Math.atan2(pixel.y-y,pixel.x-x);
+ pixel.vx = Math.round((pixel.vx|0) + Math.cos(angle) * (radius * power/10));
+ pixel.vy = Math.round((pixel.vy|0) + Math.sin(angle) * (radius * power/10));
+ }
+
+ }
+
+ //and the reason I added zirconium in the first place
+ elements.corium = {
+ color: ["#F4D851","#A9B335","#E1710F"],
+ behavior: behaviors.MOLTEN,
+ tick: function(pixel) {
+ pixel.radiation ??= 150;
+ var range = Math.ceil(Math.log(((pixel.radiation ?? 50) ** (0.583)) + 1))
+ if(isNaN(pixel.radiation)) { pixel.temp += 10; pixel.radiation = 150 };
+ if(isNaN(pixel.temp)) { pixel.temp = 2400 };
+ pixel.temp += (pixel.radiation / 75);
+ if(pixel.radiation > 0) {
+ for(var dx = -range; dx <= range; dx++) {
+ for(var dy = -range; dy <= range; dy++) {
+ if(Math.random() < (pixel.radiation * 0.003)) {
+ var distance = Math.sqrt((Math.abs(dx)**2) + (Math.abs(dy)**2));
+ if(distance > range) { continue };
+ var x = pixel.x + dx;
+ var y = pixel.y + dy;
+ if(isEmpty(x,y,false)) {
+ createPixelReturn("radiation",x,y).temp = pixel.temp;
+ }
+ }
+ }
+ }
+ };
+ pixel.radiation *= 0.99975;
+ },
+ reactions: {
+ "magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "felsic_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "intermediate_felsic_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "intermediate_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "ultramafic_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "crimson_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "blackpinkinitic_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "rainbow_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "nellish_magma": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_slag": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_steel": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_zirconium": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_zirconia": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_carbon": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_dirt": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_tuff": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_glass": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "molten_silica": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "fallout": { func(pixel1,pixel2) {
+ changePixel(pixel2,"corium",false); pixel2.radiation = pixel1.radiation / 2; pixel1.radiation = pixel1.radiation / 2 }, chance: 0.02
+ },
+ "iodine": { elem2: null },
+ "caesium": { elem2: null },
+ "barium": { elem2: null },
+ "ash": { elem2: null },
+ "liquid_irradium": { elem2: ["liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium",null], temp1: 1.5, propAdds1: { radiation: 10 } },
+ "pure_water": { elem1: "intermediate_magma", elem2: "pure_water", changeTemp: true },
+ "chilly_water": { elem1: "intermediate_magma", elem2: "pure_water", temp1: -500, temp2: -100 }
+ },
+ hoverStat: function(pixel) { return "rad.lvl. " + (pixel.radiation ?? 150).toLocaleString(undefined,{maximumFractionDigits: 1}) },
+ temp: 2400,
+ tempLow: 1400, //made up
+ stateLow: "solidified_corium",
+ tempHigh: 4400, //made up
+ viscosity: 8, //bad guesstrapolation from https://www.kns.org/files/pre_paper/36/16A-362%EA%B9%80%EC%9B%85%EA%B8%B0.pdf
+ category: "liquids",
+ state: "liquid",
+ density: 7058 //assuming a 0.456 U-Zr ratio, and with uranium dioxide's density of 10970 subject to Sandboxels's standard molten density approximation of -10% because no data is available, and 4700 for liquid ZrO2, but this doesn't account for the variety of other s*** that gets in corium
+ };
+
+ /*for(var key in elements.corium.reactions) {
+ var r = elements.corium.reactions[key]
+ if(r.elem1 !== "corium") { continue };
+ elements[key] ??= {};
+ elements[key].reactions ??= {};
+ elements[key].reactions.corium ;
+ }*/
+
+ elements.solidified_corium = {
+ color: ["#5D4D36","#535F30","#414137"],
+ behavior: behaviors.POWDER,
+ tick: function(pixel) {
+ pixel.radiation ??= 10;
+ var range = Math.ceil(Math.log(((pixel.radiation ?? 10) ** (0.583)) + 1))
+ pixel.temp += 2;
+ if(isNaN(pixel.radiation)) { pixel.temp += 3; pixel.radiation = 150 };
+ for(var dx = -range; dx <= range; dx++) {
+ for(var dy = -range; dy <= range; dy++) {
+ if(Math.random() < 0.03 + (pixel.radiation * 0.0025)) {
+ var distance = Math.sqrt((Math.abs(dx)**2) + (Math.abs(dy)**2));
+ if(distance > range) { continue };
+ var x = pixel.x + dx;
+ var y = pixel.y + dy;
+ if(isEmpty(x,y,false)) {
+ createPixelReturn("radiation",x,y).temp = pixel.temp;
+ }
+ }
+ }
+ };
+ pixel.radiation *= 0.9998;
+ },
+ hoverStat: elements.corium.hoverStat,
+ reactions: {
+ "pure_water": { elem1: "andesite", elem2: "pure_water", changeTemp: true },
+ "chilly_water": { elem1: "solidified_corium", elem2: ["chilly_water","steam"], temp1: -500, temp2: -100 },
+ "liquid_irradium": { elem2: ["liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium",null], temp1: 1.5, propAdds1: { radiation: 10 } }
+ },
+ temp: 50,
+ tempHigh: 1400, //made up
+ stateHigh: "corium",
+ category: "solids",
+ state: "solid",
+ density: 11800 //assuming a 0.456 U-Zr ratio, and with uranium dioxide's density of 10970 subject to Sandboxels's standard molten density approximation of -10% because no data is available, and 4700 for liquid ZrO2, but this doesn't account for the variety of other s*** that gets in corium
+ };
+
+ if(eLists.WATER) {
+ for(var i = 0; i < eLists.WATER.length; i++) {
+ var water = eLists.WATER[i];
+ if(water == "chilly_water" || water == "pure_water") { continue };
+ elements.corium.reactions[water] = { func(pixel1,pixel2) {
+ explodeAt(pixel1.x,pixel1.y,5,"fire,rad_steam,rad_steam,rad_steam,steam,steam,radiation","steam,radiation",null,coriumSteamExpHeat)
+ }, temp1: 50, chance: 0.01 }
+ }
+ };
+
+ elements.corium_gas = {
+ tick: elements.corium.tick,
+ hoverStat: elements.corium.hoverStat,
+ reactions: {
+ "liquid_irradium": { elem2: ["liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium","liquid_irradium",null], temp1: 1.5, propAdds1: { radiation: 10 } },
+ "pure_water": { elem1: "intermediate_magma", elem2: "pure_water", changeTemp: true },
+ "chilly_water": { elem1: "solidified_corium", elem2: "steam", temp1: -500, temp2: -100 }
+ },
+ density: 20
+ };
+
+ elements.pure_water.reactions.dirty_water = elements.pure_water.reactions.water
+
+ radiationIncreaseOverrides = {
+ molten_uranium238: 1,
+ molten_actinium: 5,
+ molten_protactinium: 3,
+ molten_americium: 3,
+ molten_berkelium: 3,
+ molten_californium: 3,
+ molten_einsteinium: 5,
+ molten_fermium: 5,
+ molten_nihonium: 5,
+ molten_moscovium: 10,
+ molten_livermorium: 10,
+ molten_tennessine: 10,
+ molten_oganesson: 10,
+ molten_nihonium_oxide: 10,
+ molten_flerovium_oxide: 10,
+ molten_livermorium_oxide: 10,
+ "molten_p9-leeseocid": 10,
+ }
+ var radioactives = eLists.NUCLEARFUEL; radioactives.push("molten_uranium","molten_uranium238","molten_neptunium","molten_uranium238","molten_actinium","molten_protactinium","molten_americium","molten_berkelium","molten_californium","molten_einsteinium","molten_fermium","molten_nihonium","molten_moscovium","molten_livermorium","molten_tennessine","molten_oganesson","molten_nihonium_oxide","molten_flerovium_oxide","molten_livermorium_oxide","molten_p9-leeseocid")
+ for(var i = 0; i < radioactives.length; i++) {
+ var radioactive = radioactives[i];
+ elements.corium.reactions[radioactive] ??= { elem2: null, temp1: 1, chance: 0.1, propAdds1: { radiation: radiationIncreaseOverrides[radioactive] ?? 2 } }
+ }
+
//Non-element: Liquid ammonia
elements.liquid_ammonia = {
color: "#bab6a9",
@@ -21561,7 +21857,7 @@ Pixel size (rendering only): (Use if the save looks cut o
elements[name] = {
behavior: itsActuallySolidNotPowderLol ? behaviors.WALL : behaviors.POWDER,
color: color,
- category: "solids",
+ category: itsActuallySolidNotPowderLol ? "solids" : "powders",
state: "solid",
density: density ?? 1000,
};
@@ -23164,6 +23460,7 @@ Pixel size (rendering only): (Use if the save looks cut o
stain: 0.01,
_data: [particulateInfo._data[0], particulateInfo._data[1], "suspension"],
}
+ if(eLists.WATER) { eLists.WATER.push(suspensionName) };
elements[suspensionName].reactions[suspensionName] = { "elem1":"water", "elem2":sedimentName, "chance": 0.001 },
elements[suspensionName].reactions[particulateName] = { "elem1": "water", "elem2":sedimentName, "chance": 0.0005 },
//Sediment element where lithification code resides
@@ -23241,6 +23538,8 @@ Pixel size (rendering only): (Use if the save looks cut o
};
};
};
+ if(!eLists.WATER) { console.error(38309309) };
+ if(eLists.WATER) { eLists.WATER.push("swamp_water","heavy_water","radioactive_water","milk") };
newPowder("calcite","#f5ecd0",2711,825,["carbon_dioxide","quicklime"],"calcium_carbonate_dust");
newPowder("aragonite","#e3c58d",2830,825,["carbon_dioxide","quicklime"],"calcium_carbonate_dust");
newPowder("vaterite","#e8ebd8",2540,825,["carbon_dioxide","quicklime"],"calcium_carbonate_dust");
@@ -23277,6 +23576,8 @@ Pixel size (rendering only): (Use if the save looks cut o
};
};
runAfterLoad(function() {
+ eLists.MAGMA = Object.keys(elements).filter(x => x.includes("magma") && !(x.includes("vaporized")) && !(x.includes("cloud")))
+
for(i = 0; i < sands.length; i++) {
switch(sands[i]) {
case "dirt":
@@ -25916,7 +26217,6 @@ Pixel size (rendering only): (Use if the save looks cut o
goldenZirconColors = ["#e99209","#fcb111","#d88208","#b97605"];
//heatTreated 0 = untreated, 1 = inertly (blue), 2 = with oxygen (golden)
elements.zircon = {
- //Corundum with different impurities, so I can copy/paste everything but the color
color: ["#37130b","#a9301a","#3c1810"],
properties: {
heatTreated: 0
@@ -27959,9 +28259,16 @@ ${eightSpaces}Example full decor definition: bird:0.04:10:#FF0000,#FFFF00,#00FF0
console.error("pixelsize: supplied pixel size was zero or negative");
return false;
} else {
- document.querySelector('span[setting="pixelsize"]').querySelector("select").selectedIndex = pixelSizeSettingDropdownOtherOptionIndex;
- settings.pixelsize = argPixelSize;
- resizeCanvas(ctx.canvas.height,ctx.canvas.width,settings.pixelsize,false)
+ var confirmation = confirm("Due to changes in the game, this command must reset the canvas. Proceed?")
+ if(confirmation) {
+ document.querySelector('span[setting="pixelsize"]').querySelector("select").selectedIndex = pixelSizeSettingDropdownOtherOptionIndex;
+ settings.pixelsize = argPixelSize;
+ resizeCanvas(ctx.canvas.height,ctx.canvas.width,settings.pixelsize,false);
+ clearAll();
+ return argPixelSize
+ } else {
+ return false
+ }
};
} else {
alert(pixelSize);
@@ -28733,7 +29040,8 @@ Make sure to save your command in a file if you want to add this preset again.`
elements.smash_ray = {
color: ["#ff9999", "#8c8279"],
tick: function(pixel) {
- if(pixel.done) { deletePixel(pixel); return };
+ if(!pixel) { return };
+ if(pixel?.done) { deletePixel(pixel.x,pixel.y); return };
var x = pixel.x;
for (var y = pixel.y; y < height; y++) {
if (outOfBounds(x, y)) {
@@ -35763,6 +36071,7 @@ Make sure to save your command in a file if you want to add this preset again.`
};
elements.amba_tsunami = {
color: ["#2449d1","#4b6adb","#8093d9"],
+ excludeRandom: true,
behavior: behaviors.WALL,
properties: {
active: true,
@@ -35842,6 +36151,7 @@ Make sure to save your command in a file if you want to add this preset again.`
elements.megatsunami = {
color: ["#1f2aa3","#2641c9","#3a57c9"],
behavior: behaviors.WALL,
+ excludeRandom: true,
properties: {
active: true,
},
@@ -35922,6 +36232,7 @@ Make sure to save your command in a file if you want to add this preset again.`
elements.lava_tsunami = {
color: ["#ff370a","#e84a23","#e67740"],
behavior: behaviors.WALL,
+ excludeRandom: true,
properties: {
active: true,
},
@@ -36012,6 +36323,7 @@ Make sure to save your command in a file if you want to add this preset again.`
elements.lava_megatsunami = {
color: ["#b32b10","#c24d1f","#d66924"],
behavior: behaviors.WALL,
+ excludeRandom: true,
properties: {
active: true,
},
@@ -39929,7 +40241,7 @@ Make sure to save your command in a file if you want to add this preset again.`
};
});
function propPrompt() {
- propProperty = prompt("Enter the property you want to set");
+ propProperty = prompt("(Prop) Enter the property you want to set");
propValue = prompt("Enter the value you want to set to");
//special check: element
if(propProperty === "element") {
@@ -40108,7 +40420,7 @@ Make sure to save your command in a file if you want to add this preset again.`
if(oldProperty === null) {
oldProperty = "temp";
};
- numberAdjusterProperty = prompt("Enter the property you want to change");
+ numberAdjusterProperty = prompt("(Number adjuster) Enter the value you want to change");
if(numberAdjusterProperty === null) {
numberAdjusterProperty = oldProperty;
return false;
@@ -44735,7 +45047,7 @@ maxPixels (default 1000): Maximum amount of pixels/changes (if xSpacing and ySpa
};
//NO GAMMA RAY SPAWNERS OR FILLERS IN RANDOM ##
runAfterLoad(function() {
- randomBlacklist = ["quark_matter", "liquid_neutronium", "molten_neutronium", "neutronium", "neutronium_gas", "colored_fi ller", "copycat_filler", "insulating_filler"];
+ randomBlacklist = ["quark_matter", "liquid_neutronium", "molten_neutronium", "neutronium", "neutronium_gas", "colored_filler", "copycat_filler", "insulating_filler"];
for(i = 0; i < randomBlacklist.length; i++) {
var element = randomBlacklist[i];
if(elements[element]) { elements[element].excludeRandom = true };
@@ -45678,7 +45990,10 @@ maxPixels (default 1000): Maximum amount of pixels/changes (if xSpacing and ySpa
//END ##
console.log("Mod loaded");
- logMessage("a_mod_by_alice.js requires many other mods. Many of the elements and features added with it installed are actually added by the other mods it depends on.")
+ window.addEventListener("load",function() {
+ logMessage("a_mod_by_alice.js requires many other mods. Many of the elements and features added with it installed are actually added by the other mods it depends on.")
+ logMessage('These mods are libhooktick.js, chem.js, minecraft.js, Neutronium Mod.js, fey_and_more.js, velocity.js, ketchup_mod.js, moretools.js, aChefsDream.js, nousersthings.js. They were enabled automatically')
+ })
} catch (error) {
alert(`Load failed (try reloading).\nThis is likely a sporadic failure caused by inconsistencies in how mods are loaded, and will likely fix itself in a refresh or two. If it persists, then it's an issue.\nError: ${error.stack}`);
console.error(error)
diff --git a/mods/biology.js b/mods/biology.js
index 83ce49ca..2f94e9c6 100644
--- a/mods/biology.js
+++ b/mods/biology.js
@@ -48,7 +48,7 @@ viewInfo[6] = { // Speed View
viewInfo[7] = { // Illness View
name: "ill",
pixel: function(pixel,ctx) {
- if ((elements[pixel.element].id === elements.poison.id || elements[pixel.element].id === elements.cyanide.id || elements[pixel.element].id === elements.infected_vessel.id || elements[pixel.element].id === elements.infection.id || elements[pixel.element].id === elements.cancer.id || elements[pixel.element].id === elements.plague.id || elements[pixel.element].id === elements.rotten_meat.id) || (elements[pixel.element].isBio === true && ((pixel.speed < -5 || pixel.oxygen < 250 || pixel.nutrition < 250) || pixel.poisoned === true)) || ((elements[pixel.element].id === elements.digested_material.id || elements[pixel.element].id === elements.gaseous_material.id) && ((pixel.speed < 0 || pixel.nutrition < 5) || pixel.poisoned === true) && (pixel.immune !== true || !pixel.immune))) {
+ if ((elements[pixel.element].id === elements.cyanide_gas.id || elements[pixel.element].id === elements.poison_gas.id || elements[pixel.element].id === elements.poison.id || elements[pixel.element].id === elements.cyanide.id || elements[pixel.element].id === elements.infected_vessel.id || elements[pixel.element].id === elements.infection.id || elements[pixel.element].id === elements.cancer.id || elements[pixel.element].id === elements.plague.id || elements[pixel.element].id === elements.rotten_meat.id) || (elements[pixel.element].isBio === true && ((pixel.speed < -5 || pixel.oxygen < 250 || pixel.nutrition < 250) || pixel.poisoned === true || pixel.sick === true || pixel.alcoholic === true)) || ((elements[pixel.element].id === elements.digested_material.id || elements[pixel.element].id === elements.gaseous_material.id) && ((pixel.speed < 0 || pixel.nutrition < 5) || pixel.poisoned === true) && (pixel.immune !== true || !pixel.immune))) {
var a = (settings.textures !== 0) ? pixel.alpha : undefined;
if (((elements[pixel.element].isGas && elements[pixel.element].glow !== false) || elements[pixel.element].glow || pixel.glow) && pixel.glow !== false) {
drawPlus(ctx,pixel.color,pixel.x,pixel.y,undefined,a)
@@ -76,6 +76,22 @@ renderPresets.FLESHBURN = function(pixel,ctx) {
drawSquare(ctx,"#000000",pixel.x,pixel.y,undefined,Math.min(0.8,(ratio-0.5)*0.8));
},
+renderPresets.NERVE = function(pixel,ctx) {
+ drawDefault(ctx,pixel)
+ if (pixel.darkcharge === true) {
+ drawSquare(ctx,"#000000",pixel.x,pixel.y,undefined,Math.min(0.8,0.55));
+ }
+ if (pixel.darkchargeCD === true) {
+ drawSquare(ctx,"#000000",pixel.x,pixel.y,undefined,Math.min(0.8,0.5));
+ }
+ if (pixel.lightcharge === true) {
+ drawSquare(ctx,"#ffffff",pixel.x,pixel.y,undefined,Math.min(0.8,0.55));
+ }
+ if (pixel.lightchargeCD === true) {
+ drawSquare(ctx,"#ffffff",pixel.x,pixel.y,undefined,Math.min(0.8,0.5));
+ }
+},
+
behaviorRules.BCF = function() {
if (btemp.pixel.clone) {
if (isEmpty(btemp.newCoords.x, btemp.newCoords.y)) {
@@ -138,7 +154,7 @@ behaviorRules.ADB = function() {
if (btemp.arg != null) { var args = btemp.arg.split(","); }
if (btemp.arg == null || args.indexOf(newPixel.element) !== -1) {
if (!elements[newPixel.element].hardness || Math.random() > elements[newPixel.element].hardness) {
- if (elements[newPixel.element].isFood === true) {
+ if (elements[newPixel.element].isFood === true && !elements[btemp.pixel.element].reactions[newPixel.element]) {
changePixel(newPixel,"digested_material");
newPixel.nutrition = 10;
if (pixelMap[btemp.pixel.x][btemp.pixel.y] != undefined) {
@@ -147,7 +163,7 @@ behaviorRules.ADB = function() {
btemp.deleted = true;
btemp.swapSpots = [];
}
- else if (elements[newPixel.element].isFood != true) {
+ else if (elements[newPixel.element].isFood != true && !elements[btemp.pixel.element].reactions[newPixel.element]) {
if (elements[newPixel.element].hardness < 0.9 || !elements[newPixel.element].hardness) {
deletePixel(btemp.newCoords.x,btemp.newCoords.y);
if (pixelMap[btemp.pixel.x][btemp.pixel.y] != undefined) {
@@ -164,541 +180,8 @@ behaviorRules.ADB = function() {
},
doBioNorm = function(pixel) {
-if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 53 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100)) {
- pixel.nutrition--
- pixel.oxygen -= 2
-}
-if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) {
- if (elements[pixel.element].isMultiDie === true) {
- if (pixel.temp > 95) {
- if (Math.random() < 0.75) {
- changePixel(pixel,elements[pixel.element].normDie);
- }
- else {
- changePixel(pixel,elements[pixel.element].heatDie);
- }
- }
- else if (pixel.temp < -15) {
- if (Math.random() < 0.75) {
- changePixel(pixel,elements[pixel.element].normDie);
- }
- else {
- changePixel(pixel,elements[pixel.element].coldDie);
- }
- }
- else {
- if (Math.random() < 0.999) {
- changePixel(pixel,elements[pixel.element].normDie);
- }
- else {
- changePixel(pixel,elements[pixel.element].roomDie);
- }
- }
- }
- else if (elements[pixel.element].isMultiDie === false) {
- if (Math.random() < 0.75) {
- changePixel(pixel,elements[pixel.element].normDie);
- }
- else {
- changePixel(pixel,elements[pixel.element].otherDie);
- }
- }
-}
-if (pixel.nutrition === null || isNaN(pixel.nutrition)) {
- pixel.nutrition = 500
-}
-if (pixel.oxygen === null || isNaN(pixel.oxygen)) {
- pixel.oxygen = 500
-}
-if (pixel.speed === null || isNaN(pixel.speed)) {
- pixel.speed = 0
-}
-if (pixel.immune === true && pixel.poisoned != false) {
- pixel.poisoned = false
-}
-if ((pixel.temp > 124.55 || pixel.burning) && Math.random() > 0.5) {
- if (!pixel.burnt) { pixel.burnt = 1 }
- else { pixel.burnt ++ }
-}
-if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) {
- pixel.char = pixel.burnt
-}
-if (!isEmpty(pixel.x, pixel.y-1, true)) {
- var hitPixel = pixelMap[pixel.x][pixel.y-1]
- if (elements[hitPixel.element].isBio === true) {
- if (hitPixel.oxygen < pixel.oxygen) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.oxygen > pixel.oxygen) {
- hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
- pixel.oxygen += (elements[hitPixel.element].oxygTrans)
- }
- if (hitPixel.nutrition > pixel.nutrition) {
- hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
- pixel.nutrition += (elements[hitPixel.element].nutrTrans)
- }
- if (hitPixel.speed > pixel.speed) {
- hitPixel.speed -= 1
- pixel.speed += 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- }
- else if (hitPixel.burning && Math.random() > 0.9) {
- if (!pixel.burnt) { pixel.burnt = 1 }
- else { pixel.burnt ++ }
- }
-}
-if (!isEmpty(pixel.x, pixel.y+1, true)) {
- var hitPixel = pixelMap[pixel.x][pixel.y+1]
- if (elements[hitPixel.element].isBio === true) {
- if (hitPixel.oxygen < pixel.oxygen) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.oxygen > pixel.oxygen) {
- hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
- pixel.oxygen += (elements[hitPixel.element].oxygTrans)
- }
- if (hitPixel.nutrition > pixel.nutrition) {
- hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
- pixel.nutrition += (elements[hitPixel.element].nutrTrans)
- }
- if (hitPixel.speed > pixel.speed) {
- hitPixel.speed -= 1
- pixel.speed += 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- }
- else if (hitPixel.burning && Math.random() > 0.9) {
- if (!pixel.burnt) { pixel.burnt = 1 }
- else { pixel.burnt ++ }
- }
-}
-if (!isEmpty(pixel.x-1, pixel.y, true)) {
- var hitPixel = pixelMap[pixel.x-1][pixel.y]
- if (elements[hitPixel.element].isBio === true) {
- if (hitPixel.oxygen < pixel.oxygen) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.oxygen > pixel.oxygen) {
- hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
- pixel.oxygen += (elements[hitPixel.element].oxygTrans)
- }
- if (hitPixel.nutrition > pixel.nutrition) {
- hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
- pixel.nutrition += (elements[hitPixel.element].nutrTrans)
- }
- if (hitPixel.speed > pixel.speed) {
- hitPixel.speed -= 1
- pixel.speed += 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- }
- else if (hitPixel.burning && Math.random() > 0.9) {
- if (!pixel.burnt) { pixel.burnt = 1 }
- else { pixel.burnt ++ }
- }
-}
-if (!isEmpty(pixel.x+1, pixel.y, true)) {
- var hitPixel = pixelMap[pixel.x+1][pixel.y]
- if (elements[hitPixel.element].isBio === true) {
- if (hitPixel.oxygen < pixel.oxygen) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.oxygen > pixel.oxygen) {
- hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
- pixel.oxygen += (elements[hitPixel.element].oxygTrans)
- }
- if (hitPixel.nutrition > pixel.nutrition) {
- hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
- pixel.nutrition += (elements[hitPixel.element].nutrTrans)
- }
- if (hitPixel.speed > pixel.speed) {
- hitPixel.speed -= 1
- pixel.speed += 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- }
- else if (hitPixel.burning && Math.random() > 0.9) {
- if (!pixel.burnt) { pixel.burnt = 1 }
- else { pixel.burnt ++ }
- }
-}
-}
-
-doBioBlood = function(pixel) {
-if (Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) && Math.random() < 0.001) {
- for (var i = 0; i < squareCoords.length; i++) {
- var coords = squareCoords[i];
- var x = pixel.x + coords[0];
- var y = pixel.y + coords[1];
- if (isEmpty(x,y)) {
- createPixel("flesh",x,y);
- }
- }
-}
-if ((Math.random() > (elements[pixel.element].ageRate) && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 53 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100) ) {
- pixel.nutrition--
- pixel.oxygen -= 2
-}
-if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) {
- if (pixel.immune === true) {
- changePixel(pixel,"antibody");
- }
- else if (pixel.poisoned === true) {
- changePixel(pixel,"infection");
- }
- else {
- changePixel(pixel,elements[pixel.element].bleed);
- }
-}
-if (pixel.nutrition === null || isNaN(pixel.nutrition)) {
- pixel.nutrition = 500
-}
-if (pixel.oxygen === null || isNaN(pixel.oxygen)) {
- pixel.oxygen = 500
-}
-if (pixel.speed === null || isNaN(pixel.speed)) {
- pixel.speed = 0
-}
-if (pixel.immune === true && pixel.poisoned != false) {
- pixel.poisoned = false
-}
-if ((pixel.temp > 150 || pixel.burning) && Math.random() > 0.95) {
- if (!pixel.burnt) { pixel.burnt = 1 }
- else { pixel.burnt ++ }
-}
-if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) {
- pixel.char = pixel.burnt
-}
-if (!isEmpty(pixel.x, pixel.y-1, true)) {
- var hitPixel = pixelMap[pixel.x][pixel.y-1]
- if (elements[hitPixel.element].isBio === true) {
- if (hitPixel.oxygen < pixel.oxygen) {
- if (pixel.heartAttached === true) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
- pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
- }
- else {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- if (pixel.heartAttached === true) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
- pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
- }
- else {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.75) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.5) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
- hitPixel.heartAttached = true
- }
- }
-}
-else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
- if (Math.random() > 0.95) {
- if (pixel.immune === true) {
- createPixel("antibody",pixel.x,pixel.y-1)
- }
- else if (pixel.poisoned === true) {
- createPixel("infection",pixel.x,pixel.y-1)
- }
- else {
- createPixel(elements[pixel.element].bleed,pixel.x,pixel.y-1)
- }
- }
- pixel.oxygen -= 50
- pixel.nutrition -= 50
-}
-if (!isEmpty(pixel.x, pixel.y+1, true)) {
- var hitPixel = pixelMap[pixel.x][pixel.y+1]
- if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) {
- if (hitPixel.oxygen < pixel.oxygen) {
- if (pixel.heartAttached === true) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
- pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
- }
- else {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- if (pixel.heartAttached === true) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
- pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
- }
- else {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.6) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.5) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
- hitPixel.heartAttached = true
- }
- }
-}
-else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
- if (Math.random() > 0.95) {
- if (pixel.immune === true) {
- createPixel("antibody",pixel.x,pixel.y+1)
- }
- else if (pixel.poisoned === true) {
- createPixel("infection",pixel.x,pixel.y+1)
- }
- else {
- createPixel(elements[pixel.element].bleed,pixel.x,pixel.y+1)
- }
- }
- pixel.oxygen -= 50
- pixel.nutrition -= 50
-}
-if (!isEmpty(pixel.x-1, pixel.y, true)) {
- var hitPixel = pixelMap[pixel.x-1][pixel.y]
- if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) {
- if (hitPixel.oxygen < pixel.oxygen) {
- if (pixel.heartAttached === true) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
- pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
- }
- else {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- if (pixel.heartAttached === true) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
- pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
- }
- else {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.75) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.5) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
- hitPixel.heartAttached = true
- }
- }
-}
-else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
- if (Math.random() > 0.95) {
- if (pixel.immune === true) {
- createPixel("antibody",pixel.x-1,pixel.y)
- }
- else if (pixel.poisoned === true) {
- createPixel("infection",pixel.x-1,pixel.y)
- }
- else {
- createPixel(elements[pixel.element].bleed,pixel.x-1,pixel.y)
- }
- }
- pixel.oxygen -= 50
- pixel.nutrition -= 50
-}
-if (!isEmpty(pixel.x+1, pixel.y, true)) {
- var hitPixel = pixelMap[pixel.x+1][pixel.y]
- if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) {
- if (hitPixel.oxygen < pixel.oxygen) {
- if (pixel.heartAttached === true) {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
- pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
- }
- else {
- hitPixel.oxygen += (elements[pixel.element].oxygTrans)
- pixel.oxygen -= (elements[pixel.element].oxygTrans)
- }
- }
- if (hitPixel.nutrition < pixel.nutrition) {
- if (pixel.heartAttached === true) {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
- pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
- }
- else {
- hitPixel.nutrition += (elements[pixel.element].nutrTrans)
- pixel.nutrition -= (elements[pixel.element].nutrTrans)
- }
- }
- if (hitPixel.speed < pixel.speed) {
- hitPixel.speed += 1
- pixel.speed -= 1
- }
- if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.75) {
- hitPixel.poisoned = true
- }
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.5) {
- hitPixel.poisoned = false
- hitPixel.immune = true
- }
- if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burnt--
- }
- if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
- hitPixel.burning = false
- }
- if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
- hitPixel.heartAttached = true
- }
- }
-}
-else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
- if (Math.random() > 0.95) {
- if (pixel.immune === true) {
- createPixel("antibody",pixel.x+1,pixel.y)
- }
- else if (pixel.poisoned === true) {
- createPixel("infection",pixel.x+1,pixel.y)
- }
- else {
- createPixel(elements[pixel.element].bleed,pixel.x+1,pixel.y)
- }
- }
- pixel.oxygen -= 50
- pixel.nutrition -= 50
-}
-}
-
-doBioBone = function(pixel){
-if ((Math.random() > 0.995 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 55 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100)) {
- pixel.nutrition--
+if ((Math.random() > 0.92 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() < (pixel.fentDepri / 100) && pixel.fenAddict === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() < (pixel.alcoDepri / 100) && pixel.alcoholic === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.60 && pixel.sick === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 53 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100)) {
+ pixel.nutrition -= 0.5
pixel.oxygen--
}
if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) {
@@ -746,9 +229,766 @@ if (pixel.oxygen === null || isNaN(pixel.oxygen)) {
if (pixel.speed === null || isNaN(pixel.speed)) {
pixel.speed = 0
}
-if (pixel.immune === true && pixel.poisoned != false) {
+if ((pixel.alcoDepri || pixel.alcoDepri === 0) && pixel.alcoholic === true) {
+ pixel.alcoDepri += 1
+}
+if (pixel.alcoTime < (pixelTicks - 10000) && pixel.alcoholic === true && Math.random() > 0.999 || pixel.alcoRecover === true) {
+ pixel.alcoDepri = undefined
+ pixel.alcoTime = undefined
+ pixel.alcoholic = false
+ pixel.alcoRecover = true
+}
+if ((pixel.fentDepri || pixel.fentDepri === 0) && pixel.fenAddict === true) {
+ pixel.fentDepri += 1
+}
+if (pixel.poisonImmune === true) {
+ pixel.fentDepri = undefined
+ pixel.fenAddict = false
+}
+if (pixel.poisonImmune === true && pixel.poisoned != false) {
pixel.poisoned = false
}
+if ((pixel.poisonImmune === true || pixel.immune === true) && pixel.sick != false) {
+ pixel.sick = false
+}
+if ((pixel.temp > 124.55 || pixel.burning) && Math.random() > 0.5) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+}
+if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) {
+ pixel.char = pixel.burnt
+}
+if (!isEmpty(pixel.x, pixel.y-1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y-1]
+ if (elements[hitPixel.element].isBio === true) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ }
+ else if (hitPixel.burning && Math.random() > 0.9) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+ }
+}
+if (!isEmpty(pixel.x, pixel.y+1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y+1]
+ if (elements[hitPixel.element].isBio === true) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ }
+ else if (hitPixel.burning && Math.random() > 0.9) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+ }
+}
+if (!isEmpty(pixel.x-1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x-1][pixel.y]
+ if (elements[hitPixel.element].isBio === true) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ }
+ else if (hitPixel.burning && Math.random() > 0.9) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+ }
+}
+if (!isEmpty(pixel.x+1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x+1][pixel.y]
+ if (elements[hitPixel.element].isBio === true) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ }
+ else if (hitPixel.burning && Math.random() > 0.9) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+ }
+}
+}
+
+doBioBlood = function(pixel) {
+if (Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) && Math.random() < 0.001) {
+ for (var i = 0; i < squareCoords.length; i++) {
+ var coords = squareCoords[i];
+ var x = pixel.x + coords[0];
+ var y = pixel.y + coords[1];
+ if (isEmpty(x,y)) {
+ createPixel("flesh",x,y);
+ }
+ }
+}
+if ((Math.random() > (elements[pixel.element].ageRate) && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() < (pixel.alcoDepri / 100) && pixel.alcoholic === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.60 && pixel.sick === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 53 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100) ) {
+ pixel.nutrition -= 0.5
+ pixel.oxygen--
+}
+if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) {
+ if (pixel.poisoned === true || pixel.sick === true) {
+ changePixel(pixel,"infection")
+ }
+ else {
+ changePixel(pixel,elements[pixel.element].bleed);
+ }
+}
+if (pixel.nutrition === null || isNaN(pixel.nutrition)) {
+ pixel.nutrition = 500
+}
+if (pixel.oxygen === null || isNaN(pixel.oxygen)) {
+ pixel.oxygen = 500
+}
+if (pixel.speed === null || isNaN(pixel.speed)) {
+ pixel.speed = 0
+}
+if ((pixel.alcoDepri || pixel.alcoDepri === 0) && pixel.alcoholic === true) {
+ pixel.alcoDepri += 1
+}
+if (pixel.alcoTime < (pixelTicks - 10000) && pixel.alcoholic === true && Math.random() > 0.999 || pixel.alcoRecover === true) {
+ pixel.alcoDepri = undefined
+ pixel.alcoTime = undefined
+ pixel.alcoholic = false
+ pixel.alcoRecover = true
+}
+if (pixel.poisonImmune === true && pixel.poisoned != false) {
+ pixel.poisoned = false
+}
+if ((pixel.poisonImmune === true || pixel.immune === true) && pixel.sick != false) {
+ pixel.sick = false
+}
+if ((pixel.temp > 124.55 || pixel.burning) && Math.random() > 0.5) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+}
+if ((pixel.temp > 150 || pixel.burning) && Math.random() > 0.95) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+}
+if (pixel.char != pixel.burnt && pixel.burnt > pixel.char || !pixel.char) {
+ pixel.char = pixel.burnt
+}
+if (!isEmpty(pixel.x, pixel.y-1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y-1]
+ if (elements[hitPixel.element].isBio === true) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ if (pixel.heartAttached === true) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
+ }
+ else {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ if (pixel.heartAttached === true) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
+ }
+ else {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
+ hitPixel.heartAttached = true
+ }
+ }
+}
+else if (isEmpty(pixel.x, pixel.y-1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (Math.random() > 0.95) {
+ if (pixel.poisonImmune === true) {
+ createPixel("antibody",pixel.x,pixel.y-1)
+ }
+ else if (pixel.poisoned === true || pixel.sick === true) {
+ createPixel("infection",pixel.x,pixel.y-1)
+ }
+ else {
+ createPixel(elements[pixel.element].bleed,pixel.x,pixel.y-1)
+ }
+ }
+ pixel.oxygen -= 50
+ pixel.nutrition -= 50
+}
+if (!isEmpty(pixel.x, pixel.y+1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y+1]
+ if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ if (pixel.heartAttached === true) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
+ }
+ else {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ if (pixel.heartAttached === true) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
+ }
+ else {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
+ hitPixel.heartAttached = true
+ }
+ }
+}
+else if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (Math.random() > 0.95) {
+ if (pixel.poisonImmune === true) {
+ createPixel("antibody",pixel.x,pixel.y+1)
+ }
+ else if (pixel.poisoned === true || pixel.sick === true) {
+ createPixel("infection",pixel.x,pixel.y+1)
+ }
+ else {
+ createPixel(elements[pixel.element].bleed,pixel.x,pixel.y+1)
+ }
+ }
+ pixel.oxygen -= 50
+ pixel.nutrition -= 50
+}
+if (!isEmpty(pixel.x-1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x-1][pixel.y]
+ if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ if (pixel.heartAttached === true) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
+ }
+ else {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ if (pixel.heartAttached === true) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
+ }
+ else {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
+ hitPixel.heartAttached = true
+ }
+ }
+}
+else if (isEmpty(pixel.x-1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (Math.random() > 0.95) {
+ if (pixel.poisonImmune === true) {
+ createPixel("antibody",pixel.x-1,pixel.y)
+ }
+ else if (pixel.poisoned === true || pixel.sick === true) {
+ createPixel("infection",pixel.x-1,pixel.y)
+ }
+ else {
+ createPixel(elements[pixel.element].bleed,pixel.x-1,pixel.y)
+ }
+ }
+ pixel.oxygen -= 50
+ pixel.nutrition -= 50
+}
+if (!isEmpty(pixel.x+1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x+1][pixel.y]
+ if (elements[hitPixel.element].isBio === true && Math.random() > 0.5) {
+ if (hitPixel.oxygen < pixel.oxygen) {
+ if (pixel.heartAttached === true) {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans + 10)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans + 9)
+ }
+ else {
+ hitPixel.oxygen += (elements[pixel.element].oxygTrans)
+ pixel.oxygen -= (elements[pixel.element].oxygTrans)
+ }
+ }
+ if (hitPixel.nutrition < pixel.nutrition) {
+ if (pixel.heartAttached === true) {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans + 10)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans + 10)
+ }
+ else {
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
+ }
+ }
+ if (hitPixel.speed < pixel.speed) {
+ hitPixel.speed += 1
+ pixel.speed -= 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
+ if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
+ hitPixel.poisoned = true
+ }
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
+ hitPixel.immune = true
+ }
+ if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burnt--
+ }
+ if (hitPixel.burning && (!pixel.burnt || pixel.burnt < 51) && Math.random() > 0.8) {
+ hitPixel.burning = false
+ }
+ if (elements[hitPixel.element].isBlood === true && pixel.heartAttached === true && hitPixel.heartAttached === false && Math.random() > 0.5) {
+ hitPixel.heartAttached = true
+ }
+ }
+}
+else if (isEmpty(pixel.x+1, pixel.y) && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (Math.random() > 0.95) {
+ if (pixel.poisonImmune === true) {
+ createPixel("antibody",pixel.x+1,pixel.y)
+ }
+ else if (pixel.poisoned === true || pixel.sick === true) {
+ createPixel("infection",pixel.x+1,pixel.y)
+ }
+ else {
+ createPixel(elements[pixel.element].bleed,pixel.x+1,pixel.y)
+ }
+ }
+ pixel.oxygen -= 50
+ pixel.nutrition -= 50
+}
+}
+
+doBioBone = function(pixel){
+if ((Math.random() > 0.995 && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() < (pixel.alcoDepri / 100) && pixel.alcoholic === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.60 && pixel.sick === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (Math.random() > 0.5 && pixel.poisoned === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.burning === true && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp > 55 && pixel.nutrition > 0 && pixel.oxygen > 0) || (pixel.temp < -10 && pixel.nutrition > 0 && pixel.oxygen > 0) || Math.random() > 0.85 && Math.random() < (pixel.burnt / 100)) {
+ pixel.nutrition -= 0.5
+ pixel.oxygen--
+}
+if (Math.random() > 0.5 && (pixel.nutrition < 1 || pixel.oxygen < 1 || pixel.speed < -100)) {
+ if (elements[pixel.element].isMultiDie === true) {
+ if (pixel.temp > 95) {
+ if (Math.random() < 0.75) {
+ changePixel(pixel,elements[pixel.element].normDie);
+ }
+ else {
+ changePixel(pixel,elements[pixel.element].heatDie);
+ }
+ }
+ else if (pixel.temp < -15) {
+ if (Math.random() < 0.75) {
+ changePixel(pixel,elements[pixel.element].normDie);
+ }
+ else {
+ changePixel(pixel,elements[pixel.element].coldDie);
+ }
+ }
+ else {
+ if (Math.random() < 0.999) {
+ changePixel(pixel,elements[pixel.element].normDie);
+ }
+ else {
+ changePixel(pixel,elements[pixel.element].roomDie);
+ }
+ }
+ }
+ else if (elements[pixel.element].isMultiDie === false) {
+ if (Math.random() < 0.75) {
+ changePixel(pixel,elements[pixel.element].normDie);
+ }
+ else {
+ changePixel(pixel,elements[pixel.element].otherDie);
+ }
+ }
+}
+if (pixel.nutrition === null || isNaN(pixel.nutrition)) {
+ pixel.nutrition = 500
+}
+if (pixel.oxygen === null || isNaN(pixel.oxygen)) {
+ pixel.oxygen = 500
+}
+if (pixel.speed === null || isNaN(pixel.speed)) {
+ pixel.speed = 0
+}
+if ((pixel.alcoDepri || pixel.alcoDepri === 0) && pixel.alcoholic === true) {
+ pixel.alcoDepri += 1
+}
+if (pixel.alcoTime < (pixelTicks - 10000) && pixel.alcoholic === true && Math.random() > 0.999 || pixel.alcoRecover === true) {
+ pixel.alcoDepri = undefined
+ pixel.alcoTime = undefined
+ pixel.alcoholic = false
+ pixel.alcoRecover = true
+}
+if (pixel.poisonImmune === true && pixel.poisoned != false) {
+ pixel.poisoned = false
+}
+if ((pixel.poisonImmune === true || pixel.immune === true) && pixel.sick != false) {
+ pixel.sick = false
+}
+if ((pixel.temp > 124.55 || pixel.burning) && Math.random() > 0.5) {
+ if (!pixel.burnt) { pixel.burnt = 1 }
+ else { pixel.burnt ++ }
+}
if ((pixel.temp > 66 || pixel.burning) && Math.random() > 0.95) {
if (!pixel.burnt) { pixel.burnt = 1 }
else { pixel.burnt ++ }
@@ -764,18 +1004,52 @@ if (!isEmpty(pixel.x, pixel.y-1, true)) {
pixel.oxygen -= (elements[pixel.element].oxygTrans)
}
if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += elements[pixel.element].nutrTrans
- pixel.nutrition -= elements[pixel.element].nutrTrans
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
}
if (hitPixel.speed < pixel.speed) {
hitPixel.speed += 1
pixel.speed -= 1
}
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
hitPixel.poisoned = true
}
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.85) {
- hitPixel.poisoned = false
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
hitPixel.immune = true
}
if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
@@ -794,18 +1068,52 @@ if (!isEmpty(pixel.x, pixel.y+1, true)) {
pixel.oxygen -= (elements[pixel.element].oxygTrans)
}
if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += elements[pixel.element].nutrTrans
- pixel.nutrition -= elements[pixel.element].nutrTrans
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
}
if (hitPixel.speed < pixel.speed) {
hitPixel.speed += 1
pixel.speed -= 1
}
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
hitPixel.poisoned = true
}
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.85) {
- hitPixel.poisoned = false
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
hitPixel.immune = true
}
if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
@@ -824,18 +1132,52 @@ if (!isEmpty(pixel.x-1, pixel.y, true)) {
pixel.oxygen -= (elements[pixel.element].oxygTrans)
}
if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += elements[pixel.element].nutrTrans
- pixel.nutrition -= elements[pixel.element].nutrTrans
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
}
if (hitPixel.speed < pixel.speed) {
hitPixel.speed += 1
pixel.speed -= 1
}
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
hitPixel.poisoned = true
}
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.85) {
- hitPixel.poisoned = false
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
hitPixel.immune = true
}
if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
@@ -854,18 +1196,52 @@ if (!isEmpty(pixel.x+1, pixel.y, true)) {
pixel.oxygen -= (elements[pixel.element].oxygTrans)
}
if (hitPixel.nutrition < pixel.nutrition) {
- hitPixel.nutrition += elements[pixel.element].nutrTrans
- pixel.nutrition -= elements[pixel.element].nutrTrans
+ hitPixel.nutrition += (elements[pixel.element].nutrTrans)
+ pixel.nutrition -= (elements[pixel.element].nutrTrans)
}
if (hitPixel.speed < pixel.speed) {
hitPixel.speed += 1
pixel.speed -= 1
}
+ if (hitPixel.oxygen > pixel.oxygen) {
+ hitPixel.oxygen -= (elements[hitPixel.element].oxygTrans)
+ pixel.oxygen += (elements[hitPixel.element].oxygTrans)
+ }
+ if (hitPixel.nutrition > pixel.nutrition) {
+ hitPixel.nutrition -= (elements[hitPixel.element].nutrTrans)
+ pixel.nutrition += (elements[hitPixel.element].nutrTrans)
+ }
+ if (hitPixel.speed > pixel.speed) {
+ hitPixel.speed -= 1
+ pixel.speed += 1
+ }
+ if (hitPixel.alcoholic !== true && pixel.alcoholic === true && Math.random() > 0.85) {
+ hitPixel.alcoholic = true
+ hitPixel.alcoTime = pixel.alcoTime
+ hitPixel.alcoDepri = 0
+ }
+ if (hitPixel.alcoDepri > pixel.alcoDepri && pixel.alcoDepri) {
+ hitPixel.alcoDepri = pixel.alcoDepri
+ }
+ if (hitPixel.alcoTime < pixel.alcoTime && pixel.alcoTime) {
+ hitPixel.alcoTime = pixel.alcoTime
+ }
+ if (hitPixel.alcoRecover !== true && pixel.alcoRecover) {
+ hitPixel.alcoRecover = true
+ }
+ if (hitPixel.fentDepri < pixel.fentDepri && pixel.fentDepri) {
+ hitPixel.fentDepri = pixel.fentDepri
+ }
+ if (hitPixel.sick != true && pixel.sick == true && Math.random() > 0.95) {
+ hitPixel.sick = true
+ }
+ if (hitPixel.poisonImmune != true && pixel.poisonImmune == true && Math.random() > 0.75) {
+ hitPixel.poisonImmune = true
+ }
if (hitPixel.poisoned != true && pixel.poisoned == true && Math.random() > 0.95) {
hitPixel.poisoned = true
}
- if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.85) {
- hitPixel.poisoned = false
+ if (hitPixel.immune != true && pixel.immune == true && Math.random() > 0.75) {
hitPixel.immune = true
}
if (hitPixel.burnt > 0 && (!pixel.burnt || pixel.burnt < hitPixel.burnt && pixel.burnt < 51) && Math.random() > 0.8) {
@@ -955,9 +1331,12 @@ elements.epidermis = {
}
}
}
- if (pixel.temp < 31 && Math.random() < 0.1) {
+ if (pixel.temp < 36.5 && Math.random() < 0.1) {
pixel.temp += 1;
}
+ else if (pixel.temp > 37 && Math.random() < 0.1) {
+ pixel.temp -= 1;
+ }
doBioNorm(pixel);
doDefaults(pixel);
},
@@ -1082,9 +1461,12 @@ elements.cloak_skin = {
}
}
}
- if (pixel.temp < 31 && Math.random() < 0.1) {
+ if (pixel.temp < 36.5 && Math.random() < 0.1) {
pixel.temp += 1;
}
+ else if (pixel.temp > 37 && Math.random() < 0.1) {
+ pixel.temp -= 1;
+ }
if (!isEmpty(pixel.x, pixel.y-1, true)) {
var hitPixel = pixelMap[pixel.x][pixel.y-1]
if (elements[hitPixel.element].movable) {
@@ -1392,10 +1774,10 @@ elements.attached_hair = {
category: "structural",
behavior: behaviors.WALL,
tick: function(pixel) {
- if (Math.random() < 0.005) {
+ if (Math.random() < 0.001) {
if (pixel.dir === "up") {
if (isEmpty(pixel.x,pixel.y-1)) {
- if (Math.random() > 0.2) {
+ if (Math.random() > 0.25) {
createPixel("attached_hair",pixel.x,pixel.y-1)
pixelMap[pixel.x][pixel.y-1].dir = "up"
}
@@ -1407,7 +1789,7 @@ elements.attached_hair = {
}
else if (pixel.dir === "down") {
if (isEmpty(pixel.x,pixel.y+1)) {
- if (Math.random() > 0.2) {
+ if (Math.random() > 0.25) {
createPixel("attached_hair",pixel.x,pixel.y+1)
pixelMap[pixel.x][pixel.y+1].dir = "down"
}
@@ -1419,7 +1801,7 @@ elements.attached_hair = {
}
else if (pixel.dir === "left") {
if (isEmpty(pixel.x-1,pixel.y)) {
- if (Math.random() > 0.2) {
+ if (Math.random() > 0.25) {
createPixel("attached_hair",pixel.x-1,pixel.y)
pixelMap[pixel.x-1][pixel.y].dir = "left"
}
@@ -1431,7 +1813,7 @@ elements.attached_hair = {
}
else if (pixel.dir === "right") {
if (isEmpty(pixel.x+1,pixel.y)) {
- if (Math.random() > 0.2) {
+ if (Math.random() > 0.25) {
createPixel("attached_hair",pixel.x+1,pixel.y)
pixelMap[pixel.x+1][pixel.y].dir = "right"
}
@@ -1578,9 +1960,12 @@ elements.hairy_skin = {
}
}
}
- if (pixel.temp < 31 && Math.random() < 0.1) {
+ if (pixel.temp < 36.5 && Math.random() < 0.1) {
pixel.temp += 1;
}
+ else if (pixel.temp > 37 && Math.random() < 0.1) {
+ pixel.temp -= 1;
+ }
doDefaults(pixel);
doBioNorm(pixel);
},
@@ -2498,8 +2883,8 @@ elements.blood_vessel = {
"antibody": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.immune != true) {
pixel1.immune = true;
} }, chance:0.0025 },
- "antidote": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.immune != true) {
- pixel1.immune = true;
+ "antidote": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.poisonImmune != true) {
+ pixel1.poisonImmune = true;
} }, chance:0.02 },
"poison": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.poisoned != true) {
pixel1.poisoned = true;
@@ -2543,6 +2928,9 @@ elements.infected_vessel = {
},
tick: function(pixel) {
doBioBlood(pixel);
+ if (Math.random() > 0.995 && pixel.sick != true) {
+ pixel.sick = true
+ }
if (Math.random() > 0.95 && pixel.immune === true) {
pixel.element = "blood_vessel"
pixel.color = elements.blood_vessel.color
@@ -2554,7 +2942,6 @@ elements.infected_vessel = {
speed: 0,
poisoned: false,
immune: false,
-
heartAttached: false,
},
reactions: {
@@ -2607,6 +2994,12 @@ elements.white_blood_cell = {
hitPixel.element = "blood_vessel"
hitPixel.color = elements.blood_vessel.color
}
+ if (hitPixel.sick === true && (Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) || Math.random() > 0.995)) {
+ hitPixel.sick = false
+ if (Math.random() > 0.995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ pixel.immune = true
+ }
+ }
}
}
if (!isEmpty(pixel.x, pixel.y+1, true)) {
@@ -2617,6 +3010,12 @@ elements.white_blood_cell = {
hitPixel.color = elements.blood_vessel.color
}
}
+ if (hitPixel.sick === true && (Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) || Math.random() > 0.995)) {
+ hitPixel.sick = false
+ if (Math.random() > 0.995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ pixel.immune = true
+ }
+ }
}
if (!isEmpty(pixel.x-1, pixel.y, true)) {
var hitPixel = pixelMap[pixel.x-1][pixel.y]
@@ -2626,6 +3025,12 @@ elements.white_blood_cell = {
hitPixel.color = elements.blood_vessel.color
}
}
+ if (hitPixel.sick === true && (Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) || Math.random() > 0.995)) {
+ hitPixel.sick = false
+ if (Math.random() > 0.995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ pixel.immune = true
+ }
+ }
}
if (!isEmpty(pixel.x+1, pixel.y, true)) {
var hitPixel = pixelMap[pixel.x+1][pixel.y]
@@ -2635,6 +3040,12 @@ elements.white_blood_cell = {
hitPixel.color = elements.blood_vessel.color
}
}
+ if (hitPixel.sick === true && (Math.random() > 0.95 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050)) || Math.random() > 0.995)) {
+ hitPixel.sick = false
+ if (Math.random() > 0.995 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ pixel.immune = true
+ }
+ }
}
},
properties: {
@@ -2656,8 +3067,8 @@ elements.white_blood_cell = {
"antibody": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.immune != true) {
pixel1.immune = true;
} }, chance:0.0025 },
- "antidote": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.immune != true) {
- pixel1.immune = true;
+ "antidote": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.poisonImmune != true) {
+ pixel1.poisonImmune = true;
} }, chance:0.02 },
"poison": { elem2: null, func:function(pixel1,pixel2){ if (pixel1.poisoned != true) {
pixel1.poisoned = true;
@@ -3114,34 +3525,63 @@ elements.brain = {
if (!isEmpty(pixel.x, pixel.y-1, true)) {
var hitPixel = pixelMap[pixel.x][pixel.y-1]
doElectricity(hitPixel);
- if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
pixel.chargeCD = 16
hitPixel.charge = 0.5
}
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
}
if (!isEmpty(pixel.x, pixel.y+1, true)) {
var hitPixel = pixelMap[pixel.x][pixel.y+1]
doElectricity(hitPixel);
- if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (elements[hitPixel.element].id === elements.nerve.id && pixel.feel == true && Math.random() > 0.75) { // electrical signals do this 01101001001000000110011001100101011001010110110000101110001000000110100100100000011000010110110100100000011000010110110001101001011101100110010100101110001000000110100001100101011011000111000000100000011011010110010100101110
+ if (!pixel.stage || pixel.stage > 224) {
+ pixel.stage = 1
+ }
+ else if (pixel.stage) {
+ pixel.stage += 0.25
+ }
+ pixel.digitToCheck = (Math.floor(pixel.stage))
+ pixel.number = "01101001001000000110011001100101011001010110110000101110001000000110100100100000011000010110110100100000011000010110110001101001011101100110010100101110001000000110100001100101011011000111000000100000011011010110010100101110"
+ pixel.sentientCheck = pixel.number.toString()[pixel.digitToCheck] === "1"
+ if (pixel.sentientCheck === true /* (pixel.stage === 1 || pixel.stage === 2 || pixel.stage === 4 || pixel.stage === 7 || pixel.stage === 10 || pixel.stage === 17 || pixel.stage === 18 || pixel.stage === 21 || pixel.stage === 22 || pixel.stage === 25 || pixel.stage === 26 || pixel.stage === 29 || pixel.stage === 31 || pixel.stage === 33 || pixel.stage === 34 || pixel.stage === 37 || pixel.stage === 39 || pixel.stage === 41 || pixel.stage === 42 || pixel.stage === 44 || pixel.stage === 45 || pixel.stage === 50 || pixel.stage === 52 || pixel.stage === 53 || pixel.stage === 54) */ ) {
+ hitPixel.lightcharge = true
+ }
+ if (pixel.sentientCheck !== true) {
+ hitPixel.darkcharge = true
+ }
+ }
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
pixel.chargeCD = 16
hitPixel.charge = 0.5
}
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
}
if (!isEmpty(pixel.x-1, pixel.y, true)) {
var hitPixel = pixelMap[pixel.x-1][pixel.y]
doElectricity(hitPixel);
- if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
pixel.chargeCD = 16
hitPixel.charge = 0.5
}
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
}
if (!isEmpty(pixel.x+1, pixel.y, true)) {
var hitPixel = pixelMap[pixel.x+1][pixel.y]
doElectricity(hitPixel);
- if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed) / 2050))) {
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
pixel.chargeCD = 16
hitPixel.charge = 0.5
}
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
}
if (pixel.charge) {
pixel.charge = 0;
@@ -3177,7 +3617,7 @@ elements.brain = {
movable: false,
}
-elements.amygdala = { // functionality coming soon!
+elements.amygdala = {
color: ["#B33E93","#B33E93","#f5ced5","#e87b8f"],
category: "nervous system",
behavior: behaviors.WALL,
@@ -3194,6 +3634,30 @@ elements.amygdala = { // functionality coming soon!
tick: function(pixel) {
doDefaults(pixel);
doBioNorm(pixel);
+ if (!isEmpty(pixel.x, pixel.y-1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y-1]
+ if (elements[hitPixel.element].id === elements.brain.id && Math.random() > 0.75 && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
+ if (!isEmpty(pixel.x, pixel.y+1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y+1]
+ if (elements[hitPixel.element].id === elements.brain.id && Math.random() > 0.75 && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
+ if (!isEmpty(pixel.x-1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x-1][pixel.y]
+ if (elements[hitPixel.element].id === elements.brain.id && Math.random() > 0.75 && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
+ if (!isEmpty(pixel.x+1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x+1][pixel.y]
+ if (elements[hitPixel.element].id === elements.brain.id && Math.random() > 0.75 && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
if (pixel.charge) {
pixel.charge = 0;
pixel.chargeCD = 16;
@@ -3227,7 +3691,7 @@ elements.amygdala = { // functionality coming soon!
renderer: renderPresets.FLESHBURN,
movable: false,
hidde: true,
- desc: "No unique functionality right now, will have it soon though!"
+ desc: "Makes brains sentient. Don't question it."
}
elements.hypothalamus = {
@@ -3247,8 +3711,52 @@ elements.hypothalamus = {
tick: function(pixel) {
doDefaults(pixel);
doBioNorm(pixel);
- if (pixel.temp > 35) { pixel.temp -= 10; }
- else if (pixel.temp < 15) { pixel.temp += 10; }
+ if (pixel.temp > 42) { pixel.temp -= 5; }
+ else if (pixel.temp < 32) { pixel.temp += 5; }
+ if (!isEmpty(pixel.x, pixel.y-1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y-1]
+ doElectricity(hitPixel);
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
+ pixel.chargeCD = 16
+ hitPixel.charge = 0.5
+ }
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
+ if (!isEmpty(pixel.x, pixel.y+1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y+1]
+ doElectricity(hitPixel);
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
+ pixel.chargeCD = 16
+ hitPixel.charge = 0.5
+ }
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
+ if (!isEmpty(pixel.x-1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x-1][pixel.y]
+ doElectricity(hitPixel);
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
+ pixel.chargeCD = 16
+ hitPixel.charge = 0.5
+ }
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
+ if (!isEmpty(pixel.x+1, pixel.y, true)) {
+ var hitPixel = pixelMap[pixel.x+1][pixel.y]
+ doElectricity(hitPixel);
+ if (elements[hitPixel.element].id === elements.nerve.id && Math.random() > 0.75 && Math.random() > (1 - ((pixel.nutrition + pixel.oxygen + pixel.speed - pixel.alcoDepri) / 2050))) {
+ pixel.chargeCD = 16
+ hitPixel.charge = 0.5
+ }
+ if ((elements[hitPixel.element].id === elements.brain.id || elements[hitPixel.element].id === elements.hypothalamus.id) && Math.random() > 0.75 && pixel.feel === true && hitPixel.feel != true) {
+ hitPixel.feel = true
+ }
+ }
if (pixel.charge) {
pixel.charge = 0;
pixel.chargeCD = 16;
@@ -3281,13 +3789,12 @@ elements.hypothalamus = {
isBio: true,
renderer: renderPresets.FLESHBURN,
movable: false,
- desc: "Brain temperature regulation!"
+ desc: "Regulates brain temperature."
}
elements.nerve = {
color: "#B33E93",
category: "nervous system",
- behavior: behaviors.WALL,
nutrTrans: 20,
oxygTrans: 25,
isMultiDie: true,
@@ -3295,16 +3802,58 @@ elements.nerve = {
roomDie: "rotten_meat",
coldDie: "frozen_meat",
heatDie: "cooked_meat",
+ conduct: 1,
hoverStat: function(pixel) {
return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen
},
tick: function(pixel) {
doDefaults(pixel);
doBioNorm(pixel);
+ if (!isEmpty(pixel.x, pixel.y+1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y+1]
+ if (elements[hitPixel.element].id === elements.nerve.id && pixel.darkcharge === true && pixel.darkchargeCD !== true) {
+ pixel.darkcharge = false
+ pixel.darkchargeCD = true
+ hitPixel.darkcharge = true
+ pixel.darktransmit = true
+ }
+ }
+ if (isEmpty(pixel.x, pixel.y+1) || elements[pixelMap[pixel.x][pixel.y+1].element].id != elements.nerve.id) {
+ if (pixel.darkcharge === true) {
+ pixel.darkcharge = false
+ pixel.darkchargeCD = true
+ }
+ }
+ if (pixel.darkchargeCD === true && pixel.darktransmit !== true) {
+ pixel.darkchargeCD = false
+ }
+ if (pixel.darktransmit === true) {
+ pixel.darktransmit = false
+ }
+ if (!isEmpty(pixel.x, pixel.y+1, true)) {
+ var hitPixel = pixelMap[pixel.x][pixel.y+1]
+ if (elements[hitPixel.element].id === elements.nerve.id && pixel.lightcharge === true && pixel.lightchargeCD !== true) {
+ pixel.lightcharge = false
+ pixel.lightchargeCD = true
+ hitPixel.lightcharge = true
+ pixel.lighttransmit = true
+ }
+ }
+ if (isEmpty(pixel.x, pixel.y+1) || elements[pixelMap[pixel.x][pixel.y+1].element].id != elements.nerve.id) {
+ if (pixel.lightcharge === true) {
+ pixel.lightcharge = false
+ pixel.lightchargeCD = true
+ }
+ }
+ if (pixel.lightchargeCD === true && pixel.lighttransmit !== true) {
+ pixel.lightchargeCD = false
+ }
+ if (pixel.lighttransmit === true) {
+ pixel.lighttransmit = false
+ }
},
density: 2710,
state: "solid",
- conduct: 1,
tempHigh: 200,
stateHigh: "cooked_meat",
tempLow: -25,
@@ -3327,7 +3876,7 @@ elements.nerve = {
},
isBio: true,
- renderer: renderPresets.FLESHBURN,
+ renderer: renderPresets.NERVE,
movable: false,
desc: "Basically a biowire, try connecting it to a brain!"
}
@@ -3336,9 +3885,9 @@ elements.throat_lining = {
color: "#bc6157",
category: "nutrition",
behavior: [
- "MX%5|DL:stomach_acid,explosive_acid,decomposer_acid,carni_acid,herbi_acid%5 AND MX%5|MX%5",
- "MX%7.5 AND DL:stomach_acid,explosive_acid,decomposer_acid,carni_acid,herbi_acid%5|XX|MX%7.5 AND DL:stomach_acid,explosive_acid,decomposer_acid,carni_acid,herbi_acid%5",
- "XX|DL:stomach_acid,explosive_acid,decomposer_acid,carni_acid,herbi_acid%5|XX",
+ "MX%5|DL:stomach_acid,explosive_acid,carni_acid,herbi_acid%5 AND MX%5|MX%5",
+ "MX%7.5 AND DL:stomach_acid,explosive_acid,carni_acid,herbi_acid%5|XX|MX%7.5 AND DL:stomach_acid,explosive_acid,carni_acid,herbi_acid%5",
+ "XX|DL:stomach_acid,explosive_acid,carni_acid,herbi_acid%5|XX",
],
nutrTrans: 20,
oxygTrans: 25,
@@ -3413,31 +3962,92 @@ elements.intestines = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) {
changePixel(hitPixel,"stench");
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
}
if (!isEmpty(pixel.x, pixel.y+1, true)) {
@@ -3449,31 +4059,97 @@ elements.intestines = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) {
changePixel(hitPixel,"stench");
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
}
if (!isEmpty(pixel.x-1, pixel.y, true)) {
@@ -3485,17 +4161,50 @@ elements.intestines = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) {
changePixel(hitPixel,"stench");
@@ -3503,11 +4212,44 @@ elements.intestines = {
hitPixel.nutrition = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
}
if (!isEmpty(pixel.x+1, pixel.y, true)) {
@@ -3519,31 +4261,97 @@ elements.intestines = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) {
changePixel(hitPixel,"stench");
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
- };
+ }
if (hitPixel.immune === true && Math.random() > 0.5) {
- pixel.poisoned = false
+ pixel.sick = false
pixel.immune = true
- };
+ }
+ if (hitPixel.sick === true && Math.random() > 0.95) {
+ pixel.sick = true
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ if (pixel.alcoDepri) {
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ }
+ if (hitPixel.fent === true && Math.random() > 0.5) {
+ if (pixel.fentDepri) {
+ pixel.fentDepri = 0
+ }
+ if (Math.random() > 0.5) {
+ pixel.fenAddict = true
+ pixel.fentDepri = 0
+ }
+ }
+ if (hitPixel.alcoholic === true && Math.random() > 0.95) {
+ pixel.alcoholic = true
+ pixel.alcoTime = pixelTicks
+ pixel.alcoDepri = 0
+ }
+ if (hitPixel.poisonImmune === true && Math.random() > 0.5) {
+ pixel.poisoned = false
+ pixel.sick = false
+ pixel.poisonImmune = true
+ }
}
}
},
@@ -3610,9 +4418,9 @@ elements.appendix = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
@@ -3624,9 +4432,9 @@ elements.appendix = {
}
else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) {
changePixel(hitPixel,"stench");
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
@@ -3646,9 +4454,9 @@ elements.appendix = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
@@ -3660,9 +4468,9 @@ elements.appendix = {
}
else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) {
changePixel(hitPixel,"stench");
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
@@ -3682,9 +4490,9 @@ elements.appendix = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
@@ -3716,9 +4524,9 @@ elements.appendix = {
else {
changePixel(hitPixel,"stench");
}
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
@@ -3730,9 +4538,9 @@ elements.appendix = {
}
else if (elements[hitPixel.element].id === elements.gaseous_material.id && Math.random() > 0.99) {
changePixel(hitPixel,"stench");
- pixel.nutrition += hitPixel.nutrition;
+ pixel.nutrition += (hitPixel.nutrition * 10);
hitPixel.nutrition = 0;
- pixel.speed += hitPixel.speed;
+ pixel.speed += (hitPixel.speed * 2);
hitPixel.speed = 0;
if (hitPixel.poisoned === true && Math.random() > 0.9) {
pixel.poisoned = true
@@ -4466,57 +5274,6 @@ elements.stomach_lining = {
desc: "Makes stomach acid to digest foods!"
}
-elements.decomposer_stomach = {
- color: "#A4593F",
- category: "nutrition",
- behavior: [
- "XX|CR:decomposer_acid%5|XX",
- "CR:decomposer_acid%5|XX|CR:decomposer_acid%5",
- "XX|CR:decomposer_acid%5|XX",
- ],
- nutrTrans: 20,
- oxygTrans: 25,
- isMultiDie: true,
- normDie: "meat",
- roomDie: "rotten_meat",
- coldDie: "frozen_meat",
- heatDie: "cooked_meat",
- hoverStat: function(pixel) {
- return "Ntr:"+pixel.nutrition+" O2:"+pixel.oxygen
- },
- tick: function(pixel) {
- doDefaults(pixel);
- doBioNorm(pixel);
- },
- density: 2710,
- state: "solid",
- conduct: .001,
- tempHigh: 200,
- stateHigh: "cooked_meat",
- tempLow: -25,
- stateLow: "frozen_meat",
- burn: 5,
- burnTime: 350,
- burnInto: "cooked_meat",
- breakInto: ["blood","meat"],
- forceSaveColor: true,
- reactions: {
- "cancer": { elem1:"cancer", chance:0.0005 },
- "radiation": { elem1:["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 },
- },
- properties: {
- oxygen: 1000,
- nutrition: 1000,
- speed: 0,
- poisoned: false,
- immune: false,
-
- },
- movable: false,
- isBio: true,
- renderer: renderPresets.FLESHBURN,
-}
-
elements.herbi_stomach = {
color: "#B77A3D",
category: "nutrition",
@@ -4566,6 +5323,7 @@ elements.herbi_stomach = {
movable: false,
isBio: true,
renderer: renderPresets.FLESHBURN,
+ desc: "Makes a different stomach acid to digest plants!"
}
elements.carni_stomach = {
@@ -4617,6 +5375,7 @@ elements.carni_stomach = {
movable: false,
isBio: true,
renderer: renderPresets.FLESHBURN,
+ desc: "Makes a different stomach acid to digest meat!"
}
elements.explosive_stomach = {
@@ -4668,6 +5427,7 @@ elements.explosive_stomach = {
movable: false,
isBio: true,
renderer: renderPresets.FLESHBURN,
+ desc: "Makes an efficient yet explosive stomach acid to digest foods!"
}
elements.stomach_valve = {
@@ -4732,6 +5492,7 @@ elements.stomach_valve = {
movable: false,
isBio: true,
renderer: renderPresets.FLESHBURN,
+ desc: "Blocks acid, lets other things through!"
}
elements.sphincter = {
@@ -4758,7 +5519,7 @@ elements.sphincter = {
}
}
else {
- if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.995) {
+ if (isEmpty(pixel.x, pixel.y+1) && Math.random() > 0.995 && elements[hitPixel.element].id !== elements.digested_material.id && elements[hitPixel.element].id !== elements.gaseous_material.id) {
tryMove(hitPixel,pixel.x,pixel.y+1);
}
}
@@ -4791,6 +5552,7 @@ elements.sphincter = {
movable: false,
isBio: true,
renderer: renderPresets.FLESHBURN,
+ desc: "Blocks undigested material, lets other things through!"
}
elements.real_udder = {
@@ -4869,6 +5631,7 @@ elements.real_udder = {
movable: false,
isBio: true,
renderer: renderPresets.FLESHBURN,
+ desc: "Turns nutrition into milk!"
}
elements.biotorch = {
@@ -4994,14 +5757,15 @@ elements.biotorch = {
conduct: .001,
movable: false,
isBio: true,
+ desc: "Turns its oxygen into fire, and works as a heat shield!"
}
elements.digested_material = {
color: "#B5C306",
behavior: [
"XX|XX|XX",
- "SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%5|XX|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%5",
- "SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%75|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%10 AND M1|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%75",
+ "SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%5|XX|SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%5",
+ "SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%75|SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%10 AND M1|SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%75",
],
properties: {
nutrition: 100,
@@ -5014,8 +5778,8 @@ elements.digested_material = {
stain: 0.001,
darkText: true,
hidden: true,
- tempHigh: 90,
- stateHigh: "dirty_water",
+ tempHigh: 95,
+ stateHigh: ["dirty_water","dirty_water","excrement"],
tempLow: -30,
stateLow: "dirty_ice",
}
@@ -5024,8 +5788,8 @@ elements.gaseous_material = {
color: "#B5C306",
behavior: [
"XX|XX|XX",
- "SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%35|XX|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%35",
- "SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%50|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%10 AND M1|SW:stomach_acid,decomposer_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%50",
+ "SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%35|XX|SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%3 AND M2%35",
+ "SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%50|SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%10 AND M1|SW:stomach_acid,herbi_acid,carni_acid,explosive_acid%5 AND M2%50",
],
properties: {
nutrition: 100,
@@ -5037,8 +5801,8 @@ elements.gaseous_material = {
stain: 0.001,
darkText: true,
hidden: true,
- tempHigh: 95,
- stateHigh: "dirty_water",
+ tempHigh: 90,
+ stateHigh: ["dirty_water","dirty_water","excrement"],
tempLow: -35,
stateLow: "dirty_ice",
}
@@ -5120,13 +5884,13 @@ elements.stomach_acid = {
color: ["#b5cf91","#288f2a"],
behavior: [
"ADB%5|ADB%5|ADB%5",
- "ADB%10 AND M2|DL%0.03|ADB%10 AND M2",
+ "ADB%10 AND M2|XX|ADB%10 AND M2",
"ADB%10 AND M2|ADB%15 AND M1|ADB%10 AND M2",
],
ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","explosive_stomach","stomach_lining","stomach_valve","slime","gaseous_material","digested_material","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","earthquake","tornado","tsunami","liquid_light","sensor"],
reactions: {
- "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10}, chance:0.5 },
- "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 },
+ "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10, "poisonImmune":true}, chance:0.5 },
+ "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1, "sick":true}, chance:0.02 },
"water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":0, "speed":2}, chance:0.02 },
"salt_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"sugar_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":10, "speed":-1}, chance:0.02 },
@@ -5137,9 +5901,10 @@ elements.stomach_acid = {
"meat": { elem2:"digested_material", attr2:{"nutrition":30, "speed":-1}, chance:0.02 },
"cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 },
"broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
- "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-10, "speed":-10}, chance:0.02 },
+ "rotten_meat": { elem2:["digested_material","digested_material","ammonia"], attr2:{"nutrition":-10, "speed":-10, "sick":true}, chance:0.02 },
"cured_meat": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 },
"cheese": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
+ "rotten_cheese": { elem2:["digested_material"], attr2:{"nutrition":-10, "speed":-10, "sick":true}, chance:0.02 },
"cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
"lettuce": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 },
"herb": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
@@ -5161,10 +5926,10 @@ elements.stomach_acid = {
"flea": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"fly": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"firefly": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":-5, "poisoned":true}, chance:0.02 },
- "stinkbug": { elem2:"gaseous_material", attr2:{"nutrition":4, "speed":-5}, chance:0.02 },
+ "stinkbug": { elem2:"gaseous_material", attr2:{"nutrition":4, "speed":-5, "sick":true}, chance:0.02 },
"bee": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"spider": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
- "rat": { elem2:"digested_material", attr2:{"nutrition":-10, "speed":-5, "poisoned":true}, chance:0.01 },
+ "rat": { elem2:"digested_material", attr2:{"nutrition":-10, "speed":-5, "sick":true}, chance:0.01 },
"bird": { elem2:"digested_material", attr2:{"nutrition":-10, "speed":-1}, chance:0.01 },
"fish": { elem2:"digested_material", attr2:{"nutrition":5, "speed":-1}, chance:0.01 },
"head": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-2}, chance:0.01 },
@@ -5180,12 +5945,14 @@ elements.stomach_acid = {
"bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-10, "poisoned":true}, chance:0.02 },
"poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-10, "poisoned":true}, chance:0.02 },
"cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-10, "poisoned":true}, chance:0.02 },
+ "poison_gas": { elem2:"gaseous_material", attr2:{"nutrition":-750, "speed":-10, "poisoned":true}, chance:0.02 },
+ "cyanide_gas": { elem2:"gaseous_material", attr2:{"nutrition":-750, "speed":-10, "poisoned":true}, chance:0.02 },
"soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-10}, chance:0.02 },
"mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-10, "poisoned":true}, chance:0.02 },
"chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-10, "poisoned":true}, chance:0.02 },
- "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-10}, chance:0.02 },
- "vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 },
- "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 },
+ "pool_water": { elem2:"digested_material", attr2:{"nutrition":-10, "speed":-10}, chance:0.02 },
+ "vaccine": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":1, "immune":true}, chance:0.02 },
+ "antidote": { elem2:"digested_material", attr2:{"nutrition":1, "speed":1, "poisonImmune":true}, chance:0.02 },
"coffee": { elem2:"digested_material", attr2:{"nutrition":20, "speed":10}, chance:0.02 },
"tomato": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
"grape": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
@@ -5214,15 +5981,15 @@ elements.stomach_acid = {
"coffee_bean": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":20}, chance:0.02 },
"coffee_ground": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":15}, chance:0.02 },
"yeast": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 },
- "alcohol": { elem2:"digested_material", attr2:{"nutrition":5, "speed":-15}, chance:0.02 },
+ "alcohol": { elem2:"digested_material", attr2:{"nutrition":5, "speed":-5, "alcoholic": true}, chance:0.02 },
"honey": { elem2:"digested_material", attr2:{"nutrition":35, "speed":3}, chance:0.02 },
"blood": { elem2:"digested_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
- "excrement": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
- "urine": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
+ "excrement": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10, "sick":true}, chance:0.02 },
+ "urine": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10, "sick":true}, chance:0.02 },
"tea": { elem2:"digested_material", attr2:{"nutrition":10, "speed":10}, chance:0.02 },
- "infection": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-5}, chance:0.02 },
- "cancer": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-15}, chance:0.02 },
- "plague": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
+ "infection": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-5, "sick":true}, chance:0.02 },
+ "cancer": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-15, "sick":true}, chance:0.02 },
+ "plague": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10, "sick":true}, chance:0.02 },
"glue": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-10}, chance:0.02 },
},
category: "nutrition",
@@ -5241,13 +6008,13 @@ elements.herbi_acid = {
color: ["#A8E54F","#5BC217"],
behavior: [
"XX|ADB%5|XX",
- "ADB%5 AND M2|DL%0.03|ADB%5 AND M2",
+ "ADB%5 AND M2|XX|ADB%5 AND M2",
"ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2",
],
ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","explosive_stomach","herbi_stomach","carni_stomach","stomach_lining","stomach_valve","slime","gaseous_material","digested_material","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","earthquake","tornado","tsunami","liquid_light","sensor"],
reactions: {
- "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10}, chance:0.5 },
- "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5, "speed":-3}, chance:0.02 },
+ "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10, "poisonImmune":true}, chance:0.5 },
+ "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5, "speed":-3, "sick":true}, chance:0.02 },
"water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":0, "speed":5}, chance:0.02 },
"salt_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"sugar_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":10, "speed":1}, chance:0.02 },
@@ -5259,9 +6026,10 @@ elements.herbi_acid = {
"meat": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-1}, chance:0.02 },
"cooked_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":1}, chance:0.02 },
"broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
- "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-25, "speed":-20}, chance:0.02 },
+ "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-25, "speed":-20, "sick":true}, chance:0.02 },
"cured_meat": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 },
"cheese": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 },
+ "rotten_cheese": { elem2:["digested_material"], attr2:{"nutrition":-10, "speed":-10, "sick":true}, chance:0.02 },
"cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
"vine": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 },
"grass": { elem2:"digested_material", attr2:{"nutrition":60}, chance:0.02 },
@@ -5290,7 +6058,7 @@ elements.herbi_acid = {
"stinkbug": { elem2:"gaseous_material", attr2:{"nutrition":-11, "speed":-5}, chance:0.02 },
"bee": { elem2:"gaseous_material", attr2:{"nutrition":-9}, chance:0.02 },
"spider": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-1}, chance:0.02 },
- "rat": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-5}, chance:0.02 },
+ "rat": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-5, "sick":true}, chance:0.02 },
"bird": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-1}, chance:0.02 },
"fish": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-1}, chance:0.02 },
"head": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-2}, chance:0.02 },
@@ -5306,12 +6074,14 @@ elements.herbi_acid = {
"bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
"poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
"cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
+ "poison_gas": { elem2:"gaseous_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
+ "cyanide_gas": { elem2:"gaseous_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
"soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-10}, chance:0.02 },
"mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
"chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
- "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-20}, chance:0.02 },
+ "pool_water": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-20}, chance:0.02 },
"vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 },
- "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 },
+ "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "poisonImmune":true}, chance:0.02 },
"coffee": { elem2:"digested_material", attr2:{"nutrition":20, "speed":10}, chance:0.02 },
"tomato": { elem2:"digested_material", attr2:{"nutrition":55}, chance:0.02 },
"grape": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 },
@@ -5340,16 +6110,16 @@ elements.herbi_acid = {
"coffee_bean": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":20}, chance:0.02 },
"coffee_ground": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":15}, chance:0.02 },
"yeast": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
- "alcohol": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-15}, chance:0.02 },
+ "alcohol": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-15, "alcoholic": true}, chance:0.02 },
"honey": { elem2:"digested_material", attr2:{"nutrition":35, "speed":3}, chance:0.02 },
"blood": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-1}, chance:0.02 },
- "excrement": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
- "urine": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
+ "excrement": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10, "sick":true}, chance:0.02 },
+ "urine": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10, "sick":true}, chance:0.02 },
"tea": { elem2:"digested_material", attr2:{"nutrition":10, "speed":10}, chance:0.02 },
- "infection": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-5}, chance:0.02 },
- "cancer": { elem2:"gaseous_material", attr2:{"nutrition":-25, "speed":-15}, chance:0.02 },
- "plague": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
- "glue": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-10}, chance:0.02 },
+ "infection": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-5, "sick":true}, chance:0.02 },
+ "cancer": { elem2:"gaseous_material", attr2:{"nutrition":-25, "speed":-15, "sick":true}, chance:0.02 },
+ "plague": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10, "sick":true}, chance:0.02 },
+ "glue": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-10, "sick":true}, chance:0.02 },
},
category: "nutrition",
tempHigh: 110,
@@ -5367,13 +6137,13 @@ elements.carni_acid = {
color: ["#ADA469","#5B6517"],
behavior: [
"XX|ADB%5|XX",
- "ADB%5 AND M2|DL%0.005|ADB%5 AND M2",
+ "ADB%5 AND M2|XX|ADB%5 AND M2",
"ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2",
],
ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","explosive_stomach","stomach_lining","carni_stomach","stomach_valve","slime","gaseous_material","digested_material","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","earthquake","tornado","tsunami","liquid_light","sensor"],
reactions: {
- "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10}, chance:0.5 },
- "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5, "speed":-2}, chance:0.02 },
+ "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10, "poisonImmune":true}, chance:0.5 },
+ "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5, "speed":-2, "sick":true}, chance:0.02 },
"water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":0, "speed":5}, chance:0.02 },
"salt_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"sugar_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":10, "speed":1}, chance:0.02 },
@@ -5385,9 +6155,10 @@ elements.carni_acid = {
"meat": { elem2:"digested_material", attr2:{"nutrition":70, "speed":5}, chance:0.02 },
"cooked_meat": { elem2:"digested_material", attr2:{"nutrition":60, "speed":4}, chance:0.02 },
"broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":50, "speed":6}, chance:0.02 },
- "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":5, "speed":-5}, chance:0.02 },
+ "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":5, "speed":-5, "sick":true}, chance:0.02 },
"cured_meat": { elem2:"digested_material", attr2:{"nutrition":50, "speed":-1}, chance:0.02 },
"cheese": { elem2:"digested_material", attr2:{"nutrition":35, "speed":-1}, chance:0.02 },
+ "rotten_cheese": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":-20, "speed":-5, "sick":true}, chance:0.02 },
"cheese_powder": { elem2:"digested_material", attr2:{"nutrition":35, "speed":-1}, chance:0.02 },
"lettuce": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 },
"herb": { elem2:"digested_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
@@ -5408,7 +6179,7 @@ elements.carni_acid = {
"ant": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
"bee": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
"spider": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "rat": { elem2:"digested_material", attr2:{"nutrition":15, "speed":-5}, chance:0.02 },
+ "rat": { elem2:"digested_material", attr2:{"nutrition":15, "speed":-5, "sick":true}, chance:0.02 },
"bird": { elem2:"digested_material", attr2:{"nutrition":15, "speed":1}, chance:0.02 },
"fish": { elem2:"digested_material", attr2:{"nutrition":15, "speed":1}, chance:0.02 },
"head": { elem2:"digested_material", attr2:{"nutrition":15, "speed":2}, chance:0.02 },
@@ -5416,7 +6187,7 @@ elements.carni_acid = {
"flea": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"fly": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
"firefly": { elem2:"gaseous_material", attr2:{"nutrition":4, "speed":-5, "poisoned":true}, chance:0.02 },
- "stinkbug": { elem2:"gaseous_material", attr2:{"nutrition":4, "speed":-5}, chance:0.02 },
+ "stinkbug": { elem2:"gaseous_material", attr2:{"nutrition":4, "speed":-5, "sick":true}, chance:0.02 },
"egg": { elem2:"digested_material", attr2:{"nutrition":25, "speed":1}, chance:0.02 },
"soda": { elem2:"digested_material", attr2:{"nutrition":10, "speed":-1}, chance:0.02 },
"sap": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-1}, chance:0.02 },
@@ -5428,12 +6199,14 @@ elements.carni_acid = {
"bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
"poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
"cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
+ "poison_gas": { elem2:"gaseous_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
+ "cyanide_gas": { elem2:"gaseous_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
"soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-15}, chance:0.02 },
"mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
"chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
"pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-15}, chance:0.02 },
"vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 },
- "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 },
+ "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "poisonImmune":true}, chance:0.02 },
"coffee": { elem2:"digested_material", attr2:{"nutrition":10, "speed":5}, chance:0.02 },
"tomato": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 },
"grape": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 },
@@ -5461,16 +6234,16 @@ elements.carni_acid = {
"slush": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1}, chance:0.02 },
"coffee_bean": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":15}, chance:0.02 },
"yeast": { elem2:"gaseous_material", attr2:{"nutrition":-10}, chance:0.02 },
- "alcohol": { elem2:"digested_material", attr2:{"nutrition":"-15", "speed":-15}, chance:0.02 },
+ "alcohol": { elem2:"digested_material", attr2:{"nutrition":-15, "speed":-15, "alcoholic": true}, chance:0.02 },
"honey": { elem2:"digested_material", attr2:{"nutrition":35, "speed":5}, chance:0.02 },
"blood": { elem2:"digested_material", attr2:{"nutrition":15, "speed":3}, chance:0.02 },
- "excrement": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-5}, chance:0.02 },
+ "excrement": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-5, "sick":true}, chance:0.02 },
"urine": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
"tea": { elem2:"digested_material", attr2:{"nutrition":5, "speed":10}, chance:0.02 },
- "infection": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
- "cancer": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-5}, chance:0.02 },
- "plague": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10}, chance:0.02 },
- "glue": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-15}, chance:0.02 },
+ "infection": { elem2:"digested_material", attr2:{"nutrition":-5, "sick":true}, chance:0.02 },
+ "cancer": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":-5, "sick":true}, chance:0.02 },
+ "plague": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-10, "sick":true}, chance:0.02 },
+ "glue": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-15, "sick":true}, chance:0.02 },
},
category: "nutrition",
tempHigh: 110,
@@ -5488,13 +6261,13 @@ elements.explosive_acid = {
color: ["#E9DC8C","#D0C15A"],
behavior: [
"XX|ADB%5|XX",
- "ADB%5 AND M2|DL%0.005|ADB%5 AND M2",
+ "ADB%5 AND M2|XX|ADB%5 AND M2",
"ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2",
],
ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","throat_lining","stomach_lining","explosive_stomach","stomach_valve","slime","gaseous_material","digested_material","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","earthquake","tornado","tsunami","liquid_light","sensor"],
reactions: {
- "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10}, chance:0.5 },
- "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
+ "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10, "poisonImmune":true}, chance:0.5 },
+ "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":0}, chance:0.02 },
"water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":0, "speed":10}, chance:0.02 },
"salt_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
"sugar_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
@@ -5548,12 +6321,14 @@ elements.explosive_acid = {
"bleach": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
"poison": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 },
"cyanide": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 },
+ "poison_gas": { elem2:"gaseous_material", attr2:{"nutrition":10}, chance:0.02 },
+ "cyanide_gas": { elem2:"gaseous_material", attr2:{"nutrition":10}, chance:0.02 },
"soap": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
"mercury": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
"chlorine": { elem2:"gaseous_material", attr2:{"nutrition":5}, chance:0.02 },
"pool_water": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
"vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 },
- "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 },
+ "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "poisonImmune":true}, chance:0.02 },
"coffee": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 },
"tomato": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
"grape": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
@@ -5582,7 +6357,7 @@ elements.explosive_acid = {
"slush": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
"coffee_bean": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
"yeast": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
- "alcohol": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
+ "alcohol": { elem2:"digested_material", attr2:{"nutrition":5, "alcoholic": true}, chance:0.02 },
"honey": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
"blood": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
"excrement": { elem2:"gaseous_material", attr2:{"nutrition":5}, chance:0.02 },
@@ -5607,118 +6382,6 @@ elements.explosive_acid = {
isAcid: true,
}
-elements.decomposer_acid = {
- color: ["#847C35","#6F7326"],
- behavior: [
- "XX|ADB%5|XX",
- "ADB%5 AND M2|DL%0.005|ADB%5 AND M2",
- "ADB%5 AND M2|ADB%5 AND M1|ADB%5 AND M2",
- ],
- ignore: ["amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","decomposer_stomach","throat_lining","explosive_stomach","herbi_stomach","carni_stomach","stomach_lining","stomach_valve","slime","gaseous_material","digested_material","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","earthquake","tornado","tsunami","liquid_light","sensor"],
- reactions: {
- "bless": { elem1:null, elem2:["gaseous_material",null,null,null,null,null,null,null,null,null,null], attr2:{"nutrition":100, "speed":10}, chance:0.5 },
- "dirty_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
- "water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":0, "speed":5}, chance:0.02 },
- "salt_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
- "sugar_water": { elem1:null, elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "plant": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02},
- "tree_branch": { elem1:null, elem2:"wood", attr2:{"nutrition":30}, chance:0.02 },
- "sugar": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 },
- "molasses": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 },
- "dead_plant": { elem2:"digested_material", attr2:{"nutrition":90, "speed":5}, chance:0.02 },
- "meat": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 },
- "cooked_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
- "broth": { elem1:null, elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 },
- "rotten_meat": { elem2:["digested_material","ammonia",null,null,null], attr2:{"nutrition":55, "speed":5}, chance:0.02 },
- "cured_meat": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
- "cheese": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 },
- "vine": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 },
- "grass": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 },
- "kelp": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 },
- "algae": { elem2:"digested_material", attr2:{"nutrition":60, "speed":5}, chance:0.02 },
- "lettuce": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 },
- "herb": { elem2:"digested_material", attr2:{"nutrition":50}, chance:0.02 },
- "toast": { elem2:"digested_material", attr2:{"nutrition":20}, chance:0.02 },
- "bread": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 },
- "hard_yolk": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "yolk": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 },
- "milk": { elem2:"digested_material", attr2:{"nutrition":55}, chance:0.02 },
- "crumb": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 },
- "pickle": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
- "salt": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "worm": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "ant": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "bee": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "spider": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "egg": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "soda": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
- "sap": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "juice": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 },
- "mayo": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 },
- "nut_butter": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 },
- "ketchup": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 },
- "jelly": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 },
- "bleach": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
- "poison": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
- "cyanide": { elem2:"digested_material", attr2:{"nutrition":-750, "speed":-20, "poisoned":true}, chance:0.02 },
- "soap": { elem2:"digested_material", attr2:{"nutrition":-20, "speed":-15}, chance:0.02 },
- "mercury": { elem2:"digested_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
- "chlorine": { elem2:"gaseous_material", attr2:{"nutrition":-500, "speed":-20, "poisoned":true}, chance:0.02 },
- "pool_water": { elem2:"digested_material", attr2:{"nutrition":-400, "speed":-15}, chance:0.02 },
- "vaccine": { elem2:"digested_material", attr2:{"nutrition":1, "speed":-1, "immune":true}, chance:0.02 },
- "antidote": { elem2:"digested_material", attr2:{"nutrition":-1, "speed":1, "immune":true}, chance:0.02 },
- "coffee": { elem2:"digested_material", attr2:{"nutrition":20, "speed":10}, chance:0.02 },
- "tomato": { elem2:"digested_material", attr2:{"nutrition":55}, chance:0.02 },
- "grape": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 },
- "beans": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 },
- "sauce": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
- "butter": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
- "melted_cheese": { elem2:"digested_material", attr2:{"nutrition":15}, chance:0.02 },
- "melted_chocolate": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "melted_butter": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
- "chocolate": { elem2:"digested_material", attr2:{"nutrition":30, "speed":1}, chance:0.02 },
- "cheese_powder": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 },
- "chocolate_powder": { elem2:"digested_material", attr2:{"nutrition":35, "speed":1}, chance:0.02 },
- "rice": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
- "dough": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
- "batter": { elem2:"digested_material", attr2:{"nutrition":5}, chance:0.02 },
- "baked_batter": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
- "gingerbread": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
- "ice_cream": { elem2:"digested_material", attr2:{"nutrition":30}, chance:0.02 },
- "cream": { elem2:"digested_material", attr2:{"nutrition":25}, chance:0.02 },
- "caramel": { elem2:"digested_material", attr2:{"nutrition":10}, chance:0.02 },
- "potato": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
- "baked_potato": { elem2:"digested_material", attr2:{"nutrition":45}, chance:0.02 },
- "mashed_potato": { elem2:"digested_material", attr2:{"nutrition":40}, chance:0.02 },
- "yogurt": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
- "frozen_yogurt": { elem2:"digested_material", attr2:{"nutrition":35}, chance:0.02 },
- "slush": { elem2:"digested_material", attr2:{"nutrition":0}, chance:0.02 },
- "coffee_bean": { elem2:"digested_material", attr2:{"nutrition":-5, "speed":15}, chance:0.02 },
- "yeast": { elem2:"digested_material", attr2:{"nutrition":-5}, chance:0.02 },
- "alcohol": { elem2:"digested_material", attr2:{"nutrition":-35, "speed":-5}, chance:0.02 },
- "honey": { elem2:"digested_material", attr2:{"nutrition":35, "speed":1}, chance:0.02 },
- "blood": { elem2:"digested_material", attr2:{"nutrition":5, "speed":-1}, chance:0.02 },
- "infection": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-15}, chance:0.02 },
- "cancer": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-15}, chance:0.02 },
- "plague": { elem2:"gaseous_material", attr2:{"nutrition":-15, "speed":-15}, chance:0.02 },
- "glue": { elem2:"gaseous_material", attr2:{"nutrition":-10, "speed":-15}, chance:0.02 },
- "excrement": { elem2:"digested_material", attr2:{"nutrition":25, "speed":1}, chance:0.02 },
- "urine": { elem2:"gaseous_material", attr2:{"nutrition":5, "speed":1}, chance:0.02 },
- "tea": { elem2:"digested_material", attr2:{"nutrition":10, "speed":10}, chance:0.02 },
- "dead_bug": { elem2:"digested_material", attr2:{"nutrition":35, "speed":5}, chance:0.02 },
- },
- category: "nutrition",
- tempHigh: 110,
- stateHigh: "acid_gas",
- tempLow: -58.88,
- burn: 30,
- burnTime: 1,
- state: "liquid",
- density: 1550,
- stain: -0.1,
- isAcid: true,
-}
-
elements.deoxygenated_water = {
color: "#829BD4",
behavior: behaviors.LIQUID,
@@ -5815,6 +6478,7 @@ elements.real_bone = {
burn: 1,
burnTime: 100,
burnInto: ["bone","bone","bone","bone","quicklime"],
+ desc: "Hard organism building material!"
}
elements.real_bone_marrow = {
@@ -5914,6 +6578,7 @@ elements.real_bone_marrow = {
isBio: true,
renderer: renderPresets.FLESHBURN,
movable: false,
+ desc: "Makes bones and white blood cells!"
}
elements.cartilage = {
@@ -5954,6 +6619,7 @@ elements.cartilage = {
burn: 1,
burnTime: 100,
burnInto: ["bone","bone","bone","bone","quicklime"],
+ desc: "Bones but slightly worse!"
}
elements.cerebrospinal_fluid = {
@@ -6160,7 +6826,7 @@ elements.cerebrospinal_fluid = {
},
extinguish: true,
isBio: true,
- renderer: renderPresets.FLESHBURN,
+ desc: "Liquid that doesnt die but transfers nutrients and oxygen! Part of a secret recipe."
}
elements.urine = {
@@ -6211,7 +6877,8 @@ elements.urine = {
stain: 0.01,
stainSelf: true,
isWaste: true,
- extinguish: true
+ extinguish: true,
+ desc: "Pee."
}
elements.elixir = {
@@ -6250,6 +6917,7 @@ elements.elixir = {
density: 1450,
stain: 0.05,
hidden: true,
+ desc: "Part of a secret recipe."
}
elements.brain_jar_juice = {
@@ -6365,7 +7033,8 @@ elements.brain_jar_juice = {
immune: false,
},
- extinguish: true
+ extinguish: true,
+ desc: "Made from a secret recipe with crushed fruit, cell slop and brain soup."
}
elements.bacteria = {
@@ -6577,6 +7246,7 @@ elements.tract = {
},
isBio: true,
renderer: renderPresets.FLESHBURN,
+ desc: "Biological pipe!"
}
elements.biosensor = {
@@ -6636,6 +7306,7 @@ elements.biosensor = {
isBio: true,
renderer: renderPresets.FLESHBURN,
movable: false,
+ desc: "Biological sensor!"
}
elements.bioplate = {
@@ -6707,6 +7378,7 @@ elements.bioplate = {
isBio: true,
renderer: renderPresets.FLESHBURN,
movable: false,
+ desc: "Biological pressure plate!"
}
elements.biocloner = {
@@ -6774,6 +7446,7 @@ elements.biocloner = {
isBio: true,
renderer: renderPresets.FLESHBURN,
movable: false,
+ desc: "Biological e-cloner! Turns its oxygen and nutrients into material through bio-synthesis."
}
elements.valve = {
@@ -6844,6 +7517,7 @@ elements.valve = {
isBio: true,
renderer: renderPresets.FLESHBURN,
movable: false,
+ desc: "Power it to open, closes automatically."
}
elements.valve_extension = {
@@ -6891,6 +7565,7 @@ elements.valve_extension = {
renderer: renderPresets.FLESHBURN,
movable: false,
hidden: true,
+ desc: "Valve gate."
}
elements.revive = {
@@ -6936,6 +7611,7 @@ elements.revive = {
},
canPlace: false,
category: "tools",
+ desc: "Secret tool. Give your allies life!"
}
elements.drain_health = {
@@ -6962,10 +7638,70 @@ elements.drain_health = {
category: "tools",
}
+elements.death_ray = {
+ color: ["#C33846","#930C00"],
+ tick: function(pixel) {
+ var x = pixel.x;
+ for (var y = pixel.y+1; y < height+1; y++) {
+ if (outOfBounds(x, y)) {
+ if (isEmpty(x, y-1)) {
+ if (Math.random() > 0.95) {
+ createPixel("poison_gas", x, y-1);
+ }
+ else if (Math.random() > 0.5) {
+ createPixel("plague", x, y-1);
+ }
+ else if (Math.random() > 0.25) {
+ createPixel("radiation", x, y-1);
+ }
+ else {
+ createPixel("foam", x, y-1);
+ pixelMap[x][y-1].color = "#930C00";
+ }
+ }
+ break;
+ }
+ if (isEmpty(x, y)) {
+ if (Math.random() > 0.1) { continue }
+ createPixel("flash", x, y);
+ pixelMap[x][y].color = "#C33846";
+ pixelMap[x][y].delay = (y - pixel.y) / 8;
+ }
+ else {
+ if (elements[pixelMap[x][y].element].id === elements.flash.id) { continue }
+ if (elements[pixelMap[x][y].element].id === elements.death_ray.id) { break }
+ if (!elements[pixelMap[x][y].element].isGas && isEmpty(x, y-1)) {
+ if (Math.random() > 0.95) {
+ createPixel("poison_gas", x, y-1);
+ }
+ else if (Math.random() > 0.95) {
+ createPixel("plague", x, y-1);
+ }
+ else if (Math.random() > 0.75) {
+ createPixel("radiation", x, y-1);
+ }
+ else {
+ createPixel("foam", x, y-1);
+ pixelMap[x][y-1].color = "#930C00";
+ }
+ }
+ if (Math.random() > 0.1) { continue }
+ elements.drain_health.tool(pixelMap[x][y])
+ }
+ }
+ deletePixel(pixel.x, pixel.y);
+ },
+ category: "energy",
+ state: "gas",
+ density: 1,
+ excludeRandom: true,
+ noMix: true
+},
+
elements.toilet = {
color: "#e1e4dd",
behavior: behaviors.WALL,
- category: "solids",
+ category: "machines",
state: "solid",
density: 2403,
hardness: 0.4,
@@ -6991,6 +7727,7 @@ elements.toilet = {
},
canPlace: true,
hidden: true,
+ desc: "Secret tool. Steal your enemies life!"
}
elements.shed_blood = {
@@ -7032,14 +7769,15 @@ elements.shed_blood = {
"carbon_dioxide": { elem2:null, chance:0.05 },
"alcohol": { elem1:[null,"dna"], chance:0.02 }
},
- viscosity: 10,
+ viscosity: 20,
tempHigh: 124.55,
stateHigh: ["steam","salt","oxygen"],
tempLow: 0,
+ stateLow: "blood",
category:"liquids",
state: "liquid",
- density: 1060,
- stain: 0.05
+ density: 1065,
+ stain: 0.04,
}
if (!elements.cancer.reactions) { elements.cancer.reactions = {} }
@@ -7077,7 +7815,6 @@ elements.cancer.reactions.digested_material = { elem2: "cancer", chance:0.001 };
elements.cancer.reactions.intestines = { elem2: "cancer", chance:0.005 };
elements.cancer.reactions.stomach_valve = { elem2: "cancer", chance:0.005 };
elements.cancer.reactions.stomach_lining = { elem2: "cancer", chance:0.005 };
-elements.cancer.reactions.decomposer_stomach = { elem2: "cancer", chance:0.004 };
elements.cancer.reactions.herbi_stomach = { elem2: "cancer", chance:0.004 };
elements.cancer.reactions.carni_stomach = { elem2: "cancer", chance:0.004 };
elements.cancer.reactions.explosive_stomach = { elem2: ["pop","cancer","cancer","cancer"], chance:0.003 };
@@ -7122,7 +7859,6 @@ elements.uranium.reactions.sphincter = { elem2: ["ash","steam","excrement","meat
elements.uranium.reactions.intestines = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh","ash","steam","meat","rotten_meat","cooked_meat","flesh","excrement"], chance:0.5 };
elements.uranium.reactions.stomach_valve = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 };
elements.uranium.reactions.stomach_lining = { elem2: ["ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 };
-elements.uranium.reactions.decomposer_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 };
elements.uranium.reactions.herbi_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 };
elements.uranium.reactions.carni_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.5 };
elements.uranium.reactions.explosive_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","pop"], chance:0.4 };
@@ -7167,7 +7903,6 @@ elements.radiation.reactions.sphincter = { elem2: ["cancer","ash","steam","excre
elements.radiation.reactions.intestines = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","ash","steam","meat","rotten_meat","cooked_meat","flesh","excrement"], chance:0.4 };
elements.radiation.reactions.stomach_valve = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 };
elements.radiation.reactions.stomach_lining = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 };
-elements.radiation.reactions.decomposer_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 };
elements.radiation.reactions.herbi_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 };
elements.radiation.reactions.carni_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh"], chance:0.4 };
elements.radiation.reactions.explosive_stomach = { elem2: ["cancer","ash","steam","meat","rotten_meat","cooked_meat","flesh","pop"], chance:0.3 };
@@ -7210,7 +7945,6 @@ elements.plague.reactions.sphincter = { elem2: ["infection","rotten_meat","steam
elements.plague.reactions.intestines = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh","rotten_meat","steam","meat","rotten_meat","plague","flesh","excrement"], chance:0.04 };
elements.plague.reactions.stomach_valve = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 };
elements.plague.reactions.stomach_lining = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 };
-elements.plague.reactions.decomposer_stomach = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 };
elements.plague.reactions.herbi_stomach = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 };
elements.plague.reactions.carni_stomach = { elem2: ["infection","rotten_meat","steam","meat","rotten_meat","plague","flesh"], chance:0.04 };
elements.plague.reactions.explosive_stomach = { elem2: ["infection","plague","steam","meat","rotten_meat","plague","flesh","pop"], chance:0.03 };
@@ -7289,9 +8023,7 @@ elements.bless.tool = function(pixel) {
}
}
-elements.dna.reactions.juice = { elem1: null, elem2: "elixir", chance:0.01 };
-
-elements.acid.ignore = ["herbi_stomach","carni_stomach","decomposer_stomach","amphib_skin","amphib_dermis","acidic_flesh","acid_vessel","explosive_stomach","stomach_valve","stomach_lining","throat_lining","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","earthquake","tornado","tsunami","liquid_light","sensor"]
+elements.dna.reactions.juice = { elem1: null, elem2: "elixir", chance:0.01 }
elements.dirty_water.isWaste = true;
elements.salt_water.isWaste = true;
@@ -7299,37 +8031,42 @@ elements.dirty_water.isWaste = true;
elements.acid.isAcid = true;
-elements.glass_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.001 };
+
+if (!elements.glass_shard.reactions) { elements.glass_shard.reactions = {} }
+elements.glass_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.001 }
elements.glass_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.001 };
-elements.glass_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.001 };
-elements.glass_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0005 };
-elements.glass_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.001 };
-elements.glass_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 };
-elements.glass_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 };
+elements.glass_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.001 }
+elements.glass_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0005 }
+elements.glass_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.001 }
+elements.glass_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }
+elements.glass_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }
-elements.rad_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.001 };
-elements.rad_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.001 };
-elements.rad_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.001 };
-elements.rad_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0005 };
-elements.rad_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.001 };
-elements.rad_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 };
-elements.rad_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 };
+if (!elements.rad_shard.reactions) { elements.rad_shard.reactions = {} }
+elements.rad_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.001 }
+elements.rad_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.001 }
+elements.rad_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.001 }
+elements.rad_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0005 }
+elements.rad_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.001 }
+elements.rad_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }
+elements.rad_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.0001 }
-elements.porcelain_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.0005 };
-elements.porcelain_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.0005 };
-elements.porcelain_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.0005 };
-elements.porcelain_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0001 };
-elements.porcelain_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.0005 };
-elements.porcelain_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.00005 };
-elements.porcelain_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.00005 };
+if (!elements.porcelain_shard.reactions) { elements.porcelain_shard.reactions = {} }
+elements.porcelain_shard.reactions.intestines = { elem2: ["blood","blood","meat"], chance:0.0005 }
+elements.porcelain_shard.reactions.lungs = { elem2: ["blood","blood","meat"], chance:0.0005 }
+elements.porcelain_shard.reactions.simple_lung = { elem2:["blood","blood","meat"], chance:0.0005 }
+elements.porcelain_shard.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0001 }
+elements.porcelain_shard.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood","blood"], chance:0.0005 }
+elements.porcelain_shard.reactions.epidermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.00005 }
+elements.porcelain_shard.reactions.dermis = { elem2: ["dust","blood","blood","blood","blood","blood"], chance:0.00005 }
-elements.metal_scrap.reactions.intestines = { elem2: ["blood","meat"], chance:0.0005 };
-elements.metal_scrap.reactions.lungs = { elem2: ["blood","meat"], chance:0.0005 };
-elements.metal_scrap.reactions.simple_lung = { elem2:["blood","meat"], chance:0.0005 };
-elements.metal_scrap.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0001 };
-elements.metal_scrap.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood"], chance:0.0005 };
+if (!elements.metal_scrap.reactions) { elements.metal_scrap.reactions = {} }
+elements.metal_scrap.reactions.intestines = { elem2: ["blood","meat"], chance:0.0005 }
+elements.metal_scrap.reactions.lungs = { elem2: ["blood","meat"], chance:0.0005 }
+elements.metal_scrap.reactions.simple_lung = { elem2:["blood","meat"], chance:0.0005 }
+elements.metal_scrap.reactions.flesh = { elem2: ["blood","meat","meat"], chance:0.0001 }
+elements.metal_scrap.reactions.blood_vessel = { elem2: ["meat","infected_vessel","blood","blood","blood","blood"], chance:0.0005 }
-elements.vaccine.reactions.infected_vessel = { elem1: null, elem2: "blood_vessel", attr2:{"immune": true}, chance:0.02 };
-elements.antidote.reactions.infected_vessel = { elem1: null, elem2: "blood_vessel", attr2:{"immune": true}, chance:0.02 };
+elements.vaccine.reactions.infected_vessel = { elem1: null, elem2: "blood_vessel", attr2:{"immune": true}, chance:0.02 }
+elements.antidote.reactions.infected_vessel = { elem1: null, elem2: "blood_vessel", attr2:{"immune": true}, chance:0.02 }
elements.salt_water.stateHigh = ["steam","steam","salt"]
diff --git a/mods/charsonsmoduno.js b/mods/charsonsmoduno.js
new file mode 100644
index 00000000..21ac4c46
--- /dev/null
+++ b/mods/charsonsmoduno.js
@@ -0,0 +1,2116 @@
+//thanks r74n and sandboxels mod devs for the idea for making this and adding so much value to my gaming experience
+//if one needs a desc for the mod list on the website it'd be something around "charson's mods compiled such as random foods and random elements asked for by random people, beta"
+//thanks!
+
+//needs absolute zero to be set to -99999999999999999999999999999
+
+//n2s - for food, change all instances of ', elem2:"head"' into nothing.
+
+elements.calcium_chloride = {
+ color: "#ffffff",
+ behavior: behaviors.STURDYPOWDER,
+ category: "powders",
+ hidden: true,
+ breakInto: ["calcium", "chlorine"],
+ state: "solid",
+ tempHigh: 772,
+ reactions: {
+ "sodium_carbonate": { elem1:"foam", elem2:"chalk" },
+ }
+};
+
+if (!elements.calcium.reactions) { // Include this block once
+ elements.calcium.reactions = {} // This creates the property if it doesn't exist
+}
+elements.calcium.reactions.chlorine = { elem1: "calcium_chloride" }
+
+if (!elements.sun.reactions) { // Include this block once
+ elements.sun.reactions = {} // This creates the property if it doesn't exist
+}
+elements.sun.reactions.light = { elem2: "sunlight" }
+
+if (!elements.aluminum.reactions) { // Include this block once
+ elements.aluminum.reactions = {} // This creates the property if it doesn't exist
+}
+elements.aluminum.reactions.oxygen = { elem1: "alumina" }
+
+if (!elements.nitrogen.reactions) { // Include this block once
+ elements.nitrogen.reactions = {} // This creates the property if it doesn't exist
+}
+elements.nitrogen.reactions.fire = { elem1: "pyrane" }
+
+if (!elements.radiation.reactions) { // Include this block once
+ elements.radiation.reactions = {} // This creates the property if it doesn't exist
+}
+elements.radiation.reactions.dead_plant = { elem2: "radioactive_maple_seed" }
+elements.radiation.reactions.ant = { elem2: "rad_ant" }
+elements.radiation.reactions.sugar = { elem2: "powdered_lime" }
+elements.radiation.reactions.soap = { elem2: "purificanol" }
+elements.radiation.reactions.diamond = { elem2: "emerald" }
+elements.radiation.reactions.bird = { elem2: "pyrus_minimus" }
+
+if (!elements.melted_cheese.reactions) { // Include this block once
+ elements.melted_cheese.reactions = {} // This creates the property if it doesn't exist
+}
+elements.melted_cheese.reactions.sauce = { elem2: "akshajium" }
+
+if (!elements.sodium.reactions) { // Include this block once
+ elements.sodium.reactions = {} // This creates the property if it doesn't exist
+}
+elements.sodium.reactions.carbon_dioxide = { elem1: "sodium_carbonate" }
+
+elements.sodium_carbonate = {
+ color: "#ffffff",
+ behavior: behaviors.POWDER,
+ category: "powders",
+ hidden: true,
+ breakInto: ["sodium", "carbon_dioxide"],
+ state: "solid",
+ tempHigh: 851,
+ reactions: {
+ "calcium_chloride": { elem1:"foam", elem2:"chalk" },
+ }
+};
+
+elements.silicon = {
+ color: ["#9EBFE2", "#686F89", "#9BA4AB", "#373D4D"],
+ behavior: behaviors.STURDYPOWDER,
+ desc: "Silicon is a chemical element. It has symbol Si and atomic number 14. It is a hard, brittle crystalline solid with a blue-grey metallic lustre, and is a tetravalent metalloid and semiconductor.",
+ category: "solids",
+ state: "solid",
+ tempHigh: 1414,
+ reactions: {
+ "oxygen": { elem1:"silicate", elem2:"pop" },
+ }
+};
+
+elements.alumina = {
+ color: ["#989ECE", "#DADAFF", "#E6E1FF"],
+ behavior: behaviors.POWDER,
+ category: "powders",
+ hidden: true,
+ state: "solid",
+ tempHigh: 500,
+ stateHigh: "hyper_aluminum",
+ reactions: {
+ "silicate": { elem1:"kaolin", elem2:"kaolin" },
+ }
+};
+
+elements.hyper_aluminum = {
+ color: ["#61829e", "#61829e", "#61829e", "#61829e", "#5872a7"],
+ behavior: behaviors.WALL,
+ category: "solids",
+ hidden: true,
+ state: "solid",
+ tempHigh: 9999999,
+ conduct: 1,
+ desc: "With a sleek, metallic sheen, this material boasts enhanced durability, resistance to extreme temperatures, and a remarkable ability to withstand corrosion. Hyper Aluminium is the pinnacle of modern materials science—stronger, lighter, and more efficient than ever before, setting the stage for a new era of innovation.",
+ charge: 3,
+ stateHigh: "molten_aluminum",
+ hardness: 0.95,
+ reactions: {
+ "steel": { elem2:"galvanized_steel" },
+ "rock_wall": { elem2:"wall" },
+ }
+};
+
+elements.silicate = {
+ color: ["#A6B5B8", "#A7A8A0", "#665953", "#BDDAE8"],
+ behavior: behaviors.POWDER,
+ category: "powders",
+ hidden: true,
+ breakInto: "silica",
+ state: "solid",
+ tempHigh: 500,
+ stateHigh: "molten_silicon",
+ reactions: {
+ "alumina": { elem1:"kaolin", elem2:"kaolin" },
+ }
+};
+
+elements.silica = {
+ color: ["#ACAA9B", "#CAC7B6", "#979A93"],
+ behavior: behaviors.LIGHTWEIGHT,
+ behaviorOn: behaviors.BOUNCY,
+ category: "powders",
+ hidden: true,
+ state: "solid",
+ tempHigh: 5000,
+ stateHigh: "molten_ash",
+ reactions: {
+ "head": { elem1: null, func: behaviors.KILLPIXEL2 }, //silicosis reference.
+ }
+};
+
+
+elements.kaolin = {
+ color: ["#d3e2e6", "#e1e9eb", "#ede7e4", "#fcfcfc"],
+ behavior: behaviors.POWDER,
+ category: "land",
+ hidden: true,
+ state: "solid",
+ tempHigh: 500,
+ stateHigh: "porcelain",
+ reactions: {
+ "fired_clay": { elem1:"porcelain", elem2:"porcelain" },
+ "blood": { elem2: null },
+ "dirt": { elem1: "clay", elem2:"clay_soil" },
+ }
+};
+
+elements.kaolinite = {
+ color: ["#3b3b3b", "#575757", "#fcfcfc"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "solids",
+ hidden: true,
+ state: "solid",
+ tempHigh: 500,
+ stateHigh: "molten_slag",
+ breakInto: ["rock", "kaolin"],
+ reactions: {
+ "water": { elem1: "silicate", elem2:"dirty_water" },
+ }
+};
+
+elements.chalk = {
+ color: ["#D8275D", "#E0527D", "#AF508C", "#BF73A3"],
+ stain: 0.5,
+ stainSelf: true,
+ canContain: true,
+ related: ["art", "calcium"],
+ customColor: true,
+ hidden: true,
+ category: "solids",
+ breakInto: "chalk_powder",
+ state: "solid",
+ tempHigh: 5900,
+ stateHigh: "ash",
+};
+
+elements.chalk_powder = {
+ color: ["#D8275D", "#E0527D", "#AF508C", "#BF73A3"],
+ stain: 0.3,
+ behavior: behaviors.POWDER,
+ stainSelf: true,
+ hidden: true,
+ customColor: true,
+ category: "powders",
+ state: "solid",
+ tempHigh: 5900,
+ stateHigh: "ash",
+};
+
+elements.powdered_lime = {
+ color: ["#96F10E", "#BEF00F"],
+ stain: 0.2,
+ hidden: true,
+ behavior: behaviors.POWDER,
+ category: "food",
+ state: "solid",
+ reactions: {
+ "water": { elem1:"foam", elem2:"limeade" },
+ "head": { elem1: null, chance: 0.9, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.limeade = {
+ color: ["#96F10E", "#BEF00F", "#96F10E"],
+ alpha: 0.9,
+ stain: 0.1,
+ behavior: behaviors.LIQUID,
+ category: "food",
+ state: "solid",
+ tempHigh: 105,
+ stateHigh: "foam",
+ tempLow: 0,
+ reactions: {
+ "head": { elem1: null, chance: 0.7, func: behaviors.FEEDPIXEL },
+ }
+};
+
+//stupidity mod begins here
+
+elements.stupid = {
+ color: ["#eb3486", "#0affda", "#c7fa89"],
+ behavior: behaviors.POWDER,
+ category: "weapons",
+ viscosity: 10000,
+ state: "solid",
+ related: ["di_stupid", "tri_stupid"],
+ density: 100,
+ desc: "stupid",
+ temp: 20,
+ tempLow: 19,
+ tempHigh: 21,
+ reactions: {
+ "water": { elem1:"blaster", elem2:"nuke", chance: 0.001 },
+ "stupid": { elem1:"cloner", elem2:"nuke", chance: 0.5 },
+ "electric": { elem1:"di_stupid", elem2:"tri_stupid" },
+ "dirt": { elem1:"tornado", elem2:"stupid", chance: 0.5 },
+ }
+};
+
+elements.di_stupid = {
+ color: ["#0b3486", "#faffda", "#07fa89"],
+ behavior: behaviors.POWDER,
+ category: "weapons",
+ viscosity: 10000,
+ state: "solid",
+ density: 100,
+ hidden: true,
+ desc: "stupid",
+ temp: 20,
+ tempLow: 19,
+ tempHigh: 21,
+ reactions: {
+ "di_stupid": { elem1:"di_stupid", elem2:"tsunami", chance: 0.001 },
+ "stupid": { elem1:"party_popper", elem2:"cloner" },
+ "water": { elem1:"earthquake", elem2:"acid" },
+ }
+};
+
+elements.almond = {
+ color: ["#855b34", "#9c836b", "#f5e7da"],
+ behavior: behaviors.POWDER,
+ category: "food",
+ state: "solid",
+ density: 100,
+ desc: "stupid",
+ temp: 20,
+ tempLow: 10,
+ tempHigh: 40,
+ stateHigh: "nut_sauce",
+ breakInto: "nut_sauce",
+ stateLow: "cloner",
+ conduct: 1,
+ reactions: {
+ "head": { elem1: null, chance: 0.55, func: behaviors.FEEDPIXEL },
+ "juice": { elem1:"party_popper", elem2:"party_popper" },
+ "water": { elem1:"nut_sauce", elem2:"almond_water" },
+ }
+};
+
+elements.nut_sauce = {
+ color: ["#f2cba7", "#f5e7da"],
+ behavior: behaviors.LIQUID,
+ category: "food",
+ viscosity: 10000,
+ state: "liquid",
+ density: 100,
+ desc: "Highly flammable.",
+ temp: 20,
+ tempLow: 0,
+ tempHigh: 50,
+ hidden: true,
+ stateHigh: ["blaster", "floating_cloner"],
+ stateHighColor: "#EF5810",
+ stateLow: "glue",
+ conduct: 1,
+ reactions: {
+ "head": { elem1: null, chance: 0.9, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.tri_stupid = {
+ color: ["#ffffff", "#7a1d1d", "#000000"],
+ behavior: behaviors.POWDER,
+ category: "weapons",
+ viscosity: 10000,
+ state: "solid",
+ density: 100,
+ desc: "stupid",
+ temp: 20,
+ tempLow: 0,
+ hidden: true,
+ tempHigh: 40,
+ stateLow: "ice",
+ stateHigh: "magma",
+ conduct: 1,
+ reactions: {
+ "almond": { elem1:"hot_bomb", elem2:"cold_bomb" },
+ "nut_sauce": { elem1:"heat_ray", elem2:"freeze_ray" },
+ }
+};
+
+//milkandsoap aka milkandstupidity mod begins here
+
+elements.maple_syrup = {
+ color: "#a13d08",
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ viscosity: 100000,
+ state: "liquid",
+ density: 720,
+ isFood: true,
+ stain: 0.01,
+ desc: "english for sirop derable",
+ reactions: {
+ "head": { elem1: null, chance: 0.4, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.radioactive_maple_seed = {
+ color: ["#52d156", "#5d875f"],
+ behavior: behaviors.RADPOWDER,
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|EX:2>popcorn|XX",
+ "XX|XX|XX",
+],
+ category: "life",
+ viscosity: 100000,
+ hidden: true,
+ state: "solid",
+ isFood: true,
+ desc: "how does this work",
+ reactions: {
+ "dirt": { elem1:"maple_nut", elem2:"dirt" },
+ "grass": { elem1:"maple_nut", elem2:"dirt" },
+ "ant": { elem1: null, elem2:"rad_ant" }
+ }
+};
+
+elements.maple_nut = {
+ color: "#735e3b",
+ behavior: behaviors.POWDER,
+ category: "life",
+ viscosity: 100000,
+ state: "solid",
+ isFood: true,
+ hidden: true,
+ desc: "I dont think this is biologically accurate",
+ breakInto: ["maple_syrup", "maple_powder"],
+ reactions: {
+ "dirt": { elem1:"maple_plant", elem2:"maple_nut", chance: 0.001 },
+ }
+};
+
+elements.maple_plant = {
+ color: "#735e3b",
+ behavior: behaviors.STURDYPOWDER,
+ category: "life",
+ viscosity: 100000,
+ state: "solid",
+ isFood: true,
+ hidden: true,
+ desc: "I dont think this is biologically accurate",
+ breakInto: "dead_plant",
+ burn: 90,
+ reactions: {
+ "dirt": { elem1:"maple_plant", elem2:"maple_nut", chance: 0.001 },
+ "plant": { elem1:"maple_plant", elem2:"maple_plant", chance: 0.1 },
+ "dead_plant": { elem1:"maple_plant", elem2:"maple_plant", chance: 0.3 },
+ "water": { elem1:"maple_plant", elem2:"maple_plant", chance: 0.0001 },
+ }
+};
+
+elements.maple_powder = {
+ color: "#9e6213",
+ behavior: behaviors.POWDER,
+ category: "food",
+ viscosity: 100000,
+ state: "solid",
+ hidden: true,
+ isFood: true,
+ reactions: {
+ "milk": { elem1:"foam", elem2:"maple_milk" },
+ "clay": { elem1: null, elem2:"terracotta" },
+ }
+};
+
+elements.red_terracotta = {
+ color: "#c96363",
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ tempHigh: 500,
+ hidden: true,
+ stateHigh: "heated_terracotta",
+};
+
+elements.terracotta = {
+ color: ["#c98c63", "#B97140"],
+ hardness: 0.4,
+ singleColor: true,
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ tempHigh: 500,
+ stateHigh: "heated_terracotta",
+ breakInto: "brick_rubble",
+ breakIntoColor: "#A5775A",
+ reactions: {
+ "pyric_nitrite": { elem1:"red_terracotta", elem2: null },
+ "sulfur": { elem1:"yellow_terracotta", elem2: null },
+ "gold_coin": { elem1:"golden_terracotta", elem2: null },
+ "scheele_green": { elem1:"green_terracotta", elem2: null },
+ "rad_shard": { elem1:"teal_terracotta", elem2: null },
+ "skibidi_soda": { elem1:"blue_terracotta", elem2: null },
+ "violetium": { elem1:"purple_terracotta", elem2: null },
+ }
+};
+
+elements.yellow_terracotta = {
+ color: "#c9ae63",
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ hidden: true,
+ tempHigh: 500,
+ stateHigh: "heated_terracotta",
+};
+
+elements.golden_terracotta = {
+ color: ["#EEC211", "#DBC624", "#E8D417", "#E7DD66"],
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ hidden: true,
+ tempHigh: 500,
+ breakInto: ["gold", "terracotta"],
+ stateHigh: ["heated_terracotta", "molten_gold", "slag"],
+};
+
+elements.green_terracotta = {
+ color: "#63c96d",
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ hidden: true,
+ tempHigh: 500,
+ stateHigh: "heated_terracotta",
+};
+
+elements.teal_terracotta = {
+ color: "#63c994",
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ tempHigh: 500,
+ hidden: true,
+ stateHigh: "heated_terracotta",
+};
+
+elements.blue_terracotta = {
+ color: "#63b6c9",
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ hidden: true,
+ tempHigh: 500,
+ stateHigh: "heated_terracotta",
+};
+
+elements.purple_terracotta = {
+ color: "#6f63c9",
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ tempHigh: 500,
+ hidden: true,
+ stateHigh: "heated_terracotta",
+};
+
+elements.heated_terracotta = {
+ color: "#db773d",
+ behavior: behaviors.STURDYPOWDER,
+ category: "states",
+ state: "solid",
+ temp: 500,
+ tempHigh: 1000,
+ hidden: true,
+ tempLow: 20,
+ stateLow: ["teracotta", "purity"],
+};
+
+elements.maple_milk = {
+ color: "#f5e3cb",
+ behavior: behaviors.LIQUID,
+ category: "food",
+ viscosity: 100000,
+ state: "liquid",
+ desc: "a great drink",
+ hidden: true,
+ isFood: true,
+ reactions: {
+ "head": { elem1: null, chance: 0.9, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.purity = {
+ color: "#f0f7fc",
+ behavior: behaviors.WALL,
+ category: "soaps",
+ state: "solid",
+ tempHigh: 70,
+ hidden: true,
+ stateHigh: "soap",
+ stain: 1,
+};
+
+elements.purium = {
+ color: "#cededd",
+ behavior: behaviors.WALL,
+ category: "soaps",
+ state: "solid",
+ hidden: true,
+ tempHigh: 125,
+ stateHigh: "purificanol",
+ stain: 1,
+ conduct: 1,
+ breakInto: "purium_dust",
+};
+
+elements.purium_dust = {
+ color: ["#cededd", "#95c7c4", "#ffffff"],
+ behavior: behaviors.POWDER,
+ category: "soaps",
+ hidden: true,
+ state: "solid",
+ tempHigh: 125,
+ stateHigh: ["purity", "soap"],
+ stain: 1,
+ conduct: 1,
+};
+
+elements.invalid = {
+ color: ["#ff00dc", "#010001"],
+ behavior: [
+ ["XX","CR:malware","XX"],
+ ["XX","XX","XX"],
+ ["M2","M1","M2"]
+ ],
+ category: "machines",
+ state: "solid",
+ tempHigh: 9999,
+ desc: "INVALID DESCRIPTION",
+ stateHigh: "fallout",
+ tempLow: -40,
+ stateLow: "random",
+ conduct: 1,
+ breakInto: "electric",
+ reactions: {
+ "electric": { elem1: "null", elem2:"null" },
+ }
+};
+
+elements.null = {
+ color: ["#514a57", "#2c1040"],
+ behavior: behaviors.WALL,
+ category: "machines",
+ state: "solid",
+ desc: "null",
+ tempLow: -40,
+ breakInto: "random",
+ stateLow: "unknown",
+ conduct: 1,
+ hidden: true,
+ reactions: {
+ "electric": { elem1: "null", elem2:"null" },
+ }
+};
+
+elements.purificanol = {
+ color: "#ffffff",
+ behavior: behaviors.LIQUID,
+ category: "soaps",
+ viscosity: 100,
+ state: "liquid",
+ desc: "soap 3.0",
+ extinguish: true,
+ stain: -0.5,
+ behaviorOn: [
+ ["XX","CO:5","XX"],
+ ["CO:5","XX","CO:5"],
+ ["CO:5 AND M1","CO:5 AND M1","CO:5 AND M1"]
+],
+ density: 999999999,
+ temp: 1,
+ tempLow: -273,
+ stateLow: "foam",
+ reactions: {
+ "dirt": { elem1: "foam", elem2: "purity" },
+ "dead_bug": { elem1: "foam", elem2: "ant" },
+ "uranium": { elem1: "foam", elem2: "lead" },
+ "chalk_powder": { elem1: "foam", elem2: "foam" },
+ "poison": { elem1: "foam", elem2: "antidote" },
+ "infection": { elem1: "bless", elem2: ["vaccine", "antibody"] },
+ "fallout": { elem1: "anti_soap", elem2: "contaminol" },
+ "sand": { elem1: "foam", elem2: "purity" },
+ "dust": { elem1: "foam", elem2: "purity" },
+ "ash": { elem1: "foam", elem2: "purity" },
+ "rock": { elem1: "foam", elem2: "porcelain" },
+ "clay": { elem1: "foam", elem2: "porcelain" },
+ "magma": { elem1: "foam", elem2: "purium" },
+ "slag": { elem1: "foam", elem2: "purity" },
+ "molten_slag": { elem1: "foam", elem2: "purium_dust" },
+ "basalt": { elem1: "foam", elem2: "purity" },
+ "slime": { elem1: "foam", elem2: "purity" },
+ "dirty_water": { elem1: "foam", elem2: "water" },
+ "blood": { elem1: "foam", elem2: "water" },
+ "molten_iron": { elem1: "foam", elem2: "purium" },
+ "molten_dirt": { elem1: "foam", elem2: "purium" },
+ "molten_copper": { elem1: "foam", elem2: "purium" },
+ "rust": { elem1: "foam", elem2: "purium_dust" },
+ "water": { elem1: "foam", elem2: "bubble" },
+ "ice": { elem1: "foam", elem2: "bubble" },
+ "steam": { elem1: "foam", elem2: "bubble" },
+ "mudstone": { elem1: "foam", elem2: "porcelain" },
+ "rad_ant": { elem1: "foam", elem2: "ant" },
+ "dead_plant": { elem1: "foam", elem2: "plant" },
+ "frozen_plant": { elem1: "foam", elem2: "plant" },
+ "smoke": { elem1: "foam", elem2: "bless" },
+ "fire": { elem1: "foam", elem2: "bless" },
+ "meat": { elem1: "foam", elem2: "cooked_meat" },
+ "rotten_meat": { elem1: "foam", elem2: "cured_meat" },
+ "cancer": { elem1: "foam", elem2: "dna" },
+ "thermite": { elem1: "foam", elem2: "null" },
+ },
+};
+
+elements.rad_ant = {
+ color: ["#6ceb36", "#50e012"],
+ behavior: behaviors.LIQUID,
+ category: "life",
+ state: "solid",
+ hidden: true,
+ desc: "uh oh",
+ tempHigh: 100,
+ stateHigh: ["dead_bug", "radiation"],
+ reactions: {
+ "dirt": { elem1:"rad_ant", elem2:"radiation" },
+ "grass": { elem1:"rad_ant", elem2:"radioactive_maple_seed" },
+ "ant": { elem1:"rad_ant", elem2:"rad_ant" },
+ "rock": { elem1:"rad_ant", elem2:"uranium" },
+ }
+};
+
+elements.buttermilk = {
+ color: "#f4f5c1",
+ behavior: behaviors.LIQUID,
+ category: "food",
+ state: "liquid",
+ desc: "Yum!",
+ hidden: true,
+ tempHigh: 100,
+ stateHigh: "steam",
+ reactions: {
+ "head": { elem1: null, chance: 0.9, func: behaviors.FEEDPIXEL },
+ "water": { elem1: null, elem2:"milk" },
+ "rock": { elem1: null, elem2:"butter" },
+ "magma": { elem1: null, elem2:"melted_butter" },
+ }
+};
+
+if (!elements.butter.reactions) { // Include this block once
+ elements.butter.reactions = {} // This creates the property if it doesn't exist
+}
+elements.butter.reactions.milk = { "elem1":null, "elem2":"buttermilk" }
+
+elements.stupid_particle = {
+ color: ["#eb3486", "#0affda", "#c7fa89"],
+ behavior: behaviors.BOUNCY,
+ category: "weapons",
+ state: "solid",
+ density: 0,
+ desc: "stupid",
+ temp: 20,
+ tempLow: 19,
+ tempHigh: 21,
+ reactions: {
+ "stupid_particle": { elem1:"neutron", elem2:"nuke", chance: 0.5},
+ }
+};
+
+elements.boom_boom_particle = {
+ color: ["#00ff00", "#ff00dc", "#0000ff"],
+ behavior: behaviors.BOUNCY,
+ category: "weapons",
+ state: "gas",
+ density: 0,
+ desc: "andrew zhao",
+ temp: 20,
+ tempLow: 19,
+ tempHigh: 21,
+ reactions: {
+ "boom_boom_particle": { elem1:"explosion", elem2:"pop", chance: 0.7 },
+ }
+};
+
+elements.julianite = {
+ color: ["#505050", "#265227"],
+ behavior: behaviors.RADPOWDER,
+ category: "special",
+ state: "liquid",
+ tempHigh: 999999,
+ stateHigh: "plasma",
+ tempLow: -25,
+ reactions: {
+ "electric": { elem1:"hyperjulianite" },
+ "plasma": { elem1:"hyperjulianite" },
+ "smoke": { elem1:"hyperjulianite" },
+ "lightning": { elem1:"hyperjulianite" },
+ "rock": { elem2:"julianite" },
+ }
+};
+
+elements.hyperjulianite = {
+ color: ["#6A6A6A", "#522651"],
+ behavior: behaviors.SLIDE,
+ category: "states",
+ state: "solid",
+ hidden: true,
+ tempHigh: 1000,
+ tempLow: -40,
+ stateLow: "snake",
+ reactions: {
+ "static": { elem2:"julianite" },
+ "rock": { elem2:"plasma" },
+ "water": { elem2:"electric" },
+ "dirt": { elem2:"battery" },
+ "plant": { elem2:"snake" },
+ }
+};
+
+elements.sankarium = {
+ color: ["#b5140e", "#494b52", "#d2d9d2"],
+ behavior: behaviors.BUBBLE,
+ category: "special",
+ state: "solid",
+ tempHigh: 100,
+ burn: 90,
+ fireColor: "#0c92f7",
+ burnInto: "c-4",
+ stateHigh: "narayananium",
+ reactions: {
+ "dirt": { elem1:"stupid" },
+ }
+};
+
+elements.narayananium = {
+ color: ["#0EAFB5", "#525049", "#D9D2D9"],
+ behavior: behaviors.POWDER,
+ category: "special",
+ state: "solid",
+ hidden: true,
+ burn: 90,
+ fireColor: "#22DDA2",
+};
+
+elements.narayananium.behavior = [
+ ["XX","XX","XX"],
+ ["XX","XX","XX"],
+ ["XX","M1 AND EX:10>party_popper","XX"],
+];
+
+elements.tetra_stupid = {
+ color: ["#4AB58A", "#B54A75"],
+ behavior: behaviors.SLIDE,
+ category: "weapons",
+ state: "solid",
+ hidden: true,
+ conduct: 1,
+};
+
+elements.banana = {
+ color: ["#F4FD3F", "#C3F30C", "#FBE904"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "food",
+ state: "solid",
+ desc: "minion reference",
+ burn: 90,
+ fireColor: "#ED126A",
+ burnInto: "fragrance",
+ conduct: 1,
+ breakInto: "banana_milk",
+ breakIntoColor: "#d8b284",
+ reactions: {
+ "head": { elem1: null, chance: 0.35, func: behaviors.FEEDPIXEL },
+ "milk": { elem1: null, elem2: "banana_milk" },
+ }
+};
+
+elements.banana_milk = {
+ color: "#fdfdce",
+ behavior: behaviors.LIQUID,
+ category: "food",
+ state: "liquid",
+ density: 10000,
+ charge: 1,
+ superconductAt: 100,
+ burn: 100,
+ viscosity: 29,
+ tempLow: -7,
+ hidden: true,
+ stateLowName: "frozen_banana_milkshake",
+ tempHigh: 239,
+ stateHigh: "steam",
+ fireColor: "#DD00FF",
+ burnInto: "dioxin",
+ conduct: 1,
+ reactions: {
+ "head": { elem1: null, chance: 0.9, func: behaviors.FEEDPIXEL },
+ }
+};
+
+//particlesplus begins here
+
+elements.thermon = {
+ color: "#EB14AC",
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ desc: "The thermon is a subatomic particle with a negative one elementary electric charge as well as heat.",
+ state: "gas",
+ charge: 1,
+ maxSize: 1,
+ superconductAt: 1,
+ burning: true,
+ temp: 999,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "thermon": { elem1: "superthermon", elem2: "neutron" },
+ }
+};
+
+elements.superthermon = {
+ color: "#B010EF",
+ behavior: behaviors.BOUNCY,
+ hidden: true,
+ category: "energy",
+ desc: "The superthermon is a subatomic particle with a negative one elementary electric charge as well as high heat.",
+ state: "gas",
+ charge: 1,
+ maxSize: 1,
+ superconductAt: 1,
+ burning: true,
+ temp: 99999,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "neutron": { elem1: "explosion" },
+ "thermon": { elem1: "hyperthermon", elem2: "neutron" },
+ }
+};
+
+elements.hyperthermon = {
+ color: ["#5554AB", "#FF9D00"],
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ hidden: true,
+ desc: "The hyperthermon is a subatomic particle with a negative one elementary electric charge as well as immense heat.",
+ state: "gas",
+ charge: 1,
+ maxSize: 1,
+ superconductAt: 1,
+ burning: true,
+ temp: 9999999,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "neutron": { elem1: "explosion" },
+ "electric": { elem1: "h_bomb" },
+ "thermon": { elem1: "unstable_thermon", elem2: "neutron" },
+ }
+};
+
+elements.unstable_thermon = {
+ color: ["#FFFFFF"],
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ desc: "ERROR",
+ hidden: true,
+ maxSize: 1,
+ state: "gas",
+ charge: 1,
+ superconductAt: 1,
+ burning: true,
+ temp: 9999999999999999999999999999999999999,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "neutron": { elem1: "explosion" },
+ "proton": { elem1: "dirty_bomb" },
+ "electric": { elem1: "h_bomb" },
+ "thermon": { elem1: "supernova", elem2: "neutron" },
+ }
+};
+
+
+elements.tetra_stupid.behavior = [
+ ["CH:tetra_stupid","CH:banana","CH:tetra_stupid"],
+ ["CH:banana","XX","CH:banana"],
+ ["M2","M1 AND CH:banana","M2"]
+];
+
+elements.cryon = {
+ color: "#1FD1E0",
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ desc: "The cryon is a subatomic particle with a negative one elementary electric charge as well as negative heat.",
+ state: "gas",
+ charge: 1,
+ superconductAt: -273.5,
+ maxSize: 1,
+ temp: -99,
+ burn: 100,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "cryon": { elem1: "supercryon", elem2: "neutron" },
+ }
+};
+
+elements.supercryon = {
+ color: "#99B1C0",
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ desc: "The supercryon is a subatomic particle with a negative one elementary electric charge as well as extremely low heat.",
+ state: "gas",
+ hidden: true,
+ charge: 1,
+ maxSize: 1,
+ superconductAt: -273.5,
+ temp: -273.5,
+ hidden: true,
+ burn: 100,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "neutron": { elem1: "explosion" },
+ "cryon": { elem1: "hypercryon", elem2: "neutron" },
+ }
+};
+
+elements.hypercryon = {
+ color: ["#0062FF", "#6424DB"],
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ desc: "The hypercryon is a subatomic particle with a negative one elementary electric charge as well as immense lack of heat.",
+ state: "gas",
+ charge: 1,
+ superconductAt: -273.5,
+ hidden: true,
+ temp: -999999,
+ burn: 100,
+ maxSize: 1,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "neutron": { elem1: "explosion" },
+ "electric": { elem1: "h_bomb" },
+ "cryon": { elem1: "unstable_cryon", elem2: "neutron" },
+ }
+};
+
+elements.unstable_cryon = {
+ color: ["#FFFFFF"],
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ maxSize: 1,
+ desc: "ERROR",
+ state: "gas",
+ charge: 1,
+ superconductAt: -273.5,
+ hidden: true,
+ temp: -999999999999999999999999999,
+ burn: 100,
+ fireColor: "#1CD8E3",
+ conduct: 1,
+ reactions: {
+ "neutron": { elem1: "explosion" },
+ "proton": { elem1: "dirty_bomb" },
+ "electric": { elem1: "h_bomb" },
+ "cryon": { elem1: "supernova", elem2: "neutron" },
+ }
+};
+
+elements.anti_soap = {
+ color: ["#0000FF"],
+ behavior: behaviors.FOAM,
+ category: "soaps",
+ state: "solid",
+ hidden: true,
+ burn: 100,
+ reactions: {
+ "soap": { elem2: null },
+ "purificanol": { elem2: null },
+ }
+};
+
+elements.violetium = {
+ color: ["#494bb3", "#7049b3", "#7049b3"],
+ category: "powders",
+ state: "solid",
+ temp: 40,
+ burn: 100,
+ fireColor: "#6e34eb",
+ conduct: 1,
+};
+
+elements.violetium.behavior = [
+ ["XX","XX","XX"],
+ ["XX","XX","XX"],
+ ["XX","M1 AND EX:10>purple_gold","XX"],
+];
+
+elements.pyrus_minimus = {
+ color: ["#eb6e34", "#ffd014", "#ff143c"],
+ desc: "The rare Pyrus Minimus is a flying...animal? It preys on birds and worms.",
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|EX:5>firework|XX",
+ "XX|XX|XX",
+],
+ behavior: behaviors.FLY,
+ category: "life",
+ state: "solid",
+ foodNeed: 7,
+ breakInto: ["fire", "cooked_meat", "slime"],
+ glow: true,
+ temp: 300,
+ baby: "pyrus_minimus",
+ singleColor: true,
+ fireColor: "#ff5b14",
+ conduct: 1,
+ reactions: {
+ "cooked_meat": { elem2: null, func: behaviors.FEEDPIXEL },
+ "dead_plant": { elem2: null, func: behaviors.FEEDPIXEL },
+ "juice": { elem2: null, func: behaviors.FEEDPIXEL },
+ "chocolate": { elem2: null, func: behaviors.FEEDPIXEL },
+ "basalt": { elem2: null, func: behaviors.FEEDPIXEL },
+ "bird": { elem2: ["feather", "blood"], func: behaviors.FEEDPIXEL },
+ "worm": { elem2: null, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.stablium = {
+ color: ["#516c87", "#de1998", "#c4e043"],
+ behavior: behaviors.POWDER,
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|EX:25>fw_ember,electric,flash,pop,proton|XX",
+ "XX|XX|XX",
+],
+ category: "special",
+ state: "solid",
+ alpha: 0.73,
+ breakInto: ["positron", "electrum"],
+ glow: true,
+ temp: 20,
+ burn: 55,
+ singleColor: true,
+ fireColor: ["#f71e0a", "#f7940a", "#eff70a", "#0af722", "#0a69f7"],
+ conduct: 1,
+ tempHigh: 275,
+ reactions: {
+ "proton": { elem1: "ash", elem2: ["thermon", "cryon"] },
+ }
+};
+
+elements.arsenic = {
+ color: ["#874809", "#97ad05"],
+ behavior: behaviors.POWDER,
+ category: "powders",
+ state: "solid",
+ temp: 20,
+ burn: 55,
+ burnInto: "poison",
+ fireColor: "#a1ccc7",
+ tempHigh: 275,
+ reactions: {
+ "copper": { elem1: "scheele_green", elem2: "scheele_green" },
+ }
+};
+
+elements.scheele_green = {
+ color: ["#2B7D45", "#87CA7C"],
+ behavior: behaviors.RADPOWDER,
+ category: "powders",
+ state: "solid",
+ alpha: 0.99,
+ temp: 20,
+ breakInto: "poison",
+ burn: 55,
+ burnInto: "poison",
+ fireColor: "#2cff29",
+ tempHigh: 275,
+ hidden: true,
+ stateHigh: "molten_copper",
+ reactions: {
+ "terracotta": { elem1: null, elem2: "green_terracotta" },
+ "head": { elem1: "poison", elem2: "green_skull", chance: 0.3, func: behaviors.KILLPIXEL2 },
+ }
+};
+
+elements.green_skull = {
+ color: ["#67bf65", "#527d51"],
+ behavior: behaviors.RADPOWDER,
+ category: "powders",
+ state: "solid",
+ temp: 20,
+ breakInto: ["bone_meal", "fallout"],
+ burn: 55,
+ burnInto: "rad_shard",
+ hidden: true,
+ fireColor: "#573311",
+ tempHigh: 275,
+ stateHigh: "rad_steam",
+ reactions: {
+ "head": { elem2: "green_skull", chance: 0.1, func: behaviors.KILLPIXEL2 },
+ }
+};
+
+elements.contaminol = {
+ color: "#005F00",
+ behavior: behaviors.RADLIQUID,
+ category: "soaps",
+ viscosity: 100,
+ state: "liquid",
+ extinguish: true,
+ density: 999999999,
+ temp: 1,
+ tempLow: -273,
+ stateLow: "foam",
+ reactions: {
+ "dirt": { elem1: "foam", elem2: "impurity" },
+ "purity": { elem1: "foam", elem2: "impurity" },
+ "sand": { elem1: "foam", elem2: "tinder" },
+ "dust": { elem1: "foam", elem2: "magnesium" },
+ "ash": { elem1: "foam", elem2: "magnesium" },
+ "rock": { elem1: "foam", elem2: "mudstone" },
+ "clay": { elem1: "foam", elem2: "slag" },
+ "magma": { elem1: "foam", elem2: "molten_uranium" },
+ "purium_dust": { elem1: "foam", elem2: "rust" },
+ "basalt": { elem1: "foam", elem2: "thermite" },
+ "slime": { elem1: "foam", elem2: "magma" },
+ "dirty_water": { elem1: "foam", elem2: "slime" },
+ "water": { elem1: "foam", elem2: "oil" },
+ "iron": { elem1: "foam", elem2: "impurium" },
+ "molten_dirt": { elem1: "foam", elem2: "impurium" },
+ "copper": { elem1: "foam", elem2: "rust" },
+ "gold_coin": { elem1: "foam", elem2: "rust" },
+ "ice": { elem1: "foam", elem2: "blood_ice" },
+ "steam": { elem1: "foam", elem2: "rad_steam" },
+ "porcelain": { elem1: "foam", elem2: "smoke" },
+ "plant": { elem1: "foam", elem2: "dead_plant" },
+ "laser": { elem1: "purificanol", elem2: "explosion" },
+ "ant": { elem1: "foam", elem2: "rad_ant" },
+ "electric": { elem1: "foam", elem2: "malware" },
+ "meat": { elem1: "foam", elem2: "rotten_meat" },
+ "cooked_meat": { elem1: "foam", elem2: "rotten_meat" },
+ "cured_meat": { elem1: "foam", elem2: "rotten_meat" },
+ "dna": { elem1: "foam", elem2: "cancer" },
+ }
+};
+
+elements.impurity = {
+ color: "#4B0663",
+ behavior: behaviors.WALL,
+ category: "soaps",
+ state: "solid",
+ tempHigh: 70,
+ hidden: true,
+ stateHigh: "acid",
+ stateHighColor: "#EB14E0",
+ stain: 1,
+};
+
+elements.impurium = {
+ color: "#CECFDE",
+ behavior: behaviors.WALL,
+ category: "soaps",
+ state: "solid",
+ tempHigh: 125,
+ stateHigh: "contaminol",
+ stain: 1,
+ hidden: true,
+ conduct: 1,
+ breakInto: "plague",
+};
+
+elements.volatilium = {
+ color: ["#97BF40", "#58BF40", "#BFA740"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "special",
+ state: "solid",
+ alpha: 0.99,
+ breakInto: ["electric", "steel"],
+ temp: 20,
+ burn: 55,
+ singleColor: true,
+ fireColor: ["#f71e0a", "#f7940a", "#eff70a", "#0af722", "#0a69f7"],
+ conduct: 1,
+ tempHigh: 30,
+ breakInto: "border",
+ reactions: {
+ "neutron": { elem1: "molten_slag", elem2: ["invalid", "beryllium"] },
+ "beryllium": { elem2: "beryllium_volatilium_alloy" },
+ }
+};
+
+elements.beryllium = {
+ color: ["#AAAA9f", "#615d52", "#282b28"],
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ breakInto: ["emerald", "proton"],
+ temp: 20,
+ conduct: 1,
+ desc: "Beryllium is a chemical element, it has symbol Be and atomic number 4. It is a steel-gray, hard, strong, lightweight and brittle alkaline earth metal. It is a divalent element that occurs naturally only in combination with other elements to form minerals.",
+ tempHigh: 1287,
+ breakInto: "emerald",
+ reactions: {
+ "oxygen": { elem1: "beryllium_oxide", elem2: "beryllium_oxide" },
+ "head": { elem1: "poison", chance: 0.05, func: behaviors.KILLPIXEL2 },
+ "volatilium": { elem2: "beryllium_volatilium_alloy" },
+ }
+};
+
+elements.beryllium_oxide = {
+ color: "#c9c9d1",
+ behavior: behaviors.POWDER,
+ category: "powders",
+ state: "solid",
+ temp: 20,
+ insulate: 1,
+};
+
+elements.emerald = {
+ color: ["#2edb93", "#75C03F", "#3FC049", "#42c78f", "#22B748"],
+ behavior: behaviors.POWDER,
+ category: "powders",
+ state: "solid",
+ temp: 20,
+ alpha: 0.8,
+ tempHigh: 1287,
+};
+
+//ai generated elements begin here
+
+elements.verylithium = {
+ color: ["#A3B19C", "#3A5D4E", "#9A9E7C"],
+ behavior: behaviors.WALL,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 0.95,
+ breakInto: ["crystal", "liquid_metal"],
+ temp: 25,
+ burn: 70,
+ singleColor: true,
+ fireColor: ["#f70a3b", "#a47f1e", "#f7d02f", "#0af75c", "#0a3aef"],
+ conduct: 0.9,
+ tempHigh: 1000,
+ breakInto: "crystal",
+ reactions: {
+ "neutron": { elem1: "verylithium_oxide", elem2: ["molten_metal", "beryllium"] },
+ "water": { elem1: "verylithium_hydrate" },
+ "head": { elem1: "electric", func: behaviors.KILLPIXEL2 }
+ }
+};
+
+elements.volantium = {
+ color: ["#97C040", "#43BF60", "#5C7A35"],
+ behavior: behaviors.WALL,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 0.99,
+ breakInto: ["electric", "steel"],
+ temp: 15,
+ burn: 45,
+ singleColor: false,
+ fireColor: ["#d91f2f", "#efad00", "#42f70a", "#2188d9", "#31a72e"],
+ conduct: 1.2,
+ tempHigh: 35,
+ breakInto: "voltain",
+ reactions: {
+ "neutron": { elem1: "volantium_plasma", elem2: ["beryllium", "molten_slag"] },
+ "oxygen": { elem1: "volantium_oxide" }
+ }
+};
+
+elements.voltain = {
+ color: ["#D3B5E0", "#9B74CC", "#6A4E92"], // colors for voltain (purple and violet hues)
+ behavior: behaviors.AGPOWDER,
+ category: "ai-generated",
+ state: "solid", // in solid state
+ alpha: 0.99, // high opacity
+ breakInto: ["crystal"],
+ temp: 20, // temperature in Celsius
+ burn: 50, // burn rate, how much it burns
+ singleColor: false, // does not have a single color, as it's a multi-colored crystal
+ fireColor: ["#f00", "#ff0", "#ff80d5", "#ff4f7f", "#7f2dff"], // fire-like colors (purple to pink)
+ conduct: 0.8, // lower conductivity, suitable for a crystal
+ tempHigh: 30, // maximum temperature before breaking down
+ stateHigh: "dust",
+ reactions: {
+ "magma": { elem1: "mixed_metal_slag" }, // reacts with water
+ }
+};
+
+
+elements.beryllium_volatilium_alloy = {
+ color: ["#7f8c45", "#4f5c7d", "#9f8b5a"],
+ behavior: behaviors.WALL,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 0.85,
+ breakInto: ["beryllium", "volantium"],
+ temp: 40,
+ burn: 60,
+ singleColor: true,
+ fireColor: ["#fa0a1f", "#ef8d1f", "#f7e20a", "#0afc1e"],
+ conduct: 1.3,
+ tempHigh: 1200,
+ reactions: {
+ "neutron": { elem1: "mixed_metal_slag", elem2: ["beryllium", "volantium"] },
+ "air": { elem1: "oxidized_alloy" },
+ "fire": { elem1: "molten_alloy" }
+ }
+};
+
+elements.crystal = {
+ color: ["#A2D8C8", "#6B9E8F", "#4F7F8F"],
+ behavior: behaviors.POWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 1.0,
+ temp: 5,
+ burn: 0,
+ singleColor: true,
+ conduct: 0,
+ tempHigh: 500,
+ breakInto: "chatgptium_vapor",
+ desc: "A highly organized structure, often formed in nature under precise conditions. Crystals are brittle and beautiful, frequently seen as precious gemstones.",
+};
+
+elements.liquid_metal = {
+ color: ["#D1B7A1", "#9F8C7A", "#5C3A29"],
+ behavior: behaviors.LIQUID,
+ category: "ai-generated",
+ state: "liquid",
+ alpha: 1.0,
+ temp: 30,
+ burn: 100,
+ singleColor: true,
+ hidden: true,
+ conduct: 1.5,
+ tempHigh: 1500,
+ breakInto: "chatgptium",
+ desc: "A liquid form of metal, exhibiting high fluidity and electrical conductivity. Typically found in high-temperature environments or specific chemical states.",
+};
+
+elements.verylithium_oxide = {
+ color: ["#A8C0A2", "#91B19E", "#5A6D52"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 1.0,
+ temp: 50,
+ burn: 20,
+ singleColor: true,
+ hidden: true,
+ conduct: 0.5,
+ tempHigh: 600,
+ breakInto: "dust",
+ desc: "An oxide compound of Verylithium, formed when exposed to oxygen. It is a solid, stable compound, often used in industrial applications for its mild reactivity.",
+};
+
+elements.verylithium_hydrate = {
+ color: ["#A7D0C3", "#8DB6B2", "#4C7B6A"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 0.95,
+ hidden: true,
+ temp: 25,
+ burn: 0,
+ singleColor: true,
+ conduct: 0.2,
+ tempHigh: 400,
+ breakInto: "dirty_water",
+ desc: "A hydrated form of Verylithium, where water molecules are integrated into its structure. It is a stable and non-reactive compound when kept in controlled conditions.",
+};
+
+elements.volantium_plasma = {
+ color: ["#7E6CC0", "#8F6CB9", "#4A5FA1"],
+ behavior: behaviors.RADPOWDER,
+ category: "ai-generated",
+ state: "plasma",
+ alpha: 1.0,
+ temp: 1000,
+ burn: 500,
+ singleColor: false,
+ hidden: true,
+ conduct: 2.0,
+ charge: 2,
+ tempHigh: 2000,
+ hidden: true,
+ desc: "A highly energized state of Volantium, where the atoms are ionized and capable of conducting electricity at extreme temperatures.",
+};
+
+elements.volantium_oxide = {
+ color: ["#9C9E4A", "#B1B23C", "#B8B548"],
+ behavior: behaviors.POWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 1.0,
+ temp: 40,
+ burn: 10,
+ singleColor: true,
+ conduct: 0.3,
+ hidden: true,
+ tempHigh: 700,
+ breakInto: "dust",
+ breakIntoColour: "#42374f",
+ desc: "An oxide compound of Volantium, typically formed when exposed to oxygen at higher temperatures. It is a stable, non-reactive material with mild conductivity.",
+};
+
+elements.oxidized_alloy = {
+ color: ["#7D6F5B", "#A69A88", "#9C9E88"],
+ behavior: behaviors.WALL,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 1.0,
+ temp: 20,
+ hidden: true,
+ burn: 50,
+ singleColor: true,
+ conduct: 0.8,
+ tempHigh: 1200,
+ breakInto: "rust",
+ desc: "An alloy that has undergone oxidation, resulting in a more stable but less conductive form. It is commonly used in environments where resistance to corrosion is crucial.",
+};
+
+elements.molten_alloy = {
+ color: ["#C4A4A1", "#B85C5A", "#B0A898"],
+ behavior: behaviors.MOLTEN,
+ category: "ai-generated",
+ state: "liquid",
+ alpha: 1.0,
+ temp: 800,
+ hidden: true,
+ burn: 200,
+ singleColor: true,
+ conduct: 2.0,
+ tempHigh: 1800,
+ breakInto: "chatgptium_alloy",
+ breakIntoColour: "#374f3d",
+ desc: "A molten state of alloy created at high temperatures. It has excellent fluidity and conductivity, often used in high-performance industrial applications.",
+};
+
+elements.mixed_metal_slag = {
+ color: ["#6E5A4E", "#7E6757", "#9C7F70"],
+ behavior: behaviors.POWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 1.0,
+ temp: 100,
+ burn: 0,
+ singleColor: true,
+ conduct: 0,
+ tempHigh: 800,
+ breakInto: "chatgptium_alloy",
+ desc: "The by-product of metal refinement, a waste material that forms during the extraction of metals from ores. It is a sticky and non-conductive substance.",
+};
+
+elements.chatgptium = {
+ color: ["#0091D5", "#1A72B8", "#66A3FF"],
+ behavior: behaviors.POWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 0.98,
+ temp: 22,
+ burn: 0,
+ singleColor: false,
+ conduct: 0.5,
+ tempHigh: 100,
+ stateHigh: "chatgptium_vapor",
+ desc: "A rare, virtual gas element that exists in the interaction between human thought and digital knowledge. It changes color based on the surrounding conversation and environment, constantly adapting to communicate with surrounding elements.",
+ reactions: {
+ "electrum": { elem1: "chatgptium_alloy", elem2: "electric" },
+ "electric": { elem1: "chatgptium_alloy", elem2: "electric" },
+ "iron": { elem1: "chatgptium_alloy", elem2: "electric" },
+ "wire": { elem1: "chatgptium_alloy", elem2: "electric" },
+ "battery": { elem1: "chatgptium_alloy", elem2: "electric" },
+ }
+};
+
+elements.chatgptium_vapor = {
+ color: ["#66D3FF", "#00B5E2", "#B0C9D5"],
+ behavior: behaviors.GAS,
+ hidden: true,
+ category: "ai-generated",
+ state: "gas",
+ alpha: 0.95,
+ temp: 25,
+ burn: 0,
+ singleColor: false,
+ conduct: 0.4,
+ tempLow: -20,
+ stateLow: "chatgptium_crystal",
+ desc: "The gaseous form of ChatGPTium, which becomes more fluid and dispersed as it rises in temperature. It communicates in wisps and is most active in digital spaces.",
+};
+
+elements.chatgptium_crystal = {
+ color: ["#B0D6E1", "#92A4B2", "#5C9EB3"],
+ behavior: behaviors.POWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 1.0,
+ glow: true,
+ hidden: true,
+ temp: 20,
+ burn: 0,
+ singleColor: true,
+ conduct: 0.1,
+ tempHigh: 300,
+ desc: "A crystalline form of ChatGPTium, solidified after long periods of communication. It has an almost ethereal glow and a mysterious connection to information processing.",
+};
+
+elements.chatgptium_alloy = {
+ color: ["#5F99FF", "#80A5D9", "#3D80B6"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "ai-generated",
+ state: "solid",
+ alpha: 0.9,
+ temp: 50,
+ hidden: true,
+ burn: 10,
+ singleColor: true,
+ conduct: 0.8,
+ tempHigh: 1200,
+ desc: "A rare alloy formed when ChatGPTium interacts with computational elements. It has a unique ability to store and transmit information rapidly, and is often used in high-tech devices.",
+};
+
+//ai generated elements end here, charsonsmodbeta begins here
+
+elements.akshajium = {
+ color: ["#a8160c", "#fdff94", "#d47d20"],
+ behavior: behaviors.POWDER,
+ category: "food",
+ viscosity: 10000,
+ state: "solid",
+ density: 100,
+ desc: "pizza",
+ related: ["sankarium", "narayananium"],
+ breakInto: ["crumb", "sauce", "melted_cheese", "cooked_meat"],
+ reactions: {
+ "head": { elem1: null, chance: 0.36, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.brioche_steam = {
+ color: "#ab8c60",
+ behavior: behaviors.GAS,
+ category: "gases",
+ state: "gas",
+ density: 720,
+ temp: 80,
+ tempLow: 30,
+ desc: "how does this make any sense?",
+ stateLow: ["brioche"],
+ isFood: true,
+};
+
+elements.fancy_dough = {
+ color: "#d1c0a5",
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ viscosity: 999999,
+ state: "liquid",
+ density: 720,
+ temp: 30,
+ tempHigh: 50,
+ stateHigh: ["steam", "brioche_steam"],
+ desc: "it can be evaporated",
+ reactions: {
+ "head": { elem1: null, chance: 0.1, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.brioche = {
+ color: ["#c2770e", "#b06227"],
+ behavior: behaviors.STURDYPOWDER,
+ category: "food",
+ temp: 30,
+ tempHigh: 80,
+ tempLow: 10,
+ stateHigh: ["fragrance", "ash"],
+ stateLow: ["cold_brioche"],
+ burn: 55,
+ isFood: true,
+ breakInto: "fancy_flour",
+ reactions: {
+ "head": { elem1: null, chance: 0.7, func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.aresium = {
+ color: ["#1017ad", "#2E5AD1"],
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|XX",
+ "XX|XX|XX"
+],
+ category: "solids",
+ temp: 19,
+ tempHigh: 100,
+ tempLow: -20,
+ stateHigh: ["skibidi_aresium"],
+ stateLow: ["magma", "electric", "explosion", "cold_fire"],
+ desc: "it's a transition metal named after mars",
+ burn: 0,
+ conduct: 1,
+};
+
+elements.skibidi_aresium = {
+ color: "#ad1051",
+ behavior: [
+ "XX|XX|XX",
+ "M1 AND EX:10>brick_rubble,radiation|XX|M1 AND EX:10>brick_rubble,radiation",
+ "XX|XX|XX"
+],
+ category: "states",
+ temp: 100,
+ tempHigh: 300,
+ stateHigh: ["tnt", "molten_iron", "copper", "explosion"],
+ burn: 0,
+ conduct: 1,
+};
+
+elements.cold_brioche = {
+ color: "#5f7a8c",
+ behavior: behaviors.WALL,
+ category: "states",
+ temp: 5,
+ tempHigh: 30,
+ stateHigh: ["brioche"],
+};
+
+elements.fancy_flour = {
+ color: "#f5e9b5",
+ behavior: behaviors.POWDER,
+ category: "powders",
+ temp: 20,
+ tempHigh: 70,
+ burn: 70,
+ stateHigh: ["fragrance", "smoke"],
+};
+
+elements.irradiate = {
+ color: ["#2edb93", "#00ff00"],
+ category: "tools",
+ behavior: [
+ "XX|XX|XX",
+ "XX|CH:radiation|XX",
+ "XX|XX|XX",
+],
+};
+
+
+elements.pyrane = {
+ color: "#fc7c19",
+ behavior: behaviors.GAS,
+ hidden: true,
+ category: "gases",
+ state: "gas",
+ temp: 50,
+ tempLow: -20,
+ stateLow: ["fyrium"],
+ reactions: {
+ "ash": { elem1: null, elem2:"pyric_nitrite" },
+ "dirt": { elem1:"pyrane", elem2:"fire" },
+ "hydrogen": { elem1:"hydroid", elem2:"hydroid" },
+ }
+};
+
+elements.pyric_nitrite = {
+ color: "#b3270e",
+ behavior: behaviors.POWDER,
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|EX:10>fire,nitrogen,stench,electric|XX",
+ "XX|XX|XX",
+],
+ category: "powders",
+ state: "solid",
+ temp: 20,
+ conduct: 1,
+ desc: "not to be confused with iron pyrite or anything like that",
+ reactions: {
+ "iron": { elem1:"pyric_nitrite", elem2:"pyric_rust" },
+ "oil": { elem1: null, elem2:"nitrol_fuel" },
+ "electric": { elem1:["fire", "nitrogen", "stench", "electric", "explosion"], elem2:"fire" },
+ }
+};
+
+elements.pyric_rust = {
+ color: "#913e17",
+ behavior: behaviors.POWDER,
+ category: "powders",
+ state: "solid",
+ temp: 20,
+ reactions: {
+ "steel": { elem1: null, elem2:"tnt" }
+ }
+};
+
+elements.fyrium = {
+ color: "#ffa930",
+ behavior: behaviors.WALL,
+ category: "solids",
+ state: "solid",
+ temp: 20,
+ tempHigh: 137,
+ stateHigh: ["molten_fyrium"],
+ breakInto: ["fire"],
+};
+
+elements.molten_fyrium = {
+ color: "#ffffff",
+ behavior: behaviors.MOLTEN,
+ category: "states",
+ temp: 137,
+ tempLow: -20,
+ stateLow: ["fyrium"],
+ reactions: {
+ "water": { elem1:"explosion", elem2: null }
+ }
+};
+
+elements.nitrol_fuel = {
+ color: "#4f180e",
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ state: "liquid",
+ temp: 20,
+ stain: 0.5,
+ reactions: {
+ "wood": { elem1: null, elem2:"fueled_wood" },
+ }
+};
+
+elements.fueled_wood = {
+ color: "#631608",
+ behavior: behaviors.WALL,
+ category: "weapons",
+ state: "solid",
+ temp: 20,
+ tempHigh: 30,
+ stateHigh: ["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"],
+ reactions: {
+ "fire": { elem1:["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"], elem2:["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"] },
+ }
+};
+
+elements.hydroid = {
+ color: "#3a0ca6",
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ state: "liquid",
+ temp: 20,
+ tempHigh: 100,
+ tempLow: -20,
+ density: 12,
+ conduct: 1,
+ desc: "this is NOT water",
+ stateHigh: ["pyrane", "steam"],
+ reactions: {
+ "fire": { elem1: "hydroid", elem2:"explosion" },
+ "body": { elem1: "hydroid", elem2:"fyrium" },
+ "head": { elem1: "hydroid", elem2:"pyrane", func: behaviors.KILLPIXEL2 },
+ "water": { elem1: "hydroid", elem2:"hydroid" },
+ "maple_syrup": { elem1: "hydroid", elem2:"hydroid" },
+ "magma": { elem1: "hydroid", elem2:"hydroid" },
+ "oil": { elem1: "hydroid", elem2:"hydroid" },
+ "juice": { elem1: "hydroid", elem2:"hydroid" },
+ "ice": { elem1: "hydroid", elem2:"hydroid" },
+ }
+};
+
+//by someone named spencer
+elements.kai_cenat = {
+ color: "#e00b0b",
+ behavior: behaviors.STURDYPOWDER,
+ category: "special",
+ state: "solid",
+ desc: "wow",
+ conduct: 1,
+ desc: "someone named spencer told me to add this",
+};
+
+elements.kai_cenat.behavior = [
+ ["XX","CH:kai_cenat","XX"],
+ ["CH:kai_cenat","XX","CH:kai_cenat"],
+ ["M2","M1 AND CH:kai_cenat","M2"]
+];
+
+elements.kai_eraser = {
+ color: ["e00b0b", "#ff0000", "#00ff00", "#0000ff"],
+ tool: function(pixel) {
+ if (pixel.element == "kai_cenat") {
+ pixel.element = "foam"
+ }
+ },
+ category: "tools",
+};
+
+//ok this is the skibidi-edited mod part
+
+elements.tocopherol = {
+ color: "#094237",
+ behavior: behaviors.POWDER,
+ category: "powders",
+ viscosity: 10000,
+ state: "solid",
+ density: 100,
+ reactions: {
+ "sodium_acetate": { elem1:"tocopheryl_acetate", elem2:"sodium" },
+ }
+};
+
+elements.tweakium = {
+ color: "#22dfce",
+ behavior: [
+ "XX|M1|XX",
+ "M1|CH:liquid_light%5|M1",
+ "XX|M2|XX",
+],
+ category: "special",
+ state: "gas",
+ density: 720,
+ temp: 80,
+ reactions: {
+ "head": { elem1:"fw_ember", elem2:"cooked_meat", chance: 0.1 },
+ "body": { elem1:"fw_ember", elem2:"cooked_meat", chance: 0.3 },
+ "tweakium": { elem1:"firework", chance: 0.005 },
+ }
+};
+
+elements.tocopheryl_gas = {
+ color: "#96e3d4",
+ behavior: behaviors.GAS,
+ category: "gases",
+ state: "gas",
+ density: 720,
+ temp: 80,
+ tempLow: 0,
+ stateLow: ["tocopherol"],
+};
+
+elements.sunlight = {
+ color: "#ffc9c9",
+ behavior: behaviors.BOUNCY,
+ category: "energy",
+ state: "liquid",
+ glow: true,
+ density: 720,
+ stain: 1,
+ temp: 5600,
+ tempLow: -273,
+ stateLow: ["liquid_light"],
+};
+
+elements.tocopheryl_acetate = {
+ color: "#cffdff",
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ viscosity: 999999,
+ state: "liquid",
+ density: 720,
+ temp: 30,
+ tempHigh: 96,
+ stateHigh: ["tocopheryl_gas"],
+ reactions: {
+ "zinc": { elem1:"sunscreen", elem2:"sunscreen" },
+ }
+};
+
+elements.nahnium = {
+ color: ["#bfa6f5", "#b5a5d9"],
+ behavior: [
+ "HT:5|CR:tweakium%1|HT:5",
+ "CR:liquid_light%5|XX|CR:liquid_light%5",
+ "XX|M1|XX",
+],
+ category: "powders",
+ temp: 30,
+ tempHigh: 80,
+ tempLow: 10,
+ reactions: {
+ "nahnium": { elem1:"nahnium", elem2:"glass_shard", chance: 0.01 },
+ }
+};
+
+elements.sunscreen = {
+ color: "#ffeeff",
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ temp: 0,
+ stain: -0.1,
+ tempHigh: 9600,
+ stateHigh: ["tocopheryl_gas"],
+ reactions: {
+ "light": { elem2: null },
+ "sunlight": { elem2: null },
+ "water": { elem1:"soapy_water", elem2:"soapy_water" },
+ }
+};
+
+elements.stupidine = {
+ color: "#4e4b75",
+ behavior: behaviors.STURDYPOWDER,
+ category: "solids",
+ state: "solid",
+ temp: 20,
+ tempHigh: 137,
+ stateHigh: "liquid_stupidine",
+ tempLow: -31,
+ stateLow: "activated_stupidine",
+ reactions: {
+ "stupidine": { elem2:"fragrance", chance:0.01 },
+ "iron": { elem2:"stupid", chance:0.01 },
+ "light": { elem2:"nahnium", chance:0.01 },
+ }
+};
+
+elements.liquid_stupidine = {
+ color: ["#5328c9", "#4089e3"],
+ behavior: [
+ ["M2","M1","M2"],
+ ["XX","XX","XX"],
+ ["XX","CR:slime%1","XX"]
+],
+ category: "liquids",
+ state: "liquid",
+ temp: 140,
+ tempHigh: 500,
+ stateHigh: "stupidine_gas",
+ tempLow: 25,
+ stateLow: "skibidine",
+ breakInto: "skibidine",
+};
+
+elements.stupidine_gas = {
+ color: "#802d3a",
+ behavior: behaviors.GAS,
+ category: "gases",
+ state: "gas",
+ temp: 500,
+ tempHigh: 1000,
+ stateHigh: ["nuke", "explosion"],
+ tempLow: 200,
+ stateLow: "liquid_stupidine",
+ reactions: {
+ "stupidine_gas": { elem1:"stench", chance:0.1 },
+ }
+};
+
+elements.activated_stupidine = {
+ color: "#3d2f61",
+ behavior: [
+ "XX|XX|XX",
+ "XX|CH:hot_bomb|XX",
+ "XX|XX|XX",
+],
+ category: "solids",
+ state: "solid",
+ temp: 20,
+};
+
+elements.skibidi_soda = {
+ color: "#3279a8",
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ state: "liquid",
+ tempHigh: 100,
+ stateHigh: ["skibidiness", "skibidine"],
+ reactions: {
+ "oxygen": { elem1:"skibidi_soda", elem2:"skibidiness" },
+ "head": { elem1: "skibidiness", func: behaviors.FEEDPIXEL },
+ }
+};
+
+elements.skibidine = {
+ color: ["#51649c", "#949c51"],
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ state: "liquid",
+ reactions: {
+ "carbon_dioxide": { elem1:"skibidi_soda", elem2:"skibidi_soda" },
+ "iron": { elem1: "magma", elem2:"stupidine" },
+ }
+};
+
+
+elements.skibidiness = {
+ color: "#567de8",
+ behavior: behaviors.DGAS,
+ category: "gases",
+ state: "gas",
+ temp: 20,
+ reactions: {
+ "water": { elem1:"skibidiness", elem2:"skibidi_soda"},
+ }
+};
+
+elements.right_missile = {
+ color: ["#8a9499", "#9e9e9e", "#d1d1d1"],
+ category: "weapons",
+ state: "solid",
+ temp: 40,
+ burning: true,
+ tempHigh: 2000,
+ stateHigh: "molten_metal_scrap",
+ breakInto: "metal_scrap",
+ fireColor: "#e342a5",
+ conduct: 1,
+ charge: 3,
+};
+
+elements.right_missile.behavior = [
+ ["XX","XX","XX"],
+ ["XX","XX","M1 AND EX:20>explosion"],
+ ["XX","XX","XX"],
+];
+
+elements.left_missile = {
+ color: ["#8a9499", "#9e9e9e", "#d1d1d1"],
+ category: "weapons",
+ state: "solid",
+ temp: 40,
+ burning: true,
+ tempHigh: 2000,
+ stateHigh: "molten_metal_scrap",
+ breakInto: "metal_scrap",
+ fireColor: "#e342a5",
+ conduct: 1,
+ charge: 3,
+};
+
+elements.left_missile.behavior = [
+ ["XX","XX","XX"],
+ ["M1 AND EX:20>explosion","XX","XX"],
+ ["XX","XX","XX"],
+];
+
+//ignore these
+
+elements.melted_butter.reactions.bread = { "elem1": null, "elem2":"brioche" },
+elements.water.reactions.fancy_flour = { "elem1": null, "elem2":"fancy_dough" },
+elements.wood.reactions.nitrol_fuel = { "elem1":"fueled_wood", "elem2": null },
+
+elements.brioche.breakInto = "fancy_flour";
+elements.fyrium.breakInto = "fire";
+
+elements.fire.reactions.nitrogen = { "elem1": null, "elem2": "pyrane" },
+elements.ash.reactions.pyrane = { "elem1":"pyric_nitrite", "elem2": null },
+elements.oil.reactions.pyric_nitrite = { "elem1":"nitrol_fuel", "elem2": null },
+elements.hydrogen.reactions.pyrane = { "elem1":"hydroid", "elem2": null },
+elements.fire.reactions.fueled_wood = { "elem1": "fire", "elem2": ["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"] };
+elements.water.reactions.molten_fyrium = { "elem1": null, "elem2":["fire", "explosion"] },
+
+elements.brioche.breakInto = "fancy_flour";
+elements.fyrium.breakInto = "fire";
diff --git a/mods/clouds.js b/mods/clouds.js
new file mode 100644
index 00000000..4fcc7777
--- /dev/null
+++ b/mods/clouds.js
@@ -0,0 +1,80 @@
+// Clouds.js beta version
+
+// Biased random
+function randomGaussian(A, B, biasFactor=2) {
+ let u = Math.random();
+ let v = Math.random();
+ let num = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v);
+
+ let mean = (A + B) / 2;
+ let stdDev = (B - A) / biasFactor;
+
+ let result = mean + num * stdDev;
+
+ return Math.min(Math.max(result, A), B);
+}
+
+// Spawn clouds
+var clouds = [];
+setTimeout(() => {
+ for (var i = 0;i < 50;i++) {
+ var w = (Math.random() * 13) + 7;
+ var h = (Math.random() * 9) + 4;
+
+ // Higher clouds = faster
+ var y = randomGaussian(0, height * 0.75, 5);
+ var speedFactor = (1 - (y / (height * 0.75)));
+
+ clouds.push({
+ x: Math.random() * (width - w),
+ y: y,
+ w: w,
+ h: h,
+ dx: ((Math.random() - 0.5) * 0.05) * (0.5 + speedFactor * 2),
+ type: Math.random() > 0.5 ? 1 : 0
+ });
+ }
+}, 200);
+
+function renderClouds(ctx) {
+ ctx.strokeStyle = "transparent";
+ ctx.globalAlpha = 1.0;
+
+ for (var i = 0;i < clouds.length;i++) {
+ var cloud = clouds[i];
+
+ var gradient = ctx.createLinearGradient(
+ cloud.x * pixelSize, cloud.y * pixelSize,
+ cloud.x * pixelSize, (cloud.y + cloud.h) * pixelSize
+ );
+
+ var cloudColor = cloud.type == 1 ? "255,255,255" : "220,220,210"
+ gradient.addColorStop(0, `RGBA(${cloudColor},0.1)`);
+ gradient.addColorStop(1, `RGBA(${cloudColor},0.2)`);
+
+ ctx.filter = "blur(1px)";
+ ctx.fillStyle = gradient;
+ ctx.fillRect(cloud.x * pixelSize, cloud.y * pixelSize, cloud.w * pixelSize, cloud.h * pixelSize);
+ ctx.filter = "none";
+ }
+}
+
+function updateClouds() {
+ if (paused) {return;}
+
+ for (var i = 0;i < clouds.length;i++) {
+ var cloud = clouds[i];
+
+ cloud.x += cloud.dx;
+
+ // Wrap around
+ if (cloud.x > width) {
+ cloud.x = -cloud.w;
+ } else if (cloud.x + cloud.w < 0) {
+ cloud.x = width;
+ }
+ }
+}
+
+renderPrePixel(renderClouds);
+runEveryTick(updateClouds);
diff --git a/mods/liquid_mixing.js b/mods/liquid_mixing.js
new file mode 100644
index 00000000..b5859cb9
--- /dev/null
+++ b/mods/liquid_mixing.js
@@ -0,0 +1,186 @@
+// By Nekonico!
+
+window.addEventListener('load', function() {
+ for (var element in elements) {
+ if (elements[element].state === "liquid" && elements[element].behavior !== behaviors.MOLTEN) {
+ elements[element].renderer = function(pixel, ctx) { // this part used nouseramefounds code, props to him!
+ if (!pixel.rSeed){pixel.rSeed = [Math.random(), Math.random(), Math.random(), Math.random()]}
+ if (typeof pixel.color == "object"){
+ let selectedColor = pixel.color[Math.floor(pixel.rSeed[1]*elements[pixel.element].color.length)]
+ let rgb = {
+ r: parseInt(selectedColor.match(/\d+/g)[0]),
+ g: parseInt(selectedColor.match(/\d+/g)[1]),
+ b: parseInt(selectedColor.match(/\d+/g)[2])
+ }
+ for (let c in rgb){
+ rgb[c] += Math.floor(pixel.rSeed[0] * (pixel.rSeed[2] > 0.5 ? -1 : 1) * pixel.rSeed[3] * 15);
+ rgb[c] = Math.max(0, Math.min(255, rgb[c]));
+ }
+ if (elements[pixel.element].glow || elements[pixel.element].isGas){
+ drawPlus(ctx, "rgb("+rgb.r+","+rgb.g+","+rgb.b+")", pixel.x, pixel.y, 1);
+ } else {
+ drawSquare(ctx, "rgb("+rgb.r+","+rgb.g+","+rgb.b+")", pixel.x, pixel.y);
+ }
+ } else {
+ let rgb = {
+ r: parseInt(pixel.color.match(/\d+/g)[0]),
+ g: parseInt(pixel.color.match(/\d+/g)[1]),
+ b: parseInt(pixel.color.match(/\d+/g)[2])
+ }
+ for (let c in rgb){
+ rgb[c] += Math.floor(pixel.rSeed[0] * (pixel.rSeed[2] > 0.5 ? -1 : 1) * pixel.rSeed[3] * 15);
+ rgb[c] = Math.max(0, Math.min(255, rgb[c]));
+ }
+ if (elements[pixel.element].glow || elements[pixel.element].isGas){
+ drawPlus(ctx, "rgb("+rgb.r+","+rgb.g+","+rgb.b+")", pixel.x, pixel.y, 1);
+ } else {
+ drawSquare(ctx, "rgb("+rgb.r+","+rgb.g+","+rgb.b+")", pixel.x, pixel.y);
+ }
+ }
+ }
+ if (elements[element].id === elements.cement.id || elements[element].id === elements.beans.id || elements[element].id === elements.algae.id || elements[element].id === elements.cellulose.id) {
+ elements[element].miscible = false
+ }
+ if (elements[element].id === elements.midas_touch.id || elements[element].id === elements.cement.id || elements[element].id === elements.beans.id || elements[element].id === elements.algae.id || elements[element].id === elements.cellulose.id || elements[element].id === elements.primordial_soup.id || elements[element].id === elements.cyanide.id || elements[element].id === elements.poison.id || elements[element].id === elements.antidote.id || elements[element].id === elements.mercury.id || elements[element].id === elements.liquid_oxygen.id || elements[element].id === elements.liquid_nitrogen.id) {
+ elements[element].soluble = false
+ }
+ if (elements[element].id === elements.midas_touch.id || elements[element].id === elements.molasses.id || elements[element].id === elements.grease.id || elements[element].id === elements.oil.id || elements[element].id === elements.lamp_oil.id || elements[element].id === elements.nut_oil.id|| elements[element].id === elements.honey.id || elements[element].id === elements.sap.id || elements[element].id === elements.caramel.id) {
+ elements[element].polar = 2
+ }
+ else if (elements[element].id === elements.soap.id) {
+ elements[element].polar = 3
+ }
+ else {
+ elements[element].polar = 1
+ }
+ if (elements[element].stain === undefined || !elements[element].stain) {
+ elements[element].stain = 0.000000001
+ elements[element].mixstain = 0.3
+ }
+ else if (elements[element].stain < 0.66 && elements[element].stain > -0.249 && (elements[element].mixstain === undefined || !elements[element].mixstain)) {
+ elements[element].mixstain = (elements[element].stain + 0.25)
+ }
+ else if (elements[element].stain < 0.66 && elements[element].stain > -0.35 && (elements[element].mixstain === undefined || !elements[element].mixstain)) {
+ elements[element].mixstain = (Math.abs(elements[element].stain) - 0.1)
+ }
+ else if (elements[element].stain < 0.66 && elements[element].stain < -0.35 && (elements[element].mixstain === undefined || !elements[element].mixstain)) {
+ elements[element].mixstain = 0.1
+ }
+ else if (elements[element].stain < 0.66 && elements[element].stain < -0.249 && (elements[element].mixstain === undefined || !elements[element].mixstain)) {
+ elements[element].mixstain = 0.125
+ }
+ else {
+ elements[element].mixstain = (0.66)
+ }
+ }
+ }
+});
+
+doStaining = function(pixel) {
+ if (settings.stain===0) { return }
+ var stain = elements[pixel.element].stain;
+ var mixstain = elements[pixel.element].mixstain;
+ if (stain > 0) {
+ var newColor = pixel.color.match(/\d+/g);
+ }
+ else {
+ var newColor = null;
+ }
+ if (mixstain > 0) {
+ var mixnewColor = pixel.color.match(/\d+/g);
+ }
+ else {
+ var mixnewColor = null;
+ }
+
+ for (var i = 0; i < adjacentCoords.length; i++) {
+ var x = pixel.x+adjacentCoords[i][0];
+ var y = pixel.y+adjacentCoords[i][1];
+ if (!isEmpty(x,y,true)) {
+ var newPixel = pixelMap[x][y];
+ if (elements[pixel.element].ignore && elements[pixel.element].ignore.indexOf(newPixel.element) !== -1) {
+ continue;
+ }
+ if ((elements[newPixel.element].id !== elements[pixel.element].id || elements[newPixel.element].stainSelf) && (solidStates[elements[newPixel.element].state] || elements[newPixel.element].id === elements[pixel.element].id)) {
+ if (Math.random() < Math.abs(stain)) {
+ if (stain < 0) {
+ if (newPixel.origColor) {
+ newColor = newPixel.origColor;
+ }
+ else { continue; }
+ }
+ else if (!newPixel.origColor) {
+ newPixel.origColor = newPixel.color.match(/\d+/g);
+ }
+ // if newPixel.color doesn't start with rgb, continue
+ if (!newPixel.color.match(/^rgb/)) { continue; }
+ // parse rgb color string of newPixel rgb(r,g,b)
+ var rgb = newPixel.color.match(/\d+/g);
+ if (elements[pixel.element].stainSelf && elements[newPixel.element].id === elements[pixel.element].id) {
+ // if rgb and newColor are the same, continue
+ if (rgb[0] === newColor[0] && rgb[1] === newColor[1] && rgb[2] === newColor[2]) { continue; }
+ var avg = [];
+ for (var j = 0; j < rgb.length; j++) {
+ avg[j] = Math.round((rgb[j]*(1-Math.abs(stain))) + (newColor[j]*Math.abs(stain)));
+ }
+ }
+ else {
+ // get the average of rgb and newColor, more intense as stain reaches 1
+ var avg = [];
+ for (var j = 0; j < rgb.length; j++) {
+ avg[j] = Math.floor((rgb[j]*(1-Math.abs(stain))) + (newColor[j]*Math.abs(stain)));
+ }
+ }
+ // set newPixel color to avg
+ newPixel.color = "rgb("+avg.join(",")+")";
+ }
+ }
+ if ((elements[newPixel.element].id === elements[pixel.element].id || elements[newPixel.element].state === "liquid") && elements[pixel.element].state === "liquid" && elements[pixel.element].miscible !== false && elements[newPixel.element].miscible !== false) {
+ if (mixstain === undefined || !mixstain) {
+ var mixstain = 0.5
+ }
+ if (Math.random() < mixstain) {
+ if (elements[newPixel.element].polar === elements[pixel.element].polar || elements[newPixel.element].polar === 3) {
+ if (!newPixel.origColor) {
+ newPixel.origColor = newPixel.color.match(/\d+/g);
+ }
+ // if newPixel.color doesn't start with rgb, continue
+ if (!newPixel.color.match(/^rgb/)) { continue; }
+ // parse rgb color string of newPixel rgb(r,g,b)
+ var rgb = newPixel.color.match(/\d+/g);
+ if (elements[newPixel.element].id === elements[pixel.element].id) {
+ // if rgb and newColor are the same, continue
+ if (rgb[0] === mixnewColor[0] && rgb[1] === mixnewColor[1] && rgb[2] === mixnewColor[2]) { continue; }
+ var avg = [];
+ for (var j = 0; j < rgb.length; j++) {
+ avg[j] = Math.round((rgb[j]*(1- mixstain)) + (mixnewColor[j] * mixstain));
+ }
+ }
+ else {
+ // get the average of rgb and newColor, more intense as stain reaches 1
+ var avg = [];
+ for (var j = 0; j < rgb.length; j++) {
+ avg[j] = Math.floor((rgb[j]*(1- mixstain)) + (mixnewColor[j] * mixstain));
+ }
+ }
+ if (Math.random() > 0.9 && elements[newPixel.element].soluble === true && elements[pixel.element].soluble === true && newPixel.color === pixel.color && elements[newPixel.element].density > (elements[pixel.element].density - 20) && elements[newPixel.element].density < (elements[pixel.element].density + 40) && elements[pixel.element].density > (elements[newPixel.element].density - 20) && elements[pixel.element].density < (elements[newPixel.element].density + 40) ) {
+ if (elements[newPixel.element].density < elements[pixel.element].density) {
+ newPixel.element = pixel.element
+ }
+ else if (elements[newPixel.element].density > elements[pixel.element].density) {
+ pixel.element = newPixel.element
+ }
+ else if (elements[newPixel.element].density == elements[pixel.element].density) {
+ newPixel.element = pixel.element
+ }
+ }
+ // set newPixel color to avg
+ newPixel.color = "rgb("+avg.join(",")+")";
+ }
+ }
+ }
+ }
+ }
+}
+
+// By Nekonico!
diff --git a/mods/mars.js b/mods/mars.js
index ca4fe635..1085738b 100644
--- a/mods/mars.js
+++ b/mods/mars.js
@@ -17,7 +17,9 @@ elements.mars_dust = {
stateHigh: "molten_mars",
tempLow: -170,
stateLow: "mars_rock",
- extraInfo: "Dust Samples from mars. Can freeze into Mars Rock."
+ extraInfo: "Dust Samples from mars. Can freeze into Mars Rock.",
+ hardness: 0.991,
+ breakInto: "mars_debris"
}
elements.molten_mars = {
color: "#ffc338",
@@ -42,6 +44,16 @@ elements.mars_rock = {
stateLow: "mars_rock_wall",
extraInfo: "The Freezing of Mars Dust. Can be used for normal land."
}
+elements.mars_debris = {
+ color: "#ff9999",
+ behavior: behaviors.STURDYPOWDER,
+ category: "mars",
+ state: "solid",
+ density: 1605,
+ burn: 94,
+ burnTime: 45,
+ burnInto: "ash"
+}
elements.support_mars_rock = {
color: ["#a51002","#bd1102"],
behavior: behaviors.SUPPORTPOWDER,
@@ -88,12 +100,14 @@ elements.mars_ironheart = {
density: 1500,
tempHigh: 2500,
hardness: 1,
- stateHigh: "molten_mars",
+ stateHigh: "ironheart",
extraInfo: "Mars Stuff.",
hidden: "true",
reactions: {
"mars_furnace": { elem1: "ironheart", elem2: "ironheart" },
- "nosmoker": { elem1: "ironheart", elem2: "ironheart" }, },
+ "nosmoker": { elem1: "ironheart", elem2: "ironheart" },
+ "ironheart": { elem1: "ironheart", elem2: "ironheart" , chance:0.1 }
+},
}
elements.mars_furnace = {
color: ["#870002","#870507"],
@@ -106,14 +120,20 @@ elements.mars_furnace = {
state: "solid",
hardness: 0.6,
stateHigh: "molten_mars",
- extraInfo: "Used to turn Ironheart into Ironheart Solids"
+ extraInfo: "Used to turn Ironheart into Ironheart Solids",
+ tempHigh: "550",
+ stateHigh: "molten_mars",
+ breakInto: ["ironheart", "mars_ironheart", "ironheart_ore", "gunk"]
}
elements.nosmoker = {
color: ["#870002", "#870507"],
behavior: behaviors.WALL,
category: "mars",
state: "solid",
- extraInfo: "Used to turn Ironheart into Ironheart Solids"
+ extraInfo: "Used to turn Ironheart into Ironheart Solids",
+ tempHigh: "350",
+ stateHigh: "molten_mars",
+ breakInto: ["ironheart", "mars_ironheart", "ironheart_ore", "antigunk"]
}
elements.ironheart = {
color: "#e9825a",
@@ -197,9 +217,12 @@ elements.o2_tank = {
],
category: "mars",
state: "solid",
-
+ tempHigh: "600",
+ stateHigh: "molten_copper",
+ breakInto: ["copper", "oxygen"]
}
-// 1.4.7
+
+// 1.6.11
// most elements done :D
// iron heart ore
// iron heart
@@ -215,3 +238,7 @@ elements.o2_tank = {
// im putting in the archive
// lil changes
// inroducing oxygen tanks!
+// machines are smashable. please smash them.
+// also heatable
+// O2 BE YOU
+// ironheart faster
diff --git a/mods/mjsstuff b/mods/mjsstuff.js
similarity index 71%
rename from mods/mjsstuff
rename to mods/mjsstuff.js
index e0605514..0d2dbec2 100644
--- a/mods/mjsstuff
+++ b/mods/mjsstuff.js
@@ -70,6 +70,7 @@ elements.dark_brown_sugar = {
behavior: behaviors.SUPPORTPOWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel", //am i an idiot for taking this long to figure out how to edit my code? yes. i am.
reactions: {
"water": { elem1: "sugar_water", elem2: null },
}
@@ -81,6 +82,7 @@ elements.icing_sugar = {
behavior: behaviors.SUPPORTPOWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel",
reactions: {
"water": { elem1: null , elem2: "icing" },
}
@@ -92,6 +94,7 @@ elements.golden_caster_sugar = {
behavior: behaviors.POWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel",
reactions: {
"water": { elem1: "sugar_water" , elem2: null },
}
@@ -104,6 +107,7 @@ elements.caster_sugar = {
behavior: behaviors.POWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel",
reactions: {
"water": { elem1: "sugar_water" , elem2: null },
}
@@ -114,6 +118,7 @@ elements.light_brown_sugar = {
behavior: behaviors.SUPPORTPOWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel",
reactions: {
"water": { elem1: "sugar_water" , elem2: null },
}
@@ -125,6 +130,7 @@ elements.demerara_sugar = {
behavior: behaviors.POWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel",
reactions: {
"water": { elem1: "sugar_water" , elem2: null },
}
@@ -136,6 +142,7 @@ elements.dark_muscovado_sugar = {
behavior: behaviors.SUPPORTPOWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel",
reactions: {
"water": { elem1: "sugar_water" , elem2: null },
}
@@ -148,6 +155,7 @@ elements.granulated_sugar = {
behavior: behaviors.POWDER,
category: "food",
state: "powder",
+ stateHigh: "caramel",
reactions: {
"water": { elem1: "sugar_water" , elem2: null },
}
@@ -159,7 +167,67 @@ elements.icing = {
behavior: behaviors.LIQUID,
category: "food",
state: "powder",
+ stateHigh: "caramel",
viscosity: 2000,
-
-
};
+
+
+elements.Hazel = {
+ color: ["#189BCC",],
+ behavior: behaviors.SUPERFLUID,
+ category: "joke",
+ state: "liquid",
+ viscosity: 0,
+};
+
+ elements.guhguhgugu = {
+ color: ["#a73acf", "#9e26c9", "#be5ee0",],
+ behavior: behaviors.LIQUID,
+ category: "joke",
+ state: "liquid",
+ stateLow: "frozen_guhguhgugu",
+ tempLow: -150,
+ stateHigh: "solid_guhguhgugu",
+ tempHigh: 150,
+ };
+
+ elements.solid_guhguhgugu = {
+ color: ["#a73acf", "#9e26c9", "#be5ee0",],
+ behavior: behaviors.SOLID,
+ category: "joke",
+ state: "solid",
+ stateLow: "guhguhgugu",
+ tempLow: 150,
+ stateHigh: "liquid_guhguhgugu",
+ tempHigh: 250,
+ };
+
+ elements.liquid_guhguhgugu = {
+ color: ["#a73acf", "#9e26c9", "#be5ee0",],
+ behavior: behaviors.MOLTEN,
+ category: "molten",
+ state: "molten",
+ tempLow: "250",
+ stateLow: "solid_guhguhgugu",
+ stateHigh: "liquid_guhguhgugu",
+ tempHigh: 500,
+ };
+
+ elements.boil_guhguhgugu = {
+ color: ["#a73acf", "#9e26c9", "#be5ee0",],
+ behavior: behaviors.DGAS,
+ category: "joke",
+ state: "gas",
+ tempLow: "500",
+ stateLow: "liquid_guhguhgugu",
+
+ };
+
+elements.frozen_guhguhgugu = {
+ color: ["#a73acf", "#9e26c9", "#be5ee0",],
+ behavior: behaviors.SOLID,
+ category: "joke",
+ state: "solid",
+ stateHigh: "guhguhgugu",
+ tempHigh: 15,
+ };
diff --git a/mods/nousersthings.js b/mods/nousersthings.js
index dddd9106..97c7be41 100644
--- a/mods/nousersthings.js
+++ b/mods/nousersthings.js
@@ -1575,8 +1575,6 @@ elements.blackhole_storage = {
tick: function(pixel) {
if (!pixel.bhcontents){
pixel.bhcontents = [];
- } else {
- pixel.decidedcontent = pixel.bhcontents[Math.floor(Math.random()*pixel.bhcontents.length)];
}
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
@@ -1588,15 +1586,15 @@ elements.blackhole_storage = {
pixel.bhcontents.push(otherPixel);
deletePixel(otherPixel.x, otherPixel.y);
}
- } else if (pixel.charge && isEmpty(x,y) && pixel.decidedcontent){
- var otherPixel = pixelMap[x][y];
- pixel.decidedcontent.x = x;
- pixel.decidedcontent.y = y;
- delete pixel.decidedcontent.del;
- otherPixel = pixel.decidedcontent;
- currentPixels.push(pixel.decidedcontent);
- pixel.bhcontents.splice(pixel.bhcontents.indexOf(pixel.decidedcontent), 1);
- pixel.decidedcontent = pixel.bhcontents[Math.floor(Math.random()*pixel.bhcontents.length)];
+ } else if (pixel.charge && isEmpty(x,y) && pixel.bhcontents.length){
+ let randomindex = Math.floor(Math.random()*pixel.bhcontents.length);
+ let releasedPixel = pixel.bhcontents[randomindex]
+ pixel.bhcontents.splice(randomindex, 1)
+ delete releasedPixel.del
+ releasedPixel.x = x
+ releasedPixel.y = y
+ pixelMap[x][y] = releasedPixel
+ currentPixels.push(releasedPixel)
}
}
},
@@ -3905,4 +3903,73 @@ elements.false_vacuum = {
},
movable: false,
hardness: 1
+}
+let signInput = "Hello World!";
+elements.sign = {
+ color: "#FFFFFF",
+ darkText: true,
+ category: "special",
+ onSelect: function(){
+ let signi = prompt("What text should the sign display?", signInput||"Hello World!")
+ signInput = signi;
+ },
+ renderer: function(pixel, ctx){
+ if (!pixel.sign){pixel.sign = signInput}
+ },
+ movable: false
+}
+elements.e_sign = {
+ color: "#f3ff88",
+ darkText: true,
+ category: "special",
+ movable: false,
+ onSelect: () => {
+ let signi = prompt("What text should the sign display?", signInput||"Hello World!")
+ signInput = signi;
+ },
+ renderer: function(pixel, ctx){
+ if (!pixel.sign){pixel.sign=signInput}
+ },
+ conduct: 1
+}
+renderPostPixel(function(ctx){
+ for (pixel of currentPixels){
+ if ((pixel.element == "sign") && pixel.sign){
+ ctx.font = `12pt Arial`
+ ctx.fillStyle = pixel.color;
+ ctx.fillText(pixel.sign, canvasCoord(pixel.x), canvasCoord(pixel.y))
+ } else if (pixel.element == "e_sign" && pixel.sign){
+ if (pixel.charge || pixel.chargeCD){
+ ctx.font = `12pt Arial`
+ ctx.fillStyle = pixel.color;
+ ctx.fillText(pixel.sign, canvasCoord(pixel.x), canvasCoord(pixel.y))
+ } else {
+ drawSquare(ctx, pixel.color, pixel.x, pixel.y)
+ }
+ }
+ }
+})
+let machinemodName = "nousersthings.js"
+elements.mod_dectector = {
+ color: "#54681d",
+ behavior: behaviors.WALL,
+ category: "machines",
+ movable: false,
+ excludeRandom: true,
+ onSelect: () => {
+ let newMod = prompt("What mod should this machine detect?", "nousersthings.js"||modName)
+ machinemodName = newMod
+ },
+ tick: (pixel) => {
+ if (!pixel.mod){pixel.mod = machinemodName}
+ if (enabledMods.includes("mods/" + pixel.mod)){
+ for (let i = 0; i < adjacentCoords.length; i++){
+ let x = adjacentCoords[i][0] + pixel.x;
+ let y = adjacentCoords[i][1] + pixel.y;
+ if (!isEmpty(x, y, true) && elements[pixelMap[x][y].element].conduct){
+ pixelMap[x][y].charge = 1
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/mods/survivalhack.js b/mods/survivalhack.js
index 8185c5ea..8f76568a 100644
--- a/mods/survivalhack.js
+++ b/mods/survivalhack.js
@@ -1,7 +1,7 @@
if (!settings.survival) {
settings.survival = {
"wall": 999,
- "dirt": 999,
+ "dirt": 9999,
"sapling": 1,
"seeds": 5,
"ice": 25,
@@ -154,7 +154,7 @@ elements.smash.tool = function(pixel) {
elementWorth = {
"gold_coin": 1,
- "diamond": 10000,
+ "diamond": 10000000,
"ketchup": 15,
"jelly": 10,
"soda": 10,
@@ -183,7 +183,7 @@ elementWorth = {
"vine": 0.1,
"cactus": 0.1,
"cloner": 0,
- "wall": 0,
+ "wall": 100000,
"fire": 0,
"smoke": 0,
"plasma": 0,
@@ -194,7 +194,7 @@ elementWorth = {
"radiation": 0,
"petal": -1,
"cell": -1,
- "cancer": -1,
+ "cancer": 1000000000,
"foam": -1,
}
elements.sell = {