diff --git a/mod-list.html b/mod-list.html
index 34ffb190..94d9da34 100644
--- a/mod-list.html
+++ b/mod-list.html
@@ -284,6 +284,7 @@
| fey_and_more.js | Adds fairies, magic, and a lot of other things | Melecie |
| flowers_and_forests.js | adds trees and flowers and things to do with nature | pixelegend4 and SquareScreamYT |
| fwibblen.js | Adds a flying creature that turns nickel into itself, and a second creature that does the same to the first one | Alice |
+| genetics.js | Adds an organism that evolves and changes as it creates more of itself by eating, and adapts to environment. | Nekonico |
| human_edit.js | Improvements to humans | Alice |
| Humanitize.js | Makes humans cultured and able to craft, mine, build houses, trade, and much more. | Nekonico |
| kopalstuff.js | Adds creatures, spirits, DNA, foods, and more | DaviStudios |
diff --git a/mods/genetics.js b/mods/genetics.js
new file mode 100644
index 00000000..a6d633cd
--- /dev/null
+++ b/mods/genetics.js
@@ -0,0 +1,1039 @@
+/* by nekonico, do not steal!!!!!! >:3*/
+
+elements.organism = {
+ color: ["#997457","#c4b270","#9c916a","#9e8955","#a89a76"],
+ properties: {
+ geneticCode: 0,
+ vore: 0,
+ food: 0,
+ age: 0
+ },
+ tick: function(pixel) {
+ 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
+ }
+ 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 (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;
+ }
+ else {
+ pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode;
+ }
+ }
+ 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;
+ }
+ else {
+ pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ }
+ 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;
+ }
+ else {
+ pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode;
+ }
+ }
+ if (pixel.age > 2000) {
+ if (Math.random() > 0.3) {
+ changePixel(pixel,"sugar");
+ }
+ else if (Math.random() > 0.5) {
+ changePixel(pixel,"dna");
+ }
+ }
+ pixel.age += 1
+ }
+ else if (pixel.geneticCode > 10 && pixel.geneticCode < 21) {
+ 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)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.99 && 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 (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;
+ }
+ }
+ 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;
+ }
+ }
+ 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 (pixel.age > 2000) {
+ if (Math.random() > 0.3) {
+ changePixel(pixel,"meat");
+ }
+ else if (Math.random() > 0.5) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ 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)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.99 && 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 (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 == "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
+ }
+ }
+ else if (pixel.vore > 0) {
+ 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
+ }
+ }
+ else if (pixel.vore < 0) {
+ 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 (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 > 2000) {
+ if (Math.random() > 0.3) {
+ changePixel(pixel,"meat");
+ }
+ else if (Math.random() > 0.5) {
+ changePixel(pixel,"sugar");
+ }
+ }
+ 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)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.99 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore === 0) {
+ 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 == "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
+ }
+ }
+ else if (pixel.vore > 0) {
+ /* 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
+ }
+ 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
+ }
+ }
+ else if (pixel.vore < 0) {
+ 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 (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 > 2000) {
+ if (Math.random() > 0.3) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (Math.random() > 0.5) {
+ changePixel(pixel,"meat");
+ }
+ }
+ 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)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.99 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore === 0) {
+ 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 == "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
+ }
+ }
+ else if (pixel.vore > 0) {
+ 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
+ }
+ }
+ else if (pixel.vore < 0) {
+ 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 == "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 (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 > 2000) {
+ if (Math.random() > 0.3) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (Math.random() > 0.5) {
+ changePixel(pixel,"meat");
+ }
+ }
+ 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)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x-1, pixel.y);
+ }
+ else if (Math.random() > 0.99 && isEmpty(pixel.x+1, pixel.y)) {
+ movePixel(pixelMap[pixel.x][pixel.y], pixel.x+1, pixel.y);
+ }
+ if (pixel.vore === 0) {
+ 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 == "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
+ }
+ }
+ else if (pixel.vore > 0) {
+ 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
+ }
+ }
+ else if (pixel.vore < 0) {
+ 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 == "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 == "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 == "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 == "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") {
+ 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 > 2000) {
+ if (Math.random() > 0.3) {
+ changePixel(pixel,"rotten_meat");
+ }
+ else if (Math.random() > 0.5) {
+ changePixel(pixel,"meat");
+ }
+ }
+ pixel.age += 1
+ }
+ },
+ tempHigh: 150,
+ stateHigh: "cooked_meat",
+ tempLow: -50,
+ stateLow: "frozen_meat",
+ category: "organism",
+ state: "solid",
+ density: 1050
+ }
+
+/* by nekonico, do not steal!!!!!! >:3*/