diff --git a/lang/fr.json b/lang/fr.json
index 835ae068..c1219216 100644
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -548,5 +548,10 @@
"galvanized_steel": "Acier galvanisé",
"rice": "Le riz",
"midas_touch": "Touche de Midas",
-"liquid_ozone": "Ozone liquide"
+"liquid_ozone": "Ozone liquide",
+"web": "Toile",
+"soul": "Âme",
+"spider": "Araignée",
+"ectoplasm": "Ectoplasme",
+"tombstone": "Pierre tombale"
}
diff --git a/lang/vi.json b/lang/vi.json
index 4b1cf5d6..541fee53 100644
--- a/lang/vi.json
+++ b/lang/vi.json
@@ -549,5 +549,10 @@
"galvanized_steel": "Thép mạ kẽm",
"rice": "Gạo",
"midas_touch": "Bàn tay của Midas",
-"liquid_ozone": "Ozone lỏng"
+"liquid_ozone": "Ozone lỏng",
+"web": "Tơ Nhện",
+"soul": "Linh hồn",
+"spider": "Nhện",
+"ectoplasm": "Ngoại chất",
+"tombstone": "Bia mộ"
}
diff --git a/mod-list.html b/mod-list.html
index 8394f817..c36d8f69 100644
--- a/mod-list.html
+++ b/mod-list.html
@@ -340,6 +340,7 @@
| Visual Effects |
| acid_and_shapes.js | Weird visual effects. Enable in Settings | Alice |
+| customBackground.js | Set your background to an image link | Jayd |
| heatglow.js | Red glowing effect for hot metals | nousernamefound |
| 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 |
@@ -351,6 +352,9 @@
| shader_by_jayd.js | Adds a glow around light elements | Jayd |
| Shroomboxels.js | A variant of acid_and_shapes.js that uses a different trigonometric function | Alice |
| singleColor.js | Makes all elements pick one color each time they're drawn | stefanblox |
+| texture_pack_by_jayd.js | Adds a cool background | Jayd |
+| UwUify.js | Adds an "UwU" background | Jayd |
+
| Compilations |
| a_mod_by_alice.js | A mod combining most of Alice’s mods, and some other things | Alice |
diff --git a/mods/Quicksand_one.js b/mods/Quicksand_one.js
index 7f601977..367aabcd 100644
--- a/mods/Quicksand_one.js
+++ b/mods/Quicksand_one.js
@@ -467,18 +467,7 @@ elements.mushy_mud = {
density: 1200,
stain: 0.3
};
-elements.mud = {
- color: "#8B4513",
- behavior: elements.slime.behavior,
- viscosity: 1050,
- tempHigh: 58,
- stateHigh: "liquid",
- tempLow: 0,
- category: "liquids",
- state: "liquid",
- density: 1000,
- stain: 0.3
-};
+
elements.quicksand_mud = {
color: "#DAA520",
behavior: elements.slime.behavior,
@@ -515,7 +504,7 @@ elements.sticky_quicksand = {
density: 1100,
stain: 0.25
};
-elements.fluff_mud = {
+elements.pluff_mud = {
color: "#964B00",
behavior: elements.slime.behavior,
viscosity: 10000,
@@ -527,55 +516,6 @@ elements.fluff_mud = {
density: 1300,
stain: 0.2
};
-elements.bog = {
- color: "#556B2F",
- behavior: elements.slime.behavior,
- viscosity: 10000,
- tempHigh: 45,
- stateHigh: "liquid",
- tempLow: 0,
- category: "liquids",
- state: "liquid",
- density: 1400,
- stain: 0.25
-};
-elements.mire = {
- color: "#2E8B57",
- behavior: elements.slime.behavior,
- viscosity: 10000,
- tempHigh: 50,
- stateHigh: "liquid",
- tempLow: 0,
- category: "liquids",
- state: "liquid",
- density: 1500,
- stain: 0.3
-};
-elements.oobleck = {
- color: "#008000",
- behavior: elements.slime.behavior,
- viscosity: 10000,
- tempHigh: 25,
- stateHigh: "liquid",
- tempLow: 0,
- category: "liquids",
- state: "liquid",
- density: 1600,
- stain: 0.15
-};
-elements.spiderwebs = {
- color: "#D3D3D3",
- behavior: elements.slime.behavior,
- viscosity: 10000,
- tempHigh: 20,
- stateHigh: "liquid",
- tempLow: 0,
- category: "liquids",
- state: "liquid",
- density: 1700,
- stain: 0.1
-};
-
elements.silt_quicksand = {
color: "#DAA520",
behavior: elements.slime.behavior,
@@ -1104,3 +1044,312 @@ elements.murky_marsh_mixture = {
density: 1900,
stain: 0.2
};
+
+
+
+elements.mud = {
+ color: "#8B4513",
+ reactions: {
+ "water": { "elem1": "wet_mud" },
+ "mire": { "elem1": "mire_mud" },
+ "dirt": { "elem1": "thick_mud" },
+ "plant": { "elem1": "pluff_mud" },
+ "bog": { "elem1": "boggy_mud" },
+ "sand": { "elem1": "sandy_mud" },
+ },
+ behavior: elements.slime.behavior,
+ viscosity: 1050,
+ tempHigh: 58,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1000,
+ stain: 0.3
+};
+elements.marsh = {
+ color: "#556B2F",
+ behavior: elements.slime.behavior,
+ reactions: {
+ "slime": { "elem1": "marshy_slime" },
+ },
+ viscosity: 13500,
+ tempHigh: 75,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1900,
+ stain: 0.2
+};
+elements.peat = {
+ color: "#556B2F",
+ behavior: elements.slime.behavior,
+ viscosity: 13500,
+ tempHigh: 75,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1900,
+ stain: 0.2
+};
+elements.goo = {
+ color: "#556B2F",
+ behavior: behavior.POWDER,
+ viscosity: 13500,
+ tempHigh: 75,
+ stateHigh: "powder",
+ tempLow: 0,
+ category: "powders",
+ state: "powder",
+ density: 1900,
+ stain: 0.2
+};
+elements.ooze = {
+ color: "#556B2F",
+ behavior: elements.slime.behavior,
+ viscosity: 13500,
+ tempHigh: 75,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1900,
+ stain: 0.2
+};
+elements.spiderwebs = {
+ color: "#D3D3D3",
+ behavior: elements.slime.behavior,
+ viscosity: 10000,
+ tempHigh: 20,
+ stateHigh: "liquid",
+ reactions: {
+ "ooze": { "elem1": "sticky_spider_ooze" },
+ "goo": { "elem1": "sticky_spider_goo" },
+ },
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1700,
+ stain: 0.1
+};
+elements.bog = {
+ color: "#556B2F",
+ behavior: elements.slime.behavior,
+ viscosity: 10000,
+ tempHigh: 45,
+ stateHigh: "liquid",
+ tempLow: 0,
+ reactions: {
+ "quicksand": { "elem1": "bog_quicksand" },
+ },
+ category: "liquids",
+ state: "liquid",
+ density: 1400,
+ stain: 0.25
+};
+elements.mire = {
+ color: "#2E8B57",
+ behavior: elements.slime.behavior,
+ viscosity: 10000,
+ tempHigh: 50,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1500,
+ stain: 0.3
+};
+elements.oobleck = {
+ color: "#008000",
+ behavior: elements.slime.behavior,
+ viscosity: 10000,
+ tempHigh: 25,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1600,
+ stain: 0.15
+};
+elements.quicksand = {
+ color: "#8B4513",
+ behavior: elements.slime.behavior,
+ viscosity: 1050,
+ tempHigh: 58,
+ stateHigh: "liquid",
+ reactions: {
+ "water": { "elem1": "wet_quicksand" },
+ "peat": { "elem1": "peat_quicksand" },
+ "mud": { "elem1": "quicksand_mud" },
+ },
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1574,
+ stain: 0.3
+};
+elements.gel = {
+ color: "#008000",
+ behavior: elements.slime.behavior,
+ viscosity: 10000,
+ tempHigh: 25,
+ reactions: {
+ "spider_webbing": { "elem1": "webbing_gel" },
+ },
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1600,
+ stain: 0.15
+};
+elements.silly_putty = {
+ color: "#FFD700",
+ behavior: behaviors.LIQUID,
+ viscosity: 4000,
+ tempHigh: 50,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 900, // Adjusted density
+ stain: 0.1
+};
+
+elements.kinetic_sand = {
+ color: "#FFD700",
+ behavior: behaviors.LIQUID,
+ viscosity: 5000,
+ tempHigh: 55,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1200, // Adjusted density
+ stain: 0.15
+};
+
+elements.gak = {
+ color: "#FF69B4",
+ behavior: behaviors.LIQUID,
+ viscosity: 6000,
+ tempHigh: 60,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 950,
+ stain: 0.2
+};
+
+elements.flubber = {
+ color: "#FF4500",
+ behavior: behaviors.LIQUID,
+ viscosity: 3000,
+ tempHigh: 65,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 800,
+ stain: 0.1
+};
+
+elements.play_doh = {
+ color: "#FFC0CB",
+ behavior: behaviors.LIQUID,
+ viscosity: 5000,
+ tempHigh: 55,
+ reactions: {
+ "sand": { "elem1": "sandy_play_doh" },
+ },
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 950,
+ stain: 0.2
+};
+
+elements.floam = {
+ color: "#98FB98",
+ behavior: behaviors.LIQUID,
+ viscosity: 4000,
+ tempHigh: 60,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1000,
+ stain: 0.15
+};
+
+elements.moon_sand = {
+ color: "#D3D3D3",
+ behavior: behaviors.LIQUID,
+ viscosity: 4500,
+ tempHigh: 60,
+ reactions: {
+ "water": { "elem1": "moon_quicksand" },
+ "kinetic_sand": { "elem1": "moon_kinetic_sand" },
+ },
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "powders",
+ state: "powder",
+ density: 950,
+ stain: 0.1
+};
+elements.moon_quicksand = {
+ color: "#98FB98",
+ behavior: behaviors.LIQUID,
+ viscosity: 4000,
+ tempHigh: 60,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1000,
+ stain: 0.15
+};
+elements.moon_kinetic_sand = {
+ color: "#D3D3D3",
+ behavior: behaviors.LIQUID,
+ viscosity: 4500,
+ tempHigh: 60,
+ reactions: {
+ "water": { "elem1": "kinetic_moon_quicksand" },
+ },
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "powders",
+ state: "powder",
+ density: 950,
+ stain: 0.1
+};
+elements.kinetic_moon_quicksand = {
+ color: "#98FB98",
+ behavior: behaviors.LIQUID,
+ viscosity: 4000,
+ tempHigh: 60,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 1000,
+ stain: 0.15
+};
+elements.sandy_play_doh = {
+ color: "#FFC0CB",
+ behavior: behaviors.LIQUID,
+ viscosity: 5000,
+ tempHigh: 55,
+ stateHigh: "liquid",
+ tempLow: 0,
+ category: "liquids",
+ state: "liquid",
+ density: 950,
+ stain: 0.2
+};
diff --git a/mods/genetics.js b/mods/genetics.js
index a6d633cd..be89639c 100644
--- a/mods/genetics.js
+++ b/mods/genetics.js
@@ -1,24 +1,182 @@
/* by nekonico, do not steal!!!!!! >:3*/
elements.organism = {
- color: ["#997457","#c4b270","#9c916a","#9e8955","#a89a76"],
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|XX",
+ "M2%10|M1|M2%10",
+ ],
+ color: ["#997457","#a89a76"],
properties: {
geneticCode: 0,
+ oldvore: 0,
vore: 0,
food: 0,
- age: 0
+ age: 0,
+ dead: false
},
tick: function(pixel) {
+ if (pixel.vore != pixel.oldvore) {
+ if (pixel.vore === 0) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#997457"
+ }
+ else {
+ pixel.color = "#a89a76"
+ }
+ }
+ else if (pixel.vore === 1) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#9E6954"
+ }
+ else {
+ pixel.color = "#AB8C6B"
+ }
+ }
+ else if (pixel.vore === 2) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#A25F50"
+ }
+ else {
+ pixel.color = "#AF7E61"
+ }
+ }
+ else if (pixel.vore === 3) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#A7544D"
+ }
+ else {
+ pixel.color = "#B27056"
+ }
+ }
+ else if (pixel.vore === 4) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#A7544D"
+ }
+ else {
+ pixel.color = "#B5624B"
+ }
+ }
+ else if (pixel.vore === 5) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#AC4A4A"
+ }
+ else {
+ pixel.color = "#B85440"
+ }
+ }
+ else if (pixel.vore === 6) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#B03F47"
+ }
+ else {
+ pixel.color = "#BC4636"
+ }
+ }
+ else if (pixel.vore === 7) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#B53543"
+ }
+ else {
+ pixel.color = "#BF382B"
+ }
+ }
+ else if (pixel.vore === 8) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#B92A40"
+ }
+ else {
+ pixel.color = "#C22A20"
+ }
+ }
+ else if (pixel.vore > 8) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#BE203D"
+ }
+ else {
+ pixel.color = "#C51C15"
+ }
+ }
+ else if (pixel.vore === -1) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#8B7C4F"
+ }
+ else {
+ pixel.color = "#9D9A6B"
+ }
+ }
+ else if (pixel.vore === -2) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#7D8447"
+ }
+ else {
+ pixel.color = "#939A61"
+ }
+ }
+ else if (pixel.vore === -3) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#6F8C3F"
+ }
+ else {
+ pixel.color = "#889A56"
+ }
+ }
+ else if (pixel.vore === -4) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#619437"
+ }
+ else {
+ pixel.color = "#7D9A4B"
+ }
+ }
+ else if (pixel.vore === -5) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#539C2F"
+ }
+ else {
+ pixel.color = "#739A40"
+ }
+ }
+ else if (pixel.vore === -6) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#46A428"
+ }
+ else {
+ pixel.color = "#689936"
+ }
+ }
+ else if (pixel.vore === -7) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#38AC20"
+ }
+ else {
+ pixel.color = "#5E992B"
+ }
+ }
+ else if (pixel.vore === -8) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#2AB418"
+ }
+ else {
+ pixel.color = "#539920"
+ }
+ }
+ else if (pixel.vore < -8) {
+ if (Math.random() > 0.5) {
+ pixel.color = "#1CBC10"
+ }
+ else {
+ pixel.color = "#489915"
+ }
+ }
+ }
+ if (pixel.food > 0 && Math.random() > 0.99) {
+ pixel.food -= 1;
+ }
+ else if (pixel.food < 1 && pixel.age > 1000 && Math.random() > 0.99) {
+ pixel.dead = true;
+ }
if (pixel.geneticCode < 11) {
- if (isEmpty(pixel.x, pixel.y+1)) {
- movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1);
- }
- else if (Math.random() > 0.9 && isEmpty(pixel.x-1, pixel.y+1)) {
- movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y+1);
- }
- else if (Math.random() > 0.9 && isEmpty(pixel.x+1, pixel.y+1)) {
- movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y+1);
- }
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -61,7 +219,7 @@ elements.organism = {
pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
}
}
- if (pixel.age > 2000) {
+ if (pixel.age > 10000 || pixel.dead === true) {
if (Math.random() > 0.3) {
changePixel(pixel,"sugar");
}
@@ -136,9 +294,17 @@ elements.organism = {
pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
}
}
- if (pixel.age > 2000) {
+ if (pixel.age > 10000 || pixel.dead === true) {
if (Math.random() > 0.3) {
- changePixel(pixel,"meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
else if (Math.random() > 0.5) {
changePixel(pixel,"sugar");
@@ -147,32 +313,29 @@ elements.organism = {
pixel.age += 1
}
else if (pixel.geneticCode > 20 && pixel.geneticCode < 31) {
- if (isEmpty(pixel.x, pixel.y+1)) {
- movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1);
- }
- else if (Math.random() > 0.99 && isEmpty(pixel.x-1, pixel.y)) {
+ if (Math.random() > 0.95 && isEmpty(pixel.x-1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
}
- else if (Math.random() > 0.99 && isEmpty(pixel.x+1, pixel.y)) {
+ else if (Math.random() > 0.95 && isEmpty(pixel.x+1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
}
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") {
- deletePixel(pixel.x, pixel.y-1);
- pixel.food += 1
- }
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sugar") {
- deletePixel(pixel.x, pixel.y+1);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sugar") {
- deletePixel(pixel.x+1, pixel.y);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sugar") {
- deletePixel(pixel.x-1, pixel.y);
- pixel.food += 1
- }
- if (pixel.vore === 0) {
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -206,7 +369,7 @@ elements.organism = {
pixel.food += 1
}
}
- else if (pixel.vore > 0) {
+ else if (pixel.vore > 2) {
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -224,7 +387,7 @@ elements.organism = {
pixel.food += 1
}
}
- else if (pixel.vore < 0) {
+ else if (pixel.vore < -2) {
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -308,9 +471,17 @@ elements.organism = {
pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
}
}
- if (pixel.age > 2000) {
+ if (pixel.age > 10000 || pixel.dead === true) {
if (Math.random() > 0.3) {
- changePixel(pixel,"meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
else if (Math.random() > 0.5) {
changePixel(pixel,"sugar");
@@ -319,16 +490,29 @@ elements.organism = {
pixel.age += 1
}
else if (pixel.geneticCode > 30 && pixel.geneticCode < 41) {
- if (isEmpty(pixel.x, pixel.y+1)) {
- movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1);
- }
- else if (Math.random() > 0.99 && isEmpty(pixel.x-1, pixel.y)) {
+ if (Math.random() > 0.9 && isEmpty(pixel.x-1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
}
- else if (Math.random() > 0.99 && isEmpty(pixel.x+1, pixel.y)) {
+ else if (Math.random() > 0.9 && isEmpty(pixel.x+1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
}
- if (pixel.vore === 0) {
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -362,7 +546,7 @@ elements.organism = {
pixel.food += 1
}
}
- else if (pixel.vore > 0) {
+ else if (pixel.vore > 2) {
/* by nekonico, do not steal!!!!!! >:3*/ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -380,7 +564,7 @@ elements.organism = {
pixel.food += 1
}
}
- else if (pixel.vore < 0) {
+ else if (pixel.vore < -2) {
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -464,27 +648,56 @@ elements.organism = {
pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
}
}
- if (pixel.age > 2000) {
+ if (pixel.age > 10000 || pixel.dead === true) {
if (Math.random() > 0.3) {
- changePixel(pixel,"rotten_meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
else if (Math.random() > 0.5) {
- changePixel(pixel,"meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
}
pixel.age += 1
}
else if (pixel.geneticCode > 40 && pixel.geneticCode < 51) {
- if (isEmpty(pixel.x, pixel.y+1)) {
- movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1);
- }
- else if (Math.random() > 0.99 && isEmpty(pixel.x-1, pixel.y)) {
+ if (Math.random() > 0.9 && isEmpty(pixel.x-1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
}
- else if (Math.random() > 0.99 && isEmpty(pixel.x+1, pixel.y)) {
+ else if (Math.random() > 0.9 && isEmpty(pixel.x+1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
}
- if (pixel.vore === 0) {
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -533,24 +746,24 @@ elements.organism = {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
deletePixel(pixel.x, pixel.y+1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
deletePixel(pixel.x+1, pixel.y);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
}
- else if (pixel.vore > 0) {
+ else if (pixel.vore > 2) {
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -584,7 +797,7 @@ elements.organism = {
pixel.food += 1
}
}
- else if (pixel.vore < 0) {
+ else if (pixel.vore < -2) {
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -601,35 +814,19 @@ elements.organism = {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
deletePixel(pixel.x, pixel.y+1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
deletePixel(pixel.x+1, pixel.y);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
- deletePixel(pixel.x-1, pixel.y);
- pixel.food += 1
- }
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
- deletePixel(pixel.x, pixel.y-1);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
- deletePixel(pixel.x, pixel.y+1);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
- deletePixel(pixel.x+1, pixel.y);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
@@ -700,27 +897,56 @@ elements.organism = {
pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
}
}
- if (pixel.age > 2000) {
+ if (pixel.age > 10000 || pixel.dead === true) {
if (Math.random() > 0.3) {
- changePixel(pixel,"rotten_meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
else if (Math.random() > 0.5) {
- changePixel(pixel,"meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
}
pixel.age += 1
}
- else if (pixel.geneticCode > 50) {
- if (isEmpty(pixel.x, pixel.y+1)) {
- /* by nekonico, do not steal!!!!!! >:3*/ movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1);
- }
- else if (Math.random() > 0.99 && isEmpty(pixel.x-1, pixel.y)) {
+ else if (pixel.geneticCode > 50 && pixel.geneticCode < 61) {
+ if (Math.random() > 0.8 && isEmpty(pixel.x-1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
}
- else if (Math.random() > 0.99 && isEmpty(pixel.x+1, pixel.y)) {
+ else if (Math.random() > 0.8 && isEmpty(pixel.x+1, pixel.y)) {
movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
}
- if (pixel.vore === 0) {
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -769,24 +995,24 @@ elements.organism = {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
deletePixel(pixel.x, pixel.y+1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
deletePixel(pixel.x+1, pixel.y);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
}
- else if (pixel.vore > 0) {
+ else if (pixel.vore > 2) {
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -852,7 +1078,7 @@ elements.organism = {
pixel.food += 1
}
}
- else if (pixel.vore < 0) {
+ else if (pixel.vore < -2) {
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -885,6 +1111,22 @@ elements.organism = {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
@@ -901,51 +1143,35 @@ elements.organism = {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "vine") {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "vine") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
deletePixel(pixel.x, pixel.y+1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "vine") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
deletePixel(pixel.x+1, pixel.y);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "vine") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "vine") {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "tree_branch") {
deletePixel(pixel.x, pixel.y-1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "vine") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "tree_branch") {
deletePixel(pixel.x, pixel.y+1);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "vine") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "tree_branch") {
deletePixel(pixel.x+1, pixel.y);
pixel.food += 1
}
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "vine") {
- deletePixel(pixel.x-1, pixel.y);
- pixel.food += 1
- }
- if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "algae") {
- deletePixel(pixel.x, pixel.y-1);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "algae") {
- deletePixel(pixel.x, pixel.y+1);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "algae") {
- deletePixel(pixel.x+1, pixel.y);
- pixel.food += 1
- }
- else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "algae") {
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "tree_branch") {
deletePixel(pixel.x-1, pixel.y);
pixel.food += 1
}
@@ -1016,24 +1242,2754 @@ elements.organism = {
pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
}
}
- if (pixel.age > 2000) {
+ if (pixel.age > 10000 || pixel.dead === true) {
if (Math.random() > 0.3) {
- changePixel(pixel,"rotten_meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
else if (Math.random() > 0.5) {
- changePixel(pixel,"meat");
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ }
+ pixel.age += 1
+ }
+ else if (pixel.geneticCode > 60 && pixel.geneticCode < 71) {
+ if (Math.random() > 0.8 && isEmpty(pixel.x-1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.8 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sugar") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sugar") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore > 2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fly") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fly") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fly") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fly") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "ant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "ant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "ant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "ant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "egg") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "egg") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "egg") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "egg") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore < -2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "wood") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "wood") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "wood") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "wood") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ if (isEmpty(pixel.x, pixel.y-1) && pixel.food > 10) {
+ createPixel("organism", pixel.x, pixel.y-1);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x+1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x+1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x-1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x-1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
+ }
+ }
+ if (pixel.age > 10000 || pixel.dead === true) {
+ if (Math.random() > 0.3) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ else if (Math.random() > 0.5) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ }
+ pixel.age += 1
+ }
+ else if (pixel.geneticCode > 70 && pixel.geneticCode < 81) {
+ if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.75 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && elements[pixelMap[pixel.x][pixel.y-1].element].isFood) {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && elements[pixelMap[pixel.x][pixel.y+1].element].isFood) {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && elements[pixelMap[pixel.x+1][pixel.y].element].isFood) {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && elements[pixelMap[pixel.x-1][pixel.y].element].isFood) {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore > 2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fly") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fly") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fly") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fly") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "ant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "ant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "ant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "ant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "egg") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "egg") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "egg") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "egg") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bird") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bird") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bird") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bird") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fish") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fish") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fish") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fish") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore < -2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "wood") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "wood") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "wood") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "wood") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "vine") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "vine") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "vine") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "vine") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ if (isEmpty(pixel.x, pixel.y-1) && pixel.food > 10) {
+ createPixel("organism", pixel.x, pixel.y-1);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.95) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.05) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x+1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x+1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.95) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.05) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x-1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x-1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.95) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.05) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
+ }
+ }
+ if (pixel.age > 10000 || pixel.dead === true) {
+ if (Math.random() > 0.3) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ else if (Math.random() > 0.5) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
}
}
pixel.age += 1
}
+ else if (pixel.geneticCode > 80 && pixel.geneticCode < 91) {
+ if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.75 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && elements[pixelMap[pixel.x][pixel.y-1].element].isFood) {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && elements[pixelMap[pixel.x][pixel.y+1].element].isFood) {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && elements[pixelMap[pixel.x+1][pixel.y].element].isFood) {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && elements[pixelMap[pixel.x-1][pixel.y].element].isFood) {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore > 2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fly") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fly") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fly") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fly") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "ant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "ant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "ant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "ant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "egg") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "egg") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "egg") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "egg") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bird") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bird") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bird") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bird") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fish") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fish") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fish") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fish") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "head") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "head") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "head") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "head") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "body") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "body") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "body") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "body") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore < -2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "wood") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "wood") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "wood") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "wood") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "vine") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "vine") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "vine") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "vine") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "petal") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "petal") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "petal") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "petal") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "pistil") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "pistil") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "pistil") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "pistil") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ if (isEmpty(pixel.x, pixel.y-1) && pixel.food > 10) {
+ createPixel("organism", pixel.x, pixel.y-1);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.95) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.05) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x+1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x+1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.95) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.05) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x-1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x-1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.95) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.05) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
+ }
+ }
+ if (pixel.age > 10000 || pixel.dead === true) {
+ if (Math.random() > 0.3) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ else if (Math.random() > 0.5) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ }
+ pixel.age += 1
+ }
+ else if (pixel.geneticCode > 90 && pixel.geneticCode < 101) {
+ if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.75 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && elements[pixelMap[pixel.x][pixel.y-1].element].isFood) {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && elements[pixelMap[pixel.x][pixel.y+1].element].isFood) {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && elements[pixelMap[pixel.x+1][pixel.y].element].isFood) {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && elements[pixelMap[pixel.x-1][pixel.y].element].isFood) {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore > 2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fly") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fly") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fly") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fly") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "ant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "ant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "ant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "ant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "egg") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "egg") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "egg") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "egg") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bird") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bird") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bird") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bird") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fish") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fish") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fish") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fish") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "head") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "head") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "head") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "head") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "body") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "body") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "body") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "body") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bone") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bone") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bone") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bone") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "blood") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "blood") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "blood") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "blood") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore < -2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "wood") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "wood") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "wood") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "wood") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "vine") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "vine") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "vine") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "vine") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "petal") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "petal") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "petal") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "petal") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "pistil") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "pistil") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "pistil") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "pistil") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sapling") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sapling") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sapling") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sapling") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "pinecone") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "pinecone") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "pinecone") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "pinecone") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ if (isEmpty(pixel.x, pixel.y-1) && pixel.food > 10) {
+ createPixel("organism", pixel.x, pixel.y-1);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.995) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.005) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x+1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x+1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.995) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.005) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x-1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x-1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.995) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.005) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
+ }
+ }
+ if (pixel.age > 10000 || pixel.dead === true) {
+ if (Math.random() > 0.3) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ else if (Math.random() > 0.5) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ }
+ pixel.age += 1
+ }
+ else if (pixel.geneticCode > 100) {
+ if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.75 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore > -3 && pixel.vore < 3) {
+ changePixel(pixel,"human");
+ }
+ else if (pixel.vore > 2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rotten_meat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rotten_meat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fly") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fly") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fly") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fly") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "ant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "ant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "ant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "ant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "egg") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "egg") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "egg") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "egg") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "rat") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "rat") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "rat") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "rat") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bird") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bird") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bird") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bird") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "fish") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "fish") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "fish") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "fish") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "head") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "head") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "head") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "head") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "body") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "body") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "body") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "body") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bone") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bone") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bone") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bone") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "blood") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "blood") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "blood") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "blood") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ else if (pixel.vore < -2) {
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "grass") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "grass") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "grass") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "grass") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "dead_plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "dead_plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "plant") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "plant") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "plant") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "plant") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "tree_branch") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "tree_branch") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "wood") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "wood") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "wood") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "wood") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "bamboo") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "bamboo") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "vine") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "vine") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "vine") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "vine") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "cactus") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "cactus") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "petal") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "petal") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "petal") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "petal") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "pistil") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "pistil") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "pistil") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "pistil") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sapling") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "sapling") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "sapling") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "sapling") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "pinecone") {
+ deletePixel(pixel.x, pixel.y-1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "pinecone") {
+ deletePixel(pixel.x, pixel.y+1);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x+1, pixel.y, true) && pixelMap[pixel.x+1][pixel.y].element == "pinecone") {
+ deletePixel(pixel.x+1, pixel.y);
+ pixel.food += 1
+ }
+ else if (Math.random() < 0.1 && !isEmpty(pixel.x-1, pixel.y, true) && pixelMap[pixel.x-1][pixel.y].element == "pinecone") {
+ deletePixel(pixel.x-1, pixel.y);
+ pixel.food += 1
+ }
+ }
+ if (isEmpty(pixel.x, pixel.y-1) && pixel.food > 10) {
+ createPixel("organism", pixel.x, pixel.y-1);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.995) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.005) {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x+1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x+1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.995) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.005) {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].vore = pixel.vore;
+ }
+ }
+ else if (isEmpty(pixel.x-1, pixel.y) && pixel.food > 10) {
+ createPixel("organism", pixel.x-1, pixel.y);
+ pixel.food -= 5;
+ if (Math.random() > 0.8) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode += 1;
+ }
+ if (Math.random() < 0.2) {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ if (Math.random() > 0.995) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore += 1;
+ }
+ if (Math.random() < 0.005) {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore -= 1;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].vore = pixel.vore;
+ }
+ }
+ if (pixel.age > 10000 || pixel.dead === true) {
+ if (Math.random() > 0.3) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ else if (Math.random() > 0.5) {
+ if (pixel.vore > 0) {
+ changePixel(pixel,"meat");
+ }
+ else if (pixel.vore < 0) {
+ changePixel(pixel,"grass");
+ }
+ else if (pixel.vore === 0) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ }
+ pixel.age += 1
+ }
+ pixel.oldvore = pixel.vore
},
+ reactions: {
+ "cancer": { elem1:"cancer", chance:0.005 },
+ "radiation": { elem1:["ash","grass","meat","cooked_meat","dead_plant","dna","sugar"], chance:0.4, func:function(pixel) {
+ if (pixel1.vore > 2) {
+ changePixel(pixel,"cooked_meat");
+ }
+ else if (pixel1.vore < -2) {
+ changePixel(pixel,"dead_plant");
+ }
+ else if (pixel1.vore > -3 && pixel1.vore < 3) {
+ changePixel(pixel,"ash");
+ }
+ }},
+ },
+ burn: 10,
+ burnTime: 250,
+ burnInto: ["cooked_meat","dead_plant","dna","sugar"],
tempHigh: 150,
- stateHigh: "cooked_meat",
+ stateHigh: ["cooked_meat","dead_plant","dna","sugar"],
tempLow: -50,
- stateLow: "frozen_meat",
+ stateLow: ["frozen_meat","frozen_plant","dna","sugar"],
+ breakInto: ["rotten_meat","dead_plant","dna","sugar"],
category: "organism",
state: "solid",
density: 1050
- }
+}
+
+elements.food_pill = {
+ behavior: behaviors.POWDER,
+ reactions: {
+ "organism": { elem1: null, chance:0.1, func:function(pixel1,pixel2) {
+ if (pixel2.vore > 2) {
+ pixel2.food += 2
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore < -2) {
+ pixel2.food += 2
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore > -3 && pixel2.vore < 3) {
+ pixel2.food += 5
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ }},
+ },
+ category: "organism",
+ state: "solid",
+ color: ["#2b1107","#5c3322","#2b1107","#5c3322","#2b1107","#5c3322"],
+ tempHigh: 250,
+ stateHigh: ["sugar","cooked_meat","smoke","smoke","smoke","dead_plant","smoke","smoke","smoke","stench"],
+ burn: 10,
+ burnTime: 200,
+ burnInto: ["sugar","cooked_meat","smoke","smoke","smoke","dead_plant","smoke","smoke","smoke","stench"],
+ breakInto: ["sugar","cooked_meat","dead_plant","dust","dust","dust","dust","dust","dust","dust","dust","dust","dust","dust","dust","dust"],
+ breakIntoColor: ["#2b1107","#5c3322","#5c3322","#5c3322","#5c3322","#5c3322","#5c3322","#5c3322","#41770B","#774C35"],
+ isFood: true
+}
+
+elements.pacifism_pill = {
+ behavior: behaviors.POWDER,
+ reactions: {
+ "organism": { elem1: null, chance:0.1, func:function(pixel1,pixel2) {
+ if (pixel2.vore > 0) {
+ pixel2.vore -= 1
+ if (Math.random() > 0.9) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore < 0) {
+ pixel2.vore -= 1
+ pixel2.food += 1
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore === 0) {
+ pixel2.vore -= 1
+ if (Math.random() > 0.9) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ }},
+ },
+ category: "organism",
+ state: "solid",
+ color: ["#58AA38","#58AA38","#3D6D4B","#316232","#6CA65A","#58AA38","#3D6D4B","#316232","#58AA38","#58AA38","#3D6D4B","#316232"],
+ tempHigh: 250,
+ stateHigh: ["molten_plastic","dead_plant","smoke","smoke","smoke","dead_plant","smoke","smoke","smoke","stench","stench"],
+ burn: 10,
+ burnTime: 200,
+ burnInto: ["molten_plastic","dead_plant","smoke","smoke","smoke","dead_plant","smoke","smoke","smoke","stench","stench"],
+ breakInto: ["dead_plant","dust","dust","dust","dust","dust","dust"],
+ breakIntoColor: ["#6CA65A","#58AA38","#6CA65A","#6CA65A"],
+ isFood: true
+}
+
+elements.neutrality_pill = {
+ behavior: behaviors.POWDER,
+ reactions: {
+ "organism": { elem1: null, chance:0.1, func:function(pixel1,pixel2) {
+ if (pixel2.vore > 0) {
+ pixel2.vore -= 1
+ if (Math.random() > 0.9) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore < 0) {
+ pixel2.vore += 1
+ if (Math.random() > 0.9) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore === 0) {
+ pixel2.food += 1
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ }},
+ },
+ category: "organism",
+ state: "solid",
+ color: ["#c5dede","#c5dede","#464196","#2E2B64","#a4b3b3","#c5dede","#464196","#2E2B64","#c5dede","#c5dede","#464196","#2E2B64"],
+ tempHigh: 250,
+ stateHigh: ["molten_plastic","sugar","smoke","smoke","smoke","sugar","smoke","smoke","smoke","stench","stench"],
+ burn: 10,
+ burnTime: 200,
+ burnInto: ["molten_plastic","sugar","smoke","smoke","smoke","sugar","smoke","smoke","smoke","stench","stench"],
+ breakInto: ["sugar","dust","dust","dust","dust","dust","dust"],
+ breakIntoColor: ["#a4b3b3","#c5dede","#a4b3b3","#a4b3b3"],
+ isFood: true
+}
+
+elements.aggression_pill = {
+ behavior: behaviors.POWDER,
+ reactions: {
+ "organism": { elem1: null, chance:0.1, func:function(pixel1,pixel2) {
+ if (pixel2.vore > 0) {
+ pixel2.vore += 1
+ pixel2.food += 1
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore < 0) {
+ pixel2.vore += 1
+ if (Math.random() > 0.9) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.vore === 0) {
+ pixel2.vore += 1
+ if (Math.random() > 0.9) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.9) {
+ pixel2.geneticCode += 1
+ };
+ }
+ }},
+ },
+ category: "organism",
+ state: "solid",
+ color: ["#B13E3E","#B13E3E","#8E122A","#870C1C","#A83232","#B13E3E","#8E122A","#870C1C","#B13E3E","#B13E3E","#8E122A","#870C1C"],
+ tempHigh: 250,
+ stateHigh: ["molten_plastic","cooked_meat","smoke","smoke","smoke","cooked_meat","smoke","smoke","smoke","stench","stench"],
+ burn: 10,
+ burnTime: 200,
+ burnInto: ["molten_plastic","cooked_meat","smoke","smoke","smoke","cooked_meat","smoke","smoke","smoke","stench","stench"],
+ breakInto: ["cooked_meat","dust","dust","dust","dust","dust","dust"],
+ breakIntoColor: ["#A83232","#B13E3E","#A83232","#A83232"],
+ isFood: true
+}
+
+elements.growth_pill = {
+ behavior: behaviors.POWDER,
+ reactions: {
+ "organism": { elem1: null, chance:0.1, func:function(pixel1,pixel2) {
+ if (pixel2.vore > 0) {
+ if (Math.random() > 0.9) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.99) {
+ pixel2.vore += 1
+ };
+ pixel2.geneticCode += 1
+ }
+ else if (pixel2.vore < 0) {
+ if (Math.random() > 0.8) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.99) {
+ pixel2.vore -= 1
+ };
+ pixel2.geneticCode += 1
+ }
+ else if (pixel2.vore === 0) {
+ if (Math.random() > 0.75) {
+ pixel2.food += 1
+ };
+ pixel2.geneticCode += 1
+ }
+ }},
+ },
+ category: "organism",
+ state: "solid",
+ color: ["#ECF4B0","#ECF4B0","#D1D099","#CBCA8C","#D2D9A6","#ECF4B0","#D1D099","#CBCA8C","#ECF4B0","#ECF4B0","#D1D099","#CBCA8C"],
+ tempHigh: 250,
+ stateHigh: ["molten_plastic","sugar","smoke","smoke","smoke","herb","smoke","smoke","smoke","stench"],
+ burn: 10,
+ burnTime: 200,
+ burnInto: ["molten_plastic","sugar","smoke","smoke","smoke","herb","smoke","smoke","smoke","stench"],
+ breakInto: ["sugar","dust","dust","dust","dust","dust","dust","herb","dust","dust","dust","dust","dust","dust"],
+ breakIntoColor: ["#D2D9A6","#ECF4B0","#D2D9A6","#D2D9A6"],
+ isFood: true
+}
+
+elements.antiaging_pill = {
+ name: "anti-aging_pill",
+ behavior: behaviors.POWDER,
+ reactions: {
+ "organism": { elem1: null, chance:0.1, func:function(pixel1,pixel2) {
+ if (pixel2.age > 99) {
+ pixel2.age -= 100;
+ if (Math.random() > 0.999) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.995) {
+ pixel2.geneticCode += 1
+ };
+ }
+ else if (pixel2.age < 100) {
+ pixel2.age = 100;
+ if (Math.random() > 0.999) {
+ pixel2.food += 1
+ };
+ if (Math.random() > 0.995) {
+ pixel2.geneticCode += 1
+ };
+ }
+ }},
+ },
+ category: "organism",
+ state: "solid",
+ color: ["#B8C5C5","#B8C5C5","#9291A6","#8C8B99","#A8AFAF","#B8C5C5","#9291A6","#8C8B99","#B8C5C5","#B8C5C5","#9291A6","#8C8B99"],
+ tempHigh: 250,
+ stateHigh: ["molten_plastic","magnesium","smoke","smoke","smoke","sugar","smoke","smoke","smoke","stench","stench","stench"],
+ burn: 10,
+ burnTime: 200,
+ burnInto: ["molten_plastic","magnesium","smoke","smoke","smoke","sugar","smoke","smoke","smoke","stench","stench","stench"],
+ breakInto: ["magnesium","dust","dust","dust","dust","dust","dust","sugar","dust","dust","dust","dust","dust","dust"],
+ breakIntoColor: ["#A8AFAF","#B8C5C5","#A8AFAF","#A8AFAF"],
+ isFood: true
+}
/* by nekonico, do not steal!!!!!! >:3*/
diff --git a/mods/true_flashbang.js b/mods/true_flashbang.js
new file mode 100644
index 00000000..d30dff31
--- /dev/null
+++ b/mods/true_flashbang.js
@@ -0,0 +1,61 @@
+// by nekonico
+
+elements.true_flashbang = {
+ color: "#65665c",
+ onSelect: function() {
+ logMessage("Caution: If you have epilepsy or any similar vision issues, do not place this element for your own safety.");
+ },
+ behavior: [
+ "XX|EX:20>flashbang_flash%1|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:20>flashbang_flash%1|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ tempHigh: 1455.5,
+ stateHigh: "molten_steel",
+ excludeRandom: true,
+ cooldown: defaultCooldown
+}
+
+elements.flashbang_flash = {
+ color: "#ffffff",
+ properties: {
+ delay: 100
+ },
+ tick: function(pixel) {
+ settings.bg = pixel.color;
+ let hex = Math.round(255 * pixel.alpha).toString(16);
+ pixel.color = `#${hex}${hex}${hex}` // credits to therazzler in the R74n discord for this code :3
+ var done = true;
+ if (pixel.delay) {
+ var delayR = pixel.delay % 1;
+ var delay = pixel.delay - delayR;
+ if (!(pixelTicks - pixel.start > (pixel.delay||1) && Math.random() < 1-delayR)) {
+ done = false;
+ }
+ }
+ if ((Math.random() < 0.75 && done) || pixel.alpha < 0.05) {
+ deletePixel(pixel.x, pixel.y)
+ settings.bg = "#000000";
+ }
+ if (pixel.delay) {
+ pixel.alpha = Math.max(0,1-(pixelTicks - pixel.start)/pixel.delay)
+ }
+ doHeat(pixel);
+
+ },
+ category: "energy",
+ temp: 40,
+ tempLow: -270,
+ stateLow: ["liquid_light",null],
+ state: "gas",
+ category: "energy",
+ density: 0.00001,
+ ignoreAir: true,
+ insulate: true,
+ hidden: true,
+ noMix: true,
+ excludeRandom: true
+}
\ No newline at end of file