From fa4c8bf814cb6640590788900ae5011023ec71ce Mon Sep 17 00:00:00 2001 From: jakob3797 <167775393+jakob3797@users.noreply.github.com> Date: Thu, 3 Oct 2024 14:46:52 -0500 Subject: [PATCH 01/12] Update Quicksand_one.js Full update --- mods/Quicksand_one.js | 373 +++++++++++++++++++++++++++++++++++------- 1 file changed, 311 insertions(+), 62 deletions(-) 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 +}; From 528a036db044eed2743cb6a92604d306b7bcd74b Mon Sep 17 00:00:00 2001 From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com> Date: Sat, 5 Oct 2024 19:09:59 -0400 Subject: [PATCH 02/12] Update mod-list.html --- mod-list.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mod-list.html b/mod-list.html index 8394f817..a32861f9 100644 --- a/mod-list.html +++ b/mod-list.html @@ -340,6 +340,7 @@ Visual Effects acid_and_shapes.jsWeird visual effects. Enable in SettingsAlice +customBackground.jsSet your own background(using and image link)Jayd heatglow.jsRed glowing effect for hot metalsnousernamefound invisible_dye.jsAdds elements like Dye and Spray Paint that take the color of the backgroundAlice invisible_wall.jsAdds an element like Wall that takes the color of the backgroundAlice @@ -351,6 +352,9 @@ shader_by_jayd.jsAdds a glow around light elementsJayd Shroomboxels.jsA variant of acid_and_shapes.js that uses a different trigonometric functionAlice singleColor.jsMakes all elements pick one color each time they're drawnstefanblox +texture_pack_by_jayd.jsGives sandboxels a cool backgroundJayd +UwUify.jsGives sandboxels an "UwU" backgroundJayd + Compilations a_mod_by_alice.jsA mod combining most of Alice’s mods, and some other thingsAlice From 39daafbf9d68ed57e6a31305ba356d958e4e8efe Mon Sep 17 00:00:00 2001 From: Salmonfishyy <160120816+Salmonfishyy@users.noreply.github.com> Date: Sun, 6 Oct 2024 20:30:47 +0700 Subject: [PATCH 03/12] =?UTF-8?q?1.10.1=20Halloween=20Update=20Translation?= =?UTF-8?q?=20(H=CC=B5=CD=92=CD=8A=CC=9A=CC=87=CD=82=CD=84=CC=84=CD=8C?= =?UTF-8?q?=CC=91=CC=8F=CD=81=CC=9B=CC=9A=CC=9A=CD=97=CC=BE=CD=80=CC=82?= =?UTF-8?q?=CD=81=CC=89=CC=88=CD=84=CC=90=CC=84=CD=91=CD=91=CC=8B=CC=8A?= =?UTF-8?q?=CC=86=CC=88=CD=91=CC=87=CD=8B=CD=9D=CC=9B=CD=9B=CC=8A=CD=82?= =?UTF-8?q?=CC=BE=CD=81=CC=8F=CC=8C=CD=83=CD=9D=CC=86=CC=BF=CD=9D=CD=82?= =?UTF-8?q?=CC=80=CC=95=CD=91=CD=83=CD=A0=CC=85=CC=8E=CC=81=CD=80=CC=82?= =?UTF-8?q?=CD=84=CD=8B=CD=84=CC=81=CC=8A=CC=92=CD=83=CD=84=CC=84=CC=92?= =?UTF-8?q?=CD=8B=CD=83=CD=A0=CC=80=CC=95=CC=BD=CC=8B=CD=9D=CC=82=CC=9A?= =?UTF-8?q?=CD=98=CC=92=CD=98=CD=97=CD=A0=CC=80=CC=83=CD=97=CC=8D=CD=86?= =?UTF-8?q?=CC=85=CC=94=CC=85=CC=BF=CC=95=CD=91=CC=81=CC=89=CC=BD=CC=80?= =?UTF-8?q?=CC=95=CD=84=CC=92=CC=84=CC=BE=CD=9D=CD=98=CC=85=CD=81=CD=8C?= =?UTF-8?q?=CD=98=CD=92=CC=95=CC=90=CD=9B=CD=86=CD=81=CC=9A=CC=8D=CC=8D?= =?UTF-8?q?=CC=8B=CD=98=CD=8C=CC=90=CC=83=CC=BF=CD=9B=CC=8D=CD=97=CC=91?= =?UTF-8?q?=CC=94=CD=97=CD=A0=CC=90=CC=84=CC=88=CC=85=CC=82=CC=8E=CC=8B?= =?UTF-8?q?=CD=80=CC=BD=CC=8D=CC=86=CC=81=CC=8F=CD=86=CD=90=CD=9D=CC=8A?= =?UTF-8?q?=CC=AD=CC=AB=CC=A9=CC=B2=CC=99=CD=99=CC=A9=CC=B3=CC=A2=CC=AE?= =?UTF-8?q?=CD=85=CC=A7=CD=99=CC=B3=CC=AF=CC=B1=CC=9C=CC=BC=CC=A8=CD=85?= =?UTF-8?q?=CC=A5=CC=99=CC=A8=CC=AC=CC=96=CD=8E=CC=A5=CC=98=CD=85=CC=9F?= =?UTF-8?q?=CC=B3=CD=89=CC=A1=CD=9C=CD=8D=CC=97=CC=B2=CC=A8=CD=8D=CC=A6?= =?UTF-8?q?=CC=AD=CC=97=CC=98=CC=A6=CD=99=CC=9D=CC=A2=CC=9E=CC=A8=CC=B1?= =?UTF-8?q?=CC=97=CC=A4=CC=9E=CC=A5=CD=85=CD=8D=CC=9C=CC=A6=CC=98=CC=96?= =?UTF-8?q?=CC=99=CC=98=CC=AD=CC=BB=CC=A5=CC=BC=CD=88e=CC=B8=CC=BE=CC=BD?= =?UTF-8?q?=CC=9A=CD=9D=CC=9A=CC=89=CC=9B=CD=91=CD=8C=CD=98=CD=91=CD=90?= =?UTF-8?q?=CD=8B=CC=BE=CD=A0=CC=94=CD=90=CC=95=CC=90=CD=97=CC=BE=CD=83?= =?UTF-8?q?=CD=8C=CC=90=CC=87=CD=97=CC=BF=CD=9D=CC=85=CD=80=CD=8B=CC=89?= =?UTF-8?q?=CC=80=CD=8C=CC=94=CC=86=CD=82=CC=90=CC=8F=CC=92=CC=9A=CD=84?= =?UTF-8?q?=CD=90=CC=9B=CC=80=CD=84=CD=86=CC=92=CD=8C=CD=9D=CC=90=CD=83?= =?UTF-8?q?=CD=8A=CC=9A=CD=9D=CC=85=CC=92=CC=8E=CD=8C=CC=9A=CD=9D=CC=8C?= =?UTF-8?q?=CC=90=CC=89=CC=84=CD=80=CD=84=CD=98=CC=81=CD=84=CC=9B=CD=97?= =?UTF-8?q?=CD=98=CC=86=CC=91=CD=8C=CC=86=CD=83=CD=9B=CD=86=CC=9B=CD=80?= =?UTF-8?q?=CD=91=CC=87=CC=8C=CD=90=CD=9B=CC=9B=CC=BD=CC=90=CC=80=CC=81?= =?UTF-8?q?=CC=95=CC=8D=CC=BD=CC=84=CC=9A=CC=9A=CC=91=CC=81=CC=92=CC=89?= =?UTF-8?q?=CC=89=CC=81=CC=90=CC=89=CD=84=CC=8F=CC=87=CD=8C=CC=83=CD=9B?= =?UTF-8?q?=CC=81=CD=91=CC=BD=CC=85=CD=81=CD=8A=CD=81=CC=83=CC=9A=CC=95?= =?UTF-8?q?=CC=81=CD=83=CC=8F=CC=87=CD=92=CC=80=CC=9A=CC=8A=CD=90=CD=82?= =?UTF-8?q?=CD=98=CD=83=CD=8C=CC=BF=CC=92=CD=9D=CC=85=CC=83=CC=92=CD=A0?= =?UTF-8?q?=CC=8F=CC=8C=CD=9D=CD=84=CC=87=CD=8B=CC=BD=CD=9B=CC=92=CC=83?= =?UTF-8?q?=CC=93=CC=93=CD=8C=CC=91=CC=82=CC=94=CD=81=CC=83=CC=BD=CC=9A?= =?UTF-8?q?=CC=9E=CC=98=CC=A7=CD=93=CC=A0=CC=A8=CC=A6=CC=AC=CD=95=CC=AF?= =?UTF-8?q?=CC=A0=CD=88=CC=AE=CC=AA=CD=9A=CC=96=CD=9A=CC=AB=CC=AF=CC=98?= =?UTF-8?q?=CD=93=CC=A3=CC=B9=CD=93=CC=AB=CC=9D=CC=B9=CC=9C=CC=BA=CC=99?= =?UTF-8?q?=CD=89=CC=BA=CC=99=CD=99=CD=89=CC=A3=CD=9A=CC=A7=CC=A6=CC=B3?= =?UTF-8?q?=CC=B3=CD=94=CC=A5=CC=B9=CD=99=CC=AC=CC=9C=CD=89=CC=B3=CC=B2?= =?UTF-8?q?=CC=96=CC=B3=CD=88=CC=A7=CC=96=CC=BB=CD=9C=CC=B2=CC=A6=CC=9C?= =?UTF-8?q?=CC=9D=CD=89=CC=A2=CD=88=CD=88=CC=BA=CC=A5=CC=B2=CC=97=CC=A4?= =?UTF-8?q?=CC=B0=CC=B9=CC=97=CD=9C=CD=9C=CD=89=CD=85=CD=96=CC=A6=CC=99?= =?UTF-8?q?=CC=9F=CD=95=CC=9F=CD=93=CC=AF=CC=B2=CC=A6=CD=96=CC=A5=CC=A0?= =?UTF-8?q?=CC=A9=CC=A7=CC=B3=CC=9E=CD=9C=CC=A6=CC=B0=CC=A8=CC=9C=CD=8E?= =?UTF-8?q?=CC=A2=CC=BB=CC=BB=CD=88=CC=9F=CC=A8=CC=BB=CD=9C=CC=9D=CC=AC?= =?UTF-8?q?=CD=8E=CD=87=CD=94=CD=93=CC=A6=CC=BC=CC=BA=CD=8E=CD=8D=CC=A4?= =?UTF-8?q?=CC=A4=CC=96=CC=AC=CD=94=CC=A1=CD=8E=CC=B9=CC=A8=CC=A1=CC=A7?= =?UTF-8?q?=CD=96=CD=85=CD=93=CD=99=CC=A0=CC=A6=CC=A0=CC=BA=CD=9A=CC=A8?= =?UTF-8?q?=CC=AF=CC=BC=CC=99=CC=9C=CC=9D=CC=9F=CC=A9=CC=9C=CC=99=CC=B2?= =?UTF-8?q?=CC=A9=CC=B1=CC=AD=CD=8E=CC=AC=CC=B3l=CC=B6=CC=92=CC=95=CC=83?= =?UTF-8?q?=CC=87=CC=95=CC=83=CC=82=CD=8A=CD=90=CC=89=CD=9D=CD=A0=CC=93?= =?UTF-8?q?=CC=8E=CC=94=CC=8A=CC=90=CD=91=CD=86=CC=88=CC=AD=CD=8E=CD=9C?= =?UTF-8?q?=CD=85=CC=BA=CC=99=CC=A6=CC=9D=CC=A4=CC=A6=CC=B9=CC=A8=CC=B0?= =?UTF-8?q?=CC=B0=CC=A4=CD=89=CC=BA=CC=B0=CD=8E=CC=B3=CC=BB=CC=B2=CD=96?= =?UTF-8?q?=CD=8D=CC=AD=CD=88=CC=B3=CC=97=CC=B2=CC=A6=CC=9C=CC=B0=CD=88?= =?UTF-8?q?=CC=AF=CC=B3=CD=88=CC=9D=CC=BB=CC=AD=CC=9E=CD=93=CD=8D=CC=BA?= =?UTF-8?q?=CC=A8=CC=BA=CC=AB=CC=A9=CC=A2=CD=9A=CC=B3=CC=A4=CC=96=CC=AE?= =?UTF-8?q?=CC=B2=CC=BA=CC=B9=CC=9D=CD=94=CC=BC=CC=B9=CC=9D=CC=9D=CC=99?= =?UTF-8?q?=CC=A5=CC=A6=CC=A4=CC=B2=CC=B1=CC=BB=CD=96=CC=AE=CC=A1=CC=A4?= =?UTF-8?q?=CC=9F=CC=B9=CD=96=CD=94=CD=96=CD=87=CC=AC=CC=AF=CC=B9=CD=99?= =?UTF-8?q?=CC=AF=CC=A2=CC=97=CD=88=CC=97=CC=AC=CD=93=CC=AB=CC=9C=CC=98?= =?UTF-8?q?=CC=AC=CC=A7=CD=9A=CC=BA=CD=88=CD=95=CD=8D=CD=96=CC=A2=CC=98?= =?UTF-8?q?=CC=A1p=CC=B7=CC=9B=CC=BD=CD=82=CC=9A=CC=81=CC=81=CC=BE=CC=9B?= =?UTF-8?q?=CD=8B=CD=8B=CC=8B=CC=91=CC=85=CC=8B=CC=90=CC=85=CC=89=CC=9A?= =?UTF-8?q?=CD=90=CC=8C=CC=9A=CC=82=CC=8A=CC=BF=CD=8C=CC=BD=CC=8A=CD=98?= =?UTF-8?q?=CC=86=CC=9A=CD=84=CD=8C=CC=89=CC=8F=CC=91=CC=88=CD=84=CC=9A?= =?UTF-8?q?=CC=89=CD=84=CC=8B=CC=8B=CD=9D=CC=84=CC=91=CC=80=CD=84=CC=93?= =?UTF-8?q?=CC=91=CC=8F=CD=9D=CD=9D=CD=83=CC=BE=CC=BE=CD=84=CC=81=CC=85?= =?UTF-8?q?=CC=93=CD=8A=CC=84=CC=8F=CC=BD=CC=95=CD=86=CD=81=CC=95=CC=88?= =?UTF-8?q?=CC=BF=CD=98=CC=8D=CC=92=CC=90=CC=89=CD=90=CC=9B=CC=83=CD=8B?= =?UTF-8?q?=CD=9D=CD=9D=CC=8A=CC=82=CC=8D=CC=BE=CC=8C=CD=97=CC=83=CD=9D?= =?UTF-8?q?=CD=97=CC=9B=CD=84=CC=80=CC=9A=CD=84=CD=9B=CD=91=CC=8F=CC=88?= =?UTF-8?q?=CC=95=CC=8D=CC=BF=CC=BD=CD=92=CC=BD=CD=84=CD=A0=CC=81=CD=9B?= =?UTF-8?q?=CD=84=CD=A0=CD=92=CD=80=CD=98=CD=84=CC=8E=CC=BF=CD=80=CD=83?= =?UTF-8?q?=CC=86=CC=80=CC=8E=CC=80=CD=81=CC=BD=CC=83=CD=9D=CC=8F=CC=8F?= =?UTF-8?q?=CC=89=CD=8B=CC=91=CC=BE=CD=92=CC=93=CD=98=CC=95=CC=86=CC=87?= =?UTF-8?q?=CC=93=CC=9A=CC=9B=CC=86=CC=BF=CC=80=CC=8F=CC=86=CD=9D=CD=9D?= =?UTF-8?q?=CC=8E=CC=8A=CD=90=CD=A0=CC=8B=CC=93=CC=92=CC=9B=CC=BE=CC=8E?= =?UTF-8?q?=CD=9D=CC=91=CD=90=CD=97=CC=8B=CD=80=CD=8A=CC=89=CC=8C=CC=83?= =?UTF-8?q?=CD=86=CC=90=CC=90=CD=9D=CD=92=CC=8C=CC=81=CD=83=CC=8B=CC=8E?= =?UTF-8?q?=CC=87=CD=84=CC=8C=CD=8C=CD=81=CC=8B=CD=91=CD=83=CD=83=CC=9A?= =?UTF-8?q?=CD=9D=CD=92=CD=81=CD=82=CC=8B=CC=88=CC=9B=CD=81=CD=98=CD=8C?= =?UTF-8?q?=CD=84=CD=86=CC=85=CD=9D=CD=81=CC=8E=CD=9B=CD=84=CC=80=CC=8C?= =?UTF-8?q?=CC=8A=CD=80=CC=82=CC=84=CD=98=CD=A0=CC=80=CC=84=CC=94=CC=8A?= =?UTF-8?q?=CD=9D=CC=BF=CC=88=CD=8C=CD=91=CD=A0=CC=80=CD=9D=CC=93=CC=8B?= =?UTF-8?q?=CD=9D=CC=95=CD=84=CC=94=CD=97=CD=93=CD=8E=CC=AB=CC=AC=CD=99?= =?UTF-8?q?=CC=9E=CC=B1=CC=AF=CD=8E=CC=A6=CD=8D=CC=AE=CC=98=CC=99=CC=97?= =?UTF-8?q?=CC=A0=CC=A6=CC=B0=CC=9C=CC=AE=CD=96=CC=A5=CD=96=CC=AD=CC=B9?= =?UTF-8?q?=CC=B0=CC=9C=CC=AA=CD=85=CC=A3=CD=99=CC=A4=CC=AE=CD=96=CD=95?= =?UTF-8?q?=CD=8D=CC=AA=CC=A1=CC=AB=CD=99=CD=89=CC=98=CC=AC=CC=A4=CC=BA?= =?UTF-8?q?=CC=BC=CD=96=CD=89=CC=9E=CC=AB=CC=BC=CC=AB=CC=A0=CD=9C=CC=B3?= =?UTF-8?q?=CC=B3=CC=B9=CD=96=CC=A8=CC=9D=CD=8E=CC=A0=CD=8E=CC=A0=CC=A3?= =?UTF-8?q?=CC=B9=CC=A2=CC=AA=CC=A2=CC=A1=CC=AF=CC=B1=CC=99=CC=B2=CC=A6?= =?UTF-8?q?=CC=BA=CC=99=CC=A9=CC=A9=CC=B0=CD=93=CC=9F=CC=97=CD=93=CD=88?= =?UTF-8?q?=CC=A4=CC=A8=CC=AE=CC=B0=CC=A1=CC=A9=CC=97=CC=AA=CD=93=CC=9C?= =?UTF-8?q?=CD=88=CD=87=CC=A6=CC=A0=CD=93=CC=9D=CC=BB=CC=A7=CC=B9=CC=B2?= =?UTF-8?q?=CC=A1=CC=A7=CD=89=CC=A6=CC=9D=CC=B2=CC=B2=CC=BB=CC=A3=CC=AE?= =?UTF-8?q?=CC=AA=CD=85=CC=AC=CC=AD=CC=B9=CC=A2=CC=A5=CC=B9=CC=BB=CD=94?= =?UTF-8?q?=CC=A1=CC=9E=CC=BA=CC=AF=CC=97=CC=B3=CD=99=CC=AE=CC=AE=CC=BB?= =?UTF-8?q?=CC=B2=CD=87=CD=87=CC=A8=CD=94=CC=A5=CC=97=CD=87=CD=9A=CC=9C?= =?UTF-8?q?=CD=95=CC=B0=CD=89=CC=B3=CD=89=CC=BC=CD=94=CC=A5=CC=97=CC=A2?= =?UTF-8?q?=CC=B2=CC=A2=CC=9F=CD=93=CC=B2=CC=AC=CC=A3=CD=8E=CC=BA=CC=B2?= =?UTF-8?q?=CD=8D=CC=B1=CD=96=CC=BA=CC=9F=CC=A5=CC=B1=CD=85=CC=A0=CC=A3?= =?UTF-8?q?=CC=98=CC=A8=CD=99=CD=8D=CC=99=CC=9E=CD=8E=CC=9E=CC=B3=CC=96?= =?UTF-8?q?=CC=B0=CC=A1=CC=96=CC=AA=CC=B2=CC=99=CC=96=CC=A1=CC=A8=CC=A2?= =?UTF-8?q?=CC=B9=CC=B3=CC=96=CC=97=CC=A2=CC=AC=CC=96=CC=9D=CD=95=CC=AE?= =?UTF-8?q?=CC=BA=CC=AD=CD=8D=CC=AC=CC=B2=CC=BA=CD=88=CC=B1=CC=AF=CC=A0?= =?UTF-8?q?=CC=AF=CC=97=CD=88=CD=94=CD=95=CC=B9=CC=97=CD=89=CC=A1=CC=B1?= =?UTF-8?q?=CC=B3=CC=B0=CC=A8=CC=9D=CC=98=CD=89=CD=88=CC=9D=CC=A9=CD=93?= =?UTF-8?q?=CC=A4=CD=8E=CC=BA=CC=A6=CC=96=CC=A5=CC=A9=CC=BA=CC=B9=CC=98=20?= =?UTF-8?q?=CC=B6=CC=8C=CD=82=CD=9B=CD=83=CC=83=CD=80=CD=A0=CD=98=CC=80?= =?UTF-8?q?=CD=9D=CC=80=CD=83=CC=8D=CC=9B=CD=80=CC=94=CC=80=CC=86=CD=92?= =?UTF-8?q?=CD=81=CC=81=CD=8A=CD=8C=CC=82=CC=8A=CD=81=CC=88=CD=97=CC=8D?= =?UTF-8?q?=CC=BE=CD=80=CC=BE=CC=82=CC=8A=CD=92=CC=86=CC=AE=CC=AC=CC=AC?= =?UTF-8?q?=CC=BB=CC=B0=CC=9E=CD=9C=CD=87=CC=AB=CC=AA=CD=9C=CC=A3=CC=9D?= =?UTF-8?q?=CD=9C=CC=9C=CC=A2=CC=BC=CC=BA=CC=BA=CC=A4=CC=AA=CC=B1=CD=99?= =?UTF-8?q?=CD=94=CD=96=CC=99=CD=93=CC=AA=CD=85=CC=9C=CC=AD=CC=A6=CC=AF?= =?UTF-8?q?=CC=AA=CC=AC=CC=A4=CC=A7=CD=9A=CC=BB=CC=9E=CC=9E=CC=9D=CC=98?= =?UTF-8?q?=CD=96=CC=A5=CC=98=CC=B1=CD=85=CC=AB=CD=9A=CC=BC=CC=B1=CC=AE?= =?UTF-8?q?=CC=9C=CC=A7=CD=96=CC=AB=CC=9E=CC=B0=CC=A4=CC=AA=CC=9C=CC=A2?= =?UTF-8?q?=CC=9F=CC=99=CC=AE=CD=89=CC=98=CD=99=CC=AD=CC=A0=CD=85=CD=9C?= =?UTF-8?q?=CD=88=CC=AF=CC=AB=CC=B0=CC=A4=CC=A3=CC=AD=CC=A6=CD=95=CC=A9?= =?UTF-8?q?=CC=B0=CC=9D=CC=A1=CC=B0=CC=A3=CC=96=CD=85=CC=96=CC=99=CD=93?= =?UTF-8?q?=CC=A5=CC=B9=CC=A0=CD=89=CC=9E=CC=BA=CD=9A=CC=B9=CC=AC=CD=87?= =?UTF-8?q?=CC=A5=CC=A1=CC=A4=CC=B2=CC=AA=CD=94=CD=96=CC=B2=CD=99=CD=99?= =?UTF-8?q?=CC=A3=CC=A9=CD=8D=CC=9C=CC=AE=CC=AE=CC=A9=CD=87=CC=9F=CD=89?= =?UTF-8?q?=CC=BA=CD=8EM=CC=B4=CC=93=CD=9D=CD=8A=CC=9B=CC=95=CC=81=CC=8F?= =?UTF-8?q?=CC=87=CC=85=CC=91=CC=BF=CD=84=CC=80=CD=8C=CC=BF=CC=8E=CC=80?= =?UTF-8?q?=CC=BF=CD=83=CD=82=CC=BE=CC=88=CC=BE=CC=88=CC=86=CC=82=CC=83?= =?UTF-8?q?=CC=BE=CD=83=CD=8B=CC=85=CC=83=CD=86=CC=BD=CC=85=CC=87=CC=94?= =?UTF-8?q?=CD=8B=CD=A0=CD=80=CD=91=CD=8C=CD=91=CD=9B=CC=9B=CD=90=CD=9D?= =?UTF-8?q?=CC=9A=CD=8A=CD=80=CC=8D=CC=9B=CC=90=CC=87=CD=92=CC=95=CD=92?= =?UTF-8?q?=CC=85=CD=84=CD=8B=CC=8D=CC=92=CC=91=CC=82=CD=8A=CC=89=CD=9B?= =?UTF-8?q?=CC=BE=CD=98=CD=A0=CD=9D=CC=85=CD=84=CC=8D=CC=88=CD=82=CD=9D?= =?UTF-8?q?=CD=83=CC=82=CC=80=CC=85=CD=84=CD=8B=CD=9D=CC=82=CC=94=CD=8C?= =?UTF-8?q?=CD=80=CC=8A=CC=BE=CC=94=CC=BA=CC=97=CD=89=CC=AC=CD=89=CD=88?= =?UTF-8?q?=CC=A1=CC=A6=CC=BA=CC=A1=CD=89=CC=AB=CD=85=CC=A7=CC=A8=CC=9F?= =?UTF-8?q?=CC=B1=CC=AC=CC=A0=CC=AD=CC=A1=CC=A9=CD=89=CC=96=CD=94=CD=9C?= =?UTF-8?q?=CC=97=CD=88=CD=8E=CD=9A=CD=94=CC=96=CC=A9=CC=A1=CC=AD=CC=AA?= =?UTF-8?q?=CC=BA=CC=BA=CC=BB=CC=A2=CC=B0=CD=8D=CC=A8=CC=9C=CD=95=CC=A2?= =?UTF-8?q?=CC=A6=CC=A3=CD=94=CC=AE=CC=B9=CD=85=CC=B9=CC=B1=CC=A5=CD=88?= =?UTF-8?q?=CC=AC=CC=A0=CC=AA=CD=8E=CC=AE=CC=97=CC=98=CC=AB=CD=89=CD=85?= =?UTF-8?q?=CC=A7=CC=A8=CC=B9=CC=A5=CD=88=CC=AF=CC=A3=CC=AC=CC=A6=CC=AF?= =?UTF-8?q?=CD=96=CC=A7=CC=B3=CC=9D=CD=89=CC=A7=CC=AF=CD=8D=CC=AE=CC=A8?= =?UTF-8?q?=CC=AB=CC=A9=CC=B2=CC=A9=CC=A7=CC=AF=CD=87=CD=95=CC=9E=CC=AF?= =?UTF-8?q?=CD=88=CC=AF=CD=88=CC=AC=CC=AD=CC=A7=CC=A5=CC=AE=CC=AA=CD=8D?= =?UTF-8?q?=CD=88=CC=9C=CC=AE=CC=9E=CD=95=CC=BA=CD=9A=CC=AB=CC=B1=CD=96?= =?UTF-8?q?=CC=BB=CC=A3=CC=AB=CD=95=CC=AD=CC=A7=CC=A8=CD=87=CC=9E=CC=A4?= =?UTF-8?q?=CD=95=CC=9F=CC=97=CC=A0=CC=B0=CC=B0=CC=A5=CC=B0=CC=A1=CD=89?= =?UTF-8?q?=CD=85=CC=A5=CD=95e=CC=B8=CD=80=CC=84=CC=BF=CD=91=CC=92=CC=BD?= =?UTF-8?q?=CD=9B=CC=8D=CD=90=CC=BE=CD=84=CC=8E=CD=A0=CD=80=CD=84=CD=8B?= =?UTF-8?q?=CC=85=CC=95=CC=83=CC=91=CD=90=CC=93=CD=84=CD=92=CD=8C=CC=8E?= =?UTF-8?q?=CD=98=CD=9D=CD=8C=CD=A0=CC=87=CD=81=CC=9B=CD=90=CD=97=CC=83?= =?UTF-8?q?=CD=99=CD=88=CC=A1=CD=89=CC=97=CD=96=CC=AA=CC=A8=CD=99=CC=BA?= =?UTF-8?q?=CD=8D=CC=99=CC=B0=CC=98=CC=BC=CC=A9=CD=9C=CC=A5=CD=95=CD=93?= =?UTF-8?q?=CC=99=CC=9F=CD=9A=CC=9E=CC=A1=CC=A9=CD=89=CC=A9=CC=99=CC=B2?= =?UTF-8?q?=CD=95=CD=88=CD=8E=CC=A6=CC=AB=CC=A0=CD=9C=CC=9C=CC=9F=CC=B2?= =?UTF-8?q?=CC=BC=CC=BA=CD=96=CC=A8=CC=BA=CC=A2=CC=A1=CC=AD=CC=A4=CC=A9?= =?UTF-8?q?=CC=96=CC=AB=CD=85=CD=89=CC=A2=CC=A4=CD=89=CC=BC=CD=95=CC=A0?= =?UTF-8?q?=CC=BB=CC=AF=CC=AB=CC=B9=CC=B0=CC=AC=CC=AA=CD=8E=CC=A2=CC=9E?= =?UTF-8?q?=CD=99=CD=8D=CC=AD=CC=A9=CC=AC=CC=BB=CC=A6=CC=A7=CC=AA=CD=89?= =?UTF-8?q?=CC=9D=CC=A7=CC=BC=CC=96=CC=9F=CD=8D=CC=A2=CC=BA=CC=9F=CC=96?= =?UTF-8?q?=CC=BB=CC=9E=CC=97=CC=B0=CC=97=CD=87=CC=A6=CC=9F=CC=A1=CC=9C?= =?UTF-8?q?=CD=95=CC=A7=CC=9E=CC=A3=CC=A9=CC=AA=CD=88=CC=B0=CD=9C=CC=B2?= =?UTF-8?q?=CC=B1=CC=A5=CD=93=CC=B9=CD=9C=CD=88=CD=8E=CC=9E=CC=99=CC=B0?= =?UTF-8?q?=CD=96=CC=BA=CC=BB=CD=95=CC=A3=CC=A8=CC=97=CD=9A=CD=85=CC=A7?= =?UTF-8?q?=CC=9C=CC=BA=CC=A5=CD=87=CD=89=CC=A6=CC=A9=CC=B3=CC=A0=CC=96?= =?UTF-8?q?=CD=87=CD=9C=CC=B9=CC=B2=CD=99=CC=B3=CD=93=CC=A8=20=CC=B4=CC=8A?= =?UTF-8?q?=CD=97=CC=89=CC=8A=CC=8F=CC=9A=CC=83=CC=91=CC=87=CD=9D=CD=97?= =?UTF-8?q?=CD=81=CD=8C=CC=8D=CD=81=CD=97=CC=91=CD=90=CC=86=CC=94=CD=86?= =?UTF-8?q?=CC=91=CD=8B=CD=9D=CC=8D=CD=84=CC=BD=CC=8E=CC=BD=CD=86=CD=8B?= =?UTF-8?q?=CD=8A=CD=86=CC=84=CD=84=CC=8B=CC=8E=CD=84=CC=95=CC=83=CD=84?= =?UTF-8?q?=CD=82=CD=9B=CC=8B=CC=90=CD=92=CC=8E=CD=92=CD=92=CC=95=CC=86?= =?UTF-8?q?=CD=9D=CC=8D=CD=84=CC=8B=CC=88=CD=9B=CD=83=CD=84=CC=82=CD=90?= =?UTF-8?q?=CC=8F=CD=92=CD=98=CC=94=CD=9D=CD=84=CD=86=CC=9B=CC=95=CC=95?= =?UTF-8?q?=CD=80=CC=87=CC=9A=CD=9D=CC=8E=CD=9B=CD=8A=CD=8B=CD=90=CD=90?= =?UTF-8?q?=CC=83=CC=8B=CC=84=CD=8C=CD=86=CD=A0=CC=86=CD=98=CD=8B=CD=9D?= =?UTF-8?q?=CC=83=CD=92=CC=83=CC=88=CD=92=CC=8D=CD=90=CC=8F=CC=8C=CC=8C?= =?UTF-8?q?=CD=86=CC=85=CD=8A=CC=8D=CC=86=CD=83=CC=8D=CC=87=CD=97=CD=82?= =?UTF-8?q?=CC=8B=CC=92=CD=8B=CD=84=CC=82=CC=83=CC=9A=CC=90=CC=88=CC=94?= =?UTF-8?q?=CC=8F=CD=8A=CC=8A=CD=84=CC=83=CC=8A=CC=89=CC=8C=CD=8B=CD=98?= =?UTF-8?q?=CC=8B=CC=94=CD=84=CC=95=CC=8F=CD=82=CC=8C=CD=83=CD=84=CC=81?= =?UTF-8?q?=CC=82=CC=BD=CD=81=CC=8B=CC=8E=CD=9D=CD=9D=CC=80=CC=85=CC=BF?= =?UTF-8?q?=CD=80=CD=92=CD=9D=CC=9B=CD=98=CC=85=CC=81=CC=93=CC=BD=CC=94?= =?UTF-8?q?=CC=86=CD=8A=CC=9B=CD=97=CD=83=CC=92=CC=BD=CC=88=CD=92=CC=86?= =?UTF-8?q?=CD=80=CC=80=CD=80=CC=90=CC=8D=CC=82=CD=A0=CC=94=CD=9D=CD=82?= =?UTF-8?q?=CC=87=CD=84=CC=8E=CC=9B=CC=9F=CD=94=CC=98=CC=AD=CD=88=CC=A7?= =?UTF-8?q?=CD=94=CC=97=CC=9C=CD=88=CD=8E=CC=A8=CC=B2=CD=95=CC=BA=CC=9F?= =?UTF-8?q?=CC=9C=CD=87=CC=A3=CC=BC=CC=96=CC=96=CD=96=CC=99=CC=A4=CC=96?= =?UTF-8?q?=CC=A2=CD=96=CD=9AP=CC=B7=CC=BF=CC=92=CC=84=CC=8D=CC=9A=CD=97?= =?UTF-8?q?=CC=81=CC=80=CC=83=CD=9D=CD=8B=CC=8E=CC=8D=CC=8A=CD=83=CD=86?= =?UTF-8?q?=CD=81=CC=80=CC=BE=CD=81=CC=9B=CC=8F=CD=86=CC=92=CD=9B=CD=9D?= =?UTF-8?q?=CC=8F=CC=8B=CD=97=CC=8E=CC=83=CC=BE=CC=BD=CC=80=CC=BD=CD=80?= =?UTF-8?q?=CC=87=CD=81=CD=8C=CC=9B=CC=9A=CD=90=CC=84=CC=8B=CD=80=CD=8A?= =?UTF-8?q?=CD=83=CC=8E=CD=8A=CC=8F=CD=82=CC=8B=CD=83=CC=92=CD=97=CD=84?= =?UTF-8?q?=CD=82=CC=8A=CD=86=CC=8F=CD=92=CC=8D=CC=82=CC=91=CD=9B=CD=81?= =?UTF-8?q?=CC=8B=CC=8F=CC=87=CD=90=CC=95=CD=A0=CC=BD=CD=9D=CC=8A=CD=92?= =?UTF-8?q?=CD=90=CD=91=CC=8A=CD=82=CC=9A=CD=A0=CC=94=CC=83=CC=81=CC=92?= =?UTF-8?q?=CD=86=CD=9B=CD=8B=CC=BF=CC=8D=CC=89=CC=8D=CC=8A=CC=BD=CC=94?= =?UTF-8?q?=CD=A0=CC=85=CD=86=CC=82=CD=8B=CC=87=CC=8E=CC=84=CD=81=CD=92?= =?UTF-8?q?=CC=BE=CD=84=CC=95=CD=84=CC=90=CC=83=CC=81=CD=9D=CC=8C=CD=86?= =?UTF-8?q?=CD=A0=CC=87=CC=95=CD=A0=CD=92=CC=94=CC=87=CD=8B=CC=84=CD=98?= =?UTF-8?q?=CD=9D=CD=90=CD=83=CD=84=CD=82=CD=97=CD=90=CC=83=CC=82=CC=8A?= =?UTF-8?q?=CC=8A=CC=8B=CD=91=CD=92=CC=94=CD=8B=CC=93=CD=91=CD=84=CC=8D?= =?UTF-8?q?=CC=BF=CC=8E=CC=81=CC=92=CC=92=CD=84=CC=82=CC=89=CD=8C=CD=9D?= =?UTF-8?q?=CC=91=CC=8B=CD=9B=CD=84=CC=93=CC=8B=CD=A0=CD=90=CC=8F=CC=93?= =?UTF-8?q?=CC=8A=CC=8D=CD=91=CC=8B=CC=80=CC=9B=CD=84=CD=97=CC=90=CC=BF?= =?UTF-8?q?=CC=8B=CC=89=CC=9A=CC=84=CD=82=CC=89=CC=81=CD=80=CC=BD=CC=90?= =?UTF-8?q?=CD=90=CD=80=CC=85=CD=8C=CD=84=CD=83=CC=88=CD=92=CD=8B=CC=90?= =?UTF-8?q?=CC=84=CC=90=CD=81=CD=90=CC=82=CC=BE=CC=91=CC=94=CC=8E=CC=94?= =?UTF-8?q?=CC=93=CC=86=CD=84=CC=95=CD=8A=CC=B9=CC=A8=CD=87=CD=99=CC=A7?= =?UTF-8?q?=CD=9A=CC=B9=CD=9A=CC=AC=CD=8D=CD=9C=CC=AB=CC=AA=CC=B9=CD=8E?= =?UTF-8?q?=CC=A6=CC=96=CC=A6=CC=B3=CD=9C=CD=9A=CC=A7=CC=9E=CC=9F=CC=A0?= =?UTF-8?q?=CD=85=CD=89=CD=85=CC=BB=CC=B1=CC=AF=CC=A7l=CC=B4=CC=80=CD=82?= =?UTF-8?q?=CC=82=CC=8F=CC=80=CC=91=CD=92=CD=92=CD=82=CC=85=CD=81=CD=9A?= =?UTF-8?q?=CC=BC=CC=B2=CC=A1=CC=A5=CC=AD=CD=94=CC=BA=CD=93=CC=A8=CC=BA?= =?UTF-8?q?=CD=94=CC=9C=CD=87=CC=AA=CD=9A=CC=A8=CC=AC=CC=AC=CC=AD=CD=8E?= =?UTF-8?q?=CC=BB=CC=A5=CC=9C=CC=B1=CC=AB=CC=A1=CD=96=CC=A2=CC=BC=CD=8E?= =?UTF-8?q?=CD=99=CC=B0=CC=B3=CC=B1=CC=A9=CC=AB=CC=B9=CC=B3=CC=A2=CD=96?= =?UTF-8?q?=CC=96=CC=9F=CC=A2=CC=9E=CC=A5=CD=88=CC=B1=CC=AE=CC=AF=CC=AA?= =?UTF-8?q?=CC=B1=CC=97=CC=A7=CC=BC=CC=97=CC=A3=CC=A1=CC=AE=CD=8D=CC=A7?= =?UTF-8?q?=CC=9C=CC=B1=CC=96=CD=9A=CD=8D=CC=A7=CD=87=CC=A4=CC=A2=CC=A9?= =?UTF-8?q?=CD=99=CC=A5=CC=B0=CC=AA=CC=A2=CC=A5=CC=AB=CC=BB=CC=A9=CC=A4?= =?UTF-8?q?=CD=94=CC=A2=CC=B3=CC=A1=CC=A6=CC=A9=CC=A2=CC=9F=CC=A2=CD=85?= =?UTF-8?q?=CD=95=CC=A5=CD=88=CC=BC=CC=AA=CD=88=CC=BB=CC=9E=CD=89=CC=98?= =?UTF-8?q?=CC=B9=CC=AF=CD=95=CC=A6=CC=A2=CC=A1=CC=A3=CD=87=CD=85=CC=99?= =?UTF-8?q?=CC=9C=CD=96=CC=B3=CC=A4=CC=BB=CD=95=CC=AE=CC=A1=CC=A3=CC=96?= =?UTF-8?q?=CC=A6=CC=AC=CC=96=CC=AA=CC=A9=CC=AD=CC=A6=CD=95=CC=B1=CD=96?= =?UTF-8?q?=CC=A1=CC=A4=CC=A2=CC=AC=CC=AA=CD=95=CC=B2=CC=9C=CC=BB=CC=AD?= =?UTF-8?q?=CC=A6=CC=B9=CC=9E=CC=BB=CC=AD=CC=96=CD=9A=CC=AD=CC=9F=CC=BB?= =?UTF-8?q?=CD=95=CC=A5=CC=A1=CD=87=CC=AE=CC=BC=CC=B9=CC=BB=CC=A8=CC=AE?= =?UTF-8?q?=CD=88=CD=95=CC=BA=CC=B9=CC=97=CC=A6=CC=AF=CD=96=CC=A9=CC=AC?= =?UTF-8?q?=CD=85=CC=A5=CC=B2=CD=9C=CC=B2=CD=99=CD=9A=CD=85=CC=9D=CC=98?= =?UTF-8?q?=CC=9D=CC=A9=CC=BA=CC=BC=CD=87=CD=87=CD=8E=CC=A6=CD=8E=CC=A7?= =?UTF-8?q?=CC=A8=CD=96=CD=85=CD=99=CC=9E=CC=B0=CC=A2=CD=8E=CD=87=CC=AD?= =?UTF-8?q?=CC=A4=CD=9C=CC=97=CD=95=CC=9C=CC=B1=CC=AB=CD=96=CD=9A=CC=96?= =?UTF-8?q?=CC=B9=CC=AB=CC=A6=CD=95=CC=9D=CD=94=CD=8E=CC=A6=CC=97=CC=BA?= =?UTF-8?q?=CC=96=CD=89=CC=B1=CC=BC=CC=97=CC=A6=CC=A9=CD=94=CC=A2=CC=99?= =?UTF-8?q?=CC=AE=CD=9C=CC=AF=CD=9A=CD=89=CC=9F=CC=AC=CC=AE=CD=9C=CC=BB?= =?UTF-8?q?=CC=A3=CC=A8=CC=AC=CC=A8=CC=A2=CC=A9=CC=9E=CC=96=CC=A5=CC=AC?= =?UTF-8?q?=CC=AA=CC=B9=CC=B9=CC=B3=CC=A6=CC=BA=CC=A0=CC=B2=CC=A8=CC=B3?= =?UTF-8?q?=CC=96=CC=A1=CC=99=CD=95=CC=B2=CC=A2=CC=B0=CC=9D=CC=B9=CC=99?= =?UTF-8?q?=CD=88=CD=8D=CD=8E=CD=8E=CC=BC=CD=94=CC=A3=CD=88=CC=A9=CC=97?= =?UTF-8?q?=CC=A6=CC=97=CD=89=CC=AA=CC=A7e=CC=B4=CC=BF=CC=88=CC=90=CC=8A?= =?UTF-8?q?=CC=8D=CC=9B=CC=8D=CD=9D=CC=8B=CC=8D=CC=BD=CD=A0=CD=84=CD=8B?= =?UTF-8?q?=CC=85=CC=89=CD=86=CD=A0=CD=A0=CC=8C=CD=84=CD=8C=CC=9B=CC=80?= =?UTF-8?q?=CC=90=CC=9A=CD=8C=CD=98=CC=94=CC=9B=CD=82=CC=87=CC=BF=CC=BD?= =?UTF-8?q?=CD=8B=CC=84=CC=BF=CC=8B=CC=81=CC=8C=CC=8A=CD=86=CC=BF=CC=8D?= =?UTF-8?q?=CC=86=CD=80=CC=8D=CD=83=CC=93=CD=90=CD=98=CD=81=CD=80=CD=8C?= =?UTF-8?q?=CC=91=CD=98=CC=89=CC=83=CC=89=CC=8E=CC=85=CC=99=CD=9C=CC=AE?= =?UTF-8?q?=CC=AC=CC=A0=CD=94=CD=8E=CC=A7=CC=A9=CD=95=CC=AA=CC=BA=CC=98?= =?UTF-8?q?=CC=AB=CD=87=CC=99=CC=BA=CC=A7=CD=9Aa=CC=B6=CD=8B=CD=80=CC=8B?= =?UTF-8?q?=CD=8C=CC=86=CC=9A=CD=A0=CD=92=CD=98=CD=80=CC=8A=CD=97=CC=91?= =?UTF-8?q?=CD=83=CD=82=CC=BF=CC=BF=CC=BE=CC=84=CC=9E=CC=A5=CC=AD=CC=A4?= =?UTF-8?q?=CC=A3=CC=9D=CC=9E=CC=BA=CD=95=CC=AF=CC=A6=CC=A0=CD=94=CD=89?= =?UTF-8?q?=CC=BB=CC=A2=CC=B1=CC=9F=CC=AC=CD=95=CC=9F=CC=9E=CC=AF=CC=AE?= =?UTF-8?q?=CC=A3=CD=94=CD=85=CD=94=CC=AC=CC=A1=CD=9C=CC=9C=CD=89=CC=A1?= =?UTF-8?q?=CD=93=CC=98=CC=AE=CC=99=CC=A5=CC=BC=CC=AA=CC=96=CD=8D=CC=A9?= =?UTF-8?q?=CD=89=CD=8E=CC=A3=CC=B9=CC=A6=CC=A6=CC=AF=CD=85=CC=BC=CC=AA?= =?UTF-8?q?=CC=AF=CC=A2=CC=A7=CC=BB=CC=A1=CC=A9=CD=88=CC=A1=CC=B2=CD=88?= =?UTF-8?q?=CC=A4=CC=A6=CC=AC=CC=AA=CC=9E=CD=96=CC=AF=CC=AF=CD=9A=CC=A8?= =?UTF-8?q?=CC=A8=CD=8E=CD=8D=CC=97=CD=96=CC=9E=CD=87=CC=B9=CC=A4=CC=AC?= =?UTF-8?q?=CC=9F=CC=98=CC=99=CC=99=CC=96=CD=87=CC=A4=CC=B0=CC=AEs=CC=B8?= =?UTF-8?q?=CD=86=CC=84=CC=BF=CC=8E=CC=8B=CD=9D=CC=9B=CD=99=CC=96=CC=9F?= =?UTF-8?q?=CC=BA=CC=9F=CC=9E=CC=99=CC=99=CD=94=CC=9F=CD=95=CC=B2=CC=9D?= =?UTF-8?q?=CC=A8=CD=94=CC=A3=CD=93=CD=96=CC=B3=CC=AD=CC=B1=CC=97=CC=B9?= =?UTF-8?q?=CC=AF=CC=AC=CC=98=CC=9C=CC=BB=CC=A0=CC=AE=CC=99=CD=96=CC=A9?= =?UTF-8?q?=CD=96=CD=87=CC=B0=CC=B3=CC=A5=CD=89=CC=A4=CD=99=CC=B1=CC=96?= =?UTF-8?q?=CD=93=CC=98=CC=B3=CC=A8=CC=9E=CC=A3=CD=8D=CD=89=CD=95=CC=9C?= =?UTF-8?q?=CC=A2=CC=B2=CC=98=CC=9D=CC=BA=CC=9D=CD=8E=CD=93=CD=9A=CD=99?= =?UTF-8?q?=CC=A5=CC=9D=CD=93=CC=A3=CC=A5=CD=99=CC=BA=CC=99=CC=AF=CC=A1?= =?UTF-8?q?=CC=98=CD=87=CC=99=CD=87=CC=9F=CC=BB=CD=9A=CC=9D=CC=A0=CC=B0?= =?UTF-8?q?=CC=AB=CD=85=CC=B9=CC=96=CC=A8=CD=88=CC=9C=CC=AB=CC=B3=CC=AF?= =?UTF-8?q?=CC=B0=CC=A5=CC=A3=CD=9A=CC=9E=CC=A2=CC=A1=CD=9A=CD=8D=CD=94?= =?UTF-8?q?=CC=A1=CD=93=CC=AA=CC=A0=CC=A8=CC=A9=CD=96=CD=88=CC=A5=CD=93?= =?UTF-8?q?=CD=87=CD=8E=CD=94=CC=A9=CC=9C=CC=A8=CC=98=CC=A8=CD=95=CD=9A?= =?UTF-8?q?=CC=96=CC=BB=CC=A7=CC=B9=CC=A5=CC=AF=CC=A5=CC=AE=CC=9E=CC=B0?= =?UTF-8?q?=CC=BB=CC=9F=CC=AB=CC=A3=CC=AD=CC=B3=CC=AA=CD=87=CD=89=CC=B2?= =?UTF-8?q?=CC=A2=CC=97=CD=85=CC=AF=CD=88=CC=A3=CD=99=CC=96=CD=88=CC=BB?= =?UTF-8?q?=CC=B1=CC=AB=CC=97=CC=A9=CC=B9=CD=8E=CD=9A=CD=99=CC=96=CC=A4?= =?UTF-8?q?=CC=AF=CC=B0=CD=89=CC=A6=CC=B1=CC=A0=CC=98=CC=96=CC=A5=CC=BB?= =?UTF-8?q?=CC=A0=CC=A1=CD=88=CC=9C=CC=BCe=CC=B7=CD=81=CD=91=CD=91=CC=92?= =?UTF-8?q?=CC=8A=CD=A0=CC=84=CC=88=CD=9D=CC=8F=CD=8B=CD=80=CC=9A=CD=90?= =?UTF-8?q?=CC=83=CD=8C=CD=86=CC=8F=CD=80=CC=8D=CC=9B=CC=BD=CC=9B=CC=91?= =?UTF-8?q?=CC=8B=CD=84=CD=84=CD=86=CC=83=CC=93=CC=81=CD=81=CC=8B=CD=81?= =?UTF-8?q?=CC=80=CC=82=CC=90=CD=8A=CD=90=CD=83=CC=BE=CC=BF=CC=92=CC=88?= =?UTF-8?q?=CC=8D=CC=89=CC=8B=CD=84=CC=BD=CC=8C=CC=91=CC=93=CC=BD=CD=92?= =?UTF-8?q?=CD=84=CC=89=CC=93=CD=84=CD=84=CC=8E=CC=8C=CC=93=CC=BD=CC=87?= =?UTF-8?q?=CC=85=CD=8B=CD=98=CC=91=CC=91=CC=82=CC=86=CD=8C=CC=85=CD=82?= =?UTF-8?q?=CD=81=CD=80=CD=A0=CC=BF=CD=86=CD=84=CC=80=CD=80=CD=84=CD=A0?= =?UTF-8?q?=CC=8E=CC=8C=CD=91=CC=95=CC=9B=CC=8A=CD=83=CD=82=CD=8A=CD=A0?= =?UTF-8?q?=CD=81=CC=BE=CC=93=CC=89=CD=8C=CD=98=CC=91=CD=98=CD=80=CD=84?= =?UTF-8?q?=CD=83=CD=8C=CC=92=CD=97=CC=87=CD=86=CC=9A=CD=91=CD=9D=CD=84?= =?UTF-8?q?=CD=9D=CD=84=CC=9B=CD=8C=CD=9D=CC=BF=CD=8A=CC=80=CD=9D=CD=86?= =?UTF-8?q?=CC=90=CC=89=CC=93=CC=8E=CD=80=CD=81=CD=97=CD=82=CC=8E=CC=95?= =?UTF-8?q?=CD=9D=CC=95=CC=8C=CC=86=CD=82=CD=8C=CD=9D=CD=8A=CC=89=CD=8A?= =?UTF-8?q?=CD=90=CD=92=CC=8B=CD=84=CC=8F=CC=91=CD=8C=CD=9B=CC=9A=CC=AB?= =?UTF-8?q?=CC=AC=CD=8E=CC=B1=CC=A2=CC=9C=CC=AF=CD=88=CD=99=CC=A3=CC=A9?= =?UTF-8?q?=CC=9F=CC=97=CC=BC=CC=AF=CD=9A=CC=B1=CC=B1=CC=B2=CC=AD=CC=A5?= =?UTF-8?q?=CD=95=CC=A8=CC=A4=CC=A7=CC=A0=CC=AE=CC=9C=CC=98=CC=B2=CC=98?= =?UTF-8?q?=CC=A9=CD=89=CC=BB=CD=96=CD=9A=CC=B3=CC=B9=CD=87=CC=A1=CC=A9?= =?UTF-8?q?=CC=A2=CC=A4=CC=A8=CC=9F=CC=9D=CC=A8=CD=8D=CC=A2=CD=99=CC=99?= =?UTF-8?q?=CC=97=CC=A7=CC=BA=CC=99=CD=93=CD=9A=CC=B0=CC=AE=CD=9A=CC=97?= =?UTF-8?q?=CC=99=CC=A1=CC=99=CC=B2=CD=9C=CD=89=CC=A8=CC=9D=CC=A8=CC=AF?= =?UTF-8?q?=CC=B2=CC=9F=CC=A0=CD=8D=CC=A6=CC=A8=CC=A7=CD=95=CD=9A=CC=96?= =?UTF-8?q?=CC=B3=CD=9C=CC=A2=CC=BC=CC=B0=CC=98=CC=9D=CC=AF=CD=95=CC=A8?= =?UTF-8?q?=CC=A6=CC=96=CC=9E=CC=AD=CC=AD=CC=B3=CD=9A=CD=9C=CC=AF=CC=A9?= =?UTF-8?q?=CD=89=CC=B2=CC=AF=CD=85=CD=89=CC=AA=CD=8E=CC=BB=CD=88=CC=AA?= =?UTF-8?q?=CD=9A=CC=A5=CD=8E=CC=98=CC=AC=CC=97=CC=A8=CC=A5=CC=B9=CC=B0?= =?UTF-8?q?=CD=85=CC=A5=CC=A5=CD=8E=CD=9C=CC=AD=CC=B9=CD=9A=CC=A2=CD=96?= =?UTF-8?q?=CC=9C=CC=A4=CC=99=CC=BA=CD=87=CD=96=CC=B9=CC=A6=CC=A7=CC=99?= =?UTF-8?q?=CC=B0=CC=AA=CC=98=CC=B9=CC=B2=CC=AA=CC=AA=CC=98=CC=AB=CC=9F?= =?UTF-8?q?=CC=A7=CC=96=CC=A1=CC=AE=CC=99=CC=AD=CC=A4=CC=98=CD=89=CC=9F?= =?UTF-8?q?=CC=B0=CC=AC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/vi.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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ộ" } From 8a09621e39f5916b89b8ccf8c070a963ac2edccc Mon Sep 17 00:00:00 2001 From: Salmonfishyy <160120816+Salmonfishyy@users.noreply.github.com> Date: Sun, 6 Oct 2024 20:57:53 +0700 Subject: [PATCH 04/12] 1.10.1 France Halloween Update (Lutti Arlequin) --- lang/fr.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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" } From 5b9f2610224100a5a51c78e0fedf53c4e2f5317d Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:11:02 -0700 Subject: [PATCH 05/12] Color --- mods/genetics.js | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/mods/genetics.js b/mods/genetics.js index a6d633cd..dc2d8257 100644 --- a/mods/genetics.js +++ b/mods/genetics.js @@ -9,6 +9,77 @@ elements.organism = { age: 0 }, tick: function(pixel) { + if (pixel.vore === 0) { + if (Math.random() > 0.2) { + pixel.color = "#997457" + } + else if (Math.random() > 0.2) { + pixel.color = "#c4b270" + } + else if (Math.random() > 0.2) { + pixel.color = "#9c916a" + } + else if (Math.random() > 0.2) { + pixel.color = "#9e8955" + } + else { + pixel.color = "#a89a76" + } + } + else if (pixel.vore === 1) { + pixel.color = "#9E6954" + } + else if (pixel.vore === 2) { + pixel.color = "#A25F50" + } + else if (pixel.vore === 3) { + pixel.color = "#A7544D" + } + else if (pixel.vore === 4) { + pixel.color = "#A7544D" + } + else if (pixel.vore === 5) { + pixel.color = "#AC4A4A" + } + else if (pixel.vore === 6) { + pixel.color = "#B03F47" + } + else if (pixel.vore === 7) { + pixel.color = "#B53543" + } + else if (pixel.vore === 8) { + pixel.color = "#B92A40" + } + else if (pixel.vore > 8) { + pixel.color = "#BE203D" + } + else if (pixel.vore === -1) { + pixel.color = "#8B7C4F" + } + else if (pixel.vore === -2) { + pixel.color = "#7D8447" + } + else if (pixel.vore === -3) { + pixel.color = "#6F8C3F" + } + else if (pixel.vore === -4) { + pixel.color = "#619437" + } + else if (pixel.vore === -5) { + pixel.color = "#539C2F" + } + else if (pixel.vore === -6) { + pixel.color = "#46A428" + } + else if (pixel.vore === -7) { + pixel.color = "#38AC20" + } + else if (pixel.vore === -8) { + pixel.color = "#2AB418" + } + else if (pixel.vore < -8) { + pixel.color = "#1CBC10" + } if (pixel.geneticCode < 11) { if (isEmpty(pixel.x, pixel.y+1)) { movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); From fe310a09a0e1fb1d6b8b7a3bbd3b2ffced91fb3f Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Tue, 8 Oct 2024 13:51:29 -0400 Subject: [PATCH 06/12] Update mod-list.html --- mod-list.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mod-list.html b/mod-list.html index a32861f9..c36d8f69 100644 --- a/mod-list.html +++ b/mod-list.html @@ -340,7 +340,7 @@ Visual Effects acid_and_shapes.jsWeird visual effects. Enable in SettingsAlice -customBackground.jsSet your own background(using and image link)Jayd +customBackground.jsSet your background to an image linkJayd heatglow.jsRed glowing effect for hot metalsnousernamefound invisible_dye.jsAdds elements like Dye and Spray Paint that take the color of the backgroundAlice invisible_wall.jsAdds an element like Wall that takes the color of the backgroundAlice @@ -352,8 +352,8 @@ shader_by_jayd.jsAdds a glow around light elementsJayd Shroomboxels.jsA variant of acid_and_shapes.js that uses a different trigonometric functionAlice singleColor.jsMakes all elements pick one color each time they're drawnstefanblox -texture_pack_by_jayd.jsGives sandboxels a cool backgroundJayd -UwUify.jsGives sandboxels an "UwU" backgroundJayd +texture_pack_by_jayd.jsAdds a cool backgroundJayd +UwUify.jsAdds an "UwU" backgroundJayd Compilations From a2195e66bf9c17940f166385904f30b7ece25371 Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Tue, 8 Oct 2024 11:37:16 -0700 Subject: [PATCH 07/12] color bugfix --- mods/genetics.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mods/genetics.js b/mods/genetics.js index dc2d8257..fab89c27 100644 --- a/mods/genetics.js +++ b/mods/genetics.js @@ -4,22 +4,24 @@ elements.organism = { color: ["#997457","#c4b270","#9c916a","#9e8955","#a89a76"], properties: { geneticCode: 0, + oldvore: 0, vore: 0, food: 0, age: 0 }, tick: function(pixel) { + if (pixel.vore != pixel.oldvore) { if (pixel.vore === 0) { - if (Math.random() > 0.2) { + if (Math.random() > 0.5) { pixel.color = "#997457" } - else if (Math.random() > 0.2) { + else if (Math.random() > 0.5) { pixel.color = "#c4b270" } - else if (Math.random() > 0.2) { + else if (Math.random() > 0.5) { pixel.color = "#9c916a" } - else if (Math.random() > 0.2) { + else if (Math.random() > 0.5) { pixel.color = "#9e8955" } else { @@ -80,6 +82,8 @@ elements.organism = { else if (pixel.vore < -8) { pixel.color = "#1CBC10" } + pixel.oldvore = pixel.vore + } if (pixel.geneticCode < 11) { if (isEmpty(pixel.x, pixel.y+1)) { movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); From 4537cc4d7d1f4c87db348eddfad18c4a103ee70f Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Tue, 8 Oct 2024 11:45:54 -0700 Subject: [PATCH 08/12] Update genetics.js --- mods/genetics.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/genetics.js b/mods/genetics.js index fab89c27..ae95fc73 100644 --- a/mods/genetics.js +++ b/mods/genetics.js @@ -82,7 +82,6 @@ elements.organism = { else if (pixel.vore < -8) { pixel.color = "#1CBC10" } - pixel.oldvore = pixel.vore } if (pixel.geneticCode < 11) { if (isEmpty(pixel.x, pixel.y+1)) { @@ -1101,6 +1100,7 @@ elements.organism = { } pixel.age += 1 } + pixel.oldvore = pixel.vore }, tempHigh: 150, stateHigh: "cooked_meat", From a63f0de0839e28bc96998da478c069e1070de856 Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Tue, 8 Oct 2024 17:34:14 -0700 Subject: [PATCH 09/12] HUGE GENETICS OVERHAUL --- mods/genetics.js | 1854 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 1737 insertions(+), 117 deletions(-) diff --git a/mods/genetics.js b/mods/genetics.js index ae95fc73..55e46e69 100644 --- a/mods/genetics.js +++ b/mods/genetics.js @@ -1,88 +1,176 @@ /* by nekonico, do not steal!!!!!! >:3*/ elements.organism = { - color: ["#997457","#c4b270","#9c916a","#9e8955","#a89a76"], + 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 if (Math.random() > 0.5) { - pixel.color = "#c4b270" - } - else if (Math.random() > 0.5) { - pixel.color = "#9c916a" - } - else if (Math.random() > 0.5) { - pixel.color = "#9e8955" + pixel.color = "#997457" } else { - pixel.color = "#a89a76" + pixel.color = "#a89a76" } } else if (pixel.vore === 1) { - pixel.color = "#9E6954" + if (Math.random() > 0.5) { + pixel.color = "#9E6954" + } + else { + pixel.color = "#AB8C6B" + } } else if (pixel.vore === 2) { - pixel.color = "#A25F50" + if (Math.random() > 0.5) { + pixel.color = "#A25F50" + } + else { + pixel.color = "#AF7E61" + } } else if (pixel.vore === 3) { - pixel.color = "#A7544D" + if (Math.random() > 0.5) { + pixel.color = "#A7544D" + } + else { + pixel.color = "#B27056" + } } else if (pixel.vore === 4) { - pixel.color = "#A7544D" + if (Math.random() > 0.5) { + pixel.color = "#A7544D" + } + else { + pixel.color = "#B5624B" + } } else if (pixel.vore === 5) { - pixel.color = "#AC4A4A" + if (Math.random() > 0.5) { + pixel.color = "#AC4A4A" + } + else { + pixel.color = "#B85440" + } } else if (pixel.vore === 6) { - pixel.color = "#B03F47" + if (Math.random() > 0.5) { + pixel.color = "#B03F47" + } + else { + pixel.color = "#BC4636" + } } else if (pixel.vore === 7) { - pixel.color = "#B53543" + if (Math.random() > 0.5) { + pixel.color = "#B53543" + } + else { + pixel.color = "#BF382B" + } } else if (pixel.vore === 8) { - pixel.color = "#B92A40" + if (Math.random() > 0.5) { + pixel.color = "#B92A40" + } + else { + pixel.color = "#C22A20" + } } else if (pixel.vore > 8) { - pixel.color = "#BE203D" + if (Math.random() > 0.5) { + pixel.color = "#BE203D" + } + else { + pixel.color = "#C51C15" + } } else if (pixel.vore === -1) { - pixel.color = "#8B7C4F" + if (Math.random() > 0.5) { + pixel.color = "#8B7C4F" + } + else { + pixel.color = "#9D9A6B" + } } else if (pixel.vore === -2) { - pixel.color = "#7D8447" + if (Math.random() > 0.5) { + pixel.color = "#7D8447" + } + else { + pixel.color = "#939A61" + } } else if (pixel.vore === -3) { - pixel.color = "#6F8C3F" + if (Math.random() > 0.5) { + pixel.color = "#6F8C3F" + } + else { + pixel.color = "#889A56" + } } else if (pixel.vore === -4) { - pixel.color = "#619437" + if (Math.random() > 0.5) { + pixel.color = "#619437" + } + else { + pixel.color = "#7D9A4B" + } } else if (pixel.vore === -5) { - pixel.color = "#539C2F" + if (Math.random() > 0.5) { + pixel.color = "#539C2F" + } + else { + pixel.color = "#739A40" + } } else if (pixel.vore === -6) { - pixel.color = "#46A428" + if (Math.random() > 0.5) { + pixel.color = "#46A428" + } + else { + pixel.color = "#689936" + } } else if (pixel.vore === -7) { - pixel.color = "#38AC20" + if (Math.random() > 0.5) { + pixel.color = "#38AC20" + } + else { + pixel.color = "#5E992B" + } } else if (pixel.vore === -8) { - pixel.color = "#2AB418" + if (Math.random() > 0.5) { + pixel.color = "#2AB418" + } + else { + pixel.color = "#539920" + } } else if (pixel.vore < -8) { - pixel.color = "#1CBC10" + 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); @@ -135,7 +223,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"); } @@ -210,9 +298,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"); @@ -230,23 +326,23 @@ elements.organism = { 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 == "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 @@ -382,9 +478,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"); @@ -403,6 +507,22 @@ elements.organism = { 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 == "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 @@ -538,12 +658,28 @@ 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 @@ -559,6 +695,22 @@ elements.organism = { 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 == "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 @@ -607,19 +759,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 == "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 } @@ -675,35 +827,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 } @@ -774,19 +910,35 @@ 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) { + else if (pixel.geneticCode > 50 && pixel.geneticCode < 61) { if (isEmpty(pixel.x, pixel.y+1)) { - /* by nekonico, do not steal!!!!!! >:3*/ movePixel(pixelMap[pixel.x][pixel.y], 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); @@ -795,6 +947,22 @@ elements.organism = { 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 == "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 @@ -843,19 +1011,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 == "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 } @@ -959,6 +1127,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 @@ -975,51 +1159,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 } @@ -1090,22 +1258,1474 @@ 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 (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 == "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 > 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 + } + 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 < 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 == "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 (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 == "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 > 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 + } + 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 < 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 == "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.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 > 80) { + 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 == "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 > 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 + } + 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 < 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 == "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.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 } 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 }, + }, + 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 From 7c34cd30e6a9e26eda3722bd143359e2a7b5ca9d Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Tue, 8 Oct 2024 20:31:52 -0700 Subject: [PATCH 10/12] Working flashbang mod Actually makes your screen flash (DO not use if you have epilepsy, mod has proper warnings.) --- mods/true_flashbang.js | 61 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 mods/true_flashbang.js 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 From 5eef4ecf82ae03003478159829c5502aed5f365c Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Wed, 9 Oct 2024 13:42:29 -0700 Subject: [PATCH 11/12] They evolve into humans now --- mods/genetics.js | 1229 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 1131 insertions(+), 98 deletions(-) diff --git a/mods/genetics.js b/mods/genetics.js index 55e46e69..2309d2ab 100644 --- a/mods/genetics.js +++ b/mods/genetics.js @@ -320,10 +320,10 @@ elements.organism = { 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)) { + else 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 (pixel.vore === 0) { @@ -500,10 +500,10 @@ elements.organism = { 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)) { + else 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) { @@ -688,10 +688,10 @@ elements.organism = { 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)) { + else 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) { @@ -940,10 +940,10 @@ elements.organism = { 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)) { + else 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) { @@ -1288,10 +1288,10 @@ elements.organism = { 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 (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) { @@ -1700,58 +1700,26 @@ elements.organism = { 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)) { + else 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.99 && isEmpty(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 === 0) { - if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") { + 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) && pixelMap[pixel.x][pixel.y+1].element == "sugar") { + 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) && pixelMap[pixel.x+1][pixel.y].element == "sugar") { + 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) && 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") { + 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 } @@ -2092,10 +2060,10 @@ elements.organism = { else { pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; } - if (Math.random() > 0.8) { + if (Math.random() > 0.95) { pixelMap[pixel.x][pixel.y-1].vore = pixel.vore += 1; } - if (Math.random() < 0.2) { + if (Math.random() < 0.05) { pixelMap[pixel.x][pixel.y-1].vore = pixel.vore -= 1; } else { @@ -2114,10 +2082,10 @@ elements.organism = { else { pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode; } - if (Math.random() > 0.8) { + if (Math.random() > 0.95) { pixelMap[pixel.x+1][pixel.y].vore = pixel.vore += 1; } - if (Math.random() < 0.2) { + if (Math.random() < 0.05) { pixelMap[pixel.x+1][pixel.y].vore = pixel.vore -= 1; } else { @@ -2136,10 +2104,10 @@ elements.organism = { else { pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode; } - if (Math.random() > 0.8) { + if (Math.random() > 0.95) { pixelMap[pixel.x-1][pixel.y].vore = pixel.vore += 1; } - if (Math.random() < 0.2) { + if (Math.random() < 0.05) { pixelMap[pixel.x-1][pixel.y].vore = pixel.vore -= 1; } else { @@ -2172,62 +2140,30 @@ elements.organism = { } pixel.age += 1 } - else if (pixel.geneticCode > 80) { + else if (pixel.geneticCode > 80 && pixel.geneticCode < 91) { 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)) { + else 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.99 && isEmpty(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 === 0) { - if (Math.random() < 0.1 && !isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "sugar") { + 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) && pixelMap[pixel.x][pixel.y+1].element == "sugar") { + 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) && pixelMap[pixel.x+1][pixel.y].element == "sugar") { + 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) && 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") { + 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 } @@ -2632,10 +2568,10 @@ elements.organism = { else { pixelMap[pixel.x][pixel.y-1].geneticCode = pixel.geneticCode; } - if (Math.random() > 0.8) { + if (Math.random() > 0.95) { pixelMap[pixel.x][pixel.y-1].vore = pixel.vore += 1; } - if (Math.random() < 0.2) { + if (Math.random() < 0.05) { pixelMap[pixel.x][pixel.y-1].vore = pixel.vore -= 1; } else { @@ -2654,10 +2590,10 @@ elements.organism = { else { pixelMap[pixel.x+1][pixel.y].geneticCode = pixel.geneticCode; } - if (Math.random() > 0.8) { + if (Math.random() > 0.95) { pixelMap[pixel.x+1][pixel.y].vore = pixel.vore += 1; } - if (Math.random() < 0.2) { + if (Math.random() < 0.05) { pixelMap[pixel.x+1][pixel.y].vore = pixel.vore -= 1; } else { @@ -2676,10 +2612,1107 @@ elements.organism = { else { pixelMap[pixel.x-1][pixel.y].geneticCode = pixel.geneticCode; } - if (Math.random() > 0.8) { + 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 (isEmpty(pixel.x, pixel.y+1)) { + movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); + } + else 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 === 0) { + 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 > 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 + } + 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 < 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 == "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 (isEmpty(pixel.x, pixel.y+1)) { + movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); + } + else 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 === 0) { + changePixel(pixel,"human"); + } + 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 + } + 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 < 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 == "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 { From 8d8186bb0bff5a8c967ece058669db08515f6849 Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:12:04 -0700 Subject: [PATCH 12/12] Pills! --- mods/genetics.js | 378 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 303 insertions(+), 75 deletions(-) diff --git a/mods/genetics.js b/mods/genetics.js index 2309d2ab..be89639c 100644 --- a/mods/genetics.js +++ b/mods/genetics.js @@ -1,6 +1,11 @@ /* by nekonico, do not steal!!!!!! >:3*/ elements.organism = { + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "M2%10|M1|M2%10", + ], color: ["#997457","#a89a76"], properties: { geneticCode: 0, @@ -172,15 +177,6 @@ elements.organism = { 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 @@ -317,16 +313,13 @@ 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.95 && 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.95 && 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 @@ -376,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 @@ -394,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 @@ -497,16 +490,13 @@ 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.9 && 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.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 @@ -556,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 @@ -574,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 @@ -685,16 +675,13 @@ elements.organism = { 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.9 && 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.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 @@ -776,7 +763,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 @@ -810,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 @@ -937,16 +924,13 @@ elements.organism = { pixel.age += 1 } else if (pixel.geneticCode > 50 && pixel.geneticCode < 61) { - if (isEmpty(pixel.x, pixel.y+1)) { - movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); - } - else if (Math.random() > 0.8 && isEmpty(pixel.x-1, pixel.y)) { + 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 === 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 @@ -1028,7 +1012,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 @@ -1094,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 @@ -1285,16 +1269,13 @@ elements.organism = { pixel.age += 1 } else if (pixel.geneticCode > 60 && pixel.geneticCode < 71) { - 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.8 && isEmpty(pixel.x-1, pixel.y)) { + 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 === 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 @@ -1376,7 +1357,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 @@ -1474,7 +1455,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 @@ -1697,16 +1678,13 @@ elements.organism = { pixel.age += 1 } else if (pixel.geneticCode > 70 && pixel.geneticCode < 81) { - if (isEmpty(pixel.x, pixel.y+1)) { - movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); - } - else if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) { + 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 === 0) { + 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 @@ -1756,7 +1734,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 @@ -1886,7 +1864,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 @@ -2141,16 +2119,13 @@ elements.organism = { pixel.age += 1 } else if (pixel.geneticCode > 80 && pixel.geneticCode < 91) { - if (isEmpty(pixel.x, pixel.y+1)) { - movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); - } - else if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) { + 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 === 0) { + 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 @@ -2200,7 +2175,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 @@ -2362,7 +2337,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 @@ -2649,16 +2624,13 @@ elements.organism = { pixel.age += 1 } else if (pixel.geneticCode > 90 && pixel.geneticCode < 101) { - if (isEmpty(pixel.x, pixel.y+1)) { - movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); - } - else if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) { + 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 === 0) { + 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 @@ -2708,7 +2680,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 @@ -2902,7 +2874,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 @@ -3221,19 +3193,16 @@ elements.organism = { pixel.age += 1 } else if (pixel.geneticCode > 100) { - if (isEmpty(pixel.x, pixel.y+1)) { - movePixel(pixelMap[pixel.x][pixel.y], pixel.x, pixel.y+1); - } - else if (Math.random() > 0.75 && isEmpty(pixel.x-1, pixel.y)) { + 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 === 0) { + if (pixel.vore > -3 && pixel.vore < 3) { changePixel(pixel,"human"); } - 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 @@ -3427,7 +3396,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 @@ -3748,8 +3717,18 @@ elements.organism = { 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 }, + "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, @@ -3762,6 +3741,255 @@ elements.organism = { 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*/