From 7a4b21ac09190180622ea9e7b518b3deb10af787 Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:30:21 -0700 Subject: [PATCH] Update genetics.js --- mods/genetics.js | 71 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/mods/genetics.js b/mods/genetics.js index 04920fb2..4cc9534b 100644 --- a/mods/genetics.js +++ b/mods/genetics.js @@ -1,14 +1,79 @@ elements.organism = {} color: ["#a19348","#b5a85e"], properties: { - "geneticCode": "00000" + geneticCode: "00000", + food: 0 }, tick: function(pixel) { if ((pixel.geneticCode & 0b101) = 0) { - + if (tryMove(pixel, pixel.x, pixel.y+1)) { + if ((pixel.geneticCode & 0b10) = 1 && Math.random() < 0.1) { + if (!isEmpty(pixel.x,pixel.y+1),true && pixelMap[pixel.x][pixel.y+1].isFood) { + deletePixel(pixel.x, pixel.y+1); + pixel.food += 1 + } + } + } + if ((pixel.geneticCode & 0b10) = 1 && Math.random() < 0.1) { + if (!isEmpty(pixel.x+1,pixel.y),true && pixelMap[pixel.x+1][pixel.y].isFood) { + deletePixel(pixel.x+1, pixel.y); + pixel.food += 1 + } + else if (!isEmpty(pixel.x-1,pixel.y),true && pixelMap[pixel.x-1][pixel.y].isFood) { + deletePixel(pixel.x-1, pixel.y); + pixel.food += 1 + } + } + if (pixel.food === 5 && isEmpty(pixel.x,pixel.y-1)) { + createPixel("organism", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; + pixel.food -= 5; + } + else if (pixel.food === 5 && isEmpty(pixel.x+1,pixel.y)) { + createPixel("organism", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; + pixel.food -= 5; + } + else if (pixel.food === 5 && isEmpty(pixel.x-1,pixel.y)) { + createPixel("organism", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; + pixel.food -= 5; + } } else if ((pixel.geneticCode & 0b101) = 1) { - + if (tryMove(pixel, pixel.x, pixel.y+1)) { + if ((pixel.geneticCode & 0b10) = 1 && Math.random() < 0.1) { + if (!isEmpty(pixel.x,pixel.y+1),true && pixelMap[pixel.x][pixel.y+1].isFood) { + deletePixel(pixel.x, pixel.y+1); + pixel.food += 1 + } + } + } + if ((pixel.geneticCode & 0b10) = 1 && Math.random() < 0.1) { + if (!isEmpty(pixel.x+1,pixel.y),true && pixelMap[pixel.x+1][pixel.y].isFood) { + deletePixel(pixel.x+1, pixel.y); + pixel.food += 1 + } + else if (!isEmpty(pixel.x-1,pixel.y),true && pixelMap[pixel.x-1][pixel.y].isFood) { + deletePixel(pixel.x-1, pixel.y); + pixel.food += 1 + } + } + if (pixel.food === 5 && isEmpty(pixel.x,pixel.y-1)) { + createPixel("organism", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; + pixel.food -= 5; + } + else if (pixel.food === 5 && isEmpty(pixel.x+1,pixel.y)) { + createPixel("organism", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; + pixel.food -= 5; + } + else if (pixel.food === 5 && isEmpty(pixel.x-1,pixel.y)) { + createPixel("organism", pixel.x, pixel.y-1); + pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; + pixel.food -= 5; + } } }, tempHigh: 150,